【Stones from other hills】音频/视频同步算法
来源:互联网 发布:人工智能开发语言 py 编辑:程序博客网 时间:2024/05/08 23:53
请教一个音视频同步算法。
情况是这样的,我们同步网络把音频/视频分开传送到接收端,现在的问题关键问题的如果对这股流进行同步播放。
我现在的算法是这样的:
在发送方:
对于相同时刻的音频/视频帧,打上相同的时间戳(系统时间)
接收方:
保存两个队列,audio/video分别用来存放还未播放的音频和视频
1。当每接收到音频帧的时候,遍历此时的video队列,将此音频帧的时间戳跟每个视频帧的时间戳进行比较:
1)如果音频帧的时间在这个视频帧的前面,帧播放该音频
2)如果音频跟视频的时间戳相差在某个可以接受的误差内,则同时播放该音频/视频(并将视频帧从video队列中删除)
3)如果视频时间在前,则播放视频帧(并将视频帧从video队列中删除)
如果video队列中的最后一帧的时间都在这个audio帧之前,在此时会把整个video队列中的帧播放完,此时video队列将为空,那么将这个音频放入audio队列。
2.对接收到视频帧的时候,也做类似的处理。
现在我们在局域网内测试,没有任何的问题。
但是我自己发现这个算法还是有些问题:
1)音频和视频发送帧的频率不一样,假如audio的频率是video的3倍,那么播放时,会是3个3个音频帧地播放
2)如果网络比较差的话,只有一个通道是好的时,将不能正常播放。我现在采取的方法是设定一个时间,如果没有接收到帧的话,就认为该通道是断开的,然后就只管自己播放。这样可以解决一些问题,但是在这不判断这个流是断开的过程中,另外一个流的播放是停止的,这是个大问题。我看网络播放方面的软件都没有这个问题,它们的音频给视频似乎是各自独立的,除了在同步的时候。
- 【Stones from other hills】音频/视频同步算法
- 【Stones from other hills】视频解码优化
- 【Stones from other hills】MPEG-2传输流分析与视音频同步问题的研究
- 【Stones from other hills】mplayer音视频同步浅度学习
- 【Stones from other hills】手机视频监控系统需求
- 【Stones from other hills】视频监控的一些文章
- 【Stones from other hills】DM642DSP高效率视频编码优化方法
- 【Stones from other hills】手机视频监控系统小结
- 【Stones from other hills】手机视频监控系统小结 收藏
- 【Stones from other hills】跨公网监控
- 【Stones from other hills】水煮TCPMP
- 【Stones from other hills】RTP各种协议
- 【Stones from other hills】 编程习惯
- 【Stones from other hills】如何成为项目经理
- 【Stone from other hills】音视频同步原理[ffmpeg]
- 【Stones from other hills】IP视频通信中的丢包恢复技术
- 【Stones from other hills】各种MPEG-4 AVC/H.264 视频编解码器
- 【Stones from other hills】H3C 视讯会议解决方案
- Spring BlazeDs 集成问题
- 公司绝不会告诉你的20大秘密 值得一看很受用
- asp数字分页示例共三个
- RegQueryValueEx 读取 DWORD
- 用友的一道java笔试题(多态,Override)
- 【Stones from other hills】音频/视频同步算法
- 成语典故(1)
- 当程序员变成软件项目经理
- bl_startup.S分析
- 动力
- java终止线程的方法
- exe4j生成Java的exe文件
- 存储过程编写经验和优化措施
- 一键安装双击运行——Java安装程序制作