您的位置:首页 > 其它

broken ffmpeg default settings detected" and "use an encoding preset (vpre)"

2012-06-20 16:04 323 查看
在编码H264码流时,遇到这样的错误:

broken ffmpeg default settings detected

use an encoding preset (vpre)

后来网上百度了原因,才知道,在x264 source file encoder/encoder.c 中:

/* Detect default ffmpeg settings and terminate with an error. */
{
int score = 0;
score += h->param.analyse.i_me_range == 0;
score += h->param.rc.i_qp_step == 3;
score += h->param.i_keyint_max == 12;
score += h->param.rc.i_qp_min == 2;
score += h->param.rc.i_qp_max == 31;
score += h->param.rc.f_qcompress == 0.5;
score += fabs(h->param.rc.f_ip_factor - 1.25) < 0.01;
score += fabs(h->param.rc.f_pb_factor - 1.25) < 0.01;
score += h->param.analyse.inter == 0 && h->param.analyse.i_subpel_refine == 8;
if( score >= 5 )
{
x264_log( h, X264_LOG_ERROR, "broken ffmpeg default settings detected\n" );
x264_log( h, X264_LOG_ERROR, "use an encoding preset (vpre)\n" );
return -1;
}
}

所以当score >= 5,the function to open the codec will fail.

We must at least set 4 param of the AVCodecContext before open it.

/*default settings for x264*/

ctx->me_range = 16;

ctx->max_qdiff = 4;

ctx->qmin = 10;

ctx->qmax = 51;

ctx->qcompress = 0.6;

这个才能编译通过。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐