h264附件比特流到flv mux ffmpeg库

时间:2015-04-20 15:15:00

标签: ffmpeg h.264 libav

我有一台IP摄像头通过SDK调用提供H264附件Bitstream。 我想将此视频流打包到FLV容器中。到目前为止,我必须了解以下内容: -

我必须将H264附件转换为H264 AVCC: 为此,我将不得不用NALU的大小(大端格式)替换NAL头字节(0x00000001)。

我的问题是,我该如何处理SPS和PPS?我应该在更换NAL标头后写(av_interleaved_write_frame)它们吗?或者根本不写这些帧?

我读到AVCC需要额外数据。我该如何构建?我在哪里通过?

1 个答案:

答案 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

之前