解封装(七):av_read_frame读取帧数据函数分析和产生的空间问题分析,以及AVPacket分析
1.在完成了视频的格式的解析,即音视频编码参数获取之后,我们就可以开始读取具体的音视频帧数据。
av_read_frame
我们要忠实的是,函数调用之后是否应该涉及到清理方法。
先看下上面函数的参数:
AVFormatContext *s //文件格式的上下文
AVPacket *pkt //你传的指针是否需要事先处理,如何处理(提前说这个指针是不能传NULL的)
AVPacket重点讲:
里面的成员:
1.AVBufferrRef *buf;
2.int64_t pts; //pts *(num/den)(f分子/分母)显示时间
3.int64_t dts; 解码时间
4.uint8_t *data;int size //指的是avbuffer空间
AVPacket的几个函数:
(1)AVPacket *av_packet_alloc(void);创建并初始化,这个是创建在堆上的空间,需要我们自己记得释放。
(2)AVPacket *av_packet_clone(const AVPacket *src)创建并引用计数
(3)int av_packet_ref(AVPacket *dst,const AVPacket *src);av_packet_unref(AVPacket *pkt):引用计数相关
(4)void av_packet_free(AVPacket **pkt)清空对象并减引用计数
(5)void av_init_packet(AVPacket *pkt);默认值
(6)int av_packet_from_data(AVPacket *pkt,uint8_t *data, int size);
(7)int av_copy_packet(AVPacket *dst,const AVPacket *src);attribute_deprecateds 数据相关。
解封装(七):av_read_frame读取帧数据函数分析和产生的空间问题分析,以及AVPacket分析相关推荐
- python接口自动化(三十七)-封装与调用--读取excel 数据(详解)
简介 在进行软件接口测试或设计自动化测试框架时,一个不比可避免的过程就是: 参数化,在利用python进行自动化测试开发时,通常会使用excel来做数据管理,利用xlrd.xlwt开源包来读写exce ...
- 解封装(九):av_read_frame和av_seek_frame代码示例分析内存占用和清理情况
如下代码: //malloce avpacket 并初始化AVPacket *pkt = av_packet_alloc();for (;;){int re = av_read_frame(ic, p ...
- FFmpeg源码分析:av_read_frame()读取音视频帧
FFmpeg使用av_read_frame()方法读取音频流.视频流.字幕流,得到AVPacket数据包.FFmpeg官方提供的samples有使用示例,或者在ffplay.c代码中:打开文件/网络流 ...
- matlab的peer啥意思,科学网—Matlab读取PEER地震动记录数据库加速度数据函数 - 王德才的博文...
PEER地震动记录数据库是目前应用最为广泛的数据库,为了便于利用其中的强震记录,对几年前采用Matlab编写的读取加速度数据函数进行了改写,使用了向量化的编写规则,减少了原有的循环处理,比原来的程序简 ...
- 解封装(一):ffmpeg解封装
1.注意:什么是解封装,就是将二进制音视频文件,开始音视频文件分离,解码的具体操作. 2.解封装没有严格的性能问题.它的开销非常小. 3.解封装使用的一些接口 (1)av_register_all() ...
- 音视频解封装:MP4核心Box详解及H264AAC打包方案
问题背景: 上一篇文章<音视频封装:MP4结构概述和分析工具>让大家看了下MP4的主要结构和推荐了一些分析工具,如果你对MP4没有任何了解,还是先看上文,了解MP4的基本结构,其中还有许 ...
- 理解OSI七层模型(了解OSI七层模型,数据如何传输,封装,解封装)
文章目录 理解OSI七层模型 什么是OSI七层模型 理解OSI七层模型 举例子 七层协议,分析过程: 数据传输过程 封装数据 解封装数据 数据是如何封装和解封装 理解OSI七层模型 第一层:物理层. ...
- 如何利用ffmpeg提供的API函数进行多媒体文件的解封装
多媒体已经无处不在,程序员必须知道的一些多媒体封装知识 如何利用ffmpeg提供的API函数进行多媒体文件的解封装. 上一篇文章我们搭好了环境并编译出所需的ffmpeg库,本篇我们讨论如何利用ffmp ...
- OSI七层模型、数据封装与解封装过程、TCP三次握手、四次挥手
网络运维基础(二) 1.1 OSI七层模型 应用层:应用程序与接口(如qq和其他三方软件的对接--对应设备(计算机) 协议:http dns telnet nfs ftp tftp smtp(25) ...
最新文章
- FlashFXP客户端 FTP连接,连接很慢的情况,
- 查看windows 端口进程
- 汇编:内存地址为什么从0开始?等问题
- 扫盲了!一个Java字符串中到底有多少个字符?
- 【图像处理】图像内插“最近邻插值 最近邻内插法(Nearest Neighbour Interpolate)”代码演示(调整图像大小、放大、缩小)
- mac mysql 报错_mac os mysql 配置?报错-问答-阿里云开发者社区-阿里云
- centos7删除文件命令_干货 | 玩转云文件存储——利用CFS实现web应用的共享访问...
- STL中empty()函数的误用
- 图论 —— 生成树 —— 增量最小生成树
- OkHttp3源码详解(五) okhttp连接池复用机制
- 教大家防止Jar包被反编译
- 空间统计分析之距离-思维导图(1)
- 2数据库表增加一个字段_详解PostgreSQL用户、数据库及表的管理、操作与授权
- 数字图像处理及matlab实现第三版相关概念总结
- sm框架 访问局域网mysql_ssm框架搭建之sm框架整合
- 解决数据库数据粘贴到excel中换行、换列问题
- 实战无成本搭建php社工库,简单、高效、几T数据随便查,高效社工库搭建与数据库整理–深夜福利...
- 机器学习实战 决策树(附数据集)
- Android 操作系统的进程回收机制
- win10背景色改成豆沙绿 锁屏后失效修改方式
热门文章
- 关于java网络编程的实例代码
- Failed to connect to github.com port 443 after 21505 ms: Timed out
- xlwings 合并单元格 读取_将16家公司财务报表数据过入合并底稿表格,我只用了1分钟...
- Python自定义类中定义属性的两种方式
- 使用Python对图像进行中值滤波
- Python编程一定要注意的那些“坑”(七)
- Python递归法计算棋盘上所有路径总奖品最大值(京东2016编程题)
- Python计算任意单调曲线在给定区间上的近似长度
- docker -v 文件夹下没有数据_微服务就是Dubbo?并没有那么简单!微服务架构+Docker+k8s了解下...
- 学习Opencv---例3.12----用imageROI来添加某范围的像素