从多个单帧视频文件创建视频

从多个单帧视频文件创建视频

我有一个充满视频的目录,每个视频只包含一帧:

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

使用连接解复用器

  1. 包含input.txt以下内容:

    file '0001.flv'
    file '0002.flv'
    file '0003.flv'
    file '0004.flv'
    file '0005.flv'
    
  2. 连接:

    ffmpeg -f concat -i input.txt -c copy output.mp4
    

FFmpeg Wiki:连接了解如何生成列表文件,这样您就不必手动执行此操作。

相关内容