我有一台IP摄像头通过SDK调用提供H264附件Bitstream。 我想将此视频流打包到FLV容器中。到目前为止,我必须了解以下内容: -
我必须将H264附件转换为H264 AVCC: 为此,我将不得不用NALU的大小(大端格式)替换NAL头字节(0x00000001)。
我的问题是,我该如何处理SPS和PPS?我应该在更换NAL标头后写(av_interleaved_write_frame)它们吗?或者根本不写这些帧?
我读到AVCC需要额外数据。我该如何构建?我在哪里通过?
答案 0 :(得分:4)
首先从相机中检索SPS / PPS。将SPS / PPS写入AVCC extradata格式(请参见如何:Possible Locations for Sequence/Picture Parameter Set(s) for H.264 Stream)
设置AVCodecContext.extradata
void *extradata = /**/;
int extradata_size = /**/;
codecCtx->extradata_size = extradata_size;
codecCtx->extradata = av_malloc ( codecCtx->extradata_size );
memcpy ( codecCtx->extradata, extradata, codecCtx->extradata_size);
在致电avcodec_open2