gpt4 book ai didi

Android MediaCodec API 视频播放速度太快

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:05:50 26 4
gpt4 key购买 nike

我目前正在使用 Android Jelly Bean MediaCodec API 开发一个简单的视频播放器。

我在单独的线程中提取轨道、播放音频和视频。问题是视频轨道总是播放得太快。

问题可能隐藏在哪里?
音频和视频的处理方式几乎相同,除了音频是通过 AudioTrack 播放的,而视频是渲染到表面上的。

最佳答案

如果您以最大速度渲染帧,您将在大多数设备上达到 60fps。您需要根据编码器提供的呈现时间戳对其进行调整。

例如,如果输入是 Android 支持的格式(例如典型的 .mp4 文件),您可以使用 MediaExtractor类来提取每一帧。可以使用 getSampleTime() 检索时间戳。您希望通过连续帧上时间戳之间的差异来延迟渲染——不要假设第一帧的时间戳为零。

此外,不要假设视频帧以恒定速率出现(例如 30fps)。对于某些来源,帧将不均匀地到达。

请参阅 Grafika 中的“播放视频 (TextureView)”示例,尤其是 SpeedControlCallback 类。 gen-eight-rects.mp4 视频使用可变帧持续时间来练习它。如果选中“以 60fps 播放”框,则忽略演示时间戳。

关于Android MediaCodec API 视频播放速度太快,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12931348/

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