时间戳的简单同步算法,便于进一步理解音视频同步概念:
博文来源:stone_kingnet的专栏
在发送方:
对于相同时刻的音频/视频帧,打上相同的时间戳(系统时间)
接收方:
保存两个队列,audio/video分别用来存放还未播放的音频和视频
1。当每接收到音频帧的时候,遍历此时的video队列,将此音频帧的时间戳跟每个视频帧的时间戳进行比较:
1)如果音频帧的时间在这个视频帧的前面,帧播放该音频
2)如果音频跟视频的时间戳相差在某个可以接受的误差内,则同时播放该音频/视频(并将视频帧从video队列中删除)
3)如果视频时间在前,则播放视频帧(并将视频帧从video队列中删除)
如果video队列中的最后一帧的时间都在这个audio帧之前,在此时会把整个video队列中的帧播放完,此时video队列将为空,那么将这个音频放入audio队列。
2.对接收到视频帧的时候,也做类似的处理
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/stone_kingnet/archive/2008/10/20/3111341.aspx
http://blog.sina.com.cn/s/blog_672c5a470100pznm.html
时间: 2024-10-01 03:18:08