Search the Asterisk Blog

An Asterisk Video Update

By Joshua C. Colp

Over the past few years we’ve been working to improve the video support in Asterisk. We initially started with adding stream support[1] in a backwards compatible fashion so we could individually address streams and add/remove them. Next we added support for REMB[2] to be able to control the video bitrate with supported clients. We continued improving the experience with the addition of NACK (packet retransmission) and packet reordering[3]. This past year we extended video support some more by adding partial support for transport-cc[4].

Video Feedback

The transport-cc functionality available in Chrome and now partially in Asterisk is a mechanism by which feedback about received packets can be provided to the sender. It allows the sender to know which specific pcakets are lost, if they are received in bursts, and other information. The sender can then adjust how it is sending to better cope with the environment. To a user this action is transparent and in fact it is only necessary to enable the “webrtc” option to enable the functionality. It is negotiated automatically and used when available. Asterisk supports producing these transport-cc feedback messages. It does not currently support consuming the feedback message and using it.

Video Aware Jitterbuffer

Coming soon is support for video in the JITTERBUFFER dialplan function[5]. When enabled the jitterbuffer will buffer video frames as well as audio. The audio jitterbuffer acts as the controlling entity for the buffer and video frames will be buffered up to the current audio. This works by synchronizing the timestamp of both the audio and video, and providing the expected video alongside the audio when it comes out of the jitterbuffer. This has substantially improved the lip synchronization under poor network conditions where the jitterbuffer is having to buffer a lot of audio.

[1] https://blogs.asterisk.org/2017/02/01/stream-support-asterisk/
[2] https://blogs.asterisk.org/2018/05/16/receiver-estimated-maximum-bitrate-support/
[3] https://blogs.asterisk.org/2018/08/15/improving-video-quality-in-the-real-world/
[4] https://blogs.asterisk.org/2019/06/05/transport-cc-improving-feedback-for-better-video-quality/
[5] https://gerrit.asterisk.org/c/asterisk/+/12870

No Comments Yet

Get the conversation started!

Add to the Discussion

Your email address will not be published. Required fields are marked *

About the Author

Joshua C. Colp

Joshua Colp is a Senior Software Developer at Digium and a long time Asterisk developer. He originally started in the community submitting simple patches and grew into improving and creating new core components of Asterisk itself. He is a self-taught programmer who believes in finding the balance between doing things the way they should be done and doing what is right for the people using the software. In his spare time he enjoys smashing fax machines.

See All of Joshua C.'s Articles

More From
The Digium Blog

  • No items