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;
    }
}

 

posted @ 2017-07-21 22:50  triplekill  阅读(2198)  评论(0编辑  收藏  举报