[FFmpeg-trac] #8775(ffmpeg:new): Theora bad encoding on 64 bit

FFmpeg trac at avcodec.org
Fri Jul 3 13:07:20 EEST 2020


#8775: Theora bad encoding on 64 bit
-------------------------------------+-------------------------------------
             Reporter:  tedl         |                     Type:  defect
               Status:  new          |                 Priority:  normal
            Component:  ffmpeg       |                  Version:
             Keywords:  theora       |  unspecified
  encode broken bad data encoding    |               Blocked By:
  64bit                              |
             Blocking:               |  Reproduced by developer:  0
Analyzed by developer:  0            |
-------------------------------------+-------------------------------------
 Summary of the bug:

 Theora encoding using the 64 bit version of ffmpeg generates bad data.

 How to reproduce:
 {{{
 ffmpeg -i input.mp4 -c:v libtheora -q:v 7 -c:a libvorbis output.ogg
 }}}

 Tested on several different binaries:
 ffmpeg-20200628-4cfcfb3-win64-static
 ffmpeg-20200623-ce297b4-win64-static
 ffmpeg-4.3-win64-static
 ffmpeg-4.2.3-win64-static

 Output
 {{{
 ffmpeg started on 2020-07-03 at 11:56:55
 Report written to "ffmpeg-20200703-115655.log"
 Log level: 48
 ffmpeg version git-2020-06-28-4cfcfb3 Copyright (c) 2000-2020 the FFmpeg
 developers
   built with gcc 9.3.1 (GCC) 20200621
   configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-
 fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-
 libdav1d --enable-libbluray --enable-libfreetype --enable-libmp3lame
 --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg
 --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr
 --enable-libsrt --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-libvmaf --enable-libvorbis --enable-libvo-
 amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-
 libaom --enable-libgsm --disable-w32threads --enable-libmfx --enable-
 ffnvcodec --enable-cuda-llvm --enable-cuvid --enable-d3d11va --enable-
 nvenc --enable-nvdec --enable-dxva2 --enable-avisynth --enable-libopenmpt
 --enable-amf
   libavutil      56. 55.100 / 56. 55.100
   libavcodec     58. 93.100 / 58. 93.100
   libavformat    58. 47.100 / 58. 47.100
   libavdevice    58. 11.100 / 58. 11.100
   libavfilter     7. 86.100 /  7. 86.100
   libswscale      5.  8.100 /  5.  8.100
   libswresample   3.  8.100 /  3.  8.100
   libpostproc    55.  8.100 / 55.  8.100
 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'input.mp4':
   Metadata:
     major_brand     : mp42
     minor_version   : 0
     compatible_brands: mp41isom
     creation_time   : 2017-12-13T10:05:17.000000Z
     artist          : Microsoft Game DVR
     title           : Satari
   Duration: 00:00:24.19, start: 0.000000, bitrate: 9649 kb/s
     Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p,
 1920x1020 [SAR 1:1 DAR 32:17], 9168 kb/s, 30.14 fps, 60 tbr, 30k tbn,
 59.94 tbc (default)
     Metadata:
       creation_time   : 2017-12-13T10:05:17.000000Z
       handler_name    : VideoHandler
       encoder         : AVC Coding
     Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz,
 stereo, fltp, 133 kb/s (default)
     Metadata:
       creation_time   : 2017-12-13T10:05:17.000000Z
       handler_name    : SoundHandler
 Stream mapping:
   Stream #0:0 -> #0:0 (h264 (native) -> theora (libtheora))
   Stream #0:1 -> #0:1 (aac (native) -> vorbis (libvorbis))
 Press [q] to stop, [?] for help
 Output #0, ogg, to 'output.ogg':
   Metadata:
     major_brand     : mp42
     minor_version   : 0
     compatible_brands: mp41isom
     title           : Satari
     artist          : Microsoft Game DVR
     encoder         : Lavf58.47.100
     Stream #0:0(und): Video: theora (libtheora), yuv420p, 1920x1020 [SAR
 1:1 DAR 32:17], q=2-31, 200 kb/s, 29.97 fps, 29.97 tbn, 29.97 tbc
 (default)
     Metadata:
       creation_time   : 2017-12-13T10:05:17.000000Z
       handler_name    : VideoHandler
       encoder         : Lavc58.93.100 libtheora
       major_brand     : mp42
       minor_version   : 0
       compatible_brands: mp41isom
       title           : Satari
       artist          : Microsoft Game DVR
     Stream #0:1(und): Audio: vorbis (libvorbis), 48000 Hz, stereo, fltp
 (default)
     Metadata:
       creation_time   : 2017-12-13T10:05:17.000000Z
       handler_name    : SoundHandler
       encoder         : Lavc58.93.100 libvorbis
       major_brand     : mp42
       minor_version   : 0
       compatible_brands: mp41isom
       title           : Satari
       artist          : Microsoft Game DVR
 frame=  728 fps= 15 q=-0.0 Lsize=   20528kB time=00:00:24.29
 bitrate=6923.0kbits/s dup=2 drop=3 speed=0.513x
 video:20140kB audio:285kB subtitle:0kB other streams:0kB global
 headers:7kB muxing overhead: 0.505970%
 }}}

 ffplay partial output

 {{{
 ffplay.exe -report .\output.ogg
 ffplay started on 2020-07-03 at 12:00:19
 Report written to "ffplay-20200703-120019.log"
 Log level: 48
 ffplay version git-2020-06-28-4cfcfb3 Copyright (c) 2003-2020 the FFmpeg
 developers
   built with gcc 9.3.1 (GCC) 20200621
   configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-
 fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-
 libdav1d --enable-libbluray --enable-libfreetype --enable-libmp3lame
 --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg
 --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr
 --enable-libsrt --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-libvmaf --enable-libvorbis --enable-libvo-
 amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-
 libaom --enable-libgsm --disable-w32threads --enable-libmfx --enable-
 ffnvcodec --enable-cuda-llvm --enable-cuvid --enable-d3d11va --enable-
 nvenc --enable-nvdec --enable-dxva2 --enable-avisynth --enable-libopenmpt
 --enable-amf
   libavutil      56. 55.100 / 56. 55.100
   libavcodec     58. 93.100 / 58. 93.100
   libavformat    58. 47.100 / 58. 47.100
   libavdevice    58. 11.100 / 58. 11.100
   libavfilter     7. 86.100 /  7. 86.100
   libswscale      5.  8.100 /  5.  8.100
   libswresample   3.  8.100 /  3.  8.100
   libpostproc    55.  8.100 / 55.  8.100
 Input #0, ogg, from '.\output.ogg':0KB vq=    0KB sq=    0B f=0/0
   Duration: 00:00:24.29, start: 0.000000, bitrate: 6923 kb/s
     Stream #0:0(und): Video: theora, yuv420p, 1920x1020 [SAR 1:1 DAR
 32:17], 29.97 fps, 29.97 tbr, 29.97 tbn, 29.97 tbc
     Metadata:
       creation_time   : 2017-12-13T10:05:17.000000Z
       handler_name    : VideoHandler
       encoder         : Lavc58.93.100 libtheora
       major_brand     : mp42
       minor_version   : 0
       compatible_brands: mp41isom
       title           : Satari
       artist          : Microsoft Game DVR
     Stream #0:1(und): Audio: vorbis, 48000 Hz, stereo, fltp, 112 kb/s
     Metadata:
       creation_time   : 2017-12-13T10:05:17.000000Z
       handler_name    : SoundHandler
       encoder         : Lavc58.93.100 libvorbis
       major_brand     : mp42
       minor_version   : 0
       compatible_brands: mp41isom
       title           : Satari
       artist          : Microsoft Game DVR
 [theora @ 000002ac19240580] error in unpack_block_qpis
 [theora @ 000002ac19cb9480] error in unpack_dct_coeffs
 [theora @ 000002ac19dae1c0] error in unpack_vectorsq=    0B f=0/0
 [theora @ 000002ac1a66e2c0] error in unpack_block_qpis
 [theora @ 000002ac1a879f40] error in unpack_block_qpis
 [theora @ 000002ac1aa79dc0] error in unpack_block_qpis
 [theora @ 000002ac1c386d80] error in unpack_block_qpis
 [theora @ 000002ac1c58ac00] error in unpack_block_qpis
 [theora @ 000002ac1c78ca40] error in unpack_block_qpis
 [theora @ 000002ac1c9928c0] error in unpack_block_qpis
 [theora @ 000002ac1cbd7dc0] error in unpack_block_qpis
 [theora @ 000002ac1cbdb480] error in unpack_block_qpis
 [theora @ 000002ac1cbd9480] error in unpack_vectors
 [theora @ 000002ac1cbd8240] error in unpack_block_qpis
 [theora @ 000002ac19cb9480] error in unpack_block_qpis
 [theora @ 000002ac19dae1c0] error in unpack_block_qpis
 [theora @ 000002ac1a879f40] error in unpack_block_qpis
 [theora @ 000002ac1aa79dc0] error in unpack_dct_coeffs
 [theora @ 000002ac1c386d80] error in unpack_block_qpis
 [theora @ 000002ac1c58ac00] error in unpack_block_qpis
 [theora @ 000002ac1c78ca40] error in unpack_block_qpis
 [theora @ 000002ac1cbdb000] error in unpack_block_qpis
 [theora @ 000002ac1cbd7dc0] error in unpack_block_qpis
 [theora @ 000002ac1cbd8240] error in unpack_block_qpis
 [theora @ 000002ac1cbdb480] error in unpack_block_qpis
 [theora @ 000002ac193fe140] error in unpack_block_qpis
 [theora @ 000002ac19240580] error in unpack_block_qpis   0B f=0/0
 [theora @ 000002ac19cb9480] error in unpack_block_qpis
 [theora @ 000002ac19dae1c0] error in unpack_block_qpis
 [theora @ 000002ac1a66e2c0] error in unpack_block_qpis   0B f=0/0
 [theora @ 000002ac1a879f40] error in unpack_block_qpis
 [theora @ 000002ac1aa79dc0] error in unpack_block_qpis
 [theora @ 000002ac1c386d80] error in unpack_block_qpis
 [theora @ 000002ac1c9928c0] error in unpack_vectorsq=    0B f=0/0
 [theora @ 000002ac1cbd7dc0] error in unpack_block_qpis
 [theora @ 000002ac1cbdb000] error in unpack_block_qpis
 [theora @ 000002ac1cbdb480] error in unpack_block_qpis
 [theora @ 000002ac1cbd9480] error in unpack_block_qpis   0B f=0/0
 [theora @ 000002ac1cbd8240] error in unpack_block_qpis
 [theora @ 000002ac193fe140] error in unpack_block_qpis
 [theora @ 000002ac19240580] error in unpack_block_qpis
 [theora @ 000002ac19dae1c0] error in unpack_block_qpis
 [theora @ 000002ac19cb9480] error in unpack_block_qpis
 [theora @ 000002ac1aa79dc0] error in unpack_block_qpis
 [theora @ 000002ac1a66e2c0] error in unpack_block_qpis
 [theora @ 000002ac1c386d80] error in unpack_block_qpis
 [theora @ 000002ac1c58ac00] error in unpack_block_qpis   0B f=0/0
 [theora @ 000002ac1c78ca40] error in unpack_block_qpis   0B f=0/0
 [theora @ 000002ac1cbdb000] error in unpack_block_qpis
 [theora @ 000002ac1c9928c0] error in unpack_block_qpis
 [theora @ 000002ac1cbd7dc0] error in unpack_block_qpis
 [theora @ 000002ac1cbd9480] error in unpack_block_qpis
 [theora @ 000002ac1cbd8240] error in unpack_block_qpis
 [theora @ 000002ac193fe140] error in unpack_block_qpis
 [theora @ 000002ac19240580] error in unpack_block_qpis
 [theora @ 000002ac19cb9480] error in unpack_block_qpis
 [theora @ 000002ac1a66e2c0] error in unpack_block_qpis
 [theora @ 000002ac19dae1c0] error in unpack_block_qpis
 [theora @ 000002ac1aa79dc0] error in unpack_block_qpis   0B f=0/0
 [theora @ 000002ac1a879f40] error in unpack_block_qpis
 [theora @ 000002ac1c386d80] error in unpack_block_qpis
 [theora @ 000002ac1c58ac00] error in unpack_block_qpis
 [theora @ 000002ac1cbd7dc0] error in unpack_block_qpis
 [theora @ 000002ac1c9928c0] error in unpack_block_qpis
 [theora @ 000002ac1cbdb000] error in unpack_block_qpis
 [theora @ 000002ac1cbd8240] error in unpack_block_qpis   0B f=0/0
 [theora @ 000002ac1cbdb480] error in unpack_block_qpis
 [theora @ 000002ac1cbd9480] error in unpack_block_qpis
 [theora @ 000002ac19240580] error in unpack_block_qpis
 [theora @ 000002ac193fe140] error in unpack_block_qpis
 [theora @ 000002ac19cb9480] error in unpack_block_qpis
 [theora @ 000002ac1a66e2c0] error in unpack_block_qpis
 [theora @ 000002ac19dae1c0] error in unpack_block_qpis
 [theora @ 000002ac1aa79dc0] error in unpack_block_qpis
 [theora @ 000002ac1c386d80] error in unpack_block_qpis
 [theora @ 000002ac1c58ac00] error in unpack_block_qpis
 }}}


 Encoding using the 32 bit version of ffmpeg using the same command is
 generating correct data.

 Output

 {{{
 ffmpeg started on 2020-07-03 at 12:02:24
 Report written to "ffmpeg-20200703-120224.log"
 Log level: 48
 ffmpeg version git-2020-06-28-4cfcfb3 Copyright (c) 2000-2020 the FFmpeg
 developers
   built with gcc 9.3.1 (GCC) 20200621
   configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-
 fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-
 libdav1d --enable-libbluray --enable-libfreetype --enable-libmp3lame
 --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg
 --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr
 --enable-libsrt --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-libvmaf --enable-libvorbis --enable-libvo-
 amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-
 libaom --enable-libgsm --disable-w32threads --enable-libmfx --enable-
 ffnvcodec --enable-cuda-llvm --enable-cuvid --enable-d3d11va --enable-
 nvenc --enable-nvdec --enable-dxva2 --enable-avisynth --enable-libopenmpt
 --enable-amf
   libavutil      56. 55.100 / 56. 55.100
   libavcodec     58. 93.100 / 58. 93.100
   libavformat    58. 47.100 / 58. 47.100
   libavdevice    58. 11.100 / 58. 11.100
   libavfilter     7. 86.100 /  7. 86.100
   libswscale      5.  8.100 /  5.  8.100
   libswresample   3.  8.100 /  3.  8.100
   libpostproc    55.  8.100 / 55.  8.100
 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'input.mp4':
   Metadata:
     major_brand     : mp42
     minor_version   : 0
     compatible_brands: mp41isom
     creation_time   : 2017-12-13T10:05:17.000000Z
     artist          : Microsoft Game DVR
     title           : Satari
   Duration: 00:00:24.19, start: 0.000000, bitrate: 9649 kb/s
     Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p,
 1920x1020 [SAR 1:1 DAR 32:17], 9168 kb/s, 30.14 fps, 60 tbr, 30k tbn,
 59.94 tbc (default)
     Metadata:
       creation_time   : 2017-12-13T10:05:17.000000Z
       handler_name    : VideoHandler
       encoder         : AVC Coding
     Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz,
 stereo, fltp, 133 kb/s (default)
     Metadata:
       creation_time   : 2017-12-13T10:05:17.000000Z
       handler_name    : SoundHandler
 Stream mapping:
   Stream #0:0 -> #0:0 (h264 (native) -> theora (libtheora))
   Stream #0:1 -> #0:1 (aac (native) -> vorbis (libvorbis))
 Press [q] to stop, [?] for help
 Output #0, ogg, to 'output.ogg':
   Metadata:
     major_brand     : mp42
     minor_version   : 0
     compatible_brands: mp41isom
     title           : Satari
     artist          : Microsoft Game DVR
     encoder         : Lavf58.47.100
     Stream #0:0(und): Video: theora (libtheora), yuv420p, 1920x1020 [SAR
 1:1 DAR 32:17], q=2-31, 200 kb/s, 29.97 fps, 29.97 tbn, 29.97 tbc
 (default)
     Metadata:
       creation_time   : 2017-12-13T10:05:17.000000Z
       handler_name    : VideoHandler
       encoder         : Lavc58.93.100 libtheora
       major_brand     : mp42
       minor_version   : 0
       compatible_brands: mp41isom
       title           : Satari
       artist          : Microsoft Game DVR
     Stream #0:1(und): Audio: vorbis (libvorbis), 48000 Hz, stereo, fltp
 (default)
     Metadata:
       creation_time   : 2017-12-13T10:05:17.000000Z
       handler_name    : SoundHandler
       encoder         : Lavc58.93.100 libvorbis
       major_brand     : mp42
       minor_version   : 0
       compatible_brands: mp41isom
       title           : Satari
       artist          : Microsoft Game DVR
 frame=  728 fps= 15 q=-0.0 Lsize=   12537kB time=00:00:24.29
 bitrate=4228.0kbits/s dup=2 drop=3 speed=0.501x
 video:12187kB audio:285kB subtitle:0kB other streams:0kB global
 headers:7kB muxing overhead: 0.527514%
 }}}

 Tested on binaries:
 ffmpeg-20200628-4cfcfb3-win32-static

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


More information about the FFmpeg-trac mailing list