视频的 format 滤镜是一个非常常用的滤镜,用来转换图像的格式,例如可以把 AV_PIX_FMT_YUV420P 转成 AV_PIX_FMT_RGB24。 我们可以用以下命令查询format滤镜支持的参数: ffmpeg-hide_banner1-hfilter=format 从上图可以看到,只有一个参数 pix_fmts,但是这个 pix_fmts 这个参数的 value 是一个列表。列表里面可以只有一种图像格式,也可以有多种...
前面介绍了FFmpeg的 format 视频格式滤镜,那很显然,音频也会有一个格式滤镜,用来转换音频采样格式,调整采样率或者声道布局。 音频的格式滤镜叫 aformat,前面加了个 a 而已。 这是FFmpeg整个开源项目的命名习惯,不仅仅是格式滤镜,还有 buffer 滤镜与 abuffer 滤镜,这两个分别是视频,音频的入口滤镜。而出口滤镜是 buffersink 与 abuffersink。 总之,如果你遇到一个视...
FFmpeg采用了FilterGraph的模型来管理整个数据流的处理,参与数据处理的各个功能模块叫做Filter(滤镜)。 普通的用户在使用音视频剪辑软件的时候,会把滤镜这个词理解为app上提供的一些特效,例如变场,镜像,加水印等等。 但是在FFmpeg音视频开发领域,Filter(滤镜)是指对音视频数据的处理,包括裁剪,转换采样率格式,转换封装格式等等,这些很简单的功能,在FFmpeg里面也是一个Filter。 所以,你可以把Filter(滤镜)看成是一个大杂烩,有很多功能,这些功能都是用来对音频或者视频的数据进行处理。 各个Filter会在FilterGraph中按照一定的顺序连接起来,...
FFmpeg的滤镜API其实有3种调用方法,我个人觉得他是3种用法,如下: 1,用 avfilter_graph_create_filter 一个一个地创建滤镜(AVFilterContext),然后用 avfilter_link 函数把各个滤镜的输入输出连接起来,这种方式比较灵活,但是非常繁琐。 2,下面的命令定义了一个滤镜字符串 "[0:v]scale=iw/2:ih/2" ,直接使用 avfilter_graph_parse2 来解析这个字符串。avfilter_g...