首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从Mediacodec同步解码的音频和视频数据

从Mediacodec同步解码的音频和视频数据
EN

Stack Overflow用户
提问于 2013-03-29 04:53:18
回答 1查看 6.6K关注 0票数 7

我想用MediaExtractorMediaCodec API编写一个简单的音视频播放器。

我能够解码和渲染audiovideo。但是,我错过了audio - video同步。

我找不到任何应用程序接口来控制audiovideo之间的同步。谁能告诉我,如何同步解码的audiovideo数据?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-29 07:48:19

在安卓源代码中,有一个基于MediaCodec API的player引擎实现示例。您可以在frameworks/av/cmds/stagefright/SimplePlayer.cpp上查找SimplePlayer

在这个播放器引擎实现中,MediaCodec的输出是dequeued,并被推入一个队列,如here所示。请检查第439 - 450行以了解完整的情况。

一旦缓冲区可用,就有一个简单的AV Sync机制实现了here。请参考508 -521行。在该示例中,仅考虑一个轨道,并且因此从systemTimeALooper::nowUs导出nowUs,即当前时间。

在您的代码中,您可以考虑始终在audio的基础上呈现first-come-first-serve,并且对于您的video track,您可以从audio track中派生 nowUs

一个简单的实现可以是nowUs = getAudioLastPresentationTime(),其中getAudioLastPresentationTime将返回从audio MediaCodec发送到audio renderer的最后一个presentationTimeUs

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15691933

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档