2013-05-15 5 views
3

일부 코드를 FFMPEG 0.8에서 FFMPEG 1.2로 변환 중입니다. avcodec_open2() 메서드 호출 중 오류가 발생했습니다 : "지정된 픽셀 형식 % s이 유효하지 않거나 지원되지 않습니다". 내가 사용하는 형식은 AV_PIX_FMT_RGB24입니다. 기본적으로 사용하도록 설정해야합니다. 맞습니까?FFMPEG - 형식을 사용할 수 없습니까?

av_register_all(); 

codec = avcodec_find_encoder(AV_CODEC_ID_MPEG2VIDEO); 

if(!codec) 
{ 
    throw SystemException("codec not found"); 
} 

codecContext = avcodec_alloc_context3(codec); 

codecContext->bit_rate = 200000; 
codecContext->time_base.den = 1; 
codecContext->time_base.num = 90000; 
codecContext->gop_size = 8; 
codecContext->pix_fmt = AV_PIX_FMT_RGB24; 

_codecContext->width = 320 
_codecContext->height = 240 

if(avcodec_open2(_codecContext, _codec, NULL) < 0) 
{ 
    throw SystemException("Unable to open codec"); 
} 

답변

4

는 FFmpeg MPEG2/MPEG1 AV_PIX_FMT_RGB24의 최신 버전에서 지원되지 않습니다

다음은 내 코드입니다.

AV_PIX_FMT_YUV420P 또는 AV_PIX_FMT_YUV422P을 사용해야합니다.

입력 PIX 형식이 AV_PIX_FMT_YUV420P/AV_PIX_FMT_YUV422P이 아닌 경우 변환이 필요합니다. 동일한 경우 Sws_Contextsws_scale을 사용할 수 있습니다.

+0

대단히 감사합니다! –

+1

여기에 문서가 있습니까? –

관련 문제