伊莉討論區

標題: [教學]關於影片外掛字幕合併的各種問題解答[2樓為額外補充 2013/1/19更新] [打印本頁]

作者: ccdnet    時間: 2010-3-24 23:43 PM     標題: [教學]關於影片外掛字幕合併的各種問題解答[2樓為額外補充 2013/1/19更新]

本帖最後由 ccdnet 於 2013-4-9 23:43 PM 編輯

前言:
      大家都知道最近網路上所分享的動畫、影片,其格式不外乎以下幾種:.rmvb.avi.mkv(Matroska媒體系列的其中一種)、.mp4.wmv ……等。而字幕的格式有以下幾種(列出一些常見的):

1.圖形數據格式
SUB格式
SUB格式的字幕數據由字幕圖片文件(.sub文檔)和字幕索引文件(.idx文檔)組成。一個.sub文檔可同時包含多個語言的字幕,由.idx進行調用。常見於DVD-VIDEO,但在DVD中,這兩個文件被集成到VOB內,需要通過軟體分離VOB來獲取字幕文件。

2.文本數據格式
SRT格式
SRT(Subripper)是最簡單的文本字幕格式,後綴名為.srt,其組成為:一行字幕序號,一行時間代碼,一行字幕數據
如: 45
      00:02:52,184 --> 00:02:53,617
      慢慢來

      這表示:第45個字幕,顯示時間從該影片開始的第2分52.184秒到第2分53.617秒,內容為:慢慢來

SSA、ASS格式
SSA(Sub Station Alpha)是為了解決SRT過於簡單的字幕功能而開發的高級字幕格式其擴展名為.SSA。採用SSA V4腳本語言,能實現豐富的字幕功能,除了能設定不同字幕數據的大小和位置外,更能實現動態文字和水印等複雜的功能。ASS(Advanced SubStation Alpha)其實是更高級的SSA版本,採用SSA V4+腳本語言編寫。

      因此,如果要將影片上傳,勢必得將影片的外掛字幕內嵌進影片裡,不然會發生悲劇,也就是沒字幕,嚴重一點則是亂碼。不過由於.rmvb的格式通常已經將字幕內嵌進影片,所以大家通常是選擇上傳這類影片,但是這類影片的清晰度可就沒有這麼好了。所以透過這篇文章來讓大家了解如何解決字幕合併問題。

先期準備:
      首先要先準備以下工具軟體:
1.MediaCoder(轉檔軟體,其實也能選擇其他的,但是這邊用這個來做)
2.vsfilter.dll(讓字幕顯示的一個小檔案)
3.K-Lite Codec Pack(解碼工具,也可選擇其他的,例如:完美解碼或是終極解碼)
4.AviSynth(為AVI SYNTHesizer的縮寫,是用來內嵌字幕最重要的工具,一般大家把它簡稱為AVS或AVIS)

【PS】終極解碼內已包含Avisynth

      另外,如果是針對.mkv這個格式,請再準備以下2樣工具:
5.mkvtoolnix(將字幕合併進.mkv檔案裡做成內掛字幕的程式)
6.MKVExtractGUI(這個是將.mkv內的內掛字幕解出來的程式,為mkvtoolnix的額外功能,需要與mkvtoolnix一起安裝)

【PS】 以上程式請自行用Google大神尋找,在下不提供。

做法:
     首先是安裝程式(廢話!!),vsfilter.dll這個檔案要放到系統槽的X:\WINDOWS\system32裡。接下來是根據檔案格式來做合併字幕:(也許會有遺漏,但是這邊主要是針對主流格式做說明)

1..mkv的內封字幕類型(如果只是普通的外掛字幕影片,可以略過此步驟)
     這邊先跟大家解說一下,所謂內封字幕並不是真的把字幕內嵌進影片,部分字幕組只是把字幕用Matroska封裝格式將字幕封裝在這種格式之中,基本上我還是認為這跟外掛字幕一樣,一併幫大家解決疑難雜症。
     首先先用mkvtoolnix裡面mkvmerge GUI這個工具,將程式打開後為下列這張圖:(為了節省圖片用量,直接使用範例圖)
[attach]89283871[/attach]
      這個範例是“HKG字幕組的H2O-赤沙的印記”,只有看到影像檔跟音軌檔案而已,這類的.mkv類型,屬於字幕內嵌的型式,可以直接進行轉檔(但是伊莉不支持.mkv,須自行轉檔)。
[attach]89283873[/attach]
      這個範例是“X2&HKG字幕組的殺戮公主”,這邊與上面的不同在於多出了字幕檔案,這類的.mkv類型,屬於字幕內封的型式,不能直接進行轉檔,須進行字幕移出的工作。(如果直接轉檔,只會看到很多亂碼在跑而已~@@)
[attach]36310228[/attach]
      這個範例是“CASO字幕組的華麗的挑戰”,和上面不同的是擁有繁簡雙字幕,也是與上面一樣屬於內封的型式,須另外做字幕移出動作。(通常繁簡雙字幕都是這麼封裝的)

2.將各種檔案類型的外掛字幕內嵌進影片(這邊開始使用AVS內嵌法)<---重點由此開始
     這邊開始就需要安裝AviSynth(AVS)這個程式,首先是最常見的SRT格式SSA、ASS格式(字幕)與影片進行合併的方法:

1.請開起一個新的文件檔(.txt)

2.把下面這些複製進文件檔裡,並將副檔名改成.avs
LoadPlugin("VSFilter.dll")
DirectShowSource("*.avi",23.976(or 29.97),ConvertFPS=true)
TextSub("*.ass(or ssa)")
     上面是內嵌時所需的語法*代表路徑,其中.avi可換成其他格式,如:.mp4.wma.mkv甚至是.rmvb(不過前題是這個.rmvb是外掛字幕,這種類型很少見,幾乎是沒有),最後記得把裡面的"(or )"去除。另外下面再補充2種不同的語法,在下是沒試過,不過應該也是能用^^"。【基本上以上面的語法來解說^^】
基本型:
LoadPlugin("VSFilter.dll")
aviSource("*.avi")
changefps(23.976(or 29.97))
textsub("*.ass(or ssa)")
完整型:
LoadPlugin("VSFilter.dll")
v=DirectShowSource("*.avi",audio=false,23.976(or 29.97),convertfps=true)
A=DirectShowSource("*.mp3")
Audiodub (V,A)
textsub("*.ass(or ssa)")
3.接著試著用播放器播放看看是否有影像畫面(這邊會有2種情形,成功 or 失敗,拿圖來說明)
[attach]36304573[/attach]
     這個不用我說,就是成功了,可以進行轉檔。
[attach]36304574[/attach]
      這個則是因為字幕路徑錯誤,而導致無法播放(當然問題不只有這種,出現錯誤當然先找.avs)

4.利用MediaCoder程式將.avs檔案轉檔成想要的格式
     上述步驟完成後,就是已經將字幕內嵌進影片的完成品,可以將影片上傳至伊莉影片區^^
【PS】以上方法也可以用在SRT字幕格式,方法一樣只是將匯入字幕副檔名改成.str,不過一般是直接使用MediaCoder程式直接轉檔

3.關於SUB格式的字幕內嵌(這邊是額外的補充說明)
      .sub字幕為圖形數據格式的字幕類型,與文本數據字幕的不同之處是,這類字幕數據以圖片方式呈現,文件體積較大,不易於修改,亦稱為「硬字幕」。通常此字幕會有2個檔案,即.sub與.idx。
     這邊還是一樣使用AVS內嵌法,但是要修改字幕部分的語法,也就是如下所示:
LoadPlugin("VSFilter.dll")
DirectShowSource("*.avi",23.976(or 29.97),ConvertFPS=true)
VobSub("*.idx")
     也就是將原本textsub("*.ass(or ssa)")改成VobSub("*.idx")而已,其他部分則維持不變。至於上面的數值23.976(24)跟29.97(30),是指FPS,一般只有這2種數值。

【PS】Avs內嵌法:Avs其實就是一種索引文件,其內容可以用note等進行編譯,主要作用是通過指令調用相關濾鏡對視頻文件進行編輯,簡化工作。但它需要AviSynth的支持。(現今各字幕組內嵌字幕的方法大部分都是AVS+轉檔程式內嵌字幕)

     最後將相關流程在仔細說明一下:(這邊是上面的總結)

1.首先先確認影片的檔案類型
     當遇到的類型是屬於.mkv內封字幕時,請先利用MKVExtractGUI程式將字幕分離出來,外掛字幕則是省略此一步驟。
2.確認字幕的類型種類
     字幕主要分為圖形數據格式跟文本數據格式,依不同類型而有不同的做法。
3.使用AVS內嵌法編寫.avs文本
     基本上都使用下面的語法樣式,但依照字幕不同而有不同語法,另外,有時候影片跟音軌檔案是分開的,需使用完整版的語法。
LoadPlugin("VSFilter.dll")
DirectShowSource("*.avi",23.976(or 29.97),ConvertFPS=true)
TextSub("*.ass(or ssa)")<---文本數據格式的字幕

VobSub("*.idx")<---圖形數據格式的字幕
4.將.avs檔案轉檔成想要的格式
     透過轉檔程式(不一定要用我用的MediaCoder),將.avs檔案轉檔成所需的格式(轉檔完畢後會發現字幕已內嵌完成),基本上幾乎能支援現在的主流格式
[attach]36307223[/attach]
上圖是.avs的範例
[attach]36307225[/attach]
上圖是轉檔軟體MediaCoder的範例

後記:
      雖然軟體都是英文的,但是操作上並沒有很困難,個人認為本篇教學已經寫得很簡單了,如果還是不明白,那我也只能舉白旗投降了。在此發表這篇文章,讓大家能盡量上傳清晰畫質的影片,讓影片網不再充滿馬賽克(在此是指影片主機轉檔後的畫質,會有方格狀的紋路),相信大家都是傳RMVB這種不用轉檔合併字幕的影片居多吧。
     除此指外,字幕組所做字幕有時候會有錯誤,一般都是文本字幕居多,只要用記事本打開檔案就能修改錯誤,厲害一點的還能更改字幕字型、顏色、大小,甚至是自行重新製作字幕,在修改上很方便,希望這篇文章能幫上有心想學習的人。【By Gebochou】
附上vsfilter.dll的檔案
[attach]36308189[/attach]

作者: ccdnet    時間: 2010-3-24 23:43 PM     標題: MKV內封字幕提取相關

本帖最後由 ccdnet 於 2013-4-9 23:43 PM 編輯

     這部分是解說MKVExtractGUI的用法,如果不需要請直接跳過,以下利用“X2&HKG字幕組的殺戮公主”做為範例:(按照順序操作便能得到字幕檔),如下圖:
[attach]89283926[/attach]
     解出字幕後,需再配合下面步驟,請繼續往下看^^,因為內掛字幕是比較麻煩的,需要有耐心、耐心。  

     接著再利用mkvmerge GUI(MMG)這個程式,將.mkv影片檔做一次封裝(這邊記得備份原始檔案,不然一旦失敗就悲劇了),如下圖:
[attach]89283929[/attach]
     這麼做是因為要把字幕去除,進而利用外掛字幕做Avs內嵌法,所以必須真的要有耐心阿。
作者: ccdnet    時間: 2010-3-24 23:43 PM     標題: 額外教學&其他事項

本帖最後由 ccdnet 於 2013-4-9 23:43 PM 編輯

額外教學:
關於字幕的修改(只解說文本字幕的部分):
這邊推薦3個軟體做為輔助工具
    (1)Popsub(用來製作字幕的軟體,也可以用來平移時間軸,相當實用)
    (2)VobSub(修改字幕的工具軟體,只利用內附的SubResync)
PS:如果你的瀏覽器為IE8.0的話,SubResync會無法開啟,解決方案有2種,請上網路找Google大神
    (3)Aegisub(編輯特效字幕&時間軸的軟體)
------------------------------------------------------------------------------------------------   
其實用記事本開啟字幕檔做修改是最簡單的(當然平移時間軸還是要利用軟體來做比較好XD)
以下是.ssa的文本字幕:(以下範例為櫻花大戰TV版的字幕檔附上一張效果圖)
[attach]89283096[/attach]
[attach]89283097[/attach]
      由上面的圖可以知道字幕檔分成3大部分,而紅色部分又與字幕本身無關,所以修改字幕的錯誤其實並沒有很困難,其實困難的是自己有沒有恆心去校對字幕(這個真的很耗眼力~我沒騙你~是真的~被毆)
首先解說綠色的部分(也就是字型樣式)
[attach]89283098[/attach]
      從上圖可以知道所有數值的屬性(剩下的那幾個通常是不會動到,基本上如果要做大幅度更改,建議利用軟體做修改),通常會利用記事本修改到的屬性,基本上都很容易。字型樣式除非真的是很糟糕,不然基本上不會動到這裡,除非是要做簡體改成繁體字幕,不然應該不會動到這邊。
      另外這邊要特別注意字型的編碼,基本上繁體中文是136、簡體中文134、日文128,設定成1是Unicode。編碼錯誤可能會造成字幕字型與設定不符,甚至是無法顯示字幕。
      下圖是字幕本文的部分
[attach]89283100[/attach]
      基本上這裡只是簡單的說明字幕格式,其實還有其他的特效,除非是有特別的需求,如果只是改錯字、改字型樣式,那麼以上這些就足夠了。畢竟不是專門字幕組,如果想知道更深入的教學,請自己去找Google大神,相信你會有更多的收穫。
      有人會問說那麼.str跟.ass呢? 其實.ssa跟.ass的字幕是相近的東西,除了各數值排列不一樣之外(還有一些特效指令不太相同),其他都是相同的,改改字型樣式或是改字幕這些,基本上都可以利用記事本來修改。如果不會用記事本修改,也可以利用上面推薦的2個軟體,一樣能達到相同的效果(這2個軟體都有繁體中文版)。至於.str的字幕就比上面2種字幕來的簡單,由下圖來看,只有字幕本文而已,修改上並不難。
[attach]89283101[/attach]
關於圖形字幕的問題(解說當.sub字幕中有2種以上字幕的問題):
      雖然我很少接觸到這類字幕的合併,不過我還是說一下會遇到的特殊情形,一般都是當要合併此類字幕時會遇到語系不對的問題(例如:中英文雙語可切換字幕)。當要做AviSynth的字幕濾鏡時,本來是想內嵌中文,結果跑出來的是英文,我想這是很囧的事情。但是AviSynth又不能切換字幕?這時只要去修改.sub字幕中的.idx檔案,便可以迎刃而解。
[attach]89283103[/attach]
      由上圖可看到2個不同顏色的圈圈,其中綠色的部分就是中文字幕index值(index: 0),所以只要將紅色圈圈裡的數值由1改成0,就可以解決這類的問題。(這邊的例子是0,但是並不是所有的中文字幕都是0,請特別注意)
附上VobSub 2.33的檔案,以及因IE8.0的問題而無法開啟SubResync的修正檔案
[attach]89283094[/attach]
其他事項:
關於Windows 7下,播放AVS腳本時發生有畫面無聲音(轉檔後也相同)之處理方式:
      因該教學用到DirectShowSource語法,在OS為Windows Vista及Windows 7下播放AVS腳本時,會發生下圖情形:
[attach]89283159[/attach]
      當發生上圖情形時,為音源編碼器有問題,如果已確認AVS腳本、編碼器均設定正確,那可能為C:\Windows\System32底下msmpeg2adec.dll這個檔案的問題。解決方法為,需於C:\Windows\System32下找到msmpeg2adec.dll這個檔案(該檔案影響到你的編碼器),並將該檔案改名(須有系統權限)。以下是更改權限方法:
      1.找到msmpeg2adec.dll檔案並按下內容
[attach]89283163[/attach]
      2.於安全性選單下
[attach]89283160[/attach]
      3.按下進階
[attach]89283165[/attach]
      4.選擇編輯
[attach]89283168[/attach]
      5.更改擁有者(改成目前登入的使用者名稱)
[attach]89283170[/attach]
      6.回到安全性畫面下將權限全部打勾
[attach]89283173[/attach]
      7.將msmpeg2adec.dll檔案改名成msmpeg2adec_old.dll即完成(PS:系統為64位元者須再更改C:\Windows\SysWOW64底下的msmpeg2adec.dll)
      8.如影像編碼也出問題,那就再修改msmpeg2vdec.dll→msmpeg2vdec_old.dll即可。
附上終極解碼2013新年版的檔案                                  連結

作者: ccdnet    時間: 2010-3-24 23:43 PM

回復 4# peanuts1

編輯完成了~請小熊看看有沒有需要改進的地方~
本來想繼續寫字幕修改~不過這部分我也沒有很厲害~
這篇只是一篇基礎教學而已~
作者: ccdnet    時間: 2010-3-24 23:43 PM

回復 7# yahui1015

有比較好的片源通常是這麼做~雖然會花更多的時間
但也不是每個都要去做合併字幕
作者: ccdnet    時間: 2010-3-24 23:43 PM

回復 9# novia120

之前為了合併.ass這種特效字幕~我試過好多轉檔軟體~都沒辦法很完美的支援
後來去找很多種方法~就這種最好用~我想字幕組內嵌字幕應該都是這麼做吧
還蠻實用的~可以學來以備不時之需~^^"
作者: ccdnet    時間: 2010-3-25 23:43 PM

回復 12# loveyuhsuan11

這篇只是單純將外掛字幕如何內嵌的教學,我覺得會轉檔的應該都會用吧^^"
更何況是loveyuhsuan11大~炸
作者: ccdnet    時間: 2010-3-25 23:43 PM

回復 11# jsdaew

你太客氣了,這篇文章不算專業呢~汗
畢竟我也才了解這方法沒多久~^^"
作者: ccdnet    時間: 2010-3-25 23:43 PM

回復 15# yahui1015

有些字幕組會發畫質比較好的影片,此類影片通常有.mkv、.mp4或是其他格式,
而這類影片通常還會附給你字幕檔案,這類影片我都叫它"外掛字幕"的影片
作者: ccdnet    時間: 2010-3-30 23:43 PM

回復 19# yahui1015
用MKVextract把字幕解出來看看~應該能看到3個檔案
就是影像/聲音/字幕~如果沒有就是你少下了字幕檔
~不過一般而言~用KMP應該沒有不能播放的字幕~@@
作者: ccdnet    時間: 2010-3-30 23:43 PM

回復 21# yahui1015
喔喔~你想做字幕合併嗎@@~
我把其中3個容量較小的上傳到Hinet空間給你下載
這邊不能放網址@@~我到你部落格留言好了
作者: ccdnet    時間: 2010-3-31 23:43 PM

回復 25# yahui1015

都把字幕解出來,然後用記事本看裡面內容,判斷是不是繁體就好
教學裡也有寫到喔~看看吧,記得最後要將原始檔備份,避免失誤造成悲劇
作者: ccdnet    時間: 2010-3-31 23:43 PM

回復 27# yahui1015

用滑鼠左鍵點選"開啟檔案"...然後用記事本開啟~
還有就是原始檔一定要保留~避免失誤
作者: ccdnet    時間: 2010-5-14 23:43 PM

本帖最後由 ccdnet 於 2010-5-14 23:43 PM 編輯

回復 31# peanuts1

其實我很少遇到.str類型的字幕~這類字幕比較常出現在電影或是影視之類的~
如果叫我合併~我還是用AVS的字幕濾鏡做內嵌吧~
小熊把這招學起來~很好用的~^^"
至於mediacoder的字幕設定要問雷鳴~我不會用@@~
作者: ccdnet    時間: 2010-5-14 23:43 PM

我的方法是利用AVS的字幕濾鏡+mediacoder的轉檔功能~
我教學上提到的那些程式~除非有要做.MKV的字幕提出~
不然只要安裝解碼器,AVS,mediacoder這些~
我覺得我的教學很簡單明瞭呢~用我的方法比較快~
至於mediacoder的內建字幕功能~我只能搖頭~
因為我在沒學會利用AVS字幕濾鏡前~就是在研究mediacoder的內建"字幕"的功能~
支援性實在很糟糕~用AVS字幕濾鏡吧^^"
作者: peanuts1    時間: 2013-1-20 23:43 PM

本帖將於2月份整理
刪除過久以前討論
作者: ..楓葉..    時間: 2013-1-25 23:43 PM

本帖最後由 ..楓葉.. 於 2013-1-25 23:43 PM 編輯

我轉出的檔案有點怪怪的
我第一次用MediaCoder這個轉外掛字幕
雖然可以正常撥放轉出我想要的字幕
但是有時會有色彩失真的情況(在液晶電視上播放電腦的好像沒有看到)

請問是我的版本有問題還是我選用的編碼有問題?
我選的版本是MediaCoder-0.8.18.5335
選的編碼是3Pass
畫質有道,沒殘影但有時會失真請問是什麼原因?謝謝。

作者: lkk96966    時間: 2013-1-26 23:43 PM

本帖最後由 lkk96966 於 2013-1-26 23:43 PM 編輯
..楓葉.. 發表於 2013-1-25 23:43 PM
我轉出的檔案有點怪怪的
我第一次用MediaCoder這個轉外掛字幕
雖然可以正常撥放轉出我想要的字幕


如果你有KMP播放器,播放影片時按下alt+j會出現檔案資訊,其他功能播放器功能應該也有
如果是10bit,紅色會顯示10
[attach]86800496[/attach]
因為10bit直接用AVS轉出來會變8bit導致色彩失真
如果你只是自個兒欣賞,就不用做字幕內嵌部份,把播放器的字幕特效打開即可
畢竟10位色比8位色來得好

作者: ..楓葉..    時間: 2013-1-26 23:43 PM

本帖最後由 ..楓葉.. 於 2013-1-26 23:43 PM 編輯
lkk96966 發表於 2013-1-26 23:43 PM
如果你有KMP播放器,播放影片時按下alt+j會出現檔案資訊,其他功能播放器功能應該也有
如果是10bit,紅色 ...


版大謝謝你,剛剛一直爬文結果有找到
因為我調成HIGH@L5.1&HIGH 10->我想可能是這個原因
結果導致液晶電視播放出來很怪
但電腦就沒差
因為我要放到電視上看所以就必須要嵌字幕
所以我搞了超久
我是在mediacoder-->屬性那邊有看到這些資料
那個8bites(我把8bite轉成變10bite)我還是不懂怎麼會調到的
我有看到我的檔有這個,謝謝版大的告知
可否請版大跟我說一下轉檔時您都是怎麼調的?
謝謝。

作者: lkk96966    時間: 2013-3-13 23:43 PM

如果遇到變動FPS,要怎麼合字幕??
直接用AVS轉出來,畫面有些小地方會不流暢

作者: lkk96966    時間: 2013-3-13 23:43 PM

本帖最後由 lkk96966 於 2013-3-13 23:43 PM 編輯
lkk96966 發表於 2013-3-13 23:43 PM
如果遇到變動FPS,要怎麼合字幕??
直接用AVS轉出來,畫面有些小地方會不流暢
...

此專輯都有這問題
http://video.eyny.com/index.php/playlist/view/24600.html

原檔出處
http://www03.eyny.com/thread-8120726-1-1.html
http://www03.eyny.com/thread-8106305-1-1.html


遇到變動偵的影片,真的舉白旗投降,也拜GOOLE大神了,但沒完整的教學
看得我一個頭兩個大


作者: lkk96966    時間: 2013-3-14 23:43 PM

本帖最後由 lkk96966 於 2013-3-14 23:43 PM 編輯


補充內容 (2013-3-14 23:43 PM):
經過影片網轉檔系統,好像變得跟之前一樣...看來是無解= ="




歡迎光臨 伊莉討論區 (http://www.eyny.com/) Powered by Discuz!