Both sides previous revision Previous revision Next revision | Previous revision Next revisionBoth sides next revision |
voctomix [2017/08/20 09:27] – [Practical tips] mazdermind | voctomix [2017/12/22 15:28] – derpeter |
---|
* [[voctomix:voctopanel]] | * [[voctomix:voctopanel]] |
* [[voctomix:voctomidi]] | * [[voctomix:voctomidi]] |
| |
| ** related projects** |
| * [[https://github.com/crossan007/PiCamFleetMapper | PiCamFleetMapper]] |
| * [[https://github.com/CarlFK/voctomix-outcasts | vocotmix-outcasts]] |
| |
| |
</WRAP> | </WRAP> |
</WRAP> | </WRAP> |
| |
== Installation on VOC-Hardware | == Installation on VOC hardware |
The Installation on VOC Machines (Encoder-Cubes and Mixer-Notebooks) is managed through [[Ansible]]. The Ansible Deployment creates the following Things on the Encoder-Cubes: | The installation on VOC machines (encoder cubes and mixer notebooks) is managed through [[Ansible]]. The Ansible deployment creates the following things on the encoder-cubes: |
* Source of last Release in ''/opt/voctomix/release'' | * Source of last release in ''/opt/voctomix/release'' |
* Config-File for Voctocore in ''/opt/voctomix/voctocore-config.ini'' | * Config file for voctocore in ''/opt/voctomix/voctocore-config.ini'' |
* Scripts to source/sink/playout Video-Content into/out of the Voctocore in ''/opt/voctomix/scripts'' | * Scripts to source/sink/playout video- content into/out of the voctocore in ''/opt/voctomix/scripts'' |
* Systemd-Units in ''/etc/systemd/system/*.service'' | * Systemd units in ''/etc/systemd/system/*.service'' |
* A System-Status-Script in ''/usr/bin/voctomix-status'' | * A system status script in ''/usr/bin/voctomix-status'' |
| |
Ansible always resetd the Setup to a default configuration, where all SDI-Ports are used as Campera-INs, no Playout is active and all Supporting-Scripts are enabled. Ansible generated the following Systemd-Units for Voctomix: | Ansible always resets the setup to a default configuration, where all SDI-ports are used as camera INs, no playout is active and all supporting scripts are enabled. Ansible generated the following Systemd units for Voctomix: |
^ Systemd-Unit ^ Description ^ | ^ Systemd-Unit ^ Description ^ |
| bgloop-source.service | Source the Background-Loop from ''/opt/voc/share/bgloop.ts'' | | | bgloop-source.service | Source the background loop from ''/opt/voc/share/bgloop.ts'' | |
| decklink-source-[NAME].service | Such a Unit is generated for each Decklink-Input-Device present at the time of the ansible-run. Source Video- and Audio from this Decklink-Input | | | decklink-source-[NAME].service | Such a unit is generated for each Decklink input device present at the time of the ansible-run. Source video- and audio from this Decklink input | |
| grabber-source.service | Source Video-Input from the Epiphan Framegrabber via Ethernet | | | grabber-source.service | Source Video-Input from the Epiphan framegrabber via Ethernet | |
| grabber-to-[NAME]-playout.service | Such a Unit is generated for each Decklink-Output-Device present at the time of the ansible-run. Playout Video- and Silence from the Framegrabber-Input to the Decklink-Output | | | grabber-to-[NAME]-playout.service | Such a unit is generated for each Decklink output device present at the time of the ansible-run. Playout video- and silence from the framegrabber input to the Decklink output | |
| grabber-to-framebuffer-playout.service | Playout Video from the Framegrabber-Input to the HDMI/DVI/VGA Output on the Mainboard | | | grabber-to-framebuffer-playout.service | Playout video from the framegrabber input to the HDMI/DVI/VGA output on the mainboard | |
| music-source.service | Source Music from ''/opt/voc/share/pause-music/'' into the Pause-Loop | | | music-source.service | Source Music from ''/opt/voc/share/pause-music/'' into the pause loop | |
| pause-source.service | Souece Pause-Loop from ''/opt/voc/share/pause.ts'' | | | pause-source.service | Source pause loop from ''/opt/voc/share/pause.ts'' | |
| program-to-[NAME]-playout.service | Such a Unit is generated for each Decklink-Output-Device present at the time of the ansible-run. Playout Video- and Audio from the Program-Output (=what is being recorded; before the Stream-Blanker) to the Decklink-Output | | | program-to-[NAME]-playout.service | Such a unit is generated for each Decklink output device present at the time of the ansible-run. Playout video- and audio from the program output (=what is being recorded; before the stream-blanker) to the Decklink output | |
| program-to-framebuffer-playout.service | Playout Video from the Program-Output (=what is being recorded; before the Stream-Blanker) to the HDMI/DVI/VGA Output on the Mainboard | | | program-to-framebuffer-playout.service | Playout video from the program output (=what is being recorded; before the stream-blanker) to the HDMI/DVI/VGA output on the mainboard | |
| recording-sink.service | Record the Program-Output to Segmented .ts-Files in ''/video'' | | | recording-sink.service | Record the program output to segmented .ts-files in ''/video'' | |
| streaming-hd-sink.service | Encode and Stream the Streamblanker-Output to rtmp://127.0.0.1:1935/stream/s{{ room_number }}_native_hd | | | streaming-hd-sink.service | Encode and stream the stream-blanker output to <code>rtmp://127.0.0.1:1935/stream/s{{ room_number }}_native_hd</code> | |
| streaming-sd-sink.service | Encode and Stream the Streamblanker-Output to rtmp://127.0.0.1:1935/stream/s{{ room_number }}_native_sd | | | streaming-sd-sink.service | Encode and stream the stream-blanker output to <code>rtmp://127.0.0.1:1935/stream/s{{ room_number }}_native_sd</code> | |
| stream-to-[NAME]-playout.service | Such a Unit is generated for each Decklink-Output-Device present at the time of the ansible-run. Playout Video- and Audio from the Stream-Output (=what is being streamed; after the Stream-Blanker) to the Decklink-Output | | | stream-to-[NAME]-playout.service | Such a unit is generated for each Decklink-Output-Device present at the time of the ansible-run. Playout video and audio from the stream output (=what is being streamed; after the stream-blanker) to the Decklink output | |
| stream-to-framebuffer-playout.service | Playout Video from the Stream-Output (=what is being streamed; after the Stream-Blanker) to the HDMI/DVI/VGA Output on the Mainboard | | | stream-to-framebuffer-playout.service | Playout video from the stream output (=what is being streamed; after the stream-blanker) to the HDMI/DVI/VGA output on the mainboard | |
| voctocore.service | The Voctocore | | | voctocore.service | The Voctocore | |
| |
All Supporting Units are ''WantedBy=voctocore.service'' as well as the request ''Requires=voctocore.service'' and ''After=voctocore.service''. | All supporting units are ''WantedBy=voctocore.service'' as well as the request ''Requires=voctocore.service'' and ''After=voctocore.service''. |
This means: | This means: |
* The Supporting Units only start up when the Core has successfully started up first | * The supporting units only start up when the core has successfully started up first |
* When enabled, the Supporting Units automatically start up when the Core is up | * When enabled, the supporting units automatically start up when the core is up |
* The Supporting Units go down when the Core goes down | * The supporting units go down when the core goes down |
| |
| |
</code> | </code> |
| |
If you leave out the enable/disable the change will be temporary and restarting the voctocore-Unit or the encoder-Cube will reset the change. | If you leave out the enable/disable the change will be temporary and restarting the voctocore unit or the encoder cube will reset the change. |
| |
Similar to enable Playout to the Framebuffer, you can do: | Similar to enable playout to the Framebuffer, you can do: |
<code> | <code> |
sudo systemctl start stream-to-framebuffer-playout.service sudo systemctl enable stream-to-framebuffer-playout.service | sudo systemctl start stream-to-framebuffer-playout.service sudo systemctl enable stream-to-framebuffer-playout.service |
Leaving out the enable/disable the change will also here be temporary. | Leaving out the enable/disable the change will also here be temporary. |
| |
Playout to the Framebuffer can always be interrupted by funny tty0 printouts at any time :) | Playout to the framebuffer can always be interrupted by funny tty0 printouts at any time :) |
Also think about whether you want to playout the Program-Output (before the Streamblanker) or the Streaming-Output (after the Streamblanker). | Also think about whether you want to playout the program output (before the stream-blanker) or the streaming output (after the stream-blanker). |
| |
Creating a background for the supersource from an image file | Creating a background for the supersource from an image file |
| |
== Debugging | == Debugging |
To see the Output of the various Units, you can use a command like this: | To see the output of the various units, you can use a command like this: |
<code> | <code> |
journalctl -au decklink-source-decklink-sdi-2.service | journalctl -au decklink-source-decklink-sdi-2.service |
journalctl -a -f -u grabber-source.service | journalctl -a -f -u grabber-source.service |
== Control Commands | == Control Commands |
Some Useful Control-Commands when you only have a Shell (see also [[https://github.com/voc/voctomix/tree/master/example-scripts/control-server|example-scripts/control-server]]: | Some useful control commands when you only have a shell (see also [[https://github.com/voc/voctomix/tree/master/example-scripts/control-server|example-scripts/control-server]]: |
For more details see https://github.com/voc/voctomix/blob/voctopanel/voctocore/lib/commands.py | For more details see https://github.com/voc/voctomix/blob/voctopanel/voctocore/lib/commands.py |
<code> | <code> |