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);

相关推荐

  1. ffmpeg创建过程

    2024-07-10 11:04:01       10 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-10 11:04:01       4 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-10 11:04:01       5 阅读
  3. 在Django里面运行非项目文件

    2024-07-10 11:04:01       4 阅读
  4. Python语言-面向对象

    2024-07-10 11:04:01       4 阅读

热门阅读

  1. stm32使用单通道规则组ADC

    2024-07-10 11:04:01       11 阅读
  2. HTML 学习指南:从入门到精通

    2024-07-10 11:04:01       11 阅读
  3. 经导管二尖瓣修复系统市场全面解析与未来展望

    2024-07-10 11:04:01       10 阅读
  4. 大众点评商家电话采集软件分享 解析爬虫工具

    2024-07-10 11:04:01       11 阅读
  5. Python 使用正则提取字符串

    2024-07-10 11:04:01       7 阅读
  6. 专业课笔记——(第十二章:文件的读写)

    2024-07-10 11:04:01       7 阅读
  7. lvs集群

    2024-07-10 11:04:01       9 阅读
  8. Perl 语言入门学习

    2024-07-10 11:04:01       9 阅读
  9. 大模型/NLP/算法面试题总结3——BERT和T5的区别?

    2024-07-10 11:04:01       15 阅读
  10. 单元测试核心类备忘

    2024-07-10 11:04:01       10 阅读