← All posts

如何用 FFmpeg 剪辑与合并视频

FFmpeg 命令行裁剪、拼接、分段视频实操,给出快剪、精剪、混合格式合并的完整命令。

FFHub·2026-03-03
如何用 FFmpeg 剪辑与合并视频

从长视频里抠一段,或者把几个文件拼起来——FFmpeg 几条命令的事。剪好之后如果还想瘦身,看视频压缩

怎么裁剪视频

快剪:不重新编码

-ss 起点、-to 终点,加上 -c copy 跳过重编码,几乎是瞬时完成:

ffmpeg -ss 00:01:00 -to 00:02:30 -i input.mp4 -c copy output.mp4

抠出 1:00 到 2:30 这段。

按时长裁

-t 指定时长,不用算结束时间:

ffmpeg -ss 00:00:30 -i input.mp4 -t 60 -c copy output.mp4

从 0:30 开始抠 60 秒。

精剪:要重新编码

-c copy 快,但会从最近的关键帧切,可能差几秒。要帧精确就得重编码:

ffmpeg -ss 00:01:00 -to 00:02:30 -i input.mp4 -c:v libx264 -c:a aac output.mp4

怎么删掉中间一段

要保留 0:00–1:00 和 2:00–结尾,先各自抠出来再合并:

# 第一步:抠出两段
ffmpeg -i input.mp4 -to 00:01:00 -c copy part1.mp4
ffmpeg -i input.mp4 -ss 00:02:00 -c copy part2.mp4

# 第二步:合并(往下看)

怎么合并多个视频

方法一:concat demuxer(推荐)

先写一个清单文件:

# filelist.txt
file 'part1.mp4'
file 'part2.mp4'
file 'part3.mp4'

然后合并:

ffmpeg -f concat -safe 0 -i filelist.txt -c copy output.mp4

所有片段编码器和分辨率一致时,这种方式快且无损。

方法二:concat filter(编码不一致时)

文件编码器或分辨率不同时,得用 concat 滤镜:

ffmpeg -i part1.mp4 -i part2.mp4 \
  -filter_complex "[0:v][0:a][1:v][1:a]concat=n=2:v=1:a=1" \
  output.mp4

会重新编码,慢,但能处理混合格式。如果合并前还得换格式,看如何用 FFmpeg 转换视频格式

抓一帧画面

指定时间点抓一帧出来:

ffmpeg -ss 00:00:05 -i input.mp4 -frames:v 1 frame.png

等分切片

按 30 秒一段切:

ffmpeg -i input.mp4 -c copy -segment_time 30 -f segment output_%03d.mp4

速查表

任务关键参数
快剪-ss-to-c copy
精剪-ss-to-c:v libx264
按时长-ss-t
合并(同编码)-f concat-c copy
合并(混合)-filter_complex concat
切片-segment_time-f segment

不想敲命令行

直接用 FFHub 在浏览器里裁剪和合并。

延伸阅读

如何用 FFmpeg 剪辑与合并视频 | FFHub