CGJU
查工具网
2026年5月20日 · 阅读时长 6 分钟

FFmpeg视频剪辑概述

FFmpeg 是一款强大的跨平台音视频处理工具,几乎涵盖了所有视频剪辑需求。相比于传统的桌面剪辑软件,FFmpeg 以命令行方式工作,能够实现批量自动化处理,在视频生产工作流中应用广泛。

本文将系统介绍 FFmpeg 视频剪辑的核心操作,包括时间轴裁剪、精确剪辑、多段拼接、播放速度调整、视频倒放、画面裁剪与旋转等常用功能,每个功能都配有详细的命令示例和参数说明。

时间轴裁剪:ss 与 to 参数

视频裁剪是最基础也是最常用的剪辑操作。FFmpeg 提供了多种裁剪方式,可以从视频中提取任意时间段。

基本裁剪命令

使用 -ss 指定开始时间,-to 指定结束时间,是最直观的裁剪方式:

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

使用 -t 指定时长

除了指定结束时间,还可以使用 -t 参数直接指定裁剪时长:

ffmpeg -ss 30 -t 60 -i input.mp4 -c:v libx264 -c:a aac output.mp4

精确帧级别裁剪

需要注意的是,使用 -c copy 进行流复制时,裁剪点会对齐到最近的关键帧,可能产生几秒的误差。如需精确到帧的裁剪,需要重新编码:

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

精确剪辑方法

在专业视频制作中,精确到帧的剪辑至关重要。以下是几种实现精确剪辑的方法。

使用帧号裁剪

通过 select 滤镜可以精确选择特定帧范围:

ffmpeg -i input.mp4 -vf "select='between(n,100,500)',setpts=PTS-STARTPTS" -af "aselect='between(t,4.17,20.83)',asetpts=PTS-STARTPTS" output.mp4

参数位置的影响

FFmpeg 中 -ss 参数的放置位置会影响裁剪精度和速度:

  • 输入前(-ss -i):快速定位到关键帧,速度快但不够精确
  • 输入后(-i -ss):逐帧解码定位,精确但速度慢
  • 组合使用:先快速定位再精确调整,兼顾速度和精度

多段视频拼接

FFmpeg 提供了多种视频拼接方式,适用于不同场景。

方法一:使用 concat 分离器

当所有视频的编码参数完全一致时,可以使用流复制快速拼接:

# 创建 filelist.txt
file 'video1.mp4'
file 'video2.mp4'
file 'video3.mp4'

# 执行拼接
ffmpeg -f concat -safe 0 -i filelist.txt -c copy output.mp4

方法二:使用 concat 滤镜

当视频参数不同时,使用 concat 滤镜进行重新编码拼接:

ffmpeg -i video1.mp4 -i video2.mp4 -i video3.mp4 \
  -filter_complex "[0:v][0:a][1:v][1:a][2:v][2:a]concat=n=3:v=1:a=1[v][a]" \
  -map "[v]" -map "[a]" output.mp4

播放速度调整

调整视频播放速度是创意剪辑中常用的效果,FFmpeg 可以灵活实现加速和减速。

视频加速播放

使用 setpts 滤镜调整视频速度,数值越小速度越快:

# 2倍速播放
ffmpeg -i input.mp4 -vf "setpts=0.5*PTS" -af "atempo=2.0" output.mp4

# 4倍速播放(音频需要多级atempo)
ffmpeg -i input.mp4 -vf "setpts=0.25*PTS" -af "atempo=2.0,atempo=2.0" output.mp4

视频减速播放

慢动作效果同样通过 setpts 实现,数值越大速度越慢:

# 0.5倍速(慢动作)
ffmpeg -i input.mp4 -vf "setpts=2.0*PTS" -af "atempo=0.5" output.mp4

视频倒放效果

倒放是一种很有创意的视频效果,FFmpeg 通过 reverse 滤镜实现。

视频和音频同时倒放

ffmpeg -i input.mp4 -vf reverse -af areverse output_reverse.mp4

仅视频倒放

如果只需要视频倒放,保留原音频:

ffmpeg -i input.mp4 -vf reverse -c:a copy output_reverse.mp4

画面裁剪与缩放

除了时间轴裁剪,调整画面尺寸也是常见需求。

裁剪画面区域

使用 crop 滤镜裁剪画面,参数为宽:高:x:y:

# 裁剪中间区域(宽800高600,从x=100,y=50开始)
ffmpeg -i input.mp4 -vf "crop=800:600:100:50" output.mp4

# 裁剪中间正方形
ffmpeg -i input.mp4 -vf "crop=w=min(iw\,ih):h=min(iw\,ih):x=(iw-min(iw\,ih))/2:y=(ih-min(iw\,ih))/2" output.mp4

视频缩放

使用 scale 滤镜调整视频分辨率:

# 缩放到1280x720
ffmpeg -i input.mp4 -vf "scale=1280:720" output.mp4

# 按比例缩放(保持宽高比)
ffmpeg -i input.mp4 -vf "scale=640:-1" output.mp4

旋转与翻转

视频方向调整也是常见的剪辑操作。

旋转视频

# 顺时针旋转90度
ffmpeg -i input.mp4 -vf "transpose=1" output.mp4

# 逆时针旋转90度
ffmpeg -i input.mp4 -vf "transpose=2" output.mp4

# 旋转180度
ffmpeg -i input.mp4 -vf "transpose=2,transpose=2" output.mp4

水平/垂直翻转

# 水平翻转(镜像)
ffmpeg -i input.mp4 -vf hflip output.mp4

# 垂直翻转
ffmpeg -i input.mp4 -vf vflip output.mp4

总结

FFmpeg 提供了丰富的视频剪辑功能,从基础的裁剪拼接,到高级的变速倒放、画面调整,都能通过简单的命令行实现。掌握这些技巧,能够大幅提升视频处理效率,尤其适合批量处理和自动化工作流场景。

如果你想快速体验视频处理功能,可以直接使用我们的在线视频工具,无需安装任何软件,在浏览器中即可完成各种视频处理操作。

相关推荐

更多精彩文章和实用工具

想快速处理视频?

使用我们的在线视频转换工具,无需安装FFmpeg,直接在浏览器中完成视频裁剪、格式转换等操作

立即体验 ➡