Kajuna
Kajuna

Reputation: 579

ffmpeg "Underestimated required buffer size"

I'm seeing this error on some Windows machine when converting an 8K png stream to ProRes 4444 with ffmpeg. The command looks like

ffmpeg -f image2pipe -framerate 30000/1001 -i - -c:v prores_ks -y output.mov

And the output

ffmpeg version git-2020-06-17-0b3bd00 Copyright (c) 2000-2020 the FFmpeg developers built with gcc 9.3.1 (GCC) 20200523
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 --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. 92.100 / 58. 92.100 libavformat 58. 46.101 / 58. 46.101 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 [image2pipe @ 000002245a96da40] Stream #0: not enough frames to estimate rate; consider increasing probesize Input #0, image2pipe, from 'pipe:': Duration: N/A, bitrate: N/A Stream #0:0: Video: png, rgba(pc), 7680x3840, 29.97 tbr, 29.97 tbn, 29.97 tbc Stream mapping: Stream #0:0 -> #0:0 (png (native) -> prores (prores_ks)) frame= 0 fps=0.0 q=0.0 size= 0kB time=-577014:32:22.77 bitrate= -0.0kbits/s speed=N/A frame= 0 fps=0.0 q=0.0 size= 0kB time=-577014:32:22.77 bitrate= -0.0kbits/s speed=N/A frame= 0 fps=0.0 q=0.0 size= 0kB time=-577014:32:22.77 bitrate= -0.0kbits/s speed=N/A frame= 0 fps=0.0 q=0.0 size= 0kB time=-577014:32:22.77 bitrate= -0.0kbits/s speed=N/A frame= 0 fps=0.0 q=0.0 size= 0kB time=-577014:32:22.77 bitrate= -0.0kbits/s speed=N/A [prores_ks @ 000002245aaaf080] Autoselected 4:4:4:4 profile because of the used input colorspace. It can be overridden through -profile option. [prores_ks @ 000002245aaaf700] Autoselected 4:4:4:4 profile because of the used input colorspace. It can be overridden through -profile option. [prores_ks @ 000002245aa1e7c0] Autoselected 4:4:4:4 profile because of the used input colorspace. It can be overridden through -profile option. [prores_ks @ 000002245aa1d580] Autoselected 4:4:4:4 profile because of the used input colorspace. It can be overridden through -profile option. [prores_ks @ 000002245aa1ec40] Autoselected 4:4:4:4 profile because of the used input colorspace. It can be overridden through -profile option. [prores_ks @ 000002245aa1da00] Autoselected 4:4:4:4 profile because of the used input colorspace. It can be overridden through -profile option. [prores_ks @ 000002245aa1f540] Autoselected 4:4:4:4 profile because of the used input colorspace. It can be overridden through -profile option. [prores_ks @ 000002245aa1de80] Autoselected 4:4:4:4 profile because of the used input colorspace. It can be overridden through -profile option. [prores_ks @ 000002245a972b40] Autoselected 4:4:4:4 profile because of the used input colorspace. It can be overridden through -profile option. Output #0, mov, to 'output.mov': Metadata: encoder : Lavf58.46.101 Stream #0:0: Video: prores (prores_ks) (ap4h / 0x68347061), yuva444p10le, 7680x3840, q=2-31, 200 kb/s, 29.97 fps, 30k tbn, 29.97 tbc Metadata: encoder : Lavc58.92.100 prores_ks frame= 1 fps=0.2 q=0.0 size= 0kB time=00:00:00.00 bitrate=N/A speed= 0x
frame= 2 fps=0.3 q=0.0 size= 0kB time=00:00:00.00 bitrate=N/A speed= 0x frame= 3 fps=0.4 q=0.0 size= 0kB time=00:00:00.00 bitrate=N/A speed= 0x frame= 4 fps=0.4 q=0.0 size= 0kB time=00:00:00.00 bitrate=N/A speed= 0x frame=
5 fps=0.5 q=0.0 size= 0kB time=00:00:00.00 bitrate=N/A speed=
0x [prores_ks @ 000002245aaaf080] Underestimated required buffer size. Video encoding failed [prores_ks @ 000002245aaaf700] Underestimated required buffer size. [prores_ks @ 000002245aa1e7c0] Underestimated required buffer size. [prores_ks @ 000002245aa1d580] Underestimated required buffer size. [prores_ks @ 000002245aa1ec40] Underestimated required buffer size. [prores_ks @ 000002245aa1da00] Underestimated required buffer size. Conversion failed!

How could I debug this considering I don't have access to the problematic machine (a user does)? Could the "not enough frames to estimate rate; consider increasing probesize" message be related to the problem?

Thanks

Edit: I increased probesize and that warning disappeared, but the conversion keeps failing with the same error message "Underestimated required buffer size". I can now reproduce this on one of my Windows machines.

Edit 2: Not a solution but I found out that this problem is gone if using ffmpeg 4.2.3 and was introduced with 4.3

Upvotes: 0

Views: 831

Answers (1)

Kajuna
Kajuna

Reputation: 579

Since ffmpeg's bug report system does not seem to allow new users (and therefore reports), the only solution I can suggest is avoiding 4.3.x versions and staying in 4.2.3

Update: This is being fixed in new builds of ffmpeg: https://trac.ffmpeg.org/ticket/9173#ticket

Upvotes: 1

Related Questions