Opened 4 years ago
Last modified 2 years ago
#10078 new defect
speedhq: ffmpeg fails to decode it's own created file - low resolution
| Reported by: | ami_stuff | Owned by: | |
|---|---|---|---|
| Priority: | normal | Component: | avcodec |
| Version: | git-master | Keywords: | shq, speedhq, speedhqenc |
| Cc: | Blocked By: | ||
| Blocking: | Reproduced by developer: | yes | |
| Analyzed by developer: | no |
Description
another issue: width should be always a multiple of 16, otherwise the original NewTek's codec won't decode correctly the file created with ffmpeg
./ffmpeg -i 32.bmp -vcodec speedhq -y out.avi
ffmpeg version N-109227-g1a7efafd33 Copyright (c) 2000-2022 the FFmpeg developers
built with gcc 9 (Ubuntu 9.4.0-1ubuntu1~20.04.1)
configuration: --enable-libopenjpeg
libavutil 57. 43.100 / 57. 43.100
libavcodec 59. 54.100 / 59. 54.100
libavformat 59. 34.102 / 59. 34.102
libavdevice 59. 8.101 / 59. 8.101
libavfilter 8. 50.101 / 8. 50.101
libswscale 6. 8.112 / 6. 8.112
libswresample 4. 9.100 / 4. 9.100
Input #0, bmp_pipe, from '32.bmp':
Duration: N/A, bitrate: N/A
Stream #0:0: Video: bmp, bgr24, 32x32, 25 fps, 25 tbr, 25 tbn
Stream mapping:
Stream #0:0 -> #0:0 (bmp (native) -> speedhq (native))
Press [q] to stop, [?] for help
Output #0, avi, to 'out.avi':
Metadata:
ISFT : Lavf59.34.102
Stream #0:0: Video: speedhq (SHQ4 / 0x34514853), yuv444p(tv, progressive), 32x32, q=2-31, 200 kb/s, 25 fps, 25 tbn
Metadata:
encoder : Lavc59.54.100 speedhq
Side data:
cpb: bitrate max/min/avg: 0/0/200000 buffer size: 0 vbv_delay: N/A
frame= 0 fps=0.0 q=1.6 size= 0kB time=00:00:00.00 bitrate=N/A speed=N/Aframe= 1 fps=0.0 q=1.6 Lsize= 6kB time=00:00:00.00 bitrate=N/A speed= 0x
video:1kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 638.100586%
./ffmpeg -i out.avi -y out2.avi
ffmpeg version N-109227-g1a7efafd33 Copyright (c) 2000-2022 the FFmpeg developers
built with gcc 9 (Ubuntu 9.4.0-1ubuntu1~20.04.1)
configuration: --enable-libopenjpeg
libavutil 57. 43.100 / 57. 43.100
libavcodec 59. 54.100 / 59. 54.100
libavformat 59. 34.102 / 59. 34.102
libavdevice 59. 8.101 / 59. 8.101
libavfilter 8. 50.101 / 8. 50.101
libswscale 6. 8.112 / 6. 8.112
libswresample 4. 9.100 / 4. 9.100
Input #0, avi, from 'out.avi':
Metadata:
software : Lavf59.34.102
Duration: 00:00:00.04, start: 0.000000, bitrate: 1321 kb/s
Stream #0:0: Video: speedhq (SHQ4 / 0x34514853), yuv444p(bt470bg/unknown/unknown), 32x32, 25 fps, 25 tbr, 25 tbn
Stream mapping:
Stream #0:0 -> #0:0 (speedhq (native) -> mpeg4 (native))
Press [q] to stop, [?] for help
Error while decoding stream #0:0: Invalid data found when processing input
[mpeg4 @ 0x55a658a3ff00] too many threads/slices (3), reducing to 2
Output #0, avi, to 'out2.avi':
Metadata:
software : Lavf59.34.102
ISFT : Lavf59.34.102
Stream #0:0: Video: mpeg4 (FMP4 / 0x34504D46), yuv420p, 32x32, q=2-31, 200 kb/s, 25 fps, 25 tbn
Metadata:
encoder : Lavc59.54.100 mpeg4
Side data:
cpb: bitrate max/min/avg: 0/0/200000 buffer size: 0 vbv_delay: N/A
frame= 0 fps=0.0 q=0.0 size= 0kB time=-577014:32:22.77 bitrate= -0.0kbframe= 0 fps=0.0 q=0.0 Lsize= 6kB time=-577014:32:22.77 bitrate=N/A speed=N/A
video:0kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
Output file is empty, nothing was encoded (check -ss / -t / -frames parameters if used)
Conversion failed!
Attachments (1)
Change History (4)
by , 4 years ago
comment:1 by , 4 years ago
| Component: | undetermined → avcodec |
|---|---|
| Keywords: | shq added |
| Version: | unspecified → git-master |
comment:3 by , 2 years ago
| Keywords: | speedhq speedhqenc added |
|---|---|
| Reproduced by developer: | set |
I ran across this the other day with parallellizing speedhqdec, trying to make a non multiple of 16 width sample
$ ffmpeg -t 1 -f lavfi -i testsrc2 -vcodec speedhq speedhq.mov $ ffmpeg -t 1 -f lavfi -i testsrc2=s=328x240 -vcodec speedhq speedhq2.mov
Playing speedhq.mov with ffplay or mpv works fine whereas speedhq2.mov causes mpv to output a bunch of "Error while decoding frame!" and ffplay to just do nothing. This both with the current Debian stable version of ffmpeg (5.1.4-0+deb12u1) and with the latest master (cdcb4b9). Looking closer the error happens in decode_speedhq_border() as one would suspect in this case.
I've also noticed that speedhqenc happily accepts non multiple of 8 input as well, which it probably shouldn't.
I'm not versed in mpegvideo_enc internals, but I suspect the error is in there somewhere. A stop gap solution could be to only allow width to be a multiple of 16 in speedhqenc



Replying to ami_stuff:
https://trac.ffmpeg.org/raw-attachment/ticket/10068/gold2.avi
./ffmpeg -i gold2.avi -s 1282x720 -vcodec speedhq -y speedhq.avi ffmpeg version N-109674-gc0bc804e55-20230127 Copyright (c) 2000-2023 the FFmpeg developers built with gcc 12.2.0 (crosstool-NG 1.25.0.90_cf9beb1) configuration: --prefix=/ffbuild/prefix --pkg-config-flags=--static --pkg-config=pkg-config --cross-prefix=x86_64-ffbuild-linux-gnu- --arch=x86_64 --target-os=linux --enable-version3 --disable-debug --enable-iconv --enable-libxml2 --enable-zlib --enable-libfreetype --enable-libfribidi --enable-gmp --enable-lzma --enable-fontconfig --enable-libvorbis --enable-opencl --enable-libpulse --enable-libvmaf --enable-libxcb --enable-xlib --enable-amf --enable-libaom --enable-libaribb24 --disable-avisynth --enable-chromaprint --enable-libdav1d --disable-libdavs2 --disable-libfdk-aac --enable-ffnvcodec --enable-cuda-llvm --disable-frei0r --enable-libgme --enable-libkvazaar --enable-libass --enable-libbluray --enable-libjxl --enable-libmp3lame --enable-libopus --enable-mbedtls --enable-librist --enable-libssh --enable-libtheora --enable-libvpx --enable-libwebp --enable-lv2 --disable-libmfx --enable-libvpl --enable-openal --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopenmpt --enable-librav1e --disable-librubberband --disable-schannel --enable-sdl2 --enable-libsoxr --enable-libsrt --enable-libsvtav1 --enable-libtwolame --enable-libuavs3d --enable-libdrm --enable-vaapi --disable-libvidstab --enable-vulkan --enable-libshaderc --enable-libplacebo --disable-libx264 --disable-libx265 --disable-libxavs2 --disable-libxvid --enable-libzimg --enable-libzvbi --extra-cflags=-DLIBTWOLAME_STATIC --extra-cxxflags= --extra-ldflags=-pthread --extra-ldexeflags=-pie --extra-libs='-ldl -lgomp' --extra-version=20230127 libavutil 57. 44.100 / 57. 44.100 libavcodec 59. 57.100 / 59. 57.100 libavformat 59. 36.100 / 59. 36.100 libavdevice 59. 8.101 / 59. 8.101 libavfilter 8. 54.100 / 8. 54.100 libswscale 6. 8.112 / 6. 8.112 libswresample 4. 9.100 / 4. 9.100 Input #0, avi, from 'gold2.avi': Duration: 00:00:12.00, start: 0.000000, bitrate: 153 kb/s Stream #0:0: Video: srgc (srgc / 0x63677273), bgra, 299x171, 149 kb/s, 15 fps, 15 tbr, 15 tbn Stream mapping: Stream #0:0 -> #0:0 (srgc (native) -> speedhq (native)) Press [q] to stop, [?] for help Output #0, avi, to 'speedhq.avi': Metadata: ISFT : Lavf59.36.100 Stream #0:0: Video: speedhq (SHQ4 / 0x34514853), yuv444p(tv, progressive), 1282x720, q=2-31, 200 kb/s, 15 fps, 15 tbn Metadata: encoder : Lavc59.57.100 speedhq Side data: cpb: bitrate max/min/avg: 0/0/200000 buffer size: 0 vbv_delay: N/A frame= 0 fps=0.0 q=5.7 size= 0kB time=00:00:00.00 bitrate=N/A speed= frame= 108 fps=0.0 q=24.8 size= 5888kB time=00:00:07.20 bitrate=6699.2kbits/frame= 180 fps=0.0 q=24.8 Lsize= 10189kB time=00:00:11.93 bitrate=6994.9kbits/s speed=14.6x video:10180kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.096816%./ffmpeg -i speedhq.avi -y out.avi ffmpeg version N-109674-gc0bc804e55-20230127 Copyright (c) 2000-2023 the FFmpeg developers built with gcc 12.2.0 (crosstool-NG 1.25.0.90_cf9beb1) configuration: --prefix=/ffbuild/prefix --pkg-config-flags=--static --pkg-config=pkg-config --cross-prefix=x86_64-ffbuild-linux-gnu- --arch=x86_64 --target-os=linux --enable-version3 --disable-debug --enable-iconv --enable-libxml2 --enable-zlib --enable-libfreetype --enable-libfribidi --enable-gmp --enable-lzma --enable-fontconfig --enable-libvorbis --enable-opencl --enable-libpulse --enable-libvmaf --enable-libxcb --enable-xlib --enable-amf --enable-libaom --enable-libaribb24 --disable-avisynth --enable-chromaprint --enable-libdav1d --disable-libdavs2 --disable-libfdk-aac --enable-ffnvcodec --enable-cuda-llvm --disable-frei0r --enable-libgme --enable-libkvazaar --enable-libass --enable-libbluray --enable-libjxl --enable-libmp3lame --enable-libopus --enable-mbedtls --enable-librist --enable-libssh --enable-libtheora --enable-libvpx --enable-libwebp --enable-lv2 --disable-libmfx --enable-libvpl --enable-openal --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopenmpt --enable-librav1e --disable-librubberband --disable-schannel --enable-sdl2 --enable-libsoxr --enable-libsrt --enable-libsvtav1 --enable-libtwolame --enable-libuavs3d --enable-libdrm --enable-vaapi --disable-libvidstab --enable-vulkan --enable-libshaderc --enable-libplacebo --disable-libx264 --disable-libx265 --disable-libxavs2 --disable-libxvid --enable-libzimg --enable-libzvbi --extra-cflags=-DLIBTWOLAME_STATIC --extra-cxxflags= --extra-ldflags=-pthread --extra-ldexeflags=-pie --extra-libs='-ldl -lgomp' --extra-version=20230127 libavutil 57. 44.100 / 57. 44.100 libavcodec 59. 57.100 / 59. 57.100 libavformat 59. 36.100 / 59. 36.100 libavdevice 59. 8.101 / 59. 8.101 libavfilter 8. 54.100 / 8. 54.100 libswscale 6. 8.112 / 6. 8.112 libswresample 4. 9.100 / 4. 9.100 Input #0, avi, from 'speedhq.avi': Metadata: software : Lavf59.36.100 Duration: 00:00:12.00, start: 0.000000, bitrate: 6956 kb/s Stream #0:0: Video: speedhq (SHQ4 / 0x34514853), yuv444p(bt470bg/unknown/unknown), 1282x720, 6988 kb/s, 15 fps, 15 tbr, 15 tbn Stream mapping: Stream #0:0 -> #0:0 (speedhq (native) -> mpeg4 (native)) Press [q] to stop, [?] for help Error while decoding stream #0:0: Invalid data found when processing input Last message repeated 179 times Output #0, avi, to 'out.avi': Metadata: software : Lavf59.36.100 ISFT : Lavf59.36.100 Stream #0:0: Video: mpeg4 (FMP4 / 0x34504D46), yuv420p, 1282x720, q=2-31, 200 kb/s, 15 fps, 15 tbn Metadata: encoder : Lavc59.57.100 mpeg4 Side data: cpb: bitrate max/min/avg: 0/0/200000 buffer size: 0 vbv_delay: N/A frame= 0 fps=0.0 q=0.0 size= 0kB time=-577014:32:22.77 bitrate= -0.0kbframe= 0 fps=0.0 q=0.0 Lsize= 6kB time=-577014:32:22.77 bitrate=N/A speed=N/A video:0kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown Output file is empty, nothing was encoded (check -ss / -t / -frames parameters if used) Conversion failed!