[FFmpeg-trac] #8690(avformat:new): FFmpeg treats all audio samples as sync samples for fragmented MP4 files

FFmpeg trac at avcodec.org
Thu May 28 17:18:36 EEST 2020


#8690: FFmpeg treats all audio samples as sync samples for fragmented MP4 files
----------------------------------+--------------------------------------
             Reporter:  berndcz   |                     Type:  defect
               Status:  new       |                 Priority:  normal
            Component:  avformat  |                  Version:  git-master
             Keywords:            |               Blocked By:
             Blocking:            |  Reproduced by developer:  0
Analyzed by developer:  0         |
----------------------------------+--------------------------------------
 Summary of the bug:
 It seems that currently all audio samples (AVMEDIA_TYPE_AUDIO) belonging
 to a fragmented MP4 file are treated as sync samples (keyframe = 1,
 mov.c:4937).
 Since there are audio formats where samples depend on other samples, e.g.
 xHE-AAC , the sample metadata should not be overwritten.

 How to reproduce:
 Attached hereto, you can find a fragmented MP4 file containing one xHE-AAC
 audio track. For each fragment, only the first file format sample is
 signalled as sync sample. However, when seeking into the file, FFmpeg is
 forwarding non-sync samples to the decoder (please have a look at the
 libfdk_aac log message)..

 {{{
 % ./ffmpeg -acodec libfdk_aac -ss 10 -i ./fragmented-5s_frag_duration-2ch-
 xheaac-64kbps.mp4 skip_start.wav
 ffmpeg version N-97830-gb707abf091 Copyright (c) 2000-2020 the FFmpeg
 developers
   built with gcc 9 (Ubuntu 9.3.0-10ubuntu2)
   configuration: --enable-libfdk-aac --disable-encoder=aac --disable-
 decoder=aac --disable-decoder=aac_latm
   libavutil      56. 46.100 / 56. 46.100
   libavcodec     58. 84.100 / 58. 84.100
   libavformat    58. 43.100 / 58. 43.100
   libavdevice    58.  9.103 / 58.  9.103
   libavfilter     7. 81.100 /  7. 81.100
   libswscale      5.  6.101 /  5.  6.101
   libswresample   3.  6.100 /  3.  6.100
 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from './fragmented-5s_frag_duration-
 2ch-xheaac-64kbps.mp4':
   Metadata:
     major_brand     : mp42
     minor_version   : 0
     compatible_brands: mp42isomdash
     creation_time   : 2020-04-15T12:36:42.000000Z
   Duration: 00:04:00.00, start: 0.000000, bitrate: 66 kb/s
     Stream #0:0(und): Audio: aac (mp4a / 0x6134706D), 48000 Hz, stereo,
 s16, 1 kb/s (default)
     Metadata:
       creation_time   : 2020-04-15T12:36:42.000000Z
       handler_name    : soun
 Stream mapping:
   Stream #0:0 -> #0:0 (aac (libfdk_aac) -> pcm_s16le (native))
 Press [q] to stop, [?] for help
 [libfdk_aac @ 0x55e234844c80] aacDecoder_DecodeFrame() failed: 5
 Error while decoding stream #0:0: Unknown error occurred
 [libfdk_aac @ 0x55e234844c80] aacDecoder_DecodeFrame() failed: 5
 Error while decoding stream #0:0: Unknown error occurred
 [libfdk_aac @ 0x55e234844c80] aacDecoder_DecodeFrame() failed: 5
 Error while decoding stream #0:0: Unknown error occurred
 [libfdk_aac @ 0x55e234844c80] aacDecoder_DecodeFrame() failed: 5
 Error while decoding stream #0:0: Unknown error occurred
 Output #0, wav, to 'skip_start.wav':
   Metadata:
     major_brand     : mp42
     minor_version   : 0
     compatible_brands: mp42isomdash
     ISFT            : Lavf58.43.100
     Stream #0:0(und): Audio: pcm_s16le ([1][0][0][0] / 0x0001), 48000 Hz,
 stereo, s16, 1536 kb/s (default)
     Metadata:
       creation_time   : 2020-04-15T12:36:42.000000Z
       handler_name    : soun
       encoder         : Lavc58.84.100 pcm_s16le
 size=   43096kB time=00:03:49.99 bitrate=1535.0kbits/s speed= 108x
 video:0kB audio:43096kB subtitle:0kB other streams:0kB global headers:0kB
 muxing overhead: 0.000177%
 }}}

--
Ticket URL: <https://trac.ffmpeg.org/ticket/8690>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list