Avisynth2.5 FAQ

出自NMM Doc
跳至導覽 跳至搜尋

S1: 關於 AviSynth:

本頁翻譯kaspa,校對/整理dgwxx。

Q1.1: 什麼是 AviSynth?

A: AviSynth (AVI SYNTHesizer)是一款畫幀處理器. 在Lukes homepage可以找到一個非常好的定義:

AviSynth 是一個由Ben Rudiak-Gould編寫的非常有用的應用工具軟體. 它為編輯視頻提供了很多選擇. AviSynth有如此獨特的優點, 正是因為它不是一款只處理輸出文件的孤立的程序. 事實上, AviSynth 就好比站在你的視頻文件和應用程式之間的「中間人」.

基本上, AviSynth是這樣工作的:首先,創建一個有特殊命令的簡單的文本文件,叫做腳本. 這些命令涉及一個或者多個視頻文件,和你想作用在這些視頻上的濾鏡.接著,運行視頻工具, 比如 VirtualDub,打開這個腳本文件. 這個時候,這時AviSynth開始工作了. 它打開你在腳本里所指定的視頻文件,運行你在腳本里指定的濾鏡,將處理後的結果交給你所用的視頻(編碼) 工具. 然而你的視頻工具不會察覺工作正在後台的AviSynth. 相反, 它會認為是正在直接打開一個在你的硬碟里已經濾鏡作用過的AVI文件.

選擇採用AviSynth的主要原因有以下五點:

  1. 連接視頻文件: AviSynth 能讓你連接任意數的視頻影像, 包括.avi格式的片段. 你甚至可以選擇性地連接某些視頻段落, 或者配上音軌.
  2. 使用濾鏡: AviSynth內置了很多視頻處理濾鏡, 例如, 調整大小, 裁剪, 和使影像變得清晰明亮.
  3. 突破2GB的限制: AviSynth是把視頻提供給執行程序, 而不是讓程序直接去打開該視頻. 正因如此, 我們就可以在那些不支持2GB以上文件的程序里使用AviSynth來打開這些大文件了.
  4. 打開不支持的格式: AviSynth 可以打開幾乎所有類型的視頻, 包括MPEG和Quicktime MOV. 當AviSynth將視頻交給程序的時候, 對程序而言, 就好比是在打開一個普通的AVI. 這樣你#就可以在程序里打開某些原本不被支持的視頻格式了.
  5. 節省磁碟空間: AviSynth是生成一個「虛假」的視頻來提供給程序的, 不會產生臨時或中介性質的視頻文件. 所以,它會為你節省磁碟空間.

Q1.2: 誰在開發AviSynth ?

A: AviSynth (直到 v1.0b版) 是由Ben Rudiak-Gould開發, 請看http://math.berkeley.edu/~benrg/avisynth.html. Ben 停止開發後, Edwin van Eggelen 繼續開發工作, 請看 http://www.videotools.net/uk/download.php. 在Edwin的主頁上可以找到他最新釋出的 v1.0b6 版.

在 AviSynth 的論壇里也有一些其他版本, 比如Divine的v1.0b7aDividee的v1.0b7d.

第二次修訂完善的計劃是在2002年7月初.(譯註:其成品就是現在使用的v2.x版). 目前最新的版本是V2.54, 不過在這裡也可以找到更近的版本. 更多文檔信息請參照[[AviSynth:FAQ#Q1.5|]].


Q1.3: 我在哪裡能下載到最新版本的AviSynth ?

A: 請看 Q1.2.DVD2SVCD 軟體包也包含了AviSynth 和在Doom的下載頁面也能找到. (這些或許不是最新版的AviSynth).


Q1.4: 當前版本的主要缺陷是什麼?

A: 最新版本:

v1.0b5: Dissolve() 不工作, BicubicResize() 工作不正常. v1.0b6: ? v1.0b7a/v1.0b7d: Dissolve() 不工作. v2.01: ? v2.02: Layer()MergeChroma() 不工作. v2.05:當打開無聲剪輯的時候 Loop 不工作. v2.07/v2.50:如果沒有刪除最後一段空白部分,SegmentedAviSource() 不會讀取AVI.

v2.50 beta; AviSynthTwoFiveZeroBugs. v2.51 beta; AviSynthTwoFiveOneBugs. v2.52; AviSynthTwoFiveTwoBugs.

其他缺陷可以看修訂計劃的頁面上的文件, 請看 [[AviSynth:FAQ#Q1.5|]].


Q1.5: 我在哪裡可以找到關於 AviSynth的文檔?

A: 關於AviSynth濾鏡的文檔可以在http://www.avisynth.org/找到. 至於AviSynth腳本編寫的教學可以看入門. 在論壇發貼前請先看這些文檔!(不過要是關於理解上的問題還是可以發貼的).


Q1.6: 我怎樣安裝/拆卸AviSynth?

A: 在 v2.05 或其他更舊的版本下: 複製avisynth.dll到你的system/system32 目錄並運行 install.reg(文件). 從v2.06開始, AviSynth已經可以執行自行安裝. 請先確認在你的硬碟里還有沒有其他版本的AviSynth. 因為只有一個版本會被添加進註冊表. 如果有必要, 請先刪除它們. 如要拆卸 AviSynth,請到開始菜單中的「程序」->「AviSynth 2」,選擇「Uninstall AviSynth」.


Q1.7: v1.0x, v2.0x or v2.5x這些版本之間有什麼不同呢?

A: 所有 v1.0x 和 v2.0x版都是相互兼容的 (主要的區別在於 v2.0x版 不包含IPCSource, 及包含了一些 v1.0x版沒有的濾鏡). 至於v2.5x 版的主要區別就在於AviSynth的內部結構已經改變(支持了YV12 和多通道(multichannel)), 也正因為如此, 兼容v1.0x 或 v2.0x版的外部濾鏡將不會在v2.5x版下工作, 反之亦然.


Q1.8: v2.5x 的插件是否兼容v1.0x/v2.0x,反之呢 ?

A: 正如 [[AviSynth:FAQ#Q1.7|]] 所解釋的. 不過, 在V2.5x下使用 v1.0x/v2.0x 的插件還是有可能的, 參閱 [[AviSynth:FAQ#Q1.5|]].


Q1.9: 哪款編碼程序支持 YV12 ?

A: 要編碼DivX/XviD,有很多選擇:

  1. VirtualdubMod支持 YV12:該版本 (由 pulco-citron, Suiryc 和 Belgador開發) 支持OGM和預覽AVS. 下載請到這裡. 要想直接使用 YV12, 而不作任何色彩轉換,你需要用VirtualdubMod 來讀取avi以及選擇fast recompress的選項.
  2. VirtualDub從V1.5.6版開始支持 YV12. 要想直接使用 YV12, 而不作任何色彩轉換,你需要用Virtualdub 來讀取avi以及選擇fast recompress的選項.
  3. 為了方便快捷使用YV12, 你也可以嘗試新出的命令行編碼工具: AVS2AVI, 參閱 [[AviSynth:FAQ#Q1.21|]].

Q1.10: 如果所用的編碼器不支持 YV12(例如 Virtualdub, TMPGEnc 或 CCE SP),我該如何使用 v2.5x?

A: 使用Virtualdub的話, 你一定要在腳本里添加ConvertToYUY2()或者是安裝一個支持YV12的解碼器, 例如Divx5或其中的一個Koepi’s XviD (XviD-04112002-1或更新版本). 選擇fast recompress意味著會進行一個 YV12 --> YUY2 --> YV12的轉換. (DivX3/4 也支持 YV12, 遺憾的是,P4 用戶在使用YV12 編碼Divx4時可能會出現系統崩潰.)

使用TMPGEnc的話, 你要在腳本里加入ConvertToRGB24(). 另外, 使用 CCE SP時, 你需要在腳本里添加ConvertToYUY2() , 這是因為Windows沒有內部的YV12壓縮器(compressor). 你也可以安裝 DivX5 或Koepi’s XviD(XviD-04112002-1或更新版本) 來使TMPGEnc or CCE SP 支持YV12的avi.


Q1.11: 在 Gordian Knot里我該如何使用 AviSynth v2.5?

- 如果你使用的是 GKnot 0.26, 你將要把mpeg2dec3.dll (AviSynth v2.5的插件)重命名為mpeg2dec.dll, 此外要將virtualdubmod.exe 改名為 virtualdub.exe (注意保留好原文件).

- 如果你使用的是GKnot 0.27, 你可以按照上面的步驟去做, 或者你可以在選擇菜單里將「使用mpeg2dec.dll」設為「使用mpeg2dec3.dll」, 然後將 virtualdubmod.exe 重命名為 virtualdub.exe.

- 還可以試一下 GKnot 0.28.

如果你在使用 VirtualdubMod 1.4.13.1 或者更舊的版本時遇到困難, 請下載最新釋出的版本.


Q1.12: 使用YV12來進行處理/編碼有什麼優勢?

A: 有兩點優勢:

  1. 提高速度:

這完全取決於你所使用的外部插件是否支持YV12. 如果插件支持YV12, 就可有望提高25%-35%的處理速度. 可以肯定地說, 如果你的片源和目標成品都是在YV12的情況下, 處理速度將會大幅提高. 比如說DVD轉換成DivX/Xvid.

  1. 無須轉換色彩:

由於無須經常性地轉換色彩, 色彩還原得更真實. 即使在你不得不轉換色彩(如使用CCE SP或 TMPGEnc 編碼時), 你仍可以推延YV12->YUY2 (或是 RGB24 for TMPGEnc) 的轉換, 直到你的腳本完成IVTC 或者 Deinterlace 以便生成無交錯(progressive) 幀為止. 在無交錯幀上做YV12 -> YUY2 轉換會比在 交錯(interlaced) 或 基於場的(field based) 幀上做時保留更多的色彩濃度細節.

Q1.13: 是否有一個命令行工具使用Avisynth來編碼DivX/XviD的呢?

A: 如在 [[AviSynth:FAQ#Q1.9|]] 里解釋的, 有一個叫AVS2AVI (和 AVS2AVI GUI)的命令行編碼器可以直接使用AviSynth來編碼DivX/XviD.


Q1.14: 我在哪裡可以找到 VCF2AVS ?

A: VCF2AVS 是一款不錯的VCF->avs 轉換工具. 你可以在Virtualdub下編輯(剪輯, 裁邊, 調整大小)截取的視頻. 然後編輯生成的avs文件. 需要注意的是VCF有兩個不同的版本的:

  • VCF2AVS by Darksoul71 在這裡可以找到.
  • VCF2AVS by BB (功能相對簡單些) 可以在這裡找到.

分別試用一下看哪款適合你的需求 :)

Q1.15: 在v2.5x下我該如何使用v2.0x的插件? ?

A: 在 WarpSharp-package for AviSynth v2.5x 軟體包里可以找到一個叫"LoadPluginEx.dll"的插件. 要是使用舊版本的LoadPluginEx.dll時候, 不要把這個插件放到插件的目錄里, 而是放到額外的一個目錄下. 否則VirtualdubMod 和 WMP6.4 會在退出的時候出現錯誤. 此插件可以讓你在V2.5x下使用v2.0x的插件. 參考腳本(以v2.0x的」Dust」插件為例子):

LoadPlugin("C:\Program Files\avisynth2_temp\plugins\LoadPluginEx.dll") LoadPlugin("C:\Program Files\avisynth2_temp\plugins\dustv5.dll") AviSource("D:\clip.avi").ConvertToYUY2 PixieDust(5)


Q1.16: 怎樣才能轉接使用不同版本的 Avisynth 而無須重新安裝呢?

A: 你可以使用這裡的AvisynthSwitcher. 自帶 2.08 和 2.50 版本, 不過你也可以隨時在以下目錄里添加新版本的AviSynth, AvisynthSwitcher\versions\Avisynth 2.x.x. 這裡還有一些其他方法.

Q1.17: 怎樣創建 AVS文件?

A: 請參閱 [[AviSynth:FAQ#Q1.19|]] (使用你喜歡的文本編輯器).


Q1.18: 我的 AVS文檔保存在哪裡?

A: AVS文檔可以保存在你硬碟上的任意地方.


Q1.19: 如何知道我用的是哪個版本的AviSynth ?

A: 打開一個文本編輯器, 比如說」記事本」.寫入以下命令

Version

然後保存為後綴是.avs的文件. 例如腳本保存名為version.avs (注意文件後綴是.avs而不是.txt). 用可以播放AVI文件的播放器(如WMP6.4)打開該腳本. 這樣就會顯示AviSynth的版本號了.


Q1.20: AviSynth有GUI嗎 (Graphical User Interface,圖形用戶界面)嗎?

A: 有多款很棒的工具供您選擇:

  • VirtualdubMod, 參閱 [[AviSynth:FAQ#Q1.9|]]. 加入了幾項支持AviSynth的快捷方式:
    • 'Open via AVISynth' 命令. 該選項會自動生成一個適當的腳本, 從而允許你打開任何與AviSynth兼容的視頻文件.
    • AVS 編輯器 (熱鍵 Ctrl+E): 打開你的AVS 然後在」工具(tools)」選項下選擇」編輯腳本(script editor)". 進行編輯, 然後F5可預覽視頻.
  • AvisynthEditor, 這是一款高級的腳本編輯器, 其包含有高亮語法, 自動完成編碼(指生成腳本)和各版本插件的定義文件. 這裡有截圖. 你可以從這裡找到它. 在Doom9論壇有相關討論.
  • AVSGenie: AVSGenie 允許用戶直接從下拉列表或彈出的對話框中選擇使用一個濾鏡, 可以看到一個帶有指引的參數編輯界面. 當打開預覽窗口會出現"片源(source)" 和 "目標(target)". 片源窗口輸出腳本第一行指定的文件, 基本上只是打開一個視頻文件. 目標窗口會輸出已執行處理過的腳本. 由此可以很容易地看到經過濾鏡處理後的效果. 指代片源窗口的命令行也可以更改. 這裡有相關的討論.

Q1.21: 為何我得到以下提示 "LoadPlugin: unable to load "xxx" is not an AviSynth 1.0/AviSynth 2.5 plugin(無法加載XXX, 不是Avisynth插件)」 ?

A: 意思是所使用的插件與當前AviSynth版本不兼容. 請看 [[AviSynth:FAQ#Q1.8|]].


Q1.22: 在我的AVS腳本里, 怎樣知道我在某個位置上使用了哪個色彩空間?

A: 想要查看你腳本的指定位置里使用了什麼色彩空間(colorspace) , 添加如下:

Info

... AviSynth就會顯示出色彩空間和其他一些相關的信息!


Q1.23: 我已經安裝了 AviSynth v2.5 和 DivX5 (或者最新版本的Koepi’s Xvid), 可為什麼當我使用Virtualdub/VirtualdubMod/CCE/TMPGEnc來打開AVS文檔的時候只出現一個黑屏?

A: Ok, apperently your video is not decompressed by DivX5 (or XviD).Go to your windows-dir and rename a file called MSYUV.DLL, or add the following to your registry file: A: 這是因為DivX5 (或 XviD)無法解碼你的視頻. 去你Windows的目錄下, 尋找和重命名一個叫MSYUV.DLL 的文件, 或是在你的註冊表里添加以下信息:

REGEDIT4

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Drivers32] "VIDC.YV12"="divx.dll"

使用XviD時應將」divx.dll」改為"xvid.dll".


Q1.24: 當我用任意編碼器進行二次編碼的時候, 我的電腦會隨即時死機?

A : AviSynth (尤其是V2.5x版) 是經過高度優化的. 所以有可能在二次編碼的時候出現死機的情況. 遇到這種情況, 可以試一下用 Prime95 進行一個小時的運行壓力測試, 由此來看出你的系統是否穩定.如果無法通過該測試或是出現電腦系統自動掛起了, 請確認你的電腦沒有進行超頻和嘗試以5MHz為間隔來調低CPU的總線頻率, 直到不再出現死機的情況為止.


Q1.25: (每當退出預覽 avs文檔時) VirtualdubMod, WMP6.4, CCE 和其他程序會出現程序錯誤?

A: 如果在你的插件目錄下使用了舊版本的 LoadPluginEx.dll (或 WarpSharp.dll) 就會出現這種情況. 解決的辦法是把該文件移出插件目錄和手動地去加載它. 希望該插件的開發者知道這種情況…

Q1.26: 是否有一些無損的YV12編碼器可以用於視頻捕捉?

A: 有幾款這類編碼器:

  1. VBLE codec (by MarcFD): 一個基於huffyuv的編碼器
  2. LocoCodec (by TheRealMoh)
  3. MJPEG codec: 會在視頻的右上角留下一個小圖標.