#5548(avcodec:new): FFV1 encoder creates invalid stream if width or height is 1 or 2
ffmpeg -y -f lavfi -i testsrc -t 1 -filter:v scale="353:1" -vcodec ffv1 -level 3 353x1.mkv ffmpeg version N-79630-g9ac154d Copyright (c) 2000-2016 the FFmpeg developers built with gcc 5.3.0 (GCC) configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmfx --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-
ffmpeg -i 353x1.mkv fake.mp4 ffmpeg version N-79630-g9ac154d Copyright (c) 2000-2016 the FFmpeg developers built with gcc 5.3.0 (GCC) configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmfx --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-
#5548: FFV1 encoder creates invalid stream if width or height is 1 or 2 ----------------------------------+--------------------------------------- Reporter: Zenitram | Type: defect Status: new | Priority: normal Component: avcodec | Version: unspecified Keywords: FFV1 | Blocked By: Blocking: | Reproduced by developer: 0 Analyzed by developer: 0 | ----------------------------------+--------------------------------------- Summary of the bug: FFV1 encoder creates an invalid stream if width or height is 1 or 2. technical description: is such scenario, num_v_slices has a value of 2 so slice_y should be maximum 1, but slices have slice_y = 2 everywhere (instead of = 0 or 1). How to reproduce: {{{ libschroedinger --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo- amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable- libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable- libxvid --enable-libzimg --enable-lzma --enable-decklink --enable-zlib libavutil 55. 22.101 / 55. 22.101 libavcodec 57. 38.100 / 57. 38.100 libavformat 57. 34.103 / 57. 34.103 libavdevice 57. 0.101 / 57. 0.101 libavfilter 6. 44.100 / 6. 44.100 libswscale 4. 1.100 / 4. 1.100 libswresample 2. 0.101 / 2. 0.101 libpostproc 54. 0.100 / 54. 0.100 Input #0, lavfi, from 'testsrc': Duration: N/A, start: 0.000000, bitrate: N/A Stream #0:0: Video: rawvideo (RGB[24] / 0x18424752), rgb24, 320x240 [SAR 1:1 DAR 4:3], 25 fps, 25 tbr, 25 tbn [matroska @ 0000000000f8e8e0] Using AVStream.codec to pass codec parameters to muxers is deprecated, use AVStream.codecpar instead. Output #0, matroska, to '353x1.mkv': Metadata: encoder : Lavf57.34.103 Stream #0:0: Video: ffv1 (FFV1 / 0x31564646), bgr0, 353x1 [SAR 4:1059 DAR 4:3], q=2-31, 200 kb/s, 25 fps, 1k tbn Metadata: encoder : Lavc57.38.100 ffv1 Stream mapping: Stream #0:0 -> #0:0 (rawvideo (native) -> ffv1 (native)) Press [q] to stop, [?] for help frame= 25 fps=0.0 q=-0.0 Lsize= 15kB time=00:00:00.96 bitrate= 130.4kbits/s speed=44.7x video:14kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 7.009154% libschroedinger --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo- amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable- libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable- libxvid --enable-libzimg --enable-lzma --enable-decklink --enable-zlib libavutil 55. 22.101 / 55. 22.101 libavcodec 57. 38.100 / 57. 38.100 libavformat 57. 34.103 / 57. 34.103 libavdevice 57. 0.101 / 57. 0.101 libavfilter 6. 44.100 / 6. 44.100 libswscale 4. 1.100 / 4. 1.100 libswresample 2. 0.101 / 2. 0.101 libpostproc 54. 0.100 / 54. 0.100 [ffv1 @ 00000000025245e0] slice count invalid [matroska,webm @ 00000000001d6e60] Failed to open codec in av_find_stream_info [ffv1 @ 00000000025245e0] slice count invalid Input #0, matroska,webm, from '353x1.mkv': Metadata: ENCODER : Lavf57.34.103 Duration: 00:00:01.00, start: 0.000000, bitrate: 125 kb/s Stream #0:0: Video: ffv1 (FFV1 / 0x31564646), none, 353x1, SAR 1:255 DAR 353:255, 25 fps, 25 tbr, 1k tbn (default) Metadata: ENCODER : Lavc57.38.100 ffv1 DURATION : 00:00:01.000000000 [buffer @ 00000000025179e0] Unable to parse option value "-1" as pixel format Last message repeated 1 times [buffer @ 00000000025179e0] Error setting option pix_fmt to value -1. [graph 0 input from stream 0:0 @ 0000000002517500] Error applying options to the filter. Error opening filters! }}} Same if you invert width and height. -- Ticket URL: <https://trac.ffmpeg.org/ticket/5548> FFmpeg <https://ffmpeg.org> FFmpeg issue tracker
#5548: FFV1 encoder creates invalid stream with -level 3 if width or height is 1 or 2 ------------------------------------+----------------------------------- Reporter: Zenitram | Owner: Type: defect | Status: open Priority: normal | Component: avcodec Version: git-master | Resolution: Keywords: FFV1 | Blocked By: Blocking: | Reproduced by developer: 1 Analyzed by developer: 0 | ------------------------------------+----------------------------------- Changes (by cehoyos): * status: new => open * version: unspecified => git-master * reproduced: 0 => 1 -- Ticket URL: <https://trac.ffmpeg.org/ticket/5548#comment:1> FFmpeg <https://ffmpeg.org> FFmpeg issue tracker
#5548: FFV1 encoder creates invalid stream with -level 3 if width or height is between 1 and 3 ------------------------------------+----------------------------------- Reporter: Zenitram | Owner: Type: defect | Status: open Priority: normal | Component: avcodec Version: git-master | Resolution: Keywords: FFV1 | Blocked By: Blocking: | Reproduced by developer: 1 Analyzed by developer: 0 | ------------------------------------+----------------------------------- Comment (by Zenitram): I slightly change the report: - with width or height of 1, there is no valid slice so there is an error from FFmpeg during decode - with width or height of 2 or 3, the last slice (horizontal or vertical) is invalid so discarded and the first slice is the only one decoded. with: - ffmpeg -y -f lavfi -i "color=c=white" -t 10 -filter:v scale="3:3" -vcodec ffv1 -level 3 3x3.mkv then playback in e.g. VLC it is yellow on the top left and black right and bottom. - ffmpeg -y -f lavfi -i "color=c=white" -t 10 -filter:v scale="4:4" -vcodec ffv1 -level 3 4x4.mkv then playback in e.g. VLC it is white everywhere. -- Ticket URL: <https://trac.ffmpeg.org/ticket/5548#comment:2> FFmpeg <https://ffmpeg.org> FFmpeg issue tracker
#5548: FFV1 encoder creates invalid stream with -level 3 if width or height is between 1 and 3 -------------------------------------+------------------------------------- Reporter: Jérôme | Owner: (none) Martinez | Type: defect | Status: closed Priority: normal | Component: avcodec Version: git-master | Resolution: fixed Keywords: FFV1 | Blocked By: Blocking: | Reproduced by developer: 1 Analyzed by developer: 0 | -------------------------------------+------------------------------------- Changes (by Michael Niedermayer): * resolution: => fixed * status: open => closed Comment: Fixed in 2c71366d3b09ad25e7d93839344d731a87646b42 and b7ff66a35804275b25c1176cad560540785e8750 -- Ticket URL: <https://trac.ffmpeg.org/ticket/5548#comment:3> FFmpeg <https://ffmpeg.org> FFmpeg issue tracker
participants (1)
-
FFmpeg