AviSynth: 无比强大的视频合成软件
用过之后第一感觉:太强大了,让那些商业的共享的软件都去死吧!
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自带的文档很详细。