—— 块文件 块文件介绍: 块文件的存储方式是以16k做为一个存储单元,在块文件系统中,文件存储的最小单位是16k 为方便检索,设有一级索引和二级索引,根据一级索引定位到256m的空间,二级索引定位到最小单位16k的位置 储存数据以包为最小单位,每个包由私有包头(文件标志 + 12字节头)、裸数据、包尾组成。 —— h3crd格式 h3crd文件是按二级索引的方式存储音视频文件数据包的。主要格式如下: 文件使用一个16K的SUPER DATA来标示文件为h3crd格式。SUPER DATA中主要包含一个版本号和一个文件标示,参见SUPER DATA描述。 SUPER DATA后面为一级索引块,大小为64K。一级索引块后面是一系列的256M大小的数据块,用于保存数据,一级索引块的作用为检索后面的256M数据块。 256M的数据块是以一个二级索引块开始的,二级索引块后面跟随的是一系列的I帧组数据块,二级索引块的作用为检索其后面的I帧组数据块。在存储数据的时候,当256M的数据块的剩余空间不足以存储一个I帧组的时候,系统会取下一个256M的数据块进行存储,在本数据块中以0填充满整个256M空间。 在I帧组数据块中存储的是该I帧组的所有的数据包。 h3crd文件中的索引是以时间记录的。 在定位和读取文件中指定的I帧组的时候,首先读取文件的一级索引,通过一级索引找出需要读取的文件所在的256M的数据块。然后再读取数据块中二级索引,通过二级索引找出指定的I帧组位置。 数据存储的基本原理 每个帧组的存储结构 帧组起始标志(0x2006) 06 20 00 00 帧组总长度(包括从帧组起始标志开始至结束标志的长度) 7e 7e 00 00 音视频数据包 音视频数据包 .---------- 帧组结束标志(0x6002) 不足16KB部分补0填充 包起始标志(0x1357) 8字节时间戳 12字节音视频数据包头 音视频数据 包结束标志(0x1358) 数据存储的基本原理 I帧组数据描述 : 在数据块中,是按I帧组进行存储的,存储的格式如下: --------------------- | 0 | I帧组头标记 ULONG类型 --------------------- | length | 整个I帧组的长度(从00x000062) ULONG类型 --------------------- | 0 | 包头标记 ULONG类型 --------------------- | 20字节浙大头 | | 起始I帧包数据 | | ............. | --------------------- | 0 | 包尾标记 ULONG类型 --------------------- | 0 | 包头标记 ULONG类型 --------------------- | 20字节浙大头 | | 其他帧的数据 | | ............. | --------------------- | 0 | 包尾标记 ULONG类型 --------------------- | 0 | I帧组尾标记 ULONG类型 --------------------- | 用于16K对齐的 | | 部分 | --------------------- | 0 | 下一个I帧组头标记 ULONG类型 --------------------- | length | 下一个I帧组的长度 ULONG类型 --------------------- | ............. | 块存储的回放——RD在MP内部关系 录像回放(RD)消息流程 消息流程:RTSP(媒体UDP) media server RTSP server data source media player AV subsystem RTSP client RTSP OK RTSP PLAY RTSP OK RTP AUDIO RTP VIDEO RTSP TEARDOWN RTSP OK get UDP port RTSP SETUP Default port 554 RTCP TC
原创力文档

文档评论(0)