OurDVD - Forum

完整版本: DVD製作隨筆[BC大原创]
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
字幕的設定
很多時都會有人問怎樣去設定預設的字幕,使我們播放DVD時不必再作設定,便可以播放我們需要的字幕。我看過一些教導在IfoEdit設定的方法,但從我的經驗,只簡單地 設定一些旗號未必可以解決問題…
每片DVD都有不同的方法去設定預設的字幕和聲軌,最普通的就是顯示第一個字幕。有些會測試DVD機的語言去設定,亦有些有其他的方法去做…
要知道DVD是怎樣設定字幕的,應從程式本身著手,而PgcEdit就是最理想的處理程式。以下是一些實際例子,是我一些操作的記錄,希望對大家有幫助。
通常用PgcEdit打開DVD後,便要進入Trace Mode(按右上角的藍色圖形),最好把Watch同時顯示,以便監察register使用的情況。而左下角你可以看到現在的字幕(SubPic)和聲軌(Audio)的 狀況。

1. Le Samourai (1967)
這是一部法國電影,由亞龍狄龍主演。原DVD只有英文字幕。加了中文字幕後,便有兩個字幕,0是英文,1是中文。
用Step來逐行觀察,很快便到了這一行…

(SetSTN) Set Sub-picture stream = 0, on

這裏設定預設的字幕是0(第一個),狀態是on(開啟)。
看來這個很容易解決,只要把0改為1便把預設字幕改成英文。

(SetSTN) Set Sub-picture stream = 1, on

更改後,重新開啟DVD,然後在Trace Mode下按Next PB正至到主選單,跟著選擇播放主電影,但virtual player卻顯示影片正顯示英文字幕,於是便要再次找尋還有什麼地方出現問題…

再由頭逐行檢視,果然有新發現…
在較後的地方有這一行…

(SetSTN) Set Audio stream = gprm(11) ; Set Sub-picture stream = gprm(10)

而觀察gprm(10)和gprm(11),正好是64和0…
於是重新載入DVD,找尋那裏設定這兩個數值…

Set gprm(11) =(mov) 0
Set gprm(10) =(mov) 64

把64改成65,再重新測試,預設的中文字幕便跑出來了!
當然我們應先儲存DVD後用播放器正式測試。

2. Finding Forrester (2000)
原DVD有兩個字幕(0-En、1-Fr),我加入的字幕是2-Zh。
在很前的地方找到這些設定…

********** pre commands:
1 (SetSTN) Set Sub-picture stream = 2, on (這行是我加入的)
2 Set gprm(9) =(mov) 1
3 if ( gprm(9) == 1 ) then { Goto line 6 }
4 Set gprm(14) =(mov) 43690
5 (JumpSS) Jump to VMGM PGC 1
6 if ( gprm(12) == 1 ) then { Goto line 8 }
7 Set gprm(12) =(mov) 0
8 Set gprm(1) =(mov) sprm(5:Title number in VTS)
9 Set gprm(1) &=(and) 127
10 Set gprm(2) =(mov) sprm(2:Sub-picture stream number)
11 Set gprm(2) &=(and) 127
12 Set gprm(3) =(mov) sprm(2:Sub-picture stream number)
13 Set gprm(3) &=(and) 63
14 Set gprm(4) =(mov) sprm(1:Audio stream number)
15 Set gprm(4) &=(and) 15
16 Set gprm(5) =(mov) sprm(3:Angle number)
17 Set gprm(5) &=(and) 15

第10行和第12行都和字幕設定有關,它們都把播放器內的字幕軌的資料(sprm(2))記錄,所以第一行便把(sprm(2)作出適當的設定,所以如不作任何其他選擇D VD便會顯示中文字幕了。
只要選擇正確,作出些少便可以了。

3. Thank You For Smoking (2006)
原片有(0-En、1-Es)音軌和(0-En、1- Es、2-Fr)字幕。
1 Set gprm(8) =(mov) 1
2 Set gprm(12) =(mov) 0
3 Set gprm(13) =(mov) 0
4 Set gprm(0) =(mov) sprm(16:Preferred audio language)
5 Set gprm(1) =(mov) sprm(18:Preferred sub-picture language)
6 if ( gprm(1) == 25971 ("es") ) then { Set gprm(13) =(mov) 65 }
7 if ( gprm(1) == 26226 ("fr") ) then { Set gprm(13) =(mov) 66 }
8 if ( gprm(0) == 25971 ("es") ) then { Set gprm(12) =(mov) 1 }
這裏用了gprm(12)和gprm(13)來記錄音軌和字幕的數值。第二和第三行把它們設定為0,即英文音軌和字幕。
第四行從DVD播放器尋找音軌,第五行尋找字幕。
第六行如果是西班牙語便將gprm(13)設為65(西班牙字幕)。
第七行如果是法語便將gprm(13)設為66(法文字幕)。
第八行如果是西班牙語便將gprm(12)設為1(西班牙語)。
至於第九行,由於沒有法語音軌,故只再一次去做設法文字幕(和第七行一樣,可以說是多餘的)。

而到播放主電影,便會遇到這一行來設定音軌和字幕:-
13 (SetSTN) Set Audio Stream = gprm(12) ; Set Sub-picture Stream = gprm(13)

這個情況下,我們可以這樣去修改程式。
if ( gprm(1) == 31336 ("zh") ) then { Set gprm(13) =(mov) 67 }
將這行加到第七行後,以便測試播放器為中文時設定中文字幕。
若果我們不想要這些自動功能,也可索性直接改為
Set gprm(13) =(mov) 67

4. The Return of the Pink Panther (1975)
和上例一樣,英文字幕是0,西班牙字幕是1,法文字幕是2,而我們加入的中文字幕為3。因此設定時sprm(2)應為 en = 64, es = 65, fr = 66, zh = 67

這是和語言字幕設定的地方:-
1 Set gprm(3) =(mov) 0
2 Set gprm(6) =(mov) 6
3 (SetSTN) Set Audio stream = 0
4 (SetSTN) Set Sub-picture stream = 0, off
5 Set gprm(0) =(mov) 25971 ("es")
6 if ( gprm(0) == sprm(16:Preferred audio language) ) then { (SetSTN) Set Sub-picture stream = 1, on }
7 Set gprm(0) =(mov) 26226 ("fr")
8 if ( gprm(0) == sprm(16:Preferred audio language) ) then { (SetSTN) Set Sub-picture stream = 2, on }

首先第四行設定沒有字幕。第五行將西班牙的code放進gprm(0),然後第六行和sprm(16:Preferred audio language) )比較,如果是便設定為西班牙字幕。
第七和第八行用來設定法文的。所以我們應加入兩行來設定中文,Sub-picture stream = 3。

當設定字幕後,程式會從內部字幕儲存sprm(2)抽取存於 gprm(2)
5 Set gprm(2) =(mov) sprm(2:Sub-picture stream number)
6 Set gprm(2) &=(and) 67

在主電影播放時,會根據 gprm(2) (mask 67, 使數值不大於67)的數值而設定字幕
8 Set gprm(2) &=(and) 67
9 (SetSTN) Set Sub-picture stream = gprm(2)

所以在修改這些程式時,要留意這些mask,如果我們的中文是用68的話,和67 and 後,便會變成64了。

5. Four Weddings and a Funeral (1994)
這個DVD一開始便有三個語文選擇(en、fr、es),以後便會只出現那個語言的選單。當選了英文後
1 Set gprm(15) =(mov) 0
2 Set gprm(5) =(mov) 0
3 Set gprm(13) =(mov) 0
4 Set gprm(12) =(mov) 0
5 (SetSTN) Set Audio stream = 0 ; Set Sub-picture stream = 0, off
當然我們最關心便是第五行,設定英文語言和關閉了英文字幕。只要修改這一行,便可以出現我們要顯示的字幕了。
不過要留意,當DVD播放完畢,程式另一處會再執行第五行的設定,所以如果要更徹底,便要把那行都一併修改。

善用search功能,找尋SetSTN可以更快地找到可能影響的地方。

6. Men of Honor (2000)
這個應該是R3版本的,不過應該給人修改過,包含(0-Zh)(粵語)和(1-En)的字幕(每個字幕有兩組,給wide和letterbox用),其他國語,韓語和泰語字幕都被移除了。那DVD有很多extras的片段,而差不多每一個都有這個指 令
(SetSTN) Set Sub-picture stream = 1, off
經測試,如果不作字幕選擇而直接播放,程式便會選了英文字幕(但沒開啟)。
在字幕選單的第一選項是英語,第二是粵語,第三是韓語,第四是國語,而最後是泰語。所以最後決定重新安排字幕位置為(0- En)、(1- Zh) (粵語)和(2- Zh)國語(重射手網找的idx+sub檔)。由於下載的字幕只有letterbox格式,參考原來的字幕,便將那son字幕(由SubResync把idx+sub檔轉 的)內的字幕位置由
Display_Area (0 2 719 479) 改為Display_Area (0 8 719 479)(即向下6行),便可以建立兩組字幕給國語了。並將那些設定字幕的行都通通改為on。

7. G.I. Blues (1960)
這個DVD本身只有一個英文字幕,使用了字幕0-ws和2-lb,而我加的中文字幕用了1-ws和3-lb。Trace不久後看到這些行:-
1 Set gprm(15) =(mov) 99
2 Set gprm(12) =(mov) 1
3 Set gprm(13) =(mov) 0
4 Set gprm(1) =(mov) sprm(18:Preferred sub-picture language)
5 Set gprm(0) =(mov) sprm(16:Preferred audio language)
6 (JumpSS) Jump to VTSM 2, Angle menu (TTN 1)
似乎DVD是參照播影機的設定的,把gprm(1)給字幕作設定。但心裏有個疑問,這個DVD只有一個字幕,為什麼還要這樣做呢?再看下去…
1 Set gprm(0) =(mov) gprm(13)
2 Set gprm(0) |=(or) 64
3 (SetSTN) Set Sub-picture stream = gprm(0)
4 (SetSTN) Set Audio stream = gprm(12) ; Set Sub-picture stream = gprm(13)
5 Set gprm(0) =(mov) 1
6 if ( gprm(7) == gprm(0) ) then { LinkPGCN PGC 1 }
7 (JumpSS) Jump to VMGM PGC 5
原來先前給gprm(0)的設定是沒用的,gprm(13)才是儲存字幕的地方。跟著改用Next PB加快檢視速度,進入Main Menu,然後進入Set Up,選擇英文字幕,然後返回Main Menu,按Play直至到達Title 1(主電影),然後看看gprm(13)的數值,gprm(13)的數值是64。

所以我便把Set gprm(13) =(mov) 0 改為Set gprm(13) =(mov) 65便弄妥了!
照我估計,那些從DVD播放機取的數值是預留給另一些版本(多語言和字幕)用的,而且它的字幕使用了0和2兩個stream,應是留空1和3給另一些字幕的。
8. Click (2006)
我的版本是R1 D9的,有英文(0-En)、法文(1-Fr)和英文(2-En DC)音軌,英文(0-En)和法文(1-Fr)字幕。我加入的中文字幕是2-Zh。
由於這個DVD有很多extras,故pgc特別多。
我先用VOB Blanker把所有extras除去。然後用DVD Rebuilder 進行壓縮(除去法文語音)。壓縮完後再用VOB Blanker 代為主電影,然後用PgcEdit修訂字幕數值(增加2-Zh),另外還要把音軌的(1-Fr)設為none,(2-En DC)改為(1-En DC)。
由於pgc特別多,故此trace十分費神。
在Info下,選DVD commands ,在那裏找尋和SetSTN有關的行。因為這個DVD有很多extras,而差不多每一個都在執行時都會設定字幕和音軌,所以能找到的程式十分多。這是其中的一部分:-
87 (SetSTN) Set Audio stream = 0 ; Set Sub-picture stream = 0, off
88 Set gprm(8) =(mov) sprm(18:Preferred sub-picture language)
89 Set gprm(0) =(mov) 26226 ("fr")
90 if ( gprm(8) == gprm(0) ) then { (SetSTN) Set Sub-picture stream = 1, off }
87行是將字幕始化於英文音軌和字幕,88至90是測試法文字幕的設定。
我將87行改為
87 (SetSTN) Set Audio stream = 0 ; Set Sub-picture stream = 2, on
或者我們可以加入這兩行,自動去測試中文字幕,由DVD機去自動設定:-
91 Set gprm(0) =(mov) 31336 ("zh")
92 if ( gprm(8) == gprm(0) ) then { (SetSTN) Set Sub-picture stream = 2, on }

1 (SetSTN) Set Audio stream = gprm(9) ; Set Sub-picture stream = gprm(10)
這是程式播放主電影前要做的事,就是把音軌由gprm(9)設定,字幕由gprm(10)設定。而我找到很多下面的指令:-
Set gprm(10) =(mov) sprm(2:Sub-picture stream number)

如果要逐行來監測未免太累了,所以我用這個方法來測試:




將Watch的input, GPRMs和SPRMs都勾選,以便監察。在程式開始後不久便在sprm(2)按一下滑鼠,然後在下角的格內填上66,按Next PB快速地執行指令,在適當的時候使用Step來監察,要經常留意gprm(10) 和sprm(2),若發現它被重設,你便要找出指令的所在,作出修改。當我看到sprm(2)被改為0,便立刻找尋那指令,作出修改,然後又繼續測試。雖然我只改了一行便 成功,但實際我花了很多時間去觀察程式和作測試的。

有時如果覺得這樣做太麻煩,你也可以選擇將DVD修改成直接跳到主電影,在那裏一定會有設定字幕的地方,把那地方修改到你的要求便可。至於直接跳到主電影,你可以參考小弟 deep blue的文章或到PgcEdit找尋。

製作一個”放入第二片光碟”的畫面
上次講及用VOB Blanker分碟,現在講講怎樣製作一個”放入第二片光碟”的畫面。
首先要選一個喜歡的畫面,我多數會從影片分割的地方選材,然後加上提示句子。





然後開啟DVD Maestro,另外準備一個短片,分離成m2v和ac3(如果沒有這個片,整個DVD的bitrate會太低,DVD Maestro便會產生錯誤)。



Compile完後便會產生兩組vts,而其中一組(vts_02)便是我們要的東西了。



用VOB Blanker開啟我們的disc 1,把最後一個cell用這個vob代替(其實這個步驟也可以在製造第一片光碟一併完成,如下圖)。



有時,我們還可以製作一些較特別的效果。
例如下面的CT1和CT1R這兩個圖:-


把CT1反白成CT1R,然後將這兩個圖片輪流出現,便可造成閃動的效果。


這個例子,我們設定開始時圖片出現4秒,然後反白1秒,出現2秒…
另外,我們也要修改最後一個cell出現的時間。
用PgcEdit開啟disc 1,然後修改主電影的最後一個cell的出現時間。


至於第二片光碟,我們也可以把”放入第一片光碟”的畫面放於分割點前一個章節,而直接跳到主程式的地方的break改為LinkPGN Program n(這個例子,n=5),並更改Cell 5的Cell Still Time。那麼當我們啟動DVD時會直接跳到Chapter 6,而當我們由menu選擇chapter 1至5時會先出現”放入第一片光碟”的畫面。

合併由DVD Fab分片的DVD



這是disc 1,可以看到,cell 19(chapter 18)至31容量都很少,其實只是一個圖片。


這是disc 2,下圖是cell 1至cell 18的圖片。


而這是最後一個cell的圖片(新加的cell)。


用VOB Blanker開啟disc 2,然後將cell 19至31 extract(取名19至31,方便記憶)。




抽取完畢便可以開啟disc 1逐個replace回去。


因為原來的cell 19至cell 31是共用一個cell的,所以程式便會告訴你要建立一個新的cell:


當替換完畢,我們還要用PgcEdit開啟DVD,校正一些cell的特性:


將那些layer break清除,並把最後一個Cell Still Time改回0。
BC大:你好,请问截取video菜单截图保存为BMP格式,汇入dvdmaestro中,在菜单命令中编辑中把截取的图放进去怎么是全黑的?
截取的图有图像,放进dvdmaestro就全黑色,是怎么回事
以前保存的教程图,有几张,但文字说明没有复制,有点不好根据陈述例字,照推学,
这个您以前做的教程图,上面有截图的按钮字样,我这个拖入DVDmaestro怎么没有?
那就要先看看你的顏色設定了…

[attachment=363]
Reference URL's