[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