[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