Uninett’s sister institution CESNET is offering a simplistic tool for low-latency video conferencing named Ultragrid. The tool is open source and runs on most desktop OSes (Linux, MacOS and Windows). The tool targets user groups requiring low-latency videoconferencing with high resolution video and high quality audio, e.g. for musical, artistic or medical collaboration.
Ultragrid officially requires an open high capacity fixed Internet connection, e.g. of 1Gbps or more, especially if high resolution video is to be transported efficiently. Dedicated capturing and play-out hardware is also recommended, e.g. 4k cameras and capture cards and/or high end audio cards.
Such 1 Gbps “high end” open Internet accesses is unfortunately not yet common for the average household. Nor is advanced capturing and play-out hardware. Most home users have at best 100Mbps networks access, run NAT routers with WiFi the last hop to client laptops which have build in camera and audio hardware. So… Ultragrid cannot help home users… or can it?
As a result of the global covid-19 situation spring 2020, Uninett and NMH has experimented with Ultragrid from home-to-home, i.e. from a laptop behind a NAT router in one home in Oslo and another laptop behind another NAT router in a home in Trondheim. And… It works!
Here is the recipe
- Install Ultragrid according to the instructions for your OS.
- Open a web browser and visit https://speedtest.net
- Note down you external IPv4 address (presented next to the “man symbol”)
- Run a speed test and note down your download and upload rates.
- As Ultragrid do not support any session initiation protocol you need to meet your peer via some other collaboration tool (e.g. email, phone, https://letsmeet.no) to exchange IPv4 addresses and download rates.
- Start Ultragrid’s graphical client
- Select the video source which match your build in laptop web cam. Note: It may have a rather strange name. Trail and error may be necessary. On success your camera video stream should appear in both preview windows.
- Select a suitable video source mode. High frame rate (e.g. 30 fps or more) is recommended to enable smooth and fast video. You may have to accept lower resolutions to achieve this, e.g. 640×480 “VGA” size.
- Select the audio capture source which match your build in default audio system. Typically
portaudiofor Linux and Windows and
coreaudiofor MacOS. The uv-meter on the right hand side of your Ultragrid client should go green and start moving.
- Select audio playback source too. Most likely the same as for audio capture.
- Select a video compression scheme, e.g.
VP8, and set the video bit-rate to something lower than both your upload rate and you peers download rate, e.g. max 70% of the lowest of those rate.
- Enter your peer’s ip address as network destination, and everything should be ready….
To increase the probability that your home NAT router will cooperate (and route your peer’s media traffic to your laptop) both peers should hit their start buttons as simultaneous as possible. (An outgoing flow to an IP address and port combination will normally open up for incoming flows from a matching address port combination.)
Any luck?…. If not you may have more than basic NAT functionality running in one of those home routers, or maybe you need to lower you bitrate some what.
Hooking your laptop up via an “old fashion” cable is without doubt recommended. Wifi loose a lot of packet and will introduce audio crackle and video glitches.
Headsets for both peers are also essential. Ultragrid do not run echo canceling (to avoid introducing delay and/or hamper audio quality) hence you risk audio feedback if you are not careful with microphone and speaker placement. If headsets are inappropriate, make sure to have directional microphones directed towards the audio source and placed as close as possible, place speakers behind the microphones (at a fair distance), and adjust audio levels carefully.
Especially for audio, the internal latency in your laptop may be an issue. There are accordingly some ways, depending on your OS-type, you can reduce this latency:
- Mac OS: Turn off ambient noise reduction
- Ubuntu Linux: Adjust settings of pulse audio module
When it works, it is indeed faster than other collaboration tools like the WebRTC based ones or Zoom or Skype or WebEx etc. You may have to ask your family to go offline while you run your session though…