ffmpeg文档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

这样最终输出将是视频上部是原始,下部是上部的镜像。(倒影效果)

同一路的滤镜间用逗号(‘,‘)进行分割,不同路的滤镜间用分号(‘;‘)进行分割。在这个例子里面cropvflip是在同一路中的滤镜,splitoverlay则不是同一路的(同一路的级联是对连续的视频进行,如果涉及到一输多、多输一或者多输多则都不是在同一路的,即不是同一路级联)。可以通过在方括号(‘[]‘)中的标签名来命名处理的链路。这个例子里,split滤镜生成了两路就通过[main][tmp]进行了标签命名以方便后续处理。

其中被split处理输出的第二路流被命名为[tmp],它又被crop滤镜处理裁去下半部视频,然后通过vflip进行了水平镜像(垂直翻转,即把视频镜像到下半部了)。这是整个输出被命名为flip。再把[main]flip通过overlay进行覆盖合成,即把源输入通过split滤镜获得的[main]的上半部分覆盖到由cropvflip滤镜级联处理的输出(这里的[flip])上最终得到了镜像结果。

一些滤镜支持参数列表: 滤镜名=由冒号(‘:‘)隔开的多个参数

还存在所谓的源过滤器(即没有输入音频/视频 的过滤器),以及槽过滤器(即没有任何音频/视频 输出的过滤器)

时间: 2024-08-10 21:27:36

ffmpeg文档30-滤镜入门的相关文章

在线HTML文档编辑器使用入门之图片上传与图片管理的实现

1 在线HTML文档编辑器使用入门之图片上传与图片管理的实现: 2 官方网址: http://kindeditor.net/demo.php 3 开发步骤: 4 1.开发中只需要导入选中的文件(通常在 webapp 下,建立 editor 文件夹 ) 5 导入:lang.plugins.themes.kindeditor.js/kindeditor-min.js-->放在editor文件夹下 6 2.在页面上引入相关的js&css文件 7 <!-- 导入Kindeditor相关文件 -

【翻译Autofac的帮助文档】1.入门指南

[写在前面]尝试做完一件工作之外自我觉得有意义的一件事,那就从翻译Autofac的帮助文档吧. 入门指南 将Autofac集成你的应用程序的步骤通常很简单,一般是: 时刻以IOC(控制反转)的思想来规划你的应用程序 在你的Porject中添加Autofac引用 按照如下步骤设计应用程序的启动环节 创建一个ContainerBuilder 向ContainerBuilder注册组件 通过ContainerBuilder的Build()方法获得Container(后续需用到) 在应用程序运行环节时,

ffmpeg文档43-开发者

43 开发者 是FFmpeg的开发者 关于作者的详细信息,可以观看项目(git://source.ffmpeg.org/ffmpeg)的Git历史,或者项目中目录中使用命令git log了解,或者浏览在线的源码(http://source.ffmpeg.org) 源代码树中维护者文件(MAINTAINERS)列出了特定组件的维护人员 另本文档英文版本由makeinfo于2015年6月16日生成 汉化翻译补充说明 由xdsnet(xdsnet at gmail dot com)在2015年6月16

苹果手机打开这个开关,就能变成扫描仪!纸质文档30秒即可电子化

很多朋友在工作中都会使用到扫描仪,但在家里没有扫描仪该怎么办? 其实苹果手机就有扫描仪功能,打开这个开关,纸质文档30秒即可电子化 非常简单便捷哦,下面就带大家一起来看看. 一.图片一键电子化 苹果手机的扫描仪功能就隐藏在备忘录中,使用方法很简单哦! 操作方法: 首先打开备忘录,在备忘录中先新建一页记事本,点击记事本中的"+"号按钮,接着再点击其中的[扫描文稿]功能. 然后将需要电子化的文件拍下来,拍好后,点击图片的右下角的[继续扫描]按钮,跳转新页面后再点击[存储]按钮,图片就会被转

ffmpeg文档26-输入设备

26 输入设备 FFmpeg中的输入设备配置元素用来启用对附加到您的系统一个多媒体设备访问数据. 当编译时,默认会支持所有的输入设备.你可以通过在配置脚本执行时附加–list-indevs了解到支持的设备. 可以通过–disable-indevs在编译时禁用所有输入设备,也可以在此基础上通过–enable-indev=INDEV允许个别设备,或者在默认支持基础上通过–disable-indev=INDEV禁用个别设备支持达到类似的目的. 在ff*工具集中,使用-devices可以获取当前支持的设

ffmpeg文档17-视频编码器

17 视频编码器 介绍一些当前有效的视频编码器 libtheora libtheora的封装 编译需要头和库文件,还需要利用--enable-libtheora在配置中允许 更多信息参考http://www.theora.org/ libtheora选项 下面是映射给libtheora的全局选项,它们对品质和码率产生影响. b 对CBR(固定码率编码)设置码率,单位bit/s,在VBR(动态码率编码)模式下本选项被忽略. flags 设置是否允许qscale标志(恒定质量模式——VBR模式下)在

ffmpeg文档05-选项

5 选项 所有的数值选项,如果没有特殊定义,则需要一个接受一个字符串代表一个数作为输入,这可能跟着一个单位量词首字母,例如"k","m"或"G" 如果i是附加到SI单位的首字母,完整的字母将被解释为一个2的幂数单位,这是基于1024而不是1000的,添加B的SI单位则是再将此值乘以8.例如KB,MiB,G和B 对于选项中不带参数的布尔选项,即把相应的值设置为true,它们可以添加no设置为false,例如nofoo就相当于foo false .

ffmpeg文档27-输出设备

27 输出设备 输出设备是可配置用于ffmpeg写入多媒体数据的元素,其附加到系统的输出设备. 在编译配置ffmepg时,所有支持的输出设备都被默认允许.你可以使用配置选项–list-outdevs了解有哪些设备. 你可以通过–disable-outdevs禁止编译所有输出设备,然后再通过–enable-outdev=OUTDEV以支持个别的设备,也可以通过默认配置,再添加–disable-outdev=OUTDEV来禁用个别设备. 在ff*工具集中,-devices可以显示当前允许的输出设备.

ffmpeg文档38-视频源

38 视频源 下面是当前有效的视频源 buffer 缓冲视频帧,其可以作为滤镜链图的环节 它通常用于编程,特别是通过libavfilter/vsrc_buffer.h的接口. 接受如下参数: video_size 指定视频尺寸,(同时指定width 和 height).语法同于ffmpeg-utils手册中的视频尺寸章节. width 输入视频宽 height 输入视频高 pix_fmt 像素格式描述,可以是一个表征像素格式的号码或者名称 time_base 指定时间戳时基 frame_rate