ffmpeg命令行:音视频处理终极指南
FFmpeg是强大的音视频处理工具,核心功能包括格式转换、剪辑、滤镜处理等。其基本语法遵循“ffmpeg [全局参数] -i 输入文件 [输出参数] 输出文件”的格式。主要参数分为输入/输出控制(-i,-f)、流处理(-vn,-an)、编解码(-c:v,-c:a)、时间控制(-ss,-t)、滤镜(-vf,-af)等类别。常用场景包括格式转换、音频提取、视频裁剪、添加水印等。使用时需注意:优先用-c
目录
ffmpeg 是 FFmpeg 工具集中最核心的命令行工具,用于音视频的编解码、格式转换、剪辑、滤镜处理等操作。它通过简洁的命令语法实现复杂的多媒体处理任务,支持几乎所有主流音视频格式和协议。
一、基本语法
ffmpeg [全局参数] [输入文件参数] -i 输入文件 [输出文件参数] 输出文件
-i:指定输入文件(必填,可指定多个输入)。- 参数顺序:全局参数 → 输入参数 → 输入文件 → 输出参数 → 输出文件。
二、核心参数分类
1. 输入 / 输出控制
-
-i:指定输入文件(如-i input.mp4,支持本地文件、URL、设备等)。 -
-f:强制指定格式(如-f mp4强制输出为 MP4 格式,常用于无扩展名文件)。 -
-y:覆盖已存在的输出文件(无需确认)。 -
-n:不覆盖已存在的输出文件(直接退出)。
2. 流选择与处理
-
-vn:禁用视频流(仅保留音频)。 -
-an:禁用音频流(仅保留视频)。 -
-sn:禁用字幕流。 -
-map:手动选择流(如-map 0:v:0选择第 1 个输入的第 1 个视频流)。
3. 编解码与码率控制
-
-c:v/-vcodec:指定视频编码器(如libx264对应 H.264,libx265对应 H.265/HEVC)。 -
-c:a/-acodec:指定音频编码器(如aac、mp3、libopus)。 -
-c copy:直接复制流(无重新编码,快且无质量损失,如格式兼容时使用)。 -
-b:v:视频码率(如-b:v 2000k表示 2000kbps)。 -
-b:a:音频码率(如-b:a 128k)。 -
-crf:恒定质量模式(仅部分编码器支持,如 x264/x265,值越小质量越高,范围 0-51,推荐 23-28)。
4. 尺寸与帧率
-
-s:设置视频分辨率(如-s 1920x1080或-s hd1080)。 -
-vf "scale=w:h":通过滤镜缩放(更灵活,如-vf "scale=1280:-1"保持比例缩放宽为 1280)。 -
-r:设置帧率(如-r 30表示 30fps)。
5. 时间控制
-
-ss:起始时间(如-ss 00:01:30从 1 分 30 秒开始处理,放输入前更快)。 -
-t:处理时长(如-t 60处理 60 秒)。 -
-to:结束时间(如-to 00:03:00处理到 3 分钟)。
6. 滤镜(强大且常用)
通过 -vf(视频滤镜)或 -af(音频滤镜)应用链,用逗号分隔多个滤镜。
-
视频旋转:
-vf "transpose=1"(1 = 顺时针 90 度,2 = 逆时针 90 度)。 -
添加水印:
-vf "overlay=10:10"(在左上角 10x10 位置叠加水印图片,需额外-i watermark.png作为输入)。 -
裁剪:
-vf "crop=w:h:x:y"(裁剪宽度 w、高度 h,起点 (x,y))。 -
音频降噪:
-af "arnndn=model=rnnoise-nu.model"(需提前下载模型)。
三、常用示例
-
格式转换(带编码)将 MKV 转为 H.264/AAC 编码的 MP4:
ffmpeg -i input.mkv -c:v libx264 -crf 23 -c:a aac -b:a 128k output.mp4 -
快速提取音频(无编码)从视频中提取 AAC 音频(直接复制流):
ffmpeg -i input.mp4 -vn -c:a copy output.aac -
裁剪视频从第 30 秒开始,裁剪 10 秒长的片段:
ffmpeg -ss 30 -i input.mp4 -t 10 -c copy output_clip.mp4 -
调整分辨率将视频缩放到 720p(保持比例):
ffmpeg -i input.mp4 -vf "scale=-1:720" output_720p.mp4 -
添加文字水印在视频右上角添加文字 “LOGO”(需系统支持字体):
ffmpeg -i input.mp4 -vf "drawtext=text='LOGO':x=w-tw-10:y=10:fontsize=24:fontcolor=white" output_watermark.mp4 -
合并多个视频(同格式)先创建文件列表
list.txt:file 'part1.mp4' file 'part2.mp4'再合并:
ffmpeg -f concat -safe 0 -i list.txt -c copy merged.mp4
四、注意事项
-
若只需快速转换格式且源格式兼容目标容器,优先用
-c copy(避免重新编码,节省时间和质量损失)。 -
复杂滤镜可能增加处理时间,建议先测试小文件。
-
部分编码器(如 H.265)需要较高计算资源,可启用硬件加速(如
-c:v h264_nvenc调用 NVIDIA GPU 编码)。
通过组合不同参数,ffmpeg 可实现几乎所有音视频处理需求,是命令行工具中高效且灵活的选择。
火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)