ffmpeg滤镜创建过程

1、创建一个滤镜图

AVFilterGraph *filter_graph = avfilter_graph_alloc();

2、创建滤镜的输入和输出

AVFilterInOut *inputs = avfilter_inout_alloc();

AVFilterInOut *outputs = avfilter_inout_alloc();

3、每个滤镜创建上下文

AVFilterContext *filter1_ctx = avfilter_graph_alloc_filter(filter_graph, filter1, "filter1");

AVFilterContext *filter2_ctx = avfilter_graph_alloc_filter(filter_graph, filter2, "filter2");

4、设置滤镜参数

snprintf(args, sizeof(args), "video_size=%dx%d:pix_fmt=%d:time_base=%d/%d:pixel_aspect=%d/%d", codecContext->width, codecContext->height, codecContext->pix_fmt, codecContext->time_base.num, codecContext->time_base.den, codecContext->sample_aspect_ratio.num, codecContext->sample_aspect_ratio.den);

5、添加输入滤镜

avfilter_graph_create_filter(&buffersrc_ctx, buffersrc, "input", args, nullptr, filter_graph);

6、添加输出滤镜

avfilter_graph_create_filter(&buffersink_ctx, buffersink, "output", nullptr, nullptr, filter_graph);

7、将滤镜的输入和输出与对应的滤镜上下文关联起来

inputs->name = av_strdup("input");

inputs->filter_ctx = filter1_ctx;

inputs->pad_idx = 0;

inputs->next = NULL;

outputs->name = av_strdup("output");

outputs->filter_ctx = filter2_ctx;

outputs->pad_idx = 0;

outputs->next = NULL;

8、解析滤镜描述

avfilter_graph_parse_ptr(filter_graph, filter_descr, &inputs, &outputs, nullptr);

9、连接滤镜链接

avfilter_graph_config(filter_graph, nullptr);

10、清理资源

avfilter_inout_free(&inputs);

avfilter_inout_free(&outputs);

avfilter_graph_free(&filter_graph);

  • 6
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
FFmpeg是一个开源的多媒体处理工具,可以用来进行音视频的处理和转码。而滤镜参数是FFmpeg中用来对音视频进行加工和调整的重要手段。 在FFmpeg中,滤镜参数主要通过一种称为filtergraph的方式进行定义和应用。一个filtergraph由多个滤镜构成,每个滤镜都可以具有不同的参数和属性,用于对输入流进行处理。滤镜参数可以通过命令行或者编写脚本来传递给FFmpeg滤镜参数的使用方式如下: 1. 指定滤镜:使用-vf参数来指定要应用的滤镜,例如-vf "scale=640:480"表示将输入流的分辨率调整为640x480。 2. 设置滤镜参数:使用滤镜名称后跟等号和参数进行设置,例如-vf "eq=brightness=0.5"表示将输入流的亮度调整为0.5。 3. 链接滤镜:对于多个滤镜的应用,可以使用逗号来将它们连接在一起,例如-vf "hue=s=0.5,eq=contrast=1.2"表示先进行色调调整,然后进行对比度调整。 4. 多个filtergraph:可以通过使用多个-filter_complex参数来应用多个不同的filtergraph。 滤镜参数的种类非常丰富,包括调整亮度、对比度、色调、饱和度等基本参数,还可以进行裁剪、旋转、模糊、加水印等高级操作。通过合理使用滤镜参数,可以实现各种不同的音视频处理效果。 总的来说,FFmpeg滤镜参数可以实现对音视频的各种调整和加工,通过灵活配置参数,可以满足不同场景下的需求。掌握滤镜参数的使用方法,可以帮助我们更好地利用FFmpeg进行音视频处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值