CN103607664B - 一种嵌入式多媒体播放***的音视频同步方法 - Google Patents
一种嵌入式多媒体播放***的音视频同步方法 Download PDFInfo
- Publication number
- CN103607664B CN103607664B CN201310603239.3A CN201310603239A CN103607664B CN 103607664 B CN103607664 B CN 103607664B CN 201310603239 A CN201310603239 A CN 201310603239A CN 103607664 B CN103607664 B CN 103607664B
- Authority
- CN
- China
- Prior art keywords
- frame
- video
- packet
- audio
- time
- 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.)
- Active
Links
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种嵌入式多媒体播放***的音视频同步方法,其特征在于:包括如下步骤:步骤1.接收音视频数据流,并解码,步骤2.解码后的音视频帧流入显示缓冲区或插队缓冲区,解码后的音频帧进入音频缓冲区;对于按正常顺序解码后的视频帧进入显示缓冲区,对于前一分组解码晚于后一分组解码的前一分组视频帧进入插队缓冲区;步骤3.同步播放:本发明具有的优点和积极效果是:本发明应用于轨道交通行业PIS***中,完成多媒体信息从操作控制中心(OCC)下发并传输至车上,最终实现音视频同步展现给乘客的功能,提高乘客乘坐地铁车辆时的用户体验度。
Description
技术领域
本发明属于通信领域,尤其是涉及一种嵌入式多媒体播放***的音视频同步方法。
背景技术
由于网络的不可靠性和传输时延等因素,实时数据通信过程中经常会遇到诸如分组丢失、乱序、抖动、重复等一系列问题。为了能在网络中有效地传输实时数据,IETF(Internet Engineering Task Force,Internet工程任务组)开发了RTP(Real-timeTransport Protocol,实时传输协议)。RTP为交互式音频、视频等具有实时特性的数据提供端到端的传送服务,包括两个关系密切的协议RTP和RTCP(Real-time Transport ControlProtocol,实时传输控制协议)。
RTP是用于Internet上针对多媒体数据流的一种传输协议,但RTP本身并不能为按顺序传送数据包提供可靠的传送机制,也不提供流量控制或拥塞控制,它依靠RTCP提供这些服务。RTCP和RTP一起提供流量控制和拥塞控制服务。服务器利用RTCP信息动态地改变传输速率,甚至改变有效载荷类型。RTP和RTCP配合使用,它们能以有效的反馈和最小的开销使传输效率最佳化,因而特别适合传送网上的实时数据。
现有技术中,传统的PIS***中,多媒体信息的传输和发布是通过模拟或者半数字化的方式实现的,随着网络技术和计算机技术的发展,现有技术已无法满足用户对高清视频方面的要求。
发明内容
本发明要解决的问题是提供一种嵌入式多媒体播放***的音视频同步方法。
为解决上述技术问题,本发明采用的技术方案是:
一种嵌入式多媒体播放***的音视频同步方法,包括如下步骤:
步骤1.接收音视频数据流,并解码:
启动接收RTP音视频包的线程,接收RTP包,之后对其进行解析,解析其携带的数据类型,即RTP音频包或RTP视频包,若是RTP音频包进入音频接收缓冲区,后发送到音频解码器进行解码;若是RTP视频包进入排队缓冲区,首先对RTP视频包进行解码前的排序处理,后发送到视频解码器进行解码;
视频帧刚进入排队缓冲区内的处理过程:
RTP包直接进入排队缓冲区,开始进行排队解码,首先根据RTP视频包所携带的分组号,从后到前先找到该分组号所属分组的其他包的位置,然后在该分组内,利用自身携带的序列号在该分组内从大到小,开始逐个比较来快速确定自己在该分组的位置;
RTP视频帧解码过程中:
在第i分组即将解码完成时,判断第i+1分组是否有完整I帧:
若是,进行解码即可;
若否,将该分组移至缓冲区,之后判断第i+2分组是否有I帧:
若有进行解码,即将解码完成时,判断是否在播放第i+2分组数据;若是则丢弃第i+1分组,若否则启动第i+1分组解码;
若无将第i+2分组移到缓冲区,后判断是否接收到第i+1分组的视频帧:
若有则将第i+1分组移出缓冲区进行解码;
若无继续进行判断第i+3分组是否有I帧:
若无丢弃缓冲区中的第i+1分组;
若有进行解码,后根据显示缓冲区的反馈判断是否播放第i+3分组:
若播放,则丢弃第i+1分组和第i+2分组;
若不播放,则返回判断第i+1分组是否有完整I帧,循环判断。
步骤2.
解码后的音频帧进入音频缓冲区;
对于按正常顺序解码后的视频帧进入显示缓冲区,对于前一分组解码晚于后一分组解码的前一分组视频帧进入插队缓冲区。
步骤3.同步播放:
音频缓冲区内的音频帧进行连续播放;
显示缓冲区内的视频帧进行顺序播放,插队缓冲区的视频帧进行插队播放;
其中视频帧的播放时间是利用NTP和RTP时间戳计算出当前视频帧对应音频帧播放的时间而得到的,判断当前缓冲区的最前面一帧的时间标记与Time±△关系,其中Time±△表示允许视频帧进行播放的时间范围:
若当前缓冲区的最前面一帧的时间标记在Time±△范围内,则正常播放;
若当前缓冲区的最前面一帧的时间标记小于Time-△,(帧来晚了)丢弃该视频帧;
若当前缓冲区的最前面一帧的时间标记大于Time+△,(帧来早了)重复播放一次前一帧,之后再次比较,进行判断:
(1)若时间标记在Time±△范围内,则正常播放;
(2)若仍大于则转到抖动缓冲区,向前寻找下帧,直到前一帧总共重播3次,抖动缓冲区已有3帧,最后一次比较;若时间标记在Time±△范围内,则正常播放;
否则切换到以视频为标准,一次性调整音频,之后重新切换回到以音频为标准。
步骤4.显示缓冲区将信息反馈给视频解码器。
进一步的,在步骤1中,对于刚收到的RTP包若是这个分组的第一个包,首先判断自己的帧类型:
若不是I帧,直接根据分组号的大小确定自己的分组位置,在比较过程中,发现没有和自己一样的分组号,则移到第一个开辟新的块区;
若是I帧,找到自己分组的块区,进行是否有I帧判断,若该块区有已有I帧,则这个包自动丢弃;否则是一般情况,正常处理即可。
进一步的,在步骤2中,显示缓冲区和插队缓冲区的初始值大小根据视频压缩格式进行动态调整。
进一步的,在步骤3中,采取对接收到的音频帧采用基于播放时限的同步方法,用接收端缓存的音频帧来补偿网络的时延抖动,通过显示缓冲区来实现语音回放。
本发明具有的优点和积极效果是:本发明应用于轨道交通行业PIS***中,完成多媒体信息从操作控制中心(OCC)下发并传输至车上,最终实现音视频同步展现给乘客的功能,提高乘客乘坐地铁车辆时的用户体验度。
附图说明
图1是本发明的结构示意图;
图2是本发明的视频帧刚进入排队缓冲区的处理流程图;
图3是本发明的视频帧解码处理流程图;
图4是本发明的显示缓冲区内的视频帧处理流程图。
具体实施方式
如图1至4所示:
本发明一种嵌入式多媒体播放***的音视频同步方法,包括如下步骤:
步骤1.接收音视频数据流,排序后解码:
启动接收RTP音视频包的线程,接收RTP包,之后对其进行解析,解析其携带的数据类型,即RTP音频包或RTP视频包,若是RTP音频包进入音频接收缓冲区,后发送到音频解码器进行解码;若是RTP视频包进入排队缓冲区,首先对RTP视频包进行解码前的排序处理,后发送到视频解码器进行解码;
如图2所示,为视频帧刚进去排队缓冲区内的处理过程:
RTP视频包直接进入排队缓冲区,首先根据RTP视频包所携带的分组号,进行判断,
若没有和自己一样的分组号则开辟一个新组块;
若有从后到前先找到该分组号所属分组的其他包的位置,然后在该分组内,利用自身携带的序列号在该分组内从大到小,开始逐个比较来快速确定自己在该分组的位置;之后在判断是否为I帧,否的话,进行组内比较确定组内位置;
是为I帧的话,则判断该块区是否已有I帧,是的话则丢弃此帧,若不是则进行组内比较确定组内位置。
如图3所示,RTP视频帧解码过程中:
在第i分组即将解码完成时,判断第i+1分组是否有完整I帧:
若是,进行解码即可;
若否,将该分组移至缓冲区,之后判断第i+2分组是否有I帧:
若有进行解码,即将解码完成时,判断是否在播放第i+2分组数据;若是则丢弃第i+1分组,若否则启动第i+1分组解码;
若无将第i+2分组移到缓冲区,后判断是否接收到第i+1分组的视频帧:
若有则将第i+1分组移出缓冲区进行解码;
若无继续进行判断第i+3分组是否有I帧:
若无丢弃缓冲区中的第i+1分组;
若有进行解码,后根据显示缓冲区的反馈判断是否播放第i+3分组:
若播放,则丢弃第i+1分组和第i+2分组;
若不播放,则返回判断第i+1分组是否有完整I帧,循环判断。
步骤2.
解码后的音频帧进入音频缓冲区;
对于按正常顺序解码后的视频帧进入显示缓冲区,对于前一分组解码晚于后一分组解码的前一分组视频帧进入插队缓冲区;
步骤3.同步播放:
音频缓冲区内的音频帧进行连续播放;
显示缓冲区内的视频帧进行顺序播放,插队缓冲区的视频帧进行插队播放;
其中视频帧的播放时间是利用NTP和RTP时间戳计算出当前视频帧对应音频帧播放的时间而得到的,判断当前缓冲区的最前面一帧的时间标记与Time±△关系,其中Time±△表示允许视频帧进行播放的时间范围,如图4所示:
若当前缓冲区的最前面一帧的时间标记在Time±△范围内,则正常播放;
若当前缓冲区的最前面一帧的时间标记小于Time-△,(帧来晚了)丢弃该视频帧;
若当前缓冲区的最前面一帧的时间标记大于Time+△,(帧来早了)重复播放一次前一帧,之后再次比较,进行判断:
(1)若时间标记在Time±△范围内,则正常播放;
(2)若仍大于则转到抖动缓冲区,向前寻找下帧,直到前一帧总共重播3次,抖动缓冲区已有3帧,最后一次比较;若时间标记在Time±△范围内,则正常播放;
否则切换到以视频为标准,一次性调整音频,之后重新切换回到以音频为标准;
步骤4.显示缓冲区将信息反馈给视频解码器。
在步骤1中,对于一些特殊情况做以下处理:
对于刚到的RTP包若是这个分组的第一个包,首先判断自己的帧类型:
若不是I帧,直接根据分组号的大小确定自己的分组位置,在比较过程中,发现没有和自己一样的分组号,则移到第一个开辟新的块区;
若是I帧,找到自己分组的块区,进行是否有I帧判断,若该块区有已有I帧,则这个包自动丢弃;否则是一般情况,正常处理即可。
在步骤2中,显示缓冲区和插队缓冲区初始值大小根据视频编码格式动态可调,显示缓冲区为一个正常范围大小,即可以存放12帧视频帧大小的显示队列,上限为15帧,下限为3帧,当小于3或大于15帧时,表示下溢或上溢;
由于显示缓冲区更多地要考虑到音视频的同步问题,对音频进行连续播放,通过对视频处理来达到与音频数据的同步;
具体是采取对接收到的语音媒体采用基于播放时限的同步方法,用接收端缓存的语音媒体流来补偿网络的时延抖动,通过显示缓冲区的设计来实现回放。
以上对本发明的一个实施例进行了详细说明,但所述内容仅为本发明的较佳实施例,不能被认为用于限定本发明的实施范围。凡依本发明申请范围所作的均等变化与改进等,均应仍归属于本发明的专利涵盖范围之内。
Claims (4)
1.一种嵌入式多媒体播放***的音视频同步方法,其特征在于:包括如下步骤:
步骤1.接收音视频数据流,并解码:
启动接收RTP音视频包的线程,接收RTP包,之后对其进行解析,解析其携带的数据类型,即RTP音频包或RTP视频包,若是RTP音频包进入音频接收缓冲区,后发送到音频解码器进行解码;若是RTP视频包进入排队缓冲区,首先对RTP视频包进行解码前的排序处理,后发送到视频解码器进行解码;
视频帧刚进入排队缓冲区内的处理过程:
RTP包直接进入排队解码区,开始进行排队解码,首先根据RTP视频包所携带的分组号,从后到前先找到该分组号所属分组的其他包的位置,然后在该分组内,利用自身携带的序列号在该分组内从大到小,开始逐个比较来快速确定自己在该分组的位置;
在RTP视频帧解码过程中:
在第i分组即将解码完成时,判断第i+1分组是否有完整I帧:
若是,进行解码即可;
若否,将该分组移至缓冲区,之后判断第i+2分组是否有I帧:
若有进行解码,即将解码完成时,判断是否在播放第i+2分组数据;若是则丢弃第i+1分组,若否则启动第i+1分组解码;
若无将第i+2分组移到缓冲区,后判断是否接收到第i+1分组的视频帧:
若有则将第i+1分组移出缓冲区进行解码;
若无继续进行判断第i+3分组是否有I帧:
若无丢弃缓冲区中的第i+1分组;
若有进行解码,后根据显示缓冲区的反馈判断是否播放第i+3分组:
若播放,则丢弃第i+1分组和第i+2分组;
若不播放,则返回判断第i+1分组是否有完整I帧,循环判断;
步骤2.
解码后的音频帧进入音频缓冲区;
对于按正常顺序解码后的视频帧进入显示缓冲区,对于前一分组解码晚于后一分组解码的前一分组视频帧进入插队缓冲区;
步骤3.同步播放:
音频缓冲区内的音频帧进行连续播放;
显示缓冲区内的视频帧进行顺序播放,插队缓冲区的视频帧进行插队播放;
其中视频帧的播放时间是利用NTP和RTP时间戳计算出当前视频帧对应音频帧播放的时间而得到的,判断当前缓冲区的最前面一帧的时间标记与Time±△关系,其中Time±△表示允许视频帧进行播放的时间范围:
若当前缓冲区的最前面一帧的时间标记在Time±△范围内,则正常播放;
若当前缓冲区的最前面一帧的时间标记小于Time-△,则丢弃该视频帧;
若当前缓冲区的最前面一帧的时间标记大于Time+△,则重复播放一次前一帧,之后再次比较,进行判断:
(1)若时间标记在Time±△范围内,则正常播放;
(2)若仍大于则转到抖动缓冲区,向前寻找下帧,直到前一帧总共重播3次,抖动缓冲区已有3帧,最后一次比较;若时间标记在Time±△范围内,则正常播放;
否则切换到以视频为标准,一次性调整音频,之后重新切换回到以音频为标准;
步骤4.显示缓冲区将信息反馈给视频解码器。
2.根据权利要求1所述的嵌入式多媒体播放***的音视频同步方法,其特征在于:在步骤1中,对于刚到的RTP包若是这个分组的第一个包,首先判断自己的帧类型:
若不是I帧,直接根据分组号的大小确定自己的分组位置,在比较过程中,发现没有和自己一样的分组号,则移到第一个开辟新的块区;
若是I帧,找到自己分组的块区,进行是否有I帧判断,若该块区有已有I帧,则这个包自动丢弃;否则是一般情况,正常处理即可。
3.根据权利要求1所述的嵌入式多媒体播放***的音视频同步方法,其特征在于:在步骤2中,显示缓冲区和插队缓冲区的初始值大小根据视频压缩格式进行动态可调。
4.根据权利要求1所述的嵌入式多媒体播放***的音视频同步方法,其特征在于:在步骤3中,采取对接收到的音频帧采用基于播放时限的同步方法,用接收端缓存的音频帧来补偿网络的时延抖动,通过显示缓冲区来实现回放。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310603239.3A CN103607664B (zh) | 2013-11-22 | 2013-11-22 | 一种嵌入式多媒体播放***的音视频同步方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310603239.3A CN103607664B (zh) | 2013-11-22 | 2013-11-22 | 一种嵌入式多媒体播放***的音视频同步方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103607664A CN103607664A (zh) | 2014-02-26 |
CN103607664B true CN103607664B (zh) | 2016-09-14 |
Family
ID=50125861
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310603239.3A Active CN103607664B (zh) | 2013-11-22 | 2013-11-22 | 一种嵌入式多媒体播放***的音视频同步方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103607664B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105376613B (zh) * | 2015-12-10 | 2019-05-10 | 华为技术有限公司 | 一种快速频道切换方法、服务器及iptv*** |
CN107040748A (zh) * | 2016-02-03 | 2017-08-11 | 北京机电工程研究所 | 一种监控与视频会议应用整合平台和方法 |
CN105847862A (zh) * | 2016-03-30 | 2016-08-10 | 乐视控股(北京)有限公司 | 云导播台及其断流续播方法 |
CN106791271B (zh) * | 2016-12-02 | 2019-08-13 | 福建星网智慧科技股份有限公司 | 一种音视频同步方法 |
CN108495164B (zh) * | 2018-04-09 | 2021-01-29 | 珠海全志科技股份有限公司 | 音视频同步处理方法及装置、计算机装置及存储介质 |
CN110417715A (zh) * | 2018-04-28 | 2019-11-05 | 北京视联动力国际信息技术有限公司 | 一种基于视联网的组帧方法和装置 |
CN113014586B (zh) * | 2021-03-04 | 2022-09-13 | 即时匹配(上海)网络科技有限公司 | Rtp数据包乱序处理及重组帧方法和*** |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102665141A (zh) * | 2012-05-16 | 2012-09-12 | 哈尔滨工业大学深圳研究生院 | 一种基于rtp封装的avs音视频预同步方法 |
CN102932676A (zh) * | 2012-11-14 | 2013-02-13 | 武汉烽火众智数字技术有限责任公司 | 基于音视频同步的自适应带宽传输和播放方法 |
-
2013
- 2013-11-22 CN CN201310603239.3A patent/CN103607664B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102665141A (zh) * | 2012-05-16 | 2012-09-12 | 哈尔滨工业大学深圳研究生院 | 一种基于rtp封装的avs音视频预同步方法 |
CN102932676A (zh) * | 2012-11-14 | 2013-02-13 | 武汉烽火众智数字技术有限责任公司 | 基于音视频同步的自适应带宽传输和播放方法 |
Non-Patent Citations (3)
Title |
---|
基于RTP/RTCP协议的音视频同步算法;漆峰;《世界科技研究与发展》;20121031;第34卷(第5期);732-734 * |
基于嵌入式操作***的流媒体的研究与应用;邓丽娜;《中国优秀硕士学位全文数据库》;20060815;42-48 * |
基于嵌入式流媒体播放***的研究与实现;魏立强;《中国优秀硕士学位论文全文库》;20111215;33-42 * |
Also Published As
Publication number | Publication date |
---|---|
CN103607664A (zh) | 2014-02-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103607664B (zh) | 一种嵌入式多媒体播放***的音视频同步方法 | |
CN101271720B (zh) | 一种手机流媒体音视频的同步方法 | |
CN103338386B (zh) | 基于简化时间戳的音视频同步方法 | |
KR101927145B1 (ko) | 다른 네트워크들을 통해 수신된 콘텐츠의 렌더링을 동기화하기 위한 디코더 및 이러한 디코더에서의 방법 | |
CN104618786B (zh) | 音视频同步方法和装置 | |
CN105247437B (zh) | 同步多个ott流传输客户端 | |
CN201781583U (zh) | 多路服务器录像回放同步控制*** | |
CN101030938B (zh) | QoS自适应的P2P流媒体数据组织与传输***及方法 | |
CN102742249B (zh) | 用于媒体流同步的方法、***和装置 | |
CN102761776B (zh) | 基于SVC的P2PVoD***视音频同步方法 | |
CN109906613A (zh) | 音频和视频的多模式同步渲染 | |
CN101827271B (zh) | 音频视频同步方法、装置以及数据接收终端 | |
CN103546662A (zh) | 一种网络监控***中音视频同步方法 | |
CN113099310A (zh) | 基于安卓平台的实时媒体内视音频协调法 | |
WO2006006980A3 (en) | Maintaining synchronization of streaming audio and video using internet protocol | |
TW200820777A (en) | System and method of audio/video streaming | |
WO2007095478A3 (en) | Method and system for streaming digital video content to a client in a digital video network | |
CN107005729A (zh) | 用于多媒体和文件传输的传输接口 | |
EP1919217A3 (en) | Apparatus and method for providing in a terminal a pause function for a broadcast stream | |
JP6516767B2 (ja) | Mmtpデカプセル化バッファのシグナリング及び動作 | |
CN103888813A (zh) | 一种音视频同步的实现方法及*** | |
CN101682562A (zh) | 用于修改句子内的话音突峰的回放时序而不影响可懂度的方法和设备 | |
CN107438192A (zh) | 音视频播放同步的方法及相关***和多媒体播放终端 | |
KR20160040320A (ko) | 다중경로 레이트 적응 | |
CN101202613B (zh) | 一种用于时钟同步的终端 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
PE01 | Entry into force of the registration of the contract for pledge of patent right |
Denomination of invention: An Audio Video Synchronization Method for Embedded Multimedia Playback System Effective date of registration: 20230921 Granted publication date: 20160914 Pledgee: Bank of Beijing Limited by Share Ltd. Tianjin branch Pledgor: TIANJIN BEIHAI COMMUNICATION TECHNOLOGY Co.,Ltd. Registration number: Y2023120000081 |
|
PE01 | Entry into force of the registration of the contract for pledge of patent right |