本次測試軟件環境:Intel Celeron雙核 2.60 Ghz CPU; 4GB 內存;安裝 Ubuntu 13.04
hzsx@hzsx-server:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 13.04
***
hzsx@hzsx-server:~$ uname -a
Linux hzsx-server 3.8.0-35-generic #50-Ubuntu SMP Tue Dec 3 01:25:33 UTC 2013 i686 i686 i686 GNU/Linux
hzsx@hzsx-server:~$ cat /proc/cpuinfo
***
model name : Intel(R) Celeron(R) CPU G1610 @ 2.60GHz
***
cpu MHz : 1600.000
cache size : 2048 KB
265編碼器 http://x265.org/
測試序列下載地址 ftp://ftp.ldv.ei.tum.de/videolab/public/SVT_Test_Set/720p/ 720p50_parkrun_ter.yuv 和 720p50_shields_ter.yuv
從http://x265.org/下載源碼編譯出可執行265,查看編碼效率。
發現暫時還不能用於產品。
本次測試使用了兩個720P 504幀的YUV序列。壓縮時間均超過2分鍾。這才20秒的視頻而已。
encoded 504 frames in 119.35s (4.22 fps), 525.44 kb/s // 720p50_parkrun_ter.yuv
encoded 504 frames in 124.79s (4.04 fps), 503.96 kb/s // 720p50_shields_ter.yuv
一下是對比ffmpeg和libx264編碼時間。
720p50_xxx_1280x720.yuv --->>> 720p50_xxx_.h264
ffmpeg 采用gusari已經編譯好的 http://ffmpeg.gusari.org/static/32bit/ ffmpeg.static.32bit.2014-04-18.tar.gz
采用2014.4.18 版本是為了和 libx264 對應
./ffmpeg -s 1280x720 -i ~/multimedia/720p50_shields_ter_1280x720.yuv -r 25 -vcodec libx264 -b 800000 ~/multimedia/720p50_shields_ter_ffmpeg_800k.h264
-b 800000 代表 800k bitrate
libx264 采用 官網 x264-snapshot-20140420-2245.tar.gz 自編譯
./x264 --bitrate 800 --fps 25 --output ~/multimedia/720p50_shields_ter_libx264_800k.h264 ~/multimedia/720p50_shields_ter_1280x720.yuv
--bitrate 800 代表 800k bitrate 。 和ffmpeg命令不同,這里是以k為單位。
這里之所以沒有添加參數 1280:720,后面解釋。
視頻序列 720p50_parkrun_ter_1280x720.yuv 記作 p ; 720p50_shields_ter_1280x720.yuv 記作 s ;
對比一下時間消耗
首先,使用ffmpeg編碼對應的時間消耗
bitrate 800k 5000k 8000k
時間消耗 p16s|s17s p27s|s33s p32s|s39s
然后,使用libx264編碼對應的時間消耗
bitrate 800k 5000k 8000k
時間消耗 p16s|s17s p27s|s33s p32s|s39s
從時間消耗上來說,基本上是一樣的。
最后解釋一下,libx264參數設置中,如果添加了 --sar 1280:720
得到的H264視頻文件,使用mediainfo查一下就會發現,Display aspect ratio : 3.160 。
申明,這里的yuv序列不包含任何其他信息,僅僅是顏色yuv值。
這是因為我yuv文件的命名,后綴前給出了分辨率1280x720,libx264會自動判斷分辨率。
如果添加了--sar 1280:720,導致編碼后再次縮放比例1280:720,即是(1280:720)*(1280:720) = 3.16