用过之后第一感觉:太强大了,让那些商业的共享的软件都去死吧!

AviSynth,可以进行视频合成、编辑、添加字幕,支持所有格式(只要能播放出来), 甚至可以将图片转换为视频。

AviSynth的原理是通过一个脚本,将视频流、音频流处理之后再以流的方式输出。 输出流可以通过播放器直接播放,也可以利用ffmpeg、 VirtualDub等软件将流保存为各种视频格式。 而正是强大的脚本使它具有了强大了视频处理能力。

最简单的脚本如下,它能显示AviSynth的版本:

Version

将这一行保存为 version.avs,然后放到播放器里,即可得到一段长度为10秒的视频。

而用下面的命令就可以读入各种媒体文件:

DirectShowSource("Transformer.rmvb")

下面就是进行各种变换的方法:

DirectShowSource("Transformer.rmvb") # 读入rmvb视频
Trim(10000,10200)     # 截取10000到10200帧
FadeIO0(10)           # 在视频前后各加入长度为10帧的淡入淡出
Subtitle("变形金刚电影版", size=48, \
    align=2, first_frame=0, last_frame=100)  # 加字幕

而视频流可以保存到变量里,并将脚本写成OO的方式:

video = DirectShowSource("Transformer.rmvb")
video = video.Trim(10000,10200).FadeIO0(10)
video = video.Subtitle("变形金刚电影版", \
    size=48, align=2, first_frame=0, \
    last_frame=100)
return video

读取两张图片,每张展示5秒钟并添加淡入淡出,最后连接成一段视频。 参数0,124表示在0-124帧显示图片,25为fps。

a1 = FadeIO0(ImageSource("earth-01.jpg", 0, 124, 25), 7)
a2 = FadeIO0(ImageSource("earth-02.jpg", 0, 124, 25), 7)
return a1 + a2

其他的脚本就不再介绍了,AviSynth自带的文档很详细。