Problem statement

Right now, we have different resources to pool videos. The goal of is to consolidate all video resources into a central place to make them easily searchable, and enable a youtube like experience, rather than a simple file list.

Approach

Evaluate both VoctoWeb and MediaGoblin (packaging efforts for this are also a hackweek project). The goal is to have all videos pooled in one place, searchable, and easily accessible from a browser.

Evaluation criteria:

  • Allows simple uploads
  • Allows watching in a browser
  • Allows easy download for offline consumption
  • Provides all vital metadata
  • Provides a good search functionality.
  • Provides means to easily embed videos into other sites

The plan is to write Salt packages for deployment to ensure it's reproducible and to publish the Salt recipes. With a production instance, import, existing videos will be imported. A VM with the required resources has already been requested.

Stretch goals

Improve Availability, reduce latency

The video server will be initially located on the Nuremberg site. I'll investigate how bad the latency to other sites is under broad use. most efficiently make the video available to all sites. This could be a mirrorbrain-based CDN, or caching nodes. I will document my findings on what's being used elsewhere to get the job done, and lay out a path

Hook up with the existing voctomix recording toolchain

A goal for this setup is to be able to feed it with projects like the OpenSUSE Video box, which is currently Debian-based. OpenSUSE should be able to foot the same task. With Voctomix already packaged, we need to bring it to the latest version, and package more parts of the toolchain, such as the Conference Recording System and ultimately the tracker GUI, where packaging is pending a proper license by upstream.

Looking for hackers with the skills:

video voctoweb mediagoblin voctomix rubyonrails python ffmpeg gstreamer

This project is part of:

Hack Week 16

Activity

  • over 7 years ago: mcaj joined this project.
  • about 8 years ago: bruclik liked this project.
  • about 8 years ago: mstrigl liked this project.
  • about 8 years ago: mstrigl joined this project.
  • about 8 years ago: dmolkentin added keyword "gstreamer" to this project.
  • about 8 years ago: dmolkentin added keyword "ffmpeg" to this project.
  • about 8 years ago: dmolkentin added keyword "rubyonrails" to this project.
  • about 8 years ago: dmolkentin added keyword "python" to this project.
  • about 8 years ago: dmolkentin added keyword "voctoweb" to this project.
  • about 8 years ago: dmolkentin added keyword "mediagoblin" to this project.
  • about 8 years ago: dmolkentin added keyword "voctomix" to this project.
  • about 8 years ago: dmolkentin added keyword "video" to this project.
  • about 8 years ago: TBro started this project.
  • about 8 years ago: dmolkentin originated this project.

  • Comments

    • mstrigl
      about 8 years ago by mstrigl | Reply

      I think my project "Packaging mediagoblin" (https://hackweek.suse.com/16/projects/package-mediagoblin) fits here well.

    • dmolkentin
      about 8 years ago by dmolkentin | Reply

      CRS has been licensed under Apache-2 terms and is now available at https://build.opensuse.org/package/show/home:dmolkentin:video/crs-tracker, with the scripts to follow once I figure a good way to packaging them.

    Similar Projects

    Finish mpv port for gfxprim by metan

    Description

    I've started to work on porting mpv video player for gfxprim graphic library. I have a proof of concept ready and I would like to finish it properly. The only big part that is missing is software rescaling. The minor things that are missing are command line switches to select dithering (for black and white LCD displays), better keyboard mappings, etc.

    Goals

    Make the gfxprim video output for mpv production ready and prepare packages for openSUSE, Debian and Raspbian.


    Update M2Crypto by mcepl

    There are couple of projects I work on, which need my attention and putting them to shape:

    Goal for this Hackweek

    • Put M2Crypto into better shape (most issues closed, all pull requests processed)
    • More fun to learn jujutsu
    • Play more with Gemini, how much it help (or not).
    • Perhaps, also (just slightly related), help to fix vis to work with LuaJIT, particularly to make vis-lspc working.


    Testing and adding GNU/Linux distributions on Uyuni by juliogonzalezgil

    Join the Gitter channel! https://gitter.im/uyuni-project/hackweek

    Uyuni is a configuration and infrastructure management tool that saves you time and headaches when you have to manage and update tens, hundreds or even thousands of machines. It also manages configuration, can run audits, build image containers, monitor and much more!

    Currently there are a few distributions that are completely untested on Uyuni or SUSE Manager (AFAIK) or just not tested since a long time, and could be interesting knowing how hard would be working with them and, if possible, fix whatever is broken.

    For newcomers, the easiest distributions are those based on DEB or RPM packages. Distributions with other package formats are doable, but will require adapting the Python and Java code to be able to sync and analyze such packages (and if salt does not support those packages, it will need changes as well). So if you want a distribution with other packages, make sure you are comfortable handling such changes.

    No developer experience? No worries! We had non-developers contributors in the past, and we are ready to help as long as you are willing to learn. If you don't want to code at all, you can also help us preparing the documentation after someone else has the initial code ready, or you could also help with testing :-)

    The idea is testing Salt and Salt-ssh clients, but NOT traditional clients, which are deprecated.

    To consider that a distribution has basic support, we should cover at least (points 3-6 are to be tested for both salt minions and salt ssh minions):

    1. Reposync (this will require using spacewalk-common-channels and adding channels to the .ini file)
    2. Onboarding (salt minion from UI, salt minion from bootstrap scritp, and salt-ssh minion) (this will probably require adding OS to the bootstrap repository creator)
    3. Package management (install, remove, update...)
    4. Patching
    5. Applying any basic salt state (including a formula)
    6. Salt remote commands
    7. Bonus point: Java part for product identification, and monitoring enablement
    8. Bonus point: sumaform enablement (https://github.com/uyuni-project/sumaform)
    9. Bonus point: Documentation (https://github.com/uyuni-project/uyuni-docs)
    10. Bonus point: testsuite enablement (https://github.com/uyuni-project/uyuni/tree/master/testsuite)

    If something is breaking: we can try to fix it, but the main idea is research how supported it is right now. Beyond that it's up to each project member how much to hack :-)

    • If you don't have knowledge about some of the steps: ask the team
    • If you still don't know what to do: switch to another distribution and keep testing.

    This card is for EVERYONE, not just developers. Seriously! We had people from other teams helping that were not developers, and added support for Debian and new SUSE Linux Enterprise and openSUSE Leap versions :-)

    Pending

    Debian 13

    The new version of the beloved Debian GNU/Linux OS

    Seems to be a Debian 12 derivative, so adding it could be quite easy.

    • [ ] Reposync (this will require using spacewalk-common-channels and adding channels to the .ini file)
    • W] Onboarding (salt minion from UI, salt minion from bootstrap script, and salt-ssh minion) (this will probably require adding OS to the bootstrap repository creator)
    • [ ] Package management (install, remove, update...)
    • [ ] Patching (if patch information is available, could require writing some code to parse it, but IIRC we have support for Ubuntu already). Probably not for Debian as IIRC we don't support patches yet.
    • [ ] Applying any basic salt state (including a formula)
    • [ ] Salt remote commands
    • [ ] Bonus point: Java part for product identification, and monitoring enablement
    • [ ] Bonus point: sumaform enablement (https://github.com/uyuni-project/sumaform)
    • [ ] Bonus point: Documentation (https://github.com/uyuni-project/uyuni-docs)


    Song Search with CLAP by gcolangiuli

    Description

    Contrastive Language-Audio Pretraining (CLAP) is an open-source library that enables the training of a neural network on both Audio and Text descriptions, making it possible to search for Audio using a Text input. Several pre-trained models for song search are already available on huggingface

    SUSE Hackweek AI Song Search

    Goals

    Evaluate how CLAP can be used for song searching and determine which types of queries yield the best results by developing a Minimum Viable Product (MVP) in Python. Based on the results of this MVP, future steps could include:

    • Music Tagging;
    • Free text search;
    • Integration with an LLM (for example, with MCP or the OpenAI API) for music suggestions based on your own library.

    The code for this project will be entirely written using AI to better explore and demonstrate AI capabilities.

    Resources


    Enhance git-sha-verify: A tool to checkout validated git hashes by gpathak

    Description

    git-sha-verify is a simple shell utility to verify and checkout trusted git commits signed using GPG key. This tool helps ensure that only authorized or validated commit hashes are checked out from a git repository, supporting better code integrity and security within the workflow.

    Supports:

    • Verifying commit authenticity signed using gpg key
    • Checking out trusted commits

    Ideal for teams and projects where the integrity of git history is crucial.

    Goals

    A minimal python code of the shell script exists as a pull request.

    The goal of this hackweek is to:

    • Add more unit tests
    • Make the python code modular
    • Add code coverage if possible

    Resources


    Bring to Cockpit + System Roles capabilities from YAST by miguelpc

    Bring to Cockpit + System Roles features from YAST

    Cockpit and System Roles have been added to SLES 16 There are several capabilities in YAST that are not yet present in Cockpit and System Roles We will follow the principle of "automate first, UI later" being System Roles the automation component and Cockpit the UI one.

    Goals

    The idea is to implement service configuration in System Roles and then add an UI to manage these in Cockpit. For some capabilities it will be required to have an specific Cockpit Module as they will interact with a reasource already configured.

    Resources

    A plan on capabilities missing and suggested implementation is available here: https://docs.google.com/spreadsheets/d/1ZhX-Ip9MKJNeKSYV3bSZG4Qc5giuY7XSV0U61Ecu9lo/edit

    Linux System Roles: https://linux-system-roles.github.io/

    First meeting Hackweek catchup