一种ip实时流媒体的播放方法

文档序号:7688591阅读:228来源:国知局
专利名称:一种ip实时流媒体的播放方法
技术领域
本发明属于IP实时流媒体的播放技术领域。
背景技术
视频点播、可视电话等实时流媒体应用是互联网以及3G移动通信网 上最受欢迎的一类应用。它们通常选择分组交换的传输方式,并以IP作为 网络层协议,优点是可以最大效率地利用带宽,从而承载更多的用户。然 而,IP分组传输方式也引入了一些QoS(Quality of Service)上的难题,例如 传输时延及抖动较大、丢包、乱序等等。
另外,实际应用中通常是不同类型的多个媒体流同时传输,例如视
频点播中的音频流和视频流,也许还包括独立的字幕流(所谓独立是指没 有同视频帧一起编码传输)。在接收端, 一般都要求这些媒体流按照固定的 相互时序、同步地播放。但是,不同媒体流的报文大小不同、选择的传输 路径也不固定,因此各自的传输时延难以估计,给实现同步带来了较大的 困难。
实时流媒体应用中传输的报文可以分为信令和媒体数据两类,它们都 以IP分组传输,但一般选择不同的传输协议。对于信令,传输协议包括
SIP、 RTSP、 H.323等,通过它们可以获取媒体资源的描述,以及启动或终 止媒体传输。而常用的媒体数据传输协议是RTP和RTCP, RTP负责承载 实际的媒体负载,而RTCP能在传输双方,即服务器和终端之间传递发包 数量、时延和抖动等信息,特别是其中的SR(SenderReport)报文揭示了,RTP 报文时戳与以时分秒计算的真实时刻的映射关系,通过它就可知道服务器 产生每个RTP报文的真实时刻。
常见的实时流媒体播放技术通过设置接收缓冲来平滑报文传输延迟的 抖动,利用时戳同步多个媒体流的播放,控制的方法则不尽相同。公告号 为CN101047844的中国专利申请"一种控制流媒体播放的方法及装置"提 出了一种对音、视频流的播放速度都进行控制的实现方案,通过加快落后 媒体流的播放速度来实现同步。此方法在同时进行的媒体流多于两个时很 难实现,且控制逻辑的复杂程度随媒体流数成倍增加。专利号为
EP1775964以及专利号为WO2007041917的欧洲专利和PCT专利申请提 出的技术方案是通过对媒体流的传输时延和抖动进行估计来动态设置接收 缓存的大小和计算播放延迟,并由音频流向视频流提供时间参考点。由于 网络环境的复杂性,必然使得时延估计模型和算法相应的复杂,且难以确 保可靠。同样,这两种方法很难扩展,以适应接收和播放两个以上媒体流 的应用场景。

发明内容
本发明旨在提出一种接收缓冲策略来有效平滑媒体报文的延迟抖动,及 提出一种实用、可靠的流媒体播放方法,适合单个媒体流的播放,也适合 多个(可多于两个)媒体流的同步播放。
本发明提出的IP实时流媒体的播放方法,包括以下处理步骤
1) 指定一个媒体流为参考媒体流;
2) 接收各媒体流的媒体数据,并在播放前将媒体数据进行缓存处理;
3) 将各媒体数据的报文时戳转换为真实时刻;
4) 计算参考媒体流的播放位移;
5) 根据参考媒体流的播放位移计算非参考媒体流各帧的播放时刻,并 根据播放时刻同步播放各媒体流。
优选的,所述步骤2)中具体包括以下处理过程
21) 对各媒体流分别设置欠载标识和缓存门限;
22) 当欠载标识为欠载状态时,接收媒体数据,直到接收的媒体数据 超过缓存门限时,将欠载标识标记为非欠载状态;
23) 当媒体流缓存中的媒体数据被读空的时候,将欠载标识标记为欠 载状态,并返回步骤22)接收媒体数据。
优选的,所述步骤3)中具体为通过媒体数据传输协议RTCP中的SR 报文获取时戳和真实时刻的映射关系。
优选的,所述步骤4)中参考媒体流的播放位移通过以下方式计算得 到参考媒体流的播放位移=媒体流开始播放的时刻 一 参考媒体流中第一 个RTP报文时戳对应的真实时刻。
优选的,所述步骤5)中非参考媒体流帧的播放时刻通过以下方式计
算得到非参考媒体流帧的播放时刻=参考媒体流的播放位移+该帧时戳 对应的真实时刻。
优选的,本发明还包括以下处理步骤当任何一个非参考媒体流发生 欠载时,暂停所有媒体流的播放,直到最后一个欠载媒体流从欠载状态恢 复后继续播放媒体数据。
优选的,所述步骤1)中指定为参考媒体流的媒体流为音频、视频或 者字幕媒体流。
采用本发明提出的IP实时流媒体的播放方法能带来如下有益效果
1. 通过报文自带的时戳计算播放时刻,可避免对传输时延进行估计, 实现更加简单且提高了可靠性;
2. 适合播放单个媒体流,也适合多个媒体流的同步播放,且媒体流个 数可多于两个,因此支持更多、更复杂的流媒体应用。
3. 通过在缓存上设置缓冲策略,由于在媒体流开始播放前,缓存中己 存有一定的数据,可以补偿播放开始后的报文传输时延波动,使得 播放更加流畅;此外由于通过设定数据的缓存门限,该参数可根据 媒体流类型(音频、视频等)对应的比特率范围、接入方式(如WIFI、 GPRS等)对应的带宽设置一个经验值,不必动态改变,易于实现。


图1是本发明缓冲策略中欠载标识值的迁移示意图; 图2是本发明提出的IP实时流媒体的播放方法流程图; 图3是本发明优选实施例单个媒体流的播放流程图; 图4是本发明优选实施例多个媒体流同步播放时非参考媒体流的播放 流程图5是本发明媒体流发生欠载时的处理流程图。
具体实施例方式
以下先介绍一下本发明的实现原理。
本发明接收缓冲策略采用一个固定大小的缓存,控制参数包括一个门
限和一个欠载标识。欠载标识的设置方法如下(见图1):
1. 初始值为"真"(欠载标识为"真"时,称为"媒体流处于欠载状态");
2. 当接收的媒体数据超过门限值时,欠载标识设为"假"(当欠载标识 从"真"变为"假"时,称为"媒体流从欠载中恢复");此时可以 从缓存中读取媒体数据进行播放;
3. 当缓存被读空时,欠载标识重新设为"真",返回2中接收媒体数据 的处理过程。
本发明流媒体的播放流程分为以下几个步骤,如图2所示 步骤201设置参考媒体流,由它提供播放时间参考点(其他媒体流称 为"非参考媒体流");
步骤202各媒体流同时开始接收媒体数据,并在决定播放前缓存起来, 何时播放由缓冲策略决定;
步骤203将缓存报文的时戳转换为以时、分、秒计算的真实时刻; 步骤204记录参考媒体流的播放开始时刻,以此计算播放偏移; 步骤205根据播放偏移计算其他媒体流中各帧的播放时刻,同步播放; 其中,步骤201的参考媒体流可以是音频、视频等任何媒体流;当仅有 一个媒体流时,也可以是它自身。
步骤203中用到的"时戳一真实时刻"映射关系可通过RTCP的SR报 文获取,但也可通过其他类似协议或途径得到。
步骤204中"播放偏移"定义为"媒体流开始播放的时刻一第一个RTP 报文时戳对应的真实时刻";参考媒体流的播放偏移在初次设置后可进行更 新,并且会影响其他媒体流的播放。
步骤205中某帧的播放时刻由参考媒体流的播放偏移与该帧时戳对应 的真实时刻相加得到;当任何一个非参考媒体流发生欠载时,暂停所有媒 体流的播放只接收媒体数据,直到最后一个欠载媒体流从欠载状态恢复后 再继续播放。
下面再通过播放单个流媒体和多个流媒体两个实施例,并结合附图对 本发明的实现过程进行详细说明。
当流媒体应用中只有单个媒体流播放时,其播放流程如图3所示
步骤301, 媒体流接收媒体报文,并存入接受缓存中;
步骤302 ,按照缓冲策略中的欠载标识更新规则更新媒体流的欠载标
识;
步骤303 ,判断欠载标识是否为"假",若是,继续步骤305,若否, 转到步骤304执行;
步骤304 ,将媒体流的播放偏移标识为"未设置",回到步骤301继续 接收媒体报文;
步骤305 ,从接收缓存中取出一个媒体帧,将它的时戳转换为以时分 秒计算的真实时刻,准备播放;"时戳一真实时刻"映射关系可通过 RTCP的SR报文获取,但也可通过其他类似协议或途径得到; 步骤306 ,判断播放的是否为开始播放的、或暂停后重新播放的第一 帧;若是,转到步骤307执行,若否继续步骤308; 步骤307 ,由当前时刻与该帧时戳对应的真实时刻之差得到媒体流的 播放偏移,继续步骤308;
步骤308 ,由播放偏移与该帧时戳对应的真实时刻之和得到该帧的播 放时刻(对于第一帧即为当前时刻);
步骤309 ,判断该帧播放时刻是否滞后于当前时刻,若是转到步骤311 执行,若否继续步骤310;
步骤310睡眠到播放时刻后,播放该帧,然后回到步骤301执行; 步骤311立刻播放该帧,然后回到步骤301执行。
当媒体应用中有多个媒体流同步播放时,其中的参考媒体流的处理流 :同图3,而除参考媒体流外的其他媒体流的处理流程如图4所示 步骤401 ,媒体流接收媒体报文,并存入接受缓存中; 步骤402 ,按照缓冲策略中的欠载标识更新规则更新媒体流的欠载标 识;
步骤403, 判断欠载标识是否为"假",若是,继续步骤405,若否,
转到步骤404执行;
步骤404 ,执行"欠载处理"流程;
步骤405,从接收缓存中取出一个媒体帧,将它的时戳转换为以时分 秒计算的真实时刻,准备播放;"时戳一真实时刻"映射关系可通过 RTCP的SR报文获取,但也可通过其他类似协议或途径得到; 步骤406 ,判断参考媒体流的播放偏移是否已设置,若是继续步骤407, 若否回到步骤401执行;
步骤407 ,由参考媒体流的播放偏移与该帧时戳对应的真实时刻之和 得到该帧的播放时刻;
步骤408 ,判断该帧播放时刻是否滞后于当前时刻,若是转到步骤410 执行,若否继续步骤409;
步骤409 ,睡眠到播放时刻后,播放该帧,然后回到步骤401执行; 步骤410立刻播放该帧,然后回到步骤401执行。
图5所示流程中"欠载处理"的目的是暂停所有媒体流的播放,直到 最后一个欠载的媒体流从欠载中恢复后再继续,其处理步骤如下
步骤501 ,当某个非参考媒体流的欠载标识由"假"变为"真"时, 暂停参考媒体流的播放,但参考媒体流仍继续接收媒体数据;
步骤502 ,标识参考媒体流的播放偏移为"未设置";这样,所有非参 考媒体流都将只缓冲数据而不播放;
步骤503,当最后一个欠载媒体流从欠载状态中恢复后,重新开始参 考媒体流的播放;当参考媒体流重新设置了播放偏移(图3所示流程中的 步骤307)后,所有非参考媒体流也将重新开始播放。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说 明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术 领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若 干简单推演或替换,都应当视为属于本发明的保护范围。
权利要求
1. 一种IP实时流媒体的播放方法,其特征在于,所述方法包括以下处理步骤1)指定一个媒体流为参考媒体流;2)接收各媒体流的媒体数据,并在播放前将媒体数据进行缓存处理;3)将各媒体数据的报文时戳转换为真实时刻;4)计算参考媒体流的播放位移;5)根据参考媒体流的播放位移计算非参考媒体流各帧的播放时刻,并根据播放时刻同步播放各媒体流。
2. 根据权利要求1所述的IP实时流媒体的播放方法,其特征在于, 所述步骤2)中具体包括以下处理过程21) 对各媒体流分别设置欠载标识和缓存门限;22) 当欠载标识为欠载状态时,接收媒体数据,直到接收的媒体数据 超过缓存门限时,将欠载标识标记为非欠载状态;23) 当媒体流缓存中的媒体数据被读空的时候,将欠载标识标记为欠 载状态,并返回步骤22)接收媒体数据。
3. 根据权利要求1所述的IP实时流媒体的播放方法,其特征在于, 所述步骤3)中具体为通过媒体数据传输协议RTCP中的SR报文获取时戳 和真实时刻的映射关系。
4. 根据权利要求1一3任一项所述的IP实时流媒体的播放方法,其特 征在于,所述步骤4)中参考媒体流的播放位移通过以下方式计算得到 参考媒体流的播放位移=媒体流开始播放的时刻一参考媒体流中第一个 RTP报文时戳对应的真实时刻。
5. 根据权利要求4所述的IP实时流媒体的播放方法,其特征在于, 所述步骤5)中非参考媒体流帧的播放时刻通过以下方式计算得到非参 考媒体流帧的播放时刻=参考媒体流的播放位移+该帧时戳对应的真实时 刻。
6. 根据权利要求2所述的IP实时流媒体的播放方法,其特征在于, 还包括以下处理步骤当任何一个非参考媒体流发生欠载时,暂停所有媒 体流的播放,直到最后一个欠载媒体流从欠载状态恢复后继续播放媒体数 据。
7.根据权利要求1一3任一项所述的IP实时流媒体的播放方法,其特 征在于,所述步骤1)中指定为参考媒体流的媒体流为音频、视频或者字 幕媒体流。
全文摘要
本发明公开了一种IP实时流媒体的播放方法,适合单个媒体流的播放,也适合多个(可多于两个)媒体流的同步播放。实现过程中通过指定一个媒体流为参考媒体流,计算播放位移,并确定各帧的播放时刻,实现各媒体流的同步播放。采用本发明的播放方法简单可靠,流媒体的播放过程更加流畅。
文档编号H04L12/56GK101378356SQ20081006768
公开日2009年3月4日 申请日期2008年6月10日 优先权日2008年6月10日
发明者坤 佘, 田振丽, 天 白 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1