【问题标题】:Find SPS and PPS from private-data从私有数据中查找 SPS 和 PPS
【发布时间】:2012-08-22 08:31:29
【问题描述】:

我有网络服务,它为我提供了包含 H.264 NAL 单元的自定义格式的容器。 我想使用自定义 MediaStreamSource 通过 Silverlight 中的 MediaElement 播放它们。

根据this文章我需要设置私有编解码数据。 Web 服务为我提供了 configCodec,但采用 base64 格式(看起来像“AUIAHv/hABhnQsAe2gMg7+IhAAADAAEAAAAMAMo8WLqABAARozgvI”)

所以,在其他平台(iOS、Android)中,我需要的只是设置为编解码器的额外数据属性。

codec->extra-data = info;

但在 Windows Phone 中,我应该提供此信息,例如 00000001 [SPS] 00000001 [PPS]。 那么,有人可以告诉我如何解析来自 Web 服务的提供的私有数据以从中获取 SPS 和 PPS 值吗?

【问题讨论】:

    标签: silverlight windows-phone-7 h.264 codec mediastreamsource


    【解决方案1】:

    你解码成十六进制的数据是:

    0x01 0x42 0x00 0x1E 0xFF 
    0xE1 
    0x00 0x18 (SPS length in bytes)
    0x67 0x42 0xC0 0x1E 0xDA 0x03 0x20 0xEF (SPS...)
    0xE2 0x21 0x00 0x00 0x03 0x00 0x01 0x00 
    0x00 0x03 0x00 0x32 0x8F 0x16 0x2E 0xA0 (...SPS)
    0x01 
    0x00 0x04 (PPS length in bytes)
    0x68 0xCE 0x0B 0xC8 (PPS)
    

    我不知道这个结构到底是什么以及它在哪里 rfom,但是 SPS 和 PPS 肯定在它上面。

    【讨论】:

    • 能解释一下吗?或者也许可以提供一个链接以获取有关此解析的信息?
    • SPS 和 PPS 在 MPEG-4 第 10 部分规范中进行了描述。 0x67 是 NAL 单元类型 7 (SPS)。第 8 类是 PPS。长度字节合理匹配。还要别的吗?确切的数据结构取决于您从哪里获取它,您说“Web 服务为我提供...”。
    猜你喜欢
    • 1970-01-01
    • 2014-01-08
    • 1970-01-01
    • 1970-01-01
    • 2011-02-06
    • 2012-03-25
    • 2014-03-30
    • 1970-01-01
    • 2016-01-12
    相关资源
    最近更新 更多