`
923723914
  • 浏览: 637075 次
文章分类
社区版块
存档分类
最新评论

音视频同步-时间戳

 
阅读更多

音视频同步-时间戳

   媒体内容在播放时,最令人头痛的就是音视频不同步。从技术上来说,解决音视频同步问题的最佳方案就是时间戳:首先选择一个参考时钟(要求参考时钟上的

时间是线性递增的);生成数据流时依据参考时钟上的时间给每个数据块都打上时间戳(一般包括开始时间和结束时间);在播放时,读取数据块上的时间戳,同

时参考当前参考时钟上的时间来安排播放(如果数据块的开始时间大于当前参考时钟上的时间,则不急于播放该数据块,直到参考时钟达到数据块的开始时间;如

果数据块的开始时间小于当前参考时钟上的时间,则“尽快”播放这块数据或者索性将这块数据“丢弃”,以使播放进度追上参考时钟)。

可见,避免音视频不同步现象有两个关键——一是在生成数据流时要打上正确的时间戳。如果数据块上打的时间戳本身就有问题,那么播放时再怎么调整也于

事无补。假如,视频流内容是从0s开始的,假设10s时有人开始说话,要求配上音频流,那么音频流的起始时间应该是10s,如果时间戳从0s或其它时间开始打,

则这个混合的音视频流在时间同步上本身就出了问题。打时间戳时,视频流和音频流都是参考参考时钟的时间,而数据流之间不会发生参考关系;也就是说,视频

流和音频流是通过一个中立的第三方(也就是参考时钟)来实现同步的。第二个关键的地方,就是在播放时基于时间戳对数据流的控制,也就是对数据块早到或晚

到采取不同的处理方法。图2.8中,参考时钟时间在0-10s内播放视频流内容过程中,即使收到了音频流数据块也不能立即播放它,而必须等到参考时钟的时间达

到10s之后才可以,否则就会引起音视频不同步问题。

基于时间戳的播放过程中,仅仅对早到的或晚到的数据块进行等待或快速处理,有时候是不够的。如果想要更加主动并且有效地调节播放性能,需要引入一个

反馈机制,也就是要将当前数据流速度太快或太慢的状态反馈给“源”,让源去放慢或加快数据流的速度。熟悉DirectShow的读者一定知道,DirectShow中的

质量控制(Quality Control)就是这么一个反馈机制。DirectShow对于音视频同步的解决方案是相当出色的。但WMF SDK在播放时只负责将ASF数据流读出并

解码,而并不负责音视频内容的最终呈现,所以它也缺少这样的一个反馈机制。

为了更好地理解基于时间戳的音视频同步方案,下面举一个生活中的例子。假设你和你的一个朋友约好了今天18:00在沪上广场见面,然后一起吃饭,再去打

游戏。实际上,这个18:00就是你和你朋友保持同步的一个时间点。结果你17:50就到了沪上广场,那么你必须等你的朋友。10分钟过后,你的朋友还没有到,这

时他打来电话说有事耽搁了,要晚一点才能到。你没办法,因为你已经在旁边的餐厅预订了位置,如果不马上赶过去,预订就会被取消,于是你告诉你的朋友直接

到餐厅碰头吧,要他加快点。于是在餐厅将来的某个时间点就成为你和你朋友的又一个同步点。虽然具体时间不定(要看你朋友赶过来的速度),但这样努力的方

向是对的,你和你朋友肯定能在餐厅见到面。结果呢?你朋友终于在18:30赶过来了,你们最终“同步”了。吃完饭19:30了,你临时有事要处理一下,于是跟你

朋友再约好了20:00在附近的一家游戏厅碰头。你们又不同步了,但在游戏厅将来的某个时间点你们还是会再次同步的。

悟出什么道理了没有?其实,同步是一个动态的过程,是一个有人等待、有人追赶的过程。同步只是暂时的,而不同步才是常态。人们总是在同步的水平线上

振荡波动,但不会偏离这条基线太远。
分享到:
评论

相关推荐

    关于RTP时间戳及多媒体通信同步的问题

    RTP媒体间的同步原理 RTP媒体间的同步原理 这个图片有些问题。

     一种改进的基于时间戳的空间音视频同步方法

    为了解决此问题,提出了一种改进的基于时间戳的空间音视频同步方法,该方法采用一种相对时间戳映射模型,结合接收端同步检测和缓冲设计,能够在无需全网时钟和反馈通道的情况下,实现空间通信中的音视频同步传输,并...

    RTP lip sync

    分析音频和视频同步的标准以及造成音视频不同步的原因,提出一种基于RTP/RTCP协议的音视频同步控制方法。 以音频为主媒体,视频为从媒体,在接收端通过设置缓冲区实现音频流的媒体内同步,通过比较音视频数据包的...

    基于FFMPEG解码的音视频同步实现1

    摘要:为实现音视频同步播放,针对音视频数据同时被采集,但编码和存储独立的情况,提出了将音频播放时钟作为同步时钟,采用时间戳技术实现历史音视频同步播放。该方法使用

    详解音视频同步技术设计与实现

    本文设计实现了一种适应不同网络环境的音视频同步方案。设计中利用RTP时间戳及循环缓冲区在可靠网络环境下对音视频进行同步,以及在动态网络环境下,利用RTCP反馈控制来动态改变音视频编码方式的同步方案。此方案...

    基于RTP/ RTCP的音视频同步方法研究 (2011年)

    以音频为主媒体,视频为从媒体,在接收端通过设置缓冲区实现音频流的媒体内同步,通过比较音视频数据包的时间戳判断同步关系,对视频采取重复或丢弃的方法实现音视频同步控制。在实验环境下模拟音视频流经网络传输后在...

    音视频同步原理与代码

    DTS(解码时间戳)和PTS(显示时间戳)分别是解码器进行解码和显示帧时相对于SCR(系统参考)的时间戳。SCR可以理解为解码器应该开始从磁盘读取数据时的时间。 mpeg文件中的每一个包都有一个SCR时间戳并且这个时间戳...

    RTSP时间戳计算工具

    根据RTSP流中RTP时间戳,以及RTCP中的信息,计算精确播放时间,以及音频视频时间差。

    ffmpeg处理音视频流程

    ffmpeg处理音视频流程。ffmpeg基本信息查询命令。ffmpeg处理流数据的基本步骤。将MP4转FLV格式。从MP4截取一段视频。ffmpeg H264解码与编码流程。ffmpeg AAC编码流程。...音视频同步方式。播放视频的基本思路。

    ffmpeg里的一种同步方法

    ffmpeg里的一种同步方法 有关时间戳的问题 有效实现音视频同步编解码

    流媒体播放器源码下载

     4、音视频码流的同步存储,文件存储时以当前系统的时间戳作为音视频 播放时的索引,方便在文件播放时以时间戳作为检索条件来点播文件;  5、视频播放格式上支持 h.264、mpeg4、mpeg2 等,音频播放格式上支 持 ...

    流媒体播放器SDK接口描述文档

     4、音视频码流的同步存储,文件存储时以当前系统的时间戳作为音视频 播放时的索引,方便在文件播放时以时间戳作为检索条件来点播文件;  5、视频播放格式上支持 h.264、mpeg4、mpeg2 等,音频播放格式上支 持 ...

    AVPlay:用于同步播放带有音频的视频文件的 UI。-matlab开发

    请注意,同步是通过一次播放带有时间戳的帧来实现的。 如果处理成本高昂,音频或视频可能会变得断断续续——但会保持同步。 这种环境对于其他类型信号的同步分析或可视化可能很有用(经过适度的修改)。

    F1 TV Playback Controls-crx插件

    90%-[home]:搜索到视频的开头-[结束]:搜索到视频的末尾-[s]:在不同选项卡中的视频供稿之间同步时间戳0.4.4的发行说明-修复了选项卡同步常见问题解答/故障排除:我已经有了扩展名。 我该如何投放? 右键单击视频...

    flvAnalyser

    5 音视频同步分析 6 日志记录 正常文件INFO级别为主 遇到错误,黄色,红色,橙色提示 7语法指南(FLV基本语法) 8 视频、音频ES提取存文件; 9 时间信息提取存文件; [可选纯视频,纯音频,音视频交叉]

    CYS多功能摄像头管理工具 v1.0.rar

    同步录音:具备良好的音视频同步效果。 占空间小:连续监控24小时只需2-8G的磁盘空间。 远程报警:检测到人脸后拍照,并发送到指定的邮箱。 延长距离:15米USB延长线(带信号放大器)、USB延长器。 其它功能:...

     校园无线视频监控系统的设计与应用

     为解决校园内及周边视频监控点...在数据传输中利用RTP协议中时间戳,解决音视频同步的问题,对监控系统的客户端与服务器端进行了设计。实际应用表明,该系统设计合理,可靠性好,能对校园内外目标实现有效监控。

    基于3G网络的网络视频监控系统研究

    用流媒体技术,搭建基于PC的简单...个过程中,为了保证音频数据与视频数据同步,达到比较好的视频监控效果,采用 了时间戳技术对数据进行控制;在监控过程中采用逻辑锁机制,有效的解决了编码 转换过程中可能产生的冲突

    网络视频会议存储与回放功能的实现* (2005年)

    讨论了在基于纯软件的网络视频会议中存储与...播放时先解压缩,然后根据写入的时间戳和线程同步技术进行视、音频自适应同步播放。由于播放器集成在系统中,有利于会议信息保密,已成功应用于交通部网络视频会议系统。

    Clockkit:准确的分布式时间戳服务

    无需额外的硬件,该时钟就可以将来自多台PC的传感器数据(头部和眼动仪,生物特征数据,捕获的视频,驾驶模拟器数据)相关联,其延迟和抖动平均不到10微秒,最坏情况下只有100微秒。 PC驱动的执行器(例如运动基座...

Global site tag (gtag.js) - Google Analytics