春山眉黛~xvid参数设置,原因分析

本文详细介绍了Xvid和X264编解码器的参数设置方法,对比了两者在视频编码过程中的不同特点,并给出了具体的参数配置示例。适合于音视频处理领域的开发人员参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

xvid参数设置,原因分析(附带x264参数设置参考)

主要原因应该是Xvid是以保存视频效果为首要出发点的,其对视频质量的保存应该是做的最好的,这就在一定程度上增加了编解码的复杂性,影响了速度的提升。

 Xvid:        
    xvid_enc_create_obj.version = XVID_VERSION;
        xvid_enc_create_obj.max_key_interval = 100;  //must mark it !!
        xvid_enc_create_obj.profile = 0xf5;//XVID_PROFILE_S_L0;
        xvid_enc_create_obj.fincr = 1;
        xvid_enc_create_obj.fbase = 25;        //must set for bitrate kxw
        xvid_enc_create_obj.num_threads = 0;
        xvid_enc_create_obj.global = 0;
        xvid_enc_create_obj.plugins = plugins;
        xvid_enc_create_obj.num_plugins = 1;
    
        memset(&plugin_single, 0, sizeof(xvid_plugin_single_t));
        plugin_single.version = XVID_VERSION;
        plugin_single.bitrate = bitrate * 1024; // 1000*1024
        plugin_single.reaction_delay_factor = 16;
        plugin_single.averaging_period = 100;
        plugin_single.buffer = 100;
        plugins[0].func = xvid_plugin_single;
        plugins[0].param = &plugin_single;
   
    X264:

 param->cpu = X264_CPU_MMXEXT|X264_CPU_SSE|X264_CPU_SSE2;//0x177a;//x264_cpu_detect();
    param->i_threads = 1;
    param->b_deterministic = 1;

   
    param->i_csp           = X264_CSP_I420;
    param->i_width         = 0;
    param->i_height        = 0;
    param->vui.i_sar_width = 0;
    param->vui.i_sar_height= 0;
    param->vui.i_overscan  = 0; 
    param->vui.i_vidformat = 5; 
    param->vui.b_fullrange = 0; 
    param->vui.i_colorprim = 2; 
    param->vui.i_transfer  = 2; 
    param->vui.i_colmatrix = 2; 
    param->vui.i_chroma_loc= 0; 
    param->i_fps_num       = 25;
    param->i_fps_den       = 1;
    param->i_level_idc     = -1;

   
    param->i_frame_reference = 1;
    param->i_keyint_max = 250;
    param->i_keyint_min = 25;
    param->i_bframe = 0;                //no b frame.
    param->i_scenecut_threshold = 40;
    param->i_bframe_adaptive = X264_B_ADAPT_FAST;
    param->i_bframe_bias = 0;
    param->b_bframe_pyramid = 0;

    param->b_deblocking_filter = 1;
    param->i_deblocking_filter_alphac0 = 0;
    param->i_deblocking_filter_beta = 0;
    param->b_cabac = 1;
    param->i_cabac_init_idc = 0;

    param->rc.i_rc_method = X264_RC_ABR;   //kxw notice!
    param->rc.i_bitrate = 0;
    param->rc.f_rate_tolerance = 1.0;
    param->rc.i_vbv_max_bitrate = 0;
    param->rc.i_vbv_buffer_size = 0;
    param->rc.f_vbv_buffer_init = 0.9;
    param->rc.i_qp_constant = 26;    //            default QP = 26...........kxw mod
    param->rc.f_rf_constant = 0;
    param->rc.i_qp_min = 10;
    param->rc.i_qp_max = 51;
    param->rc.i_qp_step = 4;
    param->rc.f_ip_factor = 1.4;
    param->rc.f_pb_factor = 1.3;
    param->rc.i_aq_mode = X264_AQ_VARIANCE;
    param->rc.f_aq_strength = 1.0;
    param->rc.b_stat_write = 0;
    //param->rc.psz_stat_out = "x264_2pass.log";
    param->rc.b_stat_read = 0;
    //param->rc.psz_stat_in = "x264_2pass.log";
    param->rc.f_qcompress = 0.6;
    param->rc.f_qblur = 0.5;
    param->rc.f_complexity_blur = 20;
    param->rc.i_zones = 0;

   
    param->pf_log = NULL;//x264_log_default;//x264_log_default;
    param->p_log_private = NULL;
    param->i_log_level = X264_LOG_INFO;
   
    #if 0                                                //consume time .kxw mod
    param->analyse.intra = X264_ANALYSE_I4x4 | X264_ANALYSE_I8x8;
    param->analyse.inter = X264_ANALYSE_I4x4 | X264_ANALYSE_I8x8
                         | X264_ANALYSE_PSUB16x16 | X264_ANALYSE_BSUB16x16;
#endif
    param->analyse.i_direct_mv_pred = X264_DIRECT_PRED_SPATIAL;
    param->analyse.i_me_method = X264_ME_HEX;
    param->analyse.f_psy_rd = 1.0;
    param->analyse.f_psy_trellis = 0;
    param->analyse.i_me_range = 16;

#if 0
    param->analyse.i_subpel_refine = 100;  //consume time so much!! kxw mod
#endif
    param->analyse.b_chroma_me = 1;

    param->analyse.i_mv_range_thread = -1;
    param->analyse.i_mv_range = -1; // set from level_idc

    param->analyse.i_chroma_qp_offset = 0;
    param->analyse.b_fast_pskip = 1;
    param->analyse.b_dct_decimate = 1;

    param->analyse.i_luma_deadzone[0] = 21;
    param->analyse.i_luma_deadzone[1] = 11;

    param->analyse.b_psnr = 1;
    param->analyse.b_ssim = 1;

    param->i_cqm_preset = X264_CQM_FLAT;


     x264_param.rc.i_bitrate = br;   //target bitrate. 1000
        x264_param.i_width = width;
        x264_param.i_height = height;

ffmpeg:

    c->bit_rate = 1000000;
   
    c->width = FRAMEE_WIDTH;
    c->height = FRAME_HEIGHT;
   
    c->time_base= (AVRational){1,25};

    c->gop_size = 250;


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值