CN101378356A - 一种ip实时流媒体的播放方法 - Google Patents
一种ip实时流媒体的播放方法 Download PDFInfo
- Publication number
- CN101378356A CN101378356A CNA2008100676860A CN200810067686A CN101378356A CN 101378356 A CN101378356 A CN 101378356A CN A2008100676860 A CNA2008100676860 A CN A2008100676860A CN 200810067686 A CN200810067686 A CN 200810067686A CN 101378356 A CN101378356 A CN 101378356A
- Authority
- CN
- China
- Prior art keywords
- stream
- media
- underload
- reference medium
- playing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本发明公开了一种IP实时流媒体的播放方法,适合单个媒体流的播放,也适合多个(可多于两个)媒体流的同步播放。实现过程中通过指定一个媒体流为参考媒体流,计算播放位移,并确定各帧的播放时刻,实现各媒体流的同步播放。采用本发明的播放方法简单可靠,流媒体的播放过程更加流畅。
Description
技术领域
本发明属于IP实时流媒体的播放技术领域。
背景技术
视频点播、可视电话等实时流媒体应用是互联网以及3G移动通信网上最受欢迎的一类应用。它们通常选择分组交换的传输方式,并以IP作为网络层协议,优点是可以最大效率地利用带宽,从而承载更多的用户。然而,IP分组传输方式也引入了一些QoS(Quality of Service)上的难题,例如:传输时延及抖动较大、丢包、乱序等等。
另外,实际应用中通常是不同类型的多个媒体流同时传输,例如:视频点播中的音频流和视频流,也许还包括独立的字幕流(所谓独立是指没有同视频帧一起编码传输)。在接收端,一般都要求这些媒体流按照固定的相互时序、同步地播放。但是,不同媒体流的报文大小不同、选择的传输路径也不固定,因此各自的传输时延难以估计,给实现同步带来了较大的困难。
实时流媒体应用中传输的报文可以分为信令和媒体数据两类,它们都以IP分组传输,但一般选择不同的传输协议。对于信令,传输协议包括SIP、RTSP、H.323等,通过它们可以获取媒体资源的描述,以及启动或终止媒体传输。而常用的媒体数据传输协议是RTP和RTCP,RTP负责承载实际的媒体负载,而RTCP能在传输双方,即服务器和终端之间传递发包数量、时延和抖动等信息,特别是其中的SR(Sender Report)报文揭示了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执行。
步骤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)后,所有非参考媒体流也将重新开始播放。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
Claims (7)
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)中指定为参考媒体流的媒体流为音频、视频或者字幕媒体流。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008100676860A CN101378356B (zh) | 2008-06-10 | 2008-06-10 | 一种ip实时流媒体的播放方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008100676860A CN101378356B (zh) | 2008-06-10 | 2008-06-10 | 一种ip实时流媒体的播放方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101378356A true CN101378356A (zh) | 2009-03-04 |
CN101378356B CN101378356B (zh) | 2011-05-11 |
Family
ID=40421708
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008100676860A Expired - Fee Related CN101378356B (zh) | 2008-06-10 | 2008-06-10 | 一种ip实时流媒体的播放方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101378356B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102630017A (zh) * | 2012-04-10 | 2012-08-08 | 中兴通讯股份有限公司 | 一种移动多媒体广播字幕同步的方法和系统 |
WO2013053259A1 (zh) * | 2011-10-11 | 2013-04-18 | 华为技术有限公司 | 流媒体数据的处理方法、播放方法以及装置 |
CN104702579A (zh) * | 2013-12-09 | 2015-06-10 | 华为技术有限公司 | 用于确定用户设备的缓存状态的方法及装置 |
CN106034262A (zh) * | 2015-03-13 | 2016-10-19 | 中兴通讯股份有限公司 | 自适应流媒体处理方法及装置 |
CN110213206A (zh) * | 2018-04-26 | 2019-09-06 | 腾讯科技(深圳)有限公司 | 流数据处理方法、服务器及计算机可读存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100442858C (zh) * | 2005-10-11 | 2008-12-10 | 华为技术有限公司 | 分组网络中多媒体实时传输的唇同步方法及其装置 |
CN100589436C (zh) * | 2006-03-03 | 2010-02-10 | 中兴通讯股份有限公司 | 一种动态带宽适配的方法 |
CN100596195C (zh) * | 2006-03-30 | 2010-03-24 | 华为技术有限公司 | 一种控制流媒体播放的方法及装置 |
CN100456743C (zh) * | 2006-06-20 | 2009-01-28 | 中国移动通信集团公司 | 移动流媒体的计时方法 |
-
2008
- 2008-06-10 CN CN2008100676860A patent/CN101378356B/zh not_active Expired - Fee Related
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013053259A1 (zh) * | 2011-10-11 | 2013-04-18 | 华为技术有限公司 | 流媒体数据的处理方法、播放方法以及装置 |
CN102630017A (zh) * | 2012-04-10 | 2012-08-08 | 中兴通讯股份有限公司 | 一种移动多媒体广播字幕同步的方法和系统 |
WO2013152562A1 (zh) * | 2012-04-10 | 2013-10-17 | 中兴通讯股份有限公司 | 一种移动多媒体广播字幕同步的方法和系统 |
CN102630017B (zh) * | 2012-04-10 | 2014-03-19 | 中兴通讯股份有限公司 | 一种移动多媒体广播字幕同步的方法和系统 |
CN104702579A (zh) * | 2013-12-09 | 2015-06-10 | 华为技术有限公司 | 用于确定用户设备的缓存状态的方法及装置 |
CN104702579B (zh) * | 2013-12-09 | 2018-10-12 | 华为技术有限公司 | 用于确定用户设备的缓存状态的方法及装置 |
US10142249B2 (en) | 2013-12-09 | 2018-11-27 | Huawei Technologies Co., Ltd. | Method and apparatus for determining buffer status of user equipment |
CN106034262A (zh) * | 2015-03-13 | 2016-10-19 | 中兴通讯股份有限公司 | 自适应流媒体处理方法及装置 |
US10715571B2 (en) | 2015-03-13 | 2020-07-14 | Xi'an Zhongxing New Software Co., Ltd. | Self-adaptive streaming medium processing method and apparatus |
CN106034262B (zh) * | 2015-03-13 | 2021-01-22 | 中兴通讯股份有限公司 | 自适应流媒体处理方法及装置 |
CN110213206A (zh) * | 2018-04-26 | 2019-09-06 | 腾讯科技(深圳)有限公司 | 流数据处理方法、服务器及计算机可读存储介质 |
CN110213206B (zh) * | 2018-04-26 | 2022-06-21 | 腾讯科技(深圳)有限公司 | 流数据处理方法、服务器及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN101378356B (zh) | 2011-05-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020192152A1 (zh) | 视频传输的方法、根节点、子节点、p2p服务器和系统 | |
CN1706146B (zh) | 用于从流式服务器向移动客户机装置流动媒体的方法、装置和系统 | |
KR101704619B1 (ko) | 네트워크 스트리밍에 대한 가변 미디어 데이터 결정 | |
KR101178853B1 (ko) | 채널 변경 응답 시간 향상 방법 및 채널 변경 응답 시간 향상 장치 | |
JP5442766B2 (ja) | サービス・レイヤにより支援する、マルチメディア・ストリーム・アクセス配信の変更 | |
US20160072637A1 (en) | Calculating and signaling segment availability times for segments of media data | |
CN106686438A (zh) | 一种跨设备的音频图像同步播放的方法、装置及系统 | |
CN102547449A (zh) | 一种控制终端缓冲媒体流数据的方法、机顶盒及媒体服务器 | |
CN101969551B (zh) | 一种交互式网络电视系统中的码流分片方法和系统 | |
WO2020228482A1 (zh) | 视频处理方法、装置及系统 | |
US11863841B2 (en) | Video playing control method and system | |
CN101378356B (zh) | 一种ip实时流媒体的播放方法 | |
CN103200461A (zh) | 一种多台播放终端同步播放系统及播放方法 | |
CN101917613A (zh) | 一种流媒体采集编码服务系统 | |
CN101218807B (zh) | 用于估计实时内容分发的客户端的输入缓冲器的填充率的设备及方法 | |
US20070160048A1 (en) | Method for providing data and data transmission system | |
US20120233346A1 (en) | Method, apparatus and system for rapid acquisition of multicast realtime transport protcol sessions | |
JP5140952B2 (ja) | コンテンツ配信システム、コンテンツ配信サーバ、コンテンツ再生端末、プログラム、コンテンツ配信方法 | |
CN108924485A (zh) | 客户端实时视频流中断处理方法及系统、监控系统 | |
JP2005244605A (ja) | ストリーミングコンテンツ配信制御システム、プログラム及び該プログラムを格納した記録媒体 | |
US20120117265A1 (en) | Method and communication system for implementing stream services, and relevant device | |
CN101998147A (zh) | 媒体数据的传输方法、网络侧设备及通信系统 | |
US20140226561A1 (en) | Method and apparatus for video or multimedia content delivery | |
CN102571687B (zh) | 实时媒体流间同步状态信息构建方法、装置及sccas | |
US8811478B2 (en) | Data transmission method and apparatus |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20110511 Termination date: 20210610 |
|
CF01 | Termination of patent right due to non-payment of annual fee |