cgo-streamer

command module
v0.0.0-...-26ed1f2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 10, 2021 License: MIT Imports: 1 Imported by: 0

README

Real time media over QUIC

There are various options to use QUIC for real time media e.g. for video conferencing. This project contains an implementation of different strategies for transmitting real-time videos over QUIC and UDP along with a simple Benchmarking tool that can be used to evaluate the performance by analysing the quality of the received video. The project uses CGO to wrap gstreamer for video processing and the quic-go implementation of the QUIC protocol. The quic-go implementation has been forked and extended by an implementation of the datagram draft and all quic internal congestion control has been disabled in order to implement separate congestion control in the application (see Congestion Control).

Installation

Make sure you have go and gstreamer installed, then just run make.

To run a video server that serves a simple testvideo:

./qrt serve

then, in a second terminal, start a client to receive and display the video:

./qrt stream

The commands support a range of different options to configure the transport parameters which can be listed with

./qrt help [command]

Congestion Control

Currently, the SCReAM congestion control algorithm implementation from EricssonResearch via another CGO wrapper is supported. SCReAM congestion control can be enabled using the -s flag on server and stream commands.

Benchmarking

The bench command can be used to run and evaluate a number of setups automatically. Before running this command you need to create some virtual interfaces which can be done using the vnetns.sh script with up as parameter (down to clean up afterwards). The program will create a directory hierarchy containing information about each test run and evaluation metrics like the SCReAM statistics and SSIM and PSNR statistics for each run. The python script plot_all.py can be used to plot some visualizations of these statistics.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL