5

我正在尝试使用 android 低级媒体 api 实时解码 h264 nals。
每个 nal 包含一个完整的帧,所以我希望在用我的 nal 输入输入并调用dequeueOutputBuffer它之后“立即”(当然会有一点延迟)显示我的帧,但它没有。我看到第一帧,出队仅在向解码器提供第二个缓冲区后才返回第一个缓冲区,此时应该呈现第二帧。帧使用 x264 的 zerolatency 预设编码,因此没有 b 帧等...

我想可能有一种方法可以将编码器设置为在获得帧后立即渲染帧,但我找不到任何好的文档/解释。有什么建议吗?

4

2 回答 2

0

仅仅因为帧以零延迟设置编码并不意味着它们将以零延迟解码。两个分开的东西。因此,根据编解码器级别(分辨率、比特率、帧率)和配置文件,您可能必须解码多达 16 帧的 h264 视频才能得到一帧。

于 2013-05-11T19:47:59.450 回答
0

只有在解码前帧后才能解码 p 帧

于 2013-09-23T01:40:54.117 回答