一种时移操作方法和装置的制作方法

文档序号:7690879阅读:202来源:国知局
专利名称:一种时移操作方法和装置的制作方法
技术领域
本发明涉及多媒体传输领域,特别是涉及一种时移操作方法和装置。
背景技术
流媒体业务是从Internet上发展起来的 一种多々某体应用,指使用流 (Streaming)方式在网络上传输的多媒体文件,包括音频、视频和动画等。 流媒体传输技术的主要特点是以流(streaming)的形式进行多媒体数据的传 输。把连续的影像和声音信息经过压缩处理后放到网络服务器上,客户端在 播放前并不需要下载整个媒体文件,而是在将緩存区中已经收到的信息进行
即"边下载,边播放"。这样就避免了用户在收看或收听媒体流的时候要花费 一段时间把完整的文件下载到客户端,可以给用户带来"实时播放,,的业务 感知体验。
根据流i某体节目的节目源来源方式不同可以分为存贮(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为本发明实施例三中, 一种时移操作装置的结构示意图。
具体实施例方式
本发明实施例提出了一种时移使用方法和装置,显示直播流是否支持时 移以及可操作的时移缓冲区范围,并实现在时移緩冲区范围内进行操作。
本发明实施例中,时移緩冲区长度有限,遵循先进先出原则,它的上边 界总是直播点的位置,緩沖区发生溢出后,下边界和上边界一起随时间平移。 客户端通过获取到时移相关信息包括是否时移、时移最大緩冲区和当前已有 时移緩沖区大小,可自己创建并维护一个时移进度条的实时状态变化,指示 出可操作的时移范围。如图l所示,为本发明实施例提供的一种时移操作方法的流程示意图,
包括以下步骤
步骤S101、获取直播流的时移参数。
如图2所示,本发明实施例列举了三种获取是否时移以及时移最大緩冲 区参数的方法。客户端只需通过其中一种方式获得即可,当同时通过一种以 上方式获得该参数,且有矛盾时,以最新得到的参数值为准。
时移参数获取方法l、通过流媒体的实时控制协议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、在接入直播流会话建立之前,客户端通过下载或其他方式能够得到SDPfile,其中有时移参数,指示出是否时移及最大时移緩冲 区。
需要指出的是,上述时移参数获取方法3的时移参数获取发生在请求接 入直播流之前,这是本发明实施例的一个获取时移参数的可选方案,同样属 于本发明的保护范围。
通过上述方式获取到的时移参数包括是否时移、时移最大緩冲区
是否时移以及时移最大緩冲区是个相对稳定的值(可能在一个节目或频 道中很长一段时间内不会变化),可以用一个参数表示,通过流媒体的实时控 制协议获取,如RTSP,即上述图2所示的方法1;也可以通过其他方式在播-放之前获取到,如SDP,即上述图2所示的方法2和3 。
步骤S102、根据在接入直播时是否收到当前已有时移緩冲区参数,来判 断时移模式。
在接入直播流时获得的参数中,是否携带当前已有时移緩沖区大小,标 识了服务器所提供的时移业务的种类,具体为
通过在接入直播流时获取到的时移参数中包含当前已有时移緩冲区大小 时,时移业务的种类为自动时移模式,转入步骤S103;
通过在接入直播流时获取到的时移参数中不包含当前已有时移緩沖区大 小时,时移业务的种类为手动时移模式,转入步骤S106。
以上两种时移业务模式属于PSS时移业务,PSS时移业务是指为PSS单 播方式的直播内容提供时移业务特征,包括了2种场景
自动时移一一多个用户共享服务器上的一个时移緩沖区,用户可以对接 入以前的内容进行时移操作。在用户快进到直播点时,可以继续使用时移緩 冲区,也可以离开时移状态。
手动时移一一通过用户的暂停操作触发时移,服务器在终端暂停点开始 动态维护一个临时时移缓冲区,这样,用户只能在暂停之后才能有时移操作。 在用户快进到直播点时,可以删除该用户临时的时移緩沖区,用户离开时移 状态;也可以保留时移緩冲区,用户仍然可以使用该緩沖区。
对于当前已有时移缓沖区的大小,是个随直播流动态变化的值,只能在用户接入到直播流时才能得到;并且根据用户接入时是否已有时移緩冲区,
能够判断出服务器支持的时移方式(自动/手动),对于不同的时移模式,客户 端的处理完全不同。
步骤S103、根据时移参数创建并维护直播流的时移进度条。 当请求接入所述直"l番流时,客户端在得到自动时移当前已有时移緩冲区 大小,以直播流的直播点对应的时间为时移进度条的上边界,并根据所述直 播流的直播点对应的时间和当前已有时移緩冲区大小确定所述时移进度条的 下边界,即通过直播点(上边界)减去当前已有时移緩沖区大小得到下边界, 从而创建出一个时移进度条,指示出可时移的范围。
在此时,时移进度条中的当前播放点即为直播流的直播点,对应时移进 度条的上边界。
之后,客户端需要自行维护时移进度条的状态变化在当前已有的时移 緩冲区值的基础上做时间累计,并不断与最大时移緩沖区的值进行比较,如 果累计值已经等于或大于最大时移緩冲区的值,则认为时移緩沖区已经溢出; 时移进度条的上边界总是跟着直播点向前移动;时移緩沖区溢出后,下边界 要和上边界一起随时间平移。
上述时移进度条创建完毕后,开始进行正常播放,并在正常播放直播流 时维护时移进度条。当前的播放点即为直播点,对应为时移进度条的上边界。 如果用户决定开始进行时移操作,则转入步骤S104。
步骤S104、在时移进度条指示的范围内操作。
在时移状态下,客户端可在时移范围内进行时移操作,包括暂停、播放、 停止、快进、快退、定位等操作。
如前所述,在自动时移模式下,客户端可通过暂停、快退或定位进入到 时移状态。
通过上述操作,在时移进度条中的当前播放点不再一定对应直播流的直 播点,假设时移进度条的上边界为tl,在play响应中得到当前播放点的时间 为t2,则当前播放点在时移进度条上与上边界的距离为(tl-12),始终等于 当点播》丈的时间与直4番点之间的时间差。服务器在上述的请求响应中可选择是否携带时移参数,时移参数中最大 时移緩冲区和当前已有时移緩冲区大小都是可选的。客户端得到这些参数后, 可以校准本地的时移参数和进度条,同时维护时移进度条的状态,具体过程
如下:
在时移状态,客户端自行维护时移进度条。例如根据当前时间继续对 时移进度条做时间累计,并不断与最大时移緩冲区进行比较,判断时移缓沖 区是否会溢出;时移进度条的上边界随当前时间(直播点)而移动;緩冲区 溢出前,进度条下边界不变,緩冲区溢出后下边界也要随上边界一起平移; 如果当前处于暂停状态,还需要维护暂停点与时移进度条的位置关系,指示 暂停点在可时移范围内还是外,暂停点与时移进度条的时间关系,以指示是 否能够从暂停点再继续播放;等等。
在上述操作完成后,客户端可以选择回到直播流的直播状态,转入步骤 S105。
步骤S105、返回直播状态,并继续时移进度条。
通过一键到位、快进、定位等方式可返回到直播点。返回到直播状态后, 客户端仍要继续维护时移进度条,方法同步骤S103所述。
需要进一步指出的是,在返回直播状态后,还可以再通过暂停、快退或 定位进入到时移状态,由于时移进度条在返回直播状态后被继续维护,所以 无需再重新创建时移进度条,转入步骤S104。
步骤S106、暂停直播流。
在接入直播流的过程中,获取的时移参数中包含支持时移和最大时移缓 冲区大小,但没有包含当前已有时移緩沖区大小,则服务器支持的是手动时 移,这种情况下,在接入直播后没有时移进度条生成,需要暂停操作才能激 活时移进度条的生成。
客户端在直播状态下发起暂停请求,服务器响应中时移头及其各参数均 为可选。
需要进一步指出的是,根据实际设置,手动时移;漠式下的客户端也可以 在本步骤中进行时移参数的获取,即服务器在本步骤中的暂停请求的响应信息中携带时移参数,从而客户端获取最大时移緩沖区大小的信息,这种获取
参数时间的调整同样属于本发明的保护范围。
步骤S107、根据时移参数创建并维护直播流的时移进度条。 客户端收到暂停响应后,创建时移进度条,同时进入时移状态,在时移
状态,根据最大时移缓沖区的值和本地时间维护其状态例如,在收到暂停 响应时,当前已有时移緩冲区长度为0,从此基础上开始累计,累计到等于或 大于最大时移緩冲区,认为时时移緩冲区溢出;时移进度条的上边界随时间 (直播点)前进,暂停点是时移进度条的一个起始位置,可看作是进度条的 一个参考点,时移緩沖区溢出前,它是进度条的下边界,时移緩冲区溢出后, 随着进度条的平移,它和进度条的距离也随时间在加大。
上述时移进度条创建完毕后,转入步骤S108。
步骤S108、在时移进度条指示的范围内操作。
在时移状态下,客户端可在时移范围内进行时移操作,包括暂停、播放、 停止、快进、快退、定位等操作。
如前所述,在手动时移模式下,则只能通过暂停来进入时移模式,生成 时移进度条。
通过上述操作,在时移进度条中的当前播放点不再一定对应直播流的直 播点,假设时移进度条的上边界为tl,在play响应中得到当前播放点的时间 为t2,则当前播放点在时移进度条上与上边界的距离为(tl-t2),始终等于 当点播放的时间与直播点之间的时间差。
服务器在上述的请求响应中可选择是否携带时移参数,时移参数中最大 时移緩冲区是可选的。客户端得到这些参数后,可以校准本地的时移参数和 进度条,同时维护时移进度条的状态,具体过程如下
在时移状态,客户端自行维护时移进度条。例如根据当前时间继续对 时移进度条做时间累计,并不断与最大时移緩沖区进行比较,判断时移緩沖 区是否会溢出;时移进度条的上边界随当前时间(直播点)而移动;緩冲区 溢出前,进度条下边界不变,緩冲区溢出后下边界也要随上边界一起平移; 如果当前处于暂停状态,还需要维护暂停点与时移进度条的位置关系,指示暂停点在可时移范围内还是外,暂停点与时移进度条的时间关系,以指示是
否能够从暂停点再继续播放;等等。
在上述操作完成后,客户端可以选择回到直播流的直播状态,转入步骤
S109。
步骤S109、返回直播状态,继续维护或删除时移进度条。
恢复到直播状态,可删除时移进度条,下次再暂停之后重新创建,方法 同步骤S107;也可继续维持时移进度条,方法同步骤S108。
在本步骤完成之后,即返回直播状态后,如果用户希望重新进入时移状 态,则根据本步骤中对时移状态条的操作结果,分为以下两种情况
如果本步骤中采用的操作是删除时移进度条时,转入步骤S106;
通过步骤S106的暂停操作激活时移状态条的创建流程,重新创建时移进 度条。
由于在之前的步骤中已经获得过创建时移进度条所需的参数信息,如果 时移参数信息被保留,则本步骤可以直接进入创建时移进度条的流程;如果 未被保留,则客户端在直播状态下发起暂停请求,服务器响应中反馈时移头 及其各参数,用以建立时移进度条。
如果本步骤中采用的操作是继续维护时移进度条时,转入步骤SllO。 步骤SllO、暂停直播流。
通过本步骤进入时移状态,从而可以返回步骤S108,在时移进度条指示 的范围内进行操作。
需要进一步指出的是,根据实际设置,上述步骤中,客户端从服务器接 收的每次消息反馈都可以包含具体的时移参数,用以维护、校对和调整时移 进度条,这同样属于本发明的保护范围。
下面结合附图和实施例,对本发明的具体实施方式
作进一步详细描述
本发明实施例一,通过在RTSP中扩展Time-shift头来传递时移参数的时 移操作方法。
在本实施例中,在RTSP中定义Time-shift头,携带的信息包括是否支持 时移、最大时移緩沖区以及当前已有的緩沖区长度,通过两个参数实现最大时移緩冲区和当前已有时移緩沖区,用在Play或Pause响应中。其语法格 式如下
Time-shift ="Time-shift": parameter CRLF parameter = ";""Max—buff' l*valuel
/";" "Curr—buff" ("=" l*valuel)/ (":""time-type""=" l*time "-"l*time) valuel = l*nDIGIT["."fraction] ; s ( nX),整数) 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 。
下面分别举例i兌明。 (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-200 71108T145010.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的取值范围[O, Max-buf],用户随时可以进入时移状态。在进入时移状态之后,用户允许有定 位、暂停、前进/后退等4喿作,此时Curr-buff为可选项,有这项,客户端则可 用来修正客户端当前緩沖区大小值。
客户端创建时移进度条后,因为时移緩沖区一直跟着直播点,客户端可 以根据初始的已有时移緩冲区的大小,自己做时间累计实时维护进度条的状 态,当已有时移緩冲区大小累计大于或等于最大时移緩沖区时,可认为服务 器的时移緩沖区开始溢出;客户端自己累计时间维护的时移进度条和服务器 侧真正的时移缓沖区可能会有差异,也可能最大时移緩沖区会发生变化,当 用户有如暂停、定位、前进/后退等操作时,在play响应中返回Max-buff和 Curr-buff,客户端可用此值来修正本地的时移参数,呈现出更精确的进度条。
基于上述的time-shift头,判断时移模式后的信令及终端处理流程如下
A、自动时移模式处理流程
假设服务器支持自动时移,最大时移缓冲区为3600秒;通过RTSP的Play 响应获取到时移特性参数;客户端在接入时,已有可用时移緩沖区。
如果客户端不支持时移,则对Play响应中的Time-shift头不做处理;如 果客户端也支持时移,则需要利用时移参数创建并维护时移进度条。图3和 图4分别是自动时移相关信令处理流程和对应的客户端的时移进度条的变化, 结合两图,自动时移模式处理流程如下
步骤S301、请求接入直播流。
客户端在TO时刻发起play请求接入到直播节目,例如,指令内容具体为 Play rttp:〃 example.com/contentl.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秒内进行时移操作。
之后,客户端需要自己维护时移进度条的变化,即可时移的范围随时间 匀速从TO增加到Tl时刻,若时移緩沖区有溢出,则进度条整体要随着直播 点时间平移。
步骤S304、请求暂停直播流。
在T1时刻,用户因某种原因按暂停直播流。需要指出的是,暂停是本发 明所提供的优选实施例,其他可以达到相同效果的操作,如快退、定位等操 作,也属于本发明的保护范围。
步骤S305、接收暂停响应信息。
如接收响应信息为OK Session: XXXX Time—shift : Curr—buffHOOO。 响应中的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、请求接入直播流。
客户端在TO时刻发起play请求接入到直播节目,例如,指令内容具体为 Play rttp:〃 example.com/contentl .3gp。
步骤S502、接收服务器的响应信息,提取时移参数。
月艮务器响应携带Time-shift头,如接收响应信息为200 OK Session : XXXX Time-shift:Max-buff=3600,最大时移緩沖区Max-buff = 3600秒。客 户端根据响应信息中没有携带当前已有时移大小Curr-buff,可判断出服务器 支持的是手动时移,所以进入直播状态而不需要维护时移进度条。
步骤S503、直播状态下播放。
步骤S504、请求暂停直播流。
直到Tl时刻,客户端发起暂停请求。
步骤S505、接收暂停响应信息。
如接收响应信息为OK Session: XXXX Time—shift : Curr—buff=0。 响应中返回的Curr-buff为可选项。 步骤S506、根据时移参数创建时移进度条。
客户端已知是手动时移,则在收到暂停响应后自行创建一条时移进度条, 起始的Curr-buff为0,同时进入时移状态,并开始维护时移进度条,进度条 累计增加,上边界随时间移动,当增加到大于或等于时移最大缓冲区时,认 为緩冲区溢出,对应的进度条整体随时间平移。显示暂停点和时移进度条的时间关系,以提示用户是否可以从暂停点开始继续播放。
步骤S507、在时移状态下,在时移进度条范围内进行才喿作。
在T2时刻,/人暂停点恢复播;改或进行其它定位4喿作,在响应中返回
Curr-buffHOOO,客户端根据此参数对本地的时移参数和进度条进行校正,继
续维护时移进度条。
步骤S508、请求返回直播流。
在T3时刻,客户端请求返回直播。
步骤S509、接收响应信息。
如接收响应信息为OK Session: XXXX Time—shift: Curr—buff=1800, 在play响应中,返回Curr-buf—1800秒。
步骤S510、收到响应后,客户端取消时移进度条,时移进度条长度变为
本发明实施例二,通过SDP获取到是否支持时移以及时移最大緩沖区的 时移使用方法。
为此需要在SDP中扩展一个属性Timeshift,该属性只能应用在会话层, 其格式如下
a = Timeshift:〈Timeshift—Maxbuff>
Timeshift—Maxbuff = 1*value; s
value = l*n DIGIT ["."fraction]; s ( n〉0,整数)
其中Timeshift—Maxbuff以秒为单位,具体含义为:
(1 )如果SDP中没有a = timeshift这一属性或指示a = timeshift:O,则表 示不支持时移业务
(2 ) 如果 SDP 指示 a = timeshift:<Timeshift_Maxbuff>,且 Timeshift—Maxbuff !=0 ,则表示支持时移,时移的最大緩沖区为 Timeshift—Maxbuff秒。
为方使j兌明,举例》。下 v=0o=ghost 2890844526 2890842807 IN IP4 192.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=0 0
a=range:npt=now-〃表示是直播节目
a=timeshift:3600 〃支持时移,时移最大緩沖区3600s
〃a=timeshift:0 〃不支持时移
客户端通过SDP获取到是否支持时移和最大时移緩冲区,仍需使用实施 例1中RTSP的扩展头time-shift中的Curr-buff项,Max-buff项可不用。
基于上述扩展Timeshift属性的SDP指令,判断时移模式后的信令及终端 处理流程与上述的本发明实施例一类似,不再另行详述。
如果SDP和RTSP发生矛盾,以最新获得的参数为准。如SDPfile中给 出了最大时移緩沖区的值,在RTSP的Play请求中也给出了该值,但二者不 一致,因为RTSP比SDP file在时间上更新,所以以RTSP为准;客户端已经 通过SDP获取到时移緩沖区最大值,接入时RTSP中没有携带time-shift头, 则客户端认为服务器支持时移,但需要用户暂停后才能触发时移进度条的创 建。
如图7所示,为本发明实施例三, 一种时移操作装置的结构示意图,包

参数获取模块1 ,用于获取直播流的时移参数;
进度条生成模块2,用于根据参数获取模块1获得的时移参数创建直播流 的时移进度条;
时移操作模块3,用于在进度条生成模块2生成的时移进度条指示的范围 内进行操作。其中,参数获取模块l,具体包括
请求发送子模块11,用于发送接入直播流的请求; 参数获取子模块12,用于接收请求发送子模块11发送请求的响应信息, 并获取时移参数;
模式判断子模块13,用于根据参数获取子模块12获取的时移参数判断时 移模式。
其中,参数获取模块l,还包括
文件下载子模块14,用于在接入直播流之前下载SDP文件。 其中,进度条生成模块2,具体包括 激活子模块21,用于激活生成时移进度条的操作; 第一维护子模块22,用于维护时移进度条。 其中,时移操作模块3,具体包括
第二维护子模块31,用于在进行时移操作后,根据时移参数维护时移进 度条。
删除子模块32,用于在手动时移模式下,返回直播流后,删除时移进度

本发明实施例的技术方案具有以下优点,因为采用了一种时移使用方法 和装置,从而,将服务器所支持的时移能力及时移緩沖区当前状态通知客户 端,使客户端能够将时移进度条及其实时状态变化呈现给用户,达到了加强 用户时移操作的易用性、准确性,改善用户使用体验的效果。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本 发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬 件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技 术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体 现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使 得一台终端设备(可以是手机,个人计算机,服务器,或者网络设备等) 执行本发明各个实施例所述的方法。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进 和润饰,这些改进和润饰也应视本发明的保护范围。
权利要求
1、一种时移操作方法,其特征在于,包括以下步骤获取直播流的时移参数;根据所述时移参数创建并维护所述直播流的时移进度条;在所述时移进度条指示的范围内进行操作。
2、 如权利要求1所述时移操作方法,其特征在于,所述获取直播流的时 移参数,具体为通过实时控制协议RTSP请求接入所述直播流,并接收携带时移参数的响 应,获取所述直播流的时移参数;或,通过请求会话描述协议SDP,并接收携带时移参数的所述SDP的响应, 获取所述直播流的时移参数;或,在所述请求接入直播流之前,获取包含所述直播流的时移参数的SDP文件。
3、 如权利要求1所述时移操作方法,其特征在于,所述时移参数,具体 包括是否时移、最大时移緩冲区大小和当前已有时移緩冲区大小;或, 是否时移、最大时移緩冲区大小。
4、 如权利要求3所述时移操作方法,其特征在于, 在接入直播流时,服务器返回的所述时移参数包含当前已有时移緩冲区大小时,为自动时移模式;在接入直播流时,服务器返回的所述时移参数不包含当前已有时移緩沖 区大小时,为手动时移^^莫式。
5、 如权利要求4所述时移操作方法,其特征在于,当所述时移操作方法 为自动时移模式时,所述根据时移参数创建所述直播流的时移进度条,具体 为当请求接入所述直播流时,以所述直播流的直播点对应的时间为所述时 移进度条的上边界,并根据所述直播流的直播点对应的时间和所述时移参数 中当前已有时移緩冲区大小确定所述时移进度条的下边界,由此创建所述直播流的时移进度条。
6、 如权利要求5所述时移操作方法,其特征在于,在所述时移进度条中, 当前播放点为所述直播流的直播点,对应所述时移进度条的上边界,所述维 护直播流的时移进度条,具体为比较所述时移进度条大小和所述最大时移緩冲区大小; 当所述时移进度条大小小于所述最大时移緩沖区大小时,所述下边界不变,所述上边界随所述直播流的直播点移动;或,当所述时移进度条大小大于或等于所述最大时移緩沖区大小时,所述下边界和所述上边界随所述直播流的直播点移动,以保证所述时移进度条的下边界与上边界之间的大小等于所述最大时移緩冲区大小。
7、 如权利要求4所述时移操作方法,其特征在于,当所述时移操作方法 为手动时移模式时,所述根据时移参数创建并维护所述直播流的时移进度条, 具体为暂停所述直播流;创建并维护所述直播流的时移进度条。
8、 如权利要求7所述时移操作方法,其特征在于,所述创建并维护直播 流的时移进度条,具体为以所述暂停点为所述时移进度条的下边界,以所述直播流的直播点为所 述时移进度条的上边界,生成所述时移进度条;比较所述时移进度条大小和所述最大时移緩冲区大小;当所述时移进度条大小小于所述最大时移緩冲区大小时,所述下边界不 变,所述上边界随所述直播流的直播点移动;或,当所述时移进度条大小大于或等于所述最大时移緩沖区大小时,所述下 边界和所述上边界随所述直播流的直播点移动,以保证所述时移进度条的下 边界与上边界之间的大小等于所述最大时移缓沖区大小。
9、 如权利要求1所述时移操作方法,其特征在于,所述在时移进度条指 示的范围内进行操作,具体为在所述时移进度条指示的范围内,进行暂停、播放、停止、快进、快退、定位、或返回直播状态中的至少一种操作。
10、 如权利要求9所述时移操作方法,其特征在于,所述在所述时移进度条指示的范围内进行"t喿作,还包括 继续维护所述时移进度条。
11、 如权利要求IO所述时移操作方法,其特征在于,所述继续维护所述 时移进度条,具体包括比较所述时移进度条大小和所述最大时移缓冲区大小; 当所述时移进度条大小小于所述最大时移緩沖区大小时,所述时移进度 条的下边界不变,所述时移进度条的上边界随所述直播流的直播点移动;或, 当所述时移进度条大小大于或等于所述最大时移緩沖区大小时,所述时 移进度条的下边界和上边界随所述直播流的直播点移动,以保证所述时移进 度条的下边界与上边界之间的大小等于所述最大时移緩冲区大小。
12、 如权利要求11所述时移操作方法,其特征在于,所述继续维护所述 时移进度条,还包括维护当前播放点在所述时移进度条中与当前播放点在直 播流中时间的对应关系,具体为保持所述当前播放点与所述时移进度条的上边界之间的时间差等于所述 当前播放点所对应的时间与所述直播流的直播点所对应的时间之间的时间 差。
13、 如权利要求4或9所述时移操作方法,其特征在于, 当所述时移操作方法为自动时移模式时,所述返回直播状态,具体为 返回直播流的直播点,继续维护所述时移进度条;当所述时移操作方法为手动时移模式时,所述返回直播状态,具体为返回直播流的直播点,继续维护或删除所述时移进度条。
14、 如权利要求13所述时移操作方法,其特征在于,当所述时移操作方 法为自动时移模式时,所述返回直播状态,之后还包括在所述继续维护的时移进度条指示的范围内进行操作;
15、 如权利要求13所述时移操作方法,其特征在于,当所述时移操作方 法为手动时移模式时,所述返回直播状态,之后还包括当所述返回直播状态为继续维护所述时移进度条时,暂停所述直播流, 在所述继续维护的时移进度条指示的范围内进行操作;或,当所述返回直播状态为删除所述时移进度条时,暂停所述直播流,重新 创建时移进度条,在所述重新创建的时移进度条指示的范围内进行操作。
16、 一种时移纟喿作装置,其特征在于,包括 参数获取模块,用于获取直播流的时移参数;进度条生成模块,用于根据所述参数获取模块获得的时移参数创建所述 直播流的时移进度条;时移操作模块,用于在所述进度条生成模块生成的时移进度条指示的范 围内进行操作。
17、 如权利要求16所述时移操作装置,其特征在于,所述参数获取模块, 具体包括请求发送子模块,用于发送接入直播流的请求;参数获取子模块,用于接收携带时移参数的响应信息,并获取时移参数; 模式判断子模块,用于根据所述参数获取子模块获取的时移参数判断时 移模式。
18、 如权利要求16所述时移操作装置,其特征在于,所述参数获取模块, 还包括文件下载子模块,用于在接入直播流之前下载SDP文件。
19、 如权利要求16所述时移操作装置,其特征在于,所述进度条生成模 块,具体包括激活子模块,用于激活生成时移进度条的操作; 第一维护子^t块,用于维护所述时移进度条。
20、 如权利要求16所述时移操作装置,其特征在于,所述时移操作模块, 具体包括第二维护子模块,用于在进行时移操作后,根据时移参数维护所述时移进度条;删除子模块,用于在手动时移模式下,返回所述直播流的直播状态后, 删除所述时移进度条。
全文摘要
本发明实施例公开了一种时移操作方法和装置。所述一种时移操作方法,包括以下步骤获取直播流的时移参数;根据所述时移参数创建并维护所述直播流的时移进度条;在所述时移进度条指示的范围内进行操作。通过应用本发明,使服务器所支持的时移能力及时移缓冲区当前状态通知客户端,使客户端能够将时移进度条及其实时状态变化呈现给用户,达到了加强用户时移操作的易用性、准确性,改善用户使用体验的效果。
文档编号H04N5/00GK101552796SQ20081009023
公开日2009年10月7日 申请日期2008年3月31日 优先权日2008年3月31日
发明者冯江平, 尹月静, 毅 张, 许志勇 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1