对于x264 的压缩,我不做赘述,很多的,需要获取每个NALU的话,新版本已经在
i_frame_size = x264_encoder_encode( h, &nal, &i_nal, pic, &pic_out );
中调用 了x264_nal_encode。个人理解:
函数返回的nal 就是NALU 数据了,i_nal 是个int ,可能就是返回的NALU 数目。pic 是返回的压缩图片数据,用来录像保存。
所以需要获取每个NALU的话。只需要
for(int i=0;i<i_nal;i++)
{
//对每个NALU 片处理
//RTP 打包
//当一个NALU小于1400字节的时候,采用一个单RTP包发送
if( n->len<=1400)
{
}
else if(n->len>1400)
{
//得到该nalu需要用多少长度为1400字节的RTP包来发送
}
}
因为这样的nalu 不带startcode ,设置 x264_param_t *param
param->b_repeat_headers =1;
param->b_annexb =1;
即可。
以上皆是个人理解,错误与否,希望大家指正。我来修改。以帮助后人。~~