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

文档序号:7797574阅读:311来源:国知局
一种基于帧定位技术的流媒体播放方法
【专利摘要】本发明涉及视频监控【技术领域】。本发明的一种基于帧定位技术的流媒体播放方法,通过将编码器将原始编码视频数据流和原始编码音频数据流进行自定义格式封装后,加入时间标签的原始码流不会对解码器解码形成影响,同时根据人体主观感受(视听心理学)在音频连续的条件下,尽量兼顾视频画面的连贯性,使用者能流畅地浏览历史存储的流媒体信息。本发明的该帧定位技术采用异步解码,解码先于播放,并且,可仅通过查表快速获取用于播放的解码帧数据,定位播放速度远高于通常的播放器;本发明的自定义原始编码帧可实现音视频数据独立存储、交叉存储等各种方案,适应性较强。
【专利说明】一种基于帧定位技术的流媒体播放方法
【技术领域】
[0001]本发明涉及视频监控【技术领域】,具体涉及一种基于帧定位技术的流媒体播放方法。
【背景技术】
[0002]在视频监控领域存在海量的数据存储,浏览历史音视频录像信息,除对存储介质上已压缩编码的流媒体数据进行快速检索和视频回放等功能以外,还需要兼顾安全性、兼容性、容错性方面的考虑,所以一些场合下,需要把现场录制的音视频数据存储在自定义存储格式的磁盘介质中,这对于按特定格式存储的媒体数据的展示的性能提出了新的要求,如按时间点快速定位、快进快退、步进等功能。出于安全考虑的流媒体数据格式并不能直接被通用播放软件识别,通常各厂商需要自行设计针对此类存储格式的多媒体播放软件。
[0003]要解决特定存储格式的流媒体大数据的高效流畅展示问题,一种解决方案是在原始码中加入时间标签,并对实时解码后的数据帧按时间点及帧号建立索引并进行高效缓存,这样既可以实现多媒体播放系统按帧号或按时间偏移快速定位播放位置,又能实现对音视频信息进行同步播放。

【发明内容】

[0004]解决上述技术问题,本发明提供了一种通过在音视频原始码流加入时间标签的特殊技术,并兼容通用编码格式,播放系统对实时解码后的音视帧按音频时间同步,以实现流媒体信息按帧号或按时间高效定位和流畅播放的目的。
[0005]为了达到上述目的,本发明所采用的技术方案是,一种基于帧定位技术的流媒体播放方法,包括以下步骤:
步骤1:编码器将原始编码视频数据流和原始编码音频数据流进行自定义格式封装后,分别生成自定义视频数据帧和自定义音频数据帧,并将该自定义视频数据帧和自定义音频数据帧存入磁盘介质;
将原始编码视频数据流进行自定义格式封装后形成自定义视频数据帧,具体包括以下步骤:将原始编码视频数据流采用H.264编码后得到H.264视频帧,在H.264视频帧之前增加13个字节的帧头,生成自定义视频数据帧,所述自定义视频数据帧的帧头前五个字节分别为:0x00 0x00 0x00 0x01 0x00,所述自定义视频数据帧的帧头的第六字节到第十三字节则是用于存放八字节时间戳,所述八字节时间戳采用小端方式(little-endian)排序,即低字节地址在前,高字节地址在后;所述八字节时间戳精确到毫秒,使用NTP (NetworkTime Protocol,参考RFC958)时间,尽管到2036年NTP循环回零,但是控制器使用的是本地时间,只要操作的数据流时间间隔在68年之内,就不用考虑NTP循环回零问题,因为,对于单个原始编码流文件,在实际工程环境中不存在连续录制34年(68年的一半)的情况,所以已能满足几乎所有的工程场合;即便在2036年时间戳值回零,也可以通过前后时间戳差值绝对值超过34年来判断时间戳已回零了并做出相应处理:设起始时间戳tl (单位:毫秒),结束时间戳t2(单位:毫秒),正整数的时间差值At (单位:毫秒),68年对于毫秒值T (单位:毫秒);
【权利要求】
1.一种基于帧定位技术的流媒体播放方法,其特征在于:包括以下步骤: 步骤1:编码器将原始编码视频数据流和原始编码音频数据流进行自定义格式封装后,分别生成自定义视频数据帧和自定义音频数据帧,并将该自定义视频数据帧和自定义音频数据帧存入磁盘介质; 步骤2:读入器从磁盘介质读取所述自定义视频数据帧和自定义音频数据帧; 步骤3:判断读入器缓存一定数据量是否就绪,若是则执行步骤3,否则返回执行步骤I ; 步骤4:解码器从读入器输出端获取到自定义视频数据帧和自定义音频数据帧,解码器将所述自定义音频数据帧去除帧头或帧尾得到音频数据帧,再将音频数据帧进行音频解码,得到音频解码数据帧,同时解码器从自定义音频数据帧的帧尾获取时间戳、音频解码数据帧的帧长、音频解码数据帧帧号等信息;解码器将所述自定义视频数据帧去除帧头,再将视频帧进行视频解码,得到视频解码数据帧,同时解码器从自定义视频数据帧的帧尾获取时间戳、视频解码数据帧的帧长,视频解码数据帧的视频分辨率等信息; 步骤5:解码器将音频解码数据帧和视频解码数据帧的帧号、以及音频解码数据帧发送给缓存器,同时,解码器将音频解码数据帧和视频解码数据帧的帧号、时间戳、音频解码数据帧的帧长、视频分辨率发送给控制器;通过实时采集帧号和时间戳,控制器可以维护音频解码数据帧和视频解码数据帧的两张“帧号-时间戳”表,“帧号-时间戳”表包括两个字段,帧号和时间戳;视频解码数据帧每间隔10帧把帧号及时间戳取出来组成一条记录写入表格,音频解码数据帧每隔2帧把帧号及时间戳取出来组成一条记录写入表格; 步骤6:缓存器根据音频解码数据帧号依序分别将音频解码数据帧缓存进缓存器中,同时,缓存器根据视频解码数据帧的帧号`依序分别将视频解码数据帧缓存进缓存器中,控制器根据“帧号-时间戳”表的映射关系,更新播放最后一帧的时间,该控制器还将音频解码数据帧和视频解码数据帧的最后缓存(写入)的帧号发送给播放器; 步骤7:控制器更新播放开始时间TO ; 步骤8:播放器根据音频解码数据帧的帧号及时从缓存器获取音频解码数据帧,并播放音频解码数据帧,同时,播放器根据视频解码数据帧的帧号及时从缓存器获取视频解码数据帧,并播放视频解码数据帧; 步骤9:控制器每间隔Λ T秒采用视频同步音频方法进行音视频同步,所述Λ T秒为15-30 秒(s); 步骤10:控制器判断是否收到用户输入的时间点;若是,则返回执行步骤7,否则执行步骤11 ; 步骤11:判断用户请求是否结束,或判断该缓存器是否返回最后一帧数据,若是则播放结束,否则返回步骤8。
2.根据权利要求1所述的一种基于帧定位技术的流媒体播放方法,其特征在于:所述步骤I中,自定义视频数据帧定义为:将原始编码视频数据流增加13个字节,帧头增加5个字节和一个8字节时间戳,分别为:0x00 0x00 0x00 0x01 0x00,自定义音频数据帧定义为:将原始音频数据帧增加四字节的帧头和八个字节帧尾,四字节帧头为:0χ00、0χ01、0x3c和0x00,八字节帧尾为八字节时间戳。
3.根据权利要求1所述的一种基于帧定位技术的流媒体播放方法,其特征在于:所述步骤6具体为:缓存器把解码后输出的音频解码数据帧和视频解码数据帧,独立存储在连续的地址空间,由于解码后的音频解码数据帧和视频解码数据帧均为等长,其中,第一帧的帧号为1,帧号从I开始加一递增编号,依序计算得到每帧在地址空间内的偏移量:帧偏移=音(视)频解码数据帧帧长X帧号。
4.根据权利要求1所述的一种基于帧定位技术的流媒体播放方法,其特征在于:所述步骤7具体为:控制器将解码器输出的第一帧音频解码数据帧作为起始时间,将最近一次输出的音频帧作为结束时间,取本地系统时间作为绝对时间,按每秒特定帧数,将当前音频和视频解码数据帧的帧号发送至播放器;播放器根据帧号从缓存器快速获取播放帧数据并及时播放音视频。
5.根据权利要求1所述的一种基于帧定位技术的流媒体播放方法,其特征在于:所述步骤9具体为:播放器从起始时间开始连续播放音视频,控制器定时检查当前音频播放从开始时间到目前的偏移值,所述偏移值为当前帧的时间戳与开始时间的差值,将该音频时间值作为同步时间值。
6.根据权利要求1所述的一种基于帧定位技术的流媒体播放方法,其特征在于:所述步骤10具体为:用户输入时间点进行 定位请求,控制器计算得到从起始时间到输入时间点的偏移时间值,获取播放音视频帧的帧号,然后按步骤7到步骤9进行。
【文档编号】H04N21/4405GK103780977SQ201410066287
【公开日】2014年5月7日 申请日期:2014年2月26日 优先权日:2014年2月26日
【发明者】张麒, 时宜, 涂岩恺, 韦昌荣 申请人:厦门雅迅网络股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1