[FFmpeg-devel] MLP Multichannel for DVD-Audio

Paul B Mahol onemda at gmail.com
Fri Sep 4 20:05:52 EEST 2020


On 9/4/20, fabrice nicol <fabrnicol at gmail.com> wrote:
> I've recently been integrating the ffmpeg encoder into the DVD-Audio
> creating software dvda-author (https://dvd-audio.sourceforge.io),
> command-line options --encode and --mlp-files
>
> 1. The good news is that multichannel ffmpeg-encoded MLP audio overall
> plays back fine on a DVD-Audio player (using ffmpeg MLP encoder in its
> current git master branch).
>
> 2. The bad news is  that for 16-bit audio, for 6 channels 96 kHz only,
> the audio playback is audible, not hissing, but quite out of sync, with
> echo effects.
>
> 3. Hints at issues
>
> Using 6/16/96 MLP files generated by a proprietary tool from the same
> wav files, the corresponding DVD-Audio discs play fine.
>
> I made diffs of 6/16/96 MLP files and what comes out is that proprietary
> tools use 2 streams for multichannel, whilst the ffmpeg MLP encoder does
> seem to use just one. This strategy seems to fail for 6/16/96.
>
> In the two bytes after sync major tags (0xF8726FBB): a 6/16/96
> proprietary-encoded mlp file will be encoded 0x00 11, which means the
> bit depth and sample rate are likewise encoded for two streams, whilst
> ffmpeg-encoded mlp files at corresponding offsets will be encoded 0F1F,
> which looks like the second stream bit depth and sample rate are not set.
>
> 4. Related issues
>
> The compression rate of proprietary tools is massively higher when using
> channels with high audio redundancy. I built limit cases, in which the
> original PCM multichannel is just one channel identically replicated to
> the other channels. Below is a table of corresponding compression
> outcomes. The extra compression offered by the proprietary tool is
> massive for multichannel, noticeable for stereo 48 kHz and negligible in
> other cases.
>
> channels/bit depth/sample rate kHz 	ffmpeg (B) [a]
> 	proprietary (B) [b]
> 	Extra compression = [(b-a)/a]
> 1_16_176 	3037274 	3041922 	0 %
> 1_16_192 	3237328 	3241950 	0 %
> 1_16_88 	1619992 	1622424 	0 %
> 1_16_96 	1757208 	1759616 	0 %
> 2_16_176 	3073990 	3078694 	0 %
> 2_16_192 	3276318 	3280994 	0 %
> 2_16_48 	1019046 	753728 	-26 %
> 2_24_48 	1019046 	753728 	-26 %
> 2_24_88 	1659590 	1588338 	-4 %
> 2_24_96 	1799546 	1684128 	-6 %
> 3_16_44_Lf_Rf_S 	1852486 	611528 	-67 %
> 3_16_48_Lf_Rf_C 	2618092 	765854 	-71 %
> 3_16_88_Lf_Rf_C 	4579130 	848546 	-81 %
> 3_16_96_Lf_Rf_C 	4965218 	883742 	-82 %
> 3_24_44_Lf_Rf_S 	2415790 	1168382 	-52 %
> 3_24_48_Lf_Rf_S 	2618092 	1614514 	-38 %
> 3_24_88_Lf_Rf_S 	4578426 	1596642 	-65 %
> 3_24_96_Lf_Rf_S 	4962790 	1692648 	-66 %
> 4_16_44_Lf_Rf_Ls_Rs 	2431314 	618832 	-75 %
> 4_16_48_Lf_Rf_Ls_Rs 	3436386 	774834 	-77 %
> 4_16_88_Lf_Rf_Ls_Rs 	6054248 	857118 	-86 %
> 4_16_96_Lf_Rf_C_LFE 	6564428 	893794 	-86 %
> 4_24_44_Lf_Rf_Ls_Rs 	3171060 	1168038 	-63 %
> 4_24_48_Lf_Rf_Ls_Rs 	3436386 	1671526 	-51 %
> 4_24_88_Lf_Rf_Ls_Rs 	6053300 	1604566 	-73 %
> 4_24_96_Lf_Rf_Ls_Rs 	6560980 	1701338 	-74 %
> 5_16_44_Lf_Rf_LFE_Ls_Rs 	3043118 	626716 	-79 %
> 5_16_48_Lf_Rf_C_Ls_Rs 	4259698 	785564 	-82 %
> 5_16_88_Lf_Rf_LFE_Ls_Rs 	7572646 	866594 	-89 %
> 5_16_96_Lf_Rf_LFE_Ls_Rs 	8210736 	903800 	-89 %
> 5_24_44_Lf_Rf_Ls_Rs_LFE 	3969708 	1180472 	-70 %
> 5_24_48_Lf_Rf_Ls_Rs_LFE 	4301712 	1712056 	-60 %
> 5_24_88_Lf_Rf_Ls_Rs_LFE 	7571414 	1612840 	-79 %
> 5_24_96_Lf_Rf_LFE_Ls_Rs 	8206676 	1710184 	-79 %
> 6_16_44_Lf_Rf_C_LFE_Ls_Rs 	3592854 	633664 	-82 %
> 6_16_48_Lf_Rf_C_LFE_Ls_Rs 	5078744 	796240 	-84 %
> 6_16_88_Lf_Rf_C_LFE_Ls_Rs 	9011680 	876884 	-90 %
> 6_16_96_Lf_Rf_C_LFE_Ls_Rs 	9770740 	914614 	-91 %
> 6_24_44_Lf_Rf_C_LFE_Ls_Rs 	4686942 	1196392 	-74 %
> 6_24_48_Lf_Rf_C_LFE_Ls_Rs 	5078744 	795452 	-84 %
> 6_24_88_Lf_Rf_C_LFE_Ls_Rs 	9010250 	1621502 	-82 %
> 6_24_96_Lf_Rf_C_LFE_Ls_Rs 	9765734 	1720278 	-82 %
>
> My question is: is this caused by the fact that the ffmpeg MLP encoder
> only uses one substream?
>

Yea, most likely.

> Fabrice Nicol
>
>
>
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".


More information about the ffmpeg-devel mailing list