在这个问题 吉安回答说可以一步完成修剪和连接。这似乎是一个简单而常见的功能,但我在搜索中找不到如何做到这一点。具体来说,如果我有两个 MPEG 传输流文件,比如说和VidA.ts
,VidB.ts
哪个 ffmpeg 命令会(例如)取出的最后 180 秒VidA
并将其与的前 10 分钟合并(连接)VidB
成VidC.ts
?
(因为我认为你不能修剪最后 180 秒在不知道持续时间的情况下,假设所有输入文件的持续时间为 15 分钟;它们可能不是,但我可以做简单的数学计算。哈哈)
此外,我想知道是否有可能(使用一个命令)输出三个文件,如给出的示例所示,其中
VidC01.ts
是 的前 12 分钟VidA
,VidC02.ts
是“修剪和连接”的文件,并且VidC03.ts
是的最后5分钟VidB
。
我知道如何通过多个步骤完成所有这些工作,我只是天真地认为有办法,只是我还没能发现它。
任何帮助是极大的赞赏!
答案1
基本模板是
ffmpeg
-t 12:00 -i VidA.ts
-ss 12:00 -i VidA.ts
-t 10:00 -i VidB.ts
-ss 10:00 -i VidB.ts
-filter_complex "[1:v][1:a][2:v][2:a]concat=n=2:v=1:a=1[c02v][c02a]"
-map 0 -c:v libx264 -c:a aac VidC01.ts
-map [c02v] -map [c02a] -c:v libx264 -c:a aac VidC02.ts
-map 3 -c:v libx264 -c:a aac VidC03.ts
我假设所有输入的长度都恰好为 15 分钟,并且包含视频和音频流。