c3tracker:setup

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
c3tracker:setup [2025/09/19 20:56] andic3tracker:setup [2025/10/01 08:49] (current) kunsi
Line 23: Line 23:
   Processing.Path.Outro           /video/intros/camp2023/outro.ts   Processing.Path.Outro           /video/intros/camp2023/outro.ts
      
-  Publishing.Upload.SkipSlaves    speedy,tweety,blade1,blade2,blade3,blade4+  Publishing.Upload.SkipSlaves    minion254-1,minion254-2,minion254-3,minion254-4
   Publishing.UploadTarget         releasing.c3voc.de:/video/encoded/camp2023/   Publishing.UploadTarget         releasing.c3voc.de:/video/encoded/camp2023/
   Publishing.Tags                 <additional tags>   Publishing.Tags                 <additional tags>
Line 44: Line 44:
 === Worker Filter Examples === Worker Filter Examples
  
 +   
 +  # get all non-master tickets
   EncodingProfile.IsMaster=no   EncodingProfile.IsMaster=no
 +  
 +  # get all master tickets
   EncodingProfile.IsMaster=yes   EncodingProfile.IsMaster=yes
 +  
 +  # get all recording tickets
   EncodingProfile.IsMaster=   EncodingProfile.IsMaster=
 +  
 +  # get all tickets in this room.
   Fahrplan.Room=Servus.at Lab   Fahrplan.Room=Servus.at Lab
  
  
-Please note that the conditions in the "project to worker group" filter are currently always 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.
 +
 +
 +{{.:pasted:20250919-215601.png}}
 == Pipeline setup during event == Pipeline setup during event
  
Line 88: Line 98:
 This variant is typically used for events with more than one room.  This variant is typically used for events with more than one room. 
  
-For bigger events we use the dedicated [[hardware:event-storage|storage]] server in the event server rack, for smaller events one of the minions is typically sufficient. Each recording encoder exposes the files via rsyncd, which are pulled by an rsync process running on this storage machine.+For bigger events we use the dedicated [[hardware:event-storage|storage]] server in the event server rack, for smaller events one of the minions is typically sufficient. If you use a minion as storage machine, you might want to configure `10.73.0.2` (aka `storage.lan.c3voc.de`) as secondary IP address to make things easier:
  
-For each encoderX start rsync on the central storage: +  sudo ip a add dev br0 10.73.200.24/16 
 + 
 + 
 +Each recording encoder exposes the files via rsyncd, which are pulled by an rsync process running on this storage machine. 
 + 
 + 
 +For each encoderX start rsync on the storage machine
  
   sudo systemctl start rsync-from-encoder@encoderX.lan.c3voc.de   sudo systemctl start rsync-from-encoder@encoderX.lan.c3voc.de
  
-Then, start tracker workers on storage: +If you use a minion as storage machineyou have start the tracker manually (on storage.lan.c3voc.de they are started by default) 
 + 
 +  sudo systemctl start crs-worker.target 
 +   
 +which starts 
 + 
 +- crs-recording-scheduler (A) 
 +- crs-mount4cut.service   (B) 
 +- crs-cut-postprocessor   (C) 
 +- crs-encoding0, crs-encoding1 (D) 
 +- crs-postencoding        (E) 
 +- crs-postprocessing      (F)
  
-  `sudo systemctl start crs-worker.target` (only needed if you don't use `storage.lan.c3voc.de` - worker scripts get started automatically) 
  
  
 ==== Minion setup ==== Minion setup
  
-To allow the encoding workers to do their jobthey need to mount the storage first: `sudo crs-mount <storage location>`+To allow get additional release encoding workers on the (other) minionsyou need to connect to these an mount the storage machine first:  
 + 
 +  ssh minionX.lan.c3voc.de 
 +  sudo crs-mount <storage location> 
 + 
 +After mounting, you can start the tracker encoding workers: 
  
-After mounting, you can start the tracker encoding workers: `sudo systemctl start crs-encoding.service`+  sudo systemctl start crs-encoding0.service
  
-The minion VMs running inside our event colo case automatically mount `storage.lan.c3voc.de` via cifs and start their worker scripts. You usually do not need to touch them.+The virtual minion's living in [[hardware:server-case|event colo case]] automatically mount `storage.lan.c3voc.de` via CIFS and start their worker scripts. You usually do not need to touch them.
      
  
Line 112: Line 143:
 At small events, when all talks are finished for today, you can use the recording encoder PCs to encode master MP4 files.  At small events, when all talks are finished for today, you can use the recording encoder PCs to encode master MP4 files. 
  
-First: Stop voctocore:+First – stop voctocore:
  
   sudo systemctl stop voctomix2-voctocore   sudo systemctl stop voctomix2-voctocore
Line 131: Line 162:
 <panel type="danger" title="Attention">The "decentralized pipeline" 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" 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 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 [reasoning: the 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].+Similar to variant B, 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 [reasoning: the 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].
  
 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). 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).
  • c3tracker/setup.1758308210.txt.gz
  • Last modified: 2025/09/19 20:56
  • by andi