Compression of video

I want to transmit video from a usb 2.0 camera (1600 x 1200 576 Mbps) connected to a single board computer over WIFI-n or WIFI-ac.

1. Obviously, compression is required... I am therefore interested in the compression scheme used by virtual here. What is the specification and how capable is it of compressing video?

2. When I tried the server on a raspberry PI 3 I experienced significant lag in the transmitted video. Was this due to a transmission bottle- neck or the CPU?
I was using the un-optimised version of the server so what is the performance difference between the optimised and un-optimised version of the raspberry pi servers?

many thanks,
Daniel

#2

Hi Daniel,

1. VirtualHere uses LZ4 ( https://github.com/lz4/lz4 )

2. The Pi3 CPU only has a single usb port. So everything - network, USB device I/O etc runs on a single port which will be easily overwhelmed with all the data, and will cause bottlenecks in the i/o. The broadcom pi3 cpu is very fast so its not the bottleneck, it is definitely the single USB port. You need to run it e.g on a lattepanda or something with a fast gigabit ethernet port and fast cpu with multiple usb ports. (Dont use windows on the lattepanda, use debian). the boards on friendlyarm.com or orange pi are also good and cheap. Make sure you use a wifi with at least 2T2R channels, either n or ac. When running linux on the embedded board you must use a well supported (ideally mainline) or e.g armbian for good performance.

#3

Hi Michael,
thank you for the reply...
In regard to your second point, good to know that cpu is not the problem .... I have measured the usb data rate (uncompressed)... It is 23.5 megabytes per second.... So if we assume a compression ration of say about 2 ... then I need at least 100 megabits transfer speeds. I am so far struggling to find single board computers with decent wifi performance. I would perfer on board wifi rather than using a dongle but maybe I have to consider such possibilities too.
Do you have any further suggestions?

#4

You need to take into account wifi latency, there is a lot more wifi latency than via ethernet cable due to the nature of the physical medium. So video performance will always be much better when sent via ethernet than via wifi (even ac). I dont know of any single-board computers with decent wifi performance for streaming high definition video. You will need to use a usb dongle connected to a usb 3.0 port on the board. Realtek 8812AU (2T2R), or better 8814AU (4T4R) are recommended because the linux driver support is good.