上文说到字节流格式的NALU是由0x000001或者0x00000001分割开来的,本篇文章就用代码实现分离NALU(只分离Header)
void h264_parser(const char *url)
{
const int buffer_size = 100000;
FILE *h264_stream = fopen(url, "rb+");
if (h264_stream == NULL) {
printf("open file error\n");
return;
}
char buffer[buffer_size] = {0};
char *ptr = buffer;
while (!feof(h264_stream)) {
if (ptr != buffer) {
//待拷贝数目
long count = buffer + (buffer_size - 1) - ptr + 1;
char tmp[count];
for (int i = 0; i < count; i++) {
tmp[i] = ptr[i];
}
memset(buffer, 0, buffer_size);
for (int i = 0; i < count; i++) {
buffer[i] = tmp[i];
}
ptr = buffer + count;
unsigned long real_count = fr