继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

AviSynth——强大的视频文件后期处理工具

九日王朝
关注TA
已关注
手记 180
粉丝 41
获赞 185

AviSynth是一个功能强大的视频文件后期处理工具,提供了许多编辑和处理视频文件的方法。
AviSynth是AVISYNTHesizer的缩写,意思就是AVI合成器,是一个Frameserver。(Frameserver就是一个把影像文件从一个程序转换到另外一个程序的过程, 其间没有临时文件或中介文件产生)
AviSynth是由Ben Rudiak-Gould首创的一种非常有用的工具,能够提供各种方式来合并和滤镜处理影像文件。最独特的就是AviSynth并不是一个孤立的影像处理程序,而是在影像文件和应用程序之间担任“中间人”的角色。这是一个功能强大无比的基于avs脚本文件的视频处理与帧服务软件,建立。avs文件索引输出,还有强大的脚本滤镜功能,很多编辑软件可以支持。



  因此使用AviSynth有5大优势:
1. YUV支持:内建滤镜可以在YUV环境下运行,第三方滤镜几乎也兼容YUV,所以比起VD、ND的内嵌滤镜必须在RGB环境下运行要快很多。省却了一个转换的过程,将来还可以支持YV。 
2. 滤镜处理:内建许多影像处理滤镜,比如Resizing,Cropping等。还有大量的第三方强力滤镜,并可以调用VD以及AviUtl的第三方滤镜。
3. 突破2G限制:通过AviSynth打开影像文件就相当于应用程序直接打开,这样就可以使本身有2G限制的程序也能突破2G的限制。
4. 打开格式:AviSynth可以打开几乎所有影像文件,包括MPEG和QuickTime。所以当影像应用程序通过AviSynth打开这些文件时,会被认为是打开标准的AVI,这样就可以处理影像应用程序本身并不支持的格式。
5. 节省硬盘空间:AviSynth处理的影像文件在运行过程中直接导入应用程序,没有临时文件,所以节省硬盘空间。


    AviSynth现在有3个版本,第一个是Ben Rudiak-Gould的首先编译的AviSynth v1.0b;在Ben Rudiak-Gould停止开发后,Edwin van Eggelen继续开发,最新的版本是AviSynth v1.0b6;在2002年7月第二次源码编写计划开始,目前最新的版本是AviSynth v2.0.6,新的v2.5版还在开发中。
    最后一个版本比较强大,更新速度快,增加了许多实用的命令,也吸收了一些优秀的第三方滤镜成为内建滤镜,强力推荐使用。


我们可以简单的以文本读写的形式创造AviSynth脚本,然后通过ffmpeg等处理工具导入,即完成一些我们想要的效果

例如:


LoadPlugin("C:/Program Files (x86)/AviSynth/plugins/x86/ffms2.dll")                     //加载dll
inputmov=FFVideoSource("*****.mov").ConvertToRGB32().ChangeFPS(25)            //滤镜带通道视频流1
inputvideo=FFVideoSource("*******.avi").ConvertToRGB32().ChangeFPS(25)          //视频流2
overvideo=inputvideo.Trim(0,100).ChangeFPS(25)                                                 //截取视频流2
audio=FFAudioSource("**********.mov").ResampleAudio(44100)                        //某音频流1
inputaudio=FFAudioSource("***********.avi").ResampleAudio(44100)                  //某音频流2
video=layer(overvideo,inputmov,op="Add") ++ inputvideo.Trim(100,0).ChangeFPS(25)      //合并视频流2的片段与滤镜 再加上视频流2
mixAudio=MixAudio(inputaudio,audio,0,1)                          //合并音频
AudioDub(video, mixAudio)                                                //最终输出



把这样的代码写入脚本文件avs,然后通过ffmpeg执行  例如:  ffmpeg -i ***.avs -y output.avi即可。


AviSynth官方API说明:http://avisynth.nl/index.php/Main_Page

AviSynth资料博客:http://www.cnblogs.com/top5/archive/2011/01/06/1929198.html


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP