gpt4 book ai didi

android - 同步来自 Mediacodec 的解码音频和视频数据

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:25:40 25 4
gpt4 key购买 nike

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

我能够解码和呈现音频视频。但是,我缺少 audio - video 同步。

我找不到任何 API 来控制 audiovideo 之间的同步。有人能告诉我,如何同步解码的audiovideo 数据吗?

最佳答案

在 Android 源代码中,有一个基于 MediaCodec API 的示例 player 引擎实现。您可以检查位于 frameworks/av/cmds/stagefright/SimplePlayer.cppSimplePlayer .

在这个播放器引擎实现中,MediaCodec 的输出被dequeued 并插入队列,如图所示here .请检查第 439 - 450 行以获得完整的图片。

一旦缓冲区可用,就会实现一个简单的AV Sync 机制here .请参阅第 508 -521 行。在这个例子中,只考虑了一个轨道,因此 nowUs 即当前时间是从 systemTimeALooper::nowUs 派生的。

在您的代码中,您可以考虑始终以先到先得 的方式呈现音频,而对于您的视频 轨道,您可以从 audio 轨道导出 nowUs

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

关于android - 同步来自 Mediacodec 的解码音频和视频数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15691933/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com