有用WIN7 64位系统的么?AviSynth能用么

有用WIN7 64位系统的么?AviSynth能用么,第1张

AviSynth是AVI SYNTHesizer的缩写,意思就是AVI和成器,是一个Frameserver。(Frameserver就是一个把影像文件从一个程序转换到另外一个程序的过程, 其间没有临时文件或中介文件产生) AviSynth的基本工作原理是这样的: 首先建立一个包含特定命令的文本,称之为“脚本”(后缀为avs),这些命令指定要运行处理的影像文件和滤镜然后运行影像应用程序,比如VD或ND,打开脚本。此时AviSynth就开始工作了,打开脚本中指定的影像文件,运行特定的滤镜,并把输出结果提供给影像应用程序。但影像应用程序并不了解AviSynth在后台所做的处理,而认为是直接打开了一个“被处理过”的影像文件。 软件安装 1/soft/15943/soft/34381/soft/34383/soft/12080.htm

一、序言&压制简介

之前写了

苹果的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)

http://forum.doom9.org

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

2)

http://nmm-hd.org

:中文影音论坛。

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.在d出的窗口中输入后保存文件

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,所以d出错误提示。ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"

④由于国内的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程序的办法,在d出的窗口中完成安装。

②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

全部回复

只看作者


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/9934501.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存