- 博客(8)
- 收藏
- 关注
原创 ffplay源码分析之整体框架分析 ffmpeg解码(stream_component_open、avformat_find_stream_info、event_loop、stream_open)
最近在研究ffmpeg和ffplay,发现网上关于ffmpeg解封装的源码分析不多而且不全。基于ffplay源码,来讲解一下ffmpeg解码过程。在这里主要是讲解一下AVFormatContext、AVStream、AVIOContext的数据结构中的重点变量例如 void*priv_data 、AVStreamInternal *internal、AVFormatInternal *internal等这些内部变量是最重要的,因为正是这些内部不公开的变量,才是存储文件内容、重要接口或属性、进行接口间传递的关
2021-05-02 11:38:42
465
原创 ffplay源码分析ffmpeg解码过程之stream_component_open、avcodec_receive_frame、queue_picture、packet_queue_get接口
最近在研究ffmpeg和ffplay,发现网上关于ffmpeg解封装的源码分析不多而且不全。基于ffplay源码,来讲解一下ffmpeg解码过程。在这里主要是讲解一下AVFormatContext、AVStream、AVIOContext的数据结构中的重点变量例如 void*priv_data 、AVStreamInternal *internal、AVFormatInternal *internal等这些内部变量是最重要的,因为正是这些内部不公开的变量,才是存储文件内容、重要接口或属性、进行接口间传递的关
2021-05-02 11:27:00
888
原创 ffplay源码分析ffmpeg解码过程之avformat_find_stream_info、read_frame_internal、avpriv_packet_list_put接口
最近在研究ffmpeg和ffplay,发现网上关于ffmpeg解封装的源码分析不多而且不全。基于ffplay源码,来讲解一下ffmpeg解码过程。在这里主要是讲解一下AVFormatContext、AVStream、AVIOContext的数据结构中的重点变量例如 void*priv_data 、AVStreamInternal *internal、AVFormatInternal *internal等这些内部变量是最重要的,因为正是这些内部不公开的变量,才是存储文件内容、重要接口或属性、进行接口间传递的关
2021-05-02 11:24:09
536
原创 ffmpeg解封装mov/mp4格式解封装源码分析之mov_read_header(读取metadata)、mov_read_packet(读取sample数据)、mov_read_trak
最近在研究ffmpeg,发现网上关于ffmpeg解封装的源码分析不多而且不全,所以这里总结一下,我自己对ffmpeg解封装mov、mp4格式的源码分析主要就是关于mov.c的源码分析,让各位同学了解一下,mp4的流AVStream、AVPacket是如何赋值的,这两个结构体变量会是解码的输入数据,了解解封装过程,如pts、dts是如何得到的,有助于ffmpeg的二次开发。关于MP4协议,网上有详细的描述,我这里就不在写了,直接上干货,代码书注释。重点小Tips:ffmpeg中很多结构体(AVStre
2021-04-01 11:40:41
2331
原创 ffmpeg解封装mov/mp4格式源码分析之trak box(atom)mov_read_stsd(stts)、(stss)、(ctts)、(stsc)、(stsz)、(stco)、(elst)
最近在研究ffmpeg,发现网上关于ffmpeg解封装的源码分析不多而且不全,所以这里总结一下,我自己对ffmpeg解封装mov、mp4格式的源码分析主要就是关于mov.c的源码分析,让各位同学了解一下,mp4的流AVStream、AVPacket是如何赋值的,这两个结构体变量会是解码的输入数据,了解解封装过程,如pts、dts是如何得到的,有助于ffmpeg的二次开发。关于MP4协议,网上有详细的描述,我这里就不在写了,直接上干货,代码书注释。重点小Tips:ffmpeg中很多结构体(AVStre
2021-04-01 11:37:53
2116
1
原创 基于obs的rtmp源码分析之RTMP_ReadPacket(rtmp读取服务端数据并处理)
最近在研究OBS源码,里面有一个很重要的模块是推流模块,OBS是使用RTMP进行推流的,源码里面也有RTMP的源码,翻了一下目前网上没有详细的RTMP源码注释,所以这里基于OBS项目,来详细讲一下RTMP源码包括内核数据结构、公共函数接口功能。关于具体的RTMP协议,网上有很多RTMP协议可以找到这里只做简单介绍,重点是代码的注释分析。关于RTMP源码的内核结构体,在代码中涉及的我会有标注,在另一个博文中具体分析了核心结构体注释。接口比较多写的比较细,文章比较长,有些函数体中无效的代码(例如 log日志、
2021-03-12 16:45:42
849
原创 基于obs的rtmp源码分析之RTMP_Connect(rtmp连接)
最近在研究OBS源码,里面有一个很重要的模块是推流模块,OBS是使用RTMP进行推流的,源码里面也有RTMP的源码,翻了一下目前网上没有详细的RTMP源码注释,所以这里基于OBS项目,来详细讲一下RTMP源码包括内核数据结构、公共函数接口功能。关于具体的RTMP协议,网上有很多RTMP协议可以找到这里只做简单介绍,重点是代码的注释分析。接口比较多写的比较细,耐心看哈哈哈。这里所有的实际测试推流操作均为向斗鱼上推流(因为我一直用它看直播哈)RTMP协议是应用层协议,是要靠底层可靠的传输层协议(通常是TCP
2021-03-12 16:42:43
1279
原创 基于obs的rtmp源码分析之RTMP_Write(rtmp发送音视频数据或命令)
最近在研究OBS源码,里面有一个很重要的模块是推流模块,OBS是使用RTMP进行推流的,源码里面也有RTMP的源码,翻了一下目前网上没有详细的RTMP源码注释,所以这里基于OBS项目,来详细讲一下RTMP源码包括内核数据结构、公共函数接口功能。关于具体的RTMP协议,网上有很多RTMP协议可以找到这里只做简单介绍,重点是代码的注释分析。关于RTMP源码的内核结构体,在代码中涉及的我会有标注,在另一个博文中具体分析了核心结构体注释。接口比较多写的比较细,文章比较长,有些函数体中无效的代码(例如 log日志、
2021-03-12 16:41:21
766
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人