平滑流编解码器私有数据

Smooth Streaming Codec Private Data

当我将新的 SSF_STREAM_INFO 添加到 SSF SDK muxer 时,生成的 header 数据似乎不包含 CodecPrivateData 参数的正确值。

<param name="CodecPrivateData" value="0000000100000001" valuetype="data" />

我的印象是流畅的流媒体播放器使用此信息来解码单个帧。你看,当我从我的编码器播放我的实时流时,我在我的视频源中得到一个空白帧。

如果 CodecPrivateData 应该包含有关解码帧的信息,我该如何正确设置它以及使用什么数据?很确定属于 MPEG2VIDEOINFO 结构(我用于流信息的 pTypeSpecificInfo 字段)。

下面是 muxer 产生的更多 header 信息。有人对这个有经验么?一些指点会有所帮助!

`<?xml version="1.0" encoding="utf-8"?>
<smil xmlns="http://www.w3.org/2001/SMIL20/Language">
    <head></head>
    <body>
        <switch>
            <video src="Streams" systemBitrate="500000">
                <param name="trackID" value="1" valuetype="data" />
                <param name="FourCC" value="AVC1" valueType="data" />
                <param name="MaxWidth" value="320" valueType="data" />
                <param name="MaxHeight" value="240" valueType="data" />
                <param name="CodecPrivateData" value="0000000100000001" valuetype="data" />
            </video>
        </switch>
    </body>
</smil>`

我的编码器正在将实时 h.264 视频编码到 SSF 混合器中。所以我为 pTypeSpecificInfo.

使用了一个 MPEG2VIDEOINFO 结构

AVC1 的编解码器私有数据应该是

NAL_START_CODE SPS NAL_START_CODE PPS

哪里

NAL_START_CODE是字节序列00,00,00,01

SPS为序列参数集,

PPS为图片参数集

来源:https://msdn.microsoft.com/en-us/library/ff728116%28v=vs.95%29.aspx