FFmpeg 命令

FFmpeg 常用命令速查,格式转换/裁剪拼接/音频/字幕/GIF/滤镜,一键复制

共 67 个脚本

安全copycontainer

MP4 转 MKV(容器转换)

直接更换封装容器而不重新编码(-c copy),速度极快且无损。适用于 H264/AAC 等通用编码在不同容器间转换。

安全webmvp9

MP4 转 WebM(VP9)

将 MP4 转为浏览器友好的 WebM,使用 VP9 视频编码与 Opus 音频编码,适合网页嵌入。

安全avimp4

AVI 转 MP4(H264)

将老旧的 AVI 重新编码为通用 H264/AAC 的 MP4,提升兼容性与压缩率。libx264 是最常用的 H264 编码器。

安全movmp4

MOV 转 MP4

将 iPhone/QuickTime 录制的 MOV 转为 MP4。如原编码已是 H264 可直接流复制,否则重新编码。

安全h265hevc

转码为 H265/HEVC(省空间)

用 H265 压缩,同等画质下体积约为 H264 的一半。CRF 28 视觉质量约等于 H264 的 CRF 23。

安全crfpreset

设置 H264 画质(CRF)

CRF(恒定质量)是控制 H264 画质的关键参数:18 视觉无损、23 默认、28 较低质量。preset 越慢压缩率越高。

安全vp9crf

VP9 编码(WebM 高质量)

VP9 用 CRF + -b:v 0 实现恒定质量模式,CRF 范围 0-63。适合开源友好的 WebM 输出。

安全nvencgpu

硬件加速编码(NVENC)

使用 NVIDIA GPU 的 NVENC 硬件编码器(h264_nvenc / hevc_nvenc),显著加快转码速度。需要带 NVIDIA 显卡。

安全bitrate码率

指定目标码率

通过 -b:v 与 -b:a 固定视频/音频码率,适合对体积有严格要求的场景。也可配合两遍编码(2-pass)更精准。

安全mp3extract

提取音频为 MP3

从视频中提取音频并转为 MP3。-vn 表示不处理视频,-b:a 控制音频码率(320k 为最高音质)。

安全aacwav

提取音频为 AAC / WAV

提取无损 WAV(适合剪辑)或 AAC(高压缩比)。WAV 不压缩、体积大但兼容性极好。

安全视频转音频extract

视频转音频(去画面)

将视频文件转换为纯音频文件。最简单的用法:不指定音频编码器,由输出扩展名决定格式。

高危batch批量

批量转换目录下所有视频

用 shell 循环遍历目录,将所有 .avi 转为 .mp4。注意此处 ${file%.*} 删除扩展名,已转义。

安全压缩体积

压缩视频体积

综合手段减小文件体积:降低分辨率、提高 CRF、用 H265。适合分享到受限平台。

安全trim裁剪

按时间裁剪片段

从第 90 秒开始截取 30 秒。-ss 为起始时间,-t 为时长。放 -ss 在 -i 前使用快速 seek(更快但可能不准)。

安全copy关键帧

无重新编码裁剪(关键帧对齐)

使用 -c copy 不重新编码,秒级完成且无损。但裁剪点可能落在非关键帧,导致开头几帧黑屏;放 -ss 在 -i 之前并加 -avoid_negative_ts 可缓解。

安全concat合并

合并多个视频(concat demuxer)

推荐方式:用 concat demuxer 无损拼接。要求各视频编码、分辨率、帧率一致。先创建 list.txt。

安全concatfilter

拼接不同规格视频(concat filter)

当各视频分辨率/编码不一致时,用 concat filter 重新编码统一规格后再拼接。

安全片头片尾

去掉片头片尾

去掉开头 10 秒和结尾 5 秒。先用 ffprobe 获取总时长,再用 -ss 和 -to 截取中间部分。

安全segment分割

分割为等长片段

用 -segment 或 -f segment 把长视频切分成多段,常用于 HLS 切片或分段上传。

安全map音轨

提取指定音轨

从含多音轨的视频(如双语版)中提取指定音轨。-map 0:a:1 表示第 1 条音轨(从 0 开始计数)。

安全replace替换

替换视频的音轨

用新的音频文件替换视频原有声音。视频流 -c:v copy 直接复制,音频从第二个输入取。

安全volume音量

调整音量大小

用 -af volume 滤镜调整音量。volume=2.0 表示放大 2 倍,volume=0.5 表示减半;也可用分贝 volume=-5dB。

安全mute静音

静音(去除声音)

去掉视频中的音频轨道,只保留画面。-an 表示不录制音频。

安全amix混音

混音(合并两个音频)

将背景音乐与人声混合。amix 滤镜默认做平均,可用 weights 调整各输入权重;duration 决定输出长度。

安全denoise降噪

音频降噪

用 afftdn 滤镜基于 FFT 降噪,适合去除恒定背景噪声(如风声、电流声);nr 为降噪强度(0-97)。

安全fade淡入

音频淡入淡出

用 afade 滤镜实现音频淡入(t=in)和淡出(t=out)。st 为起始秒数,d 为持续时间。

安全loudnorm响度

音频响度标准化(EBU R128)

用 loudnorm 按 EBU R128 标准统一响度(目标 -16 LUFS),适合播客、短视频批量统一音量。

安全sample_rate采样率

改变采样率与声道

调整音频采样率(-ar)与声道数(-ac)。44100Hz/48000Hz 常见;-ac 2 立体声、-ac 1 单声道。

安全subtitles硬字幕

烧录硬字幕(subtitles 滤镜)

用 -vf subtitles 将字幕直接渲染到画面(硬字幕),无法关闭。需重新编码视频。中文字幕建议指定字体。

安全软字幕mov_text

嵌入软字幕(可切换)

将字幕作为可选轨道嵌入(软字幕),播放时可切换开关。MKV 容器最灵活,MP4 对 ASS 支持有限。

安全extract提取字幕

提取字幕文件

从含字幕的视频中提取出独立的字幕文件。-map 0:s:0 选择第 1 条字幕流。

安全srtass

字幕格式转换(SRT ↔ ASS)

在 SRT 与 ASS 之间互转。ASS 转换由输出扩展名驱动。注意 SRT→ASS 会生成默认样式,可后续编辑。

安全remove去字幕

去除字幕轨道

从视频中移除所有字幕轨道。-map 0:v 与 -map 0:a 只保留视频和音频,丢弃字幕。

安全gif基础

视频转 GIF(基础)

最简单的视频转 GIF。fps 控制帧率,scale 控制尺寸(-1 表示按比例自适应)。

安全gifpalette

高质量 GIF(调色板优化)

GIF 最多 256 色,直接转易出现色带。先用 palettegen 生成最优调色板,再用 paletteuse 应用,画质显著提升。

安全gif体积

控制 GIF 大小(帧率/尺寸/时长)

通过降低帧率、缩小尺寸、截短时长来控制 GIF 体积。dither 参数控制抖动算法,影响画质与大小。

安全gifloop

GIF 循环与播放控制

-loop 0 表示无限循环(默认),-final_delay 设置最后一帧延迟。-dispose 控制帧间清理方式。

安全gif转视频mp4

GIF 转视频(MP4)

把 GIF 转为 MP4 体积更小、加载更快(适合网页)。注意 GIF 帧率信息需手动指定。

安全screenshot截图

单帧截图

截取指定时间点的画面为一帧图片。-ss 在 -i 前(快速 seek)。输出格式由扩展名决定。

安全fps批量截图

定时批量截图(每 N 秒一张)

用 fps 滤镜按固定间隔截帧。fps=1 表示每秒一张,fps=1/60 表示每 60 秒一张。

安全tile缩略图

生成缩略图网格

用 tile 滤镜将多帧拼成一张网格图,常用于预览整段视频。配合 fps 控制采样密度。

安全thumbnail封面

生成视频封面(缩略图)

生成单张封面图。常用方案:取视频中段画面(避开黑屏的片头片尾)。

安全scale分辨率

调整分辨率

用 scale 滤镜缩放视频。固定宽度时高度用 -1(按比例)或 -2(保证偶数,部分编码器要求)。

安全crop裁剪

画面裁剪(crop)

用 crop 滤镜裁剪画面区域。格式 crop=w:h:x:y,w/h 为输出尺寸,x/y 为左上角坐标。

安全overlaywatermark

添加图片水印(overlay)

用 overlay 滤镜把 logo 叠加到视频上。坐标支持 W-w-10(距右 10px)等表达式。

安全drawtext文字水印

添加文字水印(drawtext)

用 drawtext 滤镜绘制文字水印。中文需指定支持中文的 FontName(如 PingFang SC)。

安全fliprotate

翻转与旋转画面

水平翻转 hflip、垂直翻转 vflip、旋转 transpose(0=顺时针90°,1=逆时针90°,2=180°,3=逆时针270°)。

安全setptsatempo

调整播放速度

视频用 setpts(PTS 倍率,0.5=2倍速),音频用 atempo(0.5-2.0/次,超出需串联)。两倍速需同时处理音视频。

安全hstackvstack

画面并排合并(左右/上下)

hstack 水平并排、vstack 垂直堆叠。要求各视频分辨率(对应方向)一致,否则先用 scale 统一。

安全fade淡入

视频淡入淡出

用 fade 滤镜实现画面淡入(t=in)与淡出(t=out)。st 为起始秒,d 为持续秒数。

安全eq亮度

色彩调整(亮度/对比度/饱和度)

eq 滤镜调整亮度 brightness、对比度 contrast、饱和度 saturation、伽马 gamma。范围:亮度 -1~1,其余有不同区间。

安全unsharpblur

锐化与模糊

unsharp 锐化、boxblur/gblur 模糊。unsharp 格式 unsharp=lx:ly:la:cx:cy:ca,a 为 alpha。

注意x11grab录屏

Linux 屏幕录制(x11grab)

Linux 用 x11grab 抓取 X11 桌面。:0.0 表示第 0 显示器第 0 屏幕。需在 X11 环境(多数桌面发行版)。

注意gdigrab录屏

Windows 屏幕录制(gdigrab)

Windows 用 gdigrab 抓取桌面。"desktop" 表示整个桌面,也可指定窗口标题。

注意avfoundation录屏

macOS 屏幕录制(avfoundation)

macOS 用 avfoundation 抓取屏幕。先用 -list_devices 查看设备编号,再录制对应屏幕。

注意rtmp推流

推流到 RTMP 服务器

把视频推送到 B站/YouTube/Twitch 等直播平台。需替换为你的推流地址和推流码。推荐用 libx264 + aac,兼容性最好。

注意camera摄像头

摄像头录制

录制摄像头画面。macOS 用 avfoundation,Linux 用 video4linux2,Windows 用 dshow。先列出设备再录制。

安全录音麦克风

录制系统/麦克风音频

录制音频输入。macOS 用 avfoundation,Linux 用 ALSA/PulseAudio。常配合录屏使用。

安全info基础信息

查看媒体基础信息

最简单的信息查看:直接用 ffmpeg -i(不指定输出会报错但会打印信息)或 ffprobe。

安全format时长

查看封装格式与时长

用 ffprobe -show_format 查看容器层面的信息:时长、比特率、标签等。

安全stream编码

查看流(编码/分辨率)

用 -show_streams 查看每条流的详细信息:编码器、分辨率、帧率、像素格式等。可按类型筛选。

安全jsonprint_format

JSON 格式输出信息

用 -print_format json 输出结构化 JSON,方便脚本解析与批量处理。常用于自动化转码流程。

安全duration时长

仅获取时长

提取单个字段(如时长),用于脚本。format=duration 输出秒数,配合 -of csv 精确提取。

安全resolution分辨率

仅获取分辨率

提取视频宽高,常用于自动化判断是否需要缩放。

安全codec编码格式

查看编码格式

快速查看视频和音频使用的编码器,判断是否需要转码或是否兼容目标平台。

安全frames帧数

统计总帧数与帧率

统计总帧数。注意 -count_frames 会实际解码视频,速度较慢但准确;nb_read_frames 为精确值。

使用帮助