2
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);
}
}
항상 반환 - 전용 H.264 인코더 "외부 라이브러리에서 일반 오류"-542398533 GOP가 0이 일부 작업의 경우 솔루션을 제공하십시오 시각.반환 avcodec_encode_video2 -542398533 일반 오류가 외부 라이브러리 만 H264 인코더
세 가지 옵션 av_opt_set (pAvCodecCtx-> priv_data, "preset", "slow", 0)을 사용하여 av_opt_set을 설정하려고했습니다. 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, 당신은 av_opt_set() 수 pAvCodecCtx에 옳은 일을 할 것입니다 설정되어 있는지 알고 싶다. "나는 무엇이 설정되어 있는지 알고 싶다"는 것은 무엇을 의미합니까? –
'av_opt_set (pAvCodecCtx-> priv_data, "x264opts", "no-mbtree : 슬라이스 스레드 : sync-lookahead = 0", 0);이 메소드의 의미는 무엇이며 pAvCodecCtx 만 넘겨 봤습니다. avcodec_encode_video2 return - 542398533 –