FFMPEG Filter介绍
来源:互联网 发布:火影忍者挂机软件 编辑:程序博客网 时间:2024/05/16 04:47
原文地址:http://www.aichengxu.com/view/941301
AVFilter的功能十分强大,可以实现对多媒体数据的各种处理,包括时间线编辑、视音频特效滤镜的添加或信号处理,还可以实现多路媒体流的合并或叠加,其丰富程度令人叹为观止。这里主要以视频滤镜为例进行介绍。使用AVFilter可以为单路视频添加单个或多个滤镜,也可以为多路视频分别添加不同的滤镜并且在最后将多路视频合并为一路视频,AVFilter为实现这些功能定义了以下几个概念:
Filter:代表单个filter
FilterPad:代表一个filter的输入或输出端口,每个filter都可以有多个输入和多个输出,只有输出pad的filter称为source,只有输入pad的filter称为sink
FilterLink:若一个filter的输出pad和另一个filter的输入pad名字相同,即认为两个filter之间建立了link
FilterChain:代表一串相互连接的filters,除了source和sink外,要求每个filter的输入输出pad都有对应的输出和输入pad
FilterGraph:FilterChain的集合
基本和DirectShow类似,也与视频后期调色软件中的节点等概念类似。具体来看,以下面的命令为例
[in]split[main][tmp];[tmp]crop=iw:ih/2,vflip[flip];[main][flip]overlay=0:H/2[out]在该命令中,输入流[in]首先被分[split]为两个流[main]和[tmp],然后[tmp]流经过了剪切[crop]和翻转[vflip]两个滤镜后变为[flip],这时我们将[flip]叠加[overlay]到最开始的[main]上形成最后的输出流[out],最后呈现出的是镜像的效果。下图清晰地表示了以上过程
我们可以认为图中每一个节点就是一个Filter,每一个方括号所代表的就是FilterPad,可以看到split的输出pad中有一个叫tmp的,而crop的输入pad中也有一个tmp,由此在二者之间建立了link,当然input和output代表的就是source和sink,此外,图中有三条FilterChain,第一条由input和split组成,第二条由crop和vflip组成,第三条由overlay和output组成,整张图即是一个拥有三个FilterChain的FilterGraph。
上面的图是人工画出来的,也可以在代码中调用函数自动将FilterGraph画出来
0 0
- FFMPEG Filter介绍
- FFMPEG SDK 开发介绍 -- Filter 篇
- ffmpeg filter
- ffmpeg中available filter
- FFmpeg filter HOWTO
- FFmpeg filter HOWTO
- ffmpeg filter参数设置格式
- FFMPEG filter讲解
- ffmpeg filter command
- ffmpeg filter command
- ffmpeg fancy filter example
- ffmpeg的filter分析
- FFmpeg filter简介
- ffmpeg filter开发
- FFmpeg filter[待完善]
- FFMPEG Filter相关API
- FFmpeg filter 详细解析
- Filter介绍
- 【C++】int与string的互转
- 表单上传文件
- (转载收藏用)linux sed命令详解
- c# Bitmap byte[]互转
- googleNet
- FFMPEG Filter介绍
- BIO、NIO的区别
- PHP正则表达式教程(基础篇)
- 埃森哲:物联网银行,下一个大趋势?
- VPN连接器 不能上网页 TF400324: 服务器 没有 Team Foundation 服务
- POJ2752 KMP中next数组的应用
- android数据库Sqlite(3)
- Java定时调度 Timer类和TimerTask类
- cacti function