Skip to content

Receiving & Playback

This guide covers how to receive and play back Flex Video streams on a client device.

RTSP Playback (H.264 / H.265)

RTSP streams encoded with H.264 or H.265 use standard protocols and work with any compatible media player — no custom plugins required.

ffplay

ffplay -rtsp_transport tcp rtsp://<encoder-ip>:8731/<pipeline-id>

VLC

Open a network stream in VLC with the URL:

rtsp://<encoder-ip>:8731/<pipeline-id>

GStreamer

gst-launch-1.0 rtspsrc location=rtsp://<encoder-ip>:8731/<pipeline-id> latency=200 \
  ! queue ! decodebin ! autovideosink

RTSP Playback (AV1)

AV1 streams require a player with AV1 decoding support.

VLC Limitation

VLC does not support real-time AV1 playback over RTSP. Use ffplay, GStreamer, or a TAK application instead.

ffplay

ffplay -rtsp_transport tcp rtsp://<encoder-ip>:8731/<pipeline-id>

GStreamer

gst-launch-1.0 rtspsrc location=rtsp://<encoder-ip>:8731/<pipeline-id> latency=200 \
  ! queue ! decodebin ! autovideosink

Lattice

Flex Video streams can be viewed directly in Lattice when Lattice stream announcements are enabled. Pipelines must use RTSP output. See Stream Announcements for configuration details.

TAK Playback (ATAK / WinTAK / iTAK)

When stream announcements are enabled (CoT, TAK Server, or Lattice), Flex Video streams appear automatically in the Video section of your TAK application. No manual URL configuration is required. Pipelines must use RTSP output.

AV1 Support in TAK

AV1 playback in TAK requires:

  • ATAK 5.5 or higher
  • WinTAK — latest version recommended

Older versions of ATAK and WinTAK support H.264 and H.265 streams only. If your TAK application does not support AV1, configure your pipeline to use H.264 or H.265 as the video codec.

Video + Audio Playback

Codec2 audio playback requires GStreamer with Blackwire plugins. The specific plugins needed depend on your output transport.

RTSP with Audio

RTSP streams carry Codec2 audio as a separate stream alongside video. You need:

  • GStreamer 1.28+
  • Codec2 plugin from Blackwire
gst-launch-1.0 rtspsrc location=rtsp://<encoder-ip>:8731/<pipeline-id> name=src latency=200 \
  src. ! queue ! decodebin ! autovideosink \
  src. ! queue ! application/x-rtp,media=audio ! rtpgstdepay ! codec2dec \
  ! audioconvert ! audioresample ! autoaudiosink

Standard video players (ffplay, VLC) will still play the video portion of the stream — they will simply ignore the Codec2 audio track.

UDP / Multicast with Audio

UDP and multicast streams use the FlexMux container format, which muxes AV1 video and Codec2 audio together. You need:

  • GStreamer 1.28+
  • FlexMux plugin from Blackwire
  • Codec2 plugin from Blackwire

Video + Audio:

gst-launch-1.0 udpsrc port=<port> ! application/x-flexmux ! flexdemux name=demux \
  demux.video ! queue ! av1parse ! dav1ddec ! autovideosink sync=false \
  demux.audio ! queue ! codec2dec ! audioconvert ! audioresample ! autoaudiosink sync=false

Video only (ignore audio):

gst-launch-1.0 udpsrc port=<port> ! application/x-flexmux ! flexdemux name=demux \
  demux.video ! queue ! av1parse ! dav1ddec ! autovideosink sync=false

Multicast:

gst-launch-1.0 udpsrc address=<multicast-address> port=<port> \
  ! application/x-flexmux ! flexdemux name=demux \
  demux.video ! queue ! av1parse ! dav1ddec ! autovideosink sync=false \
  demux.audio ! queue ! codec2dec ! audioconvert ! audioresample ! autoaudiosink sync=false

Plugin Requirements Summary

Output Transport Video Codec Audio Plugins Required
RTSP H.264 / H.265 None None — standard players work
RTSP AV1 None None — use ffplay or GStreamer (not VLC)
RTSP Any Codec2 Codec2 plugin from Blackwire
UDP / Multicast AV1 None FlexMux plugin from Blackwire
UDP / Multicast AV1 Codec2 FlexMux + Codec2 plugins from Blackwire

Getting the Plugins

The Codec2 and FlexMux GStreamer plugins are available for Windows, Linux, and macOS. Contact support@blackwire-ts.com to request the plugins and a sample playback script for your platform.

A standalone player application is planned for a future release.

GStreamer Plugin Path

After receiving the plugins, place them in a directory and set the GST_PLUGIN_PATH environment variable to that directory before running GStreamer.

export GST_PLUGIN_PATH=/path/to/blackwire-plugins