更新日期 2008-06-08 20:41
新消息
伺服器選擇
雜談
如何架設網站
超頻+省電
Prime95 地獄特訓
AV 心得篇
影音編輯
場景順序
DVD 字幕
歷史
2005-01-19 影音處理談「DVD2AVI」

只要曾經自行製作 DVDrip 的人,心中的疑問是:「如何將 VOB 檔轉為 AVI 檔呢?」

方法有很多,不過最硬派的後製作,莫過於 VirtualDub 進行處理了。可惜的是到目前為止,VirtualDub 仍然沒有辦法直接讀入 VOB 或 Mpeg2 的串流;以下是幾種常見方法:

  1. 將 VOB 轉為各種壓縮影音檔,再轉為 VirtualDub 可讀取的格式,進行後製作
  2. DVD2AVI 1.77.3 將 VOB 內的 Mpeg-2 直接轉為 AVI.
  3. DGIndex 1.10.RC1 將 VOB 參數存為 d2v, 再用 VirtualDub 外掛 AviSynth 的模組 DGDecode 直接讀取 VOB 檔,這麼繞一圈以後,使得 VirtualDub 能直接讀取 VOB 中的 Mpeg-2 影像.

其實方法有很多,轉檔出來的畫質,重點就是「越多次的壓縮轉換,就得到越低品質的影像」。所以,簡單來說就是「如何在不影響畫質的情況下,取得 VOB 內 mpeg-2 的影像?」

現在說說剛才筆者所提出的三種常見的方法:

  1. 先壓縮為影音檔 (如 DivX, Xvid, VCD,...),至少已經壓縮了一次,且經過處理後,檔案大幅度減肥,如果沒有太多的暫存空間,這種方法不失為權宜之計,只是筆者不建議使用;缺點是,如果壓縮的流量不夠高 (比原先 mpeg-2 低),畫質被破壞是確定的了;至於 VCD 由於是 mpeg-1 的規格,流量至少要是 mpeg-2 流量的兩倍,然而 320x240 的解像度已經將 720x480 的畫質破壞殆盡,不建議使用作為後製作的母片。
  2. 使用 DVD2AVI 直接讀取 VOB,可得到原生性 mpeg-2 影像,此時如果直接進行壓縮儲存,有兩種可能發生;其一是如果用 DivX, Xvid 等壓縮工具,因為無法選擇 2-pass 模式,勢必只能用 1-pass 法,這樣的畫質在高變動率或是卡通動畫片來說,嚴重吃虧!其二用 M-Jpeg 是比較好的選擇,定義很高的流量 (>8000 kbps),用意在減少畫質流失、減少因為壓縮的關係造成影像出現瑕疵,但也必須面對嚴重的後果→超級大檔案群誕生,筆者用 Morgan MJpeg 3.0.0.9 將流量定義為 95 (最大 100),得到是 14700+ kbps 的流量,也得到 16GB 左右的超級大檔案 (1 Hr 50 Min Mpeg-2),如果將流量降到 85 以下,定格看某些特定畫面時,會明顯發現「壓縮痕跡」→也就是原始影像沒有的殘影,在壓縮為 M-Jpeg 以後跑出來了,只好將流量再加大。
  3. 用 DGIndex (這支程式是 Donald Graft 參考 DVD2AVI 1.77.3 版原始程式,自行改出來的後續版本,因為 DVD2AVI 已經很久沒有新版了),直接讀取 VOB 後,儲存為 d2v 型態的「參數檔」,這個檔案非常小,原理類似 DivX or Xvid 使用 2-pass 法在第一階段時留下的參數檔,是將 VOB 內的資料作一次 Scan。然後用 VirtualDub 將 AviSynth 模組 DGDecode (這是 DGIndex 套件中的一部分) 將 d2v 檔直接讀取,並且使用 mpeg2source 函數將檔案讀入 VirtualDub,使 VirtualDub 能夠獲得直接讀取 VOB 檔案內 Mpeg-2 串流的能力!呵呵呵....這是完全沒有經過再次壓縮的現階段最強方案!畫質無可挑剔,而且沒有超大檔案空間的需求。缺點是:比較花費時間,但經過筆者用 Celeron 900Mhz 實測 2160 格 DVD 720x480 影像,比起方案二的超大流量 M-Jpeg 法,時間多花費約 18.6%,卻沒有方案二需要的 165 MB 空間要求。

自古以來,時間與空間總是對立的,是需要較大的硬碟空間去儲存超高流量 M-Jpeg 好呢?還是多花約 20% 左右的時間去處理幾乎沒有失真可能的 VOB 檔案?見仁見智!

但是看過以下的比較後,您可能會有一番不同的體悟了.....

DVD2AVI vs DGIndex

筆者先將圖片比較端出來,用眼睛看,誰優誰劣無所遁形!

測試環境:
DGIndex 1.10.RC1
DVD2AVI 1.77.3
Morgan M-Jpeg 3.0.0.9
VirtualDubMod 1.5.10.1 @ 2439
AviSynth 2.56 beta1
Donald Graft DGDecode 1.1.0.RC1 (直接抽 DVD 影像進 VirtualDub)

為了確保差異性不是出在 M-Jpeg Codec 身上,兩張影像都是 14000+ kbps (品質等級 95%) 的影像定格。左圖是先用 DGIndex 用 VOB 製造 d2v,再由 VirtualDub 透過 DGDecode 直接讀取 VOB 後,將 Mpeg-2 壓縮成 M-Jpeg AVI 檔案 (約 147MB @ 2161 格 720x480);右圖是 DVD2AVI 直接輸出為 M-Jpeg AVI 檔案 (約 145MB @ 2160 格 720x480);兩者的設定皆為 32bit SSE MMX iDCT,其餘設定值完全一樣 (DGIndex 是由 DVD2AVI 原始程式改出來的,所以選項幾乎大同小異)

DGIndex→DGDecord→VirtualDub (解碼 VOB 內的 Mpeg-2) 輸出 14000+ kbps 流量的 M-Jpeg DVD2AVI 輸出 14000+ kbps 流量的 M-Jpeg

嗯...有沒有發現差異性?對!就是「亮度與對比不一樣」,左圖上方黑暗部份與右圖比較後,明顯發現左圖比較黑,整體影像來說,右圖亮度似乎高了一點,且對比也比較低,造成好像有一層光霧覆蓋的樣子。

心得:

在全黑場景時,右圖 (用 DVD2AVI) 無法呈現全黑,由於 720x480 不同於我們常使用的 3:2 螢幕解析度,所以在播放程式如 Cyberlink PowerDVD or Media Player Classic (MPC) 會發現非常明顯的一大塊微微發白的「全黑背景」,這代表著 DVD2AVI 轉出來的影像,最好再加上一道白平衡控制或是 Gamma 值參數修正。