**This is an old revision of the document!**
Project setup
- Create tracker project (you can also clone a matching project to have prefilled properties)
- Import schedule.xml
- Set all master tickets from staging to staged via mass-edit
- Adjust project properties, recommendations: (full reference at the bottom of the page)
- Compare project properties with previous instalment of the same event
optimal properties from current project
Project Project.Slug eh19 Processing Processing.Loudnorm.Enable yes Processing.BasePath /video Processing.Path.Intros /video/intros/eh19 Processing.Path.Outro /video/intros/eh19/outro.ts Publishing Publishing.Path /video/encoded/eh19 Publishing.Upload.SkipSlaves speedy,tweety,blade1,blade2,blade3,blade4 Publishing.UploadOptions -i /video/upload-key Publishing.UploadTarget upload@releasing.c3voc.de:/video/encoded/eh19 Publishing.Voctoweb.Enable yes Publishing.Voctoweb.Path /cdn.media.ccc.de/events/eh2019/ Publishing.Voctoweb.Thumbpath /static.media.ccc.de/conferences/eh2019 Publishing.Voctoweb.Slug eh19 Publishing.Voctoweb.Tags easterhegg, Wien, c3w Publishing.Voctoweb.Url https://media.ccc.de/v/ Publishing.YouTube.Category 27 Publishing.YouTube.Enable yes Publishing.YouTube.Privacy public Publishing.YouTube.Tags easterhegg, Wien, bun intended, Chaos Computer Club Wien, c3w Publishing.YouTube.TitlePrefix Easterhegg 2019 - Publishing.YouTube.Token 1/XXXXXXXXXXXX Publishing.Mastodon.Enable yes Publishing.Twitter.Enable yes Record Record.Container TS Record.Slides yes
Worker Filter Examples
EncodingProfile.IsMaster=no EncodingProfile.IsMaster=yes EncodingProfile.IsMaster= Fahrplan.Room=Servus.at Lab
Pipeline setup during event
During event setup of the pipeline, you have to decide if you want leave the MPEG TS snippets only on the recording cubes or also rsync them to a central storage:
Simple: decentralised classic (Variant 2)
This variant is only practical if you have only one room, or at least one release encoder (aka Minions) for each recording cube. When using this variant with multiple rooms in one Tracker project (like at JEV22), you also have to set room filters in the tracker worker queues.
For every worker:
- set room filters in tracker e.g.
Fahrplan.Room = Foobar
For every recoding cube:
- start tracker worker:
sudo systemctl start crs-worker.target
For each minion:
- mount filesystems from encoder cube:
sudo crs-mount <storage location>
- start tracker scripts for encoding:
sudo systemctl start crs-encoding.service
centralised storage (rsync) (Variant 1)
The first variant is typically used for events with more than one room. For bigger events we use the dedicated storage server in the event server rack, for smaller events a USB connected hard drive to one of the minions might be sufficient. Each recording cube exposes the files via rsyncd, which are pulled by an rsync process running inside a screen on the storage pc.
For each encoderX start rsync on the central storage: sudo systemctl start rsync-from-encoder@encoderX.lan.c3voc.de
Then, start tracker workers on storage: sudo systemctl start crs-worker.target
Minion setup
To allow the encoding workers to do their job, they need to mount the storage first: sudo crs-mount <storage location>
After mounting, you can start the tracker encoding workers: sudo systemctl start crs-encoding.service
Cube as worker setup
At small events, when the talks are finished for today, you can use the recording cubes to encode master MP4 files.
First: Stop voctocore.
The rest is very similar to above, but with different mounts so /video/capture
is not hidden:
- snippet.bash
sudo mount -t cifs -o uid=voc,password= //storage.lan.c3voc.de/fuse /video/fuse sudo mount -t cifs -o uid=voc,password= //storage.lan.c3voc.de/video/intros /video/intros sudo mount -t cifs -o uid=voc,password= //storage.lan.c3voc.de/tmp /video/tmp sudo mount -t cifs -o uid=voc,password= //storage.lan.c3voc.de/encoded /video/encoded
decentralised pipeline (Variant 3)
Outdated
Information for “decentralized pipeline (Variant 3)” is outdated and should not be used by inexperienced users. Use the information above to find out how to get this variant working, then adjust the documentation here.
Similar to variant 2, but the release encoder (minion) only mounts the /video/fuse/$room/ from each recording cube. The encoded and tmp files life on one minion, the secondary minions mount /video/encoded and /video/tmp from the primary minion. [Reason: It is not guaranteed that the minion which encoded a talk also does the postprocessing (upload) step.]
You have to set the room filters only for the recording cubes, the minions can process talks independently.
Modify /opt/crs/tools/tracker3.0/screenrc-scripts
:
- On recording cubes: comment out steps
D-encoding
,E-postencoding
, andF-postprocessing
- On release encoders: comment out steps
A-recording-scheduler
,B-mount4cut
, andC-cut-postprocessor
After modification, start the workers via the main screenrc on both recording cubes and release encoders:
sudo ./start screenrc-pipeline
Example with case 5 and 6:
on recording cube, without intros either copy or mount the intros from their source (here encoder6)
sudo mount -t cifs -o password= {//storage.lan.c3voc.de,}/video/intros cd /opt/crs/tools/tracker3.0/ sudo ./start screenrc-pipeline # with steps A, B and C
on master minion (in this example minion5)
mount -t cifs -o password= //encoder5.lan.c3voc.de/video/fuse/podstock2019/Aussenbuehne /video/fuse/podstock2019/Aussenbuehne mount -t cifs -o password= //encoder6.lan.c3voc.de/video/fuse/podstock2019/Innenbuehne /video/fuse/podstock2019/Innenbuehne mount -t cifs -o password= //encoder6.lan.c3voc.de/video/intros /video/intros cd /opt/crs/tools/tracker3.0/ sudo ./start screenrc-pipeline # with steps D, E, F
(ensure that samba is installed on this master minion)
on other minions
mount -t cifs -o password= {//encoder5.lan.c3voc.de,}/video/fuse/podstock2019/Aussenbuehne mount -t cifs -o password= {//encoder6.lan.c3voc.de,}/video/fuse/podstock2019/Innenbuehne mount -t cifs //storage.lan.c3voc.de/encoded /video/encoded mount -t cifs -o password= //storage.lan.c3voc.de/encoded /video/encoded mount -t cifs -o password= //storage.lan.c3voc.de/tmp /video/tmp mount -t cifs -o password= {//storage.lan.c3voc.de,}/video/intros cd /opt/crs/tools/tracker3.0/ sudo ./start screenrc-encoding-only # only step E