The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

SReview

This SReview, a video review system. It takes input files, stores their lengths in a database, combines those lengths and their starttime with a schedule it has of an event to see which talks are fully recorded, and creates a preview. After that, magic happens, and eventually a fully transcoded quality video rolls out of the system.

Note that while SReview has been used in production for FOSDEM 2017 and DebConf 2017, there is still some missing functionality in some areas. Patches welcome! :-)

States

SReview is fairly minimalistic; it tries to assume as little as possible about video workflow. There are, however, state machines that you should be aware of. First, there is the main state:

waiting_for_files
cutting
generating_previews
notification
preview
transcoding
uploading
done
broken
needs_work
lost

Next, there is the job state:

waiting
scheduled
running
done
failed

Every talk is in one of the main states as well as in one of the job. The following list explains what each of the main states means:

The job states, then, mean:

Components

SReview consists of two major components: a webinterface (written in Perl with Mojolicious), and a backend which consists of another set of perl scripts.

To run the webinterface in a test environment, run:

export SREVIEW_WDIR=$(pwd)
sreview-config --action=update

and review the config.pm file that this creates. Edit it, either by way of an editor, or by using

sreview-config --set=key=value --action=update

then run sreview-web daemon, and browse to the URL given. To run the webinterface in production, see Mojo::Server::Hypnotoad (or some of the other guides over there), or use the Debian packages provided (which should make sreview-web start at system boot time).

To run the backend, it is recommended that you install gridengine first. In theory, the backend should work without gridengine, but that is not tested. Additionally, you will then need to run a dispatcher per CPU, rather than having just one dispatcher in the whole network (which is annoying).

Once gridengine has been installed, run sreview-dispatch.

If you have any issues with SReview, please file an issue (or better yet, a pull request) on the github issue tracker.

Further reading

See the documentation