Real-Time Video Streaming with DDS

Most middleware solutions rely on a central broker and TCP-based communication, making them unsuitable for video data transmission. In contrast, Data Distribution Service (DDS) is designed for high-performance, peer-to-peer communication using UDP, which makes it well-suited for real-time streaming applications. With DDS video streaming, data is delivered efficiently, without unnecessary intermediaries or bottlenecks.

Using video over DDS enables a data-centric approach to video transmission. Unlike traditional methods, DDS allows video data to be published only to the nodes that need it, using its publish-subscribe model and fine-grained Quality of Service (QoS) control. This ensures reliable delivery with configurable latency, bandwidth, and prioritization settings, making it ideal for systems requiring deterministic performance.

The Architecture of Video over DDS

The architecture of a Video over DDS system typically involves a pipeline that captures, encodes, transmits, receives, and decodes video data.

  1. Video Source: A camera or video file captures the raw stream.
  2. GStreamer Pipeline: Acts as the bridge, capturing the video and encoding it (e.g., H.264).
  3. DDS Publisher: Takes the encoded video frames and publishes them to a DDS topic.
  4. DDS Network: efficiently routes the data via UDP Multicast to interested subscribers.
  5. DDS Subscriber: Listens for the video topic and receives the frames.
  6. Display/Processing: decodes the video for real-time viewing or computer vision analysis.

Why GStreamer + Dust DDS?

Combining GStreamer with Dust DDS leverages the strengths of both technologies:

  • GStreamer Power: GStreamer provides a robust framework for handling various media formats and hardware acceleration, ensuring efficient video encoding and decoding.
  • Dust DDS Efficiency: Dust DDS handles the transport layer with UDP multicast. This avoids the overhead of TCP handshakes and acknowledges, which is critical for maintaining low latency in live video streams.

Key Features & Benefits

  • Ultra-Low Latency: By using UDP and removing central brokers, the system achieves the minimal latency required for teleoperation and remote control.
  • Decoupled Systems: Publishers (cameras) and Subscribers (monitors/AI) do not need to know about each other’s existence, IP addresses, or state. This separates the vision system from the control system.
  • Quality of Service (QoS): DDS provides fine-grained control over data delivery.
    • Reliability: Choose BEST_EFFORT to prioritize speed (dropping late packets) or RELIABLE for guaranteed delivery.
    • Bandwidth Control: Multicast ensures that sending to one person or one hundred takes the same amount of network bandwidth from the sender.

Detailed Use Cases

Robotics and Teleoperation

In remote driving or bomb disposal robots, video lag can cause accidents. Video over DDS ensures that the operator sees what the robot sees instantly, allowing for precise control.

Smart City Surveillance

Traffic cameras can distribute feeds to multiple agencies simultaneously. A single camera feed can be subscribed to by the police department, traffic control center, and an archival system without increasing the load on the camera network interface.

Industrial Monitoring

Automated inspection systems can publish video streams of assembly lines. AI-based subscribers can process these streams for defect detection while a separate monitoring station displays the feed for human supervisors.

Implementation & Demo

Our cross-platform DDS-based video transmission implementation works across multiple environments. The same source code can be compiled to run seamlessly on Windows, Linux (including Android), and ARM-based embedded systems.

You can explore our open-source implementation and try the live demo: