一种网络流媒体的帧数据获取方法与流程

文档序号:18514876发布日期:2019-08-24 09:23阅读:来源:国知局

技术特征:

1.一种网络流媒体的帧数据获取方法,其特征在于,包括以下步骤:

步骤S1、获取TCP协议传输的图像数据流

具体获取过程如下:

获取TCP数据块;

寻找数据包起始标记;

读取跟随起始标记2字节,获得数据包长度;

判断字节数组剩余长度是否大于单元长度,若剩余数据量不够,则继续等待下一字节数据到达;

数据量充足后,跳至数据单元结尾,检查其后跟随的数据是否是另一数据单元起始标志或其他可表征数据截止的标记;

若是则寻找数据单元边界成功,若为否则从原位置向后继续寻找下一起始标识;

获取数据单元边界后,按照RFC3550文档规定的数据格式解析出帧类型、时间签、单元序号数据,其中,具有相同帧类型和时间签的图像单元从属于同一图像帧,其单元序号标识了它们在帧内的排序关系;

在重建图像帧时,还需删除网络传输时添加的数据头,并添加解码用的帧起始标记0x00 0x00 0x00 0x01;

步骤S2、获取UDP协议传输的图像数据流

除无需寻找单元起始标记0x24 0x00和验证单元结尾外,后续方法与步骤S1中获取TCP协议传输的图像数据流处理过程相同;所述图像数据流的数据格式中设置FrameMarker属性,用于记录其保存于存储体时的存储位置,以支持图像数据在记忆体和存储体之间的转移;

存储体上的数据存储以文件为基本形式,记忆体和存储体间以一帧图像为单次最小数据交换量,在VclFrame中具有FrameMarker结构用于记录该帧图像在存储体中的保存位置;block记录所在缓存文件序号,offset为数据起始位置,length为数据长度;存入缓存文件后,通过赋值VclFrame.dataList为null切断VclFrame与其内部数据单元间的引用关系,其图像数据所占用记忆体空间被操作系统自动回收;

将图像数据存入缓存文件过程如下:当一个缓存文件内存储的图像数据大小超过程序设定的上限值时,程序将新建一个新的缓存文件,当缓存文件数量达到程序设定的上限值时,程序将覆盖第一个缓存文件,文件内的原有数据永久性丢失;

读取数据至记忆体的过程如下:在需要将图像数据导回记忆体时,程序读取第block个缓存文件内从第offset字节开始的length字节长度数据,将这些数据读入一个字节数组,利用该字节数组新建一个Package对象,进而新建NalUnit对象插入VclFrame.dataList。

当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1