DirectShow音视频同步实验报告(3)
2004-09-13 18:19
357 查看
混合音视频流
?
注:既然视频流不会影响Filter Graph的流时间,则视频流的播放情况不会影响到音频流的播放。本节主要讨论音频流播放情况对视频流播放的影响。
?
Filter Graph如图4:
?
图4 混合音视频流的Filter Graph
?
1.? Filter Graph不使用参考时钟
?
现象:音频正常、连续播放,视频快镜头播放。音视频不同步!
?
2.? Filter Graph使用参考时钟
?
2.1 Audio Sample不打时间戳
Audio Sample不打时间戳,音频流就不会影响Filter Graph的流时间。不管以Audio Renderer还是以系统时钟作为参考时钟,音视频均能同步、连续播放。
?
2.2 Audio Sample正常打时间戳
(1)Audio Renderer作为参考时钟
现象:音视频同步、连续播放。
(2)系统时钟作为参考时钟
现象:音视频同步、连续播放。
?
2.3 Audio Sample打时间戳(中途复位一次,时间戳从0重打)、连续送出
(1)Audio Renderer作为参考时钟
现象:Audio Sample时间戳复位后音视频不同步。由于Audio Sample时间戳复位后流时间不走了,所以视频播放停止(Video Sample的时间戳因超前流时间而被阻塞住),但音频仍然正常播放。因此造成音视频不同步。
(2)系统时钟作为参考时钟
现象:视频能够不受干扰地连续播放。音频在时间戳复位后有一部分数据(时间戳小于流时间的数据)被丢弃,所以播放中有一个跳变。
?
2.4 Audio Sample打时间戳(时间戳随机乱序)、连续送出
(1)Audio Renderer作为参考时钟
现象:音频连续播放。由于Audio Sample的时间戳将影响Filter Graph的流时间,导致视频的播放有时候出现快镜头,有时候出现停顿。最终音视频不同步。
(2)系统时钟作为参考时钟
现象:视频连续播放,音频播放不连续。因为Filter Graph的流时间独立运行,所以视频能连续播放。音频数据Sample时间戳小于流时间的将被丢弃,大于流时间的将被阻塞,因此总的播放效果就是断断续续。
?
2.5 Audio Sample打(连续)时间戳、间隙送出(模拟网络阻塞情况)
(1)Audio Renderer作为参考时钟
现象:音视频均不能连续播放。因为在音频无数据送出时,Filter Graph的流时间是不走的,导致视频也停止播放(Video Sample的时间戳因超前流时间而被阻塞住);直到音频有数据了,流时间继续走动,视频也恢复播放。音频数据虽不能连续播放,但音频数据没有被丢失。
(2)系统时钟作为参考时钟
现象:视频连续播放,音频断断续续,并且部分音频数据被跳过不播放。因为Filter Graph的流时间独立运行,所以视频能连续播放。音频数据Sample时间戳小于流时间的将被丢弃。
?
?
注:既然视频流不会影响Filter Graph的流时间,则视频流的播放情况不会影响到音频流的播放。本节主要讨论音频流播放情况对视频流播放的影响。
?
Filter Graph如图4:
?
图4 混合音视频流的Filter Graph
?
1.? Filter Graph不使用参考时钟
?
现象:音频正常、连续播放,视频快镜头播放。音视频不同步!
?
2.? Filter Graph使用参考时钟
?
2.1 Audio Sample不打时间戳
Audio Sample不打时间戳,音频流就不会影响Filter Graph的流时间。不管以Audio Renderer还是以系统时钟作为参考时钟,音视频均能同步、连续播放。
?
2.2 Audio Sample正常打时间戳
(1)Audio Renderer作为参考时钟
现象:音视频同步、连续播放。
(2)系统时钟作为参考时钟
现象:音视频同步、连续播放。
?
2.3 Audio Sample打时间戳(中途复位一次,时间戳从0重打)、连续送出
(1)Audio Renderer作为参考时钟
现象:Audio Sample时间戳复位后音视频不同步。由于Audio Sample时间戳复位后流时间不走了,所以视频播放停止(Video Sample的时间戳因超前流时间而被阻塞住),但音频仍然正常播放。因此造成音视频不同步。
(2)系统时钟作为参考时钟
现象:视频能够不受干扰地连续播放。音频在时间戳复位后有一部分数据(时间戳小于流时间的数据)被丢弃,所以播放中有一个跳变。
?
2.4 Audio Sample打时间戳(时间戳随机乱序)、连续送出
(1)Audio Renderer作为参考时钟
现象:音频连续播放。由于Audio Sample的时间戳将影响Filter Graph的流时间,导致视频的播放有时候出现快镜头,有时候出现停顿。最终音视频不同步。
(2)系统时钟作为参考时钟
现象:视频连续播放,音频播放不连续。因为Filter Graph的流时间独立运行,所以视频能连续播放。音频数据Sample时间戳小于流时间的将被丢弃,大于流时间的将被阻塞,因此总的播放效果就是断断续续。
?
2.5 Audio Sample打(连续)时间戳、间隙送出(模拟网络阻塞情况)
(1)Audio Renderer作为参考时钟
现象:音视频均不能连续播放。因为在音频无数据送出时,Filter Graph的流时间是不走的,导致视频也停止播放(Video Sample的时间戳因超前流时间而被阻塞住);直到音频有数据了,流时间继续走动,视频也恢复播放。音频数据虽不能连续播放,但音频数据没有被丢失。
(2)系统时钟作为参考时钟
现象:视频连续播放,音频断断续续,并且部分音频数据被跳过不播放。因为Filter Graph的流时间独立运行,所以视频能连续播放。音频数据Sample时间戳小于流时间的将被丢弃。
?
相关文章推荐
- DirectShow音视频同步实验报告(2)
- DirectShow音视频同步实验报告(1)
- directshow音视频录制同步问题
- 【python实验报告】用urllib来爬取网站页面中的图片和视频
- 【Android】实验6 在应用程序中播放音频和视频 截止提交报告时间2016.4.21
- DirectShow音视频同步 推荐
- 浅析DirectShow音视频同步解决方案
- 同步机制实验报告_Nachos Lab3
- 浅析DirectShow音视频同步解决方案
- 浅析DirectShow音视频同步解决方案
- 浅析DirectShow音视频同步解决方案
- 教你轻松明白音视频同步技术
- IPv6实验报告
- 第三周实验报告 任务4
- 实验报告 2
- 20155207 《Java程序设计》实验报告二:Java面向对象程序设计
- 第四周实验报告1
- 第四周实验报告1(计算三角形的周长面积)
- 第四周实验报告(一)
- 第三周C++实验报告(2)