Atlas Knowledge Base
Dashboard
Transmuxer

Transmuxer


Transmuxer

The Transmuxer converts a media stream into the format the viewer needs. When a stream's audio or video is not already in a format the other side can play, the Transmuxer changes it; when it already is, the stream passes straight through.

Overview

Different consumers need different formats - a browser plays H.264 video and Opus audio, while a camera or phone may send something else. The Transmuxer sits between the source and the consumer and makes the two match.

It works one stream at a time and only does as much work as it has to:

  • Pass-through - when the stream is already in the format the consumer needs, it is forwarded unchanged. This costs almost no processing.
  • Transcode - when the format has to change (for example one video codec to another, or a phone's audio to Opus), the stream is decoded and re-encoded. This uses more CPU.

This is why a host carries far more pass-through streams than transcoded ones, and why the codec a camera or phone uses affects how much capacity it consumes.

  • Runs: As needed. A stream's Transmuxer is created on demand when a consumer needs a format the source does not already provide, and one instance owns a given stream across the cluster.
  • Required: Required wherever streams must be viewed or played in a different format from the source - in practice, any deployment with video for browsers.
  • Depends on: NATS, and GStreamer (the Transmuxer always uses a media-processing pipeline).

Configuration

The Transmuxer needs no per-camera or per-call setup - it picks the right conversion automatically from the source format and what the consumer needs. Its codec pipelines - which formats it understands and how it converts between them - are Innovative-managed and should not be changed.

In normal operation there is nothing to configure on the Transmuxer.

FAQ

Do I need to configure the Transmuxer for each camera or call?

No. It selects the conversion automatically from the source format and what the viewer needs. The conversions themselves are Innovative-managed.

Why does video reach SBN Media but not play in the browser?

Browser playback depends on the Transmuxer producing a format the browser can play. If a stream arrives but will not play, check that a Transmuxer is running on the host and that it has not timed out waiting for the source.

Why do some streams use far more CPU than others?

Streams already in the target format pass through with almost no cost; streams that must be transcoded are decoded and re-encoded, which is much heavier. Plan capacity around how many streams actually need transcoding.

Related pages

  • SBN Media Overview (SBN-Media/overview)
  • Installing and Configuring SBN Media (SBN-Media/installation)
  • WebRTC Peer (SBN-Media/Telephony/webrtc-peer)
  • SIP Media (SBN-Media/Telephony/sip-media)


Was this helpful?