FFMpeg:幻灯片放映时缓冲区溢出 => 可变 FPS => 恒定 FPS

FFMpeg:幻灯片放映时缓冲区溢出 => 可变 FPS => 恒定 FPS

我有一个 ~1h 的幻灯片,格式为 concat demuxer ( -f concat -i input.txt)。最多有 20 张幻灯片。我想制作一个恒定帧率的 H264 MP4。

我愿意:

 ffmpeg -f concat -i vcd.txt -preset ultrafast -crf 50 -profile:v main -tune stillimage -s:v 1920x1080 -c:v libx264 -pix_fmt yuv420p -framerate 5 -filter:v fps=5 outputtest.mp4

但是,由于它耗尽了我所有的 RAM,因此会冻结。就在我中止它之前,它的 RAM 使用量增加了 800 MB/s。

我尝试保存可变帧率 MP4,然后将其转换为 CFR:

  • ffmpeg -i outputvfr.mp4 -r 5 outputvf2fixed.mp4

  • ffmpeg -i outputvfr.mp4 -filter:v fps=5 outputvf2fixed.mp4

  • ffmpeg -i outputvfr.mp4 -vf settb=AVTB,fps=5 outputvf2fixed.mp4

  • ffmpeg -i outputvfr.mp4 -vsync cfr -framerate 5 outputvf2fixed.mp4

所有这些都会回归Too many packets buffered for output stream 0:1.

否则:

  • 我不想手动复制图像并将它们提供给 FFMpeg。
  • 我不想使用小片段多次运行 FFMpeg,然后再次使用 concat(这似乎不是使用 FFMpeg 的正确方法)

控制缓冲液供应的正确方法是什么?

相关内容