CONAN ZONE

          你越掙扎我就越興奮

          BlogJava 首頁 新隨筆 聯系 聚合 管理
            0 Posts :: 282 Stories :: 0 Comments :: 0 Trackbacks
           一直在用mplayer,其他的播放器很少用。以下是我使用過程中的一些心得。
          注意,下面用的路徑都是在我的電腦上的路徑,使用時請不要照抄!應該換成你的電腦上的正確路徑。
          一、首先還是講安裝方面的問題。
          具體的安裝見本版的精華帖子,這里不詳細講。
          http://www.linuxfans.org/nuke/modules.php?name=Forums&file=viewtopic&t=80676
          代碼:
          ./configure --enable-gui --with-codecsdir=/usr/lib/w32/ --language=zh_CN --enable-freetype --enable-fontconfig

          這是我使用的編譯參數,僅供參考。

          1、解碼器
          到官方網站下載,放到一個目錄下,./configure時用--with-codecsdir=DIR來指定。

          2、GUI
          要想使用GUI界面,編譯時指定--enable-gui參數。安裝完后,到官方下載皮膚,解壓后放到mplayer的Skin目錄下。之后可以用gmplayer -skin xxx來啟動(xxx為Skin中的皮膚的目錄名)。

          3、配置文件
          其實不使用config配置文件也行的。mplayer會使用默認的規則。如果你還是想使用配置文件,可以到源代碼目錄下的etc目錄下找。那個什么example的文件就是config的實例文件。

          4、字幕字體
          有兩個方法:
          A、到官方網站下載字體文件,具體參考mplayer索引中的帖子:
          http://www.linuxfans.org/nuke/modules.php?name=Forums&file=viewtopic&p=3892464#3892464
          使用的是font.desc這個文件。
          B、在編譯是使用--enable-freetype參數(當然要系統支持),在~/.mplayer/下建立subfont.ttf的符號連接到某個字體文件。例如我的是subfont.ttf -> /usr/fonts/truetype/simsun.ttf。這樣mplayer就會自動加載字體了。

          方法A可以在config文件中寫font=/tmp/gb2312-kai/gkai00mp24/font.desc來讓mplayer自動加載。注意config中的font設定比subfont.ttf優先級更高。(優先級應該是:命令行中的設定->config中的設定-> subfont.ttf)
          命令行中指定字體文件,通過-font參數。例如:
          mplayer -font /xxx/font.desc 或 mplayer -font /xxx/simsun.ttf

          二、字幕顯示
          1、字幕的加載
          其實mplayer是可以自動加載字幕文件的。但是這只是在字幕文件名跟媒體文件名相同時才起作用(后綴不同)
          例如這樣的:
          “遷徙的鳥”
          Le.Peuple.Migrateur.SBC.AC3_2Ch-SBMovie.CD1.avi
          Le.Peuple.Migrateur.SBC.AC3_2Ch-SBMovie.CD1.idx
          Le.Peuple.Migrateur.SBC.AC3_2Ch-SBMovie.CD1.sub
          Le.Peuple.Migrateur.SBC.AC3_2Ch-SBMovie.CD2.avi
          Le.Peuple.Migrateur.SBC.AC3_2Ch-SBMovie.CD2.idx
          Le.Peuple.Migrateur.SBC.AC3_2Ch-SBMovie.CD2.sub
          這樣的就能自動加載字幕,通過j鍵切換。
          但像這種的就不行了
          “魔戒3”
          dmd-rotktc-cd1.avi
          dmd-rotktc-cd1.Chs.srt
          dmd-rotktc-cd1.Cht.srt
          dmd-rotktc-cd1.Eng.srt
          dmd-rotktc-cd2.avi
          dmd-rotktc-cd2.Chs.srt
          dmd-rotktc-cd2.Cht.srt
          dmd-rotktc-cd2.Eng.srt
          dmd-rotktc-cd3.avi
          dmd-rotktc-cd3.Chs.srt
          dmd-rotktc-cd3.Cht.srt
          dmd-rotktc-cd3.Eng.srt
          這種情況下要使用參數具體指定一個字幕文件
          mplayer dmd-rotktc-cd1.avi -sub dmd-rotktc-cd1.Chs.srt

          其實mplayer還有一個聰明的參數可以使用的,就是
          -sub-fuzziness <mode>
          Adjust matching fuzziness when searching for subtitles:
          0 exact match
          1 load all subs containing movie name
          2 load all subs in the current directory
          可以使用-sub-fuzziness 2來讓mplayer加載目錄下的所有字幕文件,播放時可以通過j鍵切換。
          mplayer dmd-rotktc-cd1.avi -sub-fuzziness 2
          多說一句,這個參數在命令行下是較好使的,但KPlayer中就不行。(我用的是ML1.2b1,呵呵)

          2、中文字幕的顯示
          有的人安裝了mplayer和字體后,顯示的中文字幕是亂碼。這主要是沒有設置好參數的問題。
          結合上面的“字幕字體”中的介紹的兩個方法,分別要加上以下參數才能正常顯示中文字幕。
          A、font.desc字體的話,要加上-unicode參數。
          B、ttf字體的話,要加上-subcp xxx參數。其中xxx可能為:cp936、gb、gbk等等,具體要看字幕的編碼格式。
          例如:
          代碼:

          mplayer dmd-rotktc-cd1.avi -sub dmd-rotktc-cd1.Chs.srt -font /tmp/gb2312-kai/gkai00mp24/font.desc -unicode

          代碼:

          mplayer dmd-rotktc-cd1.avi -sub dmd-rotktc-cd1.Chs.srt -font /usr/share/fonts/simsun.ttf -subcp cp936

          其實上一節“1、字幕的加載”給出的mplayer的播放命令都是不能正常顯示中文的,因為沒加上正確的參數。

          到這里,關于-sub-fuzziness要多說一下了。為了正確顯示中文,要加-subcp參數,例如-subcp cp936
          mplayer dmd-rotktc-cd1.avi -sub-fuzziness 2 -subcp cp936
          但這樣又會帶來一個問題。像上面的魔戒3中,有簡體、繁體和英文字幕。但加上-subcp cp936后,繁體字幕會加載不了。

          對于font.desc和ttf這兩種字幕字體,我個人推薦使用ttf字體。因為使用font.desc會不能正常顯示一些中文字幕(內嵌字幕等),即使加上-unicode參數。或許行,但我不知道要用什么方法才行。下面,就以ttf字體的例子,講講具體的字幕顯示方法。

          總的來說,字幕文件是什么編碼格式,-subcp后面就加上相應的編碼。
          例如,字幕文件是GB編碼的話,就用-subcp gb
          字幕文件是GB2312編碼的話,就用-subcp gb2312
          字幕文件是utf8編碼的話,就用-utf8
          utf8的情況很少見,因為多數字幕是國人在windows下制作的,使用的都是GB系列的編碼格式,不過你可以把原來的GB系列編碼格式文件轉換為utf8格式,你會發現使用-utf8參數后才能正常顯示字幕。同時你會發現用font.desc加unicode的方法是不能正常顯示utf8編碼的字幕文件的。

          一般的,使用-subcp cp936 就能正常顯示簡體中文字幕。如果你發現顯示的字幕中有的正常,有的不正常,這說明字幕文件確實是GB系列編碼的,你可以試試把cp936換成其他的例如 GBK,GB2312等等,總有一個行的。你還可以用iconv -l來顯示系統中已知的字符集,來幫助你選擇編碼。
          我的系統中GB系列有GB, GB2312, GB13000, GB18030, GBK, GB_1988-80, GB_198880

          在這方面,mplayer也有一個不錯的選項可以使用。
          -subcp enca:<language>:<fallback codepage> (ENCA only)
          You can specify your language using a two letter language code
          to make ENCA detect the codepage automatically. If unsure, en-
          ter anything and watch mplayer -v output for available lan-
          guages. Fallback codepage specifies the codepage to use, when
          the autodetection fails.

          EXAMPLE:
          -subcp enca:cs:latin2
          Guess the encoding, assuming the subtitles are Czech,
          fall back to latin 2, if the detection fails.
          -subcp enca:pl:cp1250
          Guess the encoding for Polish, fall back to cp1250.
          但我發現這個選項工作的不太好,例如-subcp enca:zh:cp936
          按照上面的說明,應該是讓其自動檢測中文編碼,檢測失敗時使用cp936。
          原來使用-subcp cp936能正常顯示的字幕,當用-subcp enca:zh:cp936時反而成了亂碼。

          上面所說的都是外掛字幕文件的,現在介紹兩種內嵌字幕的媒體格式:
          MKV格式:
          播放命令:
          mplayer \[52wy\]\[Naruto\]\[094\]\[Jp_Cn\]\[Xvid_Bf\].mkv -sid 0 -subcp gb -font /usr/share/fonts/simsun.ttf

          建議在命令行下播放,這樣可以看到詳細的信息:
          代碼:

                 播放 [52wy][Naruto][094][Jp_Cn][Xvid_Bf].mkv.
                 SUB: error opening iconv descriptor.
                 [mkv] Track ID 1: video (V_MS/VFW/FOURCC), -vid 0
                 [mkv] Track ID 2: audio (A_MPEG/L3), -aid 0, -alang und
                 [mkv] Track ID 3: sutitles (S_TEXT/UTF8), -sid 0, -slang chi
                 [mkv] Track ID 4: sutitles (S_TEXT/UTF8), -sid 1, -slang chi
                 [mkv] Will play video track 1
                 [mkv] Will play audio track 2
                 [mkv] Will display subtitle track 3
                 檢測到Matroska文件格式。
                 

          要使用-sid 0或者-sid 1來指定字幕。不然mplayer默認不加載字幕的。

          OGM格式:
          我在一些國外網站上下載了一些OGM格式的文件,一開始我還以為沒字幕的。后來看到播放信息才發現原來是內嵌的字幕(要通過-sid 0調出來)
          代碼:
           SUB: error opening iconv descriptor.
                 SUB: error opening iconv descriptor.
                 檢測到Ogg文件格式。

          播放命令:mplayer xxx.ogm -sid 0 -subcp cp1250 (是英文字幕來的)

          最后說一下字幕字體大小的設定。我發現用
          -font /usr/share/fonts/simsun.ttf
          顯示的字幕字體大了點,有時字數一多就要多行顯示,實在不太行。
          后來試了試,覺得使用
          -subfont-autoscale 2 -subfont-text-scale 4
          這兩個參數后,字體大小就比較滿意。

          3、其他
          RMVB
          最新的real編碼,mplayer暫時不支持,要看的話使用realplayer10 for linux。不過這個軟件在有些機上工作不太正常。
          有些rmvb文件,雖然不是用最新的編碼器制作的,但是用mplayer播放時會因為“段錯誤”而退出。我發現可能是音頻解碼出了問題,可以使用-nosound來播放,就是沒聲音。或者試試用-ss 00:00:50 來跳到50s處播放,有時可以解決問題。

          硬盤上的DVD
          mplayer dvd://1 -dvd-device /xxx/dvd -sid 0 -subcp cp936 -framedrop

          流媒體文件
          mplayer -cache 8192 mmst://xxxxx/xxx.wmv
          使用8M的緩存

          framedrop參數
          我的配置:賽揚366Mhz,440zx主板,256M,GF4mx440,系統MagicLinux 1.2b1、MPlayer1.0pre5。
          在我的電腦上,還能流暢播放avi、老的rm/rmvb、ogm、asf等媒體。較新的rmvb、wmv和DVD播放都很慢。發現只有在播放DVD時使用 framedrop參數后能流暢播放,其他的rmvb、wmv使用了framedrop參數后不但速度沒提高,有時反而更慢。

          暫時只有這么多。哪位有好的播放心得請續帖子!!!

          posted on 2008-07-08 22:42 CONAN 閱讀(236) 評論(0)  編輯  收藏 所屬分類: Linux/Unix
          主站蜘蛛池模板: 滨海县| 荥经县| 萨嘎县| 崇明县| 江西省| 得荣县| 嵊泗县| 赤峰市| 三原县| 东安县| 彭阳县| 盘锦市| 靖远县| 四川省| 阳曲县| 南召县| 上杭县| 宜宾县| 白朗县| 澄迈县| 连平县| 开江县| 即墨市| 松江区| 环江| 江北区| 内黄县| 松溪县| 寻甸| 金乡县| 遵化市| 大渡口区| 扶沟县| 外汇| 儋州市| 开鲁县| 湖北省| 察隅县| 新源县| 盖州市| 吴江市|