[FFmpeg-trac] #5941(undetermined:new): Dolby E corrupted when remuxed
FFmpeg
trac at avcodec.org
Fri Nov 11 18:06:59 EET 2016
#5941: Dolby E corrupted when remuxed
-------------------------------------+-------------------------------------
Reporter: leoenc | Type: defect
Status: new | Priority: normal
Component: | Version:
undetermined | unspecified
Keywords: dolby | Blocked By:
Blocking: | Reproduced by developer: 0
Analyzed by developer: 0 |
-------------------------------------+-------------------------------------
I have found a strange issue with ffmpeg.
I am trying to remux a Dolby E track. It is important that the data will
be completely untouched when remuxed otherwise it is unusable when decoded
in a Dolby E decoder.
The data gets corrupted when using the Dolby E track as the only audio
input but NOT when being loaded along with a regular PCM audio.
I have uploaded a Dolby E sample here:
https://www.datafilehost.com/d/c1cff95e
The same sample was used for both CLIs below, the one that works and the
one that doesn't.
First the one that does work:
(Note that Dolby E is actually a single track with 2 channels, but
MediaInfo identifies it as 2 tracks, this is expected)
ffmpeg.exe -y -i video_source.avs -i audio_source_0.avs -i dolby_e.wav
-map 0:0 -c:a pcm_s24be -c:v prores_ks -qscale:v 32 -profile:v 0 -map 1:1
-filter:a:0 "pan=mono|c0=c0" -map 1:1 -filter:a:1 "pan=mono|c0=c1" -map
2:0 -filter:a:0 "pan=mono|c0=c0" video.mov
ffmpeg version 3.2 Copyright (c) 2000-2016 the FFmpeg developers
built with gcc 5.4.0 (GCC)
configuration: --enable-gpl --enable-version3 --disable-w32threads
--enable-dxva2 --enable-libmfx --enable-nvenc --enable-avisynth --enable-
bzlib --enable-libebur128 --enable-fontconfig --enable-frei0r --enable-
gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libbs2b
--enable-libcaca --enable-libfreetype --enable-libgme --enable-libgsm
--enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-
libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264
--enable-libopenjpeg --enable-libopus --enable-librtmp --enable-
libschroedinger --enable-libsnappy --enable-libsoxr --enable-libspeex
--enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-
amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-
libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-
libxvid --enable-libzimg --enable-lzma --enable-decklink --enable-zlib
libavutil 55. 34.100 / 55. 34.100
libavcodec 57. 64.100 / 57. 64.100
libavformat 57. 56.100 / 57. 56.100
libavdevice 57. 1.100 / 57. 1.100
libavfilter 6. 65.100 / 6. 65.100
libswscale 4. 2.100 / 4. 2.100
libswresample 2. 3.100 / 2. 3.100
libpostproc 54. 1.100 / 54. 1.100
Input #0, avisynth, from 'video_source.avs':
Duration: 00:02:32.24, start: 0.000000, bitrate: 0 kb/s
Stream #0:0: Video: rawvideo (I420 / 0x30323449), yuv420p, 1920x1080,
25 fps, 25 tbr, 25 tbn, 25 tbc
Guessed Channel Layout for Input Stream #1.1 : stereo
Input #1, avisynth, from 'audio_source_0.avs':
Duration: 00:02:32.24, start: 0.000000, bitrate: 0 kb/s
Stream #1:0: Video: rawvideo (BGRA / 0x41524742), bgra, 640x480, 25
fps, 25 tbr, 25 tbn, 25 tbc
Stream #1:1: Audio: pcm_s32le, 48000 Hz, stereo, s32, 3072 kb/s
Guessed Channel Layout for Input Stream #2.0 : stereo
Input #2, wav, from 'dolby_e.wav':
Duration: 00:02:32.24, bitrate: 2304 kb/s
Stream #2:0: Audio: pcm_s24le ([1][0][0][0] / 0x0001), 48000 Hz,
stereo, s32 (24 bit), 2304 kb/s
[Parsed_pan_0 @ 000000000d2ccbe0] Pure channel mapping detected: 0
[Parsed_pan_0 @ 000000000d2cc3c0] Pure channel mapping detected: 1
Output #0, mov, to 'video.mov':
Metadata:
encoder : Lavf57.56.100
Stream #0:0: Video: prores (prores_ks) (apco / 0x6F637061),
yuv422p10le, 1920x1080, q=2-31, 200 kb/s, 25 fps, 12800 tbn, 25 tbc
Metadata:
encoder : Lavc57.64.100 prores_ks
Stream #0:1: Audio: pcm_s24be (in24 / 0x34326E69), 48000 Hz, mono,
s32, 1152 kb/s
Metadata:
encoder : Lavc57.64.100 pcm_s24be
Stream #0:2: Audio: pcm_s24be (in24 / 0x34326E69), 48000 Hz, mono,
s32, 1152 kb/s
Metadata:
encoder : Lavc57.64.100 pcm_s24be
Stream #0:3: Audio: pcm_s24be (in24 / 0x34326E69), 48000 Hz, stereo,
s32 (24 bit), 2304 kb/s
Metadata:
encoder : Lavc57.64.100 pcm_s24be
Stream mapping:
Stream #0:0 -> #0:0 (rawvideo (native) -> prores (prores_ks))
Stream #1:1 -> #0:1 (pcm_s32le (native) -> pcm_s24be (native))
Stream #1:1 -> #0:2 (pcm_s32le (native) -> pcm_s24be (native))
Stream #2:0 -> #0:3 (pcm_s24le (native) -> pcm_s24be (native))
Press [q] to stop, [?] for help
frame= 22 fps=0.0 q=-0.0 size= 1531kB time=00:00:00.84
bitrate=14925.8kbitsframe= 45 fps= 44 q=-0.0 size= 3233kB
time=00:00:01.76 bitrate=15049.8kbitsframe= 68 fps= 44 q=-0.0 size=
4937kB time=00:00:02.68 bitrate=15089.4kbitsframe= 80 fps= 44 q=-0.0
Lsize= 5892kB time=00:00:03.16 bitrate=15274.1kbits/s speed=1.73x
video:4116kB audio:1772kB subtitle:0kB other streams:0kB global
headers:0kB muxing overhead: 0.070707%
Exiting normally, received signal 2.
MediaInfo of output - Dolby E data is correctly identified:
Audio #1
ID : 2
Format : PCM
Format settings, Endianness : Big
Format settings, Sign : Signed
Codec ID : in24
Duration : 14 s 440 ms
Bit rate mode : Constant
Bit rate : 1 152 kb/s
Channel(s) : 1 channel
Sampling rate : 48.0 kHz
Bit depth : 24 bits
Stream size : 1.98 MiB (8%)
Language : English
Default : Yes
Alternate group : 1
Audio #2
ID : 3
Format : PCM
Format settings, Endianness : Big
Format settings, Sign : Signed
Codec ID : in24
Duration : 14 s 440 ms
Bit rate mode : Constant
Bit rate : 1 152 kb/s
Channel(s) : 1 channel
Sampling rate : 48.0 kHz
Bit depth : 24 bits
Stream size : 1.98 MiB (8%)
Language : English
Default : No
Alternate group : 1
Audio #3
ID : 4-1
Format : Dolby E
Mode : 24
Format settings, Endianness : Big
Muxing mode : SMPTE ST 337
Codec ID : in24
Duration : 14 s 422 ms
Bit rate mode : Constant
Bit rate : 2 304 kb/s
Channel(s) : 6 channels
Channel positions : Front: L C R, Side: L R, LFE
Sampling rate : 48.0 kHz
Frame rate : 25.000 FPS (1920 spf)
Bit depth : 20 bits
Stream size : 3.96 MiB (16%)
Language : English
Default : No
Alternate group : 1
Audio #4
ID : 4-2
Format : Dolby E
Mode : 24
Format settings, Endianness : Big
Muxing mode : SMPTE ST 337
Codec ID : in24
Duration : 14 s 422 ms
Bit rate mode : Constant
Bit rate : 2 304 kb/s
Channel(s) : 2 channels
Channel positions : Front: L R
Sampling rate : 48.0 kHz
Frame rate : 25.000 FPS (1920 spf)
Bit depth : 20 bits
Stream size : 3.96 MiB (16%)
Language : English
Default : No
Alternate group : 1
Now the CLI that doesn't work as expected:
ffmpeg.exe -v 9 -loglevel "verbose" -y -i video_source.avs -i dolby_e.wav
-map 0:0 -c:a pcm_s24be -c:v prores_ks -profile:v 0 -qscale:v 32 -map 1:0
-filter:a:0 "pan=stereo|c0=c0" video.mov
ffmpeg version 3.2 Copyright (c) 2000-2016 the FFmpeg developers
built with gcc 5.4.0 (GCC)
configuration: --enable-gpl --enable-version3 --disable-w32threads
--enable-dxva2 --enable-libmfx --enable-nvenc --enable-avisynth --enable-
bzlib --enable-libebur128 --enable-fontconfig --enable-frei0r --enable-
gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libbs2b
--enable-libcaca --enable-libfreetype --enable-libgme --enable-libgsm
--enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-
libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264
--enable-libopenjpeg --enable-libopus --enable-librtmp --enable-
libschroedinger --enable-libsnappy --enable-libsoxr --enable-libspeex
--enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-
amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-
libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-
libxvid --enable-libzimg --enable-lzma --enable-decklink --enable-zlib
libavutil 55. 34.100 / 55. 34.100
libavcodec 57. 64.100 / 57. 64.100
libavformat 57. 56.100 / 57. 56.100
libavdevice 57. 1.100 / 57. 1.100
libavfilter 6. 65.100 / 6. 65.100
libswscale 4. 2.100 / 4. 2.100
libswresample 2. 3.100 / 2. 3.100
libpostproc 54. 1.100 / 54. 1.100
Input #0, avisynth, from 'video_source.avs':
Duration: 00:02:32.24, start: 0.000000, bitrate: 0 kb/s
Stream #0:0: Video: rawvideo, 1 reference frame (I420 / 0x30323449),
yuv420p, 1920x1080, 25 fps, 25 tbr, 25 tbn, 25 tbc
[wav @ 00000000025bbda0] parser not found for codec pcm_s24le, packets or
times may be invalid.
Last message repeated 1 times
Guessed Channel Layout for Input Stream #1.0 : stereo
Input #1, wav, from 'dolby_e.wav':
Duration: 00:02:32.24, bitrate: 2304 kb/s
Stream #1:0: Audio: pcm_s24le ([1][0][0][0] / 0x0001), 48000 Hz,
stereo, s32 (24 bit), 2304 kb/s
[graph 0 input from stream 0:0 @ 0000000000dde260] w:1920 h:1080
pixfmt:yuv420p tb:1/25 fr:25/1 sar:0/1 sws_param:flags=2
[auto-inserted scaler 0 @ 0000000000dde980] w:iw h:ih flags:'bicubic'
interl:0
[format @ 0000000000dde680] auto-inserting filter 'auto-inserted scaler 0'
between the filter 'Parsed_null_0' and the filter 'format'
[auto-inserted scaler 0 @ 0000000000dde980] w:1920 h:1080 fmt:yuv420p
sar:0/1 -> w:1920 h:1080 fmt:yuv422p10le sar:0/1 flags:0x4
[graph 1 input from stream 1:0 @ 000000000ae6fa80] tb:1/48000
samplefmt:s32 samplerate:48000 chlayout:0x3
[Parsed_pan_0 @ 00000000025fef00] o0 = 1 i0 + 0 i1
[Parsed_pan_0 @ 00000000025fef00] o1 = 0 i0 + 0 i1
[Parsed_pan_0 @ 00000000025fef00] Pure channel mapping detected: 0 M
Output #0, mov, to 'video.mov':
Metadata:
encoder : Lavf57.56.100
Stream #0:0: Video: prores (prores_ks), 1 reference frame (apco /
0x6F637061), yuv422p10le, 1920x1080, q=2-31, 200 kb/s, 25 fps, 12800 tbn,
25 tbc
Metadata:
encoder : Lavc57.64.100 prores_ks
Stream #0:1: Audio: pcm_s24be (in24 / 0x34326E69), 48000 Hz, stereo,
s32 (24 bit), 2304 kb/s
Metadata:
encoder : Lavc57.64.100 pcm_s24be
Stream mapping:
Stream #0:0 -> #0:0 (rawvideo (native) -> prores (prores_ks))
Stream #1:0 -> #0:1 (pcm_s24le (native) -> pcm_s24be (native))
Press [q] to stop, [?] for help
frame= 22 fps=0.0 q=-0.0 size= 1308kB time=00:00:00.84
bitrate=12754.8kbitsframe= 30 fps=0.0 q=-0.0 Lsize= 1856kB
time=00:00:01.16 bitrate=13108.4kbits/s speed=1.68x
video:1535kB audio:320kB subtitle:0kB other streams:0kB global headers:0kB
muxing overhead: 0.092096%
Input file #0 (video_source.avs):
Input stream #0:0 (video): 30 packets read (93312000 bytes); 30 frames
decoded;
Total: 30 packets (93312000 bytes) demuxed
Input file #1 (dolby_e.wav):
Input stream #1:0 (audio): 80 packets read (327360 bytes); 80 frames
decoded (54560 samples);
Total: 80 packets (327360 bytes) demuxed
Output file #0 (video.mov):
Output stream #0:0 (video): 30 frames encoded; 30 packets muxed (1571739
bytes);
Output stream #0:1 (audio): 80 frames encoded (54560 samples); 80
packets muxed (327360 bytes);
Total: 110 packets (1899099 bytes) muxed
Exiting normally, received signal 2.
This is the MediaInfo for the output (only audio section):
Dolby E is not detected - Format is being identified as regular PCM.
Audio
ID : 2
Format : PCM
Format settings, Endianness : Big
Format settings, Sign : Signed
Codec ID : in24
Duration : 6 s 295 ms
Bit rate mode : Constant
Bit rate : 2 304 kb/s
Channel(s) : 2 channels
Channel positions : Front: L R
Sampling rate : 48.0 kHz
Bit depth : 24 bits
Stream size : 1.73 MiB (18%)
Language : English
Default : Yes
Alternate group : 1
--
Ticket URL: <https://trac.ffmpeg.org/ticket/5941>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list