关闭

DirectShow音视频同步实验报告(3)

标签: audiographfiltervideo网络
8083人阅读 评论(4) 收藏 举报
分类:

混合音视频流

?

注:既然视频流不会影响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正常打时间戳

1Audio Renderer作为参考时钟

现象:音视频同步、连续播放。

2)系统时钟作为参考时钟

现象:音视频同步、连续播放。

?

2.3 Audio Sample打时间戳(中途复位一次,时间戳从0重打)、连续送出

1Audio Renderer作为参考时钟

现象:Audio Sample时间戳复位后音视频不同步。由于Audio Sample时间戳复位后流时间不走了,所以视频播放停止(Video Sample的时间戳因超前流时间而被阻塞住),但音频仍然正常播放。因此造成音视频不同步。

2)系统时钟作为参考时钟

现象:视频能够不受干扰地连续播放。音频在时间戳复位后有一部分数据(时间戳小于流时间的数据)被丢弃,所以播放中有一个跳变。

?

2.4 Audio Sample打时间戳(时间戳随机乱序)、连续送出

1Audio Renderer作为参考时钟

现象:音频连续播放。由于Audio Sample的时间戳将影响Filter Graph的流时间,导致视频的播放有时候出现快镜头,有时候出现停顿。最终音视频不同步。

2)系统时钟作为参考时钟

现象:视频连续播放,音频播放不连续。因为Filter Graph的流时间独立运行,所以视频能连续播放。音频数据Sample时间戳小于流时间的将被丢弃,大于流时间的将被阻塞,因此总的播放效果就是断断续续。

?

2.5 Audio Sample打(连续)时间戳、间隙送出(模拟网络阻塞情况)

1Audio Renderer作为参考时钟

现象:音视频均不能连续播放。因为在音频无数据送出时,Filter Graph的流时间是不走的,导致视频也停止播放(Video Sample的时间戳因超前流时间而被阻塞住);直到音频有数据了,流时间继续走动,视频也恢复播放。音频数据虽不能连续播放,但音频数据没有被丢失。

2)系统时钟作为参考时钟

现象:视频连续播放,音频断断续续,并且部分音频数据被跳过不播放。因为Filter Graph的流时间独立运行,所以视频能连续播放。音频数据Sample时间戳小于流时间的将被丢弃。

?

0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

EasyDarwin EasyClient中DirectShow采集音视频流程及几种采集方式介绍

前段时间EasyClient开放了DirectShow采集库,这个库底层采用DirectShow SDK的接口实现音视频的预览(播放)和采集;很多人可能还不太了解这个封装库的回调方式和之前的DShow...
  • SwordTwelve
  • SwordTwelve
  • 2015-12-13 13:24
  • 1009

音视频同步原理解析

音视频同步原理解析 2013-04-18 15:21:11 标签:音频视频 视频流中的DTS/PTS到底是什么? DTS(解码时间戳)和PTS(显示时间戳)分别是解码器进行解码...
  • titer1
  • titer1
  • 2014-09-27 17:12
  • 7479

关于音视频同步 ffplay的同步方式解析

今天有时间继续研究ffplay了,之前把重点放在编码解码上了,今天看了一下ffplay的音视频同步的代码,也是看了一个人的博客,但是这个对初学者可能还是有点看不懂,在这里就只对一个方法做解析,这个方法...
  • u014616531
  • u014616531
  • 2016-06-20 14:44
  • 1345

ffmpeg 如何音视频同步

output_example.c 中AV同步的代码如下(我的代码有些修改),这个实现相当简单,不过挺说明问题。 音视频同步方法:选择一个参考时钟,参考时钟上的时间是线性递增的,生成数据流时依...
  • wishfly
  • wishfly
  • 2016-06-08 16:23
  • 1724

音视频同步的简要总结

平台为嵌入式音视频解码器,使用linux作为操作系统,音频采用alsa架构。 一、STC(本地时钟作为一个基准) 如果是ts封装,可以使用PCR;如果为RTP封装,可以使用音频时间戳或者rtcp的...
  • gllilin
  • gllilin
  • 2015-09-09 17:11
  • 474

音视频的同步原理

1.   音视频同步的原理  2.  音视频同步的较正方法  3.  音视频同步时遇到的问题 声明:以下所有内容均为转载  1.原文转自:http://bbs.chinavid...
  • Beyond_cn
  • Beyond_cn
  • 2014-03-02 21:36
  • 7851

ffmpeg音视频同步原理

AVStream 该结构体描述一个媒体流 主要域的释义如下,其中大部分域的值可以由av_open_input_file根据文件头的信息确定,缺少的信息需要通过调用av_find_strea...
  • wh8_2011
  • wh8_2011
  • 2016-08-22 16:51
  • 1705

音视频同步原理

媒体内容在播放时,最令人头痛的就是音视频不同步。从技术上来说,解决音视频同步问题的最佳方案就是时间戳:首先选择一个参考时钟(要求参考时钟上的 时间是线性递增的);生成数据流时依据参考时钟上的时间给每...
  • coloriy
  • coloriy
  • 2015-03-17 10:28
  • 1658

音视频同步(播放)原理

1:音视频同步原理 每一帧音频或视频都有一个持续时间:duration: 采样频率是指将模拟声音波形进行数字化时,每秒钟抽取声波幅度样本的次数。 。正常人听觉的频率范围大约在20Hz~20kHz之间,...
  • zhuweigangzwg
  • zhuweigangzwg
  • 2014-05-14 18:05
  • 21624

多媒体 MP4V2 录制mp4(h264+aac)音视频同步

MP4录制程序是根据mpeg4ip中mpeg4ip-1.5.0.1\server\mp4live\file_mp4_recorder.cpp文件改的。程序支持h264+aac(raw 流)的写入方式,...
  • skdkjxy
  • skdkjxy
  • 2014-10-27 13:42
  • 3578
    个人资料
    • 访问:1189811次
    • 积分:15435
    • 等级:
    • 排名:第838名
    • 原创:53篇
    • 转载:10篇
    • 译文:135篇
    • 评论:1616条
    文章分类
    最新评论