我正在尝试使用 ffmpeg + x264 将视频从 jpeg 图像集编码为 h264。我以这种方式初始化 AVCodecContext:
_outputCodec = avcodec_find_encoder(AV_CODEC_ID_H264);
_outputCodecContext = avcodec_alloc_context3(_outputCodec);
avcodec_get_context_defaults3(_outputCodecContext, _outputCodec);
_outputCodecContext->width = _currentWidth;
_outputCodecContext->height = _currentHeight;
_outputCodecContext->pix_fmt = AV_PIX_FMT_YUV420P;
_outputCodecContext->time_base.num = 1;
_outputCodecContext->time_base.den = 25;
_outputCodecContext->profile =FF_PROFILE_H264_BASELINE;
_outputCodecContext->level = 50;
avcodec_open 没有返回错误,一切正常,但是当我调用 avcodec_encode_video2() 时,我收到这样的消息(我认为它来自 x264):
using mv_range_thread = %d
%s
profile %s, level %s
然后应用程序崩溃。使用 x264 && 时,编解码器上下文有更多必要的设置