H264 封装格式

Posted triplekill

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了H264 封装格式相关的知识,希望对你有一定的参考价值。

H264有两种封装格式,一种是MP4格式,一种是annexb格式

MP4格式是以4个字节长度分割

annexb格式是以0x000001 or 0x00000001分割

有些时候需要把MP4格式转换成annexb格式(例如写ts),可以使用下面代码把MP4格式转换为Annexb格式

void ConvertMP4BitstreamToANNB(uint8_t *pdata, const uint32_t size)
{
    auto p = pdata;
    auto end = pdata + size;

    while (p < end) {
        uint32_t nalSize = p[0] << 24 | 
            p[1] << 16 | 
            p[2] <<  8 | 
            p[3];
        p[0] = 0;
        p[1] = 0;
        p[2] = 0;
        p[3] = 1;
        p += 4+nalSize;
    }
}

 

以上是关于H264 封装格式的主要内容,如果未能解决你的问题,请参考以下文章

FLV文件(H264 + AAC)格式超详细分析

FLV文件(H264 + AAC)格式超详细分析

视频格式封装——H264

视频格式封装——H264

[转]流媒體H264—MP4格式及在MP4文件中提取H264的SPSPPS及码流

把h264文件快速包装成mp4格式