AviSynth+(avisynth)

您所在的位置:网站首页 bdmv怎么转换成mp4 AviSynth+(avisynth)

AviSynth+(avisynth)

2023-03-31 07:01| 来源: 网络整理| 查看: 265

本篇文章跟大家聊聊avisynth,希望对各位有所帮助,不要忘了收藏本站喔。

文章导读: 1、x264调用avs 2、avisynth到底有几个版本,哪个版本是最新的 3、avisynth脚本错误 4、avisynth是电脑自带的吗? x264调用avs

一、序言压制简介

之前写了

苹果的Compressor 4.1.x的使用教程

HandBrake的Advanced面板的使用

,这篇帖子主要说说x264和ffmpeg的使用,以及AviSynth在Mac下的配置与使用,阅读需要有一定的压制基础。写这篇帖子主要原因是没有一个详细介绍在Mac下使用AviSynth的教程,Google上只有在Ubuntu下安装教程。楼主在安装过程中也遇到了不少问题,还要感谢百度dwing吧的吧友、selur.de的selur菊苣及doom9.org的qyot27菊苣提供的帮助。本帖会将楼主遇到的问题一一说明。

压制的目的有两个:①减小源视频的体积 ②修复源视频存在的问题。

由于蓝光原盘(以下称BDMV)高达30MBPS的码率是大多数人不能接受的,所以有必要进行压制以减小体积(x264的本职工作),x264能做到在1/8~1/4体积的前提下,提供和BDMV一样的视觉质量。

另一方面,不要认为BDMV的质量就一定很好,其实很渣,虽然高得吓人的码率,但是画质并没有想象中的好,不仅到处是噪点,而且还有严重的banding(色带),Chroma偏移导致bleeding(色彩越界)。这就需要使用滤镜进行处理。只要滤镜用得好(前提难点),完全能够超越BDMV的质量,虽然从数学上,你可能觉得这不可能,但是在后期,滤镜能准确添加、计算、插入新值,大幅改善视觉质量。所以最求质量更应该下载压制的BD-Rip而不是BDMV,前者不仅体积小而且还有更高的视觉质量。

我写这篇帖子的主要目的是给需要在OS X下使用AviSynth的朋友,另外楼主只是渣渣压制,给个小建议,讨论视频压制技术可以去:

1)

:英文,不要涉及盗版,发帖不能包含带版权的内容,文件名不能出现压制组名称,允许截图,不允许上传版权视频样品(除非是你自己拍摄)。

2)

:中文影音论坛。

3)百度贴吧:MeGUI和dwing

二、AviSynth简介

OS X虽然是个不错的系统,但是相比Windows,在视频编码方面却远远不及后者,原因是缺少强大的FrameServer来使用滤镜。AviSynth就是一个Windows平台的FrameServer,这就是压制的目的之二,修复BDMV中存在的问题。AviSynth的优势是拥有数量众多而且功能强大的滤镜和不少菊苣写的组合滤镜脚本,所以压制影片Windows绝对是首选,支持类UNIX系统的AvxSynth和VapourSynth却要自行编译其主程序和滤镜,加上滤镜本身就少,所以目前而言意义不大。

举个例子,当你想对视频同时进行降噪、deband(去色带)、debleeding(消除色彩越界)、sharpen(锐化)、AA(抗锯齿),当然这些就算在苹果的Compressor都能做到,问题出在滤镜都是应用到整个视频,而且多多少少都有副作用,比如:①去色带主要针对低细节的区域,但是却对线条造成了毁灭性的摧残 ②AA是针对线条的,但是对背景反而造成halo。这在AviSynth可以通过Mask选择性使用滤镜,简单说,做一个黑(Y=0)白(Y=255)的面具识别出线条,分别对原始视频进行deband和AA,最后再合并,根据mask,线条区域(mask中白色部分)取AA后的视频,其他区域(mask中黑色部分)取deband的视频。

三、AviSynth在Mac OS X下的运行方案和效率

这里说下怎么让这个强大的工具在Mac下使用。AviSynth用于打开avs脚本,avs脚本就是你写的对视频的预处理流程的脚本(后面简单说说怎么写)。总的来说有三种方案:

方案1:在虚拟机下用 Windows版x264调用AviSynth打开avs脚本,并编码。

方案2:双系统。用 Windows版x264调用AviSynth打开avs脚本,并编码。

方案3:在Wine环境下让FFmpeg调用AviSynth打开avs脚本,然后将预处理后的Raw直接喂给(Pipe)Mac版的x264编码。或者wine下直接用x264调用AviSynth打开avs脚本并编码。

首先,对于方案一,虚拟机永远有性能瓶颈,对于压制那么耗费CPU的工作,在虚拟机下做不来,而且8G内存也不足以在虚拟机下进行压制。因为x264需要1G,Avisynth需要大概500M(或更多),加上虚拟机在这个压制过程中就要2G左右,算上OS X占用的,已经所剩无几了。

对于方案二,对于性能上无疑是最好的,但是期间必须使用Windows。

至于方案三,就是我目前使用的方案,插件兼容性问题至今没发现。个人对性能的测试结果是:实测很意外!!x264编码几乎不影响性能或能忽略不计的程度,在运行AviSynth的情况下跑分远远超过BootCamp Windows。请看如下测试:

测试1:测试内容:使用x264对视频编码。速度为每秒的编码帧数fps(可以认为是运行效率)。

前提条件:Mac OS X、wine和虚拟机(分配了双核i5-3210M的所有四个线程和4G内存)环境下下使用同样参数对同样的视频编码,并且无其他正在运行的程序,编码总帧数近似相同时截图。

x264-64bit在OS X下速度:6.015fps

x264-32bit在wine下速度:5.44fps

x264-64bit在Parallels Desktop 9(win7 专业版64bit)速度:4.92fps

x264-32bit在Parallels Desktop 9(win7 专业版64bit)速度:4.71fps

值得注意的是,x264-64bit速度理论上比x264-32bit快10%,在本次编码中,虚拟机中的x264-64bit比x264-32bit快了4.3%,由于OS X没有x264-32bit因此,此项未测试。理论上说,双系统下的x264-64bit跑分和OS X下x264-64bit速度相同,因此不进行没必要的测试。若把x264-64bit在OS X下的跑分定位基准,那么:

环境 百分比

x264-64bit OSX 100.00%

x264-32bit Wine 90.40%

x264-64bit PD9 Win7 64bit 81.79%

x264-32bit PD9 Win7 64bit 78.30%

分析:由于wine下的x264为32bit版,若能运行64bit版,速度预计能在提高5%左右,综上所述,wine跑x264对性能的影响大约为5%。虚拟机对性能的影响约为19.2%。高效运行命令行程序是wine的一大优点,但是wine如果运行GUI程序,效率一般来说不如虚拟机高效,并且wine存在兼容性问题。因此wine下运行AviSynth的方案的确可行,根据qyot27菊苣的说法,wine进行H.264编码,对性能不会造成影响,因此有待我进行精确测试,原文:

static/image/hrline/4.gif

测试2:测试内容:使用AviSynth脚本对视频进行处理并通过x264编码。脚本主要滤镜为:DeRainbow()、TAA()。

前提条件:BootCamp Windows和Mac OS都无其他程序在运行,编码总帧数近似相同时截图。

1. x264-32bit(BootCamp Windows 8 Enterprise 64bit)速度:0.53fps

2. FFmpeg-32bit(wine,Windows Builds)Pipe + x264-64bit(OS X Builds)速度:0.438fps

3. x264-32bit(wine,Windows Builds)速度:0.71fps

值得注意的是,第三项测试中,wine下编码的速度达到了0.71fps,远远超过BootCamp Windows。同时,wine下的CPU利用率也是最高的,其他两项测试中,CPU都有15~25%没有被利用起来(此项测试其实并没有代表性,当多线程做pipe时,ffmpeg不会主动加上Distributor()罢了,导致avs内部多线程,但是单线程pipe)。因此在Mac下,首推wine下运行Windows版x264以获得高速编码速度(如果FFMpeg Pipe方式CPU能100%利用,无疑是Pipe方式快),另外也能在avs脚本末尾加上Distributor(),但是可能会导致内存不足,进而ffmpeg崩溃。如果把Bootcamp Windows下的速度当做100%,那么:

环境百分比

x264-32bit (BootCamp Win8 64bit)100%

FFmpeg-32bit (Wine,Win Builds)+x264-64bit (OS X builds)82.64%

x264-32bit (Wine, Win Builds)133.96%

四、关于环境变量与终端下的路径

在使用第三方命令行程序,我们通常需要输入绝对路径进行调用,这在使用中非常不方便,因此设想就是直接输入ffmpeg、x264,系统就能够知道去哪里寻找这个程序。环境变量就是是在操作系统中一个具有特定名字的对象,通过设置环境变量,我们能够更加方便的使用命令行程序。

1.首次添加环境变量(只有第一次添加才需要执行),需要创建Home目录下的.bash_profile,终端里输入touch ~/.bash_profile2.打开Home目录下的_bash_profile:

open ~/.bash_profile(或者直接前往~/.bash_profile用文本编辑打开也行。)

3.在弹出的窗口中输入后保存文件

export PATH=${PATH}:命令行程序所在的文件夹路径例如桌面下有一个x264程序,则应该输入

export PATH=${PATH}:~/desktop/3.区别:

①没设置环境变量的x264调用(需要绝对路径,因为OS X不知道x264是什么)

~/desktop/x264 -o ~/output.264 ~/input.m2ts②设置了环境变量后的x264调用(直接输入x264,因为OS X会在.bash_profile中存在的路径中查找名叫“x264”的程序)x264 -o ~/output.264 ~/input.m2ts4.终端下的路径的写法的注意事项:由于在终端里,空格通常作为两个参数的分隔符,因此当路径中含有空格时,终端会将路径当做是两个参数。所以需要在空格前加上反斜杠“\”标识(例1),或者使用字符串形式将整个路径用双引号引起来(例2),以下两个例子都是合法的:

/Volumes/Macintosh\ HD/Applications"/Volumes/Macintosh HD/Applications"五、x264简单使用

①、x264是H.264的开源命令行编码工具,编码后生成raw视频流(*.264),

点击下载x264

截图中,x264-10b代表此为10bit版的x264,不带10b的为8bit版。10bit版只能编码10bit H264,8bit 版只能编码8bit H264,10bit能更精确表示颜色,同时压缩率更高,但是解码压力也更大,移动设备不支持10bit H.264。下载尽量使用版本号高的x264。对x264的深入介绍不是本帖的重点,x264的在OS X下的使用和Windows无本质区别,可以自行Google。

②、由于VideoLan编译的x264没有被赋予执行权限,所以下载后,需要赋予x264执行权限,在终端命令格式:chmod +x 下面的命令假设x264在桌面上,文件名为x264,则输入(可以在输入完chmod +x 后拖入x264进终端,路径将自动生成):chmod +x ~/desktop/x264③、运行x264,直接将其拖入终端然后加上参数再即可,格式为(以下x264 代表x264的绝对路径,如果已经设置了环境变量就直接输入x264),每个参数前都有两个"-":x264 -o 输出文件路径 输入文件路径显示完整的帮助(含有所有的参数),输入(x264在显示完帮助菜单后会自动退出):x264 --fullhelp一个实例(具体设置什么参数,以及参数代表什么,

点击查看

):x264 --crf 18 -o /Volumes/Macintosh\ HDD\output.264 /Volumes/Macintosh\ HDD/Desketop/input.mov

六、FFmpeg简单使用

①FFmpeg是一个强大的开源编码器+muxer+demuxer,本生含有x264,并且能同时对视频和音频进行编码,然而x264只处理视频,所以使用x264,你还要另外用其他工具对音频编码,最终封装成一个视频文件。用FFmpeg就能一次性解决问题。

点击下载FFmpeg

。FFmpeg深入的使用不是本帖的重点,因此只做基本介绍(因为后面的AviSynth会用到FFmpeg)。

②命令格式:

ffmpeg -i 输入文件路径 输出文件路径③具体参数详见help菜单(同上,显示完菜单后自动结束程序)ffmpeg -help④实例1:编码视频为H.264 ,使用原始音频(copy, 不重新转码)并使用mp4封装格式:

ffmpeg -i /Volumes/Macintosh\ HDD/Desketop/input.mov -c:v h264 -c:a copy /Volumes/Macintosh\ HDD/Desketop/output.mp4⑤实例2:Pipe。所谓pipe就是使用ffmpeg解码,并将视频流直接传送给其他程序(比如x264)。简而言之,用ffmpeg解码,用x264编码,x264参数中必须加上--demuxer y4m。

ffmpeg -f yuv4mpegpipe -i /Volumes/Macintosh\ HDD/Desketop/input.mov - | x264 --demuxer y4m -o /Volumes/Macintosh\ HDD/Desketop/output.264 -七、命令行wine的安装

wine是一个让UNIX核心的系统运行Windows程序的一个工具。wine不是一个模拟器,而是Windows的API在类UNIX系统下的实现或不完全实现。注意:不能使用图形化的wine,必须是命令行的。

①安装Command-Line-Tools。如果已安装Xcode,那么,这一步请忽略,因为Xcode默认安装了CLT。如果没有,在终端下输入命令:xcode-select --install②安装X11 API。wine是基于X11的一个程序,但是早在OS X 10.5中,X11就已经不预装了,所以需要自行安装。

点我下载x11(XQuartz)

③安装HomeBrew。HomeBrew是Mac下的一个包安装/管理工具,能下载绝大多数的UNIX工具以及大量第三方开源代码并在本地编译与安装。

查看关于HomeBrew的更多信息

。安装HomeBrew,只需要一条ruby脚本即可,其余操作将自动完成。由于楼主已经安装了HomeBrew,所以弹出错误提示。ruby -e "$(curl -fsSL )"

④由于国内的DNS服务器无法解析部分国外的部分网址,所以在下载wine的源代码以及必要包的时候可能会出现连接超时的问题,解决方法:暂时用台湾中华电信的DNS服务器: 168.95.1.1 。当wine安装完成后再改回原DNS。

更改DNS服务器的方法:系统偏好设置--网络--高级--DNS

⑤安装wine。利用HomeBrew,安装wine非常简单,只要一条终端命令即可完成,HomeBrew会下载源代码在本地编译:brew install wine取决于网络线路,这一部可能会花费半小时至一小时。如果下载包的过程中出现网络连接超时,重新运行上面的命令,HomeBrew不会重复下载和编译已完成的包,进度会自动记录。

⑥安装winetricks。winetricks是使用wine的一个小工具,通过winetricks,你能配置Windows下的各种运行环境以及安装缺失的动态链接库(*.dll)。同样通过HomeBrew:brew install winetricks⑦配置vcrun6环境。vcrun6是AviSynth运行所需要的C++环境,因此有必要通过winetricks安装:

winetricks vcrun6

至此wine的编译安装全部完成。下一步就是AviSynth的安装以及使用了。顺带一提,使用wine运行各类Windows程序,在终端输入:

wine windows程序绝对路径

八、AviSynth的安装和在OS X下的脚本书写

①安装AviSynth非常简单,只要在终端先打上wine和空格,将AviSynth安装包拖入终端,回车即可(假设AviSynth安装包在桌面上):

wine ~/desktop/AviSynth_130918.exeAviSynth 2.6 Alpha 5下载(最新版):

AviSynth_130918.exe

按照安装Windows程序的办法,在弹出的窗口中完成安装。

②avs文件的本质是纯文本,因此可以用TextMate等文本软件直接创建。关于avs的简单使用,

点击这里

在Windows中,大多数人习惯用DirectShowSource()滤镜(或称函数)载入需要处理的视频,但是这个函数太Windows了,以至于在OS X中无法使用,并且DirectShowSource()载入视频有色彩上问题,因此有必要用其他的滤镜。我推荐的是ffms2,这个滤镜基于libAVCodec,通过FFVideoSource()载入视频,FFAudioSource()载入音频,或者FFmpegSource2()同时载入视频和音频。滤镜目录位于/Users/用户名/.wine/drive_c/Program Files/,然后打开AviSynth 2.x -- PlugIns,如果你将dll和avsi直接放置于这里,那么,在avs脚本中就不用LoadPlugIn(),因为AviSynth会自动载入(但是不会自动载入PlugIns里面嵌套的文件夹)。ffms2下载:

FFMS2-19.7z

#打开片源

FFVideoSource("/Volumes/Macintosh HDD/Desktop/input.m2ts")

return last

虽然AviSynth安装于Wine下,但是它支持Mac风格(POSIX)的路径,没有必要使用Wine文件系统中的路径(/Users/用户名/.wine/drive_c/路径在Wine中可以用“C:\”代替),一切文件路径都能使用Mac下的POSIX路径(包括Windows版的x264和FFmpeg) ,但是不能使用通配符~表示用户目录,例如,不能用 ~/Desktop 代替 /Users/用户名/Desktop。

③将Windows版的FFmpeg.exe(32位)放置于/Users/用户名/.wine/drive_c/windows/system32文件夹内,Windows版32位FFmpeg下载:

FFmpeg 20140515.7z

放置于system32下的作用类似于上文的环境变量,为了方便调用。

④方法一:根据上文提到的,编码的实现方式为FFmpeg(Windows) pipe --x264(Mac),因此我windows版的FFmpeg的作用是打开avs脚本并调用AviSynth进行滤镜处理,并将结果无中间文件直接送给Mac下的x264。实现的终端命令:

wine ffmpeg -i /Volumes/Macintosh\ HDD/Desketop/input.avs -f yuv4mpegpipe - | x264 --demuxer y4m --crf 16 -o /Volumes/Macintosh\ HDD/Desketop/output.264 - 注:将FFmpeg的输入为AVS脚本,脚本中已经包含了输入视频以及滤镜。

⑤方法二:一切都在Wine下进行。直接用32位的Windows版 x264(假设x264位于system32文件夹内),但是由于是32位程序,根据测试编码部分实际可能慢10%,然而AviSynth快了30%之多。wine x264 --crf 16 -o /Volumes/Macintosh\ HDD/Desketop/output.264 /Volumes/Macintosh\ HDD/Desketop/input.avs九、AvsPmod安装

AvsPmod是Avisynth的免费GUI(自行Google下载),能方便编辑avs脚本,并提供预览功能。但是在Wine下,由于一些原因,使用avs编辑器,会闪退,预览无问题。进过一系列测试,找到原因:由于wine下不能将avs编辑器的自动填充tips显示出来,所以会导致崩溃,因此,我们只需要关闭自动填充功能即可。

至此,大功告成,成功在Mac OS X下通过Wine使用使用AviSynth!

美化插件

+47

5

5

5

10

5

7

7

3

8 人已评分

FENG.COM

全部回复

只看作者

avisynth到底有几个版本,哪个版本是最新的

官方正式版(仅有32位版)是ST版的2.60,并且有测试版的2.61(alpha)。ST意为单线程

非官方版有MT版的2.60(仅有32位版)。MT为多线程

分支版本有:

1、AviSynth+(主要目标是实现多线程和64bit支持,有32位版和64位版,我能找到的最新的编译版本为AviSynth+ r2294,于16年10月26日编译。)

2、AvxSynth(基于2.58移植的linux版avs,主要用于ubuntu,理论上其它linux版本也应该可以运行)。

avisynth脚本错误

首先,这个脚本1-6行和8-10都没用

第二,不要用avswriter

第三,不要用directshowsource(dss)

第四,如果非要用dss请安装k-lite一类的解码包

第五,用dss出现的奇葩问题请自行承担

avisynth是电脑自带的吗?

并不是电脑自带的。

AviSynth(AVI合成器)是一个功能强大无比的基于avs脚本文件的视频处理与帧服务软件,建立.avs文件索引输出avisynth,还有强大的脚本滤镜功能avisynth,很多编辑软件可以支持。本文详细介绍了AviSynth的使用方法.

一、如何加载插件

1.SetWorkingDir() 指定插件路径 如:

SetWorkingDir("D:\AviSynth 2.5\plugins\")

2.LoadPlugin() 加载插件 如:

LoadPlugin("VSFilter.dll") 加载字幕插件

LoadPlugin("mpeg2dec3.dll") 加载DVD的mpeg2编码器插件

LoadPlugin("mpasource.dll") 加载mp3插件

二、源媒体怎么读取

1.DirectShowSource() 万能调用 如:

DirectShowSource("e:\vob\ss.VOB")

2.AVISource() avi文件调用 如:

AVISource(e:\avi\1.avi,false)

3.MPEG2source() 这个用于解码DVD的mpeg2格式的视频 如:

MPEG2source("XXX.d2v")

4.WAVSource("e:\vob\ss.wav") 读取wave音频

5.AC3Source("e:\vob\ss.ac3") 读取ac3音频

6.MPASource("e:\vob\ss.mp3") 读取mp3音频

7.Convertfps=true 转换帧率 如:

DirectShowSource("e:\vob\ss.vob",Conertfps=true) 表示不指定帧率,适用于RMVB、WMV

注:WAVSource和AVISource是属于核心脚本,无须读取插件,但AC3Source和MPASource需要读取AC3Source和MPASource插件

DirectShowSource的读取需要安装各种音频和视频的解码器

三、Crop()、LanczosResize()、SimpleResize()、AddBorders() 裁黑边、调整大小、调整大小、加黑边

1.Crop() 裁黑边 (左,上,长,宽) 如:

Crop(8,0,704,480) 左右各切去8像素,上下各切去0像素 原分辨率720*480

2.LanczosResize() 调整大小 (长,宽) 画质锐利、真实,适合普通电影 如:

LanczosResize(640,480)

3.SimpleResize() 调整大小 (长,宽) 画质柔和,适合动画 如:

SimpleResize(640,480)

4.AddBorders() 加黑边 (左,上,右,下) 如:

AddBorders(0,64,0,64)

四、画面滤镜

1.Levels() 层次 亮度、对比度(1.3~2之间较合适)、Gamma值(调节画面亮暗)如:

Levels(0,1.5,255,0,255)

2.Tweak() 调整 色度、饱和度、亮度、对比度

色度:-180.0~180.0 默认0.0 正数趋向红色,负数趋向绿色

饱和度:0.0~10.0 默认1.0 0.0为黑白

亮度:-255.0~255.0 默认0.0 一般调节在0~30之间,以15~20为宜

对比度:0.0~10.0 默认1.0 如:

Tweak(0,1,20,1)

3.FadeIn()、FadeOut() 淡入、淡出 (帧)如:

FadeIn(24)、FadeOut(24)

4.Trim() 截取 某段影片 (开始帧,结束帧)如:

Trim(240,480)

五、声音滤镜

1.AudioDub() 合并影音 (视频,音频)如:

Video=AVISource("xxx.avi",False,"YUY2") False为关闭视频中的音频 YUY2为色彩模式

Audio=WAVSource("xxx.wav")

AudioDub(Video,Audio)

2.GetChannel()、GetLeftChannel()、GetRightChannel() 获取声道 如:

Stereo=WavSource("test.wav")

Return GetChannel(stereo) 返回test.wav的左声道

Stereo=WavSource("test.wav")

Return GetLeftChannel(stereo) 返回test.wav的声道

3.DelayAudio() 延迟声音 由于从VOB里分离的AC3通常有延迟,所以用Azid转码得到的WAV也有延迟,在用AudioDub合并时就需要加上这个延迟 如:

WAVSource("test.wav").DelayAuido(0.5) 把test.wav延迟0.5秒

DelayAudio(wavsource("text.wav"),-30) 把test.wav延迟30毫秒 +表示提前

4.ResampleAudio() 音频重新采样 如:

WAVSource("text.wav").ResampleAudio(48000) 重新采样率48000Hz

5.AmplifydB() 声道音量缩放 如:

AmplifydB(WAVSource("text.wav"),4,-3) 左声道音量放大4dB,右声道音量减小3dB

AmplifydB(WAVSource("text.wav"),4,0,-3) 左声道音量放大4dB,中声道音量放大0dB,右声道音量减小3dB

6.MergeChannels() 组合左、右声道 如:

Left=WAVSource("C:\1.wav").GetLeftChannel

Right=WAVSource("C:\2.wav").GetRightChannel

MergeChannels(Left,Right)

六、字幕滤镜

1.VobSub() Sub字幕 将字幕的2个文件test.idx和test.sub放在同一个目录下 如:

LoadPlugin("VobSub.dll")

VobSub("test")或VobSub("e:\vob\ test.idx")

2.TextSub() SSA和ASS字幕 如:

LoadPlugin("TextSub.vdf")

TextSub("h:\avs\jrvs.ssa") 加载水印文本

LoadPlugin("VSFilter.dll")

TextSub("F:\DVD\js60\js601.srt") 加载srt字幕

七、色彩模式转换

1.ConvertToRGB32、ConvertToRGB24、ConvertToRGB、ConvertToYUY2、ConvertToYV12 如:

AVISource("text.avi","YUY2")=AVISoerce("text.avi").ConvertToYUY2

八、其它虑镜

1.截图 连续截图、截取特定Frame 格式bmp,、dds、jpg/jpe/jpeg、pal、pcx 如:

DirectShowSource("E:\VIDEO\text.mp4",fps=23.970).ConvertToRGB32

trim(1,10)

ImageWriter("D:\ever\",0,0,"jpg") 连续截图 截取影片选段中的第0帧到第9帧图像(全部帧)

DirectShowSource("E:\VIDEO\text.rmvb",convertfps=true).ConvertToRGB24

trim(1,10)

ImageWriter("D:\ever\",3,7,"jpg") 连续截图 截取影片选段中的第4帧到第8帧图像

DirectShowSource("E:\VIDEO\text.mp4",fps=23.970).ConvertToRGB

trim(10,10)

ImageWriter("D:\ever\",0,0,"jpg") 截取特定Frame 截取整个影片的第11帧

DirectShowSource("E:\VIDEO\text.rmvb",convertfps=true).ConvertToRGB24

trim(1,10)

ImageWriter("D:\ever\",4,4,"jpg") 截取特定Frame 截取影片选段中的第5帧(整个影片的第6帧)

九、常见外置滤镜

(1)源文件滤镜

1.MPEG2Dec 读取DVD2AVI产生d2v工程文件,内建去除Noise的TemporalSmoother 如:

LoadPlugin("MPEG2Dec.dll")

MPEG2Source("test.d2v")

2.MPEG2Dec2 支持P4的SSE2指令集,用文本编辑工具打开d2v,把iDCT_Algorithm=?改成5 速度快,效果好 如:

LoadPlugin("MPEG2Dec2.dll")

MPEG2Source("test.d2v")

3.MPEG2Dec3 加入Nic的图像后处理(PP),一定程度减少Noise,好像除了P4的SSE2外,还加入了AMD的3D Now!优化,目前还在开发中 如:

LoadPlugin("MPEG2Dec3.dll")

MPEG2Source("test.d2v",CPU=4) CPU=4开启PP模式

(2)处理滤镜

1.ColorYUY2 颜色补偿 如:

LoadPlugin("ColorYUY2.dll")

ColorYUY2(0,10,0,10,0,0,0,0,0)

2.ChangeFPS() 改变帧率 如:

ChangeFPS(23.976) 数值12、15、20、23.976、24、25、29.970、30

3.UnDot() 消除噪点 可用一个或多个,可连用 如:

LoadPlugin("UnDot.dll")

DirectShowSource("test.avi")

UnDot()

LanczosResize(480,272)

UnDot()

LoadPlugin("UnDot.dll")

DirectShowSource("test.avi")

UnDot().UnDot().UnDot().UnDot()

4.KenKunNR() 降噪 threshold=1 to 3,数值越大,强度越大 如:

LoadPlugin("WarpSharp.dll")

KenKunNR(threshold=1)

5.FluxSmooth() 柔化 兼有降噪 降噪作用稍强于UnDot() 如:

LoadPlugin("FluxSmooth.dll")

FluxSmooth(5,7) 一般使用默认(5,7)

6.SpatialSoften() 空间轴柔化 (柔化程度,亮度域值,色彩域值)如:

SpatialSoften (4,8,8) 柔化程度数值不要太大,2-5之间,亮度域值、色彩域值需测试调节

7.TemporalSoften() 时间轴柔化 如:

TemporalSoften(2,3,3,mode=2,scenechange=6) 一般使用这个参数

8.Convolution3D() 3D柔化 一般动画用animeHQ,电影用movieHQ 如:

LoadPlugin("Convolution3d.dll")

Convolution3D("movieHQ") 电影

Convolution3D("animeHQ") 动画

9.Deen() 锐化 兼有降噪 如:

LoadPlugin("deen.dll")

Deen("c2d",2,3,3) 较轻

Deen("a3d",3,3,1,3) 较轻

Deen("c2d",2,6,6) 中等

Deen("a3d",3,6,1,6) 中等

Deen("c2d",2,10,12) 强力

Deen("a3d",3,10,1,12) 强力

10.Sharpen() 锐化 数值越大,效果越强 如:

Sharpen(0.2) 一般取0.2~0.3

11.WarpSharp() 锐化 主要改动depth、bump两个数值 如:

LoadPlugin("WarpSharp.dll")

WarpSharp(depth=30,blur=2,bump=40,cubic=-0.6) 越下面的线条越细

WarpSharp(depth=40,blur=2,bump=60,cubic=-0.6)

WarpSharp(depth=60,blur=2,bump=96,cubic=-0.6) 全屏的时候,明显感觉出锯齿

12.Blur() 模糊 参数范围-1.0~1.58 负数为清晰 可以连续加载,可以结合MergeChroma或MergeLuma使用 如:

Blur(0,1).Blur(0,1)

MergeLuma(Blur(0,1)Blur(0,1))Blur(-1) 相当于锐化滤镜

Blur(-0.9,1) 水平清晰,竖直模糊 竖直模糊更具有线条感

Blur(1.3,-0.7) 水品模糊,竖直清晰

13.柔化滤镜可以参考一些自动生成的模板 片源不好就按需选用,尽量少用,或者不用 如:

little Noise

TemporalSoften(2,3,3,mode=2,scenechange=6)

MergeChroma(blur(1.3))=MergeLuma(blur(1.0))

FluxSmooth(5,7)

Medium Noise

TemporalSoften(3,5,5,mode=2,scenechange=10)

Convolution3D("moviehq")

FluxSmooth(7,7)

Heavy Noise

Temporalsoften(4,8,8,mode=2,scenechange=10)

Convolution3D("movielq")

FluxSmooth(10,15)

(3)交错滤镜

1.Decomb 包含IVTC、Deinterlace滤镜

IVTC(Inverse Telecine) 将DVD或VCD记录的29.976fps(NTSC)或25fps(PAL)的隔行信号还原为胶片的23.976fps的逐行信号,可有效消除影片的“拉丝(Interlace)”现象、平滑减少每秒内的帧数,以获得画面质量与码流的最佳比例

Deinterlace反交错,恢复逐行扫瞄图像 参数如:

Guide 0~2 默认0 NTSC用1,PAL用2,可以提高IVTC准确度

Gthresh 0~100 默认15 控制区分不同帧的程度

Post 默认true 用来处理IVTC遗漏的细节,使画面略微模糊

Threshold 0~255 默认15 控制post的程度

Dthreshold 0~255 默认9 控制threshold判定IVTC遗漏的程度

Blend 默认true 在交错画面用渲染来替代填充

Chroma 默认false 在交错画面的亮度色度调整

Cycle 2~25 默认5 每n帧删除1帧,NTSC选5,PAL选25

Mode 0~2 默认2

Mode=0 对Cycle里最相近的帧不进行处理

Mode=1 对Cycle里最相近的帧进行处理,用于处理混合帧速

Mode=2 在一个很长的范围里进行帧对比,可以正确处理动画里由8帧或12帧复制为29.97帧的情况

Threshold 默认0 控制mode=1时的处理重复帧的程度,Threshold默认100,控制mode=2时的处理重复帧的程度

Quality 0~3 默认2 采样和色度的质量,与速度成反比 如:

LoadPlugin("Decomb.dll")

Telecide(Guide=1,Gthresh=50,Chroma=True,Quality=3,Post=false)

Decimate(cycle=5) NTSC 3:2 PullDown

LoadPlugin("Decomb.dll")

Telecide(Guide=1,Gthresh=50,Chroma=True,Quality=3,Post=false)

Decimate(Cycle=5,Mode=2) NTSC Progressive和Interlaced混合

LoadPlugin("Decomb.dll")

Telecide(Guide=2,Gthresh=50,Chroma=True,Quality=3,Post=false)

Decimate(Cycle=25) PAL

十、实例

(一)截边、改变分辨率

Avisource("H:\xx.avi").crop(5,20,630,440).lanczosresize(640,352) Corp 与 Lanczosresize 两者顺序不能变

Corp切黑边,把一个640*480分辨率的片源,左右各切去5,上下各切去20,数值为(5,20,630,440)左,上,长,宽 Lanczosresize 改变分辨率 (长,宽)

压RMVB如要改小分辨率的话建议:704*396的片源用576*324,640*480的片源用512*384 尤其是DVD转RMVB,通常拷贝出来的VOB都带有大片黑边,一定要切黑边否则压时浪费码率

另外比较保险的分辨有640*352,640*272

切边还可用 Easy Realmedia Producer(简称:ERP)里面的功能,方便一些 或是用gk里的功能,可以计算失真

用ERP打开片源参数设置设置裁切区域手动调节,用鼠标拖动红色边框,Inpug Preview为预览

(二)合并输出

v1=trim(avisource("H:\RAW\武器\9.avi",false).changefps(23.976),0,767)

false关闭音频 通常 After Effects 做的特效都是无声的,所以要关闭片源音频 changeFPS(23.976)强制显示帧数 合并的前提:必需帧数统一 要截取的帧数可以用 VDM 查看

v2=trim(avisource("H:\字幕存储\武器\op.avi",false).changefps(23.976),0,225)

AE做的特效,事先用VDM得知为226帧

v3=trim(avisource("H:\RAW\武器\0.avi",false).changefps(23.976),994,0)

三个语句分别是:截取片源0~767帧、截取AE特效全部帧、截取片源994~最后帧 即是切去片源中间一段,并用 AE 特效代替

a=v1+v2+v3

Return a.textsub("H:\09.ass").textsub("H:\武器op09.ass")

若片源分辨率不一样,需统一分辨率

v1=trim(avisource("H:\RAW\wuqi\9.avi",false).changefps(23.976).lanczosresize(704,396),0,767)

最终输出结果为无声,AVI 内嵌时使用 RMVB 内嵌直接加挂音频

Loadplugin("H:\plugin\mpasource.dll")

v4=mpasource("H:\wav\武器\09.mp3")

Audiodub(a,v4)

注:这样加载的音频在压 RMVB 时,音频设置最好不用 RA10 PLUS 用 RA10 PLUS.48Kbps压出来音频头一两分钟是无音的,RA8 没问题

120帧的片源的截切

强制显示23.976帧,再用 VDM 打开看帧序号 合并时 AE 特效也要用这个帧率 AVS 切广告再合并AE特效

因牵扯到音频,所以得先处理音频

如:0~100帧是AE特效,无声 300~350是广告 切了广告的部分再合并AE特效,视频部分完成

因 AE 特效无声,音频就要另写一脚本提取 即将原片源的广告切除的脚本,不禁声音,然后用 VDM 打开,保存 WAV 音频

120帧的片源的压缩

直接强制帧数:Changefps(23.976) 另一个:Selectevety(5,0)

关于avisynth的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3