pAvframe = GetVideoFrame();
av_init_packet(&pkt);
/* encode the image */
ret = avcodec_encode_video2(pAvCodecCtx, &pkt, pAvframe, &got_packet); //return Generic error in external library
if (ret < 0)
{
char errbuf[128];
const char *errbuf_ptr = errbuf;
if (av_strerror(ret, errbuf, sizeof(errbuf)) < 0)
errbuf_ptr = strerror(AVUNERROR(ret));
av_log(NULL, AV_LOG_ERROR, "%s\n", errbuf_ptr);
_stprintf_s(szErr,MAX_PATH, _T("Error encoding video frame:: "));
LOG_ENTRY_ERROR(E_FAIL,szErr);
}
if(ret >= 0)
{
ret = WriteFrameToFile(&pAvCodecCtx->time_base, m_stVideoStream.pAVStream, &pkt);
if(ret < 0)
{
av_packet_unref(&pkt);
}
}
それは常に返す - GOPが、それはいくつかの作業がゼロであれば-542398533「外部ライブラリで一般的なエラー」だけH.264エンコーダでは、ソリューションを提供してください時間。avcodec_encode_video2リターン-542398533のみH264エンコーダと外部ライブラリで一般的なエラー
av_opt_setを3つのオプションav_opt_set(pAvCodecCtx-> priv_data、 "preset"、 "slow"、0)で設定しようとしました。 av_opt_set(pAvCodecCtx-> priv_data、 "tune"、 "zerolatency"、0); av_opt_set(pAvCodecCtx-> priv_data、 "x264opts"、 "no-mbtree:スライスされたスレッド:sync-lookahead = 0"、0); x264optsは作業をしましたが、何が設定されているか知りたいのですが、 –
はpriv_dataに触れていません.pAvCodecCtxのav_opt_set()を実行すると正しいことができます。 「何が設定されているか知りたい」という意味はどうですか? –
'av_opt_set(pAvCodecCtx-> priv_data、" x264opts "、" no-mbtree:スライスされたスレッド:sync-lookahead = 0 "、0);このメソッドの意味とは何ですか?pAvCodecCtxだけをもう一度渡すことを試みましたavcodec_encode_video2 return - 542398533 –