Android MediaCodec异步解码/编码延迟取决于帧时序

时间:2019-04-08 08:17:45

标签: android mediacodec video-encoding transcoding android-mediacodec

我们已经构建了一个异步MediaCodec转码器,该转码器使用了MediaCodec解码器生成的表面,并使用了更新的API 21+异步回调(onInputBufferAvailableonOutputBufferAvailable)。它具有完整的功能,但我们注意到解码/编码速度直接与PTS帧定时数据相关。即如果源文件为1 fps,则转码器的工作速度相当慢,而在60fps的文件上,其工作速度要快得多。由于这是一种转码设计(而不是实时回放),因此我们希望以系统能够处理的最快速度进行解码/编码,并且完全独立于源/目标帧速率。

我们已经通过使用KEY_OPERATING_RAT E MediaFormat键(即将其设置为10x FPS)设法解决了这个问题,但是在使用高比率时,这似乎会使MediaCodec崩溃,并且我们担心可能会有一些问题。特定于设备的行为。根据API文档,似乎我们应该可以使用releaseOutputBuffer(),且时间戳要与当前系统时间相差1+秒,以强制框架立即呈现,但这似乎没有任何意义。影响。我们还尝试了KEY_LATENCYKEY_PRIORITY MediaFormat键,但它们似乎也没有作用。

这符合预期吗?使用异步模式时,是否可以使MediaCodec编码器/解码器立即输出帧(与帧时序无关)?

0 个答案:

没有答案