打印

[自压原创] AVS+MEGUI 压制视频 教程

0

AVS+MEGUI 压制视频 教程

软件简介:

引用:
    AVS是什么呢?AVS全称AVI SYNTHesizer,是什么就别管了XD 如果实在是求知欲旺盛的话,定义在这里:Avisynth is a very useful utility created by Ben Rudiak-Gould.  It provides many options for joining and filtering videos.  What makes Avisynth unique is the fact that it is not a stand-alone program that produces output files.  Instead, Avisynth acts as the "middle man" between your videos and video applications. 简单地说呢,就是相当于在片子和处理片子的软件之间提供一个平台,就像中介一样的作用。
引用:
  x264是一种免费的、具有更优秀算法的H.264/MPEG-4 AVC视频压缩编码格式。它同xvid一样都是开源项目,但x264是采用H.264标准的,而xvid是采用MPEG-4早期标准的。由于H.264是2003年正式发布的最新的视频编码标准,因此,在通常情况下,x264压缩出的视频文件在相同质量下要比xvid压缩出的文件要小,或者也可以说,在相同体积下比xvid压缩出的文件质量要好。它符合GPL许可证。
引用:
    MeGUI是压制x264编码格式视频的一个免费软件,其功能十分强大不亚于,甚至超过了现在很多的商业软件,插件甚为丰富,加上输入为AVS脚本文件,更是给视频压制者留下了很多发挥的余地,软件输出的视频编码是x264、Xvid等当今流行的编码格式,音频编码的选择更多,输出的文件类型为MKV、MP4、RAW扩展名的视频。是现在流行的后期压制软件。

       MeGUI 是一款基于ISO MPEG-4的全面的GUI解决方案。它可以支持使用MPEG-4 ASP (XviD & libavcodec MPEG-4)标准的Mencoder,使用MPEG-4 AVC (x264) 标准的x264.exe 或 Mencoder,使用(HE)AAC audio标准的BeSweet、Nero AAC encoder和使用MP4 muxing标准的mp4box。

    MeGUI是一 个GUI汇总,它可以方便的使各种需要使用命令行的EXE程序(多达几十种)统一到一个图形界面下,非常方便。它的出现大大简化了压制新型DVDrip (多为H264编码,MKV封装)及MP4的过程。MeGUI已经开始取代VDM,成为很多人首选的视频处理工具。基于以上原因,从方便性与专业性两个角 度来看,制作MP4-AVC,MeGUI都是首选。
    准备工具:

    AVS(Avisynth) MEGUI,“阿飞影音工具包”等都有自带,也可以自行单独下载。
    MeGUI,下载页面:http://sourceforge.net/projects/megui/
    MEGUI运行所需“.net framework 2.0”或以上版本。http://www.microsoft.com/downloads/details.aspx?FamilyID=0856EACB-4362-4B0D-8EDD-AAB15C5E04F5&displaylang=zh-cn


####################分界线#########################


引用:
       AVS常用基本滤镜介绍:
  
             注:以下不详细说明每个滤镜是否为第三方。第三方的会在滤镜语句前加上Loadplugin(“***.dll”)。“[...]”表示可省略。碰到不会用的滤镜可以查看avisynth的说明文档(查看下avisynth安装目录),第三方的插件也有自带的说明.

一.加载插件
LoadPlugin ("filename")   #加载.dll插件
例:
LoadPlugin("C:\Program Files\Ringz Studio\Storm Codec\Codecs\VSFilter.dll ")#加载字幕滤镜
还有两个,只做简单介绍:
LoadVirtualDubPlugin ("filename") #加载VD的滤镜,.vdf文件
LoadVFAPIPlugin("filename")#加载TMPGEnc滤镜(IVTC处理)

如果用到插件比较多的话,这样Load确实比较烦。其实你可以将常用的. Dll插件复制到avisynth安装目录的plugin目录里,这样滤镜就可以不用增加LoadPlugin()语句。
例如:最常用的字幕滤镜。将VSFilter.dll复制到plugin目录里,这样就可以不用LoadPlugin()语句了,直接就可以使用VobSub()语句了。方便很多!
还可以使用以下命令指定插件目录:

SetWorkingDir("d:\avsplugin\") #设定AVS 脚本调用dll 插件文件的工作路径
LoadPlugin("VSFilter.dll")
LoadPlugin("undot.dll")

再需要调用很多插件时这样做会更方便些。


二.读取源文件滤镜

1.视频滤镜
Directshowsource("filename"[,...][,...])
例:DirectShowSource ("D:\test.avi")   #直接打开test.avi源文件
DirectShowSource("D:\test.rmvb",fps=23.976, convertfps=true)   #直接打开rmvb格式,对于rm/rmvb和asf格式的,需要定义帧率才能读取。如里面的fps=23.976,convertfps=true语句的作用是防止转换可变桢率的RMVB和WMV时出现影音不同步。这两个语句望大家在转片时都加上。
DirectShowSource()在avisnyth中很强大,常用的媒体格式,如avi、mpge1/dat、mpge2/vob (DVD) ,bin (SVCD)都可以加载.只要有解码器的支持,很多格式都可以使用这个滤镜加载。

AVISource("filename"[,...])
加载AVI文件,对于常见的DVDRIP格式来说可能更常用些.,DVDRIP都是DivX或XviD编码的,需要安装相应的解码器(Codec)。
例:AVISource("D:\test.avi")
AVISource("d:\test.avi",false)#false表示禁止音频

MPEG2Source("filename")
由dividee编写的读取DVD2AVI产生的d2v工程文件的滤镜,同时内建去除Noise的TemporalSmoother。
例:LoadPlugin("MPEG2Dec3.dll")   #此为第三方滤镜需要先调用声明,再使用
MPEG2Source("D:\test.d2v")   #读取d2v工程文件

2.音频滤镜
WAVSource("filename")   #读取WAV格式的音频。

LoadPlugin("AC3SOURCE.dll")
AC3Source("filename")   #读取AC3的音频。

LoadPlugin("MPASOURCE.dll")
MPASource("filename")   #读取MPG的音频。

DelayAudio()
声音延迟
DelayAudio(WAVSource("test.wav") ,100) #把test.wav延迟100毫秒

GetLeftChannel() 和 GetRightChannel()
声道获取:把立体声的左右声道单独返回,适用于左右声道不同语种片子。
例:stereo=WavSource("test.wav")
return GetChannel(stereo) # 返回test.wav的左声道

AmplifydB()
AmplifydB(WavSource("test.wav"),3,3) #左右声道放大3DB

AudioDub()
影音合成:把影像和声音合并在一起。
例:Video=AVISource("test.avi")
Audio=WAVSource("test.wav")
AudioDub(Video,Audio) #把test.avi和test.wav合并


三.编辑滤镜
ConvertToXXX()
颜色环境转换 (某些滤镜需要特定的颜色环境才能运行)
例:
ConvertToRGB()    #改变成RGB颜色环境
ConvertToYUY2()     #改变成YUV颜色环境
ConvertToYV12()    #加载RMVB时用到,因为X264编码器不支持某些RMVB的色彩环境

ChangeFPS(23.976) #改变影片帧率,推荐用这个数值


AddBorders(左,上,右,下)
给影像加黑边:参数是整数,顺序是左、上、右、下。尤其适用于对2.35:1的影像加黑边,为了不使图像缩放后变形,而且可以把字幕加在图象的下方黑边里。PSP的分辨率为480*272,为1.76:1的画面。接近常见的1.85:1的比例,所以可以不加黑边。但是对于2.35:1的宽影屏画面需要加上黑边。更详细的请参见画面比例问题的教程。
例:AddBorders(0,32,0,32) # 上下各增加32象素的黑边。

Crop(左切,上切,-右切,-下切)
切边:为了保持比例或切除黑边,参数是整数,顺序是左、上、-右、-下。
例:Crop(16,8,-16,-8)   #16为起始数值,如果切不干净,再增加数值,一般加4的倍数

LanczosResize(宽,高)
放大缩小滤镜:参数是整数,顺序是宽度、高度。
例:LanczosResize(480,272) #把分辨率改变为480*272.

SimpleResize(宽,高)
放大缩小滤镜:LanczosResize的画质更锐利和真实,适合普通电影;而SimpleResize的画质较柔和,适合动画。
例:LoadPlugin("SimpleResize.dll")
SimpleResize(480,272)

⑴字幕滤镜
字幕分为两种:文本字幕和图片字幕。文本字幕常见的有*.srt,*.ssa,*.ass
图片字幕常见的有(*.idx,*.sub)。

VobSub("filename")
图片字幕:此种字幕有2个文件test.idx(索引)和test.sub(字幕内容)。两个文件需在同一个目录下。
例:LoadPlugin("VSFilter.dll")
VobSub("e:\sub\test") #加载sub影片字幕,可以不用后缀。

TextSub("filename")
文本字幕:常见格式为srt, ssa和ass字幕, ssa和ass常被用来做压片小组的水印文件格式。
例:LoadPlugin("VSFilter.dll ")
TextSub("D:\avs\vplogo.ssa")   #加载水印字幕
TextSub("D:\movie\test.srt")   #加载影片字幕
注意:字幕应该加载整个avs语法序列的最后,特别是在裁减缩放滤镜的后面。

Trim(开始帧,结束帧)
截取:决定需要处理的部分。参数为整数,表示需要编辑的开始帧和结束帧。对抽样做Sample和影片分割比较有用。
例:trim(0,100)   #截取1-101frame(帧),trim是以0为第一帧的。


四.处理滤镜
这一类滤镜再改善画面效果的同时,画质也在下降,请谨慎使用.当然如果片源质量不好,有必要使用以下滤镜来改善画面效果的.

1.亮度滤镜
Levels()
层次:可以调节亮度、对比度和Gamma值,一般常用来调节亮度。
例:Levels(0,1.2,255,0,255) #增加画面亮度
其它参数默认,只改第二个亮度参数,数值在1.2-1.7之间比较合适,一般1.5比较合适. vob文件一般会出现背景暗的问题,就需要增加点亮度。

Tweak()
调整:可以调节色度,饱和度,亮度,对比度。
例:Tweak(0,1,20,1)
4个参数依次表示为:色度,饱和度,亮度,对比度。
色度:-180.0~180.0,默认0.0。正数趋向红色,负数趋向绿色。
饱和度:0.0~10.0,默认1.0。0.0为黑白。
亮度:-255.0~255.0,默认0.0。
对比度:0.0~10.0,默认1.0。
一般将亮度(第三个参数)调节在10-20之间。注意Tweak的其他调节可能和颜色控制环境有关,如YUY2,因此其它的最好不要再改动。

ColorYUY2()
颜色补偿:由于经过编码,得到的结果和DVD相比较,颜色有所改变,所以要对颜色进行补偿。
例:LoadPlugin("ColorYUY2.dll")
ColorYUY2(0,10,0,10,0,0,0,0,0)


2.降噪滤镜
undot()   #可以使用一个或多个
无参数,直接加上就行了。undot滤镜是进行象素及细小噪点降噪,一般用来去除细小的、肉眼不容易察觉的噪点,所以具体效果上并不明显。
例:加在其它滤镜后,使用多次。
LoadPlugin("UnDot.dll")
DirectShowSource("test.avi")
UnDot()
LanczosResize(480,272)
UnDot()
具体用暴风预览效果。


FluxSmooth()
柔化兼有降噪功能,比UnDot()作用要强些.
例:
LoadPlugin("fluxsmooth.dll")
fluxsmooth(5,7)


KenKunNR()
KenkunNR是WarpSharp自带的降躁插件,具体参数KenKunNR(threshold=1 to 3),数值越大,强度越大。
例:
LoadPlugin("WarpSharp.dll")
KenKunNR(threshold=1)

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) 强力


3. 柔化、锐化、模糊类滤镜
SpatialSoften()
空间轴柔化滤镜。基本参数3个,如SpatialSoften (4,8,8)
第一个指柔化程度,数值不要太大,2-5之间,后2个是亮度域值和色彩域值,均为整数型数值,需要测试调节.

TemporalSoften()
时间轴柔化滤镜。
Temporalsoften(2,3,3,mode=2,scenechange=6)   #一般用这个参数就行了


Convolution3d()
3D柔化滤镜.参数一般动画用animeHQ,电影用movieHQ.
例: LoadPlugin("Convolution3d.dll")
Convolution3d("movieHQ") #转电影
#Convolution3d("animeHQ") #转动画



sharpen()
锐化滤镜:数值越大, 锐化效果越强.
例:
sharpen(0.2)


WarpSharp()
锐化滤镜: 主要改动depth,bump这两个数值
越下面的线条越细
[attach]67809[/attach]
例:
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) #线条比上细,全屏的时候,明显感觉出锯齿


mergechroma(blur(1.3))
模糊滤镜.


柔化滤镜可以参考一些自动生成的模板,如
# 1) little noise
#Temporalsoften(2,3,3,mode=2,scenechange=6)
#mergechroma(blur(1.3))#可以换成MergeLuma(blur(1.0))
#FluxSmooth(5,7)
#
# 2) medium noise
#Temporalsoften(3,5,5,mode=2,scenechange=10)
#Convolution3d("moviehq")
#FluxSmooth(7,7)
#
# 3) heavy noise
#Temporalsoften(4,8,8,mode=2,scenechange=10)
#Convolution3d("movielq")
#FluxSmooth(10,15)

可以使用其中的一套,使用具有处理效果的滤镜会增加压片的时间.片源不好就按需选用些.总之能尽量少用就少用,或者干脆不用.



    AVS模板代码:
  
复制内容到剪贴板
代码:
LoadPlugin("VSFilter.dll")
#加载字幕插件,也可能不用这句。
A=directshowSource("片头绝对地址",原始帧率).changefps(所需帧率) .ConvertToYV12().SSRC(48000).LanczosResize(960,544)
B=directshowSource("影片绝对地址",原始帧率).LanczosResize(960,544).textsub("字幕绝对地址").ConvertToYV12().SSRC(48000)
V=A+B
return V
    复制代码至记事本,改后缀为avs。


    KMP、MediaInfo等都可以查看帧率!

如果不压制片头和水印,可以Ctrl+R,使用MEGUI自带的avs编辑工具,设置好后生成avs文件压制。

####################分界线#########################





    初次运行MEGUI,软件会进行自动的组件更新,如没有自动更新,请Ctrl+U,手动更新。(当跳出N个组件、模板选择时,可以选择需要的,也可以右键全选。)



   
    视频压制模板选择

    压制HR-HDTV 半高清视频。以720P或1080P为片源,压制目标分辨率为960*544,可选择X264:DXVA-SD类模板,设置码率在1000-2100之间。PS:我一般设置在1200-1500K。

   压制PSP-MP4,可选择X264:Device-PSP模板,压制分辨率480*272,设置码率300-500.压制分辨率720*480,设置码率800左右.

   
   压制DVD方法:


    Ctrl+F2进入「D2V Creator」



    一般01_0.VOB为片头,如需要可以直接选择01.1.VOB。然后启动任务,任完成后自动进入AVS脚本编辑工具。





    在这里,点下Analyse...  等待完成,preview AVS script(预览AVS脚本),如果没有拉丝就可以保存了。



[ 本帖最后由 xiajianhai 于 2009-10-16 00:23 编辑 ]

[ 本帖最后由 xiajianhai 于 2009-10-23 13:23 编辑 ]
本帖最近评分记录
  • alan99107 金币 +150 辛苦了 2009-10-17 08:01
  • alan99107 +5 辛苦了 2009-10-17 08:01

TOP

0
首先感谢楼主发这样的技术帖子给我这样的新手学习,回头有不懂得的地方还请楼主不吝赐教!!

TOP

0
版主留言
xiajianhai(2009-10-29 22:49): 播放流畅,压制时很慢是吧? 应该是原视频的帧率的问题,并不是封装的问题,原视频可能有该死的D帧,试试转换帧率吧。
xia兄的教程写得不错,之前已经给红心了。昨天压片的时候遇到一个问题,不知道解决了没有。
这是欧美区的一个帖子
http://67.220.92.23/bbs/thread-2517694-1-2.html
我昨天压的就是这个,这个f4v封装的也是AVC+AAC,我写完AVS脚本,打开非常缓慢,几分钟才能打开,之前也压过一个8M 码率的1080P的视频,也没有遇到过这种情况,好不容易打开了,trim了3000到4000帧来测试,用megui载入的又是漫长的等待,加入任务的时候也卡了几分钟,压制的时候每秒只有几帧,比我之前用更高码率压的1080P视频还慢得多。
这时候我想了一个办法,用mmg将这个f4v视频重新封装为MKV,成功了,因为封装过程并没有重新编码,所以我对前后视频体积的变化感到奇怪,不知道什么原因。然后AVS脚本里加载 了这个MKV,打开很快,但是压制依然缓慢,26分钟的视频足足压了160分钟,比我之前压的那个要慢得多。不知道怎么回事。

一下是这三个视频的信息

原版1080P的f4v
复制内容到剪贴板
代码:
E:\nomoniquealec_1080.f4v
   General
      Complete name : E:\nomoniquealec_1080.f4v
      Format : f4v
      Codec ID : f4v
      File size : 811 MiB
      Duration : 26mn 20s
      Overall bit rate : 4 303 Kbps
      Encoded date : UTC 2009-09-09 18:45:53
      Tagged date : UTC 2009-09-09 18:45:53
   Video #1
      ID : 1
      Format : AVC
      Format/Info : Advanced Video Codec
      Format profile : Main@L4.1
      Format settings, CABAC : Yes
      Format settings, ReFrames : 2 frames
      Codec ID : avc1
      Codec ID/Info : Advanced Video Coding
      Duration : 26mn 20s
      Bit rate mode : Variable
      Bit rate : 3 990 Kbps
      Width : 1 920 pixels
      Height : 1 080 pixels
      Display aspect ratio : 16/9
      Frame rate mode : Constant
      Frame rate : 29.970 fps
      Resolution : 24 bits
      Colorimetry : 4:2:0
      Scan type : Progressive
      Bits/(Pixel*Frame) : 0.064
      Stream size : 752 MiB (93%)
      Title : Video
      Encoded date : UTC 2009-09-09 18:45:53
      Tagged date : UTC 2009-09-09 18:45:53
   Audio #2
      ID : 2
      Format : AAC
      Format/Info : Advanced Audio Codec
      Format version : Version 4
      Format profile : LC
      Format settings, SBR : No
      Codec ID : 40
      Duration : 26mn 20s
      Bit rate mode : Constant
      Bit rate : 128 Kbps
      Channel(s) : 2 channels
      Channel positions : L R
      Sampling rate : 48.0 KHz
      Resolution : 16 bits
      Stream size : 24.1 MiB (3%)
      Title : Audio
      Encoded date : UTC 2009-09-09 18:45:53
      Tagged date : UTC 2009-09-09 18:45:53
重新封装的1080P的MKV
复制内容到剪贴板
代码:
E:\nomoniquealec_1080.mkv
   General
      Complete name : E:\nomoniquealec_1080.mkv
      Format : Matroska
      File size : 776 MiB
      Duration : 26mn 20s
      Overall bit rate : 4 121 Kbps
      Encoded date : UTC 2009-10-28 21:13:24
      Writing application : mkvmerge v2.9.7 ('Tenderness') built on Jul  1 2009 18:43:35
      Writing library : libebml v0.7.7 + libmatroska v0.8.1
   Video #1
      ID : 1
      Format : AVC
      Format/Info : Advanced Video Codec
      Format profile : Main@L4.1
      Format settings, CABAC : Yes
      Format settings, ReFrames : 2 frames
      Muxing mode : Container profile=Unknown@4.1
      Codec ID : V_MPEG4/ISO/AVC
      Duration : 26mn 18s
      Width : 1 920 pixels
      Height : 1 080 pixels
      Display aspect ratio : 16/9
      Frame rate : 29.970 fps
      Resolution : 24 bits
      Colorimetry : 4:2:0
      Scan type : Progressive
   Audio #2
      ID : 2
      Format : AAC
      Format/Info : Advanced Audio Codec
      Format version : Version 4
      Format profile : LC
      Format settings, SBR : No
      Codec ID : A_AAC
      Duration : 26mn 20s
      Channel(s) : 2 channels
      Channel positions : L R
      Sampling rate : 48.0 KHz
      Resolution : 16 bits
我压制后封装的720P的MKV
复制内容到剪贴板
代码:
E:\nomoniquealec_720.mkv
   General
      Complete name : E:\nomoniquealec_720.mkv
      Format : Matroska
      File size : 402 MiB
      Duration : 26mn 20s
      Overall bit rate : 2 134 Kbps
      Encoded date : UTC 2009-10-29 04:09:30
      Writing application : mkvmerge v2.9.7 ('Tenderness') built on Jul  1 2009 18:43:35
      Writing library : libebml v0.7.7 + libmatroska v0.8.1
   Video #1
      ID : 1
      Format : AVC
      Format/Info : Advanced Video Codec
      Format profile : High@L4.1
      Format settings, CABAC : Yes
      Format settings, ReFrames : 3 frames
      Muxing mode : Container profile=Unknown@4.1
      Codec ID : V_MPEG4/ISO/AVC
      Duration : 26mn 18s
      Nominal bit rate : 2 100 Kbps
      Width : 1 280 pixels
      Height : 720 pixels
      Display aspect ratio : 16/9
      Frame rate : 23.976 fps
      Resolution : 24 bits
      Colorimetry : 4:2:0
      Scan type : Progressive
      Bits/(Pixel*Frame) : 0.095
      Writing library : x264 core 72 r1240 35627b6
      Encoding settings : cabac=1 / ref=3 / deblock=1:-1:-1 / analyse=0x3:0x113 / me=hex / subme=6 / psy=1 / psy_rd=1.0:0.0 / mixed_ref=1 / me_range=16 / chroma_me=1 / trellis=1 / 8x8dct=1 / cqm=0 / deadzone=21,11 / chroma_qp_offset=-2 / threads=3 / nr=0 / decimate=1 / mbaff=0 / bframes=3 / b_pyramid=0 / b_adapt=1 / b_bias=0 / direct=3 / wpredb=1 / keyint=250 / keyint_min=25 / scenecut=40 / rc_lookahead=40 / rc=2pass / mbtree=1 / bitrate=2100 / ratetol=1.0 / qcomp=0.60 / qpmin=10 / qpmax=51 / qpstep=4 / cplxblur=20.0 / qblur=0.5 / vbv_maxrate=50000 / vbv_bufsize=50000 / ip_ratio=1.40 / aq=1:1.00
   Audio #2
      ID : 2
      Format : AAC
      Format/Info : Advanced Audio Codec
      Format version : Version 4
      Format profile : LC
      Format settings, SBR : Yes
      Format settings, PS : Yes
      Codec ID : A_AAC
      Duration : 26mn 20s
      Channel(s) : 2 channels
      Channel positions : Front: L R
      Sampling rate : 48.0 KHz
      Resolution : 16 bits

TOP

0
恩 谢谢了 还可以学习新的知识 谢谢诶楼主分享

TOP

0
晕啊,看起来好麻烦一样。有没有简单一点的。

TOP

当前时区 GMT+8, 现在时间是 2024-7-12 08:18