在将 jpg 转换为视频的 Rasbpi 上初始化输出流 ffmpeg 时出错

Error initializing output stream ffmpeg on Rasbpi converting jpg to video

我有一个包含数千张 1024x768 jpg 的文件夹,我想将其转换为单个视频进行播放。

我得到的错误是Error initializing output stream 73:0 -- Error while opening encoder for output stream #73:0 - maybe incorrect parameters such as bit_rate, rate, width or height Conversion failed!

这是我的输入$ ffmpeg -i Timelapse/*.jpg -c:v libx264 -preset ultrafast -crf 0 output.mkv -y

奇怪的是它在特定编号的输出流上出错。它似乎是 71:0、72:0 或 73:0。我认为它试图在给定流中处理的文件有问题,但分辨率都是一样的(因为我看到它不能被 2 整除时出现错误)。我删除了第 71-73 张图像,希望它以某种方式搞砸了,但这也无济于事。我已确保我的 libx264 也已正确安装。

有什么建议吗?

终端输出示例

问题

您忘记了 -pattern_type glob 输入选项。结果 ffmpeg 扩展了通配符 (*) 并将 image0000.jpg 解释为唯一的输入,并将以下所有图像解释为输出。命令执行为:

ffmpeg -i Timelapse/image0000.jpg Timelapse/image0001.jpg Timelapse/image0002.jpg Timelapse/image0003.jpg [...] -c:v libx264 -preset ultrafast -crf 0 output.mkv -y

因为您使用了 -y 它覆盖了所有输出图像而不要求您确认。

解决方案

使用 glob 模式:

ffmpeg -pattern_type glob -i 'Timelapse/*.jpg' -c:v libx264 -preset ultrafast -crf 0 output.mkv

或使用 序列模式 也可用于 Windows:

ffmpeg -i Timelapse/image%04d.jpg -c:v libx264 -preset ultrafast -crf 0 output.mkv

有关详细信息,请参阅 FFmpeg image demuxer documentation