AviSource

出自NMM Doc
(重新導向自WavSource
跳至導覽 跳至搜尋

AVISource / OpenDMLSource / AVIFileSource / WAVSource

AviSource(字符串 文件名 [, ... ], [布爾 audio = true], [字符串 pixel_type = YV12], [字符串 fourCC])
OpenDMLSource(字符串 文件名 [, ... ], [布爾 audio = true], [字符串 pixel_type = YV12], [字符串 fourCC])
AviFileSource(字符串 文件名 [, ... ], [布爾 audio = true], [字符串 pixel_type = YV12], [字符串 fourCC])
WavSource(字符串 文件名 [, ... ])

本頁翻譯:lititude 校對:Dgwxx

AVISource 把引號內的一個或幾個文件名作為參數,用Video-for-Windows(即vfw)的AVIFile接口或AviSynth的內置OpenDML解碼器(來自VirtualDub) 讀取。這個濾鏡可以讀取有AVI文件處理程序的任何文件 。不僅包括AVI文件,也包括WAV文件,AVS(AviSynth腳本) 文件,和VDR(VirtualDub frameserver ) 文件。如果你用了多個文件名作為參數,那麼這些剪輯就會用UnalignedSplice連接在一起。Audio參數是可選項,默認值是 true。

AVISource濾鏡會檢查文件,確認類型並送到AVI文件處理器或是OpenDML中適當的地方。如果你的某個處理程序有問題,你也可以用OpenDMLSource和AVIFileSource濾鏡,可以強制使用一個處理程序。兩個處理程序都可以讀取普通的(小於2GB)的AVI文件,但是只有OpenDML處理程序才能讀取更大的AVI文件,只有AVIFile處理程序才能讀取像WAV,VDR和AVS等其他文件類型。

v2.04之前,WAVSource只是AVIFileSource的一個別名。在以後的版本中,WAVSource不再試圖打開視頻流的文件了。如果一個AVI文件中的視頻流部分損壞而音頻仍然可用,或你的系統不支持解碼視頻部分,這個濾鏡會很有用的。

從v2.04起,開始內置的支持ACM (Audio Compression Manager)音頻(比如mp3-AVIs )。AVISource也不再能夠打開WAV文件了,用WAVSource卻可以做到。

從v2.06起,pixel_type 參數(默認是YUY2)允許你選擇解碼器輸出的顏色空間類型。有效的值是"YUY2", "RGB32" 和 "RGB24"。如果省略,AviSynth會用第一個解碼器支持的格式(in the 順序是: YUY2, RGB32, RGB24)。這個參數不影響無壓縮格式(YUY2, RGB32 或 RGB24)的視頻,因為那種情況下不用解碼器。從v2.5開始,默認的pixel_type 參數改成了YV12。也就是說:如果你不指定什麼參數,AVI就會試着輸出YV12,如果不行的話就試YUY2,再不行就試RGB。

由於一個DivX的bug(5.02或以前版本),在AviSynth v2.5中載入DivX剪輯有的時候顏色會出現錯誤(色度通道U和V是相反的)。你可以用SwapUV來改正。

從v2.53起,AviSource也可以打開Type-1型DV-AVI(只是視頻,不含音頻)。

從v2.55起,添加了一個參數fourCC

在用AVISource時,有些MJPEG/DV編碼器不提供正確的CCIR 601適應的 輸出。如果輸入和輸出的色彩格式不一樣,這個問題就會出現。比如輸入的色彩格式是YUY2,但輸出的是RGB,反之也是這樣。有兩種方法可以解決:

1)強制輸出的輸入的色彩格式一直。比如(如果輸入的是RGB)

AVISource("file.avi", pixel_type="RGB32")

2)用ColorYUV濾鏡修正

AVISource("file.avi").ColorYUV(levels="PC->TV")

一些值得參考的帖子 MJPEG codecs DV codecs

例子

AVISource("d:\capture.avi")        # 提醒C语言程序员: 只用一个反斜线。
AVISource("c:/capture/00.avi")     # forward slashes work too
WAVSource("f:\soundtrack.wav")     # 这个工作
WAVSource("f:/soundtrack.wav")     # 这个也工作
AVISource("cap1.avi","cap2.avi")   # 和 AVISource("cap1.avi")+AVISource("cap2.avi")一样
AVISource("cap.avi",false,"RGB32") # 禁用声音并要求输出RGB32颜色空间。 
AviSource("cap.avi", false, fourCC="CDVC")  # 用Canopus DV Codec打开一个DV剪辑
AviSource("cap.avi", false, fourCC="XVID")  # 用XviD解码器打开一个avi(比如是DivX3编码的) 

更新

v2.55 加入fourCC选项