您可以使用concat demuxer.
#1创建一个文本文件
file video.mp4
inpoint 34.5
outpoint 55.1
file video.mp4
inpoint 111.0
outpoint 155.3
file video.mp4
inpoint 278
outpoint 316.4
Run Code Online (Sandbox Code Playgroud)
inpoint/outpoint指令指定上面列出的文件的修剪入点和出点(秒).
#2a创建联合文件
ffmpeg -f concat -i list.txt combined.mp4
Run Code Online (Sandbox Code Playgroud)
#2b将叠加层放在一起
ffmpeg -f concat -i list.txt -i background.mp4 -filter_complex "[0:v]scale=400:400[v1];[1:v][v1]overlay=0:0:shortest=1" -shortest -preset superfast "output.mp4"
Run Code Online (Sandbox Code Playgroud)
外部音频流与concat
ffmpeg -i 12m.mp4 -f concat -i list.txt -vf setpts=(PTS-STARTPTS)/1.1 -af atempo=1.1 -map 1:v -map 0:a -shortest new.mp4
Run Code Online (Sandbox Code Playgroud)
对于任何进入此领域的人,我注意到 Gyan 的答案有一个缺点,即在帧间编解码器的情况下,入点和出点是近似的(请参阅文档)。
以下命令(来自Ilogan 的回答)没有这个缺点。它适用于一个或多个输入。
ffmpeg -i input1.mp4 -i input2.mp4 -i input3.mp4 \
-filter_complex \
"[0:v]trim=3.48:5.72,setpts=PTS-STARTPTS[v0]; \
[0:v]trim=6.56:8.68,setpts=PTS-STARTPTS[v0b]; \
[1:v]trim=13.52:15.36,setpts=PTS-STARTPTS[v1]; \
[1:v]trim=17.56:23.32,setpts=PTS-STARTPTS[v1b]; \
[2:v]trim=20.6:23.96,setpts=PTS-STARTPTS[v2]; \
[v0][v0b][v1][v1b][v2]concat=n=5:v=1:a=0[v]" \
-map "[v]" -an -crf 17 output.mp4
Run Code Online (Sandbox Code Playgroud)
您的问题很笼统……
以下示例可能对您有所帮助,但可能无法解决您的具体问题。
该示例适用于三个阶段:
创建合成视频(没有音频):
ffmpeg -f lavfi -i testsrc=duration=3:size=160x120:rate=10 -c:v rawvideo -pix_fmt rgb24 testsrc.avi
Run Code Online (Sandbox Code Playgroud)
(创建的视频未压缩)。
参考:https : //trac.ffmpeg.org/wiki/FilteringGuide
将视频分成 3 个部分(创建 3 个视频文件):
ffmpeg -i testsrc.avi -ss 00:00:00 -c copy -t 00:00:01 sec0.avi
ffmpeg -i testsrc.avi -ss 00:00:01 -c copy -t 00:00:01 sec1.avi
ffmpeg -i testsrc.avi -ss 00:00:02 -c copy -t 00:00:01 sec2.avi
Run Code Online (Sandbox Code Playgroud)
参考:https : //superuser.com/questions/138331/using-ffmpeg-to-cut-up-video
以相反的顺序连接(合并)3 个部分:
ffmpeg -i "concat:sec2.avi|sec1.avi|sec0.avi" -codec copy output.avi
Run Code Online (Sandbox Code Playgroud)
注意:Linux 使用单引号'
参考:使用 ffmpeg 连接两个 mp4 文件
| 归档时间: |
|
| 查看次数: |
5214 次 |
| 最近记录: |