求一个合并视频的FFmpeg命令行

我搜索了大量资料,研究了一天了,网上能搜索到的方法,我都试过,没找到一个将不同格式、分辨率、帧率的视频正确合并的方法,总是各种报错,有的不报错但合并的视频各种不正常。目前解决的方法,是遍历所有视频,找出最大分辨率、帧率,然后挨个将视频转换成这个分辨率,最后再合并这些转换后的视频。但这个方法真的太慢了,要转换两次。这甚至还是在没考虑音轨的情况下,要让音轨也正常估计要更多转换。
谁知道有更简洁的方法吗?

方法应该是没错,可能就是命令的参数设置还可以优化

转换2次是不是有问题

一次应该就足以,第一次转码时就应该都转换成相同分辨率、编码等参数一致的视频,合并时应该是不需要再次转码的吧(合并时使用 -c copy来避免再次转码,或者 -c:v copy只不对视频内容再转码)

另外,音轨处理相比视频应该是快很多,可以不用怎么操心耗时

1 个赞

这个方法最大的问题,一是FFmpeg.exe频繁启动退出,鼠标频繁变漏斗,二是太慢。

转码是必须的,没有办法。慢是因为默认使用cpu编解码,可以使用电脑显卡支持的硬件加速方法,自行搜索方法吧

主要是你这个需求有问题,实际使用过程中,很少有人这么弄。
问题1:视频文件的顺序,按理说你要手动调整才行
问题2:不同分辨率、画面比例的视频如何合并。一般分辨率小的视频应该尽量放大,居中,一端不留黑边,另一端留黑边或者模糊画面。这个滤镜在ffmpeg里好像要根据两个视频的分辨率,手动计算数值,不能智能完成。
问题3:正常的视频剪辑过程中,不同视频的声音音量不同,应当做音量匹配

以上问题,同一来源的视频合并才能避免,比如批量合并监控视频。

所以你还是用个视频剪辑软件吧,AE PR教程很多,开源的也可以用shotcut,爱剪辑快剪辑什么的也行

关键点是 I帧、P帧、B帧,很容易出问题,你可以研究一下,我已经放弃了。

试试这个GUI前端