FFmpeg 结构体学习(八):FFMPEG中重要结构体之间的关系
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中重要结构体之间的关系相关推荐
- 一文理清Mybatis中resultType与resultMap之间的关系和使用场景
点击蓝色"程序猿DD"关注我 回复"资源"获取独家整理的学习资料! 1.概述 Mybatis ORM半自动映射框架对java开发工程师来说应该是必会的框架之一. ...
- 学习Scala:伴生对象和伴生类之间的关系(二)
孤立对象是只有一个object关键字修饰的对象,该对象会编译成两个class文件,一个是以孤立对象的名字命名的class, 一个是以孤立对象的名字后面加上一个$ 字符命名的class, 这个class ...
- Python中怎样改变集合之间的关系?
Python中怎样改变集合之间的关系?数学中,两个集合关系的常见操作包括:交集.并集.差集.补集.设A,B是两个集合,集合关系的操作介绍如下: 交集是指属于集合A且属于集合B的元素所组成的集合, 并集 ...
- OpenVX中 graph与node之间的关系,以及在CNN中的定位
OpenVX中 graph与node之间的关系,以及在CNN中的定位 很多小伙伴都知道,OpenVX是用来处理图像的一组API,核心是kernel函数的实现,OpenVX对于图像处理是调用底层硬件的G ...
- (1)三相电机中相电压与线电压之间的关系 (2)电机转速,机器速度,电角速度之间的关系(3)磁链估算和磁场定向的定义
三相电机中相电压与线电压之间的关系 Ua=1/3(2Uab+Ubc) Ub=1/3(Ubc-Uab) Uc=-1/3(Uab+2Ubc) 电机转速,机械速度,电角速度之间的关系 电角速度=机器速度* ...
- c语言中 定义结构体变量初始化,c++中的结构体:声明 定义 初始化
什么是结构体? 之前的学习中我们知道了数组是一个容器,而且是存放固定大小数据的容器,而且存放的元素的数据类型必须要一致. 比如数据库中有这样的一条记录学号 性别 年龄 成绩 地址应该怎样存放 结构体: ...
- 33. 使用fread()/fwrite()往文件中写入结构体,从文件中读出结构体
1 //读写结构体 2 #include <stdio.h> 3 typedef struct student 4 { 5 int num; 6 char name[30]; 7 char ...
- matlab单元数组与结构体的区别,MATLAB中的结构体和单元数组
MATLAB中的结构体和单元数组 一.结构: x.real=10 x.imag=5 增加字段 x.scale=1 使用struct函数 s=struct('field1',values1,'field ...
- c中的结构体嵌套问题_C中的结构
c中的结构体嵌套问题 Structures in C language are basically user-defined data types that enables the user to c ...
最新文章
- (转)跟我一起写 Makefile(一)(陈皓)
- 李天华:2017年短视频最值得投入的战略性方向
- python定义数组是带指针_在cython中声明numpy数组和c指针
- 洛谷 P1955 [NOI2015]程序自动分析(沙雕题)
- SharePoint2016如何使用策略进行文档归档
- 15、解决14中csv用excel打开乱码的问题 open('zhihu.csv','w',newline='',encoding='utf-8-sig')...
- 《微软产品开发致胜策略》-5月22日微软CTO峰会主题演讲
- mysql常用快速查询修改操作
- php 合成图片 透明,2020-05-19 php实现透明png多图合成
- Java集合(7)--Map接口的实现类HashMap、LinkHashMap、TreeMap和Properties
- 离散中多重组合是指_PLC编程中如何使用开关、模拟、脉冲量
- 眼图 非差分线_利用眼图解决USB在布线中的信号完整性问题
- iphone屏幕录制_iphone投屏到电脑详细教程
- python 识别 None,NaN,null,‘‘,‘ ‘ 等无意义的值
- AngularJS——第8章 服务
- VMware 安装 CentOS 7
- Qwtpolar的编译
- 计算机网络——数据通信系统(三)
- 10个优秀个android项目,精选|快速开发
- EMW3031下模拟I2C实现
热门文章
- [译]深入理解JVM
- 利用nginx+tomcat+memcached组建web服务器负载均衡
- deepin10.15安装cuda10.1.168 cudnn7.6.1 tensorflow_gpu1.4.0
- sqlmap绕过d盾_WEBSHELL免杀绕过WAF思路amp;方法(一)
- 因特尔显卡自定义分辨率_蓝宝石RX 5600XT 6G D6 白金版OC显卡评测:两千价位段好选择...
- excel甘特图模板_类似这样的甘特图是怎么做的?
- gis 大屏_胡中南:Web端GIS技术新进展 | (PPT+速记)
- 用 rpm-ostree 数据库检查更新信息和更新日志的方法
- 学习一个 Linux 命令:sort 命令
- linux cp无法创建一般文件夹,cp: 无法创建普通文件 : 文件已存在