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分析相关推荐

  1. python接口自动化(三十七)-封装与调用--读取excel 数据(详解)

    简介 在进行软件接口测试或设计自动化测试框架时,一个不比可避免的过程就是: 参数化,在利用python进行自动化测试开发时,通常会使用excel来做数据管理,利用xlrd.xlwt开源包来读写exce ...

  2. 解封装(九):av_read_frame和av_seek_frame代码示例分析内存占用和清理情况

    如下代码: //malloce avpacket 并初始化AVPacket *pkt = av_packet_alloc();for (;;){int re = av_read_frame(ic, p ...

  3. FFmpeg源码分析:av_read_frame()读取音视频帧

    FFmpeg使用av_read_frame()方法读取音频流.视频流.字幕流,得到AVPacket数据包.FFmpeg官方提供的samples有使用示例,或者在ffplay.c代码中:打开文件/网络流 ...

  4. matlab的peer啥意思,科学网—Matlab读取PEER地震动记录数据库加速度数据函数 - 王德才的博文...

    PEER地震动记录数据库是目前应用最为广泛的数据库,为了便于利用其中的强震记录,对几年前采用Matlab编写的读取加速度数据函数进行了改写,使用了向量化的编写规则,减少了原有的循环处理,比原来的程序简 ...

  5. 解封装(一):ffmpeg解封装

    1.注意:什么是解封装,就是将二进制音视频文件,开始音视频文件分离,解码的具体操作. 2.解封装没有严格的性能问题.它的开销非常小. 3.解封装使用的一些接口 (1)av_register_all() ...

  6. 音视频解封装:MP4核心Box详解及H264AAC打包方案

    ​问题背景: 上一篇文章<音视频封装:MP4结构概述和分析工具>让大家看了下MP4的主要结构和推荐了一些分析工具,如果你对MP4没有任何了解,还是先看上文,了解MP4的基本结构,其中还有许 ...

  7. 理解OSI七层模型(了解OSI七层模型,数据如何传输,封装,解封装)

    文章目录 理解OSI七层模型 什么是OSI七层模型 理解OSI七层模型 举例子 七层协议,分析过程: 数据传输过程 封装数据 解封装数据 数据是如何封装和解封装 理解OSI七层模型 第一层:物理层. ...

  8. 如何利用ffmpeg提供的API函数进行多媒体文件的解封装

    多媒体已经无处不在,程序员必须知道的一些多媒体封装知识 如何利用ffmpeg提供的API函数进行多媒体文件的解封装. 上一篇文章我们搭好了环境并编译出所需的ffmpeg库,本篇我们讨论如何利用ffmp ...

  9. OSI七层模型、数据封装与解封装过程、TCP三次握手、四次挥手

    网络运维基础(二) 1.1 OSI七层模型 应用层:应用程序与接口(如qq和其他三方软件的对接--对应设备(计算机) 协议:http dns telnet nfs ftp tftp smtp(25) ...

最新文章

  1. FlashFXP客户端 FTP连接,连接很慢的情况,
  2. 查看windows 端口进程
  3. 汇编:内存地址为什么从0开始?等问题
  4. 扫盲了!一个Java字符串中到底有多少个字符?
  5. 【图像处理】图像内插“最近邻插值 最近邻内插法(Nearest Neighbour Interpolate)”代码演示(调整图像大小、放大、缩小)
  6. mac mysql 报错_mac os mysql 配置?报错-问答-阿里云开发者社区-阿里云
  7. centos7删除文件命令_干货 | 玩转云文件存储——利用CFS实现web应用的共享访问...
  8. STL中empty()函数的误用
  9. 图论 —— 生成树 —— 增量最小生成树
  10. OkHttp3源码详解(五) okhttp连接池复用机制
  11. 教大家防止Jar包被反编译
  12. 空间统计分析之距离-思维导图(1)
  13. 2数据库表增加一个字段_详解PostgreSQL用户、数据库及表的管理、操作与授权
  14. 数字图像处理及matlab实现第三版相关概念总结
  15. sm框架 访问局域网mysql_ssm框架搭建之sm框架整合
  16. 解决数据库数据粘贴到excel中换行、换列问题
  17. 实战无成本搭建php社工库,简单、高效、几T数据随便查,高效社工库搭建与数据库整理–深夜福利...
  18. 机器学习实战 决策树(附数据集)
  19. Android 操作系统的进程回收机制
  20. win10背景色改成豆沙绿 锁屏后失效修改方式

热门文章

  1. 关于java网络编程的实例代码
  2. Failed to connect to github.com port 443 after 21505 ms: Timed out
  3. xlwings 合并单元格 读取_将16家公司财务报表数据过入合并底稿表格,我只用了1分钟...
  4. Python自定义类中定义属性的两种方式
  5. 使用Python对图像进行中值滤波
  6. Python编程一定要注意的那些“坑”(七)
  7. Python递归法计算棋盘上所有路径总奖品最大值(京东2016编程题)
  8. Python计算任意单调曲线在给定区间上的近似长度
  9. docker -v 文件夹下没有数据_微服务就是Dubbo?并没有那么简单!微服务架构+Docker+k8s了解下...
  10. 学习Opencv---例3.12----用imageROI来添加某范围的像素