- 1 命令语法
- 2 描述/概览
- 3 详细说明
- 4 流的选择(指定)
- 5 选项
- 6 例子
- 7 语法
- 8 表达式计算/求值
- 9 OpenCL选项
- 10 编码选项
- 11 解码器
- 12 视频解码
- 13 音频解码
- 14 字幕解码
- 15 编码
- 16 音频编码器
- 17 视频编码器
- 18 字幕编码器
- 19 比特流滤镜(过滤器)
- 20 格式选项
- 21 分离器(解复用)
- 22 混合器
- 23 元数据
- 24 协议
- 25 设备选项
- 26 输入设备
- 27 输出设备
- 28 重采样(resampler)选项
- 29 放缩选项
- 30 滤镜入门
- 31 graph2dot
- 32 滤镜链图描述
- 33 时间线编辑
- 34 音频滤镜
- 35 音频源
- 36 音频槽
- 37 视频滤镜
- 38 视频源
- 39 视频槽
- 40 多媒体滤镜
- 41 多媒体源
- 42 参考
30 滤镜入门
30 滤镜入门
FFmpeg通过libavfilter
库实现滤镜功能。
在libavfilter
中,一个滤镜可以有多个输入和多个输出。为了尽可能介绍清楚,我们假定有下面的滤镜链图。
[main]
input --> split ---------------------> overlay --> output
| ^
|[tmp] [flip]|
+-----> crop --> vflip -------+
在这个滤镜链图中,利用split
滤镜把输入流分离成了两路流,其中一路通过crop
滤镜和vfilp
滤镜的同一路级联应用,再同另外一路一起通过overlay
滤镜处理的流合成进行输出。则可以采用如下的命令行实现:
ffmpeg -i INPUT -vf "split [main][tmp]; [tmp] crop=iw:ih/2:0:0, vflip [flip]; [main][flip] overlay=0:H/2" OUTPUT
这样最终输出将是视频上部是原始,下部是上部的镜像。(倒影效果)
同一路的滤镜间用逗号(‘,’)进行分割,不同路的滤镜间用分号(‘;’)进行分割。在这个例子里面crop
和vflip
是在同一路中的滤镜,split
和overlay
则不是同一路的(同一路的级联是对连续的视频进行,如果涉及到一输多、多输一或者多输多则都不是在同一路的,即不是同一路级联)。可以通过在方括号(’[]’)中的标签名来命名处理的链路。这个例子里,split
滤镜生成了两路就通过[main]
和[tmp]
进行了标签命名以方便后续处理。
其中被split
处理输出的第二路流被命名为[tmp]
,它又被crop
滤镜处理裁去下半部视频,然后通过vflip
进行了水平镜像(垂直翻转,即把视频镜像到下半部了)。这是整个输出被命名为flip
。再把[main]
与flip
通过overlay
进行覆盖合成,即把源输入通过split
滤镜获得的[main]
的上半部分覆盖到由crop
和vflip
滤镜级联处理的输出(这里的[flip]
)上最终得到了镜像结果。
一些滤镜支持参数列表: 滤镜名=由冒号(‘:’)隔开的多个参数
还存在所谓的源过滤器(即没有输入音频/视频 的过滤器),以及槽过滤器(即没有任何音频/视频 输出的过滤器)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论