android - 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
不是最佳表现。
所以,我的问题是(显而易见的问题是“这些应用程序是如何做到的”,但是..):
MediaCodec
使用 ndk/native实现会解决这个问题吗?(提高性能)- 如果没有,是否有人对如何克服滞后有任何建议?
解决方案
推荐阅读
- image-charts - 谷歌图像图表网格线不响应 chg 值
- c - 在C中的void函数中将数组和大写的项目排序为小写
- bash - 在配置文件中存储路径
- javascript - 创建 JavaScript 原型函数
- swift - 有人可以确定为什么我的索引超出范围吗?
- python - 如何解决python:OSError: [Errno 123] other os error
- java - 数组大小和 .length 的问题
- cordova - 无法设置计划的本地通知:未知属性:触发器
- javascript - 需要验证我在 Javascript 中正确编码需求
- android - 在不指定自动生成的 PK 的情况下实例化 Android Room Entity 对象以进行插入的最佳方法?(科特林)