如何用C语言取出H.264ES文件里的nal信息

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用C语言取出H.264ES文件里的nal信息相关的知识,希望对你有一定的参考价值。

参考技术A  需要熟悉的是 H.264ES 编码规范,然后就能透过规范用任何熟悉的语言来解析这种规范的文件。
  解析sps,pps的代码在ffmpeg里面就有, 抄出来就行了, 本人以前也写过...
ffmpeg的libavcodec/h264_parser.c,
h264_ps.c
函数
ff_h264_decode_seq_parameter_set
ff_h264_decode_picture_parameter_set
自己可以看代码.
参考技术B   你需要熟悉的是 H.264ES 编码规范,然后就能透过规范用任何你熟悉的语言来解析这种规范的文件。
  解析sps,pps的代码在ffmpeg里面就有, 抄出来就行了, 我以前也自己写过...
ffmpeg的libavcodec/h264_parser.c,
h264_ps.c
函数
ff_h264_decode_seq_parameter_set
ff_h264_decode_picture_parameter_set
自己可以看代码.本回答被提问者和网友采纳

C语言如何用二进制输出变量里的数值!

例如 一个简单的小程序,这样清楚:#include <stdio.h> int main(void) int i = 47; /* 请问如何以二进制的格式输出 变量 “i”里面的值? */ return 0;

参考技术A 程序如下:#include <stdio.h>
int main(void)

int i,j,p;
char code[32];
scanf("%d",&i);
j=i;
p=0;
while(j>0)

code[p++]=j%2 + 48 ;
j=j/2;

j=p;
printf("the num is : %d, \n the code is:",i);
while(j)

printf("%c",code[--j]);

getch();
return 0;
参考技术B itoa(s, i, 2)printf("%s", s) 参考技术C 1、可以使用itoa函数把变量的数值转换成2进制字符串,再用输出函数输出。
2、功 能:把一整数转换为字符串
用 法:char *itoa(int value, char *string, int radix);
详细解释:itoa是英文integer to array(将int整型数转化为一个字符串,并将值保存在数组string中)的缩写.
参数:
value: 待转化的整数。
radix: 是基数的意思,即先将value转化为radix进制的数,范围介于2-36,比如10表示10进制,16表示16进制。
* string: 保存转换后得到的字符串。
返回值:
char * : 指向生成的字符串, 同*string。
备注:该函数的头文件是"stdlib.h"

以上是关于如何用C语言取出H.264ES文件里的nal信息的主要内容,如果未能解决你的问题,请参考以下文章

H.264 NAL unit start code and NAL types

h.264语法结构分析

音视频 (一) —— H.264 中的 NAL 技术

如何用C语言取出文件的后缀

H264 NAL解析

如何用C语言来读取或查找一个文档里面的是信息。