一种基于帧定位技术的流媒体播放方法技术

技术编号:10023341 阅读:141 留言:0更新日期:2014-05-09 07:21
本发明专利技术涉及视频监控技术领域。本发明专利技术的一种基于帧定位技术的流媒体播放方法,通过将编码器将原始编码视频数据流和原始编码音频数据流进行自定义格式封装后,加入时间标签的原始码流不会对解码器解码形成影响,同时根据人体主观感受(视听心理学)在音频连续的条件下,尽量兼顾视频画面的连贯性,使用者能流畅地浏览历史存储的流媒体信息。本发明专利技术的该帧定位技术采用异步解码,解码先于播放,并且,可仅通过查表快速获取用于播放的解码帧数据,定位播放速度远高于通常的播放器;本发明专利技术的自定义原始编码帧可实现音视频数据独立存储、交叉存储等各种方案,适应性较强。

【技术实现步骤摘要】
一种基于帧定位技术的流媒体播放方法
本专利技术涉及视频监控
,具体涉及一种基于帧定位技术的流媒体播放方法。
技术介绍
在视频监控领域存在海量的数据存储,浏览历史音视频录像信息,除对存储介质上已压缩编码的流媒体数据进行快速检索和视频回放等功能以外,还需要兼顾安全性、兼容性、容错性方面的考虑,所以一些场合下,需要把现场录制的音视频数据存储在自定义存储格式的磁盘介质中,这对于按特定格式存储的媒体数据的展示的性能提出了新的要求,如按时间点快速定位、快进快退、步进等功能。出于安全考虑的流媒体数据格式并不能直接被通用播放软件识别,通常各厂商需要自行设计针对此类存储格式的多媒体播放软件。要解决特定存储格式的流媒体大数据的高效流畅展示问题,一种解决方案是在原始码中加入时间标签,并对实时解码后的数据帧按时间点及帧号建立索引并进行高效缓存,这样既可以实现多媒体播放系统按帧号或按时间偏移快速定位播放位置,又能实现对音视频信息进行同步播放。
技术实现思路
解决上述技术问题,本专利技术提供了一种通过在音视频原始码流加入时间标签的特殊技术,并兼容通用编码格式,播放系统对实时解码后的音视帧按音频时间同步,以实现流媒体信息按帧号或按时间高效定位和流畅播放的目的。为了达到上述目的,本专利技术所采用的技术方案是,一种基于帧定位技术的流媒体播放方法,包括以下步骤:步骤1:编码器将原始编码视频数据流和原始编码音频数据流进行自定义格式封装后,分别生成自定义视频数据帧和自定义音频数据帧,并将该自定义视频数据帧和自定义音频数据帧存入磁盘介质;将原始编码视频数据流进行自定义格式封装后形成自定义视频数据帧,具体包括以下步骤:将原始编码视频数据流采用H.264编码后得到H.264视频帧,在H.264视频帧之前增加13个字节的帧头,生成自定义视频数据帧,所述自定义视频数据帧的帧头前五个字节分别为:0x000x000x000x010x00,所述自定义视频数据帧的帧头的第六字节到第十三字节则是用于存放八字节时间戳,所述八字节时间戳采用小端方式(little-endian)排序,即低字节地址在前,高字节地址在后;所述八字节时间戳精确到毫秒,使用NTP(NetworkTimeProtocol,参考RFC958)时间,尽管到2036年NTP循环回零,但是控制器使用的是本地时间,只要操作的数据流时间间隔在68年之内,就不用考虑NTP循环回零问题,因为,对于单个原始编码流文件,在实际工程环境中不存在连续录制34年(68年的一半)的情况,所以已能满足几乎所有的工程场合;即便在2036年时间戳值回零,也可以通过前后时间戳差值绝对值超过34年来判断时间戳已回零了并做出相应处理:设起始时间戳t1(单位:毫秒),结束时间戳t2(单位:毫秒),正整数的时间差值△t(单位:毫秒),68年对于毫秒值T(单位:毫秒);若|t2-t1|<T/2,则△t=t2-t1;若|t2-t1|≥T/2,则必定发生时间戳回零,△t=T-t1+t2。其中,视频码流加13个字节,以H.264码流为例,13个字节的内容如下:01234513(byte)0x000x000x000x010x00八字节时间戳H.264视频帧最前面的5个字节:0x000x000x000x010x00这个是满足H.264格式的NALU包的包头,针对这种NALU包解码器在解码时进行忽略,这样,即使在H.264视频帧中加入了这13个字节,也不会对解码器的解码造成影响,这样最大程度地保证了视频数据和程序的兼容性。将原始编码音频数据流进行自定义格式封装后形成自定义音频数据帧,具体包括以下步骤:将原始编码音频数据流分成等长的(120字节)音频数据帧,将每一帧音频数据帧增加四字节的帧头和八个字节帧尾,封装成自定义音频数据帧,该帧头的四个字节分别为:0x00、0x01、0x3c和0x00,八个字节帧尾为八字节时间戳,所述帧头和帧尾加起来一共12个字节开销;所述帧头的前两个字节0x00和0x01为自定义音频数据帧的标识,所述第三第四字节0x3c、0x00对应自定义音频数据帧的帧长,自定义音频数据帧的长度单位为2字节的short型,指2字节的short型采用小端(little-end)方式排序,计算机领域小端排序粒度为字节(Byte),所以16进制的0x3c0x00(即存储形式为0x3c00)的short型对应的真实short型大小为0x003c,及60(=16进展的0x3c)个short存储单元大小,对应120个字节。因此0x003c对应十进制60*2=120字节,所述八个字节帧尾即为八字节时间戳,采用小端方式排序,且所述八字节时间戳与将原始编码视频数据流进行自定义格式封装后形成自定义视频数据帧步骤中的八字节时间戳一致。所述自定义音频数据帧的数据内容如下:01234124(byte)0x000x010x3c0x00(120字节)音频数据帧八字节时间戳步骤2:读入器从磁盘介质读取所述自定义视频数据帧和自定义音频数据帧;步骤3:判断读入器缓存一定数据量是否就绪?若是则执行步骤3,否则返回执行步骤1;增加预缓存的步骤主要是减缓数据抖动,达到流畅播放效果的目的。一般情况下,该一定数据量取经验值1~4MB。步骤4:解码器从读入器输出端获取到自定义视频数据帧和自定义音频数据帧,解码器将所述自定义音频数据帧去除帧头或帧尾得到(120字节)音频数据帧,再将(120字节)音频数据帧进行音频解码,得到音频解码数据帧,同时解码器从自定义音频数据帧的帧尾获取8字节时间戳、音频解码数据帧的帧长、音频解码数据帧帧号等信息;解码器将所述自定义视频数据帧去除帧头,再将H.264视频帧进行视频解码,得到视频解码数据帧,同时解码器从自定义视频数据帧的帧尾获取8字节时间戳、视频解码数据帧的帧长,视频解码数据帧的视频分辨率等信息;其中音频解码数据帧的和视频解码数据帧的帧号是由解码器生成的由1开始顺序递增加一的整数,是音频解码数据帧和视频解码数据帧的唯一标识;步骤5:解码器将音频解码数据帧和视频解码数据帧的帧号、以及音频解码数据帧发送给缓存器,同时,解码器将音频解码数据帧和视频解码数据帧的帧号、时间戳、音频解码数据帧的帧长、视频分辨率发送给控制器;通过实时采集帧号和时间戳,控制器可以维护音频解码数据帧和视频解码数据帧的两张“帧号-时间戳”表,“帧号-时间戳”表包括两个字段,帧号和时间戳;视频解码数据帧每间隔10帧(视具体情况可调整)把帧号及时间戳取出来组成一条记录写入表格,音频解码数据帧每隔2帧(视具体情况可调整)把帧号及时间戳取出来组成一条记录写入表格;步骤6:缓存器根据音频解码数据帧号依序分别将音频解码数据帧缓存进缓存器中,同时,缓存器根据视频解码数据帧的帧号依序分别将视频解码数据帧缓存进缓存器中,控制器根据“帧号-时间戳”表的映射关系,更新播放最后一帧的时间,该控制器还将音频解码数据帧和视频解码数据帧的最后缓存(写入)的帧号发送给播放器;步骤7:控制器更新播放开始时间T0;步骤8:播放器根据音频解码数据帧的帧号及时从缓存器获取音频解码数据帧,并播放音频解码数据帧,同时,播放器根据视频解码数据帧的帧号及时从缓存器获取视频解码数据帧,并播放视频解码数据帧;步骤9:控制器每间隔△T秒采本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种基于帧定位技术的流媒体播放方法,其特征在于:包括以下步骤:步骤1:编码器将原始编码视频数据流和原始编码音频数据流进行自定义格式封装后,分别生成自定义视频数据帧和自定义音频数据帧,并将该自定义视频数据帧和自定义音频数据帧存入磁盘介质,自定义视频数据帧定义为:将原始编码视频数据流增加13个字节,帧头增加5个字节和一个8字节时间戳,帧头5个字节分别为:0x000x000x000x010x00,自定义音频数据帧定义为:将原始音频数据帧增加四字节的帧头和八个字节帧尾,四字节帧头为:0x00、0x01、0x3c和0x00,八字节帧尾为八字节时间戳;步骤2:读入器从磁盘介质读取所述自定义视频数据帧和自定义音频数据帧;步骤3:判断读入器缓存一定数据量是否就绪,若是则执行步骤4,否则返回执行步骤1;步骤4:解码器从读入器输出端获取到自定义视频数据帧和自定义音频数据帧,解码器将所述自定义音频数据帧去除帧头或帧尾得到音频数据帧,再将音频数据帧进行音频解码,得到音频解码数据帧,同时解码器从自定义音频数据帧的帧尾获取时间戳、音频解码数据帧的帧长、音频解码数据帧帧号信息;解码器将所述自定义视频数据帧去除帧头,再将视频帧进行视频解码,得到视频解码数据帧,同时解码器从自定义视频数据帧的帧头获取时间戳、视频解码数据帧的帧长,视频解码数据帧的视频分辨率信息;步骤5:解码器将音频解码数据帧和视频解码数据帧的帧号、以及音频解码数据帧发送给缓存器,同时,解码器将音频解码数据帧和视频解码数据帧的帧号、时间戳、音频解码数据帧的帧长、视频分辨率发送给控制器;通过实时采集帧号和时间戳,控制器维护音频解码数据帧和视频解码数据帧的两张“帧号-时间戳”表,“帧号-时间戳”表包括两个字段,帧号和时间戳;视频解码数据帧每间隔10帧把帧号及时间戳取出来组成一条记录写入表格,音频解码数据帧每隔2帧把帧号及时间戳取出来组成一条记录写入表格;步骤6:缓存器根据音频解码数据帧号依序分别将音频解码数据帧缓存进缓存器中,同时,缓存器根据视频...

【专利技术属性】
技术研发人员:张麒时宜涂岩恺韦昌荣
申请(专利权)人:厦门雅迅网络股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1