Audio Reshuffling #
Introduced in Nimbra Edge R3.25
The Audio Reshuffling transformation allows the content of audio channels to be mixed and matched in a variety of ways. This transformation is useful when you need to create various output versions of the same content, but with certain audio channels removed or rearranged.
Limitations #
-
Audio Reshuffling only supports transforming common video and audio streams. PIDs other than video and audio may be passed through but the behavior is undefined and may lead to unexpected results such as crashes and corrupted output data.
-
Audio Reshuffling MPTS streams is not supported.
Example scenario #
In the following example, the commentary audio channels are ingested as two mono channels “muxed” as a stereo pair, and needs to be mixed into both channels of the main audio for each language.
graph LR
subgraph Input["Input Streams"]
I1["PID 257
Main Audio
Ch 0: Left
Ch 1: Right"]
I2["PID 258
Commentary
Ch 0: English
Ch 1: Español"]
end
subgraph Output["Output Streams"]
O1["PID 101
Main Audio + English
Ch 0: Left + English
Ch 1: Right + English"]
O2["PID 102
Main Audio + Español
Ch 0: Left + Español
Ch 1: Right + Español"]
end
I1 -->|Left| O1
I1 -->|Right| O1
I1 -->|Left| O2
I1 -->|Right| O2
I2 -->|English| O1
I2 -->|Español| O2
style Input fill:#e1f5ff
style Output fill:#d4edda
This scenario can be translated into the following configuration:

Parameters #
Audio mappings #
Audio mappings are a complex transformation which allows any input audio channel to be mapped to any output audio channel.

In the table, the inputs are defined on the Y-axis (top to bottom), with their PIDs and number of channels to the left.
The outputs are defined on the X-axis (left to right), with their PIDs and number of channels to the top.
The checked cells in the table define which input channels should be mapped to which output channels.
Example mapping #

A simple example is a full passthrough, which would be represented as a diagonal line from the top left to the bottom right, depicted above.
Empty channels #
All output channels must be used. Input channels may be discarded by not mapping them to any output channel.
Passthrough PIDs #
Defines the set of PIDs to be passed through to the output stream without modification.
For example when reshuffling a video stream with multiple audio streams, the video stream should be passed through. The output PID may be different from the input PID.
graph LR
subgraph Input["Input Stream"]
V["Video: PID 256"]
A1["Audio 1: PID 257"]
A2["Audio 2: PID 258"]
S["Subtitles: PID 259"]
end
subgraph Process["Audio Reshuffling"]
P["Passthrough:
256 → 100
259 → 103"]
M["Reshuffle:
257, 258 → 101, 102"]
end
subgraph Output["Output Stream"]
OV["Video: PID 100"]
OS["Subtitles: PID 103"]
OA1["Audio 1: PID 101"]
OA2["Audio 2: PID 102"]
end
V --> P --> OV
S --> P --> OS
A1 --> M --> OA1
A2 --> M --> OA2
style Input fill:#e1f5ff
style Output fill:#d4edda
Encoder settings #
Defines how the audio streams will be encoded. For details about the available options, refer to Audio Transcoding options.