2009年7月4日 星期六

體驗multi-thread decode的mplayer

先前閱讀了GeeXbox的 multi-thread decode 的功能,感到非常有興趣,因為我自已有收藏了許多1080p H264的影片,但我的Althon X2 3600+其實撥不太動。看到了Multi-thread decode的功能,當然要好好嘗試,讓我的 CPU 可以播放高清影片。

影片格式必須是 Mpeg1/2 H264才可以,大部份的高清片都以Mpeg2, H264為主,所以不用擔心。

先記錄一下做法。

1. 下載最新的 mplayer:
svn checkout svn://svn.mplayerhq.hu/mplayer/trunk mplayer

2. 下載 FFmpeg-mt:
git clone git://gitorious.org/~astrange/ffmpeg/ffmpeg-mt.git

3. 更新 mplayer 的libav*目錄
cd mplayer
rm -fr libav*
cp -a ../ffmpeg-mt/libavformat .
cp -a ../ffmpeg-mt/libavcodec .
cp -a ../ffmpeg-mt/libavutil .

4. 開始編譯和make
./configure
make
make install


編譯完成後,隨便拿一個測試影片(網路上也有提供高清的試看),執行下列指令來撥放:
mplayer -vc ffh264 -lavdopts threads=[N] movie.mp4 (N代表CPU的核心數)

撥放時用top來看,可以看到 mplayer 的 loading 會超過100%,而且畫面很順,真是開心極了。按照ffmpeg-mt的官方說法,目前除了Atom N330之外,其它雙核以上CPU都可以順暢。

這應該是C/P值最高的高清撥放功能了。

提外話,等我買了Nvidia8系列的顯示放後,再來測試 nvidia-libvdpau 的高清撥放功能。