发明名称 一种嵌入式多媒体播放系统的音视频同步方法
摘要 本发明提供一种嵌入式多媒体播放系统的音视频同步方法,其特征在于:包括如下步骤:步骤1.接收音视频数据流,并解码,步骤2.解码后的音视频帧流入显示缓冲区或插队缓冲区,解码后的音频帧进入音频缓冲区;对于按正常顺序解码后的视频帧进入显示缓冲区,对于前一分组解码晚于后一分组解码的前一分组视频帧进入插队缓冲区;步骤3.同步播放:本发明具有的优点和积极效果是:本发明应用于轨道交通行业PIS系统中,完成多媒体信息从操作控制中心(OCC)下发并传输至车上,最终实现音视频同步展现给乘客的功能,提高乘客乘坐地铁车辆时的用户体验度。
申请公布号 CN103607664A 申请公布日期 2014.02.26
申请号 CN201310603239.3 申请日期 2013.11.22
申请人 天津市北海通信技术有限公司 发明人 张涛
分类号 H04N21/6437(2011.01)I;H04N21/8547(2011.01)I;H04N21/4405(2011.01)I;H04N21/439(2011.01)I 主分类号 H04N21/6437(2011.01)I
代理机构 天津滨海科纬知识产权代理有限公司 12211 代理人 韩敏
主权项 一种嵌入式多媒体播放系统的音视频同步方法,其特征在于:包括如下步骤:步骤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.显示缓冲区将信息反馈给视频解码器。
地址 300384 天津市滨海新区高新区华苑产业区竹苑路6号D座401