一种视频点播控制方法、客户端设备和切换控制装置转让专利

申请号 : CN200710107996.6

文献号 : CN101060617B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 高智

申请人 : 华为技术有限公司

摘要 :

本发明涉及媒体播放技术,特别涉及一种视频点播控制方法、客户端设备和切换控制装置。本发明实施例提供了一种综合利用单播技术和组播/广播技术的点播控制方法,在用户点播视频节目时,选择加入最接近的组播/广播频道接收并在需要时通过单播获取节目数据,从而综合利用单播和组播/广播频道传输的视频节目数据实现用户按需收看的视频点播业务。如果用户执行快退或快进等组播服务器无法提供的功能时,再切换回单播服务器提供快退或快进等功能。在这一过程中由于只需要在从单播服务器获取错过的数据或在用户执行快退或快进时占用单播服务器,从而降低了单播服务器和网络带宽的成本。

权利要求 :

1.一种视频点播控制方法,其特征在于,包括:

接收用户的视频节目点播指令,选择加入播放时间最接近用户点播开始播放时间的组播频道,从组播服务器接收并缓存该视频节目的数据;

判断所述组播频道组播的视频节目播放时间与用户点播时间之间的差值是否在设定阈值内,如果是则播放缓存的数据;否则与单播服务器建立单播链接,通过该单播链接接收视频节目数据并播放;以及在接收的数据尾部与缓存的数据头部相接时断开所述单播链接,使用缓存的数据接续播放所述视频节目。

2.如权利要求1所述的方法,其特征在于,在存在单播链接时接收到用户对所述视频节目的快进或快退控制指令时,所述方法还包括:将所述快进或快退控制指令发送给单播服务器并离开所述组播频道;以及接收单播服务器根据所述快进或快退控制指令发送的数据并播放。

3.如权利要求1所述的方法,其特征在于,在不存在单播链接时接收到用户对所述视频节目的快进或快退控制指令时,所述方法还包括:与单播服务器建立单播链接并离开所述组播频道;

将所述快进或快退控制指令发送给单播服务器;以及

接收单播服务器根据所述快进或快退控制指令发送的数据并播放。

4.如权利要求2或3所述的方法,其特征在于,在快进或快退的过程中接收到用户恢复常速播放所述视频节目的控制指令时,所述方法还包括:重新选择加入播放时间最接近用户恢复播放的视频节目开始播放时间的组播频道,从组播服务器接收并缓存该视频节目的数据;

判断所述组播频道组播的视频节目播放时间与用户点播时间之间的差值是否在设定阈值内,如果是则播放缓存的数据;否则通过所述单播链接接收视频节目的数据并播放;以及在接收的数据尾部与缓存的数据头部相接时断开所述单播链接,使用缓存的数据接续播放所述视频节目。

5.如权利要求2或3所述的方法,其特征在于,在快进或快退的过程中接收到暂停或定位播放所述视频节目的控制指令时,所述方法还包括:停止接收所述单播数据并保持所述单播链接。

6.如权利要求5所述的方法,其特征在于,在暂停后或者在定位结束恢复播放所述视频节目时,所述方法还包括:重新选择加入播放时间最接近恢复播放的视频节目开始播放时间的组播频道,从组播服务器接收并缓存该视频节目的数据;

重新开始通过单播链接接收视频节目的数据并播放;以及在接收的数据尾部与缓存的数据头部相接时断开所述单播链接,使用缓存的数据接续播放所述视频节目。

7.如权利要求2或3所述的方法,其特征在于,在快进或快退的过程中接收到暂停或定位播放所述视频节目的控制指令时,所述方法还包括:停止单播数据发送并断开所述单播链接。

8.如权利要求7所述的方法,其特征在于,在暂停后或者在定位结束恢复播放所述视频节目时,所述方法还包括:重新选择加入播放时间最接近恢复播放的视频节目开始播放时间的组播频道,从组播服务器接收并缓存该视频节目的数据;

判断所述组播频道组播的视频节目播放时间与用户点播时间之间的差值是否在设定阈值内,如果是则播放缓存的数据;否则重新与单播服务器建立单播链接,通过该重新建立的单播链接接收视频节目的数据并播放;以及在接收的数据尾部与缓存的数据头部相接时断开所述单播链接,使用缓存的数据接续播放所述视频节目。

9.如权利要求1所述的方法,其特征在于,在存在单播链接时接收到用户暂停或定位播放所述视频节目的控制指令,所述方法还包括:离开已经加入的组播频道、保持所述单播链接并停止接收单播数据。

10.如权利要求9所述的方法,其特征在于,在暂停或者在定位结束恢复播放所述视频节目时,所述方法还包括:重新选择加入播放时间最接近恢复播放的视频节目开始播放时间的组播频道,从组播服务器接收并缓存该视频节目的数据;

重新通过单播链接开始接收视频节目的数据并播放;以及在接收的数据尾部与缓存的数据头部相接时断开所述单播链接,使用缓存的数据接续播放所述视频节目。

11.如权利要求1所述的方法,其特征在于,在存在单播链接时接收到用户暂停或定位播放所述视频节目的控制指令,所述方法还包括:离开已经加入的组播频道并断开所述单播链接。

12.如权利要求1所述的方法,其特征在于,在不存在单播链接时接收到用户暂停或定位播放所述视频节目的控制指令,所述方法还包括:离开已经加入的组播频道。

13.如权利要求11或12所述的方法,其特征在于,在暂停后或者在定位结束恢复播放所述视频节目时,所述方法还包括:重新选择加入播放时间最接近恢复播放的视频节目开始播放时间的组播频道,从组播服务器接收并缓存该视频节目的数据;

判断所述组播频道组播的视频节目播放时间与用户点播时间之间的差值是否在设定阈值内,如果是则播放缓存的数据;否则重新与单播服务器建立单播链接,通过该重新建立的单播链接接收视频节目的数据并播放;以及在接收的数据尾部与缓存的数据头部相接时断开所述单播链接,使用缓存的数据接续播放所述视频节目。

14.一种客户端设备,其特征在于,包括:

解码输出单元和显示单元,所述解码输出单元解码视频节目数据并输出给显示单元进行显示;

获取单元,用于获取视频节目的单播信息和在各组播频道上的组播信息,并接收用户的播放控制指令;

切换控制单元,用于根据用户的播放控制指令、节目的单播信息和各组播频道信息,对组播和单播进行切换控制;

单播控制单元,用于根据所述切换控制单元的控制与单播服务器建立单播链接或断开所述单播链接;

单播数据接收缓存单元,用于通过所述单播控制单元建立的单播链接接收并缓存视频节目的数据,并将缓存的数据输出给所述解码输出单元;

组播控制单元,用于根据所述切换控制单元的控制,加入或离开所述切换控制单元选择的一个组播频道;

组播数据接收缓存单元,用于从所述组播控制单元加入的组播频道接收并缓存该视频节目的数据,以及根据所述切换控制单元的控制,在单播数据接收缓存单元的数据输出完毕后向所述解码输出单元输出从所述组播控制单元加入的组播频道接收并缓存的数据。

15.一种切换控制装置,其特征在于,还包括:

获取单元,用于获取视频节目的单播信息和在各组播频道上的组播信息,并接收用户的播放控制指令;

切换控制单元,用于判断组播的视频节目播放时间与用户点播时间之间的差值是否在阈值内,如果是则切换到组播播放,如果不是,则切换到单播播放,并在接收的单播的视频节目数据的尾部与所缓存的播放时间最接近用户点播开始播放时间的组播频道的视频节目数据的头部相接时切换到组播播放。

说明书 :

技术领域

本发明涉及媒体播放技术,特别涉及一种视频点播控制方法、客户端设备和切换控制装置。

背景技术

传统的模拟电视发展到数字电视后,为电视节目的灵活处理奠定了基础,各种新颖的业务陆续涌现。最初的广播电视业务的特点是单向(用户与头端没有业务交互)、广播式(众多用户收看同一个节目)。但是,人们的要求越来越高,人们希望能看到自己想看的节目,而不一定是当前播放的节目;人们希望能够在自己方便的时候看,而不一定要在电视台排定的时间看;人们希望能够随心所欲地快进、快退,而不一定单调地从头看到尾。
为适应这种需求,出现了视频点播VOD(Video on Demand)技术。VOD技术的实现原理如图1所示,运营商预先准备了大量影片存储在视频点播系统的VOD服务器中,VOD技术在VOD服务器与每一个点播用户的客户端设备之间建立单播链接,每个客户端设备通过独享的链接通过网络与VOD服务器进行交互完成播放控制和媒体流的获取,为每个用户提供了独立的播放控制自由。这样,用户不再是被动地、单向地收看,用户可以向视频点播系统发出点播请求,随意地控制节目的播放。
但是VOD技术对服务器处理能力要求高并且对网络带宽占用大,使得系统成本高,成本随着用户的增长而按比例增长。例如,100个用户同时点播,就需要服务器具有能同时输出100个点播流的处理能力,占用100份网络带宽;10000个用户同时点播,就需要服务器具有能同时输出10000个点播流的处理能力,占用10000份网络带宽。
广播电视错过就难以再看到,而视频点播则占用的服务器成本和网络带宽成本很高,对这两个业务互相取长补短后,融合出一些全新的业务,例如:准视频点播nVOD(Near Video on Demand)技术。
nVOD技术的实现原理如图2所示,nVOD服务器只需输出有限个流,大部分网络也只需传输有限个流,客户端设备根据接入的时间选择接收其中的一个流即可。图2中客户端设备1接收一个nVOD组播频道需要nVOD服务器输出一份带宽,客户端设备2和客户端设备3接收一个nVOD组播频道也只需要nVOD服务器输出一份带宽。由于nVOD与广播电视使用相同的技术,因此带宽占用较小,但是,nVOD需要用户等待一段时间才能从头开始,用户体验差。例如:一个2小时的电影,每隔15分钟创建一个组播频道循环播放该影片,共需8个频道。8:00前要求播放的用户,都接收8:00开始的频道;8:00到8:15之间要求播放的用户,都接收8:15开始的频道;依次类推。到10:00,最先开始播放的节目播放完一遍重新开始,进入新一轮循环。虽然增加单个节目的频道可以减少用户等待时间,但是需要设备具备很高的处理能力,同时也会占用带宽。
准视频点播需要用户等待较长时间,而视频点播又需要大量服务器资源和带宽。如何低成本、高效率地提供视频点播是摆在业界技术人员面前的一个难题。

发明内容

本发明实施例提供一种点播控制方法、客户端设备和切换控制装置,以解决现有点播控制方法占用大量服务器资源和带宽的问题。
一种视频点播控制方法,包括:
接收用户的视频节目点播指令,选择加入播放时间最接近用户点播开始播放时间的组播频道,从组播服务器接收并缓存该视频节目的数据;
判断所述组播频道组播的视频节目播放时间与用户点播时间之间的差值是否在设定阈值内,如果是则播放缓存的数据;否则
与单播服务器建立单播链接,通过该单播链接接收视频节目数据并播放;以及在接收的数据尾部与缓存的数据头部相接时断开所述单播链接,使用缓存的数据接续播放所述视频节目。
一种客户端设备,包括:
解码输出单元和显示单元,所述解码输出单元解码视频节目数据并输出给显示单元显示;
获取单元,用于获取视频节目的单播信息和在各组播频道上的组播信息,并接收用户的播放控制指令;
切换控制单元,用于根据用户的播放控制指令、节目的单播信息和各组播频道信息,对组播和单播进行切换控制;
单播控制单元,用于根据所述切换控制单元的控制与单播服务器建立单播链接或断开所述单播链接;
单播数据接收缓存单元,用于通过所述单播控制单元建立的单播链接接收并缓存视频节目的数据,并将缓存的数据输出给所述解码输出单元;
组播控制单元,用于根据所述切换控制单元的控制,加入或离开所述切换控制单元选择的一个组播频道;
组播数据接收缓存单元,用于从所述组播控制单元加入的组播频道接收并缓存该视频节目的数据,以及根据所述切换控制单元的控制,在单播数据接收缓存单元的数据输出完毕后向所述解码输出单元输出从所述组播控制单元加入的组播频道接收并缓存的数据。
一种切换控制装置,包括:
获取单元,用于获取视频节目的单播信息和在各组播频道上的组播信息,并接收用户的播放控制指令;
切换控制单元,用于判断组播的视频节目播放时间与用户点播时间之间的差值是否在阈值内,如果是则切换到组播播放,如果不是,则切换到单播播放,并在接收的单播的视频节目数据的尾部与所缓存的播放时间最接近用户点播开始播放时间的组播频道的视频节目数据的头部相接时切换到组播播放。
本发明实施例提供了一种综合利用单播技术和组播/广播技术的点播控制方法、客户端设备和切换控制装置,在用户点播视频节目时,选择加入最接近的组播/广播频道接收并缓存视频节目的组播数据,如果在组播/广播频道上组播的视频节目的开始播放时间和用户的点播时间的差值在设定阈值内,则可以直接通过组播频道实现视频点播业务,否则再从单播服务器接收错过的数据,而在单播数据和组播数据首尾相接时断开单播链接,借助客户端设备的缓存能力实现单播数据和组播数据的接续播放,同样实现用户按需收看的视频点播业务。

附图说明

图1为现有VOD技术实现原理示意图;
图2为现有nVOD技术实现原理示意图;
图3为本发明实施例所述的视频点播控制方法的实现原理示意图;
图4为本发明实施例提供的一种客户端设备的主要结构示意图;
图5、图6、图7分别为本发明实施例所述的点播控制方法中的切换流程示意图;
图8为本发明实施例所述的判断单播数据和组播数据首尾相接的原理示意图。

具体实施方式

本发明实施例提供了一种综合利用单播技术和组播/广播技术的点播控制方法,实现用户按需收看的视频点播业务,同时降低了服务器和网络带宽的成本,下面以IPTV系统中的应用为例进行说明。
本发明实施例的实现原理如图3所示,假设头端的nVOD服务器输出n(n>=1)个视频节目的组播频道,在每一个组播频道上,视频节目以IP组播的方式发送到网络上,每个组播频道都循环播放一个视频节目,并且这n个频道的开始播放时间依次错开一定时间。网络可以是一个城市的城域网,也可以是城市间的骨干网,也可以没有网络设备而直接链接。客户端设备通过网络接入设备加入某个IP组播频道,收看某个频道播放的视频节目。客户端设备是PC(Personal Computer,个人计算机)或STB(Set Top Box,机顶盒)等用来收看IPTV节目的控制设备。网络接入设备可以是DSLAM(Digital SubscriberLine Access Multiplex,数字用户线接入复接器)、交换机或EPON(Ethernet basedPassive Optical Network,基于以太网的无源光网络)/GPON(Gigabit PassiveOptical Network,吉比特无源光网络)等。头端的VOD服务器通过单播的方式提供视频节目的视频点播业务,实现视频节目播放以及快进、快退、暂停、定位功能。
本发明实施例中,为了实现视频点播业务,同时要减少服务器资源和带宽资源的占用,需要在某个nVOD组播频道和VOD单播频道之间进行切换,具体包括:
1、用户点播时切换到组播频道的控制
当用户开始点播时,查询当前组播的视频节目播放时间与用户点播的视频节目开始播放时间最接近的nVOD组播频道,控制客户端设备加入该最接近的nVOD组播频道,从该最接近的nVOD组播频道接收组播数据,然后判断是否该组播的视频节目播放时间与用户点播时间之间的差值在设定阈值内,如果是,说明该组播频道的当前时间等于或约等于要求的播放时间,直接播放接收的组播数据;否则,说明该组播频道前面错过了一些数据,缓存接收到的组播数据暂不播放,同时,与VOD服务器建立单播链接请求错过时间段内的视频节目数据。当从VOD服务器接收的数据尾部与从组播频道接收缓存的数据头部实现相接后,断开与VOD服务器之间的单播链接,从而切换到只使用nVOD组播频道接收数据的状态,在此过程中播放持续进行,当单播数据播放完后,使用组播数据接续播放;
这里的播放操作通过RTSP会话控制,媒体数据通过UDP或TCP方式传输。这里RTSP协议(RFC2326),不限定RTSP消息的传送方式,不限定媒体数据的传送方式,也不限定RTSP消息与媒体数据分开传输还是交织在一起传输。后面为叙述简明起见称为建立单播链接。
这样,利用客户端设备的缓存能力,通过给出的控制方法在适当的时机选择从视频节目的一个组播频道接收数据代替以单播方式接收数据,从而节省了单播服务器的占用和网络带宽资源,实现了高性价比的VOD业务。
2、用户执行快进或快退时的控制
用户执行快进或快退时,需要使用单播方式,这里包括以下3种场景:
在只有单播时接收到用户对视频节目的快进或快退控制指令,将快进或快退控制指令通过已经建立的单播链接发送给VOD服务器,接收单播服务器根据快进或快退控制指令发送的单播数据并播放;
在同时有单播和组播时接收到用户对视频节目的快进或快退控制指令,离开组播频道,将快进或快退控制指令通过已经建立的单播链接发送给VOD服务器,接收单播服务器根据快进或快退控制指令发送的单播数据并播放;
在只有组播时接收到用户对视频节目的快进或快退控制指令,需要重新与单播服务器建立单播链接并离开所述nVOD组播频道;将快进或快退控制指令通过重新建立的单播链接发送给单播服务器;以及接收单播服务器根据所述快进或快退控制指令发送的单播数据并播放。
3、用户执行暂停操作或定位播放操作时的控制
当用户执行暂停或定位播放操作时,如果正在接收组播频道,则离开组播频道,如果有单播链接,则停止接收单播数据,单播连接可以立即断开,也可暂时保持;
4、当用户从快进、快退、暂停等恢复播放或定位播放时的控制
根据恢复常速播放时单播链接是否已经被断开,分为以下两种场景:
如果是从快进或快退恢复播放、或者在暂停或定位时单播链接没有断开的情况下恢复播放时,重新选择加入最接近的nVOD组播频道,然后判断是否该组播视频节目开始播放时间与用户点播时间之间的差值在设定阈值内,如果是,说明该组播频道的当前时间等于或约等于要求的播放时间,直接播放接收的组播数据,断开单播连接。否则,说明该组播频道前面错过了一些数据,缓存接收到的组播数据暂不播放,同时,利用现有单播连接从VOD服务器请求错过的时间段内的数据并播放。当从VOD服务器接收的数据尾部与从组播频道接收缓存的数据头部实现相接后,断开与VOD服务器之间的单播链接,从而切换到只使用nVOD组播频道接收数据的状态,在此过程中播放持续进行,当单播数据播放完后,使用组播数据接续播放。
如果是在暂停或定位后单播链接已经断开的情况下恢复播放时,与1同理,查询与用户点播的节目播放时间最接近的nVOD组播频道,控制客户端设备加入该最接近的nVOD组播频道,从该最接近的nVOD组播频道接收组播数据,然后判断是否该组播视频节目播放时间与用户点播时间之间的差值在设定阈值内,如果是,说明该组播频道的当前时间等于或约等于要求的播放时间,直接播放接收的组播数据;否则,说明该组播频道前面错过了一些数据,缓存接收到的组播数据暂不播放,同时,与VOD服务器建立单播链接并从VOD服务器请求错过的时间段内的数据并播放。当从VOD服务器接收的数据尾部与从组播频道接收缓存的数据头部实现相接后,断开与VOD服务器之间的单播链接,从而切换到只使用nVOD组播频道接收数据的状态,在此过程中播放持续进行,当单播数据播放完后,使用组播数据接续播放。
当然,在任何情况下用户选择停止操作时,如果加入了组播频道则离开并结束,如果建立了单播链接则断开并结束。
步骤1和4中的设定阈值以不影响用户观看为前提,通常启动VOD业务的时间要求不大于3秒,还要扣除其它环节的开销,因此该设定阈值一般小于3秒。
如图4所示,为本发明实施例提供的一种客户端设备,可以实现单播与组播之间的切换,该客户端设备的主要结构包括:
获取单元41,用于从EPG(Electronic Program Guide,电子节目导航)设备获取播放控制所需信息,并接收用户的播放控制指令;
从EPG获取的播放控制所需信息包括两大部分:单播信息和组播信息。单播信息包含节目的单播URL等信息,组播信息包括对应于该视频节目的各组播视频节目的开始播放时间、组播标识(一个组播视频节目就是一个组播组,用组播地址和端口号来标识)等信息。切换控制单元42,用于根据用户的播放指令控制单播控制单元44和组播控制单元46在单播和组播之间切换,并在单播数据播放完毕后控制使用缓存的组播数据接续播放。
在进行组播控制时,具体方式可以将所选的组播频道的组播标识发送给组播控制单元46,组播控制单元46加入该组播频道接收视频节目的组播数据。
用户播放控制指令包括播放、暂停、快进播放、快退播放、定位播放、停止等。
用户的播放控制指令通过红外遥控器、鼠标、键盘等方式发出。如果使用单播,利用获取单元41所获取的节目的单播URL与单播服务器建立链接并进行播放控制;如果使用组播,根据获取单元41所获取的各组播频道的开始播放时间选择最接近的组播频道,该组播频道的当前播放时间大于或等于用户点播的视频节目的开始播放时间;
解码输出单元43,用于解码视频节目数据并输出给显示设备进行显示,视频节目数据是通过单播或组播的方式接收的;
单播控制单元44和单播数据接收缓存单元45,单播控制单元44用于与所述VOD服务器建立单播链接,并控制单播数据接收缓存单元45通过所述单播链接从VOD服务器接收并缓存所述视频节目的单播数据,单播数据接收缓存单元45将缓存的单播数据输出给解码输出单元43;
组播控制单元46和组播数据接收缓存单元47,组播控制单元46用于加入所述切换控制单元42所选择的该视频节目的一个组播频道中,并控制组播数据接收缓存单元47从所述nVOD服务器中接收该视频节目的组播数据,组播控制单元46根据切换控制单元42的控制指令将缓存的组播数据输出给解码输出单元43;
切换控制单元42判断接收的单播数据尾部和缓存的组播数据头部相接时,触发所述单播控制单元44断开单播链接,并在单播数据接收缓存单元45中缓存的单播数据播放完后控制组播数据接收缓存单元47开始输出缓存的组播数据;
单播控制单元44与原VOD控制单元可以合设也可以独立,组播控制单元47与原BTV控制单元可以合设也可以独立。
当获取单元41接收到用户的快进播放、快退播放指令时,切换控制单元42重新触发单播控制单元44与所述VOD服务器建立单播链接,同时触发组播控制单元46离开组播频道。
作为一个较佳的实施例,获取单元41和切换控制单元42设置在用户的客户端设备上,客户端设备是PC或STB等用来收看IPTV节目的控制设备。
获取单元41和切换控制单元42还可以独立组成切换装置,该切换控制装置可以设置在网络侧的任何一个服务器上,例如EPG、VOD服务器或nVOD服务器上,也可以设置在接入设备上,例如交换机上。
如果切换控制装置设置在用户的客户端设备上,则通过内部线路和客户端设备上的相关播放控制单元实现切换控制。如果切换控制装置设置在用户客户端设备以外的网络实体上,则可以定义切换请求和对应的切换响应实现切换控制,其中切换请求中携带用户的播放控制指令和请求播放的视频节目的播放时间信息,切换响应中携带所选的组播频道的频道或/和单播控制信息。
通过上述控制,如果所选的组播频道的当前播放时间和用户点播的视频节目的开始播放时间的差值在设定阈值内,则客户端设备只需加入该组播频道就可以了;反之客户端设备不仅要加入该组播频道,还要从单播服务器获取错过的数据。
某个组播频道的当前播放时间是从节目头开始计算的相对时间,根据当前时间与该组播频道的开始播放时间之间的差值得出,举例说明一下:例如,节目时长2小时,该节目的一个组播频道从08:00:00开始从头播放,在11:05:00时该组播频道的当前播放时间为01:05:00,注意组播频道循环播放,这是第一遍播放完后,第二遍播放到达的位置。
用户点播的视频节目的开始播放时间是从节目头开始计算的相对时间,根据用户点播的播放指令得出,例如,如果是用户一开始启动点播业务,则从头开始播放,因此开始播放时间为00:00:00;如果是用户播放到00:05:00时选择定位到00:38:00播放,则开始播放时间为00:38:00;如果是用户播放到00:09:00时选择暂停,过一段时间后恢复常速播放,则开始播放时间为00:09:00;同理,如果是用户快进播放或快退播放到00:16:00时恢复常速播放,则开始播放时间为00:16:00。
仍以切换控制装置设置在客户端设备上为例,本发明实施例提供的一种点播控制方法的主要流程之一如图5所示,该流程为用户开始点播视频节目时的控制流程,主要包括如下步骤:
步骤S501、客户端设备在开机后,选择节目时,获取视频节目的单播、组播信息;
其中,节目的单播信息包括单播URL,组播信息包括nVOD服务器各个组播频道的开始播放时间等;
步骤S502、客户端设备接收用户对视频节目的点播播放指令。也允许S501、S502顺序互换,也就是说,既可以在选择节目时获取单播、组播信息然后执行播放指令,也可以先选择节目,然后在执行播放指令时获取单播、组播信息;
步骤S503、选择加入最接近的组播频道;
步骤S504、判断选择加入的组播频道的播放时间和用户点播的视频节目的开始播放时间之间的差值是否在设定阈值内?如果是则直接执行步骤S505;反之,分别执行步骤S506和步骤S507~S508;
步骤S505、客户端设备通过组播频道接收视频节目的数据并播放;
步骤S506、客户端设备通过组播频道接收组播数据并缓存;
步骤S507~S508、客户端设备与VOD服务器建立单播链接,并通过单播链接接收单播数据并播放;
步骤S509、判断接收的单播数据和缓存的组播数据是否实现首尾相接。如果是则执行步骤S510,断开与VOD服务器之间的单播链接,从单播链接接收的数据播放完后继续播放缓存的组播数据,并保持从组播频道接收该视频节目的组播数据;否则保持执行步骤S506和步骤S508,直到接收的单播数据和缓存的组播数据实现首尾相接后切换到只使用组播数据接续播放。
判断VOD单播数据与nVOD组播数据是否相接,即判断是否形成了连续的节目数据,如果是则说明已经从VOD服务器将错过的数据全部取到,则执行步骤S510;否则还需要继续从VOD服务器获取数据,直到VOD单播数据与nVOD组播数据首尾相接时。
这样,用户开始点播视频节目时,利用VOD服务器从头开始播放以实现视频点播业务的体验,同时,尽快切换到最接近的nVOD组播频道以便节省对VOD服务器资源和带宽资源的占用。
步骤S505或步骤S510以后,客户端设备处于只接收nVOD组播频道组播数据,并使用接收到的nVOD组播频道组播数据进行常速播放的状态。
如果用户在该状态下选择暂停操作,触发离开组播频道的流程,当用户再次恢复播放时,重新执行步骤S503开始选择新的组播频道。
如果用户选择定位,即用户在播放过程中切换到另一个位置继续播放,客户端设备向VOD服务器发出播放消息后,定位播放时直接发新的播放消息。客户端设备收到定位播放的用户控制命令,触发离开组播频道的流程,执行步骤S503开始选择新的组播频道。
如果用户选择停止播放,则客户端设备停止播放组播数据、删除缓存的组播数据,并触发离开组播频道的流程。
其中,客户端设备与VOD服务器之间建立或断开单播链接、以及加入或离开某个组播频道的过程为本领域技术人员所熟知,例如分别遵循RTSP/IGMP协议,这里不再赘述。
如果用户在该状态下选择快进、快退等nVOD组播频道无法提供的功能时,则如图6所示,需要从组播频道切换回单播,具体流程包括如下步骤:
步骤S601、接收用户快进或快退的控制指令;
步骤S602、离开加入的组播频道,删除缓存的组播数据;
客户端设备使用组播协议(例如IGMP)向组播复制器发送离开消息。组播复制器收到客户端设备发送的离开消息后,停止向这个客户端设备发送组播数据。
客户端设备接收的nVOD数据来自nVOD服务器,但是通常客户端设备与nVOD服务器之间通过网络设备连接,这时,加入或离开组播频道是由这些网络设备控制的。与客户端设备交互的具有组播协议(例如IGMP)功能的网络设备包括但不限于DSLAM、交换机、路由器,统称为组播复制器。
步骤S603、将快进或快退播放控制指令发送给VOD服务器;
如果接收到用户的快进或快退播放控制指令时,之前与VOD服务器建立的单播链接已经断开,则重新与VOD服务器建立单播链接,如果没有断开则直接利用已经建立的单播连接,将快进或快退播放控制指令发送给VOD服务器。
步骤S604、接收VOD服务器根据快进或快退播放控制指令发送的单播数据并播放。
步骤S604之后,客户端设备处于只接收VOD单播数据的状态,可以响应用户的各种点播控制指令,例如:快进、快退、暂停、定位或停止操作,具体控制过程和现有的点播控制完全相同,例如暂停接收VOD单播数据,在IPTV中就是客户端设备通过RTSP协议向VOD服务器发送暂停消息(Pause)的过程,为本领域技术人员所熟知,这里不再赘述。
如果在有单播连接的情况下恢复常速播放(例如:用户在快进、快退操作后恢复常速播放,快进、快退后暂停或者没有切换到只接收组播数据前暂停再恢复常速播放,快进、快退后定位播放或者没有切换到只接收组播数据前定位播放),则在保持单播的同时,重新选择新的组播频道并切换到该组播频道中,以便节省VOD服务器资源和网络带宽,具体流程参见图5所示。
这样,当用户选择常速播放时,为了节省VOD服务器资源和网络带宽,尽可能加入到某个nVOD组播频道接收数据,只有在一些错过的数据无法通过接收频道得到时,才从VOD服务器获取。其中,开始常速播放包括两种情况:初次开始播放,以及经过快进、快退、暂停、定位操作后转到常速播放,处理基本相同。
如果用户执行快退或快进等组播服务器无法提高的功能时,再切换回单播服务器提供快退或快进功能。由于只需要在从单播服务器获取错过的数据或在用户执行快退或快进时占用单播服务器,从而降低了单播服务器和网络带宽的成本。
总的控制流程如图7所示,具体步骤简述如下:
步骤S701、获取视频节目的单播、组播信息,接收用户对视频节目的点播控制指令,详情参见S501、S502;
步骤S702、切换到最接近的组播频道,详情参见步骤S503~S510;
执行步骤S503切换到最接近的nVOD组播频道,以便节省对VOD服务器资源和带宽资源的占用,同时,如果有错过的数据则利用单播迅速从头开始播放以实现视频点播业务的体验。
S702过程中,客户端设备处于只接收nVOD组播频道的状态,并使用接收到的nVOD组播频道的数据常速播放,或者处于同时接收组播、单播数据的状态,等到用户有控制指令时转到步骤S703;
步骤S703、判断用户的控制指令并响应用户的各种播放控制指令作不同的处理;
如果用户选择快进、快退等nVOD组播频道无法提供的功能时,则进行步骤S704切换回VOD服务器进行单播;
如果用户选择暂停、定位,则进行步骤S706停止接收nVOD组播频道数据并离开组播频道;
如果用户选择停止,则进行步骤S709结束播放;
步骤S704、从组播频道切换回单播,详情参见S601-S604;
S704过程后客户端设备处于只接收VOD单播数据的状态,并使用接收到的VOD单播数据进行快进、快退播放,等到用户有其它控制指令时转到步骤S705。
步骤S705、判断用户的控制指令并响应用户的各种播放控制指令作不同的处理;
如果用户一直进行快进、快退操作则保持状态不变;如果用户选择暂停、定位,转到步骤S707,停止接收VOD服务器的单播数据;
如果用户选择恢复常速播放,转到步骤S702,重新进行切换到某个nVOD组播频道,以便节省VOD服务器资源和网络带宽;
如果用户选择停止则转至步骤S709结束播放。
步骤S706、停止接收nVOD组播频道组播数据的过程;
该过程在IPTV中就是客户端设备离开组播频道的过程。如果是定位播放,转S702;如果是暂停,步骤S706过程后客户端设备处于既不接收nVOD组播频道也不接收VOD单播数据的状态,等接收到用户的控制指令时转到步骤S708。
步骤S707、停止接收单播数据;
该过程在IPTV中就是客户端设备发送RTSP暂停消息的过程。如果是定位播放,转S702;如果是暂停,转步骤S708。
步骤S708、判断用户的控制指令并响应用户的各种播放控制指令作不同的处理;
如果用户选择快进、快退时则转到步骤S704切换回VOD服务器;如果用户选择常速播放,转到步骤S702重新进行切换到某个nVOD组播频道,以便节省VOD服务器资源和网络带宽;如果用户选择停止则执行S709结束播放。
在用户使用业务时,根据用户的控制指令,步骤S702、步骤S704、步骤S706、步骤S707过程可能有0次、1次或多次。
下面给出一种如何选择最接近的nVOD组播频道的方法:
nVOD启动时刻记为t0,节目时长记为tp,nVOD组播频道数记为n。
获取单元41从EPG获取点播节目单播URL以及对应于该节目的各组播视频节目的开始播放时间和组播标识。等价的,也可以用一个组播频道的开始时间以及各个频道间的初始偏移量来代替各组播视频节目的开始播放时间。例如:“长度为1小时的节目对应的6个组播频道的开始时间依次为08:00:00,08:10:00,08:20:00,08:30:00,08:40:00,08:50:00”,与“长度为1小时的节目对应6个组播频道,频道1的开始时间为08:00:00,6个频道之间的时间偏移依次是00:00:00,-00:10:00,-00:20:00,-00:30:00,-00:40:00,-00:50:00”,以及“长度为1小时的节目对应6个组播频道,频道1的开始时间为08:00:00,另外5个频道与频道1之间的时间偏移依次是00:50:00,00:40:00,00:30:00,00:20:00,00:10:00”。后面的算法与对频道按照偏移量的升序排列、降序排列或乱序排列也没有关系。由于后续计算是基于时间的,因此要求系统中的各个部件(VOD/nVOD/EPG/STB)使用统一的时间基准,但是不限定同步时间的具体方法。
客户端设备要求开始播放时间为ts,是相对于节目开始的位置。例如,如果客户端设备从头开始播放则ts=0,如果客户端设备从节目的第15分钟开始快进则ts=15分钟,如果客户端设备从节目的第1小时5分钟6秒开始快退则ts=01:05:06。
用户选择正常速度播放的时刻为t,播放时刻t相对于nVOD启动时刻t0的,不超过tp的相对偏移时间记为tm,由t减去nVOD启动时刻t0后对节目时长tp取模得到。
t时刻各个nVOD组播频道分别处于节目的不同时间(位置),记为(t1,t2,...,tn),这里以共有n个nVOD组播频道为例,tn表示频道n在t时刻的播放位置相对于节目开始的时间,tn由频道n的初始偏移量加上tm后对节目时长tp取模得到。
上述步骤是为了计算出任一频道在t时刻的播放位置相对于节目开始的时间,这里并不限定具体计算步骤,例如,对于任一频道i,可以直接由t减t0加频道i的初始偏移量,然后对节目时长tp取模得到ti。
把t1-tn中大于或等于ts的集合记为(ti,tj,...);
其中的最小值记为min(ti,tj,...),假如min(ti,tj,...)=tj,1<=j<=n,则j频道就是最接近的nVOD组播频道,含义是与要求的播放时间相等或者最近错过的频道,为大于等于要求的播放时间的所有频道中相对于节目头部的时间最小的频道。当要求的播放位置接近节目尾时,可以只使用单播链接播放剩余节目。
选择最接近的nVOD组播频道的功能单元即为图4所示的切换控制单元,可以设置在客户端设备上,也可以设置在其他网络设备上,例如:EPG,也可以设置为独立设备。
客户端设备可以使用单播控制协议(例如RTSP)与VOD服务器交互,进行快进、快退播放。
下面以节目时长为1小时、nVOD的频道数为6,nVOD组播频道依次错开10分钟(1小时除以6=10分钟),nVOD启动时间9:00:00为例,对于几个典型应用场景,详细叙述该流程。
假设业务开始时刻,各个频道的播放位置分别为:
第1个频道从节目的第0分钟开始循环播放;
第2个频道从节目的第10分钟开始循环播放;
第3个频道从节目的第20分钟开始循环播放;
第6个频道从节目的第50分钟开始循环播放。
10分钟后的状态是:
第1个频道从节目的第10分钟开始循环播放;
第2个频道从节目的第20分钟开始循环播放;
第3个频道从节目的第30分钟开始循环播放;
第6个频道从节目的第0分钟开始循环播放。
由于每个频道都是循环播放的,因此每隔10分钟总有一个nVOD组播频道从头开始播放。
由此:
nVOD启动时刻t0=9:00:00
节目时长tp=1小时
nVOD组播频道数目n=6
起始时刻1到6频道的初始偏移量分别为(0,10,20,30,40,50),这里时间单位为分钟。
场景1、用户开始视频点播,则切换到某个nVOD组播频道
客户端设备刚开始收看节目,分为3个典型流程介绍:
1-A、刚开始收看节目恰好赶上某个nVOD组播频道开始播放客户端设备从节目开始收看节目,在节目中的播放位置为ts=0。
常速播放时刻t=9:00:00,t-t0=0,对节目时长tp取模得到播放时刻t相对于nVOD启动时刻t0的相对偏移时间tm=0;
由于tm=0,各频道的初始偏移量加上tm后对节目时长tp取模得到(t1,t2,...,tn)=(0,10,20,30,40,50);
由于ts=0,t1-tn中大于或等于ts的集合记为(ti,tj,...)=(0,10,20,30,40,50)。
其中的最小值min(ti,tj,...)=t1=0,因此1频道就是“最接近的nVOD组播频道”,其播放位置为0。
客户端设备要求的播放位置为0,最接近的nVOD组播频道的播放位置也为0,最接近的nVOD组播频道的播放位置恰好与期望的播放位置相等,则客户端设备就可以只接入该nVOD组播频道从头收看节目,不必与VOD服务器建立单播连接。
在IPTV中,接收选择的最接近的nVOD组播频道的数据就是客户端设备加入组播频道的过程。
实际使用时,因为两个时间点绝对相等是很难的,因此刚开始收看节目恰好赶上某个nVOD组播频道开始播放可以适当灵活处理,可以设定一个差值范围,在该差值范围内的数据丢失或重叠,不应影响用户的观看感受,例如,如果某个nVOD组播频道刚开始播放0.2秒,或者再过0.1秒某个nVOD组播频道就开始播放,则客户端设备可以直接接收此nVOD组播频道。
1-B、刚开始收看节目恰好错过某个nVOD频道,这时客户端设备接收此刚刚错过的nVOD频道的数据缓存起来,同时,从VOD服务器请求错过的数据,从头开始播放该节目。
客户端设备与VOD服务器的播放控制遵循RTSP协议。当从VOD服务器从头开始播放,到缓存的nVOD频道数据的开头时,停止从VOD服务器接收数据播放,转而使用缓存的nVOD频道数据继续播放。其后,在播放的同时继续接收nVOD频道数据。
1)nVOD频道选择
这里以9:32:00时刻用户请求从头开始观看节目说明:
客户端设备从节目开始收看节目,在节目中的播放位置为ts=0。
常速播放时刻t=9:32:00,t-t0=32分钟,对节目时长tp取模得到tm=32分钟。
由于tm=32分钟,各频道的初始偏移量加上tm后对节目时长tp取模得到(t1,t2,...,tn)=(32,42,52,2,12,22)。说明,以频道4为例,30+32=62分钟,对1小时取模后为2分钟。
由于ts=0,t1-tn中大于或等于ts的集合记为(ti,tj,...)=(32,42,52,2,12,22)。
其中的最小值min(ti,tj,...)=t4=2分钟,因此频道4就是“最接近的nVOD频道”,其播放位置为2分钟。
2)同时接收VOD、nVOD数据
客户端设备要求的播放位置为0,“最接近的nVOD频道”的播放位置为2分钟,“最接近的nVOD频道”的播放位置与期望的播放位置不相等,意味着“最接近的nVOD频道”刚刚错过2分钟,则接收nVOD频道4的数据缓存起来,同时从VOD服务器取来错过的2分钟的数据,并使用从VOD服务器取的数据播放,在这一阶段同时接收VOD、nVOD数据。
3)VOD数据与nVOD数据首尾相接后切换到只用nVOD数据客户端设备在09:32:00开始观看节目。
对于VOD,由于从头开始播放,所以09:32:00接收的是节目第0分钟的数据;
对于nVOD,由于已经播放了2分钟,所以09:32:00接收的是第2分钟的数据,然后缓存备用。
从09:32:00开始,客户端设备同时接收VOD和nVOD的数据,到09:34:00的时候,从VOD服务器收到了节目第0分钟到第2分钟的数据,从nVOD服务器收到了节目第2分钟到第4分钟的数据。
则到09:34:00时,从VOD服务器和nVOD服务器接收的数据首尾相接。
首先,判断VOD数据是否与nVOD数据接续的方法可以有多种,这里并不限定,应根据具体的传输格式选择,例如,当数据打包中包含RTP时根据RTP数据包的时间戳判断,利用TS数据包中的PCR判断,利用TS序号并比较数据内容来判断等;其次,在总体流程不变的情况下,可以局部的改进,例如,上面缺省是按照常速从VOD服务器获取数据的,在网络带宽允许的情况下,允许以高于常速的比特率从VOD服务器快速获取数据,这时基本流程不变,但是能使VOD数据是否与nVOD数据接续的时间缩短。
由于第2分钟以后的数据已经由nVOD频道接收到,所以使用RTSP协议的停止命令(TEARDOWN)从VOD服务器断开。从VOD服务器接收的数据播放完以后,使用缓存的nVOD频道数据继续播放,并且在播放的同时继续接收nVOD频道数据。
之后,再根据用户控制指令进行控制。
场景2、播放过程中,组播切换到单播的流程
客户端设备在收看nVOD组播频道节目的过程中,当使用快进、快退、暂停、定位功能时,离开nVOD组播频道,转而使用VOD服务器提供的快进、快退、暂停、定位功能。在IPTV中,场景2就是离开nVOD组播频道,然后与VOD服务器建立RTSP会话,使用快进、快退等功能的情况。
场景3、播放过程中,单播切换到组播的流程
客户端设备在使用VOD服务器提供的快进、快退、暂停、定位功能以后,选择恢复正常速度播放,与场景1同理,需要选择加入某个nVOD组播频道。
3-A、从快进、快退等功能恢复正常速度播放时,如果恰好与某个nVOD组播频道同步,客户端设备就可以直接接入该nVOD组播频道继续收看节目;
3-B、从快进、快退等功能恢复正常速度播放时,如果没有恰好与当前播放时间点同步的nVOD组播频道,客户端设备在从该VOD服务器继续播放该节目的同时,接收某个刚刚错过的nVOD组播频道的数据缓存起来。这个刚刚错过的nVOD组播频道也就是播放的时间点比当前VOD时间点晚并且最接近于当前VOD时间点的那个nVOD组播频道。
1)nVOD组播频道选择
例如,14:56:28时刻用户请求从节目的00:12:34开始观看。
常速播放时刻t=14:56:28;客户端设备要求开始播放时间ts=00:12:34。
t-t0=14:56:28-09:00:00=05:56:28,对节目时长tp取模得到tm=00:56:28。
各频道的初始偏移量加上tm后对节目时长tp取模得到(t1,t2,...,tn)=(00:56:28,00:06:28,00:16:28,00:26:28,00:36:28,00:46:28)。说明,以频道4为例,00:30:00+00:56:28=01:26:28,对1小时取模后为00:26:28,其余频道的处理方法相同。
由于ts=00:12:34,t1-tn中大于或等于ts的集合记为(t1,t3,t4,t5,t6)=(00:56:28,00:16:28,00:26:28,00:36:28,00:46:28),这里t2不符合条件被排除了。
其中的最小值min(ti,tj,...)=t3=00:16:28,因此频道3就是“最接近的nVOD组播频道”,其播放位置为00:16:28。
2)同时接收VOD、nVOD数据
客户端设备要求的播放位置为00:12:34,最接近的nVOD组播频道的播放位置为00:16:28,最接近的nVOD组播频道的播放位置与期望的播放位置不相等,意味着最接近的nVOD组播频道刚刚错过00:03:54(00:16:28-00:12:34=00:03:54),接收nVOD组播频道3的数据缓存起来,同时从VOD服务器取来错过的数据。使用从VOD服务器取的数据播放,在这一阶段仍然同时接收VOD、nVOD数据。
3)VOD数据与nVOD数据首尾相接后切换到只用nVOD数据
需要判断“VOD数据与nVOD数据是否相接:
客户端设备在14:56:28请求从节目的00:12:34开始观看。
对于VOD,由于从节目的00:12:34开始播放,所以14:56:28接收的是节目的00:12:34的数据;
对于nVOD,由于已经播放了00:16:28,所以14:56:28接收的是00:16:28的数据,然后缓存备用。
从14:56:28开始,客户端设备同时接收VOD和nVOD的数据,到15:00:22的时候,在00:03:54(00:16:28-00:12:34=15:00:22-14:56:28=00:03:54)的时间内,从VOD服务器收到了节目00:12:34到00:16:28的数据,从nVOD服务器收到了节目00:16:28到00:25:08的数据。
由于00:16:28以后的数据已经由nVOD组播频道接收到,所以使用RTSP协议的停止命令(TEARDOWN)从VOD服务器断开。从VOD服务器接收的数据播放完以后,使用缓存的nVOD组播频道数据继续播放,并且在播放的同时继续接收nVOD组播频道数据。
在IPTV中,nVOD服务器与DSLAM/交换机之间的数字广播电视通常通过组播传送,但是,通过单播传送也是可以实现的。虽然前面的方案使用最常用的组播方式为例讲解,但是,本方案中,nVOD服务器与DSLAM/交换机之间的数字广播电视传送方式包含组播、单播(包括隧道)。在IPTV中,DSLAM/SWITCH是宽带接入设备的示例,本方案还包括APON/BPON/GPON/EPON/无线接入设备等宽带接入设备。
在DTV(Digital Television数字电视)中,有线电视网络上不能传组播,编码器与客户端设备之间的数字广播电视通过调制的TS传送,但是也能够使用相同的方法实现。在IPTV中需要控制组播频道的加入和退出,但是在有线电视网络中,没有组播概念,没有IP数据包概念,直接把TS数据调制广播出去,客户端设备(通常是机顶盒)只需调谐到相应的频率上接收并对相应PID的数据解码即可。由于目前在DTV中已经实现了VOD/nVOD业务,因此根据本发明在IPTV中的实施例,在DTV中也很容易实现。
在MTV(Mobile Television移动电视、手机电视)中,无线网络代替了部分IP网络,无线基站代替了DSLAM/交换机,手机代替了机顶盒等客户端设备,但是仍然可以方便实现本发明实施例提供的技术方案。
通常的视频点播是只利用单播的,每个用户都要占用一份独立的带宽,以10000个用户同时点播为例,需要占用10000份带宽。采用本方案后,以每个节目设置6个nVOD组播频道为例需要6份带宽。由于大部分用户的大部分时间是正常收看,这时使用nVOD的6份带宽。只有当用户刚开始播放或者使用快进快退等操作时才使用单播。刚开始播放或者使用快进快退等操作所占总的播放时间的比例很小,一般为10%-30%,即使按照较高的比例30%计算,需要单播带宽10000×30%=3000,单播、组播总带宽3006,10000÷3006=3.3,因此该方案比通常的视频点播节省3倍带宽,可以称为“低带宽占用的视频点播方案”。
综上,本发明实施例提供的一种点播控制方法综合利用了单播技术和组播/广播技术,在用户点播视频节目时,选择加入最接近的组播/广播频道接收并缓存视频节目的组播数据,如果在组播/广播频道上组播的视频节目的开始播放时间和用户的点播时间在设定阈值内,则可以直接通过组播频道实现视频点播业务,否则再从单播服务器接收错过的数据,而在单播数据和组播数据首尾相接时断开单播链接,借助客户端设备的缓存能力实现单播数据和组播数据的接续播放,同样实现用户按需收看的视频点播业务。如果用户执行快退或快进等组播服务器无法提高的功能时,再切换回单播服务器提供单播功能。在这一过程中由于只需要在从单播服务器获取错过的数据或在用户执行快退或快进时占用单播服务器,从而降低了单播服务器和网络带宽的成本。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。