我尝试使用ffmpeg(libavcodec)解码一系列nal单元,但是出现了“无帧”错误。我使用如何使用x264 C API将一系列图像编码为H264中的指南生成了nal单元。我尝试了以下解码策略:
avcodec_init();
avcodec_register_all();
AVCodec* pCodec;
pCodec=lpavcodec_find_decoder(CODEC_ID_H264);
AVCodecContext* pCodecContext;
pCodecContext=lpavcodec_alloc_context();
avcodec_open(pCodecContext,pCodec);
AVFrame *pFrame;
pFrame=avcodec_alloc_frame();
//for every nal unit:
int frameFinished=0;
//nalData2 is nalData without the first 4 bytes
avcodec_decode_video(pCodecContext,pFrame,&frameFinished,(uint8_t*) nalData2,nalLength);
我已经通过了所有单元测试,但是frameFinished始终为0。我猜测pCodecContext的设置可能有问题。有人能给我发送一个可工作的示例吗?
谢谢