Gateworks’ SBCs are widely used for streaming audio and video over the network via Ethernet, 802.11 WiFi, or 4G LTE Cellular.Networks are dynamic, whether from network load, RF interference or signal strength thus throughput will vary requiring intelligent and flexible applications to adjust as necessary.
Adaptive Bitrate Streaming is the concept of adjusting the quality of video and/or audio depending on the quality of the network connection or server load. This type of technology is widely implemented throughout technology today, evident in streaming services like Netflix and YouTube.
Gateworks created an example GStreamer application named gst-variable-rtsp-server
. This application includes a mechanism for auto-adjusting the encoding bitrate depending on the number of clients connected to the server.
gst-variable-rtsp-server
can change either the quant-param
or the bitrate
parameters of the imxvpuenc_h264
encoder. The quant-param
will only be used if the pipeline is set to Variable Bitrate mode (VBR). This can be accomplished by passing in the -b 0
flag to the program. Otherwise, gst-variable-rtsp-server
will change the bitrate
of the stream.
The algorithm used to change both bitrate
and quant-param
are based on the --steps
input (defaulted to 5). For example, if using the default steps value of 5, if the min bitrate was 500 and max bitrate was 2000, it would take 5 clients to adjustfrom the highest to the lowest quality.
In the below example, the rtsp server was configured to degrade from 10mbps to 400kbps bitrate within 5 steps. Please see below for our results.
gst-variable-rtsp-server --steps=5 --max-bitrate=10000 --min-bitrate=400 --src-element=imxv4l2videosrc --video-in=/dev/video0
For higher resolution images of the above, please view here (10Mbps), here (2.8Mbps), and here (400Kbps).
For more information and sample GStreamer pipelines, please visit our Software Wiki Pages:
- Gateworks Adaptive Bitrate Wiki
- Gateworks
gst-variable-rtsp-server
Wiki gst-variable-rtsp-server
source code
About Gateworks
Gateworks designs and manufacturers rugged & industrial single board computers for rugged & industrial embedded applications. All SBCs are rated -40 to +85C, Made in the USA & feature ARM processors, Mini-PCIe slots and wide voltage inputs. Our state-of-the-art onsite SMT facility allows for easy customization for high volume projects!