我正在从 n 个非连续图像制作视频。因此我使用以下命令从 ffmpeg 创建视频:
ffmpeg.exe -y -r 1 -f concat -safe 0 -i "D:\filelist.txt" -c:v libx264 -vf "setpts=1*PTS" d:\out.mp4 -hide_banner
filelist.txt 文件包含以下条目:
file '\1\1562776864008\1562776864.jpg'
file '\1\1562776864008\1562776865.jpg'
file '\1\1562776864008\1562776866.jpg'
file '\1\1562776864008\1562776867.jpg'
上述命令有效。如果目录中有所有文件可用。
如果任何一个文件丢失,我就会得到以下输出并且无法继续为剩余文件创建视频:
cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
[concat @ 000002c6724eb5c0] Impossible to open '\1\1562776864008\1562776865.jpg'
D:filelist.txt: No such file or directory
我的要求是从图像创建视频。目录中可能缺少一些图像。当图像不可用时,意味着需要继续为剩余图像创建视频。
答案1
ffmpeg 没有跳过丢失文件的选项。更好的解决方案是:
- 不要将不存在的文件写入你的
.txt
文件 - 创建一个脚本,遍历
.txt
文件并删除引用不存在文件的每一行
这样,ffmpeg 将能够正确打开每个指定的输入文件。