Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
| c3tracker:setup [2024/10/19 16:50] – better document the "decentralised samba" setup stuebinm | c3tracker:setup [2025/10/01 08:49] (current) – kunsi | ||
|---|---|---|---|
| Line 6: | Line 6: | ||
| * Adjust project properties, recommendations: | * Adjust project properties, recommendations: | ||
| * Compare project properties with previous instalment of the same event | * Compare project properties with previous instalment of the same event | ||
| + | |||
| ==== optimal properties from current project ==== | ==== optimal properties from current project ==== | ||
| + | Replace `camp2023` with your chosen tracker project slug. | ||
| Meta.Acronym | Meta.Acronym | ||
| Line 21: | Line 23: | ||
| Processing.Path.Outro | Processing.Path.Outro | ||
| | | ||
| - | Publishing.Upload.SkipSlaves | + | Publishing.Upload.SkipSlaves |
| Publishing.UploadTarget | Publishing.UploadTarget | ||
| Publishing.Tags | Publishing.Tags | ||
| Line 42: | 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 " | + | Please note that the conditions in the " |
| + | |||
| + | Specifying a property with an empty value, which is often done for `EncodingProfile.IsMaster`, | ||
| - | 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, | + | {{.: |
| == Pipeline setup during event | == Pipeline setup during event | ||
| Line 57: | Line 69: | ||
| - | === Simple: single-room setup (Variant | + | === Simple: single-room setup (Variant |
| {{drawio> | {{drawio> | ||
| - | This variant is only practical if you have only one room, or at least one release encoder (aka [[hardware: | + | This variant is practical if you have only one room, or at least one release encoder (aka [[hardware: |
| 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. | 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: | For every worker: | ||
| - | * set room filters in tracker e.g. `Fahrplan.Room = Foobar` | + | * set `EncodingProfile.IsMaster = yes` to avoid encoding all sub formats |
| + | * (set room filters in tracker e.g. `Fahrplan.Room = Foobar`, but this cannot be used at the same times as the above, see the warning below) | ||
| For every recoding cube: | For every recoding cube: | ||
| Line 76: | Line 89: | ||
| - | === centralised storage (rsync) (Variant | + | <panel type=" |
| + | |||
| + | === centralised storage (rsync) (Variant | ||
| {{drawio> | {{drawio> | ||
| - | The first variant is typically used for events with more than one room. For bigger events we use the dedicated [[hardware: | + | This variant is typically used for events with more than one room. |
| + | |||
| + | For bigger events we use the dedicated [[hardware: | ||
| + | |||
| + | sudo ip a add dev br0 10.73.200.24/ | ||
| + | |||
| + | |||
| + | Each recording | ||
| + | |||
| + | |||
| + | For each encoderX start rsync on the storage | ||
| + | |||
| + | sudo systemctl start rsync-from-encoder@encoderX.lan.c3voc.de | ||
| + | |||
| + | If you use a minion as storage machine, you 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 | ||
| + | - crs-cut-postprocessor | ||
| + | - crs-encoding0, | ||
| + | - crs-postencoding | ||
| + | - crs-postprocessing | ||
| - | 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` (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 allow get additional release |
| - | After mounting, you can start the tracker encoding workers: `sudo systemctl start crs-encoding.service` | + | ssh minionX.lan.c3voc.de |
| + | | ||
| - | The minion | + | After mounting, you can start the tracker encoding workers: |
| + | |||
| + | sudo systemctl start crs-encoding0.service | ||
| + | |||
| + | The virtual | ||
| | | ||
| - | ==== Cube as worker setup | ||
| - | At small events, when the talks are finished for today, you can use the recording | + | ==== Encoder PCs as release encoding workers |
| + | |||
| + | At small events, when all talks are finished for today, you can use the recording | ||
| + | |||
| + | First – stop voctocore: | ||
| + | |||
| + | sudo systemctl stop voctomix2-voctocore | ||
| - | First: Stop voctocore. | ||
| The rest is very similar to above, but with different mounts so `/ | The rest is very similar to above, but with different mounts so `/ | ||
| Line 111: | Line 158: | ||
| | | ||
| - | === decentralised pipeline aka "even more samba" (Variant | + | === decentralised pipeline aka "even more samba" (Variant |
| - | <panel type=" | + | <panel type=" |
| - | Similar to variant | + | Similar to variant |
| 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 '' | 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 '' | ||
| - | On recording | + | On recording |
| * '' | * '' | ||
| * '' | * '' | ||
| Line 141: | Line 188: | ||
| * '' | * '' | ||
| * '' | * '' | ||
| + | |||
| ==== Old example with systemd units and case 1 and 5, which was used during jev22 in Munich: | ==== Old example with systemd units and case 1 and 5, which was used during jev22 in Munich: | ||
| Line 147: | Line 195: | ||
| optional: configure `10.73.0.2` (aka `storage.lan.c3voc.de`) on the master minion as secondary ip | optional: configure `10.73.0.2` (aka `storage.lan.c3voc.de`) on the master minion as secondary ip | ||
| + | |||
| + | sudo ip a add dev br0 10.73.200.24/ | ||
| on recording cubes, mount or copy the intros from their source – here `storage.lan.c3voc.de` | on recording cubes, mount or copy the intros from their source – here `storage.lan.c3voc.de` | ||
| Line 157: | Line 207: | ||
| # check if everything is running as expected – you might have to disable/ | # check if everything is running as expected – you might have to disable/ | ||
| sudo systemctl status -n 0 crs-* | sudo systemctl status -n 0 crs-* | ||
| + | |||
| on master minion (in this example `storage.lan.c3voc.de`) | on master minion (in this example `storage.lan.c3voc.de`) | ||