CN101552796A - 一种时移操作方法和装置 - Google Patents
一种时移操作方法和装置 Download PDFInfo
- Publication number
- CN101552796A CN101552796A CNA200810090233XA CN200810090233A CN101552796A CN 101552796 A CN101552796 A CN 101552796A CN A200810090233X A CNA200810090233X A CN A200810090233XA CN 200810090233 A CN200810090233 A CN 200810090233A CN 101552796 A CN101552796 A CN 101552796A
- Authority
- CN
- China
- Prior art keywords
- time shift
- live
- progress bar
- time
- stream
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/433—Content storage operation, e.g. storage operation in response to a pause request, caching operations
- H04N21/4333—Processing operations in response to a pause request
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本发明实施例公开了一种时移操作方法和装置。所述一种时移操作方法,包括以下步骤:获取直播流的时移参数;根据所述时移参数创建并维护所述直播流的时移进度条;在所述时移进度条指示的范围内进行操作。通过应用本发明,使服务器所支持的时移能力及时移缓冲区当前状态通知客户端,使客户端能够将时移进度条及其实时状态变化呈现给用户,达到了加强用户时移操作的易用性、准确性,改善用户使用体验的效果。
Description
技术领域
本发明涉及多媒体传输领域,特别是涉及一种时移操作方法和装置。
背景技术
流媒体业务是从Internet上发展起来的一种多媒体应用,指使用流(Streaming)方式在网络上传输的多媒体文件,包括音频、视频和动画等。流媒体传输技术的主要特点是以流(streaming)的形式进行多媒体数据的传输。把连续的影像和声音信息经过压缩处理后放到网络服务器上,客户端在播放前并不需要下载整个媒体文件,而是在将缓存区中已经收到的信息进行播放的同时,多媒体文件的剩余部分将持续不断地从服务器下载到客户端,即“边下载,边播放”。这样就避免了用户在收看或收听媒体流的时候要花费一段时间把完整的文件下载到客户端,可以给用户带来“实时播放”的业务感知体验。
根据流媒体节目的节目源来源方式不同可以分为存贮(stored)节目和直播(live)节目;存贮节目的节目源一般来自存贮文件,通常流媒体业务的点播等业务采用这种方式来提供,存贮方式提供的节目客户端在播放中可以进行定位、快进、快退等操作;而直播节目一般节目源来自直播源,如现场直播或者广播电视等,这种节目通常是不可回退的。
分组交换流业务(Packet-switch Streaming Service,PSS)是3GPP定义的基于实时流媒体协议(Real Time Streaming Protocol,RTSP)实现的用来提供流媒体业务的协议。该协议基本沿用了上述Internet流媒体的技术。同样可以提供点播和直播内容。PSS针对移动网络的情况对RTSP进行了一部分修改适配,从而可以实现直播内容的时移业务。
在现有技术中,PSS中认为直播流是不能进行定位操作且只能在特定时间进行播放的流,它使用会话描述协议(Session Description Protocol,SDP)中“a=range”属性指示是否可以定位,当range中使用的是开放的时间范围,即只有起始时间没有结束时间,如“a=range:npt=now-”或“a=range:clock=20030825T152300Z-”表示是不能够对流进行定位操作;同时在SDP中用“t=”,“r=”和“z=”等参数可以指示出节目的持续的时间;通过这两项可以指示出是否直播流。
客户端根据这些信息,可以呈现直播节目的一个时间范围或一个频道中的一段时间,除了暂停或停止之外,不支持其他VCR操作。
但是,服务器提供时移业务后,使客户端在播放直播节目时,也可对直播点前面一段时间的内容进行回看。但是利用现有技术不能够将服务器的时移特性通知到客户端,这样,即使服务器支持时移业务,客户端也无从得知。
另一方面,假设客户端已知服务器支持时移业务,但不知道可时移的范围。如果服务器最大时移缓冲区为30分钟,客户端暂停了50分钟,时移缓冲区就会溢出,而客户端不知道这一点,当客户端要求从暂停点(直播点前50分钟处)继续播放时,服务器最多只能返回前30分钟的内容,内容上会产生非常大的跳跃。因此客户端需要知道可进行时移操作的范围,但目前的技术没有提供一种机制指示出客户端如何得到并指示出时移操作的范围。
发明内容
本发明实施例要解决的问题是提供一种时移使用方法和装置,显示直播流是否支持时移以及可操作的时移缓冲区范围,并实现在时移缓冲区范围内进行操作。
为达到上述目的,本发明实施例一方面提出一种时移操作方法,包括以下步骤:
获取所述直播流的时移参数;
根据所述时移参数创建并维护所述直播流的时移进度条;
在所述时移进度条指示的范围内进行操作。
另一方面,本发明实施例还提出一种时移操作装置,包括:
参数获取模块,用于获取直播流的时移参数;
进度条生成模块,用于根据所述参数获取模块获得的时移参数创建所述直播流的时移进度条;
时移操作模块,用于在所述时移进度条指示的范围内进行操作。
本发明实施例的技术方案具有以下优点,因为采用了一种时移使用方法和装置,从而,将服务器所支持的时移能力及时移缓冲区当前状态通知客户端,使客户端能够将时移进度条及其实时状态变化呈现给用户,达到了加强用户时移操作的易用性、准确性,改善用户使用体验的效果。
附图说明
图1为本发明实施例提供的一种时移操作方法的流程示意图;
图2为本发明实施例提供的三种获取最大时移及最大时移缓冲区参数的方法的示意图;
图3为本发明实施例一中,自动时移模式下相关信令处理流程示意图;
图4为本发明实施例一中,自动时移模式下对应的客户端的时移进度条的变化示意图;
图5为本发明实施例一中,手动时移模式下相关信令处理流程示意图;
图6为本发明实施例一中,手动时移模式下对应的客户端的时移进度条的变化示意图;
图7为本发明实施例三中,一种时移操作装置的结构示意图。
具体实施方式
本发明实施例提出了一种时移使用方法和装置,显示直播流是否支持时移以及可操作的时移缓冲区范围,并实现在时移缓冲区范围内进行操作。
本发明实施例中,时移缓冲区长度有限,遵循先进先出原则,它的上边界总是直播点的位置,缓冲区发生溢出后,下边界和上边界一起随时间平移。客户端通过获取到时移相关信息包括是否时移、时移最大缓冲区和当前已有时移缓冲区大小,可自己创建并维护一个时移进度条的实时状态变化,指示出可操作的时移范围。
如图1所示,为本发明实施例提供的一种时移操作方法的流程示意图,包括以下步骤:
步骤S101、获取直播流的时移参数。
如图2所示,本发明实施例列举了三种获取是否时移以及时移最大缓冲区参数的方法。客户端只需通过其中一种方式获得即可,当同时通过一种以上方式获得该参数,且有矛盾时,以最新得到的参数值为准。
时移参数获取方法1、通过流媒体的实时控制协议RTSP,在接入直播流的PLAY请求响应中指示出是否时移以及最大时移缓冲区参数。
实时流媒体协议(RTSP)是IETF定义的一种对流媒体进行实时控制的协议。该协议采用客户端/服务器模式,用于在客户端和服务器端建立和协商实时流会话,并提供了对流媒体的播放进行各种控制命令,主要包括如下命令:
SETUP:让服务器给流分配资源,启动RTSP连接。
PLAY:启动SETUP分配流的数据传输。
PAUSE:临时停止流,而不释放服务器资源。
TEARDOWN:释放流的资源,RTSP连接停止。
时移参数获取方法2、在接入直播流会话建立时,通过RTSP的DESCRIBE方法获取SDP,其中包含时移参数,指示出是否时移及最大时移缓冲区。
会话描述协议SDP是一种用于会话描述的格式(协议),它不是一个传输协议,也不包含在媒体的编解码之中,而是用于在不同传输协议间的传递消息的通知协议,其主要目的是解决多媒体会话通知、邀请和会话的初始化工作。它可以用在RTSP、会话启动协议(The Session Initiation Protocol,SIP)等会话控制协议中。
SDP消息中包含两层:会话层和媒体层。一个会话描述中可能包含一个或多个媒体层的信息。SDP消息的基本内容包括会话的名称、目标、活动时间、带宽等信息,构成会话的媒体的类型、格式、传输协议,以及有关媒体传输的信息、地址等。
时移参数获取方法3、在接入直播流会话建立之前,客户端通过下载或其他方式能够得到SDP file,其中有时移参数,指示出是否时移及最大时移缓冲区。
需要指出的是,上述时移参数获取方法3的时移参数获取发生在请求接入直播流之前,这是本发明实施例的一个获取时移参数的可选方案,同样属于本发明的保护范围。
通过上述方式获取到的时移参数包括:是否时移、时移最大缓冲区
是否时移以及时移最大缓冲区是个相对稳定的值(可能在一个节目或频道中很长一段时间内不会变化),可以用一个参数表示,通过流媒体的实时控制协议获取,如RTSP,即上述图2所示的方法1;也可以通过其他方式在播放之前获取到,如SDP,即上述图2所示的方法2和3。
步骤S102、根据在接入直播时是否收到当前已有时移缓冲区参数,来判断时移模式。
在接入直播流时获得的参数中,是否携带当前已有时移缓冲区大小,标识了服务器所提供的时移业务的种类,具体为:
通过在接入直播流时获取到的时移参数中包含当前已有时移缓冲区大小时,时移业务的种类为自动时移模式,转入步骤S103;
通过在接入直播流时获取到的时移参数中不包含当前已有时移缓冲区大小时,时移业务的种类为手动时移模式,转入步骤S106。
以上两种时移业务模式属于PSS时移业务,PSS时移业务是指为PSS单播方式的直播内容提供时移业务特征,包括了2种场景:
自动时移——多个用户共享服务器上的一个时移缓冲区,用户可以对接入以前的内容进行时移操作。在用户快进到直播点时,可以继续使用时移缓冲区,也可以离开时移状态。
手动时移——通过用户的暂停操作触发时移,服务器在终端暂停点开始动态维护一个临时时移缓冲区,这样,用户只能在暂停之后才能有时移操作。在用户快进到直播点时,可以删除该用户临时的时移缓冲区,用户离开时移状态;也可以保留时移缓冲区,用户仍然可以使用该缓冲区。
对于当前已有时移缓冲区的大小,是个随直播流动态变化的值,只能在用户接入到直播流时才能得到;并且根据用户接入时是否已有时移缓冲区,能够判断出服务器支持的时移方式(自动/手动),对于不同的时移模式,客户端的处理完全不同。
步骤S103、根据时移参数创建并维护直播流的时移进度条。
当请求接入所述直播流时,客户端在得到自动时移当前已有时移缓冲区大小,以直播流的直播点对应的时间为时移进度条的上边界,并根据所述直播流的直播点对应的时间和当前已有时移缓冲区大小确定所述时移进度条的下边界,即通过直播点(上边界)减去当前已有时移缓冲区大小得到下边界,从而创建出一个时移进度条,指示出可时移的范围。
在此时,时移进度条中的当前播放点即为直播流的直播点,对应时移进度条的上边界。
之后,客户端需要自行维护时移进度条的状态变化:在当前已有的时移缓冲区值的基础上做时间累计,并不断与最大时移缓冲区的值进行比较,如果累计值已经等于或大于最大时移缓冲区的值,则认为时移缓冲区已经溢出;时移进度条的上边界总是跟着直播点向前移动;时移缓冲区溢出后,下边界要和上边界一起随时间平移。
上述时移进度条创建完毕后,开始进行正常播放,并在正常播放直播流时维护时移进度条。当前的播放点即为直播点,对应为时移进度条的上边界。如果用户决定开始进行时移操作,则转入步骤S104。
步骤S104、在时移进度条指示的范围内操作。
在时移状态下,客户端可在时移范围内进行时移操作,包括暂停、播放、停止、快进、快退、定位等操作。
如前所述,在自动时移模式下,客户端可通过暂停、快退或定位进入到时移状态。
通过上述操作,在时移进度条中的当前播放点不再一定对应直播流的直播点,假设时移进度条的上边界为t1,在play响应中得到当前播放点的时间为t2,则当前播放点在时移进度条上与上边界的距离为(t1-t2),始终等于当点播放的时间与直播点之间的时间差。
服务器在上述的请求响应中可选择是否携带时移参数,时移参数中最大时移缓冲区和当前已有时移缓冲区大小都是可选的。客户端得到这些参数后,可以校准本地的时移参数和进度条,同时维护时移进度条的状态,具体过程如下:
在时移状态,客户端自行维护时移进度条。例如:根据当前时间继续对时移进度条做时间累计,并不断与最大时移缓冲区进行比较,判断时移缓冲区是否会溢出;时移进度条的上边界随当前时间(直播点)而移动;缓冲区溢出前,进度条下边界不变,缓冲区溢出后下边界也要随上边界一起平移;如果当前处于暂停状态,还需要维护暂停点与时移进度条的位置关系,指示暂停点在可时移范围内还是外,暂停点与时移进度条的时间关系,以指示是否能够从暂停点再继续播放;等等。
在上述操作完成后,客户端可以选择回到直播流的直播状态,转入步骤S105。
步骤S105、返回直播状态,并继续时移进度条。
通过一键到位、快进、定位等方式可返回到直播点。返回到直播状态后,客户端仍要继续维护时移进度条,方法同步骤S103所述。
需要进一步指出的是,在返回直播状态后,还可以再通过暂停、快退或定位进入到时移状态,由于时移进度条在返回直播状态后被继续维护,所以无需再重新创建时移进度条,转入步骤S104。
步骤S106、暂停直播流。
在接入直播流的过程中,获取的时移参数中包含支持时移和最大时移缓冲区大小,但没有包含当前已有时移缓冲区大小,则服务器支持的是手动时移,这种情况下,在接入直播后没有时移进度条生成,需要暂停操作才能激活时移进度条的生成。
客户端在直播状态下发起暂停请求,服务器响应中时移头及其各参数均为可选。
需要进一步指出的是,根据实际设置,手动时移模式下的客户端也可以在本步骤中进行时移参数的获取,即服务器在本步骤中的暂停请求的响应信息中携带时移参数,从而客户端获取最大时移缓冲区大小的信息,这种获取参数时间的调整同样属于本发明的保护范围。
步骤S107、根据时移参数创建并维护直播流的时移进度条。
客户端收到暂停响应后,创建时移进度条,同时进入时移状态,在时移状态,根据最大时移缓冲区的值和本地时间维护其状态:例如,在收到暂停响应时,当前已有时移缓冲区长度为0,从此基础上开始累计,累计到等于或大于最大时移缓冲区,认为时时移缓冲区溢出;时移进度条的上边界随时间(直播点)前进,暂停点是时移进度条的一个起始位置,可看作是进度条的一个参考点,时移缓冲区溢出前,它是进度条的下边界,时移缓冲区溢出后,随着进度条的平移,它和进度条的距离也随时间在加大。
上述时移进度条创建完毕后,转入步骤S108。
步骤S108、在时移进度条指示的范围内操作。
在时移状态下,客户端可在时移范围内进行时移操作,包括暂停、播放、停止、快进、快退、定位等操作。
如前所述,在手动时移模式下,则只能通过暂停来进入时移模式,生成时移进度条。
通过上述操作,在时移进度条中的当前播放点不再一定对应直播流的直播点,假设时移进度条的上边界为t1,在play响应中得到当前播放点的时间为t2,则当前播放点在时移进度条上与上边界的距离为(t1-t2),始终等于当点播放的时间与直播点之间的时间差。
服务器在上述的请求响应中可选择是否携带时移参数,时移参数中最大时移缓冲区是可选的。客户端得到这些参数后,可以校准本地的时移参数和进度条,同时维护时移进度条的状态,具体过程如下:
在时移状态,客户端自行维护时移进度条。例如:根据当前时间继续对时移进度条做时间累计,并不断与最大时移缓冲区进行比较,判断时移缓冲区是否会溢出;时移进度条的上边界随当前时间(直播点)而移动;缓冲区溢出前,进度条下边界不变,缓冲区溢出后下边界也要随上边界一起平移;如果当前处于暂停状态,还需要维护暂停点与时移进度条的位置关系,指示暂停点在可时移范围内还是外,暂停点与时移进度条的时间关系,以指示是否能够从暂停点再继续播放;等等。
在上述操作完成后,客户端可以选择回到直播流的直播状态,转入步骤S109。
步骤S109、返回直播状态,继续维护或删除时移进度条。
恢复到直播状态,可删除时移进度条,下次再暂停之后重新创建,方法同步骤S107;也可继续维持时移进度条,方法同步骤S108。
在本步骤完成之后,即返回直播状态后,如果用户希望重新进入时移状态,则根据本步骤中对时移状态条的操作结果,分为以下两种情况:
如果本步骤中采用的操作是删除时移进度条时,转入步骤S106;
通过步骤S106的暂停操作激活时移状态条的创建流程,重新创建时移进度条。
由于在之前的步骤中已经获得过创建时移进度条所需的参数信息,如果时移参数信息被保留,则本步骤可以直接进入创建时移进度条的流程;如果未被保留,则客户端在直播状态下发起暂停请求,服务器响应中反馈时移头及其各参数,用以建立时移进度条。
如果本步骤中采用的操作是继续维护时移进度条时,转入步骤S110。
步骤S110、暂停直播流。
通过本步骤进入时移状态,从而可以返回步骤S108,在时移进度条指示的范围内进行操作。
需要进一步指出的是,根据实际设置,上述步骤中,客户端从服务器接收的每次消息反馈都可以包含具体的时移参数,用以维护、校对和调整时移进度条,这同样属于本发明的保护范围。
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述:
本发明实施例一,通过在RTSP中扩展Time-shift头来传递时移参数的时移操作方法。
在本实施例中,在RTSP中定义Time-shift头,携带的信息包括是否支持时移、最大时移缓冲区以及当前已有的缓冲区长度,通过两个参数实现:最大时移缓冲区和当前已有时移缓冲区,用在Play或Pause响应中。其语法格式如下:
Time-shift=″Time-shift″:parameter CRLF
parameter=″;″″Max_buff″″=″1*value1
/″;″″Curr_buff″(″=″1*value1)/(″:″″time-type″″=″1*time″-″1*time)
value1=1*nDIGIT[″.″fraction];s(n>0,整数)
time-type=″npt″/″clock″/″smpte″
time=NPT-time/Absolute time/SMPTE Relative Timestamps
其中,Max-buff和Curr-buff都是以时间秒为单位,都可以用一个值表示一段时间,此值以当前直播点为起始点,表示向前的一段时间;另外Cur-buff也可以是由一个开始时间和一个结束时间构成的一个时间段信息,这种方式又可以使用RTSP中的三种时间表示方法来表示:NPT-time、Absolute time和SMPTE Relative Timestamps。
下面分别举例说明。
(1)用一个时间值的表示方法
Max-buff=3600,Curr-buff=1000
(2)Curr-buff用两个值表示的方法
NPT-time:Max-buff=3600 Curr-buff:npt=500.5-1500;//和range用相同的NPT相对0点
Absolute time:Max-buff=3600 Curr-buff:clock=20071108T143720.25Z-20071108T145010.65Z
SMPTE:Max-buff=3600 Curr-buff:smpte=10:07:00-10:37:33:05.01//和range使用相同的SMPTE相对0点
上述Time-shift头及两个参数的含义和使用方法:
在客户端接入直播流时,如果play响应中没有携带Time-shift头,则表示服务器不支持时移业务,反之,表示服务器支持时移业务。
Time-shift头内部参数的具体含义如下:
(1)Max-buff:Max-buff等于0,表示不支持;Max-buff不等于0,表示支持时移,时移的最大缓冲区等于Max-buff。
(2)Curr-buff:含义与当前状态(直播/时移)有关。在接入直播流时,如果在play响应中携带了Time-shift头,但没有Curr-buff项,则表示需要用户按暂停键才能触发时移进度条创建,进入时移状态;如果有Curr-buff项,则表示用户在接入直播流时即有可用时移缓冲区,Curr-buff的取值范围[0,Max-buf],用户随时可以进入时移状态。在进入时移状态之后,用户允许有定位、暂停、前进/后退等操作,此时Curr-buff为可选项,有这项,客户端则可用来修正客户端当前缓冲区大小值。
客户端创建时移进度条后,因为时移缓冲区一直跟着直播点,客户端可以根据初始的已有时移缓冲区的大小,自己做时间累计实时维护进度条的状态,当已有时移缓冲区大小累计大于或等于最大时移缓冲区时,可认为服务器的时移缓冲区开始溢出;客户端自己累计时间维护的时移进度条和服务器侧真正的时移缓冲区可能会有差异,也可能最大时移缓冲区会发生变化,当用户有如暂停、定位、前进/后退等操作时,在play响应中返回Max-buff和Curr-buff,客户端可用此值来修正本地的时移参数,呈现出更精确的进度条。
基于上述的time-shift头,判断时移模式后的信令及终端处理流程如下:
A、自动时移模式处理流程:
假设服务器支持自动时移,最大时移缓冲区为3600秒;通过RTSP的Play响应获取到时移特性参数;客户端在接入时,已有可用时移缓冲区。
如果客户端不支持时移,则对Play响应中的Time-shift头不做处理;如果客户端也支持时移,则需要利用时移参数创建并维护时移进度条。图3和图4分别是自动时移相关信令处理流程和对应的客户端的时移进度条的变化,结合两图,自动时移模式处理流程如下:
步骤S301、请求接入直播流。
客户端在T0时刻发起play请求接入到直播节目,例如,指令内容具体为:Play rttp://example.com/content1.3gp。
步骤S302、接收服务器的响应信息,提取时移参数。
如接收响应信息为200 OK Session:XXXX Time-shift:Max-buff=3600Curr_buff=400,则表明服务器响应携带Time-shift头,最大时移缓冲区Max-buff=3600秒,已有时移缓冲区Curr-buff=400秒。
步骤S303、根据时移参数创建时移进度条。
客户端根据Max-buff和Curr-buff,创建一个初始的时移进度条,指示出可在当前直播点前400秒内进行时移操作。
之后,客户端需要自己维护时移进度条的变化,即可时移的范围随时间匀速从T0增加到T1时刻,若时移缓冲区有溢出,则进度条整体要随着直播点时间平移。
步骤S304、请求暂停直播流。
在T1时刻,用户因某种原因按暂停直播流。需要指出的是,暂停是本发明所提供的优选实施例,其他可以达到相同效果的操作,如快退、定位等操作,也属于本发明的保护范围。
步骤S305、接收暂停响应信息。
如接收响应信息为OK Session:XXXX Time_shift:Curr_buff=1000。
响应中的Time-shift及其中的Max-buff和Curr-buff都是可选项。若携带了这两个参数,客户端收到后,和本地使用的参数值比较,并校正本地参数和时移进度条。如图中T1时刻,只返回Curr-buff=1000,则客户端将本地的Curr-buff校正为1000秒。
步骤S306、根据时移进度条进行直播流操作。
暂停后,进入时移状态。在时移状态下,客户端自行维护时移进度条,并支持在时移范围内的操作,如快进、快退、定位、暂停等。
步骤S307、请求返回直播流。
在T2时刻,客户端用Play命令请求恢复到直播。
步骤S308、接收响应信息。
如接收响应信息为OK Session:XXXX Time_shift:Curr_buff=1800,在play响应中,返回Curr-buff=1800秒。
步骤S309,返回直播状态,维护时移进度条。
客户端校准本地的时移进度条,同时装入直播状态,并继续维护时移进度条。
B、手动时移模式处理流程:
假设服务器支持手动时移,即客户端在接入时,没有可用时移缓冲区,只有当用户暂停时才触发时移进度条的创建;最大时移缓冲区为3600秒,通过RTSP信令获得时移特性参数。
如果客户端不支持时移,则对Play响应中的Time-shift头不做处理;如果客户端也支持时移,则在暂停之后利用时移参数创建并维护时移进度条。图5和图6分别是手动时移时相关信令处理流程和对应的客户端的时移进度条。
步骤S501、请求接入直播流。
客户端在T0时刻发起play请求接入到直播节目,例如,指令内容具体为:Play rttp://example.com/content1.3gp。
步骤S502、接收服务器的响应信息,提取时移参数。
服务器响应携带Time-shift头,如接收响应信息为200 OK Session:XXXX Time-shift:Max-buff=3600,最大时移缓冲区Max-buff=3600秒。客户端根据响应信息中没有携带当前已有时移大小Curr-buff,可判断出服务器支持的是手动时移,所以进入直播状态而不需要维护时移进度条。
步骤S503、直播状态下播放。
步骤S504、请求暂停直播流。
直到T1时刻,客户端发起暂停请求。
步骤S505、接收暂停响应信息。
如接收响应信息为OK Session:XXXX Time_shift:Curr_buff=0。
响应中返回的Curr-buff为可选项。
步骤S506、根据时移参数创建时移进度条。
客户端已知是手动时移,则在收到暂停响应后自行创建一条时移进度条,起始的Curr-buff为0,同时进入时移状态,并开始维护时移进度条,进度条累计增加,上边界随时间移动,当增加到大于或等于时移最大缓冲区时,认为缓冲区溢出,对应的进度条整体随时间平移。显示暂停点和时移进度条的时间关系,以提示用户是否可以从暂停点开始继续播放。
步骤S507、在时移状态下,在时移进度条范围内进行操作。
在T2时刻,从暂停点恢复播放或进行其它定位操作,在响应中返回Curr-buff=1000,客户端根据此参数对本地的时移参数和进度条进行校正,继续维护时移进度条。
步骤S508、请求返回直播流。
在T3时刻,客户端请求返回直播。
步骤S509、接收响应信息。
如接收响应信息为OK Session:XXXX Time_shift:Curr_buff=1800,在play响应中,返回Curr-buff=1800秒。
步骤S510、收到响应后,客户端取消时移进度条,时移进度条长度变为0。
本发明实施例二,通过SDP获取到是否支持时移以及时移最大缓冲区的时移使用方法。
为此需要在SDP中扩展一个属性Timeshift,该属性只能应用在会话层,其格式如下:
a=Timeshift:<Timeshift_Maxbuff>
Timeshift_Maxbuff=1*value;s
value=1*n DIGIT[″.″fraction];s(n>0,整数)
其中Timeshift_Maxbuff以秒为单位,具体含义为:
(1)如果SDP中没有a=timeshift这一属性或指示a=timeshift:0,则表示不支持时移业务
(2)如果SDP指示a=timeshift:<Timeshift_Maxbuff>,且Timeshift_Maxbuff!=0,则表示支持时移,时移的最大缓冲区为Timeshift_Maxbuff秒。
为方便说明,举例如下:
v=0
o=ghost 28908445 262890842807 IN IP4192.168.10.10
s=3GPP Unicast SDP Example
i=Example of Unicast SDP file
u=http://www.infoserver.com/ae600
e=ghost@mailserver.com
c=IN IP4 0.0.0.0
t=00
a=range:npt=now- //表示是直播节目
a=timeshift:3600 //支持时移,时移最大缓冲区3600s
//a=timeshift:0 //不支持时移
客户端通过SDP获取到是否支持时移和最大时移缓冲区,仍需使用实施例1中RTSP的扩展头time-shift中的Curr-buff项,Max-buff项可不用。
基于上述扩展Timeshift属性的SDP指令,判断时移模式后的信令及终端处理流程与上述的本发明实施例一类似,不再另行详述。
如果SDP和RTSP发生矛盾,以最新获得的参数为准。如:SDP file中给出了最大时移缓冲区的值,在RTSP的Play请求中也给出了该值,但二者不一致,因为RTSP比SDP file在时间上更新,所以以RTSP为准;客户端已经通过SDP获取到时移缓冲区最大值,接入时RTSP中没有携带time-shift头,则客户端认为服务器支持时移,但需要用户暂停后才能触发时移进度条的创建。
如图7所示,为本发明实施例三,一种时移操作装置的结构示意图,包括:
参数获取模块1,用于获取直播流的时移参数;
进度条生成模块2,用于根据参数获取模块1获得的时移参数创建直播流的时移进度条;
时移操作模块3,用于在进度条生成模块2生成的时移进度条指示的范围内进行操作。
其中,参数获取模块1,具体包括:
请求发送子模块11,用于发送接入直播流的请求;
参数获取子模块12,用于接收请求发送子模块11发送请求的响应信息,并获取时移参数;
模式判断子模块13,用于根据参数获取子模块12获取的时移参数判断时移模式。
其中,参数获取模块1,还包括:
文件下载子模块14,用于在接入直播流之前下载SDP文件。
其中,进度条生成模块2,具体包括:
激活子模块21,用于激活生成时移进度条的操作;
第一维护子模块22,用于维护时移进度条。
其中,时移操作模块3,具体包括:
第二维护子模块31,用于在进行时移操作后,根据时移参数维护时移进度条。
删除子模块32,用于在手动时移模式下,返回直播流后,删除时移进度条
本发明实施例的技术方案具有以下优点,因为采用了一种时移使用方法和装置,从而,将服务器所支持的时移能力及时移缓冲区当前状态通知客户端,使客户端能够将时移进度条及其实时状态变化呈现给用户,达到了加强用户时移操作的易用性、准确性,改善用户使用体验的效果。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台终端设备(可以是手机,个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。
Claims (20)
1、一种时移操作方法,其特征在于,包括以下步骤:
获取直播流的时移参数;
根据所述时移参数创建并维护所述直播流的时移进度条;
在所述时移进度条指示的范围内进行操作。
2、如权利要求1所述时移操作方法,其特征在于,所述获取直播流的时移参数,具体为:
通过实时控制协议RTSP请求接入所述直播流,并接收携带时移参数的响应,获取所述直播流的时移参数;或,
通过请求会话描述协议SDP,并接收携带时移参数的所述SDP的响应,获取所述直播流的时移参数;或,
在所述请求接入直播流之前,获取包含所述直播流的时移参数的SDP文件。
3、如权利要求1所述时移操作方法,其特征在于,所述时移参数,具体包括:
是否时移、最大时移缓冲区大小和当前已有时移缓冲区大小;或,
是否时移、最大时移缓冲区大小。
4、如权利要求3所述时移操作方法,其特征在于,
在接入直播流时,服务器返回的所述时移参数包含当前已有时移缓冲区大小时,为自动时移模式;
在接入直播流时,服务器返回的所述时移参数不包含当前已有时移缓冲区大小时,为手动时移模式。
5、如权利要求4所述时移操作方法,其特征在于,当所述时移操作方法为自动时移模式时,所述根据时移参数创建所述直播流的时移进度条,具体为:
当请求接入所述直播流时,以所述直播流的直播点对应的时间为所述时移进度条的上边界,并根据所述直播流的直播点对应的时间和所述时移参数中当前已有时移缓冲区大小确定所述时移进度条的下边界,由此创建所述直播流的时移进度条。
6、如权利要求5所述时移操作方法,其特征在于,在所述时移进度条中,当前播放点为所述直播流的直播点,对应所述时移进度条的上边界,所述维护直播流的时移进度条,具体为:
比较所述时移进度条大小和所述最大时移缓冲区大小;
当所述时移进度条大小小于所述最大时移缓冲区大小时,所述下边界不变,所述上边界随所述直播流的直播点移动;或,
当所述时移进度条大小大于或等于所述最大时移缓冲区大小时,所述下边界和所述上边界随所述直播流的直播点移动,以保证所述时移进度条的下边界与上边界之间的大小等于所述最大时移缓冲区大小。
7、如权利要求4所述时移操作方法,其特征在于,当所述时移操作方法为手动时移模式时,所述根据时移参数创建并维护所述直播流的时移进度条,具体为:
暂停所述直播流;
创建并维护所述直播流的时移进度条。
8、如权利要求7所述时移操作方法,其特征在于,所述创建并维护直播流的时移进度条,具体为:
以所述暂停点为所述时移进度条的下边界,以所述直播流的直播点为所述时移进度条的上边界,生成所述时移进度条;
比较所述时移进度条大小和所述最大时移缓冲区大小;
当所述时移进度条大小小于所述最大时移缓冲区大小时,所述下边界不变,所述上边界随所述直播流的直播点移动;或,
当所述时移进度条大小大于或等于所述最大时移缓冲区大小时,所述下边界和所述上边界随所述直播流的直播点移动,以保证所述时移进度条的下边界与上边界之间的大小等于所述最大时移缓冲区大小。
9、如权利要求1所述时移操作方法,其特征在于,所述在时移进度条指示的范围内进行操作,具体为:
在所述时移进度条指示的范围内,进行暂停、播放、停止、快进、快退、定位、或返回直播状态中的至少一种操作。
10、如权利要求9所述时移操作方法,其特征在于,所述在所述时移进度条指示的范围内进行操作,还包括:
继续维护所述时移进度条。
11、如权利要求10所述时移操作方法,其特征在于,所述继续维护所述时移进度条,具体包括:
比较所述时移进度条大小和所述最大时移缓冲区大小;
当所述时移进度条大小小于所述最大时移缓冲区大小时,所述时移进度条的下边界不变,所述时移进度条的上边界随所述直播流的直播点移动;或,
当所述时移进度条大小大于或等于所述最大时移缓冲区大小时,所述时移进度条的下边界和上边界随所述直播流的直播点移动,以保证所述时移进度条的下边界与上边界之间的大小等于所述最大时移缓冲区大小。
12、如权利要求11所述时移操作方法,其特征在于,所述继续维护所述时移进度条,还包括维护当前播放点在所述时移进度条中与当前播放点在直播流中时间的对应关系,具体为:
保持所述当前播放点与所述时移进度条的上边界之间的时间差等于所述当前播放点所对应的时间与所述直播流的直播点所对应的时间之间的时间差。
13、如权利要求4或9所述时移操作方法,其特征在于,
当所述时移操作方法为自动时移模式时,所述返回直播状态,具体为:
返回直播流的直播点,
继续维护所述时移进度条;
当所述时移操作方法为手动时移模式时,所述返回直播状态,具体为:
返回直播流的直播点,
继续维护或删除所述时移进度条。
14、如权利要求13所述时移操作方法,其特征在于,当所述时移操作方法为自动时移模式时,所述返回直播状态,之后还包括:
在所述继续维护的时移进度条指示的范围内进行操作;
15、如权利要求13所述时移操作方法,其特征在于,当所述时移操作方法为手动时移模式时,所述返回直播状态,之后还包括:
当所述返回直播状态为继续维护所述时移进度条时,暂停所述直播流,在所述继续维护的时移进度条指示的范围内进行操作;或,
当所述返回直播状态为删除所述时移进度条时,暂停所述直播流,重新创建时移进度条,在所述重新创建的时移进度条指示的范围内进行操作。
16、一种时移操作装置,其特征在于,包括:
参数获取模块,用于获取直播流的时移参数;
进度条生成模块,用于根据所述参数获取模块获得的时移参数创建所述直播流的时移进度条;
时移操作模块,用于在所述进度条生成模块生成的时移进度条指示的范围内进行操作。
17、如权利要求16所述时移操作装置,其特征在于,所述参数获取模块,具体包括:
请求发送子模块,用于发送接入直播流的请求;
参数获取子模块,用于接收携带时移参数的响应信息,并获取时移参数;
模式判断子模块,用于根据所述参数获取子模块获取的时移参数判断时移模式。
18、如权利要求16所述时移操作装置,其特征在于,所述参数获取模块,还包括:
文件下载子模块,用于在接入直播流之前下载SDP文件。
19、如权利要求16所述时移操作装置,其特征在于,所述进度条生成模块,具体包括:
激活子模块,用于激活生成时移进度条的操作;
第一维护子模块,用于维护所述时移进度条。
20、如权利要求16所述时移操作装置,其特征在于,所述时移操作模块,具体包括:
第二维护子模块,用于在进行时移操作后,根据时移参数维护所述时移进度条;
删除子模块,用于在手动时移模式下,返回所述直播流的直播状态后,删除所述时移进度条。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810090233XA CN101552796B (zh) | 2008-03-31 | 2008-03-31 | 一种时移操作方法和装置 |
PCT/CN2009/070693 WO2009121257A1 (zh) | 2008-03-31 | 2009-03-09 | 一种时移操作方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810090233XA CN101552796B (zh) | 2008-03-31 | 2008-03-31 | 一种时移操作方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101552796A true CN101552796A (zh) | 2009-10-07 |
CN101552796B CN101552796B (zh) | 2012-07-04 |
Family
ID=41134822
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200810090233XA Active CN101552796B (zh) | 2008-03-31 | 2008-03-31 | 一种时移操作方法和装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN101552796B (zh) |
WO (1) | WO2009121257A1 (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011147352A1 (zh) * | 2010-08-17 | 2011-12-01 | 华为技术有限公司 | 一种在动态http流传输方案中支持时移回看的方法和装置 |
CN102664032A (zh) * | 2012-05-07 | 2012-09-12 | 乐视网信息技术(北京)股份有限公司 | 一种直播时移的播放进度调节条及其控制方法 |
CN103699583A (zh) * | 2013-12-05 | 2014-04-02 | 乐视网信息技术(北京)股份有限公司 | 一种实现直播时移的方法及电子设备 |
CN109640126A (zh) * | 2018-12-28 | 2019-04-16 | 北京奇艺世纪科技有限公司 | 一种视频播放方法、系统和装置以及计算机可读存储介质 |
CN114363710A (zh) * | 2022-01-04 | 2022-04-15 | 上海哔哩哔哩科技有限公司 | 基于时移加速的直播观看方法及装置 |
CN114466216A (zh) * | 2022-02-15 | 2022-05-10 | 上海哔哩哔哩科技有限公司 | 直播间显示方法、服务端及直播客户端 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6337193B1 (ja) * | 2017-12-14 | 2018-06-06 | 株式会社ドワンゴ | サーバおよびプログラム |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1929596A (zh) * | 2005-09-06 | 2007-03-14 | 中兴通讯股份有限公司 | 一种时移电视的实现方法及其实现系统 |
CN1852421A (zh) * | 2005-11-30 | 2006-10-25 | 华为技术有限公司 | 一种实现直播与时移播放之间切换的方法 |
KR100813047B1 (ko) * | 2005-12-12 | 2008-03-14 | 엘지전자 주식회사 | 저장된 방송 프로그램 정보 표시방법 및 장치 |
KR100747532B1 (ko) * | 2005-12-15 | 2007-08-08 | 엘지전자 주식회사 | 타임 쉬프트 진행 바를 표시하는 방법 및 이를 구현한 방송수신기 |
CN1946173A (zh) * | 2006-10-10 | 2007-04-11 | 华为技术有限公司 | 一种iptv直播业务控制方法、系统和设备 |
CN1997126A (zh) * | 2006-11-15 | 2007-07-11 | 深圳创维-Rgb电子有限公司 | 一种时移电视的互动界面实现方法 |
CN100515079C (zh) * | 2006-12-13 | 2009-07-15 | 北京大学 | 一种在iptv中实现画中画的方法 |
-
2008
- 2008-03-31 CN CN200810090233XA patent/CN101552796B/zh active Active
-
2009
- 2009-03-09 WO PCT/CN2009/070693 patent/WO2009121257A1/zh active Application Filing
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011147352A1 (zh) * | 2010-08-17 | 2011-12-01 | 华为技术有限公司 | 一种在动态http流传输方案中支持时移回看的方法和装置 |
US8683071B2 (en) | 2010-08-17 | 2014-03-25 | Huawei Technologies Co., Ltd. | Method and apparatus for supporting time shift playback in adaptive HTTP streaming transmission solution |
US8984570B2 (en) | 2010-08-17 | 2015-03-17 | Huawei Technologies Co., Ltd. | Method and apparatus for supporting time shift playback in adaptive HTTP streaming transmission solution |
CN102664032A (zh) * | 2012-05-07 | 2012-09-12 | 乐视网信息技术(北京)股份有限公司 | 一种直播时移的播放进度调节条及其控制方法 |
CN102664032B (zh) * | 2012-05-07 | 2015-08-12 | 乐视网信息技术(北京)股份有限公司 | 一种直播时移的播放进度调节条及其控制方法 |
CN103699583A (zh) * | 2013-12-05 | 2014-04-02 | 乐视网信息技术(北京)股份有限公司 | 一种实现直播时移的方法及电子设备 |
CN103699583B (zh) * | 2013-12-05 | 2018-08-03 | 乐视网信息技术(北京)股份有限公司 | 一种实现直播时移的方法及电子设备 |
CN109640126A (zh) * | 2018-12-28 | 2019-04-16 | 北京奇艺世纪科技有限公司 | 一种视频播放方法、系统和装置以及计算机可读存储介质 |
CN114363710A (zh) * | 2022-01-04 | 2022-04-15 | 上海哔哩哔哩科技有限公司 | 基于时移加速的直播观看方法及装置 |
WO2023131081A1 (zh) * | 2022-01-04 | 2023-07-13 | 上海哔哩哔哩科技有限公司 | 基于时移加速的直播观看方法及装置 |
CN114466216A (zh) * | 2022-02-15 | 2022-05-10 | 上海哔哩哔哩科技有限公司 | 直播间显示方法、服务端及直播客户端 |
CN114466216B (zh) * | 2022-02-15 | 2023-11-03 | 上海哔哩哔哩科技有限公司 | 直播间显示方法、服务端及直播客户端 |
Also Published As
Publication number | Publication date |
---|---|
WO2009121257A1 (zh) | 2009-10-08 |
CN101552796B (zh) | 2012-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7547573B2 (ja) | 置換コンテンツの最後を被置換コンテンツの最後と揃えるのに役立つ置換コンテンツ再生における動的短縮 | |
US10880620B2 (en) | Playback synchronization across playback devices | |
CN101552796B (zh) | 一种时移操作方法和装置 | |
US9509739B2 (en) | Method and apparatus for playing live content | |
US10575042B2 (en) | Media content synchronization | |
CN105247437B (zh) | 同步多个ott流传输客户端 | |
US20170302988A1 (en) | Method And System For Realizing Streaming Media Data Seamlessly Connecting In Intelligent Home | |
US10645447B2 (en) | Fast channel change method and server, and IPTV system | |
CN108989904B (zh) | 播放广播内容的方法和设备 | |
EP2288151A1 (en) | Methods and apparatuses for generating channel information, access controlling and delivering and iptv system | |
WO2002051155A1 (en) | Webcasting method and system for time-based synchronization ofmultiple, independent media streams | |
WO2010017656A1 (en) | Fast content switching in a communication system | |
EP3304848B1 (en) | Method for initiating a transmission of a streaming content delivered to a client device and access point for implementing this method | |
CN105340280A (zh) | 内容供应装置、内容供应方法、程序、终端装置及内容供应系统 | |
AU2011361031B2 (en) | Methods and apparatuses for resuming paused media | |
WO2017076009A1 (zh) | 一种节目回看方法、一种播放器及一种终端 | |
Kim et al. | Analysis and improvement of MPEG-DASH-based internet live broadcasting Services in Real-world Environments | |
CN108235062B (zh) | 一种将互联网视频引入有线电视网进行播放的系统及方法 | |
GB2544796B (en) | Video content synchronisation | |
CN101552684B (zh) | 实时流媒体协议会话状态控制的方法、装置和系统 | |
KR102324604B1 (ko) | 하이브리드망에서의 스트리밍 방법 및 그 장치 | |
JP2006109439A (ja) | 移動通信端末機のチャネル切替装置及び方法 | |
JP4773505B2 (ja) | マルチメディアチャネルの切り替え |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |