一种视频数据的接收和播放方法转让专利

申请号 : CN200780102126.8

文献号 : CN101911685B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 秦遵明

申请人 : 中兴通讯股份有限公司

摘要 :

一种视频数据的接收和播放方法,在视频数据的接收端设置视频数据缓冲区和低门限阈值;在周期性启动的定时器计满时检查视频数据缓冲区中的视频数据存量,当视频数据存量小于低门限阈值时发起视频数据请求,并将从发送端接收到的视频数据存入视频数据缓冲区;并且,所述接收端从视频数据缓冲区中取出视频数据进行播放。采用本发明的视频数据的接收和播放方法,可在缓冲区中的数据存量较少时及时通过传输链路获取视频数据,保证显示视频数据的响应时间较少;通过在接收到视频数据或定时器计满时对本地缓冲区中的数据存量进行检查,保证本地保存有一定量的缓冲数据,实现视频数据的平滑播放。

权利要求 :

1.一种视频数据的接收和播放方法,其特征在于,

在视频数据的接收端设置视频数据缓冲区、高门限阈值和低门限阈值,所述高门限阈值大于所述低门限阈值;

在周期性启动的定时器计满时,和/或在接收到视频数据时,检查视频数据缓冲区中的视频数据存量,根据所述视频数据存量对接收端的数据增长标识进行设置:若当前视频数据存量小于所述低门限阈值,则将数据增长标识设置为存量不足,并发起视频数据请求;

若当前视频数据存量大于所述高门限阈值,则将数据增长标识设置为存量足;

若所述视频数据存量大于等于低门限阈值且小于等于高门限阈值,当且仅当数据增长标识为存量不足时发起视频数据请求;

接收端将从发送端接收到的视频数据存入视频数据缓冲区;

并且,所述接收端从视频数据缓冲区中取出视频数据进行播放。

2.如权利要求1所述的方法,其特征在于,所述接收端在接收到视频数据时取消所述定时器,并重新启动。

3.如权利要求1所述的方法,其特征在于,所述视频数据缓冲区可存放的视频数据量大于所述高门限阈值1个关键视频帧的数据长度。

4.如权利要求1所述的方法,其特征在于,在所述接收端的不同进程,或同一进程的不同线程完成:所述发起视频数据请求并将接收到的视频数据存入视频数据缓冲区的任务,所述从视频数据缓冲区中取出视频数据进行播放的任务。

5.如权利要求1所述的方法,其特征在于,当所述视频数据缓冲区中包含2帧或2帧以上视频数据,且其中至少1帧为关键视频帧时,从视频数据缓冲区中取出视频数据进行播放。

6.如权利要求3或5所述的方法,其特征在于,所述关键视频帧为I帧。

7.如权利要求1所述的方法,其特征在于,所述发送端为视频监控网络的前端监控设备,所述接收端为视频监控网络的监控客户端;所述发送端和接收端之间以网络相连。

说明书 :

一种视频数据的接收和播放方法

技术领域

[0001] 本发明涉及一种视频数据的接收和播放方法。

背景技术

[0002] 宽带视频监控作为目前一种非常重要的宽带应用业务,可以方便的实时监控各种待监控场所的状态,记录历史监控录像,并通过宽带网络,使用户(监控人员)实时或者非实时的看到监控画面。宽带视频监控的业务目前在国内外发展很快,已经逐渐成为固定网络运营商开拓新业务的重要手段。
[0003] 图1是一种分布式宽带视频监控系统的网络结构示意图。如图1所示,宽带视频监控系统通常采用分布式部署方式,整个系统可以分为多个视频监控域(A域,B域、C域)。各视频监控域包括:视频监控管理平台(PS_A,PS_B,PS_C),前端监控设备(PU11,PU12,PU21,PU31,PU32),监控客户端(CU11,CU12,CU21,CU31)。
[0004] 通常,各视频监控域中至少包含一个视频监控管理平台,视频监控管理平台主要用于对其所属的视频监控域中的前端监控设备进行管理,并为本视频监控域和其它视频监控域的监控客户端提供前端监控设备的视频文件内容以及IP(Internet Protocol,因特网协议)地址、端口号等信息。
[0005] 视频监控域中可包含一个或多个前端监控设备,前端监控设备主要用于进行视频监控数据的采集(录像),接受本视频监控域中的视频监控管理平台的管理,为其提供视频监控数据的文件名称等信息,并为本视频监控域或其它视频监控域的监控客户端提供采集的视频监控数据。
[0006] 监控客户端从所述视频监控域的视频监控管理平台获取视频监控数据的名称等文件信息,并获取存储有该视频监控数据的前端监控设备的IP地址、端口号等服务地址信息;并根据上述文件信息和服务地址信息获取视频监控数据,并进行播放。
[0007] 各视频监控域之间以及各视频监控域中的设备通过网络连接,可以在多域系统环境中,实现前端监控设备的共享。例如,A域的监控客户端通过协议交互,从其它视频监控域的视频监控管理平台获取该视频监控域的前端监控设备的IP地址和端口号,并获取对应前端监控设备中的视频录像。
[0008] 现有技术中,监控客户端(接收端)通常采用以下方法从前端监控设备(发送端)获取视频数据并进行播放:监控客户端定时向前端监控设备请求数据,将接收到的视频数据保存在缓存中,缓存中的视频数据满或几乎满时进行播放。
[0009] 采用上述方法进行视频数据的接收和播放通常会造成用户看到的画面播放不平滑,等待时间长(有时会长达3秒以上)等现象。
[0010] 此外,采用上述方法接收视频数据时,经常会出现缓存中的视频数据满时还会接收到新的视频数据的情况;造成了发送端和接收端处理资源及网络带宽资源的浪费;若为了避免这种浪费增加缓存的大小,则增加了接收端的成本,并且也无法有效地避免上述问题。

发明内容

[0011] 本发明所要解决的技术问题是,克服现有技术的不足,提出一种使播放效果平滑的视频数据接收和播放方法。
[0012] 为了解决上述问题,本发明提供一种视频数据的接收和播放方法,在视频数据的接收端设置视频数据缓冲区和低门限阈值;在周期性启动的定时器计满时检查视频数据缓冲区中的视频数据存量,当视频数据存量小于低门限阈值时发起视频数据请求,并将从发送端接收到的视频数据存入视频数据缓冲区;
[0013] 并且,所述接收端从视频数据缓冲区中取出视频数据进行播放。
[0014] 此外,所述接收端在接收到视频数据时检查视频数据缓冲区中的视频数据存量,当视频数据存量小于低门限阈值时发起视频数据请求。
[0015] 此外,在所述接收端设置高门限阈值,仅当视频数据存量小于等于高门限阈值时发起视频数据请求;所述高门限阈值大于所述低门限阈值。
[0016] 此外,当接收到视频数据时,和/或,定时器计满时,所述接收端根据所述视频数据存量对接收端的数据增长标识进行设置:若当前视频数据存量小于所述低门限阈值,则将数据增长标识设置为存量不足,并发起视频数据请求;若当前视频数据存量大于所述高门限阈值,则将数据增长标识设置为存量足;以及
[0017] 当接收到视频数据时,和/或,定时器计满时,若所述视频数据存量大于等于低门限阈值且小于等于高门限阈值,当且仅当数据增长标识为存量不足时发起视频数据请求;所述高门限阈值大于所述低门限阈值。
[0018] 此外,所述接收端在接收到视频数据时取消所述定时器,并重新启动。
[0019] 此外,所述视频数据缓冲区可存放的视频数据量大于所述高门限阈值1个关键视频帧的数据长度。
[0020] 此外,在所述接收端的不同进程,或同一进程的不同线程完成:所述发起视频数据请求并将接收到的视频数据存入视频数据缓冲区的任务,所述从视频数据缓冲区中取出视频数据进行播放的任务。
[0021] 此外,当所述视频数据缓冲区中包含2帧或2帧以上视频数据,且其中至少1帧为关键视频帧时,从视频数据缓冲区中取出视频数据进行播放。
[0022] 此外,所述关键视频帧为I帧。
[0023] 此外,所述发送端为视频监控网络的前端监控设备,所述接收端为视频监控网络的监控客户端;所述发送端和接收端之间以网络相连。
[0024] 采用本发明的视频数据的接收和播放方法,可在缓冲区中的数据存量较少时及时通过传输链路获取视频数据,保证显示视频数据的响应时间较少;通过在接收到视频数据或定时器计满时对本地缓冲区中的数据存量进行检查,保证本地保存有一定量的缓冲数据,实现视频数据的平滑播放。此外,采用本发明的方法可对本地缓冲区进行有效管理,在设置合理大小的缓冲区的情况下,不会出现缓冲区被充满,不得不丢弃接收到的视频数据的现象。
[0025] 附图概述
[0026] 图1是一种分布式宽带视频监控系统的网络结构示意图;
[0027] 图2本发明实施例视频数据的接收和播放方法流程图;
[0028] 图3是采用本发明的方法对数据进行接收时数据缓冲区的数据存量状态转换示意图。
[0029] 本发明的较佳实施方式
[0030] 本发明的基本思路是,通过设置两个门限值和数据增长标识,在视频数据的接收端对缓冲区进行有效地监控和管理,实现视频数据的平滑播放。
[0031] 下面将结合附图和实施例对本发明进行详细描述。
[0032] 图2本发明实施例视频数据的接收和播放方法流程图。本发明的视频数据的接收和播放方法分为三个子流程:初始化流程,视频数据的接收流程,视频数据的播放流程。具体包含以下步骤:
[0033] 初始化
[0034] 101:监控客户端(以下简称接收端)设置本地数据缓冲区大小、高门限阈值和低门限阈值;
[0035] 上述高门限阈值和低门限阈值用于对接收端本地数据缓冲区中的视频数据存量进行监控。
[0036] 低门限阈值所对应的数据长度至少要大于或等于1个关键视频帧的数据长度。
[0037] 对于MPEG(Moving Picture Experts Group,运动图像专家组)格式的视频数据,上述关键视频帧为I帧(帧内编码帧)。
[0038] 高门限阈值所对应的数据长度通常要大于30个视频帧的数据长度。
[0039] 本地数据缓冲区的大小要比高门限阈值大至少1个关键视频帧(I帧)的数据长度。
[0040] 102:接收端与视频监控管理平台进行协议交互,获取视频数据的标识信息,以及存放该视频数据的前端监控设备(以下简称发送端)的IP地址和端口号;
[0041] 上述视频数据标识信息通常为视频录像文件的名称。
[0042] 103:接收端启动链路传输进程(或线程)和播放进程(或线程);
[0043] 视频数据的接收
[0044] 104:在接收端设置数据增长标识,并将其初始化为1;
[0045] 上述数据增长标识用于判断是否需要发起数据请求以获取更多的视频数据。数据增长标识为1表示:需获取新的数据(或表示:存量不足),0表示暂时不需要获取新的数据(或表示:存量足)。
[0046] 为了便于读写,上述数据增长标识通常为链路传输进程(或线程)的局部或全局变量。
[0047] 105:链路传输进程/线程向发送端发起数据请求,以获取新的视频数据;
[0048] 链路传输进程/线程可使用上述视频数据的标识信息和发送端的IP地址和端口号发起上述数据请求。
[0049] 106:链路传输进程/线程启动定时器;
[0050] 上述定时器的主要作用是在一段时间没有接收到发送端发送的视频数据时,定时启动数据缓冲区中的数据存量检查,并根据检查结果判断是否需要发送数据请求。
[0051] 107:链路传输进程/线程判断是否接收到停止播放消息;
[0052] 当接收到停止播放消息时,链路传输进程/线程需要取消定时器,并关闭本进程/线程(107A),本流程结束;否则执行下一步。
[0053] 108:链路传输进程/线程在接收端口侦听视频数据报文,并判断定时器是否超时:
[0054] 若超时,且未接收到视频数据,则跳转至步骤111;
[0055] 若未超时,且接收到视频数据(即在定时器计满前侦听到了视频数据报文),则执行下一步;
[0056] 否则,循环执行本步骤(即等待定时器超时并继续在接收端口侦听视频数据报文)。
[0057] 109:链路传输进程/线程取消定时器(即停止定时器计时);
[0058] 110:链路传输进程/线程将接收到的视频数据保存在本地数据缓冲区中;
[0059] 111:链路传输进程/线程进行数据缓冲区中的数据存量检查:
[0060] 若数据缓冲区中的视频数据存量大于高门限阈值,则执行下一步;
[0061] 若数据缓冲区中的视频数据存量小于低门限阈值,则跳转至步骤113;
[0062] 若数据缓冲区中的视频数据存量大于等于低门限阈值且小于等于高门限阈值,则跳转至步骤114。
[0063] 112:将数据增长标识设置为0,跳转至步骤116;
[0064] 113:将数据增长标识设置为1;
[0065] 114:对数据增长标识进行判断,若为1,则执行下一步;否则跳转至步骤116;
[0066] 115:发起数据请求,以获得新的视频数据;
[0067] 116:重置并启动定时器,重新开始计时,并跳转至步骤107。
[0068] 视频数据的播放(图中来示出)
[0069] 117:播放进程/线程判断是否接收到停止播放消息,若接收到停止播放消息则关闭本进程/线程,本流程结束;否则执行下一步;
[0070] 118:播放进程/线程对本地数据缓冲区进行检查,若数据缓冲区中包含2帧或2帧以上的数据,且其中至少1帧为关键视频帧(I帧),则从数据缓冲区中取出视频数据进行快速播放,并跳转至步骤117。
[0071] 由于播放进程/线程对数据缓冲区定时进行检查,当数据缓冲区中包含2帧或2帧以上的数据,且其中包含关键视频帧(I帧)时,就及时进行播放,而不是等待缓冲区满才开始播放,响应时间很短。
[0072] 图3是采用本发明的方法对数据进行接收时数据缓冲区的数据存量状态转换示意图。
[0073] 下面将结合图1、图3和一个具体的实例,对本发明的视频数据的接收方法进行描述。
[0074] 本实例中,设接收端为A域中的监控客户端CU12,发送端为B域中的前端监控设备PU21;A域和B域之间通过互联网(Internet)连接。
[0075] 对于2MB/s的宽带视频录像,视频关键帧I帧大小为一般小于100KB,CU12设定本地数据缓冲区大小为400KB,低门限阈值为128KB,高门限阈值为256KB(保证到达高门限阈值时的视频数据缓冲量可以播放1秒钟)。
[0076] CU12通过A域中的视频监控管理平台PS_A对PU21进行录像文件查询,通过协议交换获取PU21的IP地址、UDP(User Datagram Protocol,用户数据报协议)端口号以及所要播放的录像文件VIDEO1。
[0077] CU12启动链路传输进程和播放进程;链路传输进程向服务器PU21发起数据请求,并设定定时器T1(1秒钟定时),将数据增长标识初始化为1。
[0078] 随着链路传输进程从PU21获取视频数据,并将其保存在数据缓冲区中;同时,播放进程从数据缓冲区中取出视频帧数据进行播放,本地数据缓冲区依次进行如下的状态转换:
[0079] 状态(a):初始态
[0080] 在此状态下数据缓冲区中无数据;此时,数据增长标识为1,链路传输进程在CU12的接收端口侦听数据报文。
[0081] 状态(b):增长期
[0082] 链路传输进程接收到PU21发送的数据报文,取消定时器T1,将接收到的视频数据存放到本地数据缓冲区;
[0083] 此时,当前数据缓冲区中的视频数据存量小于128KB,本地数据缓冲区处于增长期;链路传输进程将数据增长标识设置为1(存量不足),向PU21发起数据请求,重新设置并启动定时器T1;
[0084] 状态(c):高门限
[0085] 链路传输进程接收到PU21发送的数据报文,取消定时器T1,将接收到的视频数据存放到本地数据缓冲区;
[0086] 此时,当前数据缓冲区中的视频数据存量大于等于256KB,本地数据缓冲区处于高门限状态;链路传输进程将数据增长标识设置为0,不发送数据请求,重新设置并启动定时器T1;
[0087] 状态(d):减少期
[0088] 随着播放进程不断消耗本地数据缓冲区中的视频数据,数据缓冲区中的视频数据存量小于256KB,但是大于128KB,处于减少期;
[0089] 由于此时数据增长标识为0,因此,链路传输进程在接收到PU21发送的视频数据,或定时器计满时,不发送数据请求,仅重新设置并启动定时器T1;
[0090] 状态(e):低门限
[0091] 随着播放进程进一步消耗本地数据缓冲区中的视频数据,数据缓冲区中的视频数据存量小于128KB,处于低门限状态;
[0092] 此时,链路传输进程在接收到PU21发送的视频数据,或定时器计满时,进行以下操作:
[0093] (1)将数据增长标识设置为1;
[0094] (2)向PU21发起数据请求;
[0095] (3)重新设置并启动定时器T1。
[0096] 状态(f):增长期
[0097] 当链路传输进程从PU21获取的视频数据比播放进程的消耗量大时,数据缓冲区中的视频数据存量处于大于128KB,但是小于256KB的增长期。
[0098] 由于此时数据增长标识为1,因此链路传输进程在接收到PU21发送的视频数据,或定时器计满时,进行如下操作:
[0099] (1)向PU21发起数据请求;
[0100] (2)重新设置并启动定时器T1。
[0101] 这样,在正常情况下,本地数据缓冲区的视频数据存量大部分时间都将在128KB(低门限阈值)和256KB(高门限阈值)之间,保证了宽带视频录像的平滑播放。
[0102] 基于本发明的原理,可以对上述实施例进行多种变换,例如:
[0103] (一)可以仅使用低门限阈值来判断是否需要发起数据请求。也就是说,当视频数据存量小于低门限阈值时发起数据请求。当然,在这种情况下,需要将低门限阈值设置的较高,以免频繁出现数据缓冲区中视频数据不足的情况。当然,仅使用低门限阈值无法有效避免数据缓冲区满时丢弃接收到的视频数据的问题。
[0104] (二)上述实施例中,在接收到视频数据时取消定时器,并重新启动;也就是说,以非固定的周期启动/停止该定时器;
[0105] 在另一实施例中,接收到视频数据时也可以不取消定时器;也就是说,以固定的周期启动/停止该定时器。
[0106] (三)可以仅在周期性启动的上述定时器计满时才对视频数据缓冲区中的视频数据存量进行检查,以判断是否需要发起数据请求;而在接收到视频数据时不进行上述检查。
[0107] 工业实用性
[0108] 采用本发明的视频数据的接收和播放方法,可在缓冲区中的数据存量较少时及时通过传输链路获取视频数据,保证显示视频数据的响应时间较少;通过在接收到视频数据或定时器计满时对本地缓冲区中的数据存量进行检查,保证本地保存有一定量的缓冲数据,实现视频数据的平滑播放。此外,采用本发明的方法可对本地缓冲区进行有效管理,在设置合理大小的缓冲区的情况下,不会出现缓冲区被充满,不得不丢弃接收到的视频数据的现象。