实现传输流时间映射的方法、装置及系统的制作方法

文档序号:7682751阅读:282来源:国知局
专利名称:实现传输流时间映射的方法、装置及系统的制作方法
技术领域
本发明涉及运动图4象专家组(Moving Picture Experts Group, MPEG)音 视频处理技术领域,尤其涉及实现MPEG2传输流时间映射的方法、装置及系统。
背景技术
MPEG2传输流(Transport Stream, TS )格式是在MPEG2标准的系统部 分(ISO/IEC 13818-1 )进行规范定义的,该标准描述了如何将视频、音频以 及其他数据的基本流组合成一个或多个适合于传送的码流规范,即ISO/正C 13818-1是以一见频和音频的广泛应用为目的而制定的。
图1为现有技术中MPEG2传输流系统的简化示意图,音频和视频等数 字信号经过压缩编码各自形成基本流(Elementary Stream, ES ),这个ES不 能直接存储或传送,还必须将其传送进特定的打包器(打包器也称为子系统), 把ES按一定的格式分成段落,并加入特定的标志字形成打包基本流 (Packetized Elementary Stream, PES ),在PES中长度不固定的基本码流可 以按其应用划分为大小不同的数据包,其大小可能有数百KB (千字节),具 体长度随应用而变,在每个数据包的首部都有一个PES包头。
视频经过压缩后,由于采用了双向编码,因此不再按时间顺序发送。各 帧图像的数据量是不同的,同时在经过复用和传输之后,也具有不同的时延。 为使码流中的音频和视频一起锁定,就需要在每一视频码流中定期地插入时 间戳(time-stamp, TS ),时间戳是一个具有33比特的数字,它是受90kHz 时钟(该时钟是由27MHz节目时钟经过分频而获取的)驱动的计数器的一个 取样值,该时间戳位于PES包头中,存在两种类型的时间戳解码时间戳 (Decode time-stamp, DTS )用以指示该图像应被解码的时间;显示时间戳 (Presentation time-stamp, PTS )指示的是解码器输出该图像的时间,也即显 示时间。PES流进入复用器(MUX)中,被分割成一个个固定长度的包,称为传 输包,由传输包组成的数据流称为传送流(TS流),TS包长188字节,分为 包头和净荷,TS包的包头提供关于传输方面的信息,TS包的结构如图2所示, 传输流包头中的13比特的字段存放有包识别符(PacketIdentity, PID)。解 复用器在解复用时正是利用PID来区分含有不同类型信息的传输流包。
传输流包头中的自适应字段用以周期性放置节目参考时钟(Program clock reference, PCR),以在解码器产生一个被锁定的时钟。PCR为42比特的计数 值,其中33比特为基本字段(PCR_Base) , 9比特为扩展字段(PCR—Ext)。 PCR—Base是对编码器的27MHz系统时钟的300分频后的时钟计凄t值抽样,它的 作用是提供对解码器PCR计数器的初始值,以使该PCR值与PTS、 DTS达到相 同的时间起点。PCR—Ext是计数器对编码器27MHz系统时钟的计数值,它的作 用是通过解码器端的锁相环电路修正解码器的系统时钟,使其达到和编码器 一致的27MHz。解码器的系统时钟经300分频后在解码器PCR计数器的初始值 的基础上继续计数,这样编码器的PCR计数值就可过渡到解码器端。解码器从 PES包头中提取出DTS、 PTS和经过本地PCR (和编码端的PCR已略有区别,该 PCR^第一个收到的TS包中的PCR,并经过标准时钟计数)比较来确定各自的 排列次序、解码或显示。
在流i某体的播放控制中,实时流协议(Real Time Streaming Protocol, RTSP)被广泛应用,使用该协议,客户端可以请求媒体服务器进行播放、暂 停、快进以及快退等操作。在某些应用中,例如视频点播业务中,用户需要 获知点播内容当前的播放位置,播放位置是一个动态变化的值。
参见图3,通过以下步骤来实现用户获知插-》文位置
步骤301:客户端向媒体服务器发送播放请求,请求媒体服务器开始播放 媒体;
该请求中可以指定播放位置,也可以不指定,如果不指定播放位置,媒 体服务器从与客户端默认的位置播放,例如从文件头开始播放; 步骤302:媒体服务器开始向客户端发送TS;
步骤303:客户端接收到第一个TS报文,从中解析出该报文显示时间戳 PTS值,将该值和用户请求或双方默认的播放位置建立时间映射关系;
5步骤304:客户端从后续接收的TS报文中解析出PTS值,根据步骤303 中已建立的时间映射关系,计算出当前的^"》文位置。
比如,客户端从头开始播放媒体文件,即客户端请求的开始播放位置为0, 假设客户端收到的第一个TS报文的PTS值为10000,则客户端就认为该10000 这个PTS值对应的播放位置为0,后续收到的TS报文中的PTS就可以依据此 映射关系计算出实际的播放位置,比如10050的PTS值可能对应的播放位置 为10秒。
然而,发明人在实践过程中发现,上述图l描述的方按中,客户端是根 据接收到的第 一个TS报文的PTS和请求(或默认)的播放位置建立时间映射 关系,但是,如果开始的若干个报文丢失,客户端就会建立错误的时间映射 关系,导致播放位置计算不准确,对用户产生误导。

发明内容
有鉴于此,本发明实施例提供一种传输流时间映射的方法、装置及系统, 以解决现有方案时间映射关系不准确的问题。 为此,本发明实施例采用如下技术方案
一种实现传输流时间映射的方法,包括向媒体服务器发送媒体播放请 求后,客户端接收媒体服务器反馈的包含媒体时间标记的应答消息;利用所 述媒体时间标记及实际播放位置计算传输流的时间映射关系。
一种实现传输流时间映射的客户端,包括向媒体服务器发送媒体播放请 求的播放请求单元,还包括应答消息接收单元,用于接收媒体服务器反馈 的包含^某体时间标记的应答消息;时间映射计算单元,用于利用所述应答消 息接收单元获知的媒体时间标记以及实际播放位置计算传输流的时间映射关 系。
一种实现传输时间映射的媒体服务器,包括接收客户端媒体播放请求的 请求接收单元,还包括应答消息发送单元,用于在所述请求接收单元接收 到媒体播放请求后,向客户端发送包含媒体时间标记的应答消息。
一种实现传输时间映射的系统,包括客户端和媒体服务器,所述客户端 包括向媒体服务器发送媒体播放请求的播放请求单元,所述媒体服务器包括
6接收客户端媒体播放请求的请求接收单元,所述媒体服务器还包括用于在所 述请求.接收单元接收到所述媒体播放请求后,向客户端发送包含媒体时间标
记的应答消息发送单元;所述客户端还包括应答消息接收单元和时间映射计 算单元,其中,所述应答消息接收单元用于接收所述媒体服务器反馈的包含 i某体时间标记的应答消息;所述时间映射计算单元用于利用所述应答消息接 收单元获知媒体时间标记以及实际播放位置计算传输流的时间映射关系。可 见,媒体服务器通过应答消息向客户端提供媒体时间标记,即使在丢包情况 下,客户端以此计算的时间映射关系也是准确的,继而可准确计算出传输流 的插-;改位置,优化用户感受。


图1为现有技术MPEG2传输流系统示意图; 图2为现有技术传输流包结构示意图; 图3为现有技术获知播放位置的流程图; 图4为本发明方法实施例一流程图; 图5为本发明方法实施例二流程图; 图6为本发明系统结构示意图。
具体实施例方式
本发明实施例中,媒体服务器在接收到媒体播放请求后,向客户端反馈 携带有时间标记的应答消息,客户端通过应答消息中的时间标记和实际播放 位置计算时间映射关系,对于接收到的传输流,客户端利时间映射关系可确 定当前播放位置。其中,实际播放位置可包括两种情况,第一种是,实际播 放位置就是指客户端向媒体服务器发送的媒体播放请求中所包含的请求播放 位置,第二种是,媒体服务器在应答消息中包含实际播放位置。对于第二种 情况,不但能够解决由于丢包所导致的映射关系不准确的问题,对于媒体服 务器实际上没有按照客户端请求播放媒体的情况也是可以建立准确的映射关 系的。
参见图4,为本发明方法实施例一流程图,包括
7步骤401:客户端向媒体服务器发送媒体播放请求;
该请求中可携带播放起始位置,也可以不包含播放起始位置,在客户端 请求中不包含播》汰始位置时,实际播放位置是由应答消息中携带的。
步骤402:媒体服务器接收到客户端的媒体播放请求后,向客户端反馈包 ^4某体时间标记的应答消息;
步骤403:客户端利用媒体时间标记以及实际播放位置计算传输流的时间 映射关系。
如前所述,实际播放位置可以是指客户端请求的播放起始位置,也可以 是指媒体服务器在应答消息中携带的。下面主要以优选的应答消息中携带实 际播放位置的第二种情况对实施例进行说明。
下面在本发明方法实施例二中对方案进一步细化,并描述如何利用时间 映射关系最终确定传输流的播放位置。
参见图5,为实施例二流程图,包括
步骤501:客户端请求媒体服务器开始播放媒体,请求中可以指示开始播 放的起始位置,也可以不指示。 使用RTSP协议的示例为
PLAY rtsp:〃foo/twister RTSP/1.0 CSeq: 4
Range: npt=35.57 Session: 12345678
该示例表示客户端请求媒体服务器从35.57秒的位置开始播放路径 rtsp :〃foo/twister所指示的J(某体。
步骤502:媒体服务器决定实际开始播放的位置,并计算媒体的时间标记 后,向客户端发送播放应答消息,其中携带实际开始播放的位置和媒体的时 间标记;
该时间标记可以为实际向客户端提供的初始传输流包头中的节目参考时 钟PCR或者它的基本字段PCR—Base,也可以为PES包头中的显示时间戳PTS。 ①时间标记使用传输流包头中的节目参考时钟PCR的RTSP协议示例为 RTSP/1.0 200 OKCS叫4
Server: PhonyServer/1.0 Date: 23 Jan 1997 15:36:01 GMT Session: 12345678 Range: npt=34.57-623.10 TS-Info: pcr=1234567 该示例表示媒体服务器将从34.57秒的位置开始播放,对应的节目时钟考 为1234567。
② 时间标记使用传输流包头中的节目参考时钟基本字段PCR—Base的 RTSP协议示例为
RTSP/1.0 200 OK CSeq: 4
Server: PhonyServer/1.0 Date: 23 Jan 1997 15:36:01 GMT Session: 12345678 Range: npt=34.57-623.10 TS-Info: per base=l234567 该示例表示媒体服务器将从34.57秒的位置开始播放,对应的节目参考时 钟基本字段为1234567。
③ 时间标记使用PES包头中的显示时间戳PTS的RTSP协议示例为
RTSP/1.0 200 OK CSeq: 4
Server: PhonyServer/1.0 Date: 23 Jan 1997 15:36:01 GMT Session: 12345678 Range: npt=34.57-623.10 TS-Info: pts=1234567 该示例表示媒体服务器将从34.57秒的位置开始播放,对应的显示时间戳 PTS为1234567。
9步骤503:客户端根据收到的播放应答消息,建立播放位置和时间标记间 的映射关系;
如果时间标记采用节目参考时钟的值表示,则客户端需要取出其中33比 特的基本字段。
步骤504:客户端可从传输流报文的PES头中直接解析出显示时间戳PTS, 根据该时间标记和已建立的映射关系,计算出当前的播放位置;
PTS并不是在每个传输流报文中都存在,客户端可以使用插值的方法计算 每个PES报文的显示时间戳。
,支设客户端从插-放应答消息中收到的初始时间标记为timestamp(O),开始 播放位置为npt(O),从媒体流中解析出来的显示时间戳为pts(t),则当前的播放 4立置为
npt(t) = npt(O) + At
△t = (pts(t) - timestamp(O) + 233) mod 233 /90000
即当前的播放位置为开始播放位置加上一个偏移量,该偏移量为当前的 显示时间戳PTS和初始时间标记的差值,因为显示时间戳PTS是一个33比特长 度的值,当达到最大值后会产生翻转,导致显示时间戳PTS和初始时间标记的 差值为负值,所以这个差值还要加上233,然后对2"fMC这样计算出来的值 表示时钟的计数值,要转换为时间值还需要除以时钟频率。上述公式只是一 个示例,通过其他算法也可能得到相同的结果。
可见,在本发明第二实施例中,媒体服务器通过应答消息向客户端提供 实际播放位置,客户端以此计算的时间映射关系是准确的,在媒体服务器没 有从请求的或默认的位置发送传输流时,客户端也能计算出准确的映射关系, 从而可准确计算出传输流的播放位置。
与上述方法相对应,本发明实施例还提供了客户端、媒体服务器以及系 统,参见图6,为系统示意图,系统包括客户端601和J 某体服务器602。
其中,客户端601进一步包括播放请求单元6011 、应答消息接收单元6012 和时间映射计算单元,优选地,客户端601还包括播放位置计算单元;媒体 服务器602包括请求接收单元6021和应答消息发送单元,与现有方案类似地,
10在客户端601和媒体服务器602通过RTSP建立通信后,媒体服务器602向客 户端601发.送传输流。
客户端601内部各单元功能如下
播放请求单元6011向媒体服务器发送媒体播放请求;
应答消息接收单元6012,用于接收媒体服务器反馈的包含媒体时间标记 的应答消息;
时间映射计算单元6013,用于利用所述应答消息接收单元6012获知的媒 体时间标记及实际播;改位置计算传输流的时间映射关系;
播放位置计算单元6014,用于利用从传输流获知的当前时间标记以及所 述时间映射关系,计算媒体当前播放位置。
其中,应答消息中还可包括实际播放位置,或者,实际播放位置由播放 请求单元6011向媒体服务器发送的媒体播放请求中的播放起始位置确定。
媒体服务器602内部各单元功能如下
请求接收单元6021,用于接收客户端^某体播放请求;
应答消息发送单元6022,用于在所述请求接收单元接收到媒体播放请求 后,向客户端发送包含i某体时间标记的应答消息。优选地,应答消息中还包 括实际播放位置,在不包含实际位置的情况,实际播放位置由客户端自行确 定,即按照向媒体服务器所请求的播放起始位置确定。
对于装置及系统的工作流程细节可参见方法实施例,在此不再赘述。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普 通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润 饰,这些改进和润饰也应视为本发明的保护范围。
权利要求
1、一种实现传输流时间映射的方法,其特征在于,包括向媒体服务器发送媒体播放请求后,客户端接收媒体服务器反馈的包含媒体时间标记的应答消息;利用所述媒体时间标记及实际播放位置计算传输流的时间映射关系。
2、 根据权利要求l所述方法,其特征在于,所述实际播放位置是指客户 端向媒体服务器发送的媒体播放请求中所携带的播放起始位置。
3、 根据权利要求l所述方法,其特征在于,所述实际播放位置是由所述 媒体服务器通过所述应答消息反馈给所述客户端的。
4、 根据权利要求l所述方法,其特征在于,还包括 从媒体服务器接收到传输流后,客户端获取传输流当前时间标记;利用所述当前时间标记以及所述时间映射关系,计算i某体当前^番放位置。
5、 根据权利要求4所述方法,其特征在于,客户端获取传输流当前时间 标i己的方式为从传输流报文的打包基本流头中直接解析出的显示时间戳作为当前时间 标记; 或者,釆用插值算法计算出的显示时间戳作为传输流当前时间标记。
6、 根据权利要求l、 2、 3、 4或5所述方法,其特征在于,所述应答消 息中的媒体时间标记,是指所述媒体服务器向客户端实际提供的起始传输流 包头中的节目参考时钟,或者,是指所述起始传输流包头中的节目参考时钟 基本字段,或者,是指打包基本流包头中的显示时间戳。
7、 根据权利要求6所述方法,其特征在于,所述々某体服务器与所述客户 端之间通过实时流协议通信。
8、 一种实现传输流时间映射的客户端,其特征在于,包括 播放请求单元,用于向媒体服务器发送媒体播放请求;应答消息接收单元,用于接收媒体服务器反馈的包含J 某体时间标记的应 答消息;时间映射计算单元,用于利用所述应答消息接收单元获知的々某体时间标 记以及实际播放位置计算传输流的时间映射关系。
9、 根据权利要求8所述客户端,其特征在于,还包括.播放位置计算单元,用于利用从传输流获知的当前时间标记以及所述时 间映射关系,计算媒体当前播放位置。
10、 根据权利要求8或9所述客户端,其特征在于,所述播放请求单元 发送的i某体播放请求中携带所述实际播放位置,或者,所述应答消息接收单 元接收的应答消息中包含所述实际播放位置。
11、 一种实现传输时间映射的媒体服务器,其特征在于,包括 请求接收单元,用于接收客户端媒体播放请求;应答消息发送单元,用于在所述请求接收单元接收到媒体播放请求后, 向客户端发送包含^某体时间标记的应答消息。
12、 根据权利要求11所述媒体服务器,其特征在于,所述应答消息发送 单元向客户端发送的应答消息中还包括实际播放位置。
13、 一种实现传输时间映射的系统,其特征在于,包括客户端和媒体服 务器,所述客户端包括向媒体服务器发送媒体播放请求的播放请求单元,所 述媒体服务器包括接收客户端媒体播放请求的请求接收单元,所述媒体服务器还包括用于在所述请求接收单元接收到所述媒体播放请 求后,向客户端发送包含4某体时间标记的应答消息发送单元; 所述客户端还包括应答消息接收单元和时间映射计算单元, 其中,所述应答消息接收单元用于接收所述媒体服务器反馈的包含媒体时间标 记的应答消息;所述时间映射计算单元用于利用所述应答消息接收单元获知媒体时间标 记以及实际播放位置计算传输流的时间映射关系。
14、 根据权利要求13所述系统,其特征在于,所述客户端还包括播放位 置计算单元,该播放位置计算单元用于利用从传输流获知的当前时间标记以 及所述时间映射关系,计算媒体当前播放位置。
15、 根据权利要求13或14所述系统,其特征在于,所述播放请求单元 发送的媒体播放请求中携带所述实际播放位置,或者,所述应答消息接收单 元接收的应答消息中包含实际播放位置。
全文摘要
本发明公开了一种实现传输流时间映射的方法,包括向媒体服务器发送媒体播放请求后,客户端接收媒体服务器反馈的包含媒体时间标记的应答消息;利用所述媒体时间标记及实际播放位置计算传输流的时间映射关系。应用本发明,即使在丢包情况,也可保证客户端计算出准确的映射关系,继而可准确计算出传输流的播放位置,优化用户感受。与上述方法相对应,本发明还提供一种实现传输流时间映射的客户端、媒体服务器以及系统。
文档编号H04N7/24GK101489122SQ200810003680
公开日2009年7月22日 申请日期2008年1月15日 优先权日2008年1月15日
发明者冯江平, 毅 张 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1