J'ai essayé de décoder une série d'unités nales avec ffmpeg (libavcodec) mais j'obtiens une erreur «sans trame». J'ai produit les unités nal avec la ligne directrice au How does one encode a series of images into H264 using the x264 C API?. J'ai essayé la stratégie suivante pour le décodage:H264: décoder des séries d'unités natives avec ffmpeg
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);
J'ai passé toutes les unités que je suis arrivé à ce code, mais frameFinished séjours 0. Je suppose qu'il doit y avoir quelque chose de mal avec la configuration pCodecContext. Quelqu'un peut-il m'envoyer un exemple de travail?
Merci
Pour le décodeur pour être en mesure de décoder votre vidéo, vous devez alimenter un paramètre de flux définis et paramètres d'image unités NAL avant de pouvoir décoder correctement tranches/cadres. – Flame