我有一个充满视频的目录,每个视频只包含一帧:
foo/0001.flv
foo/0002.flv
foo/0003.flv
...
ffmpeg 给出了有关所述视频的以下详细信息:
Input #0, flv, from 'frames/0001.flv':
Duration: N/A, start: 0.000000, bitrate: N/A
Stream #0:0: Video: h264 (Constrained Baseline), yuv420p(progressive), 1280x720, 15 tbr, 1k tbn, 30 tbc
我可以通过将所有这些帧转换为 PNG
ffmpeg -i $i.flv $i.png
然后通过编码来实现我想要的效果ffmpeg -i %04d.png <encoding params> result.mp4
。
但是,在单独的 ffmpeg 进程中转换每一帧需要很长时间:有没有办法一次性完成此操作?
答案1
使用连接解复用器。
包含
input.txt
以下内容:file '0001.flv' file '0002.flv' file '0003.flv' file '0004.flv' file '0005.flv'
连接:
ffmpeg -f concat -i input.txt -c copy output.mp4
看FFmpeg Wiki:连接了解如何生成列表文件,这样您就不必手动执行此操作。