[FFmpeg-trac] #7552(undetermined:new): issues with high bitrate AAC in AVI

FFmpeg trac at avcodec.org
Sun Nov 18 18:13:47 EET 2018


#7552: issues with high bitrate AAC in AVI
-------------------------------------+-------------------------------------
             Reporter:  shekh        |                     Type:  defect
               Status:  new          |                 Priority:  normal
            Component:               |                  Version:
  undetermined                       |  unspecified
             Keywords:  AVI          |               Blocked By:
             Blocking:               |  Reproduced by developer:  0
Analyzed by developer:  0            |
-------------------------------------+-------------------------------------
 When encoding AAC to AVI (and then decoding) some timestamps are skipped.
 Turns out every packet which size is more than 1536 is increasing pts by 2
 instead of 1.
 I saw somewhere that !WaveFormat.nBlockAlign should be bigger than any
 possible packet, but in fact it is fixed at 1536.
 If I tweak nBlockAlign in the binary the AVI is then decoded continuously.

 Summary of the bug:
 How to reproduce:
 {{{
 ffmpeg.exe -i src1.avi -vcodec copy -acodec aac -b:a 512k 512.avi

 ffmpeg version N-92462-g529debc987 Copyright (c) 2000-2018 the FFmpeg
 developers
   built with gcc 8.2.1 (GCC) 20181017
   configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-
 fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-
 libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-
 amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus
 --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libtheora
 --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp
 --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg
 --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-
 libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex
 --enable-libxvid --enable-libaom --enable-libmfx --enable-amf --enable-
 ffnvcodec --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec
 --enable-dxva2 --enable-avisynth
   libavutil      56. 23.101 / 56. 23.101
   libavcodec     58. 39.100 / 58. 39.100
   libavformat    58. 22.100 / 58. 22.100
   libavdevice    58.  6.100 / 58.  6.100
   libavfilter     7. 44.100 /  7. 44.100
   libswscale      5.  4.100 /  5.  4.100
   libswresample   3.  4.100 /  3.  4.100
   libpostproc    55.  4.100 / 55.  4.100
 Guessed Channel Layout for Input Stream #0.1 : stereo
 Input #0, avi, from 'src1.avi':
   Duration: 00:00:05.01, start: 0.000000, bitrate: 3383 kb/s
     Stream #0:0: Video: ffv1 (FFV1 / 0x31564646), yuv422p10le, 124x70,
 1837 kb/s, 23.98 fps, 23.98 tbr, 23.98 tbn, 23.98 tbc
     Stream #0:1: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 48000 Hz,
 stereo, s16, 1536 kb/s
 File '512.avi' already exists. Overwrite ? [y/N] Stream mapping:
   Stream #0:0 -> #0:0 (copy)
   Stream #0:1 -> #0:1 (pcm_s16le (native) -> aac (native))
 Press [q] to stop, [?] for help
 Output #0, avi, to '512.avi':
   Metadata:
     ISFT            : Lavf58.22.100
     Stream #0:0: Video: ffv1 (FFV1 / 0x31564646), yuv422p10le, 124x70,
 q=2-31, 1837 kb/s, 23.98 fps, 23.98 tbr, 23.98 tbn, 23.98 tbc
     Stream #0:1: Audio: aac (LC) ([255][0][0][0] / 0x00FF), 48000 Hz,
 stereo, fltp, 512 kb/s
     Metadata:
       encoder         : Lavc58.39.100 aac
 frame=   84 fps=0.0 q=-1.0 size=     778kB time=00:00:03.94
 bitrate=1614.6kbits/s speed=7.89x
 frame=  120 fps=0.0 q=-1.0 Lsize=    1405kB time=00:00:05.01
 bitrate=2295.7kbits/s speed=7.77x
 video:1113kB audio:273kB subtitle:0kB other streams:0kB global headers:0kB
 muxing overhead: 1.330118%
 [aac @ 00000000004cb840] Qavg: 60470.855
 }}}

 {{{
 ffprobe.exe 512.avi -select_streams a:0 -show_packets >512-packets.txt

 ffprobe version N-92462-g529debc987 Copyright (c) 2007-2018 the FFmpeg
 developers
   built with gcc 8.2.1 (GCC) 20181017
   configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-
 fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-
 libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-
 amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus
 --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libtheora
 --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp
 --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg
 --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-
 libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex
 --enable-libxvid --enable-libaom --enable-libmfx --enable-amf --enable-
 ffnvcodec --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec
 --enable-dxva2 --enable-avisynth
   libavutil      56. 23.101 / 56. 23.101
   libavcodec     58. 39.100 / 58. 39.100
   libavformat    58. 22.100 / 58. 22.100
   libavdevice    58.  6.100 / 58.  6.100
   libavfilter     7. 44.100 /  7. 44.100
   libswscale      5.  4.100 /  5.  4.100
   libswresample   3.  4.100 /  3.  4.100
   libpostproc    55.  4.100 / 55.  4.100
 Input #0, avi, from '512.avi':
   Metadata:
     encoder         : Lavf58.22.100
   Duration: 00:00:05.05, start: 0.000000, bitrate: 2280 kb/s
     Stream #0:0: Video: ffv1 (FFV1 / 0x31564646), yuv422p10le, 124x70,
 1822 kb/s, 23.98 fps, 23.98 tbr, 23.98 tbn, 23.98 tbc
     Stream #0:1: Audio: aac (LC) ([255][0][0][0] / 0x00FF), 48000 Hz,
 stereo, fltp, 512 kb/s
 }}}

 Fragment from the produced ffprobe log:
 {{{
 [PACKET]
 codec_type=audio
 stream_index=1
 pts=13
 pts_time=0.277333
 dts=13
 dts_time=0.277333
 duration=1
 duration_time=0.021333
 convergence_duration=N/A
 convergence_duration_time=N/A
 size=1551
 pos=91692
 flags=K_
 [/PACKET]
 [PACKET]
 codec_type=audio
 stream_index=1
 pts=15
 pts_time=0.320000
 dts=15
 dts_time=0.320000
 duration=1
 duration_time=0.021333
 convergence_duration=N/A
 convergence_duration_time=N/A
 size=1535
 pos=93252
 flags=K_
 [/PACKET]
 [PACKET]
 codec_type=audio
 stream_index=1
 pts=16
 pts_time=0.341333
 dts=16
 dts_time=0.341333
 duration=1
 duration_time=0.021333
 convergence_duration=N/A
 convergence_duration_time=N/A
 size=1065
 pos=104282
 flags=K_
 [/PACKET]
 }}}

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


More information about the FFmpeg-trac mailing list