生活随笔
收集整理的這篇文章主要介紹了
主流开源编解码器Xvid,x264,ffmpeg 性能对比
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
如有轉(zhuǎn)載請(qǐng)注明出處:孔祥文博客http://kswapd.cublog.cn
Xvid是基于MPEG4協(xié)議的編解碼器,x264是基于H.264協(xié)議的編碼器,ffmpeg集合了各種音頻,視頻編解碼協(xié)議,通過(guò)設(shè)置參數(shù)可以完成基于MPEG4,H.264等協(xié)議的編解碼,現(xiàn)在將其對(duì)比結(jié)果羅列如下:
1.軟件版本:
??????? Xvid:1.2.1
??????? x264:無(wú)
??????? ffmpeg:0.5
2. 視頻樣本 foreman.cif 300幀,大小352x288
3. 所選用編解碼器:? xvid, x264, ffmpeg
4. 視頻流比特率設(shè)定 : 1000kbps.
5. 測(cè)試結(jié)果:
視頻編碼
| 編碼器 | 編碼時(shí)間(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 |
視頻解碼
|
| 解碼器 | 視頻所用的編碼器 | 解碼時(shí)間(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.結(jié)論
??? 從以上可以看出:
??? 1).??? 對(duì)于基于MPEG4協(xié)議的編解碼,ffmpeg的效率都要高于Xvid,主要原因應(yīng)該是Xvid是以保存視頻效果為首要出發(fā)點(diǎn)的,其對(duì)視頻質(zhì)量的保存應(yīng)該是做的最好的,這就在一定程度上增加了編解碼的復(fù)雜性,影響了速度的提升。
??? 2).??? 對(duì)于基于H.264協(xié)議的編解碼,由于ffmpeg沒(méi)有本身的h.264編碼器,其H.264協(xié)議編碼是調(diào)用x264的編碼庫(kù)來(lái)完成的,所以其性能本質(zhì)上還是x264的,只不過(guò)ffmpeg對(duì)其進(jìn)行了封裝,但從數(shù)據(jù)對(duì)比可以看出,在本次實(shí)驗(yàn)中,ffmpeg調(diào)用x264庫(kù)編碼用了4.38秒,遠(yuǎn)遠(yuǎn)高于x264的2.2秒,這主要應(yīng)該是ffmpeg調(diào)用x264庫(kù)時(shí)對(duì)其進(jìn)行了不同的參數(shù)設(shè)置,當(dāng)然對(duì)x264進(jìn)行接口的封裝也會(huì)影響一部分性能,但應(yīng)該不是主要的,主要的應(yīng)該還是調(diào)用x264時(shí),參數(shù)有些不同。
??? 所以如果做基于MPEG4的編解碼,如果對(duì)速度要求高的話,ffmpeg是很好用的工具。
??? 對(duì)于H.264協(xié)議來(lái)說(shuō),ffmpeg能很好的解碼,而編碼的話最好還是要調(diào)用x264,因?yàn)閒fmpeg還沒(méi)有實(shí)現(xiàn)H.264的編碼。
附: 各編解碼器參數(shù)設(shè)定:
??? Xvid:
?
xvid_enc_create_obj.version?=?XVID_VERSION;?xvid_enc_create_obj.max_key_interval?=?100;???xvid_enc_create_obj.profile?=?0xf5;?xvid_enc_create_obj.fincr?=?1;?xvid_enc_create_obj.fbase?=?25;?????????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;??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;?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;?????????????????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;????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;?????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.b_stat_read?=?0;??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;?param->p_log_private?=?NULL;?param->i_log_level?=?X264_LOG_INFO;?#if?0??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;???#endif?param->analyse.b_chroma_me?=?1;?param->analyse.i_mv_range_thread?=?-1;?param->analyse.i_mv_range?=?-1;??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;????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;??c->max_b_frames=0;?c->pix_fmt?=?PIX_FMT_YUV420P;
總結(jié)
以上是生活随笔為你收集整理的主流开源编解码器Xvid,x264,ffmpeg 性能对比的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。