• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            牽著老婆滿街逛

            嚴以律己,寬以待人. 三思而后行.
            GMail/GTalk: yanglinbo#google.com;
            MSN/Email: tx7do#yahoo.com.cn;
            QQ: 3 0 3 3 9 6 9 2 0 .

            壓縮xvid ffmpeg x264 對比

            轉載自:http://wujinhua2.i.sohu.com/blog/view/157807924.htm

            Xvid是基于MPEG4協(xié)議的編解碼器,x264是基于H.264協(xié)議的編碼器,ffmpeg集合了各種音頻,視頻編解碼協(xié)議,通過設置參數(shù)可以完成基于MPEG4,H.264等協(xié)議的編解碼,現(xiàn)在將其對比結果羅列如下:

            1.軟件版本:
                   Xvid:1.2.1
                   x264:無
                   ffmpeg:0.5


            2. 視頻樣本 foreman.cif 300幀,大小352x288

            3. 所選用編解碼器:  xvid, x264, ffmpeg

            4. 視頻流比特率設定 : 1000kbps.

            5. 測試結果:
                   
             編碼器  編碼時間(s) 視頻編碼后大小(B) 比特率(kbps) 輸入視頻格式

                Xvid           0.98        1779213        1.18        yuyv
               
                X264           2.2         1788824        1.19        yv12

             ffmpeg(mpeg4 協(xié)議) 0.76        1754847        1.17        yv12
               
              ffmpeg(h.264協(xié)議) 4.38        1741733        1.16        yv12

                解碼器      視頻所用的編碼器    解碼時間(s)    輸出視頻格式

                Xvid               Xvid             0.47        yuyv
               
                Xvid               ffmpeg           0.50        yuyv

                ffmpeg(mpeg4)      Xvid             0.26        yv12

                ffmpeg(mpeg4)       ffmpeg(mpeg4)    0.31        yv12

                ffmpeg(h.264)        ffmpeg(h.264)    0.45        yv12

                ffmpeg(h.264)        X264             0.78        yuyv
               
               

            6.結論

                從以上可以看出:

                1).    對于基于MPEG4協(xié)議的編解碼,ffmpeg的效率都要高于Xvid,主要原因應該是Xvid是以保存視頻效果為首要出發(fā)點的,其對視頻質量的保存應該是做的最好的,這就在一定程度上增加了編解碼的復雜性,影響了速度的提升。

                2).    對于基于H.264協(xié)議的編解碼,由于ffmpeg沒有本身的h.264編碼器,其H.264協(xié)議編碼是調用x264的編碼庫來完成的,所以其性能本質上還是x264的,只不過ffmpeg對其進行了封裝,但從數(shù)據(jù)對比可以看出,在本次實驗中,ffmpeg調用x264庫編碼用了4.38秒,遠遠高于 x264的2.2秒,這主要應該是ffmpeg調用x264庫時對其進行了不同的參數(shù)設置,當然對x264進行接口的封裝也會影響一部分性能,但應該不是主要的,主要的應該還是調用x264時,參數(shù)有些不同。

                所以如果做基于MPEG4的編解碼,如果對速度要求高的話,ffmpeg是很好用的工具。
                對于H.264協(xié)議來說,ffmpeg能很好的解碼,而編碼的話最好還是要調用x264,因為ffmpeg還沒有實現(xiàn)H.264的編碼。

            附:各編解碼器參數(shù)設定:


            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, 0sizeof(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;

            /* Video properties */
            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;  /* undef */
            param
            ->vui.i_vidformat = 5;  /* undef */
            param
            ->vui.b_fullrange = 0;  /* off */
            param
            ->vui.i_colorprim = 2;  /* undef */
            param
            ->vui.i_transfer  = 2;  /* undef */
            param
            ->vui.i_colmatrix = 2;  /* undef */
            param
            ->vui.i_chroma_loc= 0;  /* left center */
            param
            ->i_fps_num       = 25;
            param
            ->i_fps_den       = 1;
            param
            ->i_level_idc     = -1;

            /* Encoder parameters */
            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;

            /* Log */
            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;
            /* resolution must be a multiple of two */
            c
            ->width = FRAMEE_WIDTH;
            c
            ->height = FRAME_HEIGHT;
            /* frames per second */
            c
            ->time_base= (AVRational){1,25};
            c
            ->gop_size = 250/* emit one intra frame every ten frames */
            c
            ->max_b_frames=0;
            c
            ->pix_fmt = PIX_FMT_YUV420P;

            posted on 2013-01-29 14:43 楊粼波 閱讀(1148) 評論(0)  編輯 收藏 引用

            国产精品无码久久综合网| 久久毛片免费看一区二区三区| 中文字幕精品久久久久人妻| 久久亚洲精品国产精品婷婷| 2021国内久久精品| 久久se精品一区二区| 久久久久亚洲精品无码网址| 老男人久久青草av高清| 国产成人精品白浆久久69| 久久se精品一区精品二区国产| 久久中文字幕无码专区| 久久久无码精品亚洲日韩蜜臀浪潮| 日韩精品久久久久久| 精品久久久无码21p发布| 青青青国产精品国产精品久久久久| 热久久国产欧美一区二区精品 | 99久久婷婷免费国产综合精品| 精品免费久久久久国产一区| 一本色道久久88精品综合| 国产2021久久精品| 国产成人久久精品激情| 一本综合久久国产二区| 伊人久久免费视频| 99久久精品国产高清一区二区 | 日韩久久久久久中文人妻| 99久久国产亚洲高清观看2024 | 69国产成人综合久久精品| 亚洲AV伊人久久青青草原| 精品亚洲综合久久中文字幕| 亚洲精品无码久久久久去q| 久久综合色区| 色综合久久天天综线观看| 久久av免费天堂小草播放| 一本大道加勒比久久综合| AV无码久久久久不卡网站下载| 亚洲乱码中文字幕久久孕妇黑人| 国产精品久久久久久久app| 青青久久精品国产免费看| 久久久久亚洲av毛片大| 久久国产V一级毛多内射| 久久播电影网|