Log in

View Full Version : Extra flags on audio track when playing .mpls files get removed/ignored when remuxing


K.i.N.G
3rd May 2016, 20:03
When I play the .mpls file from a bluray i can see there are some extra flags on the audio track, like these for example:
bsid : 6
dialnorm : -27
dialnorm/String : -27 dB
compr : -0.28
compr/String : -0.28 dB
acmod : 7
lfeon : 1
dialnorm_Average : -27
dialnorm_Average/String : -27 dB
dialnorm_Minimum : -27
dialnorm_Minimum/String : -27 dB
dialnorm_Maximum : -27
dialnorm_Maximum/String : -27 dB
dialnorm_Count : 654
compr_Average : -0.48
compr_Average/String : -0.48 dB
compr_Minimum : -3.25
compr_Minimum/String : -3.25 dB
compr_Maximum : 4.22
compr_Maximum/String : 4.22 dB
compr_Count : 654
format_identifier : AC-3
Source : 00000.m2ts

When i remux this .mpls to mkv these flags arent present anymore...
They look kinda 'important' to me as it looks like these include some extra info on how my A/V receiver should balance the channels and/or how much dynamic compression should be applied..?

Is there a way to preserve them/copy them over when remuxing to mkv?
I'm using mkvtoolnix (gui version). I also tried tsmuxer (to m2ts) but that didnt keep the flags either and m2ts doesnt support chapters (which i'd like to keep).

tebasuna51
3rd May 2016, 22:02
...
They look kinda 'important' to me as it looks like these include some extra info on how my A/V receiver should balance the channels and/or how much dynamic compression should be applied..?

Nope, these container metadata are useless and don't need be preserved.

- Dialog Normalization is stored in each AC3 frame header and must be constant along the whole AC3 stream (by construction), like you see average=min=max values.

Concept of Dialog Normalization:
Dolby Digital recommend play all audio dialogs at a average value of -31 dB to normalize the volume of all streams.
Then a typical Dialnorm value of -27 dB, like here, implies than all the audio must be atenuated by -4 dB.

But only DD streams folow this recommendation, other encoders don't use that system, even don't have a similar mechanism (only DTS have that but is rarely used).

A Dolby Digital decoder must apply always this atenuation, and we finish with low volume than equivalent streams encoded with other codec.
Then the problem than DD want solve (change the knob volume between streams) become in a new problem: change the knob volume betwen DD streams and other sources.

To avoid this new problem a option is ignore the Dialnorm value, for that when we use eac3to to extract DD streams, by default (use -keepDialnorm to preserve) the Dialnorm value is replaced by -31 dB to avoid atenuation by decoders. When eac3to extract a DD stream becomes in a AC3 stream because don't folow the DD recomendations.

Also free AC3 encoders (Aften, ffmpeg) by default use always -31 dB for Dialnorm.


- Dynamic Range Compression values is stored in each AC3 frame header and can be different for each frame/block. Know previously average/min/max values (metadata stored in container, not in AC3 stream) is useless to play the stream.

A player can be instructed to apply full compression (recommended for night mode), a % of compression (can vary for players, somme offer only half compression or nothing) or don't apply compression at all (recommended for full quality).

Only DD streams have these compression values associated to each frame/block, the objetive is help DD decoders to apply compression without analyze volume. Modern and more powerfull players can aply compression (night mode) without the help of this values to other streams than DD's.

When use free AC3 encoders (Aften, ffmpeg) is not recommended use Dynamic Range Compression modes.