Iptv机顶盒的直播时移处理方法

文档序号:7969920阅读:2194来源:国知局
专利名称:Iptv机顶盒的直播时移处理方法
技术领域
本发明涉及IPTV机顶盒技术领域,特别是涉及一种IPTV机顶盒的直播时移处理方法。
背景技术
IPTVdntemet Protocol Television,IP电视)即交互式网络电视,是以电信宽带网络为传输通道,以电视机为播放终端,向家庭用户提供包括电视内容在内的多种交互式服务的技术,可以通过普通电视机+网络机顶盒的方式收看。IPTV的主要特点是在其交互性,将主动权交给了用户,由用户选择节目和播放方式,而直播时移是IPTV的一项重要的特色功能。直播时移是基于电视直播的一种个性化服务,与传统数字电视相比,直播时移让用户在观看直播电视节目的时候,能够实现对节目的暂停和后退,对于已经播出的节目,在时移服务器支持的直播时移播放范围内,能够实现从任意时间点回放和各种倍数的快进快退。在时移服务器支持的直播时移播放范围内,用户不再受固定的节目时间表的约束,实现对节目播出的完全控制。但是,目前IPTV机顶盒播放终端在实现直播时移功能时存在以下两个问题(1)由于IPTV系统采用的是基于时移服务器端缓存的直播时移体统,IPTV机顶盒播放终端进入时移状态需与时移服务器交互获得媒体数据,且无法直接由媒体数据获知直播时移播放范围及当前时移播放内容的原始直播时间,导致IPTV机顶盒播放终端在时移状态下无法实时显示当前时移的播放进度。(2) IPTV直播时移快进快退模式下,IPTV时移服务器以关键帧的方式发送媒体数据,而媒体数据封装成TS (Transport Stream,传送流)数据包之后,由RTP (Real-time Transport Protocol,实时传输协议)承载,每个RTP的包(1500字节)最大可容纳7个TS 包(188字节)。由于平台侧没有单独对快进快退模式下的关键帧媒体数据进行封装,所以包含视频帧起始信息的TS包不一定就是一个RTP包的第一个TS包,同样,包含视频帧结尾数据的TS包也不一定是一个RTP包的最后一个TS包,如果将这样的RTP包数据送给硬件解码器,将会导致无法解码或者解码后的图像出现马赛克。

发明内容
本发明的目的是为了克服上述背景技术的不足,提供一种IPTV机顶盒的直播时移处理方法,使IPTV机顶盒播放终端在直播时移过程中实时反映当前时移播放进度,并在直播时移的快进快退模式下有效消除了图像马赛克的现象,提升了用户的使用体验。本发明提供的IPTV机顶盒的直播时移处理方法,包括以下步骤A、在直播时移模式下,IPTV机顶盒播放终端与时移服务器通过实时流传输协议RTSP进行交互,获取直播时移播放时间范围,计算并显示当前时移播放内容的原始直播时间和当前时移播放进度;B、 在直播时移的快进快退模式下,IPTV机顶盒播放终端剥离时移服务器下发的媒体数据中的填充数据,仅将有效的媒体数据送入硬件解码器。 在上述技术方案中,步骤A中所述获取直播时移播放时间范围的过程如下IPTV 机顶盒播放终端向时移服务器发送获取直播时移播放时间范围参数的请求报文,时移服务器返回包括时间范围字段的响应报文,IPTV机顶盒播放终端从所述响应报文的时间范围字段获取直播时移播放时间范围参数。在上述技术方案中,步骤A中所述IPTV机顶盒播放终端记录进入直播时移时刻的本地系统时间点Tl和当前时移所在点的本地系统时间T2,计算出本地时移持续时间ΔΤ, 再结合时移播放速度V,来计算当前时移播放内容的原始直播时间T。在上述技术方案中,所述本地时移持续时间ΔΤ = T2-T1,所述当前时移播放内容的原始直播时间 τ = Τ1+ΔΤ*ν = Τ1+(Τ2-Τ1)*ν。在上述技术方案中,在快进模式下,所述时移播放速度V为正值,在快退模式下V 为负值,在暂停模式下V为零。在上述技术方案中,步骤A中根据所述直播时移播放时间范围和当前时移播放内容的原始直播时间T,计算并显示当前时移播放进度。在上述技术方案中,步骤B包括以下步骤B1、在直播时移的快进快退模式下, IPTV机顶盒播放终端解析时移服务器下发的媒体数据中实时传输协议RTP包的包头信息, 判定所述RTP包中包含关键帧的帧头、帧尾还是帧数据,并进行标记;B2、对标记为包含关键帧帧头/帧尾的RTP包进行分析,搜索该RTP包中的传送流TS数据,确定并标记包含关键帧帧头/帧尾的TS包的位置;B3、剥离除关键帧外的填充TS数据,将有效媒体数据送入硬件解码器。在上述技术方案中,步骤Bl中所述RTP包的包头由12个标准包头字节和8个扩展包头字节构成,其中,第19字节的前2比特为00时,表示所述包头后面的TS数据中包含关键帧帧头;第19字节的前2比特为01时,表示所述包头后面的数据是关键帧帧数据;第 19字节的前2比特为10时,表示所述包头后面的TS数据中包含关键帧帧尾。在上述技术方案中,步骤B2中,对于标记为包含关键帧帧头的RTP包,若在其中的某个TS包中搜索到序列参数集层SPS起始码,则确定该TS包中包含关键帧帧头,该RTP包中自该TS包开始为关键帧数据,记录该TS包的包头位置;对于标记为包含关键帧帧尾的 RTP包,若在其中的TS包中搜索到帧起始码,则确定该TS包的前一个TS包为关键帧帧尾, 记录该TS包的包头位置。在上述技术方案中,步骤B3按以下三种情况执行(1)对于包含关键帧帧头的RTP包,将该RTP包中从序列参数集层SPS所在的TS 包开始的所有媒体数据送给硬件解码器;(2)对于包含关键帧帧尾的RTP包,将该RTP包中关键帧帧尾所在的TS包及其之前的所有媒体数据送给硬件解码器;(3)对于仅包含关键帧帧数据的RTP包,将该RTP包中的所有媒体数据送给硬件解码器。与现有技术相比,本发明的优点如下本发明使IPTV机顶盒播放终端在直播时移过程中如实反映当前时移播放进度, 并在直播时移快进快退模式下有效地消除了图像马赛克的现象,提升了用户的使用体验。


图1是本发明实施例中播放终端更新时移播放进度的流程图。图2是本发明实施例中播放终端与时移服务器交互获取直播时移播放范围的流程图。图3是本发明实施例中播放终端更新当前时移显示时间的流程图。图4是本发明实施例中播放终端自时移服务器下发RTP包中搜索获取关键帧数据的流程图。
具体实施例方式下面结合附图及实施例对本发明作进一步的详细描述。本发明实施例提供的IPTV机顶盒的直播时移处理方法,包括以下步骤A、在直播时移模式下,IPTV机顶盒播放终端与时移服务器通过RTSP (Real Time Streaming Protocol实时流传输协议)进行交互,获取直播时移播放时间范围,计算并显示当前时移播放内容的原始直播时间T和当前时移播放进度。参见图1所示,步骤A的具体流程如下步骤101 在直播时移模式下,IPTV机顶盒播放终端通过与时移服务器进行RTSP 协议交互,获取直播时移播放时间范围。步骤102 记录时移播放时长,计算并显示当前时移播放内容的原始直播时间 IPTV机顶盒播放终端记录进入直播时移时刻的本地系统时间点Tl和当前时移所在点的本地系统时间T2,计算出本地时移持续时间ΔΤ = T2-T1,再结合时移播放速度V,来计算当前时移播放内容的原始直播时间T :Τ = Τ1+ΔΤ*ν = T1+(T2-T1)*V,在快进模式下,V为正值,在快退模式下V为负值,在暂停模式下V为零。步骤103 根据直播时移播放时间范围及当前时移播放内容的原始直播时间,计算并显示直播时移播放进度。参见图2所示,获取直播时移播放时间范围的具体过程如下步骤201 =IPTV机顶盒播放终端向时移服务器发送获取直播时移播放时间范围参数的请求报文;步骤202 时移服务器返回包括时间范围字段的响应报文;步骤203 =IPTV机顶盒播放终端从收到的响应报文的时间范围字段获取直播时移播放时间范围参数。在本发明实施例中,IPTV机顶盒播放终端直播时移播放范围的获取需要借助 RTSP协议的GET_PARAMETER报文,从时移服务器获取时间范围参数,时间范围参数为GET_ PARAMETER 关键字段 x_Timeshift_Range (电信扩展)。例如x_Timeshift_Range :clock =20100318T021915. 84Z-20100318T031915. 84Z,即格林威治时间 2010 年 3 月 18 日 2 时 19分15. 84秒至2010年3月18日3时19分15. 84秒,可知时移播放范围为一小时。参见图3所示,计算并显示当前时移播放内容的原始直播时间T的具体流程如下步骤301 记录进入直播时移时刻的本地系统时间点Tl (例如3:19),作为时移开始时间 stStartTime。步骤302 将时移开始时间(即3:19)作为初始值赋予当前时移显示时间 currentTime。步骤303 判断IPTV机顶盒播放终端是否处于直播时移模式,如果是,则转到步骤 304 ;否则,转到步骤307。步骤304:时移持续一段时间后,获取当前时移所在点的本地系统时间 StTimeNow,即 T2 (例如 3:00) 步骤305 计算出本地时移持续时间ΔΤ:当前时移所在点的本地系统时间 StTimeNow (即T2)和时移开始时间点stStartTime (即Tl)的差值differentTime,为本地时移持续时间ΔΤ,即ΔΤ = T2-T1 (即3:00-3:19)。步骤306 再结合时移播放速度V,来计算当前时移播放内容的原始直播时间T,当前时移显示时间currentTime+ = (differentTime*时移播放速度),即T = Τ1+ΔΤ*ν = Tl+ (Τ2-Τ1) *V,在快进模式下,V为正值,在快退模式下V为负值,例如2倍速快退,则原始直播时间T = 3:19+(3:00-3:19)*(-2) = 2:41,在暂停模式下V为零。根据直播时移播放时间范围及当前时移播放内容的原始直播时间Τ,计算并显示直播时移播放进度。步骤307 返回直播时移的当前时间。B、在直播时移的快进快退模式下,IPTV机顶盒播放终端剥离时移服务器下发的媒体数据中的填充数据,仅将有效的媒体数据送入硬件解码器。步骤B的具体流程如下Bi、在直播时移的快进快退模式下,IPTV机顶盒播放终端解析时移服务器下发的媒体数据中RTP包的包头信息,判定RTP包中包含关键帧的帧头、帧尾还是帧数据,并进行标记。在快进快退中时移服务器下发的媒体数据由RTP承载,而RTP包头由20byte构成,前12byte是标准RTP头(参见RFC1889的定义),后Sbyte是由平台自定义的扩展RTP 头,其中第19byte的前2bit的含义如下00 表示该包头后面的TS数据中包含关键帧帧头;01 表示该包头后面的TS数据是关键帧帧数据;10 表示该包头后面的TS数据中包含关键帧帧尾。B2、对标记为包含关键帧帧头/帧尾的RTP包进行分析,搜索该RTP包中的TS数据,确定并标记包含关键帧帧头/帧尾的TS包的位置。对于标记为包含关键帧帧头的RTP 包,若在其中的某个TS包中搜索到SPS(Sequence Parameter Sets序列参数集层)起始码,则确定该TS包中包含关键帧帧头,该RTP包中自该TS包开始为关键帧数据,记录该 TS包的包头位置;对于标记为包含关键帧帧尾的RTP包,若在其中的某个TS包中搜索到 Slice (帧)起始码,则确定该TS包的前一个TS包中包含关键帧帧尾,记录该TS包的包头位置。对于H. 264编码来说(IPTV常用H. 264编码),需要找到序列参数集SPS才能解码,序列参数集后面跟的是图像参数集,然后才是关键帧帧头。TS数据包中的起始码由起始码前缀(3bytes或者4bytes)和起始码值(Ibytes)组成。当在TS数据包里找到起始码前缀0x00 00 01 (或者0x00 00 00 01),并且后面紧跟的起始码值的后5bit为0x07,则找到了 SPS,也就找到了关键帧帧头。当在TS数据包里找到起始码前缀0x00 00 01 (或者0x00 00 00 01),并且后面紧跟的起始码值的5bit为0x01则表示一个废帧的开始,而一个废帧的开始代表上一个关键帧的结束,也就找到了关键帧的结尾。B3、剥离除关键帧外的填充TS数据,将有效媒体数据送入硬件解码器,按以下三种情况执行(1)对于包含关键帧帧头的RTP包,将该RTP包中从序列参数集层SPS所在的TS 包开始的所有媒体数据送给硬件解码器;(2)对于包含关键帧帧尾的RTP包,将该RTP包中关键帧帧尾所在的TS包及其之前的所有媒体数据送给硬件解码器;(3)对于仅包含关键帧帧数据的RTP包,将该RTP包中的所有媒体数据送给硬件解码器。参见图4所示,播放终端从时移服务器下发的RTP包中搜索获取关键帧数据的流程如下步骤401 接收一个RTP包。步骤402 解析并判断RTP包中第19byte的前2bit为00、01还是10,如果是00 (表示此RTP包中包含H. 264关键帧帧头),则转到步骤403 ;如果是01 (表示此RTP包中包含 H. 264关键帧帧数据),则转到步骤405 ;如果是10 (表示此RTP包中包含H. 264关键帧帧尾),则转到步骤406。步骤403 查找H. 264压缩码流的关键帧帧头,记录包含序列参数集层SPS的TS包包头位置。步骤404 将包含关键帧帧头的RTP包中从从序列参数集层SPS所在的TS包开始的媒体数据送给硬件解码器。步骤405 对仅包含关键帧帧数据的RTP包,将该RTP包中的全部媒体数据送给硬件解码器。步骤406 查找H. 264压缩码流的关键帧帧尾,记录包含关键帧帧尾的TS包包头位置。步骤407 对包含关键帧帧尾的RTP包,将该RTP包中关键帧帧尾所在的TS包之前的所有媒体数据送给硬件解码器。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。
权利要求
1.一种IPTV机顶盒的直播时移处理方法,其特征在于包括以下步骤A、在直播时移模式下,IPTV机顶盒播放终端与时移服务器通过实时流传输协议RTSP 进行交互,获取直播时移播放时间范围,计算并显示当前时移播放内容的原始直播时间和当前时移播放进度;B、在直播时移的快进快退模式下,IPTV机顶盒播放终端剥离时移服务器下发的媒体数据中的填充数据,仅将有效的媒体数据送入硬件解码器。
2.如权利要求1所述的IPTV机顶盒的直播时移处理方法,其特征在于步骤A中所述获取直播时移播放时间范围的过程如下=IPTV机顶盒播放终端向时移服务器发送获取直播时移播放时间范围参数的请求报文,时移服务器返回包括时间范围字段的响应报文, IPTV机顶盒播放终端从所述响应报文的时间范围字段获取直播时移播放时间范围参数。
3.如权利要求2所述的IPTV机顶盒的直播时移处理方法,其特征在于步骤A中所述 IPTV机顶盒播放终端记录进入直播时移时刻的本地系统时间点Tl和当前时移所在点的本地系统时间T2,计算出本地时移持续时间ΔΤ,再结合时移播放速度V,来计算当前时移播放内容的原始直播时间T。
4.如权利要求3所述的IPTV机顶盒的直播时移处理方法,其特征在于所述本地时移持续时间ΔΤ = T2-T1,所述当前时移播放内容的原始直播时间T = Τ1+ΔΤ*ν = T1+(T2-T1)*V。
5.如权利要求4所述的IPTV机顶盒的直播时移处理方法,其特征在于在快进模式下,所述时移播放速度V为正值,在快退模式下V为负值,在暂停模式下V为零。
6.如权利要求4所述的IPTV机顶盒的直播时移处理方法,其特征在于步骤A中根据所述直播时移播放时间范围和当前时移播放内容的原始直播时间T,计算并显示当前时移播放进度。
7.如权利要求1至6任一项所述的IPTV机顶盒的直播时移处理方法,其特征在于步骤B包括以下步骤Bi、在直播时移的快进快退模式下,IPTV机顶盒播放终端解析时移服务器下发的媒体数据中实时传输协议RTP包的包头信息,判定所述RTP包中包含关键帧的帧头、帧尾还是帧数据,并进行标记;B2、对标记为包含关键帧帧头/帧尾的RTP包进行分析,搜索该RTP包中的传送流TS 数据,确定并标记包含关键帧帧头/帧尾的TS包的位置;B3、剥离除关键帧外的填充TS数据,将有效媒体数据送入硬件解码器。
8.如权利要求7所述的IPTV机顶盒的直播时移处理方法,其特征在于步骤Bl中所述RTP包的包头由12个标准包头字节和8个扩展包头字节构成,第19字节的前2比特为 OO时,表示所述包头后面的TS数据中包含关键帧帧头;第19字节的前2比特为01时,表示所述包头后面的数据是关键帧帧数据;第19字节的前2比特为10时,表示所述包头后面的TS数据中包含关键帧帧尾。
9.如权利要求8所述的IPTV机顶盒的直播时移处理方法,其特征在于步骤B2中,对于标记为包含关键帧帧头的RTP包,若在其中的某个TS包中搜索到序列参数集层SPS起始码,则确定该TS包包含关键帧帧头,该RTP包中自该TS包开始为关键帧数据,记录该TS包的包头位置;对于标记为包含关键帧帧尾的RTP包,若在TS包中搜索到帧起始码,则确定该TS包的前一个TS包为关键帧帧尾,记录该TS包的包头位置。
10.如权利要求9所述的IPTV机顶盒的直播时移处理方法,其特征在于步骤B3按以下三种情况执行(1)对于包含关键帧帧头的RTP包,将该RTP包中从序列参数集层SPS所在的TS包开始的所有媒体数据送给硬件解码器;(2)对于包含关键帧帧尾的RTP包,将该RTP包中关键帧帧尾所在的TS包及其之前的所有媒体数据送给硬件解码器;(3)对于仅包含关键帧帧数据的RTP包,将该RTP包中的所有媒体数据送给硬件解码 器。
全文摘要
本发明公开了一种IPTV机顶盒的直播时移处理方法,包括步骤在直播时移模式下,IPTV机顶盒播放终端与时移服务器通过实时流传输协议RTSP进行交互,获取直播时移播放时间范围,计算并显示当前时移播放内容的原始直播时间和当前时移播放进度;在直播时移的快进快退模式下,IPTV机顶盒播放终端剥离时移服务器下发的媒体数据中的填充数据,仅将有效的媒体数据送入硬件解码器。本发明使IPTV机顶盒播放终端在直播时移过程中如实反映当前时移播放进度,并在直播时移快进快退模式下有效地消除了图像马赛克的现象,提升了用户的使用体验。
文档编号H04N21/6437GK102355605SQ20111035549
公开日2012年2月15日 申请日期2011年11月11日 优先权日2011年11月11日
发明者周琴, 姚玲, 姚静, 石艳 申请人:烽火通信科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1