FFmpeg

高效处理视频音频,支持编码、滤镜、流选择与硬件加速。

已扫描
适合谁
视频编辑人员、多媒体开发工程师
不适合谁
无命令行基础的普通用户、仅需图形化工具的初学者
国内可用性
需网络配置。可能需要网络配置或第三方服务可访问。
安装难度
新手友好(★☆☆)。基于终端操作、依赖、API Key 和本地环境要求的初步判断。

安装与下载

openclaw skills install @ivangdavila/ffmpeg

Skill 说明

命令、参数、文件名以原文为准

输入定位(主要区别)

  • -ss-i 之前:快速定位,可能不精确——从最近的关键帧开始
  • -ss-i 之后:帧级精确但速度慢——需从头解码
  • 两者结合使用:-ss 00:30:00 -i input.mp4 -ss 00:00:05——先快速定位,再精确裁剪
  • 裁剪时添加 -avoid_negative_ts make_zero 以修复时间戳问题

流选择

  • 默认行为:选择第一个视频流和第一个音频流——可能不符合需求
  • 显式指定:-map 0:v:0 -map 0:a:1——第一个视频流,第二个音频流
  • 选择所有某类流:-map 0:a——所有音频流
  • 复制特定流:-map 0 -c copy——复制所有流,不重新编码
  • 排除某类流:-map 0 -map -0:s——包含所有流,但排除字幕流

编码质量

  • CRF(恒定速率因子):数值越低,质量越高,文件越大——H.264 的典型值为 18-23
  • -preset:从 ultrafast 到 veryslow——越慢,相同质量下文件越小
  • 使用两阶段编码实现目标码率:第一阶段分析,第二阶段编码
  • -crf-b:v 互斥——只能使用其中一个

容器格式与编解码器

  • 容器(MP4、MKV、WebM):封装多种音视频流的包装格式
  • 编解码器(H.264、VP9、AAC):用于压缩音视频流的算法
  • 并非所有编解码器都兼容所有容器——H.264 可用于 MP4/MKV,不可用于 WebM;VP9 可用于 WebM/MKV,不可用于 MP4
  • 将编解码器复制到新容器:-c copy——速度快,无质量损失

滤镜语法

  • 简单滤镜:-vf "scale=1280:720"——单一滤镜链
  • 复杂滤镜:-filter_complex "[0:v]scale=1280:720[scaled]"——命名输出用于路由
  • 滤镜链:-vf "scale=1280:720,fps=30"——用逗号分隔多个滤镜
  • 滤镜顺序很重要——先缩放后裁剪,与先裁剪后缩放结果不同

常用滤镜

  • 缩放:scale=1280:720scale=-1:720(自动保持宽高比)
  • 裁剪:crop=640:480:100:50——宽度:高度:x:y,从左上角开始
  • 帧率:fps=30——更改视频帧率
  • 裁剪片段:trim=start=10:end=20,setpts=PTS-STARTPTS——setpts 重置时间戳
  • 叠加:overlay=10:10——从左上角偏移位置

音频处理

  • 采样率:-ar 48000——视频常用标准
  • 声道数:-ac 2——立体声
  • 音频编解码器:-c:a aac -b:a 192k——AAC 编码,码率为 192kbps
  • 音量归一化:-filter:a loudnorm——符合 EBU R128 标准的响度归一化
  • 提取音频:-vn -c:a copy output.m4a——无视频,仅复制音频流

拼接合并

  • 相同编解码器/参数:使用 concat 拆包器——-f concat -safe 0 -i list.txt -c copy
  • 不同格式:使用 concat 滤镜——-filter_complex "[0:v][0:a][1:v][1:a]concat=n=2:v=1:a=1"
  • list.txt 格式:每行一个 file 'video1.mp4'——特殊字符需转义
  • 分辨率不同时:在使用 concat 滤镜前,先通过 scale 或 pad 调整至一致

字幕处理

  • 内嵌(硬编码):-vf "subtitles=subs.srt"——无法关闭
  • 作为流封装:-c:s mov_text(MP4)或 -c:s srt(MKV)——用户可切换
  • 从输入中包含字幕流:-map 0:s——包含字幕流
  • 提取字幕:-map 0:s:0 subs.srt——提取第一个字幕流到文件

硬件加速

  • 解码:-hwaccel cuda-hwaccel videotoolbox(macOS)
  • 编码:-c:v h264_nvenc(NVIDIA),-c:v h264_videotoolbox(macOS)
  • 并非总是更快——存在初始化开销;长时间视频效果更明显
  • 质量可能有差异——软件编码通常质量更高

常见错误

  • 忘记使用 -c copy 进行非重新编码操作——默认会重新编码,速度慢且有损
  • 对长视频使用 -ss-i 之后——定位耗时极长
  • 裁剪后音频不同步——使用 -async 1-af aresample=async=1
  • 对已复制流应用滤镜——滤镜需要重新编码;-c copy-vf 同时使用会导致错误
  • 输出文件扩展名未设置编解码器——如 output.mp4 但未指定 -c:v,将使用默认编解码器,可能不是 H.264
I
@ivangdavila

已收录 13 个 Skill

相关推荐