CGJU
查工具网
2026年7月10日 · 阅读时长 8 分钟

前言:FFmpeg是什么?

FFmpeg 是一款强大的开源音视频处理工具,几乎支持所有常见的音视频格式转换、剪辑、滤镜等操作。它包含了 libavcodec、libavformat、libavutil 等多个库,是目前最流行的视频处理工具之一。

本文整理了日常工作中最常用的 FFmpeg 命令,涵盖格式转换、音频提取、视频剪切、水印添加、字幕合成、视频压缩等高频场景,方便大家快速查阅和使用。

💡 小提示:如果你不想记命令,可以直接使用我们的 在线视频工具,无需安装任何软件,在浏览器中就能完成视频转换、压缩等操作。

一、基础命令

1. 查看视频信息

查看视频的详细信息,包括分辨率、码率、编码格式、时长等:

ffmpeg -i input.mp4

只显示关键信息,不输出多余内容:

ffmpeg -i input.mp4 -hide_banner

2. 查看FFmpeg版本

ffmpeg -version

3. 查看支持的编码器/解码器

ffmpeg -encoders
ffmpeg -decoders
ffmpeg -codecs

4. 查看支持的格式

ffmpeg -formats

5. 查看支持的滤镜

ffmpeg -filters

二、视频格式转换

1. MP4 转 AVI

ffmpeg -i input.mp4 output.avi

2. MP4 转 MKV

ffmpeg -i input.mp4 output.mkv

3. MP4 转 WebM

ffmpeg -i input.mp4 -c:v libvpx -c:a libvorbis output.webm

4. MP4 转 MOV

ffmpeg -i input.mp4 -c copy output.mov

5. AVI 转 MP4

快速转换(不重新编码):

ffmpeg -i input.avi -c copy output.mp4

重新编码(兼容性更好):

ffmpeg -i input.avi -c:v libx264 -c:a aac output.mp4

6. 批量转换格式

批量将当前目录下的 AVI 文件转为 MP4:

# Windows
for %i in (*.avi) do ffmpeg -i "%i" -c copy "%~ni.mp4"

# Linux/Mac
for f in *.avi; do ffmpeg -i "$f" -c copy "${f%.avi}.mp4"; done

7. 无损转换(复制流)

当目标格式支持相同编码时,使用 -c copy 可以直接复制流,速度极快且无损质量:

ffmpeg -i input.mkv -c copy output.mp4

三、音频提取与转换

1. 从视频中提取音频(MP3)

ffmpeg -i input.mp4 -vn -c:a libmp3lame output.mp3

指定音频质量(0最好,9最差):

ffmpeg -i input.mp4 -vn -c:a libmp3lame -q:a 2 output.mp3

2. 提取音频为 AAC

ffmpeg -i input.mp4 -vn -c:a aac -b:a 128k output.aac

3. 提取音频为 WAV

ffmpeg -i input.mp4 -vn -c:a pcm_s16le output.wav

4. 音频格式转换

# MP3 转 AAC
ffmpeg -i input.mp3 -c:a aac -b:a 128k output.aac

# WAV 转 MP3
ffmpeg -i input.wav -c:a libmp3lame -q:a 2 output.mp3

# FLAC 转 MP3
ffmpeg -i input.flac -c:a libmp3lame -b:a 320k output.mp3

5. 提取指定时长的音频

ffmpeg -i input.mp4 -vn -ss 00:01:00 -t 00:00:30 -c:a copy output.mp3

参数说明:-ss 开始时间,-t 持续时长

四、视频剪切与拼接

1. 剪切视频片段

从第10秒开始,截取30秒的视频:

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

从开始时间截到结束时间:

ffmpeg -i input.mp4 -ss 00:01:00 -to 00:02:00 -c copy output.mp4
💡 注意:使用 -c copy 剪切速度快但可能不精确,如果需要精确剪切,去掉 -c copy 重新编码。

2. 精确剪切(重新编码)

ffmpeg -i input.mp4 -ss 00:00:10.5 -t 00:00:30.2 -c:v libx264 -c:a aac output.mp4

3. 视频拼接

方法一:使用 concat 分离器(文件列表方式)

先创建一个文件列表 filelist.txt:

file 'input1.mp4'
file 'input2.mp4'
file 'input3.mp4'

然后拼接:

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

方法二:使用 concat 滤镜(重新编码)

ffmpeg -i input1.mp4 -i input2.mp4 -filter_complex "[0:v][0:a][1:v][1:a]concat=n=2:v=1:a=1[v][a]" -map "[v]" -map "[a]" output.mp4

4. 分割视频为多段

将视频分割为每段10分钟:

ffmpeg -i input.mp4 -c copy -segment_time 00:10:00 -f segment output_%03d.mp4

五、视频压缩与调整

1. 调整视频分辨率

# 转为 1280x720
ffmpeg -i input.mp4 -s 1280x720 -c:a copy output.mp4

# 等比例缩放到宽度为1280,高度自动计算
ffmpeg -i input.mp4 -vf "scale=1280:-1" -c:a copy output.mp4

# 等比例缩放到高度为720,宽度自动计算
ffmpeg -i input.mp4 -vf "scale=-1:720" -c:a copy output.mp4

2. 调整视频码率

ffmpeg -i input.mp4 -b:v 2000k -b:a 128k output.mp4

3. 调整视频质量(CRF)

CRF(Constant Rate Factor)是 x264/x265 编码器的质量控制参数,范围0-51,数值越小质量越高,推荐范围18-28:

# 高质量(文件较大)
ffmpeg -i input.mp4 -c:v libx264 -crf 18 -c:a copy output.mp4

# 中等质量(推荐)
ffmpeg -i input.mp4 -c:v libx264 -crf 23 -c:a copy output.mp4

# 较低质量(文件较小)
ffmpeg -i input.mp4 -c:v libx264 -crf 28 -c:a copy output.mp4

4. 调整音频码率

ffmpeg -i input.mp4 -b:a 128k -c:v copy output.mp4

5. 视频压缩(减小文件大小)

ffmpeg -i input.mp4 -c:v libx264 -crf 28 -preset medium -c:a aac -b:a 96k output.mp4

参数说明:-preset 编码速度与压缩率的平衡,可选 ultrafast、superfast、veryfast、faster、fast、medium、slow、slower、veryslow

6. 调整帧率

ffmpeg -i input.mp4 -r 24 -c:a copy output.mp4

六、水印添加

1. 添加图片水印

左上角:

ffmpeg -i input.mp4 -i watermark.png -filter_complex "overlay=10:10" -c:a copy output.mp4

右上角:

ffmpeg -i input.mp4 -i watermark.png -filter_complex "overlay=W-w-10:10" -c:a copy output.mp4

左下角:

ffmpeg -i input.mp4 -i watermark.png -filter_complex "overlay=10:H-h-10" -c:a copy output.mp4

右下角:

ffmpeg -i input.mp4 -i watermark.png -filter_complex "overlay=W-w-10:H-h-10" -c:a copy output.mp4

居中:

ffmpeg -i input.mp4 -i watermark.png -filter_complex "overlay=(W-w)/2:(H-h)/2" -c:a copy output.mp4

2. 调整水印透明度

ffmpeg -i input.mp4 -i watermark.png -filter_complex "[1:v]format=rgba,colorchannelmixer=aa=0.5[wm];[0:v][wm]overlay=10:10" -c:a copy output.mp4

参数说明:aa=0.5 表示透明度50%

3. 添加文字水印

ffmpeg -i input.mp4 -vf "drawtext=text='查工具网':fontsize=24:fontcolor=white:x=10:y=10" -c:a copy output.mp4

4. 动态水印(从左到右移动)

ffmpeg -i input.mp4 -i watermark.png -filter_complex "overlay=x='if(gte(t,2), -w+(t-2)*100, NAN)':y=10" -c:a copy output.mp4

七、字幕处理

1. 添加软字幕(可开关)

ffmpeg -i input.mp4 -i subtitle.srt -c copy -c:s mov_text output.mp4

2. 烧录字幕(硬字幕)

ffmpeg -i input.mp4 -vf "subtitles=subtitle.srt" -c:a copy output.mp4

3. 提取字幕

ffmpeg -i input.mkv -map 0:s:0 subtitle.srt

4. 字幕格式转换

ffmpeg -i subtitle.srt subtitle.ass

八、视频旋转与翻转

1. 旋转视频

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

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

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

2. 水平翻转

ffmpeg -i input.mp4 -vf "hflip" -c:a copy output.mp4

3. 垂直翻转

ffmpeg -i input.mp4 -vf "vflip" -c:a copy output.mp4

九、GIF动图制作

1. 视频转GIF

ffmpeg -i input.mp4 output.gif

2. 高质量GIF

ffmpeg -i input.mp4 -vf "fps=10,scale=480:-1:flags=lanczos,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" output.gif

3. 指定时间段转GIF

ffmpeg -i input.mp4 -ss 00:00:05 -t 00:00:03 -vf "fps=10,scale=480:-1" output.gif

十、图片与视频互转

1. 视频转图片序列

# 每秒提取一帧
ffmpeg -i input.mp4 -r 1 frame_%04d.jpg

# 每10秒提取一帧
ffmpeg -i input.mp4 -r 0.1 frame_%04d.jpg

# 提取所有帧
ffmpeg -i input.mp4 frame_%04d.png

2. 图片序列转视频

ffmpeg -framerate 24 -i frame_%04d.jpg -c:v libx264 -pix_fmt yuv420p output.mp4

3. 单张图片转视频

ffmpeg -loop 1 -i image.jpg -t 5 -c:v libx264 -pix_fmt yuv420p output.mp4

十一、流媒体相关

1. MP4 转 M3U8 (HLS)

ffmpeg -i input.mp4 -c:v libx264 -c:a aac -hls_time 10 -hls_list_size 0 -f hls output.m3u8

2. 多码率HLS

ffmpeg -i input.mp4 \
  -map 0 -map 0 -map 0 \
  -b:v:0 800k -s:v:0 640x360 \
  -b:v:1 1500k -s:v:1 854x480 \
  -b:v:2 3000k -s:v:2 1280x720 \
  -c:a aac -b:a 128k \
  -var_stream_map "v:0,a:0 v:1,a:0 v:2,a:0" \
  -master_pl_name master.m3u8 \
  -hls_time 10 -hls_list_size 0 \
  -f hls stream_%v/output.m3u8

3. MP4 转 DASH

ffmpeg -i input.mp4 \
  -map 0 -map 0 \
  -b:v:0 1500k -s:v:0 854x480 \
  -b:v:1 3000k -s:v:1 1280x720 \
  -b:a 128k \
  -use_timeline 1 -use_template 1 \
  -window_size 5 -adaptation_sets "id=0,streams=v id=1,streams=a" \
  -f dash output.mpd

4. RTMP 推流

ffmpeg -i input.mp4 -c copy -f flv rtmp://server/live/streamkey

十二、高级技巧

1. 硬件加速编码

NVIDIA GPU 加速(NVENC):

ffmpeg -i input.mp4 -c:v h264_nvenc -preset fast -cq 23 -c:a copy output.mp4

Intel QSV 加速:

ffmpeg -i input.mp4 -c:v h264_qsv -preset medium -c:a copy output.mp4

2. 视频去水印

使用 delogo 滤镜去除水印:

ffmpeg -i input.mp4 -vf "delogo=x=10:y=10:w=100:h=50" -c:a copy output.mp4

3. 视频倍速播放

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

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

4. 视频倒放

ffmpeg -i input.mp4 -vf "reverse" -af "areverse" output.mp4

5. 视频降噪

ffmpeg -i input.mp4 -vf "nlmeans" -c:a copy output.mp4

6. 视频稳定

# 第一步:分析视频
ffmpeg -i input.mp4 -vf vidstabdetect -f null -

# 第二步:应用稳定
ffmpeg -i input.mp4 -vf vidstabtransform -c:a copy output.mp4

7. 批量处理时显示进度

使用 -progress 参数输出进度信息:

ffmpeg -i input.mp4 -c copy output.mp4 -progress pipe:1

8. 覆盖输出文件不提示

ffmpeg -y -i input.mp4 output.mp4

9. 只处理视频流或音频流

# 去掉音频
ffmpeg -i input.mp4 -an -c:v copy output.mp4

# 去掉视频
ffmpeg -i input.mp4 -vn -c:a copy output.mp3

十三、常用参数速查

参数 说明
-i 指定输入文件
-c / -codec 指定编码器
-c copy 直接复制流,不重新编码
-c:v 指定视频编码器
-c:a 指定音频编码器
-b:v 视频码率
-b:a 音频码率
-s 分辨率,如 1280x720
-r 帧率
-ss 开始时间
-t 持续时长
-to 结束时间
-vf 视频滤镜
-af 音频滤镜
-vn 去掉视频流
-an 去掉音频流
-y 覆盖输出文件不提示
-crf 恒定质量因子(x264/x265)
-preset 编码速度与压缩率平衡

总结

FFmpeg 是一个功能极其强大的音视频处理工具,掌握这些常用命令可以大大提高视频处理效率。本文涵盖了从基础格式转换到高级滤镜的大部分常用场景,建议收藏以备不时之需。

如果你不想记命令,也可以直接使用我们的 在线视频工具,包括视频转换、压缩、M3U8转MP4等多种功能,无需安装软件,在浏览器中就能完成所有操作。

相关推荐

更多精彩文章和实用工具

不想记FFmpeg命令?

使用我们的在线视频工具,无需安装软件,在浏览器中就能完成视频转换、压缩等操作

立即体验 ➡