FFmpeg filter过滤器使用方法

FFmpeg filter提供了丰富的音视频处理功能,如缩放、叠加、裁剪等。通过命令`ffmpeg -filters`可查看支持的过滤器。本文介绍了filter的使用方法,包括filter、filterchain和filtergraph的语法,以及主要结构体和滤波实例过程。示例展示了如何使用split、crop、vflip和overlay等滤波器处理视频。
摘要由CSDN通过智能技术生成

1、FFmpeg过滤器简介

FFmpeg filter 提供了很多音视频特效处理功能,比如视频缩放、截取、翻转、叠加等。

FFmpeg有很多已经实现好的滤波器,这些滤波器的实现位于libavfilter目录之下,用户需要可以调用这些滤波器实现滤波。

我们可以通过ffmpeg -filters命令查看FFmpeg支持的过滤器。FFmpeg常用的filter包括:

scale:视频/图像的缩放;

overlay:视频/图片的叠加;

crop:视频/图像的裁剪;

trim:截取视频的片段;

rotate:以任意⻆度旋转视频

movie:加载第三方的视频;

yadif:去隔行。

使用示例(对视频的宽和高减半):ffmpeg -i input -vf scale=iw/2:ih/2 output

2、过滤器使用方法

ffmpeg的filter用起来是和Gstreamer的plugin是一样的概念,通过avfilter_link,将各个创建好的filter按自己想要的次序链接到一起,然后avfilter_graph_config之后,就可以正常使用。

FFmpeg的filter包含3个层次:filter -> filterchain -> filtergraph

filtergraph可以用文本形式表示,可以作为ffmpeg中的 -filter/-vf/-af和-filter_complex 选项以及ffplay中的- vf/-af 和libavfilter/avfilter.h中定义的avfilter_graph_parse2()函数的参数。

示例”把视频的上部分镜像到下半部分“ , 流程如下:

 

(1)使用 split filter 将输入流分割为两个流 [main] 和 [temp];

(2)其中一个流[temp]通过crop filter把下半部分裁剪掉;

(3)步骤2中的输出再经过vflip filter对视频进行垂直翻转,输出[flip];

(4)把步骤3中输出[flip]叠加到[main]的下半部分。

这个流程可以编程实现,也可以使用命令实现。命令实现如下:ffmpeg -i INPUT -vf "split main; [tmp] crop=iw:ih/2:0:0, vflip[flip]; main overlay=0:H/2" OUTPUT

处理结果如下:

3、过滤器语法

3.1 filter语法

用一个字符串描述filter的组成:

形式:[in_link_1]…[in_link_N]filter_name=parameters[out_link_1]…[out_link_M]

★文末名片可以免费领取音视频开发学习资料,内容包括(C/C++,Linux 服务器开发,FFmpeg ,webRTC ,rtmp ,hls ,rtsp ,ffplay ,srs)以及音视频学习路线图等等。

见下方!↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

 

参数:

1)[in_link_N]、[out_link_N]:用来标识输⼊和输出的标签。in_link_N是标签

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值