【问题标题】:MediaCodec Encoding camera surface presentationTime not uniformMediaCodec 编码相机表面呈现时间不统一
【发布时间】:2017-01-03 19:07:05
【问题描述】:

我正在使用 MediaCodec 类在异步模式下对来自相机预览的原始视频 (1080p) 进行编码。我使用 MediaCodec.BufferInfo.presentationTimeUs 参数读取演示时间。

void onOutputBufferAvailable (MediaCodec codec, int index, MediaCodec.BufferInfo info)

我已将目标 FPS 设置为 30,因此我希望每 33 毫秒有一帧。但是,呈现时间从不统一,会上下跳跃。有没有人遇到过类似的问题?

请参见下图。它是接收到的两个连续视频帧的呈现时间(Y 轴)之间的时间图,以微秒为单位。 X 轴是样本。

Graph plot of video presentation time

谢谢,

阿杰

【问题讨论】:

  • 根据文档,演示时间戳派生自通过相应输入缓冲区传入的演示时间戳。有没有办法获取输入缓冲区表示时间戳?

标签: android android-mediacodec


【解决方案1】:

使用 Google 的 Graphika 示例应用程序作为参考的 OpenGL 渲染提供了更平滑的演示时间戳。

【讨论】:

  • 有没有办法获得一致的演示时间戳(帧之间的差异为 33.33ms,在 30fps 的情况下)?来自 Google 的 Grafika 示例也没有获得一致的时间戳。
猜你喜欢
  • 2014-07-08
  • 2014-01-06
  • 2015-03-23
  • 2013-06-18
  • 1970-01-01
  • 2020-05-27
  • 2016-09-06
  • 1970-01-01
  • 2016-08-31
相关资源
最近更新 更多