关于FFMPEG中的filter滤镜的简单介绍

这篇具有很好参考价值的文章主要介绍了关于FFMPEG中的filter滤镜的简单介绍。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

滤镜的作用主要是对原始的音视频数据进行处理以实现各种各样的效果。比如叠加水印,翻转缩放视频等。

下图表示的正常转码流程,滤镜在解码和编码中间,虚线表示可有可无。

ffmpeg 滤镜大全,ffmpeg,ffmpeg,音视频

使用命令查看ffmpeg支持的滤镜

ffmpeg -filters 

查看某个滤镜的详细参数

ffmpeg -h filter=pad

ffmpeg 滤镜大全,ffmpeg,ffmpeg,音视频

 上图显示的pad滤镜的功能和需要的参数。

ffmpeg中的滤镜可分为:

  1. source filter  只有输出
  2. audio filter  音频过滤器
  3. video filter  视频过滤器
  4. multimedia filter  复杂过滤器
  5. sink filter 只有输入

这里需要重点提的两个特别的filter:bufferbuffersink
(1)buffer:滤波器buffer代表filter graph中的源头,原始数据就往这个filter节点输入的。通过调用该滤波器提供的函数(如av_buffersrc_add_frame)可以把需要滤波的帧传输进入滤波过程。在创建该滤波器实例的时候需要提供一些关于所输入的帧的格式的必要参数(如:time_base、图像的宽高、图像像素格式等)。

(2)buffersink:一个特殊的滤波器,滤波器buffersink代表filter graph中的输出节点,处理完成的数据从这个filter节点输出。通过调用滤波器提供的函数(如av_buffersink_get_frame)可以提供出被滤波过程过滤完成后的帧。

除了source和sink filter,其他filter都至少有一个输入、至少一个输出。

也可以简单的分为简单滤镜和复杂滤镜。

简单滤镜:只有一个输入和输出,命令行中使用  -vf(视频滤镜),  -af(音频滤镜)

ffmpeg 滤镜大全,ffmpeg,ffmpeg,音视频

 复杂滤镜:有多个输入和输出,命令行中使用 -lavfi -filter_complex

ffmpeg 滤镜大全,ffmpeg,ffmpeg,音视频

下图中官方给出一个filtergrpah示例:

ffmpeg 滤镜大全,ffmpeg,ffmpeg,音视频

 在这个滤镜图中,我们可以看到使用4个滤镜

1.使用split滤镜将输入流复制成两路流输出,一个叫main. 一个tmp

2.使用crop滤镜对tmp流进行裁剪

3.使用vflip对tmp流进行垂直翻转

4.使用overlay将tmp流叠加在main流中

可以使用命令行表示如下

ffmpeg -i INPUT -vf 'split [main][tmp]; [tmp] crop=iw:ih/2:0:0,vflip [flip]; [main][flip] overlay=0:H/2' OUTPUT

同一路的滤镜间用逗号(‘,’)进行分割,不同路的滤镜间用分号(‘;’)进行分割。



 

ffmpeg 滤镜大全,ffmpeg,ffmpeg,音视频

Filter的语法

Filter 的语法

filter_name=param_name1=param_value1:param_name2=param_value2

filter_name : 是fliter的名称, 必须有;它的参数是可选 的,以":"分隔或"+"号,可以有参数名,也可以没有;

例如:

ffmpeg -i video.avi  -filter_complex 'extractplanes=y+u+v[y][u][v]' -map '[y]' y.avi -map '[u]' u.avi -map '[v]' v.avi

这个抽取视频Y、U、V分量的filter,就有三个输出,分别是 [y][u][v], 抽取后,将不同的输出保存到不同的文件中

没有音频、视频输入的filter称为source filter

没有音频、视频输出的filter称为sink filter

filterchain的语法

filter1,filter2,....

它是多个filter的组合,以逗号分隔;并且每个filter是输入是前一个filter的输出;

ffmpeg -i audio.aac -filter_complex "aresample=async=16000,adelay=316397,volume=1.0" -acodec libfdk_aac -y output.mp4

这里用到了三个filter,分别的aresample, adelay, volume, 组成一个filterchain;

filtergraph的语法

filterchain1;filterchain2;...

它是多个filterchain的组合,以分号";"分隔,

ffmpeg -i INPUT -filter_complex "split [main][tmp]; [tmp] crop=iw:ih/2:0:0, vflip [flip]; [main][flip] overlay=0:H/2" OUTPUT

这里用到了三个filterchain, 分别是:

split [main][tmp]; // 它只有一个filter,即 split; 它有一个默认的输入,即INPUT解码后的frame;

有两个输出, 以 [main], [tmp] 标识;

[tmp] crop=iw:ih/2:0:0, vflip [flip] // 它由两个filter组成,即crop和vflip;一个输入 [tmp], 一个输出[flip];

[main][flip] overlay=0:H/2 // 它由一个filter组成,即overlay, 有两输入,分别是[main][flip], 一个默认的输出;文章来源地址https://www.toymoban.com/news/detail-625058.html

常用滤镜

  • scale:视频/图像的缩放
  • overlay:视频/图片的叠加
  • crop:视频/图像的裁剪
  • trim:截取视频的片段
  • rotate:以任意⻆度旋转视频
  • movie:加载第三方的视频,图片
  • yadif:去隔行
  • pad:  填充视频
  • drawtext: 添加文字

到了这里,关于关于FFMPEG中的filter滤镜的简单介绍的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ffmpeg的滤镜

    FFmpeg 是一款开源的跨平台音视频处理工具,它提供了众多功能强大的滤镜用于视频/音频的加工处理。其中,滤镜(Filter)是 FFmpeg 中一个十分重要且常用的组件,它们可以实现对视频和音频的各种操作和变化,如转码、编解码、剪裁、裁剪、缩放、旋转、倒置、加水印、去除噪

    2023年04月18日
    浏览(36)
  • FFmpeg- 常用的滤镜命令

    下面来熟悉一下常用的对视频操作的几个命令。这次需要完成的命令也包括在其中。 视频的画面大小的剪切(crop filter) 将输入的视频的帧,以左上角为坐标的原点,剪切成x,y坐标开始的指定大小。 语法: 简单的解释: x,y :是偏移量。 ow,oh :是输出的宽和高。 iw ih :还可以使用

    2023年04月16日
    浏览(43)
  • ffmpeg入门篇-滤镜的基本使用

    转发自白狼栈: 查看原文 滤镜 什么是滤镜?百度百科介绍说“滤镜主要是用来实现图像的各种特殊效果......”。 我们最早在ffmpeg是如何转码的一文中了解过滤镜,来回顾下当时的转码流程图。 从图中可以看到滤镜前后画的是虚线,表示可有可无,在术语中,滤镜指的是在

    2024年01月19日
    浏览(39)
  • FFmpeg入门之简单介绍

    FFmpeg是什么意思:  Fast Forward Moving Picture Experts Group ffmpeg相关文档: Documentation  FFmpeg ffmpeg源码下载: https://git.videolan.org/git/ffmpeg.git https://github.com/FFmpeg/FFmpeg.git  FFmpeg能做什么? 多种媒体格式的封装与解封装 : 1.多种音视频编解码 (如: MP4/FLV/KV/TS) 2.多种协议流媒体 (如:RTMP/RTSP/M

    2024年02月09日
    浏览(45)
  • FFmpeg滤镜: 调整视频的亮度-对比度-饱和度

    亮度是指图片的明暗程度,对比度是指图片明暗的差异,饱和度则是指图片颜色的饱满程度。在计算机中每个图片上的像素点都由三个字节来进行表示,分别代表着像素的RGB数据。 图片上每个像素的每种颜色都可以有从0到255的变化,数值越高,颜色的亮度越大,因此当改变

    2024年02月13日
    浏览(63)
  • FFMPEG使用DrawText滤镜添加字幕,包含ndk编译freetype

            ffmpeg使用drawtext滤镜需要在编译的时候使能drawtext,要想成功使能必须要先集成编译freetype库,并通知到ffmpeg(交叉编译没有安装到系统库路径)。         也有看到有的文章说需要集成fribidi,笔者也交叉编译了,但是最终没有用到,可能是ffmpeg版本的原因。 freety

    2024年01月17日
    浏览(73)
  • 音视频开发:ffplay使用ffmpeg滤镜实现倍速播放

    曾经为实现倍速播放使用过ffmpeg,对音频使用atempo滤镜即可实现变速不变调。但是当时效果并不是特别好,和soundtouch相比处理后的音质有明显的区别。最近用新版本的ffmpeg滤镜重新实现了倍速播放,发现效果变好,已经达到可接受的程度,所以在此分享具体实现。 ffmpeg倍速

    2024年02月03日
    浏览(110)
  • FFmpeg Option设置各子Filter参数方法

    又折腾了一把! Option方法是ffmpeg提供的设置各子模块的参数的接口。 折腾很久,主要还是这个接口的使用规则没有明朗,资料比较杂,一直没有找到,经过看代码分析搞定的,这里记录下,有需要的童鞋可以参考参考!

    2024年02月12日
    浏览(36)
  • ffmpeg全景视频转普通视角视频的filter开发

    环境macos12.6 brew install glfw ffmpeg编译脚本 ./configure --cc=clang --prefix=$PWD/build --enable-libx264 --enable-filter=genericshader --enable-gpl --enable-opengl --extra-libs=\\\'-lglfw -ldl\\\'  --extra-cflags=\\\"-I/Users/taio/Downloads/x264-snapshot-20170521-2245/build/include \\\" --extra-ldflags=\\\"-L/Users/taio/Downloads/x264-snapshot-20170521-2245/build/

    2024年01月22日
    浏览(35)
  • ffmpeg中filter_query_formats函数解析

    ffmpeg中filter_query_formats主要起一个pix fmt引用指定的功能。 下下结论: 先看几个结构体定义: 结构体: AVFilterFormatsConfig 再来看函数: 核心函数: ff_set_common_formats 看宏定义: 接着看ref 主要看关键的三行代码: 这就是最开始图片指示的互相引用。

    2024年02月16日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包