目前我正在使用 libav* 对 H.264 视频进行编码。我想将 KLVPackets 添加到比特流中,但不知道在哪里实现它。
avcodec 中有一个结构,但我不确定如何将其写入帧元数据
typedef struct {
UID key;
int64_t offset;
uint64_t length;
} KLVPacket;
当前 FFMPEG 代码(仅留下相关代码):
av_register_all();
pOutputFormat = av_guess_format(NULL, fileName, NULL);
pFormatCtx=avformat_alloc_context();
pVideoStream = av_new_stream(pFormatCtx,0);
pCodecCtx=pVideoStream->codec;
...
av_dump_format(pFormatCtx, 0, fileName,1);
pCodec = avcodec_find_encoder(pCodecCtx->codec_id);
avio_open(&pFormatCtx->pb, fileName, AVIO_FLAG_READ_WRITE)
avformat_write_header(pFormatCtx, &pDict);
...
avcodec_encode_video(pCodecCtx,outbuf,outbuf_size,ppicture);
...
int ret = av_interleaved_write_frame(pFormatCtx, &pkt);
有人知道我可以使用的任何示例吗?