当前位置: 首页 > news >正文

ffmpeg之avformat_alloc_output_context2

函数原型:

int avformat_alloc_output_context2(AVFormatContext **ctx, const AVOutputFormat *oformat,const char *format_name, const char *filename);

功能:

        根据format_name或者filename或者oformat查找输出类型,并且初始化ctx结构。

参数:

        ctx:AVFormatContext结构体,ffmpeg核心结构体,会在函数内部给ctx分配AVFormatContext空间并初始化。

        oformat:指定输出格式的 AVOutputFormat 结构体指针。可以使用 NULL,此时将根据         format_name 自动选择输出格式。

        format_name:输出格式名称

        filename:输出文件/URL名称

返回值:

        成功:0;失败:非0

工作流程:

1. 首先判断oformat是否为NULL:

2. 如果oformat不为NULL:

        直接初始化ctx结构((*ctx)->oformat, 保存filename到(*ctx)->url);

3. 如果oformat为NULL:

        format_name不为NULL:会循环查找muxer_list结构成员的name成员是否与format_name相同;

        filename不为NULL:会循环查找muxer_list结构成员的extensions成员与filename的后缀是否相同;

        找到后初始化ctx结构((*ctx)->oformat, 保存filename到(*ctx)->url); 如果没找到的话释放分配的ctx空间,返回错误码!

        有关muxer_list的信息参考后续代码;

注意:

        那么会产生一个问题:如果format_name和filename都不为NULL呢?当然如果format_name = "flv"和filename="file.flv"这是没问题的,肯定找到同一个结构;那么如果format_name = "flv"和filename="file.mp4"呢?到底以谁为准呢?

        

http://www.lryc.cn/news/305087.html

相关文章:

  • GitLab代码库提交量统计工具
  • Python爬虫技术详解:从基础到高级应用,实战与应对反爬虫策略【第93篇—Python爬虫】
  • 关于TypeReference的使用
  • 阿里大文娱前端一面
  • Clickhouse系列之连接工具连接、数据类型和数据库
  • 【深入理解设计模式】原型设计模式
  • Python算法题集_图论(课程表)
  • 视频评论挖掘软件|抖音视频下载工具
  • Linux学习方法-框架学习法——Linux驱动架构的演进
  • Spring Boot基础面试问题(一)
  • 电路设计(28)——交通灯控制器的multisim仿真
  • 【Docker】免费使用的腾讯云容器镜像服务
  • 如何让qml使用opengl es
  • 金航标电子位于广西柳州鹿寨县天线生产基地于大年正月初九开工了!!
  • FlinkCDC详解
  • 力扣代码学习日记六
  • 「Python系列」Python标准库
  • 虚拟列表【vue】等高虚拟列表/非等高虚拟列表
  • 【MySQL】如何理解索引(高频面试点)
  • NXP实战笔记(四):S32K3xx如何产生中心对称三相六路波形
  • 关于uniapp H5应用无法在触摸屏正常显示的处理办法
  • Stable Diffusion 3 发布,AI生图效果,再次到达全新里程碑!
  • 单例模式怎样实现单例(独例)?
  • MySQL——基础内容
  • node 之 初步认识
  • css复习
  • HTML5和CSS3提高
  • 感受2024生物发酵展示会-明章机械
  • 算法打卡day1|数组篇|Leetcode 704.二分查找、27.移除元素
  • 什么是高阶组件