FFmpeg Commands
FFmpeg cheatsheet: convert, cut, audio, subtitle, GIF, filters
FFmpeg Commands is a free online Command Reference tool. FFmpeg cheatsheet: convert, cut, audio, subtitle, GIF, filters Related terms: ffmpeg · 视频转换 · 剪辑 · 音频 · 字幕 · gif. Use it on this page without signing in.
67 scripts in total
MP4 转 MKV(容器转换)
直接更换封装容器而不重新编码(-c copy),速度极快且无损。适用于 H264/AAC 等通用编码在不同容器间转换。
MP4 转 WebM(VP9)
将 MP4 转为浏览器友好的 WebM,使用 VP9 视频编码与 Opus 音频编码,适合网页嵌入。
AVI 转 MP4(H264)
将老旧的 AVI 重新编码为通用 H264/AAC 的 MP4,提升兼容性与压缩率。libx264 是最常用的 H264 编码器。
MOV 转 MP4
将 iPhone/QuickTime 录制的 MOV 转为 MP4。如原编码已是 H264 可直接流复制,否则重新编码。
转码为 H265/HEVC(省空间)
用 H265 压缩,同等画质下体积约为 H264 的一半。CRF 28 视觉质量约等于 H264 的 CRF 23。
设置 H264 画质(CRF)
CRF(恒定质量)是控制 H264 画质的关键参数:18 视觉无损、23 默认、28 较低质量。preset 越慢压缩率越高。
VP9 编码(WebM 高质量)
VP9 用 CRF + -b:v 0 实现恒定质量模式,CRF 范围 0-63。适合开源友好的 WebM 输出。
硬件加速编码(NVENC)
使用 NVIDIA GPU 的 NVENC 硬件编码器(h264_nvenc / hevc_nvenc),显著加快转码速度。需要带 NVIDIA 显卡。
指定目标码率
通过 -b:v 与 -b:a 固定视频/音频码率,适合对体积有严格要求的场景。也可配合两遍编码(2-pass)更精准。
提取音频为 MP3
从视频中提取音频并转为 MP3。-vn 表示不处理视频,-b:a 控制音频码率(320k 为最高音质)。
提取音频为 AAC / WAV
提取无损 WAV(适合剪辑)或 AAC(高压缩比)。WAV 不压缩、体积大但兼容性极好。
视频转音频(去画面)
将视频文件转换为纯音频文件。最简单的用法:不指定音频编码器,由输出扩展名决定格式。
批量转换目录下所有视频
用 shell 循环遍历目录,将所有 .avi 转为 .mp4。注意此处 ${file%.*} 删除扩展名,已转义。
压缩视频体积
综合手段减小文件体积:降低分辨率、提高 CRF、用 H265。适合分享到受限平台。
按时间裁剪片段
从第 90 秒开始截取 30 秒。-ss 为起始时间,-t 为时长。放 -ss 在 -i 前使用快速 seek(更快但可能不准)。
无重新编码裁剪(关键帧对齐)
使用 -c copy 不重新编码,秒级完成且无损。但裁剪点可能落在非关键帧,导致开头几帧黑屏;放 -ss 在 -i 之前并加 -avoid_negative_ts 可缓解。
合并多个视频(concat demuxer)
推荐方式:用 concat demuxer 无损拼接。要求各视频编码、分辨率、帧率一致。先创建 list.txt。
拼接不同规格视频(concat filter)
当各视频分辨率/编码不一致时,用 concat filter 重新编码统一规格后再拼接。
去掉片头片尾
去掉开头 10 秒和结尾 5 秒。先用 ffprobe 获取总时长,再用 -ss 和 -to 截取中间部分。
分割为等长片段
用 -segment 或 -f segment 把长视频切分成多段,常用于 HLS 切片或分段上传。
提取指定音轨
从含多音轨的视频(如双语版)中提取指定音轨。-map 0:a:1 表示第 1 条音轨(从 0 开始计数)。
替换视频的音轨
用新的音频文件替换视频原有声音。视频流 -c:v copy 直接复制,音频从第二个输入取。
调整音量大小
用 -af volume 滤镜调整音量。volume=2.0 表示放大 2 倍,volume=0.5 表示减半;也可用分贝 volume=-5dB。
静音(去除声音)
去掉视频中的音频轨道,只保留画面。-an 表示不录制音频。
混音(合并两个音频)
将背景音乐与人声混合。amix 滤镜默认做平均,可用 weights 调整各输入权重;duration 决定输出长度。
音频降噪
用 afftdn 滤镜基于 FFT 降噪,适合去除恒定背景噪声(如风声、电流声);nr 为降噪强度(0-97)。
音频淡入淡出
用 afade 滤镜实现音频淡入(t=in)和淡出(t=out)。st 为起始秒数,d 为持续时间。
音频响度标准化(EBU R128)
用 loudnorm 按 EBU R128 标准统一响度(目标 -16 LUFS),适合播客、短视频批量统一音量。
改变采样率与声道
调整音频采样率(-ar)与声道数(-ac)。44100Hz/48000Hz 常见;-ac 2 立体声、-ac 1 单声道。
烧录硬字幕(subtitles 滤镜)
用 -vf subtitles 将字幕直接渲染到画面(硬字幕),无法关闭。需重新编码视频。中文字幕建议指定字体。
嵌入软字幕(可切换)
将字幕作为可选轨道嵌入(软字幕),播放时可切换开关。MKV 容器最灵活,MP4 对 ASS 支持有限。
提取字幕文件
从含字幕的视频中提取出独立的字幕文件。-map 0:s:0 选择第 1 条字幕流。
字幕格式转换(SRT ↔ ASS)
在 SRT 与 ASS 之间互转。ASS 转换由输出扩展名驱动。注意 SRT→ASS 会生成默认样式,可后续编辑。
去除字幕轨道
从视频中移除所有字幕轨道。-map 0:v 与 -map 0:a 只保留视频和音频,丢弃字幕。
视频转 GIF(基础)
最简单的视频转 GIF。fps 控制帧率,scale 控制尺寸(-1 表示按比例自适应)。
高质量 GIF(调色板优化)
GIF 最多 256 色,直接转易出现色带。先用 palettegen 生成最优调色板,再用 paletteuse 应用,画质显著提升。
控制 GIF 大小(帧率/尺寸/时长)
通过降低帧率、缩小尺寸、截短时长来控制 GIF 体积。dither 参数控制抖动算法,影响画质与大小。
GIF 循环与播放控制
-loop 0 表示无限循环(默认),-final_delay 设置最后一帧延迟。-dispose 控制帧间清理方式。
GIF 转视频(MP4)
把 GIF 转为 MP4 体积更小、加载更快(适合网页)。注意 GIF 帧率信息需手动指定。
单帧截图
截取指定时间点的画面为一帧图片。-ss 在 -i 前(快速 seek)。输出格式由扩展名决定。
定时批量截图(每 N 秒一张)
用 fps 滤镜按固定间隔截帧。fps=1 表示每秒一张,fps=1/60 表示每 60 秒一张。
生成缩略图网格
用 tile 滤镜将多帧拼成一张网格图,常用于预览整段视频。配合 fps 控制采样密度。
生成视频封面(缩略图)
生成单张封面图。常用方案:取视频中段画面(避开黑屏的片头片尾)。
调整分辨率
用 scale 滤镜缩放视频。固定宽度时高度用 -1(按比例)或 -2(保证偶数,部分编码器要求)。
画面裁剪(crop)
用 crop 滤镜裁剪画面区域。格式 crop=w:h:x:y,w/h 为输出尺寸,x/y 为左上角坐标。
添加图片水印(overlay)
用 overlay 滤镜把 logo 叠加到视频上。坐标支持 W-w-10(距右 10px)等表达式。
添加文字水印(drawtext)
用 drawtext 滤镜绘制文字水印。中文需指定支持中文的 FontName(如 PingFang SC)。
翻转与旋转画面
水平翻转 hflip、垂直翻转 vflip、旋转 transpose(0=顺时针90°,1=逆时针90°,2=180°,3=逆时针270°)。
调整播放速度
视频用 setpts(PTS 倍率,0.5=2倍速),音频用 atempo(0.5-2.0/次,超出需串联)。两倍速需同时处理音视频。
画面并排合并(左右/上下)
hstack 水平并排、vstack 垂直堆叠。要求各视频分辨率(对应方向)一致,否则先用 scale 统一。
视频淡入淡出
用 fade 滤镜实现画面淡入(t=in)与淡出(t=out)。st 为起始秒,d 为持续秒数。
色彩调整(亮度/对比度/饱和度)
eq 滤镜调整亮度 brightness、对比度 contrast、饱和度 saturation、伽马 gamma。范围:亮度 -1~1,其余有不同区间。
锐化与模糊
unsharp 锐化、boxblur/gblur 模糊。unsharp 格式 unsharp=lx:ly:la:cx:cy:ca,a 为 alpha。
Linux 屏幕录制(x11grab)
Linux 用 x11grab 抓取 X11 桌面。:0.0 表示第 0 显示器第 0 屏幕。需在 X11 环境(多数桌面发行版)。
Windows 屏幕录制(gdigrab)
Windows 用 gdigrab 抓取桌面。"desktop" 表示整个桌面,也可指定窗口标题。
macOS 屏幕录制(avfoundation)
macOS 用 avfoundation 抓取屏幕。先用 -list_devices 查看设备编号,再录制对应屏幕。
推流到 RTMP 服务器
把视频推送到 B站/YouTube/Twitch 等直播平台。需替换为你的推流地址和推流码。推荐用 libx264 + aac,兼容性最好。
摄像头录制
录制摄像头画面。macOS 用 avfoundation,Linux 用 video4linux2,Windows 用 dshow。先列出设备再录制。
录制系统/麦克风音频
录制音频输入。macOS 用 avfoundation,Linux 用 ALSA/PulseAudio。常配合录屏使用。
查看媒体基础信息
最简单的信息查看:直接用 ffmpeg -i(不指定输出会报错但会打印信息)或 ffprobe。
查看封装格式与时长
用 ffprobe -show_format 查看容器层面的信息:时长、比特率、标签等。
查看流(编码/分辨率)
用 -show_streams 查看每条流的详细信息:编码器、分辨率、帧率、像素格式等。可按类型筛选。
JSON 格式输出信息
用 -print_format json 输出结构化 JSON,方便脚本解析与批量处理。常用于自动化转码流程。
仅获取时长
提取单个字段(如时长),用于脚本。format=duration 输出秒数,配合 -of csv 精确提取。
仅获取分辨率
提取视频宽高,常用于自动化判断是否需要缩放。
查看编码格式
快速查看视频和音频使用的编码器,判断是否需要转码或是否兼容目标平台。
统计总帧数与帧率
统计总帧数。注意 -count_frames 会实际解码视频,速度较慢但准确;nb_read_frames 为精确值。
使用说明
- 左侧选择场景(格式转换、裁剪拼接、音频提取、字幕、GIF、滤镜、推流等)
- 在搜索框输入关键词查找命令
- 点击命令卡片查看参数说明
- 点击「复制」粘贴到终端执行
常见问题
- 会覆盖源文件吗? 默认输出到新文件;标有红色「高危」的命令(如直接覆盖输出)需注意目标路径
- 需要先装 FFmpeg 吗? 是,请先安装 FFmpeg 并加入 PATH
- 转码很慢? 与分辨率、编码(如 libx265)和硬件加速有关
More Command Reference
View allDocker Commands
Docker cheatsheet: containers, images, network, volumes
Git Commands
Git cheatsheet: branch, merge, stash, revert
Linux Commands
Linux ops commands: process, disk, memory, network
Database Commands
MySQL / PostgreSQL / Redis / MongoDB cheatsheet
Curl / HTTP
Curl commands: GET / POST / auth / upload / debug
Vim Commands
Vim cheatsheet: move, edit, search, replace, windows
Kubernetes Commands
kubectl cheatsheet: pods, deployments, services, debugging
Code Snippets
Common code snippets: Python / JS / Go utilities
FAQ about FFmpeg Commands
What can FFmpeg Commands do?
FFmpeg Commands is a Command Reference tool. FFmpeg cheatsheet: convert, cut, audio, subtitle, GIF, filters You can finish the job on this page.
Who should use FFmpeg Commands?
Anyone handling ffmpeg · 视频转换 · 剪辑 · 音频 · 字幕 · gif who does not want to install desktop software can use FFmpeg Commands in the browser.
Is FFmpeg Commands safe? Is my data uploaded?
This tool runs in your browser. We do not collect the content you enter into FFmpeg Commands just because you used it.
What similar tools exist?
Related tools in the same Command Reference group are listed at the bottom of this page.