首页 > 解决方案 > MediaCodec 向后寻求

问题描述

首先,我知道之前有人问过类似的问题。但我的问题是关于性能的。


MediaCodec用来搜索视频,这在搜索时非常有效。但是当向后搜索时,它是“不稳定的”/“滞后的”。

这是“某种”预期的,因为当向后搜索时,我会搜索前一个键/同步帧,然后向前搜索到所需的帧,如下所示:

extractorSeekTo(timestamp, MediaExtractor.SEEK_TO_PREVIOUS_SYNC);
mDecoder.flush();
//continue feeding without rendering:
//mDecoder.releaseOutputBuffer(bufferIndex, false); 
//until target frame is reached

额外背景:
我正在测试一个只有 2 个关键帧的视频。向后搜索时,会一直跳回最近的关键帧,然后向前搜索。所需时间取决于所需缓冲区与关键帧的“接近”程度。


我见过一些应用程序执行后向搜索而没有跳跃/滞后效应。我反编译了这些应用程序以查看它们是否使用本机代码并且它们都使用。这让我觉得这MediaCodec不是最佳表现。

所以,我的问题是(显而易见的问题是“这些应用程序是如何做到的”,但是..):

标签: androidandroid-mediacodec

解决方案


推荐阅读