博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ffmpeg过滤器简介
阅读量:7204 次
发布时间:2019-06-29

本文共 707 字,大约阅读时间需要 2 分钟。

hot3.png

ffmpeg过滤器简介

ffmpeg里的过滤器功能是通过libavfilter库实现的。

在libavfilter中,一个过滤器可以有多个输入或多个输出。为了说明可能的情景,我们先看下面的示意图。

如图所示,input流通过split复制成两个流([main],[tmp]),然后其中一个通过crop和vflip过滤器,在合并前与另一个流叠加。你可以使用下面的命令来实现这一目标:

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]标识。名为[tmp]的流先经过crop的处理,剪切掉下半部分图像,然后通过vflip将图像翻转。overlay将标签为[flip]的流(经过crop和vflip处理)叠加到未经处理的流[main]的下半部分。

一些过滤器在输入一个参数列表:他们指定过滤器的名字和一个等号后,并由冒号分开。

存在所谓的源过滤器,没有一个音频/视频输入,和水槽过滤器没有音频/视频输出。

 

转载于:https://my.oschina.net/zhangxu0512/blog/336240

你可能感兴趣的文章
Lucene
查看>>
Manjaro搭建无密访问samba服务器
查看>>
Java-JSON
查看>>
阿里云服务器磁盘挂载
查看>>
关于Python的一些基础操作
查看>>
70. Climbing Stairs
查看>>
C/C++语言中的结构体对齐
查看>>
css基础
查看>>
平衡树初阶——AVL平衡二叉查找树+三大平衡树(Treap + Splay + SBT)模板【超详解】...
查看>>
如果类型是dynamic的且其属性也是dynamic的
查看>>
liinux 下mysql常用命令
查看>>
如何用SQL语句查询Excel数据?
查看>>
用js实现分页功能以及利用xml实现分页功能——数据岛
查看>>
《Programming in Lua 3》读书笔记(十九)
查看>>
html知识点总结
查看>>
博客园
查看>>
Three.js加载3D模型
查看>>
Basic: Fisher's transform
查看>>
mint-ui vue双向绑定
查看>>
Eclipse快捷键一览表(转载)
查看>>