CONAN ZONE

          你越掙扎我就越興奮

          BlogJava 首頁 新隨筆 聯(lián)系 聚合 管理
            0 Posts :: 282 Stories :: 0 Comments :: 0 Trackbacks
          問題描述:
              現(xiàn)有文件:Friends.-.1x24.-.TOW.Rachel.Finds.Out.avi
                                  Friends.-.1x24.-.TOW.Rachel.Finds.Out.[VeryCD.com].CHN.srt
                                  Friends.-.1x24.-.TOW.Rachel.Finds.Out.[VeryCD.com].ENG.smi
              為學(xué)習(xí)英文需要,想要用實(shí)現(xiàn)mplayer實(shí)現(xiàn)雙字幕
           解決方案:
               1.將smi文件轉(zhuǎn)化為srt
                   mplayer  -sub Friends.-.1x24.-.TOW.Rachel.Finds.Out.\[VeryCD.com\].ENG.smi -dumpsrtsub Friends.-.1x24.-.TOW.Rachel.Finds.Out.avi

                   如果錯(cuò)誤提示:-vo x11,那么加上這個(gè)選項(xiàng)就行了,就是:
                  mplayer -vo x11 -sub Friends.-.1x24.-.TOW.Rachel.Finds.Out.\[VeryCD.com\].ENG.smi -dumpsrtsub Friends.-.1x24.-.TOW.Rachel.Finds.Out.avi
                  這樣就會(huì)生成一個(gè)名為dumpsub.srt的文件

               2.合并兩個(gè)srt文件
                   diff Friends.-.1x24.-.TOW.Rachel.Finds.Out.\[VeryCD.com\].CHN.srt dumpsub .srt -D diff>all.srt

                   -D 參數(shù)是合并差異,后面diff為自行添加的差異標(biāo)識(shí)(文字描述,你怎么寫都可以),是必須的。man 手冊        中是這樣說的:
                  引用
                  -D NAME --ifdef=NAME
                  Output merged file to show ‘#ifdef NAME’ diffs.

                 OK,現(xiàn)在我們生成了一個(gè)合并好的字幕,如果有亂碼,修改文件編碼就ok了。但中間凡是差異合并的地方都有以 #ifdef 及 #endif 開頭的注釋句標(biāo)識(shí),剩下的工作只要把這樣的句子去掉就大功告成了。

               3.去掉多余的注釋,用一條命令把它搞掂:
                 cat all.srt|grep -v '^\#.*'>mov.srt
                 -v, --invert-match select non-matching lines
                 選擇不匹配的行,正是我們想要的。單引號(hào)中是正則表達(dá)式匹配以#開頭的行。

                 mov.srt就是我們要的文件
                 注意:如果無法加載字幕,則很有可能是字幕中有一些亂碼,找到之后去掉就可以了
               4.播放
                mplayer -vo x11 Friends.-.1x24.-.TOW.Rachel.Finds.Out.avi -sub mov.srt
          posted on 2008-07-08 22:40 CONAN 閱讀(385) 評(píng)論(0)  編輯  收藏 所屬分類: Linux/Unix
          主站蜘蛛池模板: 广德县| 扶沟县| 昆明市| 马山县| 永川市| 孟州市| 博野县| 岗巴县| 静安区| 德兴市| 合江县| 泽州县| 黄山市| 南靖县| 炎陵县| 濮阳市| 随州市| 蒙山县| 渝中区| 宾川县| 两当县| 宜城市| 松阳县| 威宁| 潞西市| 五莲县| 开原市| 弥勒县| 湖北省| 柳河县| 玉林市| 哈尔滨市| 策勒县| 阳信县| 教育| 宣恩县| 鄯善县| 集安市| 登封市| 湛江市| 新和县|