AviSource

来自NMM Doc
跳到导航 跳到搜索

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选项