一种延时播放控制方法及系统转让专利

申请号 : CN200910082288.0

文献号 : CN101577827B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 姚凯郭宗明白东岩

申请人 : 北京大学北大方正集团有限公司北京北大方正电子有限公司

摘要 :

本发明涉及一种延时播放控制方法及系统,属于视频播控技术领域。现有技术中的视频延时播放控制一般是通过硬件的方式,先将视频信号传输到一台视频服务器,将信号进行录制,然后经过一段时间的延时再将信号播出去。这种方法虽然可以获得比较长的延时,但是需要配备很多附属设备,因此就很大程度地提高了硬件成本。本发明所述的延时播放控制方法及系统直接通过软件的方式实现,根据需要延时的时间对视音频数据进行缓冲,然后过了延时时间后再将缓冲的数据进行播出。不仅可以非常灵活地对延时播放进行控制,而且还大大地降低了硬件成本。

权利要求 :

1.一种延时播放控制方法,包括以下步骤:

步骤一,将不同格式的视频源进行解码,得到统一格式的无压缩的视音频数据;

步骤二,根据需要延时的时间对接收到的无压缩的视音频数据进行缓冲;在对视频进行缓冲的过程中,为视频帧序列建立一个视频帧循环队列,队列长度比需要延时的长度多1帧用来作为替换缓冲区;刚启动的时候用垫片文件来填充缓冲队列,然后每次播放一帧后就将视频源中的一帧填充到相应的位置上,通过这样循环的方式来实现对视频帧的延时播放控制;

在对音频缓冲的过程中,通过缓冲时间和音频的码率计算出需要的缓冲区大小,然后每次在为音频缓冲区分配的时候多分配1秒的音频数据大小;启动的时候填充垫片音频数据,等到播放的时候,每当接收到一个音频数据包后,按照相应音频数据包的大小播放出一段缓存的音频数据;

步骤三,将缓冲的无压缩的视音频数据进行编码,然后传输到流媒体服务器进行播出。

2.如权利要求1所述的一种延时播放控制方法,其特征在于:

步骤一中,所述的视频源是来自于视频采集设备采集到的数据,也可以是来自远程流媒体服务器传送的数据,或者是来自本地的视频文件。

3.如权利要求1所述的一种延时播放控制方法,其特征在于:

步骤二中,采用本地视音频文件作为垫片文件来对正式播放前的一段空白时间进行填充。

4.如权利要求1所述的一种延时播放控制方法,其特征在于:

步骤二中,在延时缓冲控制过程中,针对短时间的延时控制用内存来实现;如果需要长时间的延时控制,则采用硬盘来对延时部分的数据进行保存。

5.如权利要求1至4之一所述的一种延时播放控制方法,其特征在于:步骤三中,将编码后的视音频数据推送到局域网内的服务器的端口上。

6.一种延时播放控制系统,包括以下模块:解码模块、延时模块和播出模块;

所述的解码模块用于将不同格式的视频源进行解码,得到统一格式的无压缩的视音频数据,然后再将这些无压缩的视音频数据传输到延时模块;

所述的延时模块用于根据需要延时的时间对接收到的无压缩的视音频数据进行缓冲,然后再将缓冲的无压缩的视音频数据传输到播出模块;所述延时模块在对视频进行缓冲的过程中,为视频帧序列建立一个视频帧循环队列,队列长度比需要延时的长度多1帧用来作为替换缓冲区;刚启动的时候用垫片文件来填充缓冲队列,然后每次播放一帧后就将视频源中的一帧填充到相应的位置上,通过这样循环的方式来实现对视频帧的延时播放控制;在对音频缓冲的过程中,通过缓冲时间和音频的码率计算出需要的缓冲区大小,然后每次在为音频缓冲区分配的时候多分配1秒的音频数据大小;启动的时候填充垫片音频数据,等到播放的时候,每当接收到一个音频数据包后,按照相应音频数据包的大小播放出一段缓存的音频数据;

所述的播出模块用于将缓冲的无压缩的视音频数据进行编码,然后传输到流媒体服务器进行播出。

说明书 :

一种延时播放控制方法及系统

技术领域

[0001] 本发明属于网络视频的播控领域,具体涉及一种高效的延时播放控制方法及系统。

背景技术

[0002] 现在的延时播放控制设备主要都是通过硬件的方式来实现,先将视音频信号传输到视频服务器上进行录制,然后隔一段时间后再将录制的信号进行播出。这种方法通常是用在电视台播出的节目中,需要专门的视频服务器进行保存。这样的话需要投入很多硬件设备,而且很多时候是要传输到远程服务器,这样中间出现故障的概率就会提高,而且很多专门的硬件设备都是非常昂贵的,很大程度地提高了硬件成本。同时,很多情况下一旦延时播放控制的时间设定之后就很难再进行改变,不是很需要延时播放的节目还是需要经过很长的延时才能得到播放。

发明内容

[0003] 针对现有技术中所存在的缺陷,本发明的目的是提供一种高效的延时播放控制方法及系统,该方法及系统不仅能够非常灵活地对延时播放的时间进行控制,而且整个系统在一台机器上面完成,降低了故障发生的概率,同时也避免了大量的硬件投入,很大程度地降低了成本。
[0004] 为了实现上述发明目的,本发明采用的技术方案是,一种高效的延时播放控制方法,包括以下步骤:
[0005] 步骤一,将不同格式的视频源进行解码,得到统一格式的无压缩的视音频数据;
[0006] 步骤二,根据需要延时的时间对接收到的无压缩的视音频数据进行缓冲;在对视频进行缓冲的过程中,为视频帧序列建立一个视频帧循环队列,队列长度比需要延时的长度多1帧用来作为替换缓冲区;刚启动的时候用垫片文件来填充缓冲队列,然后每次播放一帧后就将视频源中的一帧填充到相应的位置上,通过这样循环的方式来实现对视频帧的延时播放控制;
[0007] 在对音频缓冲的过程中,通过缓冲时间和音频的码率计算出需要的缓冲区大小,然后每次在为音频缓冲区分配的时候多分配1秒的音频数据大小;启动的时候填充垫片音频数据,等到播放的时候,每当接收到一个音频数据包后,按照相应音频数据包的大小播放出一段缓存的音频数据;
[0008] 步骤三,将缓冲的无压缩的视音频数据进行编码,然后传输到流媒体服务器进行播出。
[0009] 本发明还公开了一种高效的延时播放控制系统,包括以下模块:解码模块、延时模块和播出模块;
[0010] 所述的解码模块用于将不同格式的视频源进行解码,得到统一格式的无压缩的视音频数据,然后再将这些无压缩的视音频数据传输到延时模块;
[0011] 所述的延时模块用于根据需要延时的时间对接收到的无压缩的视音频数据进行缓冲,然后再将缓冲的无压缩的视音频数据传输到播出模块;所述延时模块在对视频进行缓冲的过程中,为视频帧序列建立一个视频帧循环队列,队列长度比需要延时的长度多1帧用来作为替换缓冲区;刚启动的时候用垫片文件来填充缓冲队列,然后每次播放一帧后就将视频源中的一帧填充到相应的位置上,通过这样循环的方式来实现对视频帧的延时播放控制;
[0012] 在对音频缓冲的过程中,通过缓冲时间和音频的码率计算出需要的缓冲区大小,然后每次在为音频缓冲区分配的时候多分配1秒的音频数据大小;启动的时候填充垫片音频数据,等到播放的时候,每当接收到一个音频数据包后,按照相应音频数据包的大小播放出一段缓存的音频数据;
[0013] 所述的播出模块用于将缓冲的无压缩的视音频数据进行编码,然后传送到流媒体服务器进行播出。
[0014] 本发明的效果在于:因为本发明所述的延时播放控制方法及系统直接通过软件的方式来实现,根据需要延时的时间对视音频数据进行缓冲,然后过了延时时间后再将缓冲的数据进行播出。所以,采用本发明所述的延时播放控制方法及系统,不仅可以非常灵活地对延时播放的时间进行控制,而且整个系统可以在一台机器上面完成,从而降低了故障发生的概率,同时也避免了大量的硬件投入,很大程度地降低了成本。

附图说明

[0015] 图1是本发明具体实施方式中的延时播放控制系统的结构示意图;
[0016] 图2是本发明具体实施方式中的的视频延时播放控制方法的控制策略示意图。

具体实施方式

[0017] 下面结合附图对本发明的具体实施方式作进一步地描述。
[0018] 如图1所示,本发明所述的延时播放控制系统包括以下模块:解码模块11、延时模块12和播出模块13;
[0019] 所述的解码模块11用于将不同格式的视频源进行解码,得到统一格式的无压缩的视音频数据,然后再将这些无压缩的视音频数据传输到延时模块12;
[0020] 本实施例中,解码模块11与实时采集设备15、流媒体服务器相连16,获取视频源,或者直接获取本地的视频文件17。
[0021] 所述的延时模块12用于根据需要延时的时间对接收到的无压缩的视音频数据进行缓冲,然后再将缓冲的无压缩的视音频数据传输到播出模块13;
[0022] 所述的播出模块13用于将缓冲的无压缩的视音频数据进行编码,然后传送到流媒体服务器14进行播出。
[0023] 一种高效的延时播放控制方法,包括以下步骤:
[0024] 步骤一,解码模块将不同格式的视频源进行解码,得到统一格式的无压缩的视音频数据,然后再将这些无压缩的视音频数据传输到延时模块。
[0025] 在网络视频播出系统中,视频源可以来自很多地方。例如:可以是通过摄像头等采集设备,也可以是来自远程流媒体服务器的数据,当然大部分来自本地视频文件,本地文件也有不同的文件格式。为了便于后面的延时模块统一处理,因此需要将这些多种格式的视音频源进行解码,得到统一的无压缩的视音频数据,然后再将这些无压缩的视音频数据传输到延时模块进行延时播出控制。
[0026] 经过解码模块的处理以后,各种格式的视音频源都被转换为统一的数据格式,这样在下面的延时模块中就没有必要针对不同的数据格式进行不同的处理,简化了延时模块中的处理。
[0027] 步骤二,延时模块根据需要延时的时间对接收到的无压缩的视音频数据进行缓冲,然后过了延时时间后再将缓冲的无压缩的视音频数据传输到播出模块。
[0028] 经过步骤一的处理,已经可以获得无压缩的视音频数据,根据视音频的不同来进行不同的处理。由于采用延时播放,所以正式播放前有一段时间内是空白的,这是可以采用一些本地视音频文件作为垫片文件来进行填充。
[0029] 由于视频可以通过视频帧率信息得到一段时间需要保存的数据大小,音频可以根据音频的码率来确定一段时间需要保存的数据大小。然而在解码过程中,解码得到的每个视频包正好是一帧图像的大小,然后得到的音频包的大小在不断变化的。因此在对视音频数据进行延时播放控制的时候就会有所区别。
[0030] 如图2所示,在对视频进行延时控制的时候相对简单,根据配置中设定的延时时间就可以知道需要缓冲的数据量大小。在延时过程中最重要的就是数据的调换策略,在对视频进行延时控制的过程中,为视频帧序列建立一个视频帧循环队列,队列长度比需要延时的长度多1帧用来作为替换缓冲区。刚启动的时候用垫片文件来填充缓冲队列,然后每次播放一帧后就将视频源中的一帧填充到相应的位置上,通过这样循环的方式来实现对视频帧的延时播放控制。由于在解码模块中已经将不同格式的视频转换为统一格式,所以这里就不用再考虑不同视频源在切换过程中带来的相关问题。
[0031] 在对音频进行延时控制的时候就需要稍微麻烦一点,由于每次得到的音频数据包的大小在不断地变化,因此这里不能像处理视频那样可以通过计算帧的方式,每次得到一帧图像,然后将这帧填充到缓冲队列中,播放队列头上的视频图像。在对音频缓冲的过程中,通过缓冲时间和音频的码率可以计算出需要的缓冲区大小,关键就是怎么确定用作替换的缓冲区大小,基本的原则是用作替换的缓冲区要大于最大的音频数据包。在本实施例中进行了简化处理,每次在为音频缓冲区分配的时候多分配1秒的音频数据大小。启动的时候填充垫片音频数据,等到播放的时候,每当接收到一个音频数据包后,按照相应音频数据包的大小播放出一段缓存的音频数据。
[0032] 由于在网络视频播放控制系统中,一般视频文件都比较小,所以针对短时间的延时控制用内存就可以实现了。但是如果需要比较长时间的延时的话,在延时缓冲控制过程中采用硬盘来对延时部分的数据进行保存,不过缓存数据的延时策略还是没有变化。
[0033] 步骤三,播出模块用于将缓冲的无压缩的视音频数据进行播出。
[0034] 在延时模块对解码后的数据进行了延时控制,在播出模块就需要对这些无压缩数据进行编码,这样才能适应带宽较低的网络环境。然后播出模块将压缩后的视音频数据传输到流媒体服务器上。进一步,如果有些内部需要的话,可以将视音频数据推送到局域网内的服务器的某一端口上。
[0035] 通过上述实施例可以看出,一种高效的延时播放控制方法及系统,延时播放控制完全通过软件实现,而且整个系统在一台机器上面就可以完成延时播放功能,避免了繁琐的中间环节增加了出现故障的概率。由于整个系统是通过软件来实现的,所以可以对延时播放控制的时间进行非常灵活的调整。而且整个系统也不需要专门的附属设备,硬件投入很小,使小规模的视频播放网站来进行延时播放成为了可能。
[0036] 显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其同等技术的范围之内,则本发明也意图包含这些改动和变型在内。