AES67 Target
Introduction
The AES67 Target streams the scene audio as uncompressed PCM over the network using AES67, the open Audio-over-IP (AoIP) standard. It sends the audio as RTP multicast — no video, no compression — so receivers get the full-quality program audio with very low latency. Because it is a pure audio output that runs on both Windows and the headless Linux runtime, it is the right choice for professional audio monitoring and contribution outside Composer Desktop.
Reach for the AES67 Target when you need broadcast-grade audio off the box: feeding an audio monitoring position, handing program audio to an AoIP infrastructure, or previewing a mix on a separate workstation. For audio that travels with video, use the NDI Target; for compressed internet delivery, use the SRT Target or RTMP Target.
What is AES67?
AES67 is an industry-standard way of carrying uncompressed digital audio over a standard IP network:
- Uncompressed PCM — 24-bit (
L24) or 16-bit (L16) samples at 48 kHz, sent as RTP packets. No codec, so no quality loss and no encode/decode delay. - Low latency — audio is packetized in 1 ms chunks and paced out in real time.
- Multicast — one stream can be received by many listeners at once on the local network.
- Self-describing — the session is advertised with an SDP (Session Description Protocol) text, and announced over the network with SAP so receivers can discover it automatically.
- Interoperable — AES67 is supported by a wide range of receivers, and Dante equipment can receive AES67 streams, so this target reaches a Dante network without any Dante-specific software.
Playing the stream
Any AES67-capable receiver can play the audio. The simplest options:
- ffplay — point it at the generated SDP file:
ffplay -protocol_whitelist file,rtp,udp -i composer-aes67.sdp - VLC — open the
.sdpfile (use the L16 bit depth for best VLC compatibility). - Software AES67 / RAVENNA sound cards (e.g. Merging Audio Device on Windows, the RAVENNA ALSA driver or
aes67-linux-daemonon Linux) — these expose the stream as a normal audio device, and lock to it with PTP-grade timing.
The full SDP is shown in the property panel and written to a .sdp file (in the system temp folder by default, or a path you choose). Hand that file to any of the receivers above.
Channels
Choose up to four scene audio channel pairs to include. Each enabled pair is mapped from a scene channel pair (1&2, 3&4, 5&6 or 7&8) and packed into consecutive AES67 output channels, so you can send a simple stereo mix or a multichannel feed.
All enabled pairs travel in a single multichannel stream. AES67 carries only a channel count, not a layout, so a receiver labels an 8-channel stream as "7.1" — that is cosmetic; the data is in order (pair 1 = channels 1&2, pair 2 = 3&4, and so on). To monitor one pair in a stereo player, pick it explicitly instead of letting the player downmix everything together — e.g. with ffmpeg's pan filter, pair 2 is -af "pan=stereo|c0=c2|c1=c3". A proper AES67/Dante receiver takes the channels positionally.
Driving from outside
Every command (Start, Stop) is invokable from the property panel, the HTTP API (/api/invokecommand?targetname=AES67+Target&command=StartCommand), a Connector, or the Script Engine via ExecuteCommand / ExecuteCommandById. Connection status, channel count, and the generated SDP are exposed as readable properties so dashboards and scripts can confirm the stream is live.
Note on synchronisation
This version derives RTP timing from Composer's audio clock and is not yet PTP-locked. A single stream plays correctly on any receiver, but multiple independent AES67 sources cannot be sample-accurately cross-locked to each other until PTP support is added.
AES67 Target - Settings
| Property | Description |
|---|---|
Show advanced options |
Reveals advanced/expert properties in the panel. Off by default — flip to On to see fields like TTL, payload type, SDP file path and the extra channel pairs. |
Configuration
Configuration — multicast destination, encoding and start-up behaviour.
| Property | Description |
|---|---|
Autostart when application starts |
When On, the AES67 target connects automatically when the project loads. Useful for unattended studio machines or automation rigs. |
Multicast address |
The IPv4 multicast group the RTP audio is sent to (224.0.0.0–239.255.255.255). AES67 deployments commonly use the 239.x range. Can only be changed before the target starts. |
Port |
UDP port for the RTP stream (default 5004, the AES67 convention). |
TTL |
(advanced) Multicast time-to-live (hop limit). 1 keeps traffic on the local subnet; raise it to cross routers. Also used for SAP announcements. |
Payload type |
(advanced) RTP dynamic payload type (96–127, default 96). Only change if a receiver requires a specific value. |
Bit depth |
PCM bit depth on the wire. L24 (default) is the AES67-preferred 24-bit payload; L16 is offered for receivers that handle 16-bit more reliably (e.g. VLC). |
Session name |
Session name advertised in the SDP and via SAP. Shown by receivers when they discover the stream. |
SDP file path |
(advanced) Path the generated .sdp file is written to. Leave empty to write a default file in the system temp folder. Point ffplay/VLC at this file to play the stream. |
Announce via SAP |
When On, announce the session via SAP (RFC 2974) so SAP-aware receivers auto-discover it. The .sdp file is written regardless. |
Audio channels
Audio channels — choose which scene audio channel pairs to send. Enabled pairs are packed into consecutive AES67 output channels in order.
| Property | Description |
|---|---|
Pair 1 enabled |
Include audio pair 1 in the stream. |
Pair 1 source |
Scene audio channel pair routed to AES67 pair 1. |
Pair 2 enabled |
(advanced) Include audio pair 2 in the stream. |
Pair 2 source |
(advanced) Scene audio channel pair routed to AES67 pair 2. |
Pair 3 enabled |
(advanced) Include audio pair 3 in the stream. |
Pair 3 source |
(advanced) Scene audio channel pair routed to AES67 pair 3. |
Pair 4 enabled |
(advanced) Include audio pair 4 in the stream. |
Pair 4 source |
(advanced) Scene audio channel pair routed to AES67 pair 4. |
Status
Status — current connection state and the start/stop controls.
| Property | Description |
|---|---|
ConnectionStatus |
Current connection status (Disconnected, Connecting, Connected). Read-only. |
Start |
Begins streaming the audio over multicast and announcing the session. |
Stop |
Stops the stream and removes the session announcement. |
Performance and properties
Performance and properties — runtime stats and the generated SDP.
| Property | Description |
|---|---|
Started |
Timestamp of when the target last started streaming (read-only). |
Channel count |
Number of audio channels currently being sent (read-only). |
Packet rate |
Current packet send rate (read-only). At ptime 1 ms this should sit near 1000 packets/sec when streaming. |
Output bitrate |
Approximate output audio bitrate (read-only). For L24 stereo this is ~2.3 Mbps; scales with channel count and bit depth. A quick sanity check that the channel/bit-depth config matches what you expect. |
SDP |
The generated SDP session description (read-only). Save this to a .sdp file or hand it to a receiver to play the stream. |
Inherits from: AbstractTarget.
See also: AES67 Target in Script Engine Objects.
Related components
- NDI Target — pick this when you need audio and video together on the studio LAN; NDI carries the composed picture as well as the sound.
- SRT Target — compressed audio + video for delivery over unmanaged or internet networks, where uncompressed multicast isn't an option.
- RTMP Target — the RTMP sender-side for pushing to a CDN or third-party live platform.
- ASIO Target — sends audio to a local ASIO sound device on Windows; use it for monitoring on the same machine rather than over the network.
- Audio Channel Strip input — a virtual audio bus useful for building the separate mixes you might route to the AES67 channel pairs.