前兩天剛下載下來的日劇 - 古書堂事件手帖,沒想到竟然是MKV檔,不過已經內嵌字幕了,聽起來似乎非常美好,只要有時間來看就好了!(事情要是這麼簡單,我也不會特別寫這篇廢文了)

  可惜的是字幕檔竟然是中文+日文,這下有點糗了,因為我用播放軟體看得時候,字幕讀出來幾乎會佔滿一半的畫面....XD,更別提放到客廳那台多媒體播放器上面看了,所以我又開始給自己找麻煩了,我要弄出只有中文字幕的字幕檔來。

既然下定決心,就開始來安排工作流程吧!

1. 先到射手網上找看看,沒有的話就只好自幹了!
> 很好,沒找到.....

2. 透過MKV拆解程式將字幕檔抽離

3. 找出字幕檔規則來過濾日文字幕的部份

  目前戰況,字幕檔都抽出來了,字幕檔屬於ass檔案格式,而中文、日文字幕都在同一行,不過又透過一個換行的\N符號來區隔開。太好了!似乎有規則可以來處理!只是該用哪個程式語言來處理勒,第一個想到的是javascript,因為自己的桌機沒安裝任何程式開發工具,單純就是回家娛樂用。不過中途出去到垃圾時,不停在想最近比較常寫PHP,是不是改用PHP好了,逐行讀檔,寫檔的功能都完善,應該會比叫方便。

  丟完垃圾回到房間,事不宜遲,趕緊偷偷地把字幕檔丟到目前開發的server上,然後另外開一個PHP檔來處理這些字幕檔。

1. 逐一讀出字幕檔
2. 開啟字幕檔,逐行讀出檔案內容
3. 檢查該行若是字幕格式,準備處理
3.1. 找出中文字幕的部份,過濾一些例外狀況
3.2. 將此行內,中文字幕的部份擷取出來,補上個換行符號
4. 將處理過或沒處理的每一行再重新累加起來
5. 將重新處理過得內容輸出到新的字幕檔

  以上過程看起來好像很簡單,可是實做起來,我還是搞了半個小時多,因為我一直都是複製貼上愛好者,很多語法都要去google查一下,然後才知道怎麼用,雖然前陣子再寫PHP,可是一直沒把function記得很熟,不過皇天不負苦心人,最後還是做出一個滿粗糙的版本來執行。

  結果本來看到一半的新番就停住了,似乎不太好看也沒差,打算繼續看得小說「明朝那些事兒」,看來也沒時間看了!還是去看一下有啥工作可以先補起來的吧!

soarlin 發表在 痞客邦 PIXNET 留言(0) 人氣()