Installation Guide
Install EOS Webcamera Utility
EOS Webcamera Utility will be used to stream the video from the Canon DSLR camera.
Install EOS Webcamera Utility for Windows. Once installed, restart the PC.
| EOS Webcamera Utility will not activate until PC has been rebooted. |
Install OBS Studio
OBS Studio will be used to capture the EOS Webcamera Utility stream.
Install obs-virtural-cam
obs-virtural-cam is used to present the OBS stream as a webcamera.
Install obs-virtural-cam for Windows. Activate it within OBS Studio from the Tools → VirtualCam menu. Click the Start button, and then close the dialog box.
Install Node.js
Node.js will be used for the local web server (UI, hardware control).
Install current version of Node.js for Windows 10 64-bit. Once finished node should be accessible from Windows command prompt.
Install WSL
Windows Subsystem for Linux (WSL) will be used to execute Linux only components (i.e. Janus Gateway).
To install, open PowerShell as Administrator and run:
> dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
> dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
> shutdown /r
Install Ubuntu
Once WSL installation is complete, launch the Microsoft Store and install desired Linux distribution. The remainder of the installation guide assumes Ubuntu 20.04.
Wait for installation to complete. When prompted to “Enter new UNIX username”, input desired username and password.

| It is best to use a username that does not contain any whitespace. |
See Microsoft Docs for more information.
Install Janus
Janus Gateway is used as a WebRTC server to handle the display and recording of video streams.
Install Dependencies
Begin by updating Linux packages:
$ sudo apt update
$ sudo apt upgrade
Next, install packages needed by Janus Gateway:
$ sudo apt install libmicrohttpd-dev libjansson-dev libssl-dev libsrtp2-dev libsofia-sip-ua-dev libglib2.0-dev libopus-dev libogg-dev libcurl4-openssl-dev liblua5.3-dev libconfig-dev pkg-config gengetopt libtool automake
$ sudo apt install libwebsockets-dev libnanomsg-dev libnice-dev libconfig-dev librabbitmq-dev libavformat-dev libusrsctp-dev libnss3-dev make
To avoid issues during runtime, the SRTP library provided by the platform will be replaced with one compiled from source linked against NSS.
Start by removing platform SRTP library:
$ sudo apt remove libsrtp2-dev libsrtp2-1
Fetch latest libsrtp source, compile with NSS, and then install:
$ cd ~
$ wget https://github.com/cisco/libsrtp/archive/v2.3.0.tar.gz
$ tar xfv v2.3.0.tar.gz
$ cd libsrtp-2.3.0/
$ ./configure --prefix=/usr --enable-nss
$ make shared_library
$ sudo make install
Build Janus
Janus is now ready to be compiled and installed. Be sure to generate configuration files nnas well.
$ cd ~
$ git clone https://github.com/meetecho/janus-gateway.git
$ cd janus-gateway
$ sh autogen.sh
$ ./configure --prefix=/opt/janus
$ make
$ sudo make install
$ sudo make configs
Generate SSL Certificates
For secure communication (HTTPS) the system will need an SSL certificate. A self signed one can be generated with OpenSSL from the Linux terminal:
$ cd ~
$ openssl genrsa -out key.pem
$ openssl req -new -key key.pem -out csr.pem
$ openssl x509 -req -days 9999 -in csr.pem -signkey key.pem -out cert.pem
Copy them to Janus installation:
$ cd ~
$ sudo mkdir -p /opt/janus/share/cert/ && sudo cp *.pem /opt/janus/share/cert/
Configure Janus
Janus configuration can be found in “/opt/janus/etc/janus/janus.jcfg“.
WebTC forces secure communication, so the HTTPS needs to be enabled, and SSL certificate location needs to be specified. HTTP configuration is read from “/opt/janus/etc/janus/janus.transport.http.jcfg“. Example config:
$ cat /opt/janus/etc/janus/janus.transport.http.jcfg
general: {
json = "indented" # Whether the JSON messages should be indented (default),
# plain (no indentation) or compact (no indentation and no spaces)
base_path = "/janus" # Base path to bind to in the web server (plain HTTP only)
http = true # Whether to enable the plain HTTP interface
port = 8088 # Web server HTTP port
https = true # Whether to enable HTTPS (default=false)
secure_port = 8089 # Web server HTTPS port, if enabled
}
certificates: {
cert_pem = "/opt/janus/share/cert/cert.pem"
cert_key = "/opt/janus/share/cert/key.pem"
}
Start Janus
To start Janus, execute the binary:
$ /opt/janus/bin/janus
Install UI
The UI runs in the web browser and is served from a Node.js server.
Begin by extracting “textrac.zip” folder to the Desktop.
Browse to the Janus installation and copy the certificates to the UI folder (now located on the Desktop). The certificates can be found by opening “\\wsl$\Ubuntu\opt\janus\share\cert” in File Explorer (explorer.exe).
Start Web Server
Now that the certificates have been copied over, the UI can be started from the Windows command prompt by:
> cd %USERPROFILE%/Desktop/textrac
> http-server . -p 8080 -S -C cert.pem -K key.pem
Starting up http-server, serving . through https
Available on:
https://<ip-address>:8080
https://127.0.0.1:8080
Hit CTRL-C to stop the server
Take note of the address returned from the command. On the server, browse to https://<ip-address>:8080/server.html to begin listening for an incoming video call.
Initiate Video Call
On the remote machine, browse to https://<ip-address>:8080 to initiate a video call with the server. To end the call, close the browser tab.