FFMPEG中结构体很多。最关键的结构体可以分成以下几类:

解协议(http,rtsp,rtmp,mms)

AVIOContext,URLProtocol,URLContext主要存储视音频使用的协议的类型以及状态。URLProtocol存储输入视音频使用的封装格式。每种协议都对应一个URLProtocol结构。

解封装(flv,avi,rmvb,mp4)

AVFormatContext主要存储视音频封装格式中包含的信息;AVInputFormat存储输入视音频使用的封装格式。每种视音频封装格式都对应一个AVInputFormat 结构。

解码(h264,mpeg2,aac,mp3)

每个AVStream存储一个视频/音频流的相关数据;每个AVStream对应一个AVCodecContext,存储该视频/音频流使用解码方式的相关数据;每个AVCodecContext中对应一个AVCodec,包含该视频/音频对应的解码器。每种解码器都对应一个AVCodec结构。

存数据

视频的话,每个结构一般是存一帧;音频可能有好几帧

解码前数据:AVPacket

解码后数据:AVFrame

他们之间的对应关系如下所示:

FFmpeg 结构体学习(八):FFMPEG中重要结构体之间的关系相关推荐

  1. 一文理清Mybatis中resultType与resultMap之间的关系和使用场景

    点击蓝色"程序猿DD"关注我 回复"资源"获取独家整理的学习资料! 1.概述 Mybatis ORM半自动映射框架对java开发工程师来说应该是必会的框架之一. ...

  2. 学习Scala:伴生对象和伴生类之间的关系(二)

    孤立对象是只有一个object关键字修饰的对象,该对象会编译成两个class文件,一个是以孤立对象的名字命名的class, 一个是以孤立对象的名字后面加上一个$ 字符命名的class, 这个class ...

  3. Python中怎样改变集合之间的关系?

    Python中怎样改变集合之间的关系?数学中,两个集合关系的常见操作包括:交集.并集.差集.补集.设A,B是两个集合,集合关系的操作介绍如下: 交集是指属于集合A且属于集合B的元素所组成的集合, 并集 ...

  4. OpenVX中 graph与node之间的关系,以及在CNN中的定位

    OpenVX中 graph与node之间的关系,以及在CNN中的定位 很多小伙伴都知道,OpenVX是用来处理图像的一组API,核心是kernel函数的实现,OpenVX对于图像处理是调用底层硬件的G ...

  5. (1)三相电机中相电压与线电压之间的关系 (2)电机转速,机器速度,电角速度之间的关系(3)磁链估算和磁场定向的定义

    三相电机中相电压与线电压之间的关系 Ua=1/3(2Uab+Ubc) Ub=1/3(Ubc-Uab) Uc=-1/3(Uab+2Ubc) 电机转速,机械速度,电角速度之间的关系 电角速度=机器速度* ...

  6. c语言中 定义结构体变量初始化,c++中的结构体:声明 定义 初始化

    什么是结构体? 之前的学习中我们知道了数组是一个容器,而且是存放固定大小数据的容器,而且存放的元素的数据类型必须要一致. 比如数据库中有这样的一条记录学号 性别 年龄 成绩 地址应该怎样存放 结构体: ...

  7. 33. 使用fread()/fwrite()往文件中写入结构体,从文件中读出结构体

    1 //读写结构体 2 #include <stdio.h> 3 typedef struct student 4 { 5 int num; 6 char name[30]; 7 char ...

  8. matlab单元数组与结构体的区别,MATLAB中的结构体和单元数组

    MATLAB中的结构体和单元数组 一.结构: x.real=10 x.imag=5 增加字段 x.scale=1 使用struct函数 s=struct('field1',values1,'field ...

  9. c中的结构体嵌套问题_C中的结构

    c中的结构体嵌套问题 Structures in C language are basically user-defined data types that enables the user to c ...

最新文章

  1. (转)跟我一起写 Makefile(一)(陈皓)
  2. 李天华:2017年短视频最值得投入的战略性方向
  3. python定义数组是带指针_在cython中声明numpy数组和c指针
  4. 洛谷 P1955 [NOI2015]程序自动分析(沙雕题)
  5. SharePoint2016如何使用策略进行文档归档
  6. 15、解决14中csv用excel打开乱码的问题 open('zhihu.csv','w',newline='',encoding='utf-8-sig')...
  7. 《微软产品开发致胜策略》-5月22日微软CTO峰会主题演讲
  8. mysql常用快速查询修改操作
  9. php 合成图片 透明,2020-05-19 php实现透明png多图合成
  10. Java集合(7)--Map接口的实现类HashMap、LinkHashMap、TreeMap和Properties
  11. 离散中多重组合是指_PLC编程中如何使用开关、模拟、脉冲量
  12. 眼图 非差分线_利用眼图解决USB在布线中的信号完整性问题
  13. iphone屏幕录制_iphone投屏到电脑详细教程
  14. python 识别 None,NaN,null,‘‘,‘ ‘ 等无意义的值
  15. AngularJS——第8章 服务
  16. VMware 安装 CentOS 7
  17. Qwtpolar的编译
  18. 计算机网络——数据通信系统(三)
  19. 10个优秀个android项目,精选|快速开发
  20. EMW3031下模拟I2C实现

热门文章

  1. [译]深入理解JVM
  2. 利用nginx+tomcat+memcached组建web服务器负载均衡
  3. deepin10.15安装cuda10.1.168 cudnn7.6.1 tensorflow_gpu1.4.0
  4. sqlmap绕过d盾_WEBSHELL免杀绕过WAF思路amp;方法(一)
  5. 因特尔显卡自定义分辨率_蓝宝石RX 5600XT 6G D6 白金版OC显卡评测:两千价位段好选择...
  6. excel甘特图模板_类似这样的甘特图是怎么做的?
  7. gis 大屏_胡中南:Web端GIS技术新进展 | (PPT+速记)
  8. 用 rpm-ostree 数据库检查更新信息和更新日志的方法
  9. 学习一个 Linux 命令:sort 命令
  10. linux cp无法创建一般文件夹,cp: 无法创建普通文件 : 文件已存在