文章目錄
- 1. 前言
- 2. 編譯安裝mplayer
- 3. 設定檔
- 4. 播放APE
- 5. 全域快速鍵
- 6. TODO
1. 前言 首先需要說明的是,mplayer並不只有Linux的版本,也有Windows版的,並且也有相當多的使用者。這篇文章主要是記錄我配置使用mplayer中碰到的一些問題和解決方案。mplayer本身功能很強大,但是,強大的功能,往往需要經過一番調教,才能變得易用(sigh... Linux軟體就是這一點不好……)。2. 編譯安裝mplayer 絕大多數Linux發行版都可以直接從源裡面安裝mplayer,如在Debian中可以直接: sudo apt-get install mplayer 但是源裡面的軟體一般都不是最新的,同時筆者有一點點“潔癖”,很多軟體都喜歡自己編譯一下,主要為了儘可能在編譯時間去掉那些我不用的特性(我是不是該用Gentoo?)。 mplayer首頁:http://www.mplayerhq.hu/design7/dload.html 我是直接下載的svn源碼:
svn checkout svn://svn.mplayerhq.hu/mplayer/trunk mplayer
簡單看一下裡面的README檔案,開始編譯: ./configure --libdir=/usr/lib/ --enable-gui --language=en,zh_CN --enable-menu
make -j 2
make install 參數就不解釋了,./configure --help中可以看到。編譯安裝完了之後,發現-vo不能使用xv,只能用x11,這顯然有點不爽。剛開始還以為是自己的顯卡不行(915集顯,確實很糟……),後來查看configure.log檔案,找到Checking for xv這一段,發現問題出在沒有找到X11/Xlib.h這個標頭檔,於是
apt-file search Xlib.h
找到了libx11-dev這個包,安裝上,再重新configure && make之後,-vo就能用xv了。
寫下上面這一段的主要原因,主要是想強調一點,
當碰到問題時,應該學會自己尋找問題的根源,並解決,這往往比google的效率還要高一些。3. 設定檔 ~/.mplayer/config,自己建立,我的檔案內容如下: vo=xv,gl_nosw,x11
ao=alsa,oss
font='WenQuanYi Micro Hei'
sub-fuzziness=1
#subcp=enca:zh:cp936
subcp=cp936
subfont-autoscale=2
subfont-osd-scale=2.5
subfont-text-scale=3
ass=true
embeddedfonts=true
slang=en,zh
sid=0
cache=8192
skin=iTunes 其中,關於字幕的說明見這裡:http://blog.chinaunix.net/u1/53025/showart_1737097.html 皮膚檔案可以從上面給出的mplayer下載頁面得到。下載後解壓到~/.mplayer/Skins即可。skin是給gmplayer用的,第一次啟動gmplayer時,會根據config檔案產生幾個gui.*的設定檔,以後這些配置就根config獨立了,所以再修改config不會影響到gui.*,如果要修改的話,主要要修改兩處。
一些常用的快速鍵在manpages中寫的很詳細,這裡有一份很精簡的介紹。
4. 播放APE 以前一直用的audacious播放ape,但它的CPU佔用率太高,在我電腦上播放同一個ape,audacious佔用20%+的CPU,而mplayer只佔用5%左右,立刻就將audacious卸載了…… 但隨之帶來了一個問題,mplayer並不認cue sheet,所以就無法分曲跳轉了。網上搜尋了一把,似乎沒有解決方案,於是決定分割ape檔案。在網上隨便一搜,馬上就有了答案:shntool,具體做法可以參考這篇文章。5. 全域快速鍵 我想這也許算是這篇文章的重點吧,前面的內容網上基本都能搜尋到,全域快速鍵我在網上似乎沒有找到什麼好的解決方案。筆者這兩天剛好用了下xdotool,發現可以向視窗類比發送按鍵動作,於是嘗試之,但碰到一個問題,mplayer並不會修改它所在的那個terminal的標題,而我一般開好幾個terminal,因此無法通過標題找到mplayer的視窗。半天之後頓悟,為啥非得用終端的mplayer,而不用gmplayer呢?立刻嘗試用gmplayer,有獨立的視窗,順利通過
xdotool search --title "mPlayer"
找到,下面是一個簡單的控制指令碼:
#!/bin/bash
WID=`xdotool search --title mPlayer | head -n 1`
if [ "x$WIDx" == "xx" ]; then echo "No mplayer window found." fi
case $1 in
play)
xdotool type --window $WID " "
;;
pause)
xdotool type --window $WID " "
;;
next)
xdotool type --window $WID ">"
;;
prev)
xdotool type --window $WID ">"
;;
vup)
xdotool type --window $WID "0"
;;
vdown)
xdotool type --window $WID "9"
;;
quit)
xdotool type --window $WID "q"
;;
*)
echo "unknow arg: $1"
;;
esac
用這個指令碼可以很方便的控制mplayer:control-mplayer prev/next/... 再使用gnome的metacity綁定全域熱鍵,完美搞定!6. TODO 下一步打算研究一下怎樣提取google音樂的榜單以及對應音樂的地址,寫個指令碼,可以直接在命令列開啟mplayer播放指定的榜單。
轉載請註明出處:http://www.cnblogs.com/stephenjy/archive/2010/03/02/1676762.html