文章目录
- 一、FFmpeg 过滤器 Filter 简介
- 1、FFmpeg 过滤器概念
- 2、FFmpeg 过滤器用法
- 3、FFmpeg 过滤器工作流程
- 4、FFmpeg 过滤器文档
- 二、FFmpeg 过滤器 分类
- 1、过滤器分类 - 根据处理数据类型分类
- 2、过滤器分类 - 根据编码器位置分类
- 3、过滤器分类 - 根据功能分类
FFmpeg 相关文档 :
- FFmpeg 文档主页 : https://ffmpeg.org/documentation.html , 在该页面有 命令行工具文档 , 组件文档 , 库文档 , API 文档 等 , 点击对应的链接就可以跳转到对应的文档中 ;
- 命令行工具文档 :
- ffmpeg 命令文档 : https://ffmpeg.org/ffmpeg.html
- ffplay 命令文档 : https://ffmpeg.org/ffplay.html
- 组件文档 :
- 过滤器 Filter 文档 : https://ffmpeg.org/ffmpeg-filters.html
- 编解码器文档 : https://ffmpeg.org/ffmpeg-codecs.html
一、FFmpeg 过滤器 Filter 简介
1、FFmpeg 过滤器概念
FFmpeg 过滤器 又称为 " 滤镜 " , 是 FFmpeg 的重要的组件 , 用于 处理音视频流 和 处理多媒体操作 ;
FFmpeg 过滤器 是一种功能强大的工具 , 可以在 FFmpeg 输入 和 输出 之间 进行一系列的转换和处理 , 如 :
- 裁剪
- 旋转
- 缩放
- 变速
- 添加水印
FFmpeg 过滤器 可以多个一起叠加使用 , 使用不同的 过滤器组合 和 调节参数 , 可以 处理复杂的 音视频 操作 , 如 :
- 音视频转码
- 音视频剪辑
多个 过滤器 一起使用 , 又称为 " 过滤器链 " , 或 " 滤镜链 " ;
参考之前的博客 , 有简单使用过 过滤器 / 滤镜 :
- 【FFmpeg】ffplay 命令行参数 ④ ( 修改窗口标题 -window_title 参数 | 设置播放循环次数 | 设置显示模式 -showmode 参数 | 设置视频滤镜 -vf 参数 )
- 【FFmpeg】ffplay 命令行参数 ⑤ ( 设置音频滤镜 -af 参数 | 设置统计信息 -stats 参数 | 设置同步时钟类型 -sync 参数 )
- 【FFmpeg】ffmpeg 命令行参数 ④ ( ffmpeg 视频参数解析 | 设置视频帧数 | 设置视频码率 | 设置视频帧率 | 设置视频宽高 | 设置视频宽高比 | 设置视频滤镜 )
2、FFmpeg 过滤器用法
在 FFmpeg 命令行 中 , 将 过滤器 名称 作为参数进行传递 ,
- 通过 命令行参数
-vf
设置视频过滤器 - 通过 命令行参数
-af
设置 音频过滤器 ;
过滤器链 : 多个过滤器 可以链式组合 , 形成一个 过滤器链 Filter Chain , 同时实现多个过滤器的效果 ;
过滤器图 : 通过 命令行参数 filter_complex
选项 , 可以 创建一个 包含 多个输入 和 输出 的 复杂 过滤器图 Filter Graph ;
- 可实现 将 多个音视频流 通过 不同的 过滤器 进行处理 ;
3、FFmpeg 过滤器工作流程
FFmpeg 过滤器工作流程 :
- 输入 : 过滤器 接收 一个 或 多个 音视频输入流 ;
- 处理 : 过滤器 对 输入流 进行各种操作 , 如 : 裁剪 , 混音 等操作 ;
- 输出 : 过滤器 处理完数据后 , 输出 一个 或 多个 处理过的 输出流 ;
4、FFmpeg 过滤器文档
FFmpeg 文档主页是 https://ffmpeg.org/documentation.html
点击该页面的文档索引 , 可以跳转到对应的文档中 ;
点击 " 组件文档 " 下的 " 过滤器 " 选项 ,
可跳转到 过滤器文档页面 https://ffmpeg.org/ffmpeg-filters.html
二、FFmpeg 过滤器 分类
1、过滤器分类 - 根据处理数据类型分类
根据处理数据类型 , 可以将 过滤器 分为如下三类 :
- 音频过滤器 Filter : 用于处理音频数据 , 如 : 音频裁剪 , 多路音频混音 , 音频变速 , 音频变调 等 ;
- 视频过滤器 Filter : 用于处理视频数据 , 如 : 视频裁剪 , 视频缩放 , 视频旋转 , 视频叠加 等 ;
- 字幕过滤器 Filter : 用于处理字幕数据 , 如 : 修改字幕 , 字幕翻译 等 ;
2、过滤器分类 - 根据编码器位置分类
根据 过滤器 工作时间 与编解码器工作时间 的 前后位置 , 可以将 过滤器 分为如下三类 :
- Prefilters : 在 编码之前 使用的过滤器 , 主要进行 数据 预处理 ;
- Intrafilters : 在 编码时 使用的过滤器 , 是 视频编解码器 的组成部分 ;
- Postfilters : 在 解码后 使用的过滤器 , 用于 数据 的 后处理 ;
3、过滤器分类 - 根据功能分类
根据过滤器的功能 , 可以将过滤器分为很多类型 :
- scale : 视频缩放 过滤器 ;
- overlay : 视频叠加 过滤器 ;
- crop : 视频裁剪 过滤器 ;
- trim : 视频截取 过滤器 ;
- rotate : 视频旋转 过滤器 ;
- movie : 视频加载 过滤器 ;
更多的 视频过滤器 参考 FFmpeg 过滤器文档 的 " 11 视频滤镜 " 章节 ;