1. Standalone Voctomix Machine
The simplest setup that is able to record a talk is a camera connected to a PC running Voctomix. This can be done as follows:
Install Debian Stable on a machine. Make the hostname
voctomix1
. We recommend a minimal install: only the base system and optionally, an SSH server. The netinstall image is good for this.Once it is installed, run the following as root:
$ apt install git ansible $ git clone https://salsa.debian.org/debconf-video-team/ansible $ cd ansible
Edit
inventory/group_vars/all
and change the following:ssh_public_keys: - keys: - <Place your ED25519 SSH public key here>
Run:
$ ansible-playbook --inventory inventory/hosts --connection local -l voctomix1 site.yml
When it completes successfully, restart the machine.
You should now have a working voctomix machine. Since there is only one input at the moment, you cannot really mix different streams. The next step is to build an opsis machine to get a second input. To do this, you might need to build a gateway machine first.
1.1. Streaming
Streaming to services such as YouTube is very easy using this setup. It requires setting up the stream on YouTube and then configuring Voctomix to connect to this stream.
Open YouTube Live Dashboard.
Change the Name and Description, setting the Category and Privacy as required.
Note down the Server URL and Stream name/key (which will be displayed as a hidden password until the Reveal button is pressed). These will be used to configure Voctomix using Ansible.
Create an Ansible Vault file for the vault password:
$ echo "changeme" > /root/.ansible-vault $ chmod 600 /root/.ansible-vault
Encrypt the URL and stream name in the form
<URL>/<Stream name>
:$ ansible-vault encrypt_string --vault-password-file=/root/.ansible-vault --name=location <URL>/<Stream name>
Edit
inventory/host_vars/voctomix1.yml
and include the following, changing the bitrates as required:streaming: method: rtmp hq_config: video_bitrate: 2000 # kbps audio_bitrate: 128000 # bps keyframe_period: 60 # seconds rtmp: vaapi: true <Output of ansible-vault encrypt_string>
Rerun ansible:
$ ansible-playbook --vault-password-file=/root/.ansible-vault --inventory inventory/hosts --connection local -l voctomix1 site.yml
Once ansible is finished, opening Voctomix and selecting Stream Live or Stream Loop will start streaming to YouTube. If you wish to run more than one room or schedule when your stream goes live, use the Event tab and schedule the stream. Here you can add cameras for additional rooms (one per room).
1.2. Notes
Ansible can be run from a laptop or other external source. This makes testing
changes much faster than running it locally. You will require a network that
resolves hostnames to IP addresses correctly. It also requires your SSH key to
be present in the authorized_keys
file for root (this will be the case if
your key is in the ssh_public_keys
list and you have run ansible before).
In this case run:
$ ansible-playbook --inventory inventory/hosts -l voctomix1 site.yml
In inventory/group_vars/all
there are two sets of settings which may be of
interest: Blackmagic drivers and Voctomix loops. The Blackmagic drivers
are the proprietary drivers for the HDMI/SDI PCI capture cards that we use. If
you are also using them, uncomment the following and change the URLs to point
to the corresponding package files.
blackmagic:
urls:
- http://example.org/desktopvideo_10.9.5a4_amd64.deb
- http://example.org/desktopvideo-gui_10.9.5a4_amd64.deb
- http://example.org/mediaexpress_3.5.3a1_amd64.deb
dkms_version: 10.9.5a4
The Voctomix loops are shown on the stream when there is no talk happening. In
Voctomix the loop_url
is downloaded and used for the Stream Loop button
when the stream is blanked. bgloop_url
is downloaded and used as the
background for Picture-In-Picture mode when the sources do not cover the entire
frame. If you have loops to use, put the URL for them here:
voctomix:
loop_url: http://example.org/loop/loop.ts
bgloop_url: http://example.org/loop/bgloop.ts