如何用 FFmpeg 剪辑与合并视频
FFmpeg 命令行裁剪、拼接、分段视频实操,给出快剪、精剪、混合格式合并的完整命令。
FFHub·2026-03-03

从长视频里抠一段,或者把几个文件拼起来——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 压缩视频 - 剪完用 CRF、preset 进一步压体积
- 如何用 FFmpeg 给视频加字幕 - 给剪好的视频烧入或嵌入字幕
- 如何用 FFmpeg 转换视频格式 - 容器和编码器互转,搞定兼容性