CN102547482A - 一种多路ip音视频流同步播放方法 - Google Patents
一种多路ip音视频流同步播放方法 Download PDFInfo
- Publication number
- CN102547482A CN102547482A CN2011104534112A CN201110453411A CN102547482A CN 102547482 A CN102547482 A CN 102547482A CN 2011104534112 A CN2011104534112 A CN 2011104534112A CN 201110453411 A CN201110453411 A CN 201110453411A CN 102547482 A CN102547482 A CN 102547482A
- Authority
- CN
- China
- Prior art keywords
- data
- time
- formation
- play
- audio
- 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音视频流同步播放方法,属于数字音视频技术领域。本方法为:1)数据读取线程对接收的网络IP数据包进行解析,得到数据采样的绝对时间、时间戳和音视频数据;并计算数据播放的时间长度;2)数据读取线程根据数据包的IP、端口和数据类型将数据包划分为不同数据流,每一路数据流用一个队列保存;3)在每一队列中设一播放等待时间字段、一记录队列中所有数据播放时间总和的总时间字段,如果某队列总时间字段大于设定值T,则启动多媒体时钟;4)根据设定的多媒体时钟时间间隔,定时轮询所有队列,进行数据播放或更新队列的播放等待时间。本发明可实现对不同帧率,并且帧率随机改变的多路IP音视频流同步播放。
Description
技术领域
本发明属于IP音视频流还原播放领域,涉及到一种不同帧率,并且帧率随机改变的多路IP音视频流同步播放方法。
背景技术
网络音视频还原播放还是一个较新的技术领域,它是对提供音视频服务的软件进行多人音视频会话时产生的网络包还原播放,真实展现多人进行音视频通话场景,达到真实场景再现的效果,它需要相关联的多路画面多路声音同步播放的技术。
网络中音视频数据十分复杂,音视频帧率随网络环境好坏,帧率、编码不断改变,还存在大量丢包,重复包的情况,并且音视频软件种类繁多,能够对如此复杂网络音视频还原播放本身就存在很大的困难,它还得兼具较好的还原效果,这不仅要实现个体的声音和画面同步,还得实现个体与个体之间的通话同步,能够达到场景再现可谓难上加难。
以往还原播放的方法只能支持特定的一种协议,比如能够实现SIP协议的同步方法不能适用于H264协议,达不到统一的方法。因为不同协议的音频或视频的帧率不同,并且中间过程帧率还会发生改变,不能采用固定一种方式播放。
发明内容
针对现有技术中存在的技术问题,本发明的目的在于提供一种多路IP音视频流同步播放方法;本发明的音视频IP包还原播放,能够实现个体的声音和画面同步,并实现个体与个体之间的通话同步,达到真实场景再现。
本发明的主要技术内容如下:
数据读取线程
1)处理网络IP包,根据不同协议采用不同方法对网络数据进行解析,解析出数据采样的绝对时间、携带的时间戳和实际音视频数据,根据时间戳计算出数据播放的时间长度,数据播放时间长度需采用二舍三入方法换算成5的倍数,网络VOIP包之间时间间隔一般为5ms 10ms 20m 40ms,这里取5是这些数字的最小单位元。
2)根据数据的IP、端口和媒体类型(音频或视频)三个因素来划分数据流,一路数据 流用一个队列保存,将1)解析出的信息构造为队列结点插入到相应队列中,每个队列有一个时间字段记录播放等待时间,有一个总时间字段记录队列中所有数据播放时间总和。
3)如果总时间字段大于1秒并且多媒体时钟未启动,则取当前所有队列的所有数据播放时间长度的最大公约数作为多媒体时钟的时间间隔启动多媒体时钟,根据比较各个队列队头数据出现的绝对时间,来计算出各队列播放等待时间的初始值,如果多媒体时钟已经启动不做任何处理。
4)如果任意队列都未满则继续执行1),反之任意队列满,在此等待直到此队列有空间继续执行1)。
数据播放线程
5)多媒体时钟定时触发,每次触发对所有队列进行做如下判断:如果队列的播放等待时间小于等于0,则取这个队列的第一个结点进行播放并释放此结点空间,并将这个队列的播放等待时间置为所播放结点的播放时间长度;如果队列的播放等待时间大于0,则将此队列的播放等待时间减去多媒体时钟间隔时间长度。
所述步骤1)绝对时间是指平时我们所说的时间,真实的时间,根据数据包来源不同获取方式也不同,如果数据源为sniffer或wirshark可以直接从它们提供的接口取得,如果数据源为socket即为获取此数据的系统当前时间。
所述步骤1)时间戳是数据包采样的相对时间,第一个数据的时间戳为随机值,后续数据的时间戳是前一个数据的时间戳加上采样间隔时间,最小有效单位为毫秒。
所述步骤1)计算播放时间是采用相邻时间戳做差计算,如果做差结果等于0,第二个出现的包为重复包做丢掉处理,这种计算方法自动屏蔽了丢包的情况,如图2语音流第三个包后面丢失一个包,原本第三个包只能够播放30ms改为60ms,这样就补充了时间,实现个体之间声音与画面的同步。
所属步骤1)现实中网络情况复杂,经常会出现网络抖动的现象,发生网络抖动前最后一个包和发生网络抖动最开始的一个包播放时间计算方法需采用绝对时间做差。
所述步骤1)人类听觉视觉停留时间较长,间隔40毫秒的连续图片人类就会看起来是流畅的,动画即是此原理,如果一帧提前或延后5毫秒人类是感觉不到的,所以精度设为5是可满足播放效果的。
所述步骤2)队列中播放等待时间是判断播放线程是否可以从队列中取数据进行播放,如果等待时间大于0需要等待,如果等待时间小于等于0可直接读取队头数据播放。
所述步骤2)队列中总播放时间长度是队列中所有结点的数据播放时间总长度总和。
所述步骤3)等待时间的初始值计算方法,取得所有队列队头数据的绝对时间,以最早时间为参照时间,各队列队头的绝对时间减去参照时间即为此队列的初始播放等待时间,后续值为正在播放的数据的播放时间长度。
所述步骤3)计算多媒体时钟时间间隔方法为,遍历出所有队列中单个数据播放时间长度出现过的所有值,取这些值的最大公约数作为多媒体时钟的时间间隔,此种方法对帧率不同能够自适应,屏蔽了可变帧率情况。
所述步骤5)多媒体时钟定时依次访问每个队列,检查队列的播放等待时间,如果播放等待时间满足小于等于0,取队列第一个数据进行播放,并将队列播放等待时间置为此数据播放时间长度,如果不满足则播放等待时间减去多媒体时钟间隔时间长度。
所述步骤5)此动作会定时触发,每次触发都要做此步骤所述动作。
本发明的有益效果是:
网络音视频还原采用此同步方法,一种机制实现多种协议同步播放,采用较少的资源实现较多的功能,经测试采用此方法使用1个多媒体时钟可以达到32路以上音频或视频同步触发播放,众所周知多媒体时钟是系统稀有资源,同时开启多个多媒体时钟会造成时间不准确,进而播放速度忽慢忽快,采用此方法可以达到同时监控16个对象且不影响播放效果。
附图说明
图1为本发明工作流程图示意图。
图2为本发明音视频同步播放工作模型示意图。
具体实施方式
结合附图1,进一步阐述本发明的实施方案:
读取数据线程
1)数据源可以为sniffer或wirshark文件里面的网络IP包,或者实时的网络IP包;
2)对网络IP包进行协议解析;
3)封装音视频数据、播放时间长度、绝对时间为队列结点,根据IP端口等分别插入到相应队尾;
4)队列数据播放时间总长度大于1秒并且多媒体时钟未开启,如果满足则开启多媒体时钟;
5)队列未满,继续执行1);
6)如果队列满一直等待,直到队列又有空间执行1);
播放线程
7)多媒体时钟定时依次访问每个队列,检查队列的播放等待时间,如果播放等待时间满足小于等于0,取队列第一个数据进行播放,并将队列播放等待时间置为此数据播放时间长度,如果不满足则播放等待时间减去多媒体时钟间隔时间长度。
结合附图2,举例阐述本发明同步播放模块如何工作:
此图为三路音视频流同步播放情况,A是对象甲的视频,B为对象乙的视频,C为对象乙的音频。
1)三路音视频流单个数据播放时间长度出现了30、40、60,所以多媒体时钟间隔时间设为三数最大公约数10
2)队列初始播放等待时间,同步播放时间精度为毫秒,C路第一个包出现时间最早所以为0,A路比C路晚出现40毫秒所以为40,B路比C路晚出现20毫秒,所以是20。
3)定时器定时访各个队列播放等待时间,如果队列播放等待时间小于等于0,取队头数据进行播放,并将此队列播放等待时间改为队头数据播放时间长度;如果播放等待时间大于0,则将队列播放等待时间减去多媒体时钟间隔时间。
4)如图语音流第三个包后面丢失一个包,原本第三个包只能够播放30ms改为60ms,这样就补充了时间,实现个体之间声音与画面的同步。
Claims (9)
1.一种多路IP音视频流同步播放方法,其步骤为:
1)数据读取线程根据网络IP数据包传输协议对接收的网络IP数据包进行解析,得到数据采样的绝对时间、携带的时间戳和音视频数据;并根据携带的时间戳计算数据播放的时间长度;
2)数据读取线程根据网络IP数据包的IP、端口和数据类型将网络IP数据包划分为不同数据流,每一路数据流用一个队列保存,将1)解析出的信息构造为队列结点插入到相应队列中;
3)在每一队列中设一播放等待时间字段、一记录队列中所有数据播放时间总和的总时间字段,如果某队列的总时间字段大于设定值T,则启动多媒体时钟;
4)数据播放线程根据设定的多媒体时钟时间间隔,定时轮询所有队列:如果某队列的播放等待时间小于或等于设定值t,则取该队列的第一个结点数据进行播放,并将该队列的播放等待时间置为所播放结点的播放时间长度;如果队列的播放等待时间大于t,则将该队列的播放等待时间减去多媒体时钟间隔时间长度。
2.如权利要求1所述的方法,其特征在于如果某一队列满,则等待该队列有空间后数据读取线程执行步骤1)~3)。
3.如权利要求1或2所述的方法,其特征在于采用相邻时间戳做差方法计算数据播放的时间长度,如果做差结果等于0,则丢掉其中一个网络IP数据包,并与后续相邻时间戳做差。
4.如权利要求3所述的方法,其特征在于如果发生网络抖动情况,发生网络抖动前接收的最后一个网络IP数据包的数据播放时间采用绝对时间做差计算。
5.如权利要求3所述的方法,其特征在于每一队列的播放等待时间初始值为:取所有队列队头数据的绝对时间,以最早时间为参照时间,各队列队头的绝对时间减去该参照时间,得到相应队列的播放等待时间初始值。
6.如权利要求3所述的方法,其特征在于所述步骤3)中,如果某队列的总时间字段大于设定值T且多媒体时钟未启动,则取当前所有队列中单个数据播放时间长度的最大公约数作为多媒体时钟的时间间隔。
7.如权利要求6所述的方法,其特征在于所述设定值T为1秒。
8.如权利要求6所述的方法,其特征在于所述设定值t为0。
9.如权利要求3所述的方法,其特征在于设定数据播放时间长度的精度为5毫秒,将计算的数据播放时间长度按照二舍三入方法换算为5的倍数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110453411.2A CN102547482B (zh) | 2011-12-30 | 2011-12-30 | 一种多路ip音视频流同步播放方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110453411.2A CN102547482B (zh) | 2011-12-30 | 2011-12-30 | 一种多路ip音视频流同步播放方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102547482A true CN102547482A (zh) | 2012-07-04 |
CN102547482B CN102547482B (zh) | 2014-05-07 |
Family
ID=46353226
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110453411.2A Active CN102547482B (zh) | 2011-12-30 | 2011-12-30 | 一种多路ip音视频流同步播放方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102547482B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103139102A (zh) * | 2013-02-02 | 2013-06-05 | 中国人民解放军理工大学 | 多源多路径动态同步单宿信息匹配方法及其装置 |
CN103414957A (zh) * | 2013-07-30 | 2013-11-27 | 广东工业大学 | 一种音视频数据同步的方法和装置 |
CN103546662A (zh) * | 2013-09-23 | 2014-01-29 | 浙江工业大学 | 一种网络监控系统中音视频同步方法 |
CN105392024A (zh) * | 2015-10-28 | 2016-03-09 | 中国电子科技集团公司第二十八研究所 | 一种多源异类数据同步重放方法 |
CN109547865A (zh) * | 2018-11-09 | 2019-03-29 | 中国航空无线电电子研究所 | 视频编码数据的组织方法、同步播放方法、分段清除方法 |
CN112423072A (zh) * | 2020-09-02 | 2021-02-26 | 上海幻电信息科技有限公司 | 直播场景下的视频推送方法及系统 |
CN113965527A (zh) * | 2020-07-02 | 2022-01-21 | 迈络思科技有限公司 | 具有布防和/或自布防特征的时钟队列 |
CN114390314A (zh) * | 2021-12-30 | 2022-04-22 | 咪咕文化科技有限公司 | 可变帧率音视频处理方法、设备及存储介质 |
CN114915840A (zh) * | 2022-05-07 | 2022-08-16 | 广州力加贺电子科技有限公司 | 适用于嵌入式设备的音视频处理方法、装置、设备及介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1614994A (zh) * | 2004-11-30 | 2005-05-11 | 北京中星微电子有限公司 | Ip网络会议视音频同步的方法 |
CN1767601A (zh) * | 2005-10-21 | 2006-05-03 | 西安交通大学 | 一种支持多源流媒体的同步播放控制方法 |
CN1933594A (zh) * | 2005-09-14 | 2007-03-21 | 王世刚 | 多路音视频数据网络传输与同步播放的方法 |
CN102104580A (zh) * | 2009-12-21 | 2011-06-22 | 康佳集团股份有限公司 | 一种基于媒体服务器实现音频合成的方法及设备 |
-
2011
- 2011-12-30 CN CN201110453411.2A patent/CN102547482B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1614994A (zh) * | 2004-11-30 | 2005-05-11 | 北京中星微电子有限公司 | Ip网络会议视音频同步的方法 |
CN1933594A (zh) * | 2005-09-14 | 2007-03-21 | 王世刚 | 多路音视频数据网络传输与同步播放的方法 |
CN1767601A (zh) * | 2005-10-21 | 2006-05-03 | 西安交通大学 | 一种支持多源流媒体的同步播放控制方法 |
CN102104580A (zh) * | 2009-12-21 | 2011-06-22 | 康佳集团股份有限公司 | 一种基于媒体服务器实现音频合成的方法及设备 |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103139102A (zh) * | 2013-02-02 | 2013-06-05 | 中国人民解放军理工大学 | 多源多路径动态同步单宿信息匹配方法及其装置 |
CN103139102B (zh) * | 2013-02-02 | 2016-01-20 | 中国人民解放军理工大学 | 多源多路径动态同步单宿信息匹配方法及其装置 |
CN103414957A (zh) * | 2013-07-30 | 2013-11-27 | 广东工业大学 | 一种音视频数据同步的方法和装置 |
CN103546662A (zh) * | 2013-09-23 | 2014-01-29 | 浙江工业大学 | 一种网络监控系统中音视频同步方法 |
CN105392024A (zh) * | 2015-10-28 | 2016-03-09 | 中国电子科技集团公司第二十八研究所 | 一种多源异类数据同步重放方法 |
CN105392024B (zh) * | 2015-10-28 | 2018-04-24 | 中国电子科技集团公司第二十八研究所 | 一种多源异类数据同步重放方法 |
CN109547865A (zh) * | 2018-11-09 | 2019-03-29 | 中国航空无线电电子研究所 | 视频编码数据的组织方法、同步播放方法、分段清除方法 |
CN109547865B (zh) * | 2018-11-09 | 2021-09-24 | 中国航空无线电电子研究所 | 视频编码数据的组织方法、同步播放方法、分段清除方法 |
CN113965527A (zh) * | 2020-07-02 | 2022-01-21 | 迈络思科技有限公司 | 具有布防和/或自布防特征的时钟队列 |
CN112423072A (zh) * | 2020-09-02 | 2021-02-26 | 上海幻电信息科技有限公司 | 直播场景下的视频推送方法及系统 |
CN114390314A (zh) * | 2021-12-30 | 2022-04-22 | 咪咕文化科技有限公司 | 可变帧率音视频处理方法、设备及存储介质 |
CN114915840A (zh) * | 2022-05-07 | 2022-08-16 | 广州力加贺电子科技有限公司 | 适用于嵌入式设备的音视频处理方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN102547482B (zh) | 2014-05-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102547482B (zh) | 一种多路ip音视频流同步播放方法 | |
US10418066B2 (en) | System and method for synchronization of selectably presentable media streams | |
CN113225598B (zh) | 移动端音视频同步的方法、装置、设备及存储介质 | |
US10110650B2 (en) | Client side stream switching | |
US10034036B2 (en) | Media synchronization for real-time streaming | |
EP2300928B1 (en) | Client side stream switching | |
CN110248204A (zh) | 一种直播缓存的处理方法、装置、设备和存储介质 | |
US20090307368A1 (en) | Stream complexity mapping | |
WO2018183095A1 (en) | Low-latency mobile device audiovisual streaming | |
US20180192090A1 (en) | Method of implementing audio and video live broadcast and server | |
EP2538689A1 (en) | Adaptive media delay matching | |
KR100916505B1 (ko) | 정상 재생 타임을 이용한 스케일러블 비디오 코딩 정보와어드밴스드 오디오 코딩 정보의 동기화 지원 방법 및 장치 | |
CN108259964B (zh) | 一种视频播放速率调整方法及系统 | |
Mäki et al. | A layered model for quality estimation of HTTP video from QoS measurements | |
CN114697712B (zh) | 一种媒体流的下载方法、装置、设备及存储介质 | |
US8836861B2 (en) | Method and apparatus for processing a video signal | |
CN104823176A (zh) | 观看媒体标题的群组中的播放同步 | |
CN108540855B (zh) | 一种适用于网络直播场景下的自适应低延时流媒体播放方法 | |
WO2012047516A1 (en) | Adjusting audio and video synchronization of 3g tdm streams | |
CN110177294A (zh) | 播放器音视频同步方法及系统、存储介质及终端 | |
US20230031866A1 (en) | System and method for remote audio recording | |
Boronat et al. | Master selection policies for inter-destination multimedia synchronization in distributed applications | |
CN111726669B (zh) | 一种分布式解码设备及其音视频同步的方法 | |
CN114242067A (zh) | 语音识别方法、装置、设备和存储介质 | |
US9548998B1 (en) | Asynchronous communication system architecture |
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 |