FFmpeg Cheatsheet - Media Processing

音视频处理必备的 FFmpeg 命令都在这里了,从转码到剪辑,按场景分类整理,直接复制改参数。

SysOps·39 commands·Last updated 2026-07-21
Back to SysOps

格式转换 6

ffmpeg -i input.mp4 output.avi
转换容器格式,自动选择编码器
ffmpeg -i input.mp4 -c:v libx264 output.mp4
指定 H.264 编码重新封装
ffmpeg -i input.mp4 -c:v libx265 output.mp4
转 H.265 编码(体积更小)
ffmpeg -i input.wav -c:a libmp3lame -q:a 2 output.mp3
WAV 转 MP3,-q:a 2 约 190kbps
ffmpeg -i input.mp4 -c:v copy -c:a copy output.mkv
无损复制流到 MKV 容器,速度极快
ffmpeg -i input.gif -movflags faststart output.mp4
GIF 转 MP4,faststart 适合网页

裁剪与截取 5

ffmpeg -i input.mp4 -ss 00:01:00 -to 00:02:00 -c copy clip.mp4
截取 1:00 到 2:00 片段,-c copy 快速模式
ffmpeg -ss 10 -i input.mp4 -t 30 clip.mp4
从第 10 秒开始截取 30 秒(-ss 在 -i 前)
ffmpeg -i input.mp4 -vf "crop=640:480:0:0" output.mp4
裁剪画面为 640x480,起始坐标 (0,0)
ffmpeg -i input.mp4 -vf "crop=iw/2:ih:0:0" output.mp4
裁剪左半边画面
ffmpeg -i input.mp4 -vf "scale=1280:720:force_original_aspect_ratio=decrease,pad=1280:720:-1:-1:black" output.mp4
等比缩放并填充黑边到 1280x720

提取与分离 6

ffmpeg -i input.mp4 -vn audio.aac
提取音轨,-vn 去掉视频流
ffmpeg -i input.mp4 -an video_only.mp4
去掉音轨保留视频,-an 去掉音频
ffmpeg -i input.mp4 -vf "select=eq(pict_type\,I)" -vsync vfr thumb_%03d.png
提取关键帧为图片
ffmpeg -i input.mp4 -r 1 frame_%03d.png
每秒提取一张帧图片
ffmpeg -i input.mp4 -map 0:s:0 subtitle.srt
提取字幕轨为 SRT 文件
ffmpeg -i "image_%03d.png" -r 30 video.mp4
图片序列合成视频

压缩与画质 6

ffmpeg -i input.mp4 -c:v libx264 -crf 23 output.mp4
CRF 压缩,值越大画质越低(18-28 常用)
ffmpeg -i input.mp4 -c:v libx264 -crf 18 -preset slow output.mp4
高质量压缩,preset slow 编码更慢但文件更小
ffmpeg -i input.mp4 -c:v libx264 -b:v 1M output.mp4
限制视频码率为 1Mbps
ffmpeg -i input.mp4 -vf "scale=1280:-1" output.mp4
等比缩放到宽度 1280px
ffmpeg -i input.mp4 -c:a aac -b:a 128k output.mp4
音频转 AAC 并指定 128kbps
ffmpeg -i input.mp4 -c:v libx264 -preset fast -tune zerolatency output.mp4
低延迟编码,适合直播推流

水印与字幕 5

ffmpeg -i input.mp4 -i logo.png -filter_complex "overlay=10:10" output.mp4
左上角添加图片水印
ffmpeg -i input.mp4 -i logo.png -filter_complex "overlay=W-w-10:H-h-10" output.mp4
右下角添加水印
ffmpeg -i input.mp4 -vf "subtitles=sub.srt" output.mp4
烧录 SRT 字幕到视频
ffmpeg -i input.mp4 -vf "drawtext=text=Hello:fontcolor=white:fontsize=24:x=10:y=10" output.mp4
添加文字水印
ffmpeg -i input.mp4 -i sub.srt -c copy -c:s mov_text output.mp4
软字幕(可开关)嵌入 MP4

音频处理 5

ffmpeg -i input.mp4 -c:a libmp3lame -b:a 192k output.mp3
转 MP3 并指定 192kbps 码率
ffmpeg -i input.mp3 -af "volume=2.0" output.mp3
音量放大 2 倍
ffmpeg -i input.mp4 -af "atempo=2.0" output.mp4
音频 2 倍速播放(不改音调)
ffmpeg -i input.mp3 -af "silenceremove=stop_periods=1:stop_duration=1:stop_threshold=-50dB" output.mp3
移除静音片段
ffmpeg -i "concat:a.mp3|b.mp3" -c copy output.mp3
拼接多个音频文件

录屏与流媒体 6

ffmpeg -f avfoundation -i "0:" -r 30 -t 60 screen.mp4
macOS 录屏 60 秒(avfoundation)
ffmpeg -f x11grab -i :0.0 -r 25 screen.mp4
Linux 录屏(X11)
ffmpeg -f v4l2 -i /dev/video0 -t 10 webcam.mp4
从摄像头录制 10 秒
ffmpeg -re -i input.mp4 -c copy -f flv rtmp://live.example.com/live
RTMP 推流直播
ffmpeg -i http://example.com/stream.m3u8 -c copy output.mp4
下载 HLS 直播流为本地文件
ffmpeg -i input.mp4 -hls_time 10 -hls_list_size 0 output.m3u8
将视频切片为 HLS 播放列表

💡 Tips

  • -c copy 模式只复制流不重新编码,速度极快但无法做滤镜处理。
  • CRF 值推荐 18-28,18 接近无损,23 是默认值,28 文件较小。
  • -ss 放在 -i 前面是快速定位但不精确,放在 -i 后面是精确但较慢。
  • scale 滤镜中 -1 表示等比缩放,如 scale=1280:-1 宽度 1280 高度自动计算。
  • -preset 越慢压缩率越高:ultrafast < superfast < veryfast < faster < fast < medium < slow < slower < veryslow。
  • 推流直播用 -re 参数按实际帧率读取,避免推流过快导致服务器拒绝。