首页 > 解决方案 > 关于连接视频ffmpeg的问题

问题描述

我想使用 ffmpeg 连接 3 个视频。所以我在网上做了一个研究,得到了所需的代码。但后来我意识到它不起作用,因为视频的属性不同,因此我必须重新编码视频

所以我在网上得到了这个:-

ffmpeg -i 1.mp4-i 2.mp4 -i 3.mp4 -filter_complex "[0:v] [0:a] [1:v] [1:a] [2:v] [2:a] concat=n=3:v=1:a=1 [v] [a]" -map "[v]" -map "[a]" output.mp4

但是当我运行它时,它非常慢。ffmpeg 建议vsync 2在代码中添加。我以以下方式添加它:-

ffmpeg -i 1.mp4-i 2.mp4 -i 3.mp4 -vsync 2 -filter_complex "[0:v] [0:a] [1:v] [1:a] [2:v] [2:a] concat=n=3:v=1:a=1 [v] [a]" -map "[v]" -map "[a]" output.mp4

现在视频已按时处理,结果也很好。但我不知道代码的含义。有人会好心解释到底发生了什么吗?(通过这种方式,我可以确保该代码始终适用于所有视频)

标签: audiovideofilterffmpegmp4

解决方案


您已更改 vsync(视频同步 iirc)参数。您可以在此处找到此参数的文档。使用选项“2”,您已将其设置为:帧通过其时间戳或丢弃,以防止 2 个帧具有相同的时间戳。


推荐阅读