嚴以律己,寬以待人. 三思而后行. GMail/GTalk: yanglinbo#google.com; MSN/Email: tx7do#yahoo.com.cn; QQ: 3 0 3 3 9 6 9 2 0 .
Xvid是基于MPEG4協議的編解碼器,x264是基于H.264協議的編碼器,ffmpeg集合了各種音頻,視頻編解碼協議,通過設置參數可以完成基于MPEG4,H.264等協議的編解碼,現在將其對比結果羅列如下:
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 協議) 0.76 1754847 1.17 yv12 ffmpeg(h.264協議) 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協議的編解碼,ffmpeg的效率都要高于Xvid,主要原因應該是Xvid是以保存視頻效果為首要出發點的,其對視頻質量的保存應該是做的最好的,這就在一定程度上增加了編解碼的復雜性,影響了速度的提升。
2). 對于基于H.264協議的編解碼,由于ffmpeg沒有本身的h.264編碼器,其H.264協議編碼是調用x264的編碼庫來完成的,所以其性能本質上還是x264的,只不過ffmpeg對其進行了封裝,但從數據對比可以看出,在本次實驗中,ffmpeg調用x264庫編碼用了4.38秒,遠遠高于 x264的2.2秒,這主要應該是ffmpeg調用x264庫時對其進行了不同的參數設置,當然對x264進行接口的封裝也會影響一部分性能,但應該不是主要的,主要的應該還是調用x264時,參數有些不同。
所以如果做基于MPEG4的編解碼,如果對速度要求高的話,ffmpeg是很好用的工具。 對于H.264協議來說,ffmpeg能很好的解碼,而編碼的話最好還是要調用x264,因為ffmpeg還沒有實現H.264的編碼。
附:各編解碼器參數設定:
posted on 2013-01-29 14:43 楊粼波 閱讀(1146) 評論(0) 編輯 收藏 引用
Powered by: C++博客 Copyright © 楊粼波