专利名称:实时流媒体协议会话状态控制的方法、装置和系统的制作方法
技术领域:
本发明涉及流媒体应用领域,尤其涉及一种实时流々某体协议(Real Time Streaming Protocol, RTSP)会话状态控制的方法、装置和系统。
背景技术:
流媒体业务是从Internet上发展起来的一种多媒体应用,指使用流 (Streaming)方式在网络上传输的多4某体文件,包括音频、3见频和动画等。流 蜂体传输技术的主要特点是以流(streaming)的形式进行多媒体数据的传输, 把连续的影像和声音信息经过压缩处理后放到网络服务器上,终端在播放前并 不需要下载整个媒体文件,而是在将緩存区中已经收到的信息进行播放的同时, 将多媒体文件的剩余部分持续不断地从服务器下载到终端,即"边下载,边播 放"。这样就避免了用户在收看或收听媒体流的时候要花费一段时间把完整的文 件下载到终端,可以给用户带来"实时播放,,的业务感知体验。
根据节目源方式的不同,流媒体节目可以分为存贮(stored)节目和直播 (live)节目;存贮节目一般来自存贮文件,通常流媒体业务的点播业务采用 这种方式来提供,以存贮方式提供的节目,终端在插ji:中可以进行定位、快进、 快退等操作;而直播节目一般来自直播源,如现场直播或者广播电视等,这种 节目通常是不可回退的。
实时流i某体协议(RTSP)是互联网工程任务组(the Internet Engineering Task Force , IETF )定义的一种对流々某体进行实时控制的协议。该协议采用客 户端/服务器(C/S) ^t式,用于在终端和服务器端间建立和协商实时流会话, 并提供了对流媒体的播放进行各种控制命令,主要包括如下命令
SETUP:让服务器给流分配资源,启动RTSP连接;
PLAY:启动SETUP分配流的数据传输;
PAUSE:临时停止流,而不释放服务器资源;
TEARDOWN: 释放流的资源,RTSP连接停止。
RTSP Range头字段可以用在Play, Pause, Set卯等才喿作中,定义了这些操作可以对应的时间范围,包括起始部分和结束部分,比如Range:叩t-10-15表 示从内容的第10秒插-;故到第15秒;可以有3种表示方式
(1)电影禾口电一见工禾呈师十办会(The Society of Motion Picture and Television Engineers, SMPTE)时间(smpte): 比如,Range: smpte=0: 10: 22-0: 15: 45;
(2 )正常才番力欠时间(Normal Play Time, NPT )( npt):比力口 Range: npt=10—15;
(3)绝对时间(clock):比如Range: clock=19960213T143205Z-。 分组交换流业务(Packet-switched Streaming Service, PSS )是第三代 合作伙伴计划(3rd Generation Partnership Project, 3GPP)定义的基于RTSP 实现的用来提供流々某体业务的协议。该协议基本沿用了上述Internet流i某体的 技术,同样可以提供点播和直播内容。PSS针对移动网络的情况对RTSP进行了 一部分修改适配。
PSS时移业务是指为PSS单播方式的直播内容提供时移业务特征,包括2种 场景
1、 手动时移
通过用户暂停操作触发时移,服务器在终端触发暂停时动态维护一个临时 时移緩沖区,用户只能在暂停时间点以后进行时移操作。在用户快进到直播点 时,可以删除该用户临时的时移緩冲区,用户离开时移状态;也可以保留时移 緩冲区,用户仍然可以使用该緩冲区。
2、 自动时移
多个用户共享一个时移緩冲区,用户可以对接入以前的内容进行时移操作。 在用户快进到直播点时,可以继续使用时移緩冲区,也可以离开时移状态。
现有的PSS/RTSP提供2种状态直播状态和点播状态,在这2种状态下, 终端能够进行不同的操作
1、直播状态
在直播状态下,不能进行定位、快进、快退操作,在时间轴上只有一个叩t 值当前直播点now。终端可以进行暂停操作,但恢复时只能恢复到当前直播点。 直播状态下终端需要禁止用户的定位、快进、快退操作,以提醒用户当前的内容是一个直播内容,同时避免没有意义的RTSP交互消息以及带来较差的用户体验。
2、点播状态
在点播状态下,节目有起始点和结束点,终端可以在节目的起始和结束范 围内进行暂停、定位、快进、快退操作。点播状态下终端需要使能用户的定位、 快进、快退操作。
终端和服务器间的RTSP会话状态需要完全同步,并由服务器根据节目源判 断并通知终端修改状态,终端需要根据PSS/RTSP会话状态允许或者是禁止某些 用户的操作。
现有技术中,在PSS/RTSP会话所对应的会话协议(Session Description Protocol, SDP)的时间范围Range字段中不指定结束时间就表示这个会话是一 个直播会话。也就是说,目前PSS/RTSP提供的是一种在PSS/RTSP会话一开始 就静态指定PSS/RTSP会话状态的方法。
在实现本发明的过程中,发明人发现现有技术中存在以下问题 当用户由直播业务进入点播业务时,终端需要将原先在直播状态禁止的定 位、快进、快退操作修改为激活,但现有技术不能提供直播状态到点播状态的 会话状态转换,导致用户在使用点播业务时不能进行定位、快进、快退操作; 当用户由点播业务返回到直播业务时,终端需要禁止定位、快进、快退操作, 但现有技术不能提供点播状态到直播状态的会话状态转换,导致用户在使用直 播业务时仍然可以进行定位、快进、快退操作,增加了不必要的交互信令以及 较差的用户体^r。
发明内容
本发明实施例要解决的技术问题在于提供一种RTSP会话状态控制的方法、 装置和系统,能够实现服务器对终端的RTSP会话状态的动态控制,增强用户体验。
为实现上述目的,本发明实施例是通过以下技术方案实现的 一方面,本发明实施例提供了一种RTSP会话状态控制的方法,包括以下步接收服务器发出的RTSP会话状态指示消息; 根据所述指示消息对终端进行RTSP会话状态控制。 一方面,本发明实施例提供了一种RTSP会话状态控制的装置,包括 接收指示单元,用于接收服务器发出的RTSP会话状态指示消息; 会话状态控制单元,用于根据所述指示消息对终端进行RTSP会话状态控制。 另一方面,本发明实施例提供了一种终端,包括RTSP会话状态控制装置, 用于向服务器发送RTSP命令请求;接收服务器发出的RTSP会话状态指示消息; 并根据所述指示消息进行RTSP会话状态控制。
再一方面,本发明实施例提供了一种RTSP会话状态控制的系统,包括终端、 服务器,所述终端包括RTSP会话状态控制装置,用于向服务器发送RTSP命令 请求;接收服务器发出的RTSP会话状态指示消息;并根据所述指示消息进行RTSP 会话状态控制;所述服务器,用于向终端发出RTSP会话状态指示消息。
再一方面,本发明实施例还提供了一种RTSP会话状态控制的系统,包括终 端、服务器和RTSP会话状态控制装置,所述终端,用于向服务器发送RTSP命 令请求;所述l良务器,用于向RTSP会话状态控制装置发出RTSP会话状态指示 消息;所述RTSP会话状态控制装置,用于接收月良务器发出的RTSP会话状态指 示消息;并根据所述指示消息对终端进行RTSP会话状态控制。
在本发明实施例中,通过接收服务器发出的RTSP会话状态指示消息,根据 所述指示消息对终端进行RTSP会话状态控制,使得终端在进行直播业务与点播 业务转换时,能够动态使能或禁止定位、快进、快退操作;具体而言,当用户 由直播业务进入点播业务时,终端可以使能原先禁止的用户定位、快进、快退 操作,使用户可以进行相关的点播操作;当用户由点播业务返回到直播业务时, 终端可以禁止原先4吏能的用户定位、快进、快退搡作,避免了不必要的RTSP交 互信令,因此增强了用户体^r。
图1为本发明实施例一提供的RTSP会话状态控制的方法流程图2为本发明实施例二提供的RTSP会话状态控制的方法详细流程图3为本发明实施例方法中保持直播状态的流程图;图4为本发明实施例方法中由点播状态转换为直播状态的一种流程图5为本发明实施例方法中由点播状态转换为直播状态的另一种流程图6为本发明实施例方法中由直播状态转换为点播状态的流程图7为本发明实施例方法中保持点播状态的一种流程图8为本发明实施例方法中保持点播状态的另一种^^呈图9为本发明实施例三使用clock表示时间在手动时移、暂停后恢复场景
的实施方法流程图IO为本发明实施例三使用clock表示时间在自动时移、暂停后恢复场景
的实施方法流程图11为本发明实施例三使用clock表示时间在自动时移、后向定位场景的
实施方法流程图12为本发明实施例三使用clock表示时间在自动时移、前向定位超出时 移緩冲区场景的实施方法流程图13为本发明实施例三使用clock表示时间在前向快进到达时移緩冲区尾 部场景的实施方法流程图14为本发明实施例四使用npt表示时间在手动时移、暂停后恢复场景的 实施方法流程图15为本发明实施例使用npt表示时间在自动时移、暂停后恢复场景的实 施方法流禾呈图16为本发明实施例四使用npt表示时间在自动时移、后向定位场景的实 施方法流程图17为本发明实施例四使用npt表示时间在自动时移、前向定位超出时移 緩冲区场景的实施方法流程图18为本发明实施例四使用叩t表示时间在前向快进到达时移緩冲区尾部 场景的实施方法流程图19为本发明实施例五提供的RTSP会话状态控制的装置的结构图20为本发明实施例六提供的终端及实施例七提供的RTSP会话状态控制 的系统的框架图;图21为本发明实施例八提供的RTSP会话状态控制的系统的框架图。
具体实施例方式
参见图1 ,为本发明实施例一提供的RTSP会话状态控制的方法流程图,包 括步骤
101,接收服务器发出的RTSP会话状态指示消息;
服务器可以响应终端向服务器发送的RTSP命令请求向终端发出RTSP会话 状态指示消息,例如响应终端发送的PLAY搡作请求;服务器也可以主动向终端 发出RTSP会话状态指示消息,例如在终端当前点播流已经到达尾部时,向终端 发出通知操作。
所述RTSP会话状态指示消息中可以携带有RTST Range头字段,也可以不 携带RTST Range头字段。
102,根据所述指示消息对终端进行RTSP会话状态控制。 在RTSP/PSS会话状态中,该步骤具体可以为
判断服务器发出的RTSP会话状态指示消息中是否携带有RTSP Range头字 段,如果携带有RTSP Range头字段,根据RTSP Range头字段指示的时间对终 端进行RTSP会话状态控制;如果未携带有RTSP Range头字段,保持终端当前 的RTSP会话状态。
参见图2,为本发明实施例二提供的较详细的RTSP会话状态控制的方法流 程图,包括步骤
201, 向服务器发送RTSP命令请求;
RTSP Range头字段可以使用在Play, Pause, Setup等命令中,当然在RTSP 命令请求中也可以省略RTSP Range头字段。
终端在向服务器发送RTSP命令请求之前,根据RTSP/PSS会话的SDP描述 可以知道当前会话状态是直播还是点播,此时用户可以对终端进行相应的操作。
202, 接收服务器发出的RTSP会话状态指示消息; 具体说明同步骤101。
203,判断所述指示消息中是否携带有RTSP Range头字段;
204,如果未携带有RTSP Range头字段,保持终端当前的RTSP会话状态;205,如果携带有RTSP Range头字段,判断所携带的RTSP Range头字段指 示的时间是否小于当前直播点时间;
206,如果所述指示消息中的RTSP Range头字^:指示的时间大于或等于当 前直播点时间,且终端当前的RTSP会话状态为直播状态,则终端的RTSP会话 状态保持为直播状态;
这种情形可以参见附图3所示
1、 终端根据RTSP/PSS会话的SDP描述知道当前会话状态为直4番状态;
2、 终端向服务器发起Play或者Pause操作等RTSP命令请求;
3、 如果服务器需要指示终端仍然保持在直播状态,向终端发出相应的RTSP 会话状态指示消息,在指示消息中可以不携带Range头字段;若携带了RTSP Range头字^殳,其所指示的时间大于或等于当前直^t番点时间;
4、 终端根据指示消息中没有携带RTSP Range头字段,或携带的RTSP Range 头字段所指示的时间大于或等于当前直播点时间判断仍然保持当前的直播状 态。
207,如果所述指示消息中的RTSP Range头字IS:指示的时间大于或等于当 前直播点时间,且终端当前的RTSP会话状态为点^"状态,则终端的RTSP会话 状态由点播状态转换为直播状态;
这种情形可以参见附图4及附图5所示,其中,附图4为终端首先发起命 令请求的情形;附图5为服务器主动向终端发起通知操作的情形。
对于附图4,方法步骤如下
1、 终端根据RTSP/PSS会话的SDP描述知道当前会话状态为点播状态;
2、 终端向服务器发起Play或者Pause操作等RTSP命令请求;
3、 如果服务器需要指示终端由点播状态转换为直播状态,则在相应的RTSP 会话状态指示消息中携带RTSP Range头字段,所指示的时间大于或等于当前直 才番点时间;
4、 终端根据指示消息中RTSP Range头字段指示的时间大于或等于当前直 播点时间判断由点播状态转换为直播状态。
对于附图5,方法步骤如下1、 终端根据RTSP/PSS会话的SDP描述知道当前会话状态为点播状态;
2、 在当前点播流已经到达尾部,服务器向终端发出通知指示消息,如果服 务器需要指示终端由点播状态转换为直播状态,则在相应的通知指示消息中携 带RTSP Range头字段,所指示的时间大于或等于当前直播点时间;
3、 终端根据指示消息中RTSP Range头字段指示的时间大于或等于当前直 播点时间判断由点播状态转换为直播状态。
208,如果所述指示消息中的RTSP Range头字段指示的时间小于当前直播 点时间,且终端当前的RTSP会话状态为直播状态,则终端的RTSP会话状态由 直播状态转换为点播状态;
这种情形可以参见附图6所示
1、 终端根据RTSP/PSS会话的SDP描述知道当前会话状态为直播状态;
2、 终端向服务器发起Play或者Pause操作等RTSP命令请求;
3、 如果服务器需要指示终端由直播状态转换为点播状态,则在相应的指示 消息中携带RTSP Range头字段,所指示的时间小于当前直播点时间;
4、 终端根据指示消息中RTSP Range头字段指示的时间小于当前直播点时 间判断由直播状态转换为点播状态。
209,如果所述指示消息中的RTSP Range头字_^指示的时间小于当前直播 点时间,且终端当前的RTSP会话状态为点播状态,则终端的RTSP会话状态保 持为点播状态。
这种情形可以参见附图7及附图8所示,其中,附图7为终端首先发起命 令请求的情形;附图8为服务器主动向终端发起通知操:作的情形。 对于附图7,方法步骤如下
1、 终端根据RTSP/PSS会话的SDP描述知道当前会话状态为点播状态;
2、 终端向服务器发起Play或者Pause搡作等RTSP命令请求;
3、 如果服务器需要指示终端仍然保持在点播状态,向终端发出相应的指示 消息,在指示消息中可以不携带Range头字段;若携带了 RTSP Range头字段, 其所指示的时间小于当前直播点时间;
4、 终端根据指示消息中没有携带RTSP Range头字段,或携带的RTSP Range头字段所指示的时间小于当前直播点时间判断仍然保持当前的点播状态。
对于附图8,方法步骤如下
1、 终端根据RTSP/PSS会话的SDP描述知道当前会话状态为点播状态;
2、 在当前点播流已经到达尾部,服务器向终端发出通知指示消息,如果服 务器需要指示终端仍然保持在点^番状态,在指示消息中可以不携带Range头字 段;若携带了RTSP Range头字段,其所指示的时间小于当前直播点时间;
3、 终端根据指示消息中没有携带RTSP Range头字段,或携带的RTSP Range 头字段所指示的时间小于当前直播点时间判断仍然4呆持当前的点播状态。
在上述步骤205至步骤209中,RTSP Range头字段指示的时间可以使用 clock、 npt或smpte表示,其中clock为绝对时间表示方式,叩t或smpte为相 对时间表示方式。如果RTSP Range头字殺 使用npt/smpte相对时间表示,在 npt/smpte等于now值时表示Range头字段指示的时间等于当前直播点时间;在 npt/smpte等于0值时表示Range头字段指示的时间为参考点时间。
在RTSP Range头字^:中可以仅指定开始时间,不指定结束时间,终端是才艮 据指示消息中所携带的RTSP Range头字段的开始时间进行RTSP会话状态控制。
本发明实施例二所迷的RTSP会话状态控制的方法,通过对接收的服务器发 出的RTSP会话状态指示消息中是否携带有RTSP Range头字段,以及所携带的 RTSP Range头字段指示的时间与当前直播点时间进行大小比较后,对终端进行 RTSP会话状态控制,使得终端在进行直播业务与点播业务转换时,能够动态使 能或禁止定位、快进、快退操作;具体而言,当用户由直播业务进入点播业务 时,终端可以使能原先禁止的用户定位、快进、快退操作,使用户可以进行相 关的点播操作;当用户由点播业务返回到直播业务时,终端可以禁止原先使能 的用户定位、快进、快退操作,避免了不必要的RTSP交互信令,增强了用户体 验。
下面以PSS时移业务各种场景下的具体实施对本发明实施例的方法进行说 明,如图9至图13所示,为本发明实施例三使用clock表示时间的具体实施方 法流禾呈图
图9所示为手动时移,暂停后恢复的场景,具体实施过程如下注tl/t2/t3是终端发送命令请求的时间,Tl/T2/T3是终端收到应答的时 间,Tl/T2/T3总是大于U/t2/t3。
1、 tl时刻终端初始接入一个PSS直播节目,向服务器发起一个Play操作, 请求开始播放直播节目;
2、 Tl时刻终端接收服务器响应Play请求的消息,如果服务器需要指示终 端仍然保持在直播状态,在响应消息中可以不携带Range头字段,如果不携带 Range头字段,终端根据PSS会话的SDP描述可以知道这次PSS会话是一个直播 会话,绛端保持原状态不变;如果在响应消息中携带有Range头字段,服务器 通过clock指示一个大于或等于当前直播时间Tl的值,例如T1,终端根据收到 的clock值等于T1判断仍保持当前的直播会话状态,此时终端禁止用户的前进 /后退操作;
3、 t2时刻终端向服务器发起Pause操作请求,此时将触发时移,服务器在 终端发起Pause操作请求的t2时刻维护一个临时时移緩冲区,用户只能在Pause 时间点之后进行时移操作;
4、 T2时刻终端收到服务器响应Pause请求的消息,在响应消息中携带有 Range头字段,clock值指示为一个比当前终端clock值T2小的值,比如可以 是t2。终端根据收到的clock值t2小于T2判断当前会话的状态由直播转为点 播状态,此时终端使能用户的前进/后退操作,同时服务器从t2时间点开始记 录当前的直播流到PSS会话的时移緩冲区;
5、 t3时刻终端向服务器发起重新播放操作;
6、 如果t2时刻未出时移緩冲区,服务器将返回t2时间给终端;如果t2 时间超出时移緩冲区,服务器将返回时移緩冲区的开始时间给终端,在本实施 例场景中,t2时刻未出时移緩冲区,服务器返回t2时间给终端,终端将由t2 时刻开始重新播放节目,此时的PSS会话仍保持为点播状态。
图10所示为自动时移,暂停后恢复的场景,具体实施过程如下 注tl/t2/t3是终端发送命令请求的时间,Tl/T2/T3是终端收到应答的时 间,Tl/T2/T3总是大于U/t2/t3。
1、 tl时刻终端初始接入一个PSS直播节目,向服务器发起一个Play操作,请求开始播放直播节目;
2、 Tl时刻终端接收服务器响应Play请求的消息,服务器提供自动时移, to为当前时移緩冲区的起始时间点,即用户可以时移到当前直播点之前的内容, 如果服务器需要指示终端由直播状态转换为点播状态,需要在响应Play消息中 携带Range头字革史,通过clock指示一个比当前直4番点时间Tl小的值,比如tl, 终端根据收到的clock值tl小于Tl判断当前会话是一个点播,此时终端可以 使能用户的后退操作;
3、 t2时刻终端向服务器发起Pause操作请求;
4、 T2时刻终端收到服务器响应Pause请求的消息,在响应消息中可以携带 Range头字段,也可以不携带,此时终端状态维持在点播状态;
5 、 13时刻终端向服务器发起重新播放操作;
6、如果t2时刻未出时移緩冲区,服务器将返回t2时间给终端;如果t2 时间超出时移緩冲区,服务器将返回时移緩冲区的开始时间给终端,在本实施 例场景中,t2时刻未出时移緩沖区,服务器返回t2时间给终端,终端将由t2 时刻开始重新播放节目,此时的PSS会话仍保持为点播状态。
图ll所示为自动时移,后向定位(SEEK)的场景,具体实施过程如下 注U /13是终端发送命令请求的时间,T1 /T 3是终端收到应答的时间,T1 /T 3 总是大于tl/t3, t2为后向定位时间,T2为时移緩冲区的开始时间。
1、 tl时刻终端初始接入一个PSS直播节目,向服务器发起一个Play操作, 请求开始播放直播节目;
2、 Tl时刻终端接收服务器响应Play请求的消息,服务器可以提供自动时 移,t0为当前时移緩冲区的起始时间点,即用户可以时移到当前直播点之前的 内容,如果服务器需要指示终端由直播状态转换为点播状态,需要在响应Play 消息中携带Range头字段,通过clock指示一个比当前直播点时间Tl小的值, 比如tl,终端根据收到的clock值tl小于Tl判断当前会话是一个点播,此时 终端可以使能用户的后退操作;
3、 t3时刻终端向服务器发起后向Seek操作请求,请求位置到t2;
4、 如果t2时刻未出时移緩冲区,服务器将返回t2时间给终端;如果t2时间超出时移緩冲区,服务器将返回时移緩冲区的开始时间给终端,在本实施
例场景中,t2时刻已出时移緩冲区,服务器返回时移緩冲区的开始时间T2给终 端,终端将由T2时刻开始播放节目,此时的PSS会话仍保持为点播状态。
图12所示为自动时移,前向定位(SEEK)超出时移緩冲区的场景,具体实 施过程如下
注tl/t3/t4是终端发送命令请求的时间,Tl/T3/T4是终端收到应答的时 间,Tl/T3/T4总是大于U/t3/t4。
1、 tl时刻终端初始接入一个PSS直播节目,向服务器发起一个Play操作, 请求开始播放直播节目;
2、 Tl时刻终端接收服务器响应Play请求的消息,服务器提供自动时移,
10为当前时移緩冲区的起始时间点,即用户可以时移到当前直播点之前的内容, 如果服务器需要指示终端由直播状态转换为点播状态,需要在响应Play消息中 携带Range头字段,通过clock指示一个比当前直4务点时间Tl小的值,比如tl, 终端根据收到的clock值tl小于Tl判断当前会话是一个点播,此时终端可以 使能用户的后退操作;
3、 t3时刻终端向服务器发起后向Seek操作请求,请求位置到从t2;
4、 如果t2时间未出时移緩冲区,服务器返回请求的播放位置t2给终端, 终端将由t2时刻开始播放节目,此时的PSS会话仍保持为点播状态;
5、 t4时刻终端向服务器发起前向Seek操作请求,请求位置到t5, t5位置 已超过当前直播位置t4;
6、 如果服务器仍然要求终端保持在点播状态,则服务器向终端返回的播放 时间小于终端当前直播点时间T4,比如t4;如果服务器要求终端转移到直播状 态,则服务器向终端返回的播放时间应该大于等于终端的当前直播点时间T4, 比如T4。
图13所示为前向快进到达时移緩沖区尾部的场景,具体实施过程如下 注tl是终端发送命令请求的时间,Tl/T2是终端收到应答的时间,Tl总 是大于tl。
1、 tl时刻终端向服务器发起一个快进操作,请求以2倍速度播放节目内容,终端初始处于点^"状态;
2、 Tl时刻终端接收服务器响应快进操作请求的消息,服务器指示终端以2 倍正常速度播放,此时终端仍保持在点播状态;
3、 t2时刻服务器检测到时移緩冲区的节目内容已经播放到尾部,也即播放 已经赶上了当前直播内容时,服务器向终端发送到达时移緩冲区尾部通知,例 如可以通过使用Announce命令携带end 。f stream事件指示;如果服务器仍然 要求终端保持在点播状态,则在指示消息中可以不携带Range头字段,或在所 携带有Range头字段中通过clock指示一个小于当前直播时间T2的值,比如t2, 终端根据收到的clock值判断仍保持当前的点播会话状态,此时用户仍可以进 行后退操作;如果服务器要求终端由点播状态转换为直播状态,需要在指示消 息中携带Range头字段,通过clock指示一个大于或等于当前直播点时间T2的 值,比如T2,终端根据收到的clock值T2判断当前会话是一个直播,此时终端 将禁止用户"前进/后退操作。
如图14至图18所示,为本发明实施例四使用npt表示时间在PSS时移各 种场景下的具体实施方法流程图。由于npt是一个相对时间,需要一个时间参 考点;对手动时移,时间参考点可以是第一次暂停点的时间;对于自动时移, 用户接入时就可以时移到当前直播点之前的内容,参考点需由服务器在第一次 叩t消息中指定给终端,时间参考点可以是终端接入之前的某个时间点,比如当 前时移緩冲区的起始时间点。
图14所示为手动时移,暂停后恢复的场景,具体实施过程如下 注tl/t2/t3是终端发送命令请求的时间,Tl/T2/T3是终端收到应答的时 间,Tl/T2/T3总是大于tl/t2/t3。
1、 tl时刻终端初始接入一个PSS直播节目,向服务器发起一个Play操作, 请求开始播放直播节目;
2、 Tl时刻终端接收服务器响应Play请求的消息,如果服务器需要指示终 端仍然保持在直播状态,在响应消息中可以不携带Range头字段,如果不携带 Range头字段,终端根据PSS会话的SDP描述可以知道这次PSS会话是一个直播 会话,终端保持原状态不变;如果在响应消息中携带有Range头字段,服务器通过npt指示为now值,终端根据收到的叩t值为now值判断仍保持当前的直 播会话状态,此时终端禁止用户的前进/后退操作;
3、 t2时刻终端向服务器发起Pause操作请求,此时将触发时移,服务器在 终端发起Pause操作请求的t2时刻维护一个临时时移援冲区,t2为时移緩冲区 的初始时刻,作为时间参考点t2时刻的npt=0,用户只能在t2时刻之后进行时 移操作;
4 、 T2时刻终端收到月良务器响应Pause请求的消息,在响应消息中携带有 Range头字段,npt值指示为一个比当前终端now值小的值,比如可以是0。终 端根据收到的npt值为0判断当前^^舌的状态由直播转为点播状态,此时终端 使能用户的前进/后退"^喿作,同时服务器从t2时间点开始记录当前的直播流到 PSS会话的时移緩沖区;
5、 t3时刻终端向服务器发起重新播放操作;
6、 如果t2时刻未出时移緩冲区,服务器将返回叩t-0给终端;如果t2时 间超出时移緩冲区,服务器将返回时移緩冲区的开始位置和时间参考点的相对 时间给终端,在本实施例场景中,t2时刻已出时移緩冲区,服务器返回npt-nptl 给终端,终端将从时移缓冲区的开始位置开始播放节目,此时的PSS会话仍保 持为点播状态。
图15所示为自动时移,暂停后恢复的场景,具体实施过禾呈如下 注tl/t2/t3是终端发送命令请求的时间,Tl/T2/T3是终端收到应答的时 间,Tl/T2/T3总是大于tl/t2/t3。
1、 tl时刻终端初始接入一个PSS直播节目,向服务器发起一个Play操作, 请求开始播放直播节目;
2、 Tl时刻终端接收服务器响应Play请求的消息,服务器提供自动时移, 本实施例的时间参考点为当前时移緩沖区的起始时间点t0,如果服务器需要指 示终端由直播状态转换为点播状态,需要在响应Play消息中携带Range头字段, 通过npt指示一个比当前直播点时间小的值,比如nptl,终端根据收到的 叩t-叩tl判断当前会话是一个点播,此时终端可以使能用户的后退操作;
3、 t2时刻终端向服务器发起Pause操作请求;4、 T2时刻终端收到力艮务器响应Pause请求的消息,在响应消息中可以携带 Range头字l爻,也可以不携带,此时终端状态维持在点#~状态;
5、 t3时刻终端向服务器发起重新播放操作;
6、 如果npt2未出时移緩冲区,服务器将返回npt2时间给终端;如果npt2 时间超出时移缓冲区,服务器将返回时移緩冲区的开始位置和时间参考点的相 对时间给终端,在本实施例场景中,叩t2未出时移緩冲区,服务器返回卯t2给 终端,终端将从npt2开始重新播放节目,此时的PSS会话仍保持为点播状态。
图16所示为自动时移,后向定位(SEEK)的场景,具体实施过程如下 注11 /13是终端发送命令请求的时间,T1 /T3是终端收到应答的时间,Tl /T3 总是大于tl/t3, t2为后向定位时间,T2为时移緩冲区的开始时间。
1、 tl时刻终端初始接入一个PSS直播节目,向服务器发起一个Play操作, 请求开始播放直播节目;
2、 Tl时刻终端接收服务器响应Play请求的消息,服务器提供自动时移, 本实施例的时间参考点为当前时移緩沖区的起始时间点t0,服务器在响应Play 消息中携带Range头字段,通过npt指示一个比now值小的值,比如nptl,终 端根据收到的npt=nptl判断当前会话是一个点播,此时终端可以使能用户的后 退操作;
3、 t3时刻终端向服务器发起后向Seek操作请求,请求位置到npt2;
4、 如果npt2未出时移緩沖区,服务器将返回npt2时间给终端;如果叩t2 时间超出时移缓冲区,服务器将返回时移緩冲区的开始时间和时间参考点的相 对时间给终端,在本实施例场景中,npt2时刻未出时移緩沖区,服务器返回叩t2 时间给终端,j冬端将从npt2时间开始播放节目,此时的PSS会话仍保持为点播 状态。
图17所示为自动时移,前向定位(SEEK)超出时移緩冲区的场景,具体实 施过程如下
注tl/t3/t4是终端发送命令请求的时间,Tl/T3/T4是终端收到应答的时 间,Tl/T3/T4总是大于tl/t3/t4。
1、 tl时刻终端初始接入一个PSS直播节目,向服务器发起一个Play操作,请求开始播放直播节目;
2、 Tl时刻终端接收服务器响应Play请求的消息,服务器提供自动时移, 本实施例的时间参考点为当前时移緩冲区的起始时间点10,服务器通过npt指 示一个比now值小的值,比如叩tl,终端根据收到的npt值nptl判断当前会话 是一个点播,此时终端可以使能用户的后退操作;
3、 t3时刻终端向服务器发起后向Seek操作请求,请求位置到npt2;
4、 如果npt2未出时移緩冲区,服务器返回请求的播》丈位置npt2给终端, 终端将从叩t2开始播放节目,此时的PSS会话仍保持为点播状态;
5、 t4时刻终端向服务器发起前向Seek操作请求,请求位置到叩t5, npt5 位置已超过当前直播位置npt4;
6、 如果服务器仍然要求终端保持在点播状态,则服务器向终端返回的播放 时间小于终端当前直播点时间now,比如npt4;如果服务器要求终端转移到直 播状态,则.服务器向终端返回叩t-now。
图18所示为前向快进到达时移緩沖区尾部的场景,具体实施过程如下 注tl是终端发送命令请求的时间,Tl/T2是终端收到应答的时间,Tl总 是大于tl。
1、 tl时刻终端向服务器发起一个快进操作,请求以2倍速度播放节目内容, 终端初始处于点^"状态; .2、 Tl时刻终端接收服务器响应快进操作请求的消息,服务器指示终端以2 倍正常速度播放,此时终端仍保持在点播状态,此时指示消息中可以不携带 Range头字段,或在所携带有Range头字段中通过npt = nptl (小于now值)的值, 终端判断仍保持当前的点4番会话状态;
3、 t2时刻服务器检测到时移緩冲区的节目内容已经播放到尾部,也即播放 已经赶上了当前直播内容时,服务器向终端发送到达时移缓冲区尾部通知,例 如可以通过使用Announce命令携带end of stream事件指示;如果服务器仍然 要求终端保持在点播状态,则在指示消息中可以不携带Range头字段,或在所 携带有Range头字段中通过npt指示一个小于now值的值,比如npt2,终端根 据收到的npt=npt2值判断仍保持当前的点纟番会话状态,此时用户仍可以进行后退操作;如果服务器要求终端由点播状态转换为直播状态,需要在指示消息中
携带Range头字段,通过指示叩t-now值,终端判断当前会话是一个直播,此 时终端将禁止用户的前进/后退操作。
以上是以在PSS时移各种场景下的具体实施过程,分别使用clock和npt 表示RTSP Range头字段的时间,对本发明实施例RTSP会话状态控制的方法进 行了说明,可以理解的是,本发明实施例的方法并不限于PSS时移状态的情形。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是 可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读 存储介质中,所述存储介质可以是只读存储器、磁盘或光盘等。
对应于本发明实施例的方法,如图19所示,为本发明实施例五提供的RTSP 会话状态控制的装置的结构图,包括
接收指示单元910,用于接收服务器发出的RTSP会话状态指示消息;
会话状态控制单元920,用于根据所述指示消息对终端进行实时流媒体协议 会话状态控制。
所述会话状态控制单元920包括
时间范围判断比较模块921,用于判断服务器发出的指示消息中是否携带有 实时流媒体协议时间范围头字段,以及对所携带的实时流媒体协议时间范围头 字段指示的时间与当前直播点时间进行大小比较;
直播状态保持模块922,用于在服务器发出的指示消息中未携带有实时流媒 体协议时间范围头字段,或者所携带的实时流媒体协议时间范围头字段指示的 时间大于或等于当前直播点时间时,保持终端当前的实时流媒体协议直播状态;
点播状态保持模块923,用于在服务器发出的指示消息中未携带有实时流媒 体协议时间范围头字^a,或者所携带的实时流々某体协议时间范围头字段指示的 时间小于当前直播点时间时,保持终端当前的实时流々某体协议点播状态;
点播转直播模块924,用于在服务器发出的指示消息中所携带的实时流媒体 协议时间范围头字段指示的时间大于或等于当前直播点时间时,转换终端当前 的实时流々某体协议点播状态为直播状态;
直播转点播模块925,用于在服务器发出的指示消息中所携带的实时流媒体协议时间范围头字段指示的时间小于当前直播点时间时,转换终端当前的实时 流媒体协议直播状态为点纟番状态。
本发明实施例五所述的RTSP会话状态控制的装置,可以集成在终端,也可
以与终端分离独立存在,通过接收指示单元910接收服务器发出的RTSP会话状 态指示消息,由时间范围判断比较模块921对服务器发出的指示消息中是否携 带有实时流媒体协议时间范围头字段进行判断,以及对所携带的实时流媒体协 议时间范围头字段指示的时间与当前直播点时间大小进行比较,分别由直播状 态保持模块922、点播状态保持模块923、点播转直播模块924和直播转点播模 块925,对终端的RTSP会话状态进行动态控制,当用户由直播业务转入点播业 务时,终端可以使能原先禁止的用户定位、快进、快退操作,使用户可以进行 相应的时移操作;当用户由点播业务返回到直^"业务时,终端可以禁止原先使 能的用户定位、快进、快退操作,避免了不必要的RTSP信令交换,增强了用户 体验。
如果上述的RTSP会话状态控制装置集成在终端,如图20所示,本发明实 施例六提供了一种终端200,包括RTSP会话状态控制装置900,用于向服务器 发送RTSP命令请求;接收服务器发出的RTSP会话状态指示消息;并根据所述 指示消息进行RTSP会话状态控制。
在本发明实施例六提供的终端基础上,如图20所示,为本发明实施例七提 供的RTSP会话状态控制的系统的框架图,包括终端200和服务器300,所述终 端200包括RTSP会话状态控制装置900,用于向服务器300发送RTSP命令请求; 接收服务器发出的RTSP会话状态指示消息;并根据所述指示消息进行RTSP会 话状态控制;所述服务器300,用于向终端200发出RTSP会话状态指示消息。
如杲上迷的RTSP会话状态控制装置与终端分离独立存在,本发明实施例八 提供了另一种RTSP会话状态控制的系统,如图21所示,包括终端IOO、服务器 300和RTSP会话状态控制装置900,所迷终端100,用于向服务器发送RTSP命 令请求;所述服务器300,用于向RTSP会话状态控制装置发出RTSP会话状态指 示消息;所述RTSP会话状态控制装置900,用于接收服务器发出的RTSP会话状 态指示消息;并才艮据所述指示消息对终端进行RTSP会话状态控制。本发明实施例是通过扩展现有RTSP Range头字段携带的时间范围的定义来 实现服务器对终端状态的动态控制,使得终端在进行直播业务与点播业务转换 时,能够动态使能或禁止定位、快进、快退操作,避免了不必要的RTSP交互信 令,增强了用户体验。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发 明可借助软件加必需的通用石更件平台的方式来实现,当然也可以通过石更件, 但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案 本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来, 该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台终端 设备(可以是手机,个人计算机,服务器,或者网络设备等)执行本发明各 个实施例所述的方法。
当然,本发明实施例还可有多种,例如可以通过扩展RTSP其它类型的头字 段来实现服务器对终端状态的控制,在不背离本发明实施例精神及其实质的情
但这些相应的改变和变形都应归属于本发明实施例所附权利要求的保护范围。
权利要求
1、一种实时流媒体协议会话状态控制的方法,其特征在于,包括以下步骤接收服务器发出的实时流媒体协议会话状态指示消息;根据所述指示消息对终端进行实时流媒体协议会话状态控制。
2、 根据权利要求1所述的实时流媒体协议会话状态控制的方法,其特征在 于,根据所述指示消息对终端进行实时流媒体协议会话状态控制的步骤具体为判断所述指示消息中是否携带有实时流媒体协议时间范围头字段;如果未携带有实时流媒体协议时间范围头字段,则保持终端当前的实时流 媒体协议会话状态;如果携带有实时流媒体协议时间范围头字段,对所携带的实时流媒体协议 时间范围头字段指示的时间与当前直播点时间进行大小比较如果所述指示消息中的实时流々某体协议时间范围头字4殳指示的时间大于或 等于当前直播点时间,且终端当前的实时流々某体协议会话状态为直播状态,贝,J 终端的实时流媒体协议会话状态保持为直播状态;如果所述指示消息中的实时流媒体协议时间范围头字段指示的时间大于或 等于当前直播点时间,且终端当前的实时流々某体协议^^舌状态为点播状态,贝'J 终端的实时流媒体协议会话状态由点播状态转换为直播状态;如果所述指示消息中的实时流+某体协议时间范围头字^:指示的时间小于当 前直播点时间,且终端当前的实时流媒体协议会话状态为直播状态,则终端的 实时流媒体协议会话状态由直播状态转换为点播状态;如果所述指示消息中的实时流々某体协议时间范围头字段指示的时间小于当 前直播点时间,且终端当前的实时流媒体协议会话状态为点^"状态,则终端的 实时流媒体协议会话状态保持为点播状态。
3、 根据权利要求2所述的实时流媒体协议会话状态控制的方法,其特征在 于,所述指示消息中的实时流媒体协议时间范围头字殺:使用绝对时间、正常播 放时间或电影和电视工程师协会时间表示。
4、 根据权利要求2所述的实时流媒体协议会话状态控制的方法,其特征在 于,所述点播状态是指分组交换流业务的时移状态。
5、 根据权利要求l所述的实时流媒体协议会话状态控制的方法,其特征在于,在接收服务器发出的实时流媒体协议会话状态指示消息之前还包括步骤 向服务器发送实时流媒体协议命令请求。
6、 一种实时流々某体协议会话状态控制的装置,其特征在于,包括 接收指示单元,用于接收服务器发出的实时流々某体协议会话状态指示消息; 会话状态控制单元,用于根据所述指示消息对终端进行实时流媒体协议会话状态控制。
7、 根据权利要求6所述的实时流媒体协议会话状态控制的装置,其特征在 于,所述会话状态控制单元包括时间范围判断比4交模块,用于判断服务器发出的指示消息中是否携带有实 时流媒体协议时间范围头字段,以及对所携带的实时流媒体协议时间范围头字 段指示的时间与当前直#"点时间进行大小比较;直播状态保持模块,用于在服务器发出的指示消息中未携带有实时流媒体 协议时间范围头字段,或者所携带的实时流々某体协议时间范围头字段指示的时 间大于或等于当前直播点时间时,保持终端当前的实时流媒体协议直播状态;点播状态保持模块,用于在服务器发出的指示消息中未携带有实时流媒体 协议时间范围头字段,或者所携带的实时流媒体协议时间范围头字段指示的时 间小于当前直播点时间时,保持终端当前的实时流々某体协议点播状态;点播转直播模块,用于在服务器发出的指示消息中所携带的实时流媒体协 议时间范围头字段指示的时间大于或等于当前直播点时间时,转换终端当前的 实时流媒体协议点播状态为直播状态;直播转点播模块,用于在服务器发出的指示消息中所携带的实时流媒体协 议时间范围头字段指示的时间小于当前直播点时间时,转换终端当前的实时流 媒体协议直播状态为点播状态。
8、 根据权利要求6或7所述的实时流媒体协议会话状态控制的装置,其特 征在于,所述装置集成在终端,或者与终端分离独立存在。
9、 一种终端,其特征在于,包括实时流々某体协议会话状态控制装置,用于 向服务器发送实时流媒体协议命令请求;接收服务器发出的实时流媒体协议会 话状态指示消息;并根据所述指示消息进行实时流媒体协议会话状态控制。
10、 一种实时流i某体协议会话状态控制的系统,其特征在于,包括终端和 服务器,所述终端包括实时流媒体协议会话状态控制装置,用于向服务器发送实时流媒体协议命令请求;接收服务器发出的实时流媒体协议会话状态指示消息; 并根据所述指示消息进行实时流媒体协议会话状态控制;所述服务器,用于向终端发出实时流媒体协议会话状态指示消息。
11、 一种实时流媒体协议会话状态控制的系统,其特征在于,包括终端、 服务器和实时流i某体协议会话状态控制装置,所述终端,用于向服务器发送实时流媒体协议命令请求;所述服务器,用于向实时流媒体协议会话状态控制装置发出实时流媒体协议会话状态指示消息;所述实时流媒体协议会话状态控制装置,用于接收服务器发出的实时流媒体协议会话状态指示消息;并根据所述指示消息对终端进行实时流媒体协议会话状态控制。
全文摘要
本发明的实施例公开了一种实时流媒体协议(Real Time StreamingProtocol,RTSP)会话状态控制的方法、装置和系统,涉及流媒体应用领域,为实现服务器对终端的RTSP会话状态的动态控制,增强用户体验而发明。所述方法包括接收服务器发出的RTSP会话状态指示消息;根据所述指示消息对终端进行RTSP会话状态控制。所述装置包括接收指示单元和会话状态控制单元;所述系统包括终端和服务器,所述终端还包括RTSP会话状态控制装置。本发明的实施例通过是扩展现有RTSP Range头字段携带的时间范围的定义来实现服务器对终端状态的动态控制。
文档编号H04L29/06GK101552684SQ200810089429
公开日2009年10月7日 申请日期2008年3月31日 优先权日2008年3月31日
发明者毅 张 申请人:华为技术有限公司