![]() |
PCDVD數位科技討論區
(https://www.pcdvd.com.tw/index.php)
- DVD 討論區
(https://www.pcdvd.com.tw/forumdisplay.php?f=5)
- - [問題] Avisynth 2.57 使用 DirectShowSource 載入 VOB
(https://www.pcdvd.com.tw/showthread.php?t=766134)
|
|---|
[問題] Avisynth 2.57 使用 DirectShowSource 載入 VOB
之前都使用 DGIndex 來產生 d2v 檔案,然後再去做 DVDRIP。
視影片情況再去除交錯或 TIVCT。 現在是直接載入 VOB,解碼器是 NVIDIA PureVideo Decoder (開硬體加速)。 (以前還在分段去交錯和 IVTC,現在都免了) 音效部分,是用 DGIndex 來產生 WAV,再交給 dBpoweramp Music Converter 來壓 MP3。直接使用 LameACM 來壓 MP3,同 BitRate 音質會較差。 操作是使用 VirtualDub 1.7.7 來開啟 avs 檔案,影音合併是使用 VirtualDubMod。 發現一個問題就是 VirtualDub 在來開啟 AVS 和壓縮後的 AVI,再選擇影片範圍的時候。 壓縮前和壓縮後,同一個 frame 畫面會不一樣,相差了好幾秒。 不過影音結合之後,不會有影音不同步的問題。 怎麼會這樣??? |
CPU E6300 OC 2.58G
Video 和 Audio 的 DirectShow Decoder 都是使用 NVIDIA 那套軟體。 NVIDIA MPEG2 Decoder 可以開硬體加速,壓縮速度會變快 。 NVIDIA AC3 Decoder 解出來的音質,感覺比 AC3 Filter 和 DGIndex 解出來的 WAV 好。 使用 VirtualDub 1.7.7 + XviD 1.2-Dev + Fraunhofer IIS MP3 ACM 3.4。 XviD Twopass - 1st pass 時候,Audio 選 No audio。 XviD Twopass - 2nd pass 時候,Audio 選 Source audio。音效壓縮使用 F-IIS MP3 ACM 做 CBR 比 LameACM 快又好用。 DVDRip Resize to 640x480, 1st pass 轉檔速度 120FPS,2nd pass 轉檔速度 90FPS。 AviSynth 2.5 範例: ------------------- #片頭加了 5 秒鐘的圖片。 image1 = ImageSource("D:\MyWorks\title.bmp",0,149,29.97).BicubicResize(640,480,-0.5,0.75).ConvertToYUY2() title = AudioDub(image1,WavSource("D:\MyWorks\NoSound.wav")) VOB = DirectShowSource("G:\VIDEO_TS\VTS_01_1.VOB") + DirectShowSource("G:\VIDEO_TS\VTS_01_2.VOB") #分段做剪裁 clip1 = VOB.Trim(0,39794).Crop(8,0,-8,-0).BicubicResize(640,480,-0.5,0.75) clip2 = VOB.Trim(39795,46832).Crop(14,1,-14,-8).BicubicResize(640,480,-0.5,0.75) clip3 = VOB.Trim(46833,0).Crop(8,0,-8,-0).BicubicResize(640,480,-0.5,0.75) Return title+clip1+clip2+clip3 |
直接對兩個 VOB 檔案做連接,從連接點開始,會出現漏掉一秒的畫面,聲音也會延遲一秒。最好是合併成一個 MPEG-2 的檔案。
----------------------------------- # 使用一個 640x480 的圖片檔,做成一個 5 秒鐘的靜態無聲影片。轉換成跟影片一樣的 YUY12,才能做連接。 image = ImageSource("F:\MyWorks\title.bmp",0,149,29.97).ConvertToYUY2() # 將靜態影片,加入 5 秒鐘的靜音 WAV 檔。 title = AudioDub(image,WavSource("F:\MyWorks\NoSound.wav")) # 左右各裁掉 8 像素,聲音正常化到 98%。 mpeg = DirectShowSource("F:\MyWorks\Movie.mpg").Crop(8,0,-8,-0).Normalize(0.98) # 分段去黑邊,裁剪時候,並維持 4:3 比例。 # 使用 BicubicResesie(水平,垂直,a,b),a 和 b 的預設值是 1/3。 # a 值越小越銳利,修改時請保持 a+2b=1。例如 BicubicResize(640,480,-1,1),畫面會更銳利。 clip1=mpeg.Trim(0,39828).Crop(4,2,-4,-4).BicubicResize(640,480,0,0.5) clip2=mpeg.Trim(39829,46860).Crop(6,2,-6,-7).BicubicResize(640,480,0,0.5) clip3=mpeg.Trim(46861,0).Crop(2,1,-2,-2).BicubicResize(640,480,0,0.5) # 輸出畫面結果,畫面轉成 YV12 模式。 Return (title+clip1+clip2+clip3).ConvertToYV12() |
| 所有的時間均為GMT +8。 現在的時間是05:08 AM. |
vBulletin Version 3.0.1
powered_by_vbulletin 2025。