我尝试使用 ffmpeg (libavcodec) 解码一系列 nal 单元,但出现“无帧”错误。我按照如何使用 x264 C API 将一系列图像编码为 H264? 中的指南生成了最终单元。。我尝试了以下解码策略:
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);
Run Code Online (Sandbox Code Playgroud)
我通过了到达此代码的所有单元,但 frameFinished 仍为 0。我猜 pCodecContext 设置一定有问题。有人可以给我发送一个工作示例吗?
谢谢