Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revisionBoth sides next revision
c3tracker:setup [2024/08/28 18:44] kunsic3tracker:setup [2024/10/19 16:50] – better document the "decentralised samba" setup stuebinm
Line 21: Line 21:
   Processing.Path.Outro           /video/intros/camp2023/outro.ts   Processing.Path.Outro           /video/intros/camp2023/outro.ts
      
-  Publishing.Path                 /video/encoded/camp2023/ 
   Publishing.Upload.SkipSlaves    speedy,tweety,blade1,blade2,blade3,blade4   Publishing.Upload.SkipSlaves    speedy,tweety,blade1,blade2,blade3,blade4
   Publishing.UploadTarget         releasing.c3voc.de:/video/encoded/camp2023/   Publishing.UploadTarget         releasing.c3voc.de:/video/encoded/camp2023/
Line 50: Line 49:
  
  
-Please note that the conditions in the "project to worker group" filter are currently evaluated with logical OR. +Please note that the conditions in the "project to worker group" filter are currently always evaluated with logical OR. 
  
 Specifying a property with an empty value, which is often done for EncodingProfile.IsMaster, will match if this property does not exist at all on a ticket. So for EncodingProfile.IsMaster, specifying an empty filter will match on recording tickets which never have this property. Specifying a property with an empty value, which is often done for EncodingProfile.IsMaster, will match if this property does not exist at all on a ticket. So for EncodingProfile.IsMaster, specifying an empty filter will match on recording tickets which never have this property.
Line 58: Line 57:
  
  
-=== Simple: decentralised classic (Variant 2)+=== Simple: single-room setup (Variant 2)
  
 {{drawio>c3tracker:setup-simple.png}} {{drawio>c3tracker:setup-simple.png}}
Line 112: Line 111:
      
  
-=== decentralised pipeline (Variant 3)+=== decentralised pipeline aka "even more samba" (Variant 3)
  
 <panel type="danger" title="Attention">The "decentralized pipeline (Variant 3)" should not be used by inexperienced users. Use the information above to find out how to get this variant working, then adjust/improve the documentation here.</panel> <panel type="danger" title="Attention">The "decentralized pipeline (Variant 3)" should not be used by inexperienced users. Use the information above to find out how to get this variant working, then adjust/improve the documentation here.</panel>
  
-Similar to variant 2, but the release encoder (minion) only mounts the /video/fuse/$roomfrom 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[ReasonIt is not guaranteed that the minion which encoded a talk also does the postprocessing (upload) step.]+Similar to variant 2, but extended to work with multiple rooms. Instead of using rsync, recorded snippets remain on the encoding cubes and ''/video/fuse/$event/$room'' are exposed via samba to the minions, while the encoded and tmp files live on one "central" minion; all other minions mount ''/video/encoded'' and ''/video/tmp'' from the primary minion [reasoningthe tracker cannot guarantee that the machine which encoded a talk also does the postprocessing (upload) step, so all minions have to see the same files].
  
-You have to set the room filters only for the recording cubes, the minions can process talks independently.+Tracker filters have to be set only for the recording cubes, minions do not require any filters (but on smaller events without many minions, a ''EncodingProfile.IsMaster=yes'' filter can be a good idea, so sub formats won't crowd out the queues — they can always be encoded off-site later).
  
-  * On recording cubes:   start systemd units for steps A ''crs-recording-scheduler'', B ''crs-mount4cut'', and C ''crs-cut-postprocessor''         +On recording cubes: start the followin systemd units
-  * On release encoders:  start systemd units for steps D ''crs-encoding'', E ''crs-postencoding'', and F ''crs-postprocessing''+ ''crs-recording-scheduler'' 
 + ''crs-mount4cut'' 
 + ''crs-cut-postprocessor''
  
 +On all minions, including the one acting as storage, do
  
 +  mkdir -p /video/fuse/$event/{$room1, $room2, ..}
 +  mount.cifs -o uid=voc,password= {//$encoder1.lan.c3voc.de,}/video/fuse/$event/$room1
 +  mount.cifs -o uid=voc,password= {//$encoder2.lan.c3voc.de,}/video/fuse/$event/$room2
 +  ...
  
-==== New example with systemd units and case 1 and 5:+On all minions except the one acting as storage, also mount: 
 + 
 +  mount.cifs -o uid=voc,password//$storage.lan.c3voc.de/encoded /video/encoded 
 +  mount.cifs -o uid=voc,password//$storage.lan.c3voc.de/tmp /video/tmp 
 +  mount.cifs -o uid=voc,password= {//$storage.lan.c3voc.de,}/video/intros 
 + 
 +Finally on all minions, including the one acting as storage, start the following systemd units: 
 + * ''crs-encoding'' 
 + * ''crs-postencoding'' 
 + * ''crs-postprocessing'' 
 + 
 +==== Old example with systemd units and case 1 and 5, which was used during jev22 in Munich:
  
 {{drawio>c3tracker:setup-variant-3.png}} {{drawio>c3tracker:setup-variant-3.png}}
  • c3tracker/setup.txt
  • Last modified: 2024/11/04 13:34
  • by jtbx