【发布时间】:2013-04-25 17:45:17
【问题描述】:
我正在尝试使用 android 低级媒体 api 实时解码 h264 nals。
每个 nal 都包含一个完整的帧,所以我希望在用我的 nal 输入输入并调用 dequeueOutputBuffer 后,它会“立即”(当然会有一点延迟)显示我的帧,但它不会。我看到第一帧,出队仅在向解码器提供第二个缓冲区后才返回第一个缓冲区,此时应该呈现第二帧。帧使用 x264 的 zerolatency 预设编码,因此没有 b 帧等...
我想可能有一种方法可以将编码器设置为在得到帧后立即渲染帧,但我找不到任何好的文档/解释。 有什么建议吗?
【问题讨论】:
-
我遇到了同样的问题。我目前的理论是 H.264 似乎缺少任何类型的“帧结束”标记。因此,解码器必须等到它有下一帧的数据才能完成解码并显示当前帧。对我来说,它只增加了大约 25 毫秒,但我想恢复 25 毫秒。
-
我有同样的问题,即使是 I-Frames。但我仍然没有解决方案。您是否成功实现了“实时”渲染?
-
@soccertrash,你成功了吗?
标签: android real-time media h.264 codec