OpenCore音视频同步分析

原创 2005年04月27日 13:24:00

    OpenCore作为Android系统的多媒体框架,在音视频编解码及播放功能上起着至关重要的作用。OpenCore的音视频同步相对来说比较简单。在播放引擎初始化的时候,会在ParserNode里创建一个时钟,这个时钟里有两个时间,一个是绝对时间,即系统时间,另一个是相对时间,即相对于播放起始点的时间。系统时间是一直在走的,而相对时间跟绝对时间的映射并不是一成不变的。比如说播放暂停时,相对时间不走了,而绝对时间还在走,这样当恢复播放的时候,二者之间的映射关系要重新设置。还有做Seek的时候也会发生变化。

    时钟是以音频的播放为起始点的,意思就是说,当音频解完一个数据包,通过解码Node和输出Node之间的Port将数据发送到输出Node,输出Node又写入AudioTrack的缓冲区时,时钟才开始启动,由于时钟的精度有限,累计一段时间会有误差,当误差累积到一个阈值时,时钟会校对一次,设置成音频的PTS。视频解完码之后会将视频的PTS同这个时钟的相对时间比较,如果比时钟小说明视频慢了,如果差值在50ms之内,输出Node还是会将视频数据发送到SurfaceOutput输出显示,如果大于50ms就丢弃视频数据。反过来,如果PTS大于时钟时间,说明视频提前了,要等一段时间才能播放,这时就启动一个定时器,等到与pts时间一致了才送去播放。

android媒体开发--OpenCore和Stagefright(一)

我2013年进入安卓车载行业,到现在将近4年时间。   车载行业涉及到“行车记录”(Camera、MediaRecorder),本地资源SD卡、U盘“媒体播放器”(MediaPlayer、Media...
  • xmc281141947
  • xmc281141947
  • 2017年03月07日 15:59
  • 715

OpenCore学习-OpenCore介绍及与stagefright的对比

一、OpenCore简介         OpenCore是Android的多媒体核心,采用C++实现,定义了全功能的操作系统移植层(OSCL),各种基本的功能均被封装成类的形式,各层次之间的接口多使...
  • mxsgoden
  • mxsgoden
  • 2013年10月22日 16:06
  • 1221

关于ffmpeg和opencore的学习

需要在android系统中支持RM视频格式的播放。而且不是在应用层修改添加插件而是需要修改android底层的代码需要修改opencore中的东西(android2.2以前,android2.3后不再...
  • xia2012sj
  • xia2012sj
  • 2011年07月19日 17:07
  • 1758

Gstreamer的音视频同步

一 概述     Gstreamer的音频视频同步,概括起来是一个比较大的问题,因为在网上可以看到很多音视频同步的办法。这里我们只看最普通的一种。以音频时钟做为参考时钟(要求参考时钟上的时间...
  • jiangzhe1224
  • jiangzhe1224
  • 2014年11月13日 15:02
  • 398

ffplay的音视频同步分析

以前工作中参与了一些音视频程序的开发,不过使用的都是芯片公司的SDK,没有研究到更深入一层,比如说音视频同步是怎么回事。只好自己抽点时间出来分析开源代码了,做音视频编解码的人都知道ffmpeg,他在各...
  • maimang1001
  • maimang1001
  • 2014年08月17日 16:36
  • 3561

WebRTC音视频同步机制实现分析

2016-11-25 dora WebRTC编风网 WebRTC编风网 来源:编风网 作者:weizhenwei,编风网专栏作家 音视频同步事关多媒体产品的最直观用户体验,是音视频媒体数据传输...
  • dj0379
  • dj0379
  • 2016年11月25日 14:32
  • 1379

ffmpeg+sdl教程----编写一个简单的播放器5(同步视频到音频)

视频 音频 时钟同步
  • mu399
  • mu399
  • 2010年08月16日 21:06
  • 12727

音视频同步原理

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

ffplay音视频同步分析(一)

先给出与同步有关的Clock的结构体,为了简化分析,我把Clock的一些字段删掉了,如有有兴趣可查看源码:typedef struct Clock { double pts; ...
  • qq_24283329
  • qq_24283329
  • 2017年05月26日 12:11
  • 956

基于HLS(HTTP Live Streaming)的视频直播分析与实现

HLS(HTTP Live Streaming)的分析:
  • czhxinyu
  • czhxinyu
  • 2014年04月12日 17:32
  • 2094
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:OpenCore音视频同步分析
举报原因:
原因补充:

(最多只允许输入30个字)