CN101047844A - 一种控制流媒体播放的方法及装置 - Google Patents
一种控制流媒体播放的方法及装置 Download PDFInfo
- Publication number
- CN101047844A CN101047844A CNA2006100665458A CN200610066545A CN101047844A CN 101047844 A CN101047844 A CN 101047844A CN A2006100665458 A CNA2006100665458 A CN A2006100665458A CN 200610066545 A CN200610066545 A CN 200610066545A CN 101047844 A CN101047844 A CN 101047844A
- Authority
- CN
- China
- Prior art keywords
- media
- bag
- streaming media
- packet
- play
- 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
本发明目的在于提供一种控制流媒体播放的方法,以解决现有技术中声音和图像不同步或者在播放过程中有声音停顿的问题;该方法为:排序待播放的第一流媒体和第二流媒体中数据包的顺序,使所述第一流媒体和第二流媒体中数据包的顺序符合播放顺序;播放第一流媒体和第二流媒体,并且在播放过程中判断第一媒体流与第二媒体流的播放速度是否同步,如果是,则继续播放;否则,调整其中一路媒体流的播放速度,使第一媒体流和第二媒体流的播放速度同步。本发明还同时公开了一种播放装置。
Description
技术领域
本发明涉及多媒体通信技术领域,尤其涉及一种控制流媒体播放的方法及装置。
背景技术
在目前流行的以IP网络传输技术实现视音频码流的通讯系统中,都是以IP包的形式传输视音频码流。由于TCP/IP(互联网协议)协议的异步通讯特性,IP包在网络上的传输可能因为路由选择的不同、交换和路由设备处理上的延迟而造成IP包的错序和延迟。这种错序和延迟对于需要在接受方同步播放的两路UDP(User Datagram Protocol用户数据报)码流影响特别明显,例如在流媒体播放系统中,终端通常从服务器请求一路UDP方式发送的视频码流,一路UDP方式发送的音频码流,虽然服务器发送视频包和音频包的时候做到了同步发送,但是由于IP包在网络上的路由、延迟不同,在终端侧收到的需要同时播放的视频包和音频包的时间可能有比较大的时间差。
由于系统时钟、系统中断频率累计误差,或者媒体节目源制作的原因,图像和视频的播放速度很可能出现进度上的细小差别。如果不加以调整,这种细小的差别将最终导致用户发觉声音和图像不同步。
为克服上述的声音和图像不同步的问题,现有技术中推出了各种各样的控制技术,尽量使声音和图像同步,其中控制效果较好的技术是QuickTime(一种由苹果公司开发的一种多媒体播放工具)播放工具中的控制技术,该技术虽然在一定程度上使声音和图像同步,但是实质上是简单的同步,具体在应用时还存在如下问题:
在图像比较流畅的播放过程中,声音的播放却经常出现断续,产生的原因是当声音播放的进度快于图像播放的进度时,QuickTime将声音停止播放,而图像继续播放,当图像播放的进度追上声音播放的进度时,再允许声音播放,这样就导致声音的停顿。
发明内容
本发明目的在于提供一种控制流媒体播放的方法及装置,以解决现有技术中声音和图像不同步或者在播放过程中有声音停顿的问题。
为解决上述问题,本发明提供如下的技术方案:
一种控制流媒体播放的方法,包括步骤:
排序待播放的第一流媒体和第二流媒体中数据包的顺序,使所述第一流媒体和第二流媒体中数据包的顺序符合播放顺序;
播放第一流媒体和第二流媒体,并且在播放过程中判断第一媒体流与第二媒体流的播放速度是否同步,如果不同步在允许范围内,则继续播放;否则,调整其中一路媒体流的播放速度,使第一媒体流和第二媒体流的播放速度同步。
其中:
所述第一流媒体为音频码流时,所述第二流媒体为视频码流;或者,所述第一流媒体为视频码流时,所述第二流媒体为音频码流。
所述的第一流媒体和第二流媒体存储在播放器的本地缓冲区中。
所述排序待播放的第一流媒体和第二流媒体中数据包的顺序包括步骤:
A、播放器接收待播放的数据包,并判断该数据包的时戳是否大于缓冲区所存数据包的最大时戳;
B、如果该数据包的时戳大于现在缓冲区所存数据包的最大时戳,则将该数据包放在缓冲区的尾部;否则,进行步骤C;
C、判断所述数据包的时戳是否小于当前缓冲区所存包的最小时戳,如果是,则丢弃该包;否则,开始排序并将该包插入到缓冲区的适当位置。
调整其中一路媒体流的播放速度包括:
播放器获得处理器的控制权;
维持其中一路流媒体的播放速度不变,并加快或降低另一路流媒体的播放速度。
调整另一路流媒体的速度后,播放器释放处理器的控制权。
一种播放装置,包括:
用于排序待播放的第一流媒体和第二流媒体中数据包的顺序,使所述第一流媒体和第二流媒体中数据包的顺序符合播放顺序的单元;
用于播放第一流媒体和第二流媒体的单元;
用于在播放过程中判断第一媒体流与第二媒体流的播放速度是否同步,如果不同步在允许范围内,则继续播放;否则,调整其中一路媒体流的播放速度,使第一媒体流和第二媒体流的播放速度同步的单元。
本发明的有益效果为:
解决现有技术中在播放视频码流和音频码流时,不能真正实现同步的问题;
由于在整个播放过程中,实时地对接收的视频和音频UDP包进行顺序调整,及在播放过程中实时地进行速度调整,所以真正实现了声音和图像的同步播放;
解决了QuickTime播放过程中出现的声音断续问题,真正实现声音的播放连续、流畅,并从观看流媒体播放节目的用户的角度,满足连续流畅的感观享受。
附图说明
图1为本发明实施例中控制流媒体播放方法的流程图;
图2为本发明实施例中实际收到视频和音频UDP包的排序图;
图3为本发明实施例中视频和音频UDP包调整前的播放流程图;
图4为本发明实施例中视频和音频UDP包调整后的播放流程图;
图5为本发明实施例中UPD包调整的流程图;
图6为本发明实施例中使音频和视频播放同步的流程图;
图7为本发明实施例中的播放装置的结构示意图。
具体实施方式
本实施例以两路媒体流分别为视频流和音频流为例,并结合附图进行详细说明。
为了保证视频流和音频流的播放同步,在播放视频流和音频流过程中,定时判断两路媒体流的播放进度是否同步决定播放策略,即在不同步时通过调整其中一路媒体流的播放速度使两路媒体流达到同步。所述同步指两者播放进度完全同步,或者,两者播放进度存在不同步但在允许范围内。
参考图1,本发明控制流媒体播放的主要过程为:
对播放器本地缓冲区的视频及音频UDP包进行排序,以保证用来播放的视音频UDP包都是已经排好播放顺序;播放视频流和音频流;在播放过程中判断两路码流的播放进度,如果两路码流的播放不同步程度超过允许范围,调整其中一路码流的播放速度,使两者播放速度同步,否则,按照现有速度播放。调整码流的速度,较佳的方式是,将加快播放进度慢的一路码流的播放速度。当然,也可以降低播放进度快的一路码的播放速度;甚至还可以适当加快播放进度慢的一路码流的播放速度,适当降低播放进度快的一路码的播放速度。
现有视频和音频UDP包:P1、P2、P3、P4、P5,对本地缓冲的视频及音频UDP包进行排序具体包括如下步骤:
确定视频和音频UDP包的播放顺序按照从先到后的顺序依次是:P1、P2、P3、P4、P5;
当所述的视频和音频UDP包:P1、P2、P3、P4、P5经过IP网络传播并被用户终端从IP网络上接收时,请参考图2,实际收到顺序为:先收到P1、P2,接着收到包P4,接着收到包P5,最后收到包P3,显然收到的顺序和播放的顺序是不一样的;
用户终端将所述收到的P1、P2、P3、P4、P5包放入本地缓冲区的时候,对其顺序进行调整,即将后收到的包P3放到先收到的包P4和包P5之前,使其顺序从P1、P2、P4、P5、P3调整为:P1、P2、P3、P4、P5,这样就可以保证从本地缓冲区取出包来播放的时候,先取到的包就是需要首先播放的,有效的防止了网络上包延迟引起的播放顺序错乱。
请参考图5,所述的将后收到的包P3放到先收到的包P4和包P5之前,使其顺序从P1、P2、P4、P5、P3调整为:P1、P2、P3、P4、P5具体实现过程为:
播放器从网络上收包,即:播放器从网络上接收P3包;
判断P3包的时戳是否大于缓冲区所存包的最大时戳,通过时戳的判断可以将每个包放在与其时戳相对应的位置,进而实现包的排序;
如果P3包的时戳大于现在缓冲区所存包的最大时戳,则表明现在缓冲区中所存的包为:P1包或P2包或P1包和P2包的组合,于是将P3包放在缓冲区的尾部;
如果P3包的时戳不是大于现在缓冲区所存包的最大时戳,则进一步判断P3包的时戳是否小于现在缓冲区所存包的最小时戳,如果是,则表明该P3包的顺序应该在P1包在之前,即该P3包并非真正的P3包,这是将该P3包丢弃;
如果该P3包的时戳不是小于现在缓冲区所存包的最小时戳,则表明该包的位置应该在现在缓冲区所存包之间,则开始进行排序,将本包插入缓冲区的适当位置,即将该P3包放在P2包和P4包之间,进而使包的顺序为:P1、P2、P3、P4、P5。
上述的在播放一路码流(如:视频码流)的过程中判断另一路码流(即为音频码流)的播放进度,并决定播放策略,以让播放进度落后的一路码流加快播放,但在此过程中播放进度超前的一路码流不停止播放,进而保证声音和图像的播放同步。
请参考图6,本发明实施例中对视音频码流播放速度进行调整的具体过程为:
播放器获得CPU控制权,该CPU控制权的获得可以通过播放器向所在的计算机系统发送一个请求而获得,具体的获得过程为本领域普通技术人员熟知的现有技术,所以在些不具体描述;
判断视音频码流不同步是否在允许的范围内,如果是,则表明不同步的范围在可以接受的范围内,此时将不对视音频码流的播放速度进行调整,而是正常进行播放;如果否,则判断音频码流的播放速度是否比视频码流快,如果判断出音频码流的播放速度比视频码流的快,则音频码流正常播放,而将视频码流加速播放;如果判断出音频码流的播放速度比视频码流慢,则视频码流慢速播放,而维持音频码流正常播放;
在完成上述的调整后,即使音频码流和视频码流的播放速度一致,此时播放器失去CPU控制权,在下次获得CPU控制权时,重复上述步骤,进行下一次的视频码流和音频码流播放速度的调整。
现假设如果音频码流播放比较快,则加速播放视频码流,让图像和声音的播放进度一致,请参考图3,要想使视频和音频码流同步播放,则在T1~T5时刻对应于音频码流和视频码流分别应该播放V1~V5和A1~A5,但是可能由系统时钟的误差累积或者媒体节目源制作上的原因,在T2时刻,图像的播放进度到了包V2,而声音的播放进度到了包A3,此时图像落后声音一个包。由于时间增加,播放进度差可能会出现积累,导致最后观看者发觉声像不同步。
为解决上述问题,本发明的解决方案为:在T2时刻开始进行播放调整,声频码流按照原有的速度继续播放,而视频码流在T2到T3时刻连续播放了V2和V3包,这样在T3时刻,声音和图像重新达到同步,并且这个过程中声音一直连续流畅的播放,不会出现的断续,同时因为时间轴单位时间差很短,所以图像快播的时间很短,从观看者的角度来看,根本察觉不到这个变化,进而使得在使用者看来图像是流畅播放的。
所述的在T2时刻开始进行播放调整,声频码流按照原有的速度继续播放,而视频码流在T2到T3时刻连续播放了V2和V3包,这样在T3时刻,声音和图像重新达到同步
相应的,本实施例提供如图7所示的播放装置,包括:排序单元、播放单元和调整单元;所述排序单元用于排序待播放的第一流媒体和第二流媒体中数据包的顺序,使所述第一流媒体和第二流媒体中数据包的顺序符合播放顺序的单元;所述播放单元用于播放第一流媒体和第二流媒体;所述调整单元用于在播放过程中判断第一媒体流与第二媒体流的播放速度是否同步,如果不同步在允许范围内,则继续播放;否则,调整其中一路媒体流的播放速度,使第一媒体流和第二媒体流的播放速度同步。
本发明解决现有技术中在播放视频码流和音频码流时,不能真正实现同步的问题;由于在整个播放过程中,实时地对接收的视频和音频UDP包进行顺序调整,及在播放过程中实时地进行速度调整,所以真正实现了声音和图像的同步播放。采用本发明,能够解决QuickTime播放过程中出现的声音断续问题,真正实现声音的播放连续、流畅,并从观看流媒体播放节目的用户的角度,满足连续流畅的感观享受。
Claims (7)
1、一种控制流媒体播放的方法,其特征在于,包括步骤:
排序待播放的第一流媒体和第二流媒体中数据包的顺序,使所述第一流媒体和第二流媒体中数据包的顺序符合播放顺序;
播放第一流媒体和第二流媒体,并且在播放过程中判断第一媒体流与第二媒体流的播放速度是否同步,如果是,则继续播放;否则,调整其中一路媒体流的播放速度,使第一媒体流和第二媒体流的播放速度同步。
2、如权利要求1所述的方法,其特征在于,所述第一流媒体为音频码流时,所述第二流媒体为视频码流;或者,所述第一流媒体为视频码流时,所述第二流媒体为音频码流。
3、如权利要求1所述的方法,其特征在于:所述的第一流媒体和第二流媒体存储在播放器的本地缓冲区中。
4、如权利要求1所述的方法,其特征在于:所述排序待播放的第一流媒体和第二流媒体中数据包的顺序包括步骤:
A、播放器接收待播放的数据包,并判断该数据包的时戳是否大于缓冲区所存数据包的最大时戳;
B、如果该数据包的时戳大于现在缓冲区所存数据包的最大时戳,则将该数据包放在缓冲区的尾部;否则,进行步骤C;
C、判断所述数据包的时戳是否小于当前缓冲区所存包的最小时戳,如果是,则丢弃该包;否则,开始排序并将该包插入到缓冲区的适当位置。
5、如权利要求1至4之一项所述的方法,其特征在于:调整其中一路媒体流的播放速度包括:
播放器获得处理器的控制权;
维持其中一路流媒体的播放速度不变,并加快或降低另一路流媒体的播放速度。
6、如权利要求5所述的方法,其特征在于,调整另一路流媒体的速度后,播放器释放处理器的控制权。
7、一种播放装置,其特征在于,包括:
用于排序待播放的第一流媒体和第二流媒体中数据包的顺序,使所述第一流媒体和第二流媒体中数据包的顺序符合播放顺序的单元;
用于播放第一流媒体和第二流媒体的单元;
用于在播放过程中判断第一媒体流与第二媒体流的播放速度是否同步,如果不同步在允许范围内,则继续播放;否则,调整其中一路媒体流的播放速度,使第一媒体流和第二媒体流的播放速度同步的单元。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200610066545A CN100596195C (zh) | 2006-03-30 | 2006-03-30 | 一种控制流媒体播放的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200610066545A CN100596195C (zh) | 2006-03-30 | 2006-03-30 | 一种控制流媒体播放的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101047844A true CN101047844A (zh) | 2007-10-03 |
CN100596195C CN100596195C (zh) | 2010-03-24 |
Family
ID=38771999
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200610066545A Expired - Fee Related CN100596195C (zh) | 2006-03-30 | 2006-03-30 | 一种控制流媒体播放的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100596195C (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101583025B (zh) * | 2009-06-11 | 2011-05-11 | 中兴通讯股份有限公司 | 一种流媒体播放方法及装置 |
CN101378356B (zh) * | 2008-06-10 | 2011-05-11 | 中兴通讯股份有限公司 | 一种ip实时流媒体的播放方法 |
CN102271280A (zh) * | 2011-07-20 | 2011-12-07 | 宝利微电子系统控股公司 | 一种数字音视频变速播放的方法和装置 |
CN102404650A (zh) * | 2011-11-30 | 2012-04-04 | 江苏奇异点网络有限公司 | 在线视频的音视频同步控制方法 |
CN101753977B (zh) * | 2009-12-31 | 2012-10-03 | 中兴通讯股份有限公司 | 一种调节网络数字视频播放速度的方法及装置 |
CN106303648A (zh) * | 2015-06-11 | 2017-01-04 | 阿里巴巴集团控股有限公司 | 一种同步播放多媒体数据的方法及装置 |
CN107770595A (zh) * | 2017-09-19 | 2018-03-06 | 浙江科澜信息技术有限公司 | 一种在虚拟场景中嵌入真实场景的方法 |
CN110177293A (zh) * | 2019-05-28 | 2019-08-27 | 南京南方电讯有限公司 | 一种同步组播和视频转发方法、系统 |
-
2006
- 2006-03-30 CN CN200610066545A patent/CN100596195C/zh not_active Expired - Fee Related
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101378356B (zh) * | 2008-06-10 | 2011-05-11 | 中兴通讯股份有限公司 | 一种ip实时流媒体的播放方法 |
CN101583025B (zh) * | 2009-06-11 | 2011-05-11 | 中兴通讯股份有限公司 | 一种流媒体播放方法及装置 |
CN101753977B (zh) * | 2009-12-31 | 2012-10-03 | 中兴通讯股份有限公司 | 一种调节网络数字视频播放速度的方法及装置 |
CN102271280A (zh) * | 2011-07-20 | 2011-12-07 | 宝利微电子系统控股公司 | 一种数字音视频变速播放的方法和装置 |
CN102404650A (zh) * | 2011-11-30 | 2012-04-04 | 江苏奇异点网络有限公司 | 在线视频的音视频同步控制方法 |
CN106303648A (zh) * | 2015-06-11 | 2017-01-04 | 阿里巴巴集团控股有限公司 | 一种同步播放多媒体数据的方法及装置 |
CN107770595A (zh) * | 2017-09-19 | 2018-03-06 | 浙江科澜信息技术有限公司 | 一种在虚拟场景中嵌入真实场景的方法 |
CN107770595B (zh) * | 2017-09-19 | 2019-11-22 | 浙江科澜信息技术有限公司 | 一种在虚拟场景中嵌入真实场景的方法 |
CN110177293A (zh) * | 2019-05-28 | 2019-08-27 | 南京南方电讯有限公司 | 一种同步组播和视频转发方法、系统 |
Also Published As
Publication number | Publication date |
---|---|
CN100596195C (zh) | 2010-03-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101047844A (zh) | 一种控制流媒体播放的方法及装置 | |
CN1154288C (zh) | 在话音ip网络中用于包丢失补偿的子包插入 | |
US7945688B1 (en) | Methods and apparatus for reducing streaming media data traffic bursts | |
US6763274B1 (en) | Digital audio compensation | |
CN1166132C (zh) | 分组处理器 | |
CN102761468B (zh) | 一种自适应调整语音抖动缓存区的方法及系统 | |
CN1564984A (zh) | 网络媒体播放 | |
US20030152094A1 (en) | Adaptive threshold based jitter buffer management for packetized data | |
CN101836458B (zh) | 一种及早开始呈现音视频的系统及方法 | |
CN101330472B (zh) | 流媒体数据的缓存处理方法 | |
CN101188477B (zh) | 一种数据包序列接收的方法及设备 | |
CN1277390C (zh) | 用rtp数据包的序号进行排序以消除其抖动延时的方法 | |
CN1655547A (zh) | 一种流媒体传输系统中的速率控制方法 | |
CN1599352A (zh) | 一种分组交换网络自适应抖动缓冲区调整方法 | |
CN1148931C (zh) | 基于实时传输协议和传输控制协议的流媒体传输实现方法 | |
KR20040028581A (ko) | 네트워크 전화기 및 음성 복호화 장치 | |
CN1790973A (zh) | 用于控制实时流业务的传送速率的系统和方法 | |
CN1798097A (zh) | 一种缓存流媒体数据的方法 | |
KR20050085639A (ko) | 이미지들의 프레젠테이션 품질을 개선하기 위한 버퍼아키텍쳐를 제공하는 방법 및 장치 | |
CN114827681A (zh) | 视频同步方法、装置、电子设备、终端设备及存储介质 | |
CN1852283A (zh) | 一种实现多数据源流媒体在线浏览的系统 | |
CN110225419A (zh) | 一种实现流量控制的丢包重传方法 | |
CN1855824A (zh) | 用于流式处理数据的方法和设备 | |
CN101090369B (zh) | 一种在流媒体系统中控制数据包发送速率的方法 | |
CN101075952A (zh) | 一种流媒体在线播放的方法 |
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: 20100324 Termination date: 20170330 |
|
CF01 | Termination of patent right due to non-payment of annual fee |