当前位置: 首页 > 知识库问答 >
问题:

android MediaCodec:实时解码h264 nals

景鹏云
2023-03-14

我正在尝试用android低级媒体API实时解码h264 nals。
每个nal都包含一个完整的帧,所以我希望在用我的nal提供输入并调用DequeueOutputBuffer之后,它会“立即”(当然有一个litle延迟)显示我的帧,但它没有显示。我看到了第一个帧,出列器返回第一个缓冲区,只有在将第二个缓冲区馈送给解码器之后才返回第一个缓冲区,此时该缓冲区应该呈现第二个帧。帧编码时预置为x264,因此没有B帧等。

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

共有1个答案

朱自明
2023-03-14

仅仅因为帧被编码为零延迟设置并不意味着它们将被解码为零延迟。两种不同的东西。因此,根据编解码器级别(分辨率、比特率、帧率)和配置文件,您可能需要解码多达16帧的h264视频以获得帧输出。

 类似资料:
  • 问题内容: 如何使用JavaScript或JQuery编码和解码HTML实体? 我希望它是: 问题答案: 您可以尝试类似: 更具交互性的版本:

  • 本文向大家介绍VB实现的倒计时类代码详解,包括了VB实现的倒计时类代码详解的使用技巧和注意事项,需要的朋友参考一下 本文所述为用VB制作倒计时程序用到的一个Module类代码,是基于控制台的倒计时程序,可供VB初学者或者VB爱好者参考学习,当然读者也可以将其拷贝代码到VB工程里面直接使用,不过需要自己创建相关的代码,对于初学者来说,也是很容易看懂的一段代码。 具体功能代码如下:

  • 本文向大家介绍php base64 编码与解码实例代码,包括了php base64 编码与解码实例代码的使用技巧和注意事项,需要的朋友参考一下 php base64 编码与解码详解 1.自定义规则方式编码和解码 实例 2.利用系统函数完成base64位的编码和解码 实例代码: 感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

  • 本文向大家介绍Java 定时器(Timer,TimerTask)详解及实例代码,包括了Java 定时器(Timer,TimerTask)详解及实例代码的使用技巧和注意事项,需要的朋友参考一下  Java 定时器 在JAVA中实现定时器功能要用的二个类是Timer,TimerTask Timer类是用来执行任务的类,它接受一个TimerTask做参数 Timer有两种执行任务的模式,最常用的是sch

  • 我需要一些帮助,使ffplay接收和解码一个实时流编码在H264。 我试图在接收Kinect视频帧的计算机a和运行ffplay的计算机B之间建立点对点流,以显示直播。 计算机A(RPI 3) 这就是ffmpeg输出的内容: out流在10-20帧之间运行。不是很好,但我能接受。 计算机B streaming.sdp 我得到了流,但大约0.0001 fps,这是非常糟糕的。我的猜测是我在ffplay

  • 我正在尝试解码h264现场流从WIFI摄像头的madiacodec在Galaxy S3,视频播放还可以,但似乎mediacode低电平总是缓冲1秒的视频帧,一个新的帧可以解码只有一个新的传入NAL单元。这会导致大约1秒的延迟。 调用时,我可以从logcat看到分配了22个缓冲区, 我可以看到大约16个NAL单元需要推入解码器才能得到任何帧。 我的问题是为什么这个视频缓冲?如果这是问题所在,我可以尝