【问题标题】:MediaCodec decode time calculationMediaCodec解码时间计算
【发布时间】:2016-08-31 20:03:30
【问题描述】:

计算由 mediacodec 解码的帧的解码时间的最佳方法是什么?下面代码的执行时间显然不是正确的时间。有没有办法知道每帧/帧解码需要多长时间?

谢谢。

startTime...

dequeueInputBuffer();

getInputBuffer();

//   copy frame to input buffer

queueInputBuffer();

dequeueOutputBuffer();

releaseOutputBuffer();

stopTime...

exectime = startTime - StopTime

【问题讨论】:

    标签: android decode android-mediacodec execution-time


    【解决方案1】:

    很难对解码单个帧所需的时间进行有意义的测量,因为您将测量延迟和吞吐量。数据必须从应用程序传递到媒体服务器进程、驱动程序、解码,然后解码后的数据必须反向进行相同的旅程。驱动程序本身可以有额外的流水线。

    您可以通过解码几百帧然后将总时间除以帧数来获得合理的近似值。

    你想要完成什么?

    【讨论】:

    • 感谢您的回复。我正在尝试做实时视频流(上面的代码在 NDK 中)。只需要查看解码时间有多长来测量延迟。我不确定开始和停止计时器是否在正确的线上,因为输入排队。
    • 输入排队的时间无关紧要——您希望输入尽可能填满。请记住,某些视频格式允许编码帧出现乱序...如果您尝试一次输入一帧,它将完全停止。您可以在释放输出缓冲区时管理视频的节奏。关于延迟的一些额外说明可以在stackoverflow.com/questions/21440820 中找到
    猜你喜欢
    • 2020-05-27
    • 2016-09-06
    • 2020-09-23
    • 2021-12-21
    • 2013-04-25
    • 1970-01-01
    • 2021-08-30
    • 1970-01-01
    • 2018-10-17
    相关资源
    最近更新 更多