【问题标题】:Get SPS and PPS from h264 encoded video in JAVA从 JAVA 中的 h264 编码视频中获取 SPS 和 PPS
【发布时间】:2014-03-30 17:01:21
【问题描述】:

实际上我有点卡在一个问题上,我真的希望有人可以帮助我解决这个问题。

我的问题如下: 我有一个现场 USB 摄像头,我只对 h264 中的视频进行编码,以便通过网络将其与 RTP 一起发送到接收器(我的接收器用于测试目的是 Ekiga)。 仅对 h264 中的视频进行编码后,我有一个字节数组。

现在有了这个字节数组,我想提取 SPS 和 PPS。我想获取这些信息,以便在向接收器发送帧时能够发送以下序列: SPS => PPS => FRAME 1(IDR 图片的编码切片)=> FRAME 2(IDR 图片的非编码切片)=> FRAME 3(IDR 图片的非编码切片)=> 等等...

我如何提取这些信息并且我想要一个可以帮助我的 JAVA 库? (JCODEC nop 文档??!!)

感谢您的帮助。 罗尼

【问题讨论】:

    标签: java h.264


    【解决方案1】:

    这取决于您的编码器。如果它正在生成附件 b 流,则 sps/pps 很可能是第一个和第二个 Nalus。除非它还生成访问单元分隔符,在这种情况下它将是第二个和第三个。如果它没有生成附件 b,则需要以另一种方式从编码器 API 获取此数据。无论哪种方式,您都需要解析流。您可以在此处查看更多详细信息。

    Possible Locations for Sequence/Picture Parameter Set(s) for H.264 Stream

    NALU 与框架不同。一个框架可以由许多 NAL 组成。

    【讨论】:

      【解决方案2】:

      感谢您的帮助和回答。好吧,我的研究和工作仍在继续(我是这个领域的新手),我已经能够将我的视频传输到接收器。这里的接收器是 Jitsi,我用于测试目的。

      我也看到了你提供给我的链接,从中我确实明白了许多不完全清楚的东西。

      现在,我的实际问题在于我在 Jitsi 中收到的视频质量。事实上,我正在使用 Xuggler 将我的原始视频(从我的网络摄像头流式传输)编码为 H264 格式。当 Xuggler 对我的视频进行编码时,我现在可以看到正确的 SPS、PPS 和 SEI 标头,你是对的,我可以注意到构成我的帧的 NAL 太多,需要通过网络传输。

      我认为使用另一个库而不是 Xuggler 会更好,但我的真正问题出现了。 JCodec,没有文档,根据我的阅读,处理 H264 视频有点慢。

      您能否指导我选择一个可以帮助我编码和解码 H264 视频流的好库?

      有谁知道可以为我做这件事的 Java 库以及与该库相关的一些文档?

      感谢您的帮助。 罗尼

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-08-03
        • 1970-01-01
        • 2014-01-08
        • 1970-01-01
        • 2013-04-20
        • 1970-01-01
        • 1970-01-01
        • 2019-08-10
        相关资源
        最近更新 更多