目录

一、基本语法

二、核心参数分类

三、常用示例

四、注意事项


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:指定音频编码器(如 aacmp3libopus)。

  • -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"(需提前下载模型)。

三、常用示例

  1. 格式转换(带编码)将 MKV 转为 H.264/AAC 编码的 MP4:

    ffmpeg -i input.mkv -c:v libx264 -crf 23 -c:a aac -b:a 128k output.mp4
    
  2. 快速提取音频(无编码)从视频中提取 AAC 音频(直接复制流):

    ffmpeg -i input.mp4 -vn -c:a copy output.aac
    
  3. 裁剪视频从第 30 秒开始,裁剪 10 秒长的片段:

    ffmpeg -ss 30 -i input.mp4 -t 10 -c copy output_clip.mp4
    
  4. 调整分辨率将视频缩放到 720p(保持比例):

    ffmpeg -i input.mp4 -vf "scale=-1:720" output_720p.mp4
    
  5. 添加文字水印在视频右上角添加文字 “LOGO”(需系统支持字体):

    ffmpeg -i input.mp4 -vf "drawtext=text='LOGO':x=w-tw-10:y=10:fontsize=24:fontcolor=white" output_watermark.mp4
    
  6. 合并多个视频(同格式)先创建文件列表 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 可实现几乎所有音视频处理需求,是命令行工具中高效且灵活的选择。

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐