2
我再利用我從的ffmpeg開發64位版本的示例代碼在我的應用對視頻信號編碼:的ffmpeg:avcodec_open2返回無效的參數
AVCodec* pCodec_{nullptr};
AVCodecContext* pContext_{nullptr};
avcodec_register_all();
pCodec_ = avcodec_find_encoder(AV_CODEC_ID_MPEG2VIDEO);
if (!pCodec_) {}
pContext_ = avcodec_alloc_context3(pCodec_);
if (!pContext_) {}
pContext_->bit_rate = 400000;
pContext_->width = size.width();
pContext_->height = size.height();
pContext_->time_base.den = 1;
pContext_->time_base.num = fps;
pContext_->gop_size = 10;
pContext_->max_b_frames = 1;
pContext_->pix_fmt = AV_PIX_FMT_BGR0;
if (codec_id == AV_CODEC_ID_H264) {
av_opt_set(pContext_->priv_data, "preset", "slow", 0);
}
int err = avcodec_open2(pContext_, pCodec_, nullptr);
if (err < 0) {}
avcodec中*和* AVCodecContext樣子,他們都正確分配。 avcodec_open2然後返回無效參數(-22)。我使用:Windows 10 64,VS2013編譯器,Qt Creator IDE,ffmpeg(2016-05-12)64位。
我從代碼中提取的樣本是「decode_encoding.c」。
任何想法?
嘗試的倍數來設置'pContext _-> codec_type = 1; //視頻' – fandyushin