我的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框填错了,但我不知道如何正确地填充它。哪一位师父能帮我
发布于 2019-01-03 16:39:54
下面是一些关于如何编写avcC框内容的伪代码:
// 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]);
}
}https://stackoverflow.com/questions/54021637
复制相似问题