[FFmpeg-trac] #5548(avcodec:new): FFV1 encoder creates invalid stream if width or height is 1 or 2
FFmpeg
trac at avcodec.org
Thu May 12 16:37:50 CEST 2016
#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:
{{{
>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-
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%
>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-
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
More information about the FFmpeg-trac
mailing list