Tex TRAC Spoke Dashboard

 

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 current version of OBS for Windows.

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.

Enter new UNIX username
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.