首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在用avcC数据编码fmp4文件时填充H264框?

如何在用avcC数据编码fmp4文件时填充H264框?
EN

Stack Overflow用户
提问于 2019-01-03 11:44:55
回答 1查看 700关注 0票数 0

我的h264帧只有I/P帧。

我填写的avcC框如下所示,但它不能使用VLC播放器(时间戳运行,但没有图像)。

AVC解码器配置记录:

起始偏移量511 (0X000001FF)

盒号39 (0X00000027)

盒型avcC (0X61766343)

详细资料:

配置版本1 (0X00000001)

AVC剖面显示主= 77 (0X0000004D)

AVC配置文件兼容性0 (0X00000000)

AVC电平指示42 (0X0000002A)

NAL单元长度3 (0X00000003)

Num序列参数集1 (0X00000001)

序列参数集(0) 0x67 0x4d 0x00 0x2a 0x96 0x35 0xc0 0xf0 0x04 0x4f 0xcb 0x37 0x01 0x01 0x02

Num图片参数集1 (0X00000001)

图片参数集(0) 0x680xee 0x3c 0x80

H264 IDR帧( SEI):

无符号字符IDR_NALU[] ={0x00、0x00、0x01、0x67、0x4D、0x00、0x2A、0x96、0x35、0xC0、0xF0、0x04、0x4F、0xCB、0x37、0x010x0x010x02、0x00、0x00、0x00、0x01、0x68、0xEE、0x3C、0x80、0x00000000x0000x000x01、0x06 0xE5x010x2E、0x80/I帧数据省略/ };

我认为我的avcC框填错了,但我不知道如何正确地填充它。哪一位师父能帮我

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-03 16:39:54

下面是一些关于如何编写avcC框内容的伪代码:

代码语言:javascript
复制
//  Version
Write(0x1);

//  Profile
Write(sps[0].data[1]);

//  Compatibility
Write(sps[0].data[2]);

//  level
Write(sps[0].data[3]);

// Reserved (6 bits), NAL Unit length size - 1 (2 bits)
Write(0xFC | 3);

//  Reserved (3 bits), num of SPS (5 bits)
Write(0xE0 | 1);

// 2 bytes for length of SPS
WriteWord(sps[0].size);

//  Data of SPS
for (size_t i = 0; i < sps[0].size(); ++i)
{
    Write(sps[0].data[i]);
}

// Number of PPS
Write(&b, pps.size());

for (size_t i = 0; i < pps.size(); ++i)
{
    // 2 bytes for length of PPS
    WriteWord(pps[i].size);

    for (size_t j = 0; j < pps[i].size; ++j)
    {
        //  Data of PPS
        Write (pps[i].data[j]);
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54021637

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档