合并多个具有特定时长的视频

问题描述

我要合并多个视频,以便可以使用FFmpeg获得一个视频文件。

我找到了几种方法来实现此目的,但是我发现所有方法都无法与每个视频的特定时长相结合。

这意味着它们只会合并整个视频。

确实,我想要在特定时间将video1插入video2。在搜索与此相关的几篇文章时,我检查了许多文章,说“用ffmpeg不可能”。

所以我试图将video2分成两个视频(例如video2-1,video2-2)和concat video1,video2-1,video2-2。

解决方法

您可以做的是在滤镜组合中使用修剪和atrim。

示例

ffmpeg -i vid1.mp4 -i vid2.mp4 -filter_complex "[0:v]trim=0:2,setpts=PTS-STARTPTS[v1];[1:v]trim=3:6,setpts=PTS-STARTPTS[v2];[0:a]atrim=0:2,asetpts=PTS-STARTPTS[a1];[1:a]atrim=3:6,asetpts=PTS-STARTPTS[a2];[v1][a1][v2][a2]concat=n=2:v=1:a=1" out.mp4

这会将vid1从0剪切为2,将vid2从3剪切为6,并将它们组合在一起。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...