*

Receiving an AES67 stream with GStreamer

Posted on 25/04/2017 by Olivier Crête

GStreamer is great for all kinds of multimedia applications, but did you know it could also be used to create studio grade professional audio applications? For example, with GStreamer you can easily receive a AES67 stream, the standard which allows inter-operability between different IP based audio networking systems and transfers of live audio between profesionnal grade systems.

Figure 1. AES67 at the NAB Show in Las Vegas, April 22-27.


Receiving an AES67 stream requires two main components, the first being the reception of the media itself. AES67 is simple because it's just a stream of RTP packets containing uncompressed PCM data. In other words, this means it can be received with a simple pipeline, such as "udpsrc ! rtpjitterbuffer latency=5 ! rtpL24depay ! ...". There isn't much more needed, as this pipeline will receive the stream and introduce 5ms of latency, which, as long as the network is uncongested, should already sound great.

The second component is the clock synchronization, one of the important things in Pro Audio. The goal of this component is for the sender and the receiver of the audio to use the same clock so that there aren't any glitches introduced by a clock running to fast or too slow. The standard used for this is called the Precise Time Protocol version 2 (PTP), defined by the IEEE 1588-2008 standard. While there are a number of free implementations that can be used as master or slave PTP clocks, GStreamer provides the GstPTPClock class that can act as a slave that can synchronize itself from a PTP clock master on the network.

The AES67 standard also defines a SDP based format to describe all of these elements in a concise format. What it does not describe however, is how to transfer this file from the sender of the audio to the receiver, which is left to an application specific system. Assuming that we can just download the file, there is another very useful GStreamer element that can help us, called "sdpdemux". This is not really a demultiplexer like mp4demux or oggdemux, it is instead an element that reads a SDP file and then creates the appropriate sources based on the information it contains. Basically, this means if the sdp file if downloaded, it can be "played" like any other media file with "gst-play-1.0 file.sdp".

GStreamer is a powerful multimedia framework that can be easily used to create powerful profesionnal multimedia applications. Whether its audio/video playback, capture, editing, transcoding, calling or streaming, Collabora has been working on GStreamer for over a decade and is uniquely positioned to provide the expertise you need to create your A/V device. Let's talk and see how we can help!

Comments (1)

  1. Gordon Luk:
    Apr 27, 2017 at 07:44 AM

    Like AES67 topic very much. Please write more detail steps/commands on play AES67 streaming. Thanks.

    Reply to this comment

    Reply to this comment


Add a Comment





Allowed tags: <b><i><br>Add a new comment:


Latest Blog Posts

XDC 2017 - Links to recorded presentations (videos)

23/09/2017

Many thanks to Google for recording all the XDC2017 talks. To make them easier to watch, here are direct links to each talk recorded at…

DebConf 17: Flatpak and Debian

17/08/2017

Last week, I attended DebConf 17 in Montréal, returning to DebConf for the first time in 10 years (last time was DebConf 7 in Edinburgh).…

Android: NXP i.MX6 on Etnaviv Update

24/07/2017

More progress is being made in the area of i.MX6, etnaviv and Android. Since the last post a lot work has gone into upstreaming and stabilizing…

vkmark: more than a Vulkan benchmark

18/07/2017

Ever since Vulkan was announced a few years ago, the idea of creating a Vulkan benchmarking tool in the spirit of glmark2 had been floating…

Quick hack: Performance debugging Linux graphics on Mesa

29/06/2017

Debugging graphics performance in a simple and high-level manner is possible for all Gallium based Mesa drivers using GALLIUM_HUD, a feature…

Debian armhf VM on arm64 server

20/06/2017

At Collabora one of the many things we do is build Debian derivatives/overlays for customers on a variety of architectures including 32…

Open Since 2005

We use cookies on this website to ensure that you get the best experience. By continuing to use this website you are consenting to the use of these cookies. To find out more please follow this link.

Collabora Ltd © 2005-2017. All rights reserved. Website sitemap.