[教程] MeGUI - 从零开始学会转码 - 基础教程 171017更新

[复制链接]
查看37 | 回复17 | 2019.10.2 13:31 | 显示全部楼层 |阅读模式

百度贴吧 https://tieba.baidu.com/f?kw=megui


前言

在megui吧到处乱窜,总是被人误认为大神
其实那都是签到、初期提问、以及让人别用DSS水出来的
真正的大神是sherry22422、MeteorRain_1、猪栏有只牛、OMG我的天啊GMO、秋本辉等,小神终极百百,以及其他我拼不出来的ID、或暂时想不起来的诸位
以上这些大神教了我很多,虽然平均10句中有9句是我听不懂的,白费了他们一番教导
看到太多新人问由于DSS产生的问题,所以索性开个教学贴,也许有些依然是错误的,但至少能出个看起来还过的去的成品
另外我想说会内嵌真的不能算入门

希望各位新手能从头看到尾至少一次,不管能否看懂,先留个印象,以后遇到了问题会知道大概可以如何解决,再有针对性地去找相应教程,也可以省下少许到处问询的时间


目录

00A-前言
00B-安装程序和相关网站
01-avs基础解析
02-万能avs-A
02-万能avs-B
03-有关帧率、码率、分辨率
04-剪辑Trim
05-关于逐行隔行
06-提取音频
07-使用megui无损音频剪辑
08-视频、音频混流
09-megui的简单配置
10-关于反交错A(简单理论)
10-关于反交错B(傻瓜avs模板)
11-sar
12-加图片logo-A
12-加图片logo-B
13-10bit片源
14-ISO及TS制作教程A
14-ISO及TS制作教程B
14-ISO及TS制作教程C
14-ISO及TS制作教程D



按照回帖依次观看









https://www.loadream.com
admin | 2019.10.2 13:33 | 显示全部楼层
必备软件
Avisynth 2.60 32-bit
http://avisynth.nl/index.php/Main_Page

Microsoft .NET Framework 3.5(包括了2.0+3.0)
(win7以上系统请自行搜索安装方法)

Megui https://www.loadream.com/forum-MeGUI-1.html

完美解码
http://jm.wmzhe.com/

Microsoft Visual C++ 2015 Redistributable Package x86
https://go.microsoft.com/fwlink/?LinkId=615459


推荐收藏以下网址
必应搜索引擎
http://cn.bing.com/
(娱乐搜百度,专业可以选必应)

捏咪咪论坛
https://www.nmm-hd.org/
(压制爱好者论坛)

Avisynth wiki
http://avisynth.nl/index.php/Internal_functions
(可以搜索和下载很多avs用滤镜,包括各自依赖的程序)


https://www.loadream.com
回复

使用道具 举报

admin | 2019.10.2 13:33 | 显示全部楼层
安装avisynth2.60,需要.net2.0作为基础支持,可以直接装个.net3.5(包含了2.0和3.0),不同系统有不同的安装方法,按需搜索

安装完成后,建立一个txt的文本文件,然后改扩展名为avs,一个空内容的avs脚本就建成了
打开方式是用文本文件的形式打开

说说一直被人诟病的AVSWriter
我觉得这款软件有一个好处就是至少让人知道了avs的样子,但却也敌不过不肯仔细观察其用法的懒人
贴吧里很随意地找了个用该软件自动生成的范本来解读一下


LoadPlugin("E:\YPDY\AVSWriter\dll\VSFilter.DLL")
LoadPlugin("E:\YPDY\AVSWriter\dll\DGDecode.DLL")
LoadPlugin("E:\YPDY\AVSWriter\dll\DeComb.DLL")
LoadPlugin("E:\YPDY\AVSWriter\dll\TomsMoComp.DLL")
LoadPlugin("E:\YPDY\AVSWriter\dll\Gradfun2db.DLL")
LoadPlugin("E:\YPDY\AVSWriter\dll\UnDot.DLL")

——以上的诸行loadplugin就是加载各种滤镜,但如果把这些*.dll文件放在“\(AviSynth 2.6安装目录)\plugins”下,就完全可以省略
VSfilter.dll是字幕滤镜,有了它才能使用TextSub加载字幕(拥有更多一点字幕效果的为VSFiltermod.dll,配合TextSubMod来使用,但极度不推荐,因为太拼RP)
另外5行老实说我不知道干吗的


DirectShowSource("E:\XZ\The.Last.Ship.S02E06.720p.HDTV.X264-DIMENSION[EtHD]\The.Last.Ship.S02E06.720p.HDTV.X264-DIMENSION.mkv",23.976,convertFPS=True)
——DirectShowSource,就是我们通常说的DSS,中文叫“多试试”(怎么可能)
有关DSS为什么不要用,请看下面这个帖子
https://www.nmm-hd.org/newbbs/viewtopic.php?f=5&t=1920

ConvertToYV12()
——转换色彩空间,一般用不到
Crop(0,0,0,0)
——主要是切边用的,括号里为左上右下的顺序,(2,2,-2,-2)就是四条边皆切掉2个像素,且必须是2的倍数


AddBorders(0,0,0,0)
——与crop相反,是加,默认是加黑边

LanczosResize(1280,720)
——修改尺寸,建议是能整除16的偶数

TextSub("E:\XZ\The.Last.Ship.S02E06.720p.HDTV.X264-DIMENSION[EtHD]\S02E06.srt")
——这个不知道是干什么的→_→


程序读取AVS一般是按照从上到小的顺序来进行的
比如必须先加载VSFilter.dll再写TextSub
反过来则报错,不能加字幕,认不出什么是TextSub

关于#的运用
“#”之后所有的文字都不会系统读取,比如你可以在“#"后写“国足解散”
#可以作为备注,或暂时不被加载来对比效果等
看如何活用了


https://www.loadream.com
回复

使用道具 举报

admin | 2019.10.2 13:34 | 显示全部楼层
其实一般仅仅用于简单粗暴内嵌的AVS哪有那么长
列举一个比较万能的AVS
滤镜名为LWL,需要L-SMASH滤镜包,包含了好几个dll,把这些dll全都放进自动加载目录方便日后使用
基本avs格式
video=LWLibavVideoSource("aa.mkv").LanczosResize(1280,720).Textsub("aa.ass")
audio=LWLibavAudioSource("aa.mkv")
AudioDub(video,audio)

LWL可以加载MKV、MP4、AVI、VOB、TS、M2TS等各种格式,有些不常见的格式都至少可以用来尝试一下
最后一行是指视频音频混流,在这个例子中,没有这一行是会出错的

如果不变更分辨率、不内嵌字幕,可以缩减成这样
video=LWLibavVideoSource("aa.mkv")
audio=LWLibavAudioSource("aa.mkv")
AudioDub(video,audio)

使用该模板千万不要自作聪明的分行,以及注意Textsub等参数之前必须存在的小圆点

最后注意,在音频区请不要选择“NERO”开头的格式,能有效降低出错的几率(最好不要用megui来处理音频)



再列举一个对可变帧率有奇效的滤镜FFMS
这个滤镜需要ffms2.dll,用FFVideoSource和FFAudioSource来加载片源

video=FFVideoSource("aa.wmv",fpsnum=30000,fpsden=1001)
audio=FFAudioSource("aa.wmv")
AudioDub(video,audio)

“fpsnum=30000,fpsden=1001”
fpsnum= fps numerator帧率分子
fpsden= fps denominator帧率分母
这里是指定29.970帧率,23.976的话把30000换成24000,用来指定成品的帧率,不改变的话直接省略不写
如此一来就可以把可变帧率变为恒定帧率,但这种方法仅限于FFMS,在LWL里没有这2个参数

FFMS同样可以加载各种格式,是LWL出来前的多功能滤镜,现在因为不再更新而被LWL淘汰



https://www.loadream.com
回复

使用道具 举报

admin | 2019.10.2 13:35 | 显示全部楼层
有关帧率、码率、分辨率

大陆请自行百度,以外请谷歌或当地合法的搜索引擎
善用搜索引擎是学习各种技能的好方法

说一下改帧率的滤镜
以下这段话应该就是复制的逝雪大神的原话

AssumeFPS(改参数滤镜)
ChangeFPS(插帧滤镜)
ConvertFPS(blending滤镜-blend是模糊功能)

assumefps不改变总帧数,调整的是帧间隔时间,视频时长改变
changefps抽取或添加帧,不改变时长,改变总帧数,由于一段内的几帧帧间画面被改变,会出现卡顿。convertfps计算两帧差值生成融合帧,不改变时长,改变总帧数,由于一些帧是计算出来的,会出现某帧虚影边缘模糊等现象。所以逐行画面fps不要蛋疼的去动它


两种表达方式,以29.970为例
AssumeFPS(30,1,true)
AssumeFPS(30000,1001)


https://www.loadream.com
回复

使用道具 举报

admin | 2019.10.2 13:35 | 显示全部楼层
关于剪辑参数Trim的使用
Trim(0,0)是指从头到尾——等于没剪一样,第一个0是指第一帧,后一个0是指最后一帧
想切100-200就是Trim(100,200)
如果想切多段再合并——适用于剪掉广告
Trim(0,100)+Trim(200,300)+Trim(400,0)
想从100帧开始切100帧就是Trim(100,-100)
还请各种活用

关于合并不同视频的模板
1.
A=FFVideoSource("aa.mkv")
B=FFVideoSource("bb.mkv")
video=A+B
return video

2.
A=FFVideoSource("aa.mkv")
B=FFVideoSource("bb.mkv")
A+B

3.
FFVideoSource("aa.mkv")+FFVideoSource("bb.mkv")

这3种方法都可以,不需要片源格式相同,但想要合并必须保证视频尺寸、帧率完全相同
有时候看视频信息明明都是同一个帧率,为什么提示报错,那是因为也许小数点后10位会不同,所以一般都直接指定各片源的目标帧率


https://www.loadream.com
回复

使用道具 举报

admin | 2019.10.2 13:36 | 显示全部楼层
关于逐行隔行

简单的理解就是1080P是逐行扫描视频,1080I是隔行扫描视频
这俩概念请自行大陆百度、以外谷歌

隔行常见于TS、DVD、BD等片源,但常见不等于全是
另外也有遇到过明明标有P却实际是I、或反过来的情况,所以强调具体片源具体分析

反交错略高级,再议

https://www.loadream.com
回复

使用道具 举报

admin | 2019.10.2 13:36 | 显示全部楼层
megui虽然可以简单处理音频,但并非用来处理音频的,所以将来最好还是走视频音频分开处理,或只处理视频、不处理音频的正规程序

以LWL为例
LWLibavVideoSource("aa.mkv")
#没错,就一行,这就是所谓的裸压

以eac3to为工具提取音频,此程序在megui\tools\eac3to下
(此处请先自行百度什么是“命令行”)
新建一个txt,后缀名改为bat,以文本方式打开,输入如下命令格式
eac3to.exe 片源 轨道号:输出音频

例:
"路径\MeGUI\tools\eac3to\eac3to.exe" "D:\Temp\Megui\44\VTS_01_1.vob" 2:"D:\Temp\Megui\44\VTS_01_1.ac3"
pause

如图06

06.jpg

注意引号都是英文的,最后的音频格式请根据实际情况来调整,此例为ac3

也可以使用mkvtool来进行分离(以及最后的封装)




https://www.loadream.com
回复

使用道具 举报

admin | 2019.10.2 13:37 | 显示全部楼层
07-使用megui无损音频剪辑

megui关于音频的剪辑方法也还是有的,并且可能是megui对音频唯一有用的功能了
工具--avs切割器--选定切割区间--保存为clt文件
工具--音频切割器
这样操作就是无损切割(支持部分格式,flac不行)

另外选定切割区间需要轴知识
一个好的压制一定至少也是个熟练的时间轴
轴压不分家

具体操作参见教程14-C的实例

https://www.loadream.com
回复

使用道具 举报

admin | 2019.10.2 13:38 | 显示全部楼层
08-视频、音频混流

在02-万能avs中,介绍的avs是包括了对视频、音频的处理以及混流的一步到位的操作
然而事实上音频在很多时候都是不做处理的,哪怕设置了相同的格式和码率,依然会有个重编码的过程,既然有了重编码,必然会发生改变,只是一般人并不能发觉这种感觉

视频和音频分开处理,实则单处理视频部分,音频提取后,再与压制完的新视频重新混流合并在一起,形成最终的成品

02的avs简化成这一行
LWLibavVideoSource("aa.mkv")
#这其实就是所谓的裸压

如图08-A,megui的视频加载区
avs拖曳进第一行(avisynth脚本),megui会自动加载并弹出预览(可关闭预览),点击右下角队列就会出现在队列里,在队列部分选中,点击左下角部分开始就会进行压制

08-A.jpg

为了便于识别,可在视频输出条目中更改输出名字,比如我一般会在文件名后加上temp

压制完进行混流,混流器在工具——混流器中可选,MP4容器对音频的兼容度小,MKV容器则基本都能兼容
如图08-B

08-B.jpg

仔细观察,视频和音频的文件名是一样的!
其实音频可以不提取,直接把片源拖入音频区即可,混流的时候程序会自动提取片源的音频,跟压制完的temp重新混流为新的成品

那为什么之前还要介绍如何提取音频呢?因为这种方法不适合ts格式和vob\m2ts光碟格式



https://www.loadream.com
回复

使用道具 举报

admin | 2019.10.2 13:38 | 显示全部楼层
09-megui的简单配置

参看图08-A和09-A

09-A.jpg

点击08-A中的配置按钮,进入megui最基本的配置页面
编码模式需要勾选“显示高级设置”才会有那么多项可选
我以主楼所提到的大神们的名义推荐const.quality模式,默认选23

常用的编码模式有两种,auto2pass和const.quality,简单说一下区别
auto2pass——恒定码率,默认为2000,就是不管什么画面,一律喂平均2000码率,具体理论我不懂,比较直观地体现就是一部电视剧或动漫,每一集的体积都是一样的(比如200M),那肯定是auto2pass做出来的
const.quality——恒定质量,大神们俗称crf,会根据实际画面的需要来喂码率,画面激烈的就多喂一点,平静的就少喂一点,电视剧每一集的体积都不同,甚至会差别很大。crf取值范围为0-50(但megui是18-26),数值越低画质越高,具体取值多少根据画面、经验(以及欲望)决定,比如水着PV我就会强行给高一点什么的……

思考:一个人一袭白色长裙原地不动的抒情慢歌,和一群人五颜六色不同的衣服劲歌热舞,所需要的码率会是一样的吗?


两者的综合比较:
同一个片源用auto2pass-2000码率来压制,那码率就会是2000,甚至可能片源都没有那么高地码率
而如果用crf23来压制,码率有可能是1500,也有可能是2500,但(正常情况下)绝不可能超越片源地码率,每一次的压制都是有损的,码率无法补足,只要不扩大尺寸,码率只会随着压制次数的增多而越来越小

在调谐可以根据片源的类型进行选择,三次元的选电影,二次元的选动漫

自动编码时,记得要选择“没有目标的大小”(见图09-B)

09-B.jpg

关于这个也可以在megui的选项配置中进行设置以一劳永逸
不选这个的话,10M视频也可以给你压制到200M


https://www.loadream.com
回复

使用道具 举报

admin | 2019.10.2 13:39 | 显示全部楼层
10-关于反交错A(简单理论)

反交错这事情太复杂了,视觉效果就是有横纹(我喜欢称之为百叶窗)——也许这么表述是错的,具体请自行百度“交错”、“反交错”、“胶卷过带”、“反胶卷过带”等
5烂2用肉眼不太容易看出来,需要megui预览逐帧浏览,表现形式为每5帧中,123帧好、45帧坏——在坏的45帧会有横纹
帧帧烂就容易的多了,尤其是在画面人物有明显动作的时候,逐帧观看是每一帧都坏


以下这段话是我直接复制的(经过整理的部分的)大神的原话:
MeGUI默认的反交错方案是IVTC
这种方案的特点就是每5帧删去1帧,所以帧率就从30变成24,29.970变成23.970
avs脚本中,tfm().tdecimate()就是做IVTC的滤镜
如果要保持住30,就在tdecimate里指定参数hybrid=3

tfm要加载TIVTC,QTGMC要加载QTGMC。后者要另下
tivtc是dll后缀,load加载,qtgmc后缀是avsi,import加载

hybrid——强制转换帧率
1=24
2貌似没有
3=30


MPEG2-ts用dgindex,avc-ts用dgnv,没有n卡用LwLibavVideoSource,都是非常好的source
tfm+tdecimate是做ivtc的,qtgmc是做deinterlace的。如果你的源是24t的,做ivtc。如果源是30i的,做deinterlace

https://www.loadream.com
回复

使用道具 举报

admin | 2019.10.2 13:39 | 显示全部楼层
10-关于反交错B(傻瓜avs模板)

DVD一般都是5烂2的,BD我不清楚
DVD要在镜像里找到vob文件并分辨出其中的主要视频文件,而BD则去找m2ts文件,TS文件就是其本身

没有N卡的用dgindex进行分析(在megui\tools\下),有N卡的用dgindexNX(需要破解)
dgindex分析vob文件,并且在分析前就可以对多段vob进行一起添加,整理好先后顺序,确认勾选上audio(一般是默认,不愿意分析提取就去掉),选择“save project and demux Video”进行分析
会得到若干文件,比如音频文件、d2v纯视频文件,索性文件等
AVS例子:
LoadPlugin("D:\software\Megui\tools\dgindex\DGDecode.dll")
DGDecode_mpeg2source("D:\Temp\Megui\140527てもでもの涙 (松冈 森保)\140527.d2v", info=3)
tfm().tdecimate()
——这个例子默认为5烂2的交错类型
tfm负责把5烂2变成5重复1
tdecimate负责把5重复1变成4
如果偶尔遇到了本身就是5重复1的片源,那就只要写tdecimate()即可

dgindexnx得到的不是d2v,而是dgi,别的没看出有啥区别
DGSource("aa.dgi")
qtgmc(preset="fast",fpsdivisor=2)
——这个例子默认为帧帧烂的交错类型。qtgmc默认翻倍,如果视频源是29.970的话,fpsdivisor=1就是59.940(可以省略不写,默认为1),fpsdivisor=2就是回到29.970
至于哪个好么,我不清楚,反正如果是寻常番组的话,我肯定会写2,如果是水着PV或激烈舞蹈的话,我肯定会写1…

https://www.loadream.com
回复

使用道具 举报

admin | 2019.10.2 13:40 | 显示全部楼层
11-sar

不管是DVD还是TS,都会遇到另一个视频比率问题,sar值
体现在于播放的时候看起来是16:9,而查看视频信息则是4:3
比如看起来是1920:1080的,视频信息是1440:1080
再比如看起来是848:480的,视频信息是640:480
sar有正规的处理方法,有一行公式
源高x目标比率(比如16:9)=源宽xSAR
1080x16/9=1080xSAR,求SAR的值(以分数表示)
这个我真的不在行,所以不多说了

常用sar值
1080P-4:3
480P-32:27
megui更改sar的选项如图11

11.jpg

另一个变通方法——但前提记得这个方法是错误的处理方法
就是在AVS里强行更改为视觉尺寸,好处是配字幕时不用再考虑比例问题了——16:9的字幕在4:3的视频里,字体的视觉效果会被压扁,受影响的应该还不止这个
坏处是增大了码率,很多信息点都是被计算出来的
强调一下,这是个错误地方法,虽然我一直都是这么干的……
处理顺序是先反交错,再改尺寸

https://www.loadream.com
回复

使用道具 举报

admin | 2019.10.2 13:42 | 显示全部楼层
12-加图片logo-A

对于刚接触megui和avs的人来说就要加logo,只能说无知者无畏了

movie = LWLibavSource("E:\[SDS].avi")
——载入影片

logo = ImageSource("C:\Documents andSettings\Magic_Babys_\My Documents\My Pictures\kakashi02\01.png")
——读入图像

movie.Trim(0,50)+overlay(movie.Trim(51,100),logo,20,20)+movie.Trim(101,0)
——图片显示的时间
截取0~50帧,后接,截取51~100帧叠加logo,后接,截取101~最后一帧。合并输出
先把视频分成0-50、51-100、100-最后这三段,然后在中间一段叠加logo(标记为新51-100),最后把0-50、新51-100、100-最后这三段合并。
其中“overlay(movie,logo,20,20)”是图片显示的位置



12-加图片logo-B

原链接挂了。。。

用ass字幕的方式内嵌静态图片logo,Vmoe组的大神们玩起特效来可是很厉害的!

但这种方法很拼RP,会遇到mod固有的bug
对此我只想说——请放弃任何需要用到mod才能表现的特效



https://www.loadream.com
回复

使用道具 举报

admin | 2019.10.2 13:43 | 显示全部楼层
13-10bit片源

随着科技的发展,10bit已经越来越多
直接加载会预览花屏,此时需要在加载时进行一下转换
以下是例子

LWLibavVideoSource("aa.mkv",format="yuv420p8")
——重点就在于format=吧啦吧啦这个部分


https://www.loadream.com
回复

使用道具 举报

admin | 2019.10.2 13:44 | 显示全部楼层
ISO及TS制作教程

先看一下DVD的文件结构(图14-A)

14-A.jpg

首先我们需要知道真正的视频文件是什么
vob格式就是视频文件,这张图里有3个
注意体积会发现有一个只有224K,那就可以无视之
当然你也可以把它拖入播放器里看看是什么
另外两个看起来像是视频体积的,确实就是我们真正需要的

鉴于手上一时没有BDISO,所以就只是说一下,去找m2ts格式的文件
而TS呢,就是它本身

没有N卡的人,可以直接用LWLibavVideoSource(*.*)来挂载以上三种格式

也可以用\MeGUI\tools\dgindex\来解析成d2v文件

这里重点图文介绍使用N卡的转码过程——为什么是N卡,因为我用惯了




打开DGindexNV——File——Open——add——选中vob——ok(图示14-B)

14-B.jpg

*DGindex过程完全一样

去掉audio——audio demux前的勾
(DGindex稍微多2个步骤)

File——save project——保存为dgi格式解析文件
(DGindex保存为d2v)

用eac3to自行提取音频(教程06)



处理视频部分,连带着讲Trim
手写avs如下
DGSource("VTS_01_1.dgi")
或DGDecode_mpeg2source("VTS_01_1.d2v")

对,就一行,载入megui看预览,如果出错了,那就是没有把需要的dll放到avisynth\plugins下,请根据实际提示操作

我需要截取其中的10m17s-15m06s的片段
找到对应时间帧为(18573,27155)

打开megui——avs切割器,读取上文提到的这个avs,添加这个区间,保存为clt文件(如图14-D,图中数据无关)

14-D.jpg

打开megui——音频切割器,选中之前提取出的音频文件,选择刚刚生成clt文件,选择输出路径和文件名,加入队列,然后去队列里完成该任务,得到所需的音频片段
这个方法并不适用于所有音频(比如flac)

第二种方法如图14-D2


14-D2.jpg

逐帧预览画面,会发现一个规律,要么是每5帧一个循环,123好,45坏;或者每一帧都是坏的(如图14-E)

14-E.jpg

也有一些两者混合型的或其它更罕见的组合,只能见招拆招了

如果是5烂2的,加上这一句
tfm().tdecimate()

如果是帧帧烂的,加上
qtgmc(preset="fast",fpsdivisor=2)
可能需要另外安装QTGMC 3.33 + Requirements才能使用

同时我们注意到上下有黑边,可以使用crop命令来切掉

于是avs变成了这样
DGSource("VTS_01_1.dgi")
Trim(18573,27155)
tfm().tdecimate()或qtgmc(preset="fast",fpsdivisor=2)
crop(0,34,0,-34)

另外别忘了根据需要设置合适的sar

接下来,加入队列,得到的纯视频再和之前已经得到的纯音频,用MP4或MKV混流器进行混流封装,就完成了

以上,enjoy yourself


https://www.loadream.com
回复

使用道具 举报

admin | 2019.10.5 01:52 | 显示全部楼层
convertfps(25)
帧混合
https://www.loadream.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

1640

主题

2052

帖子

272

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
272

最佳新人活跃会员热心会员推广达人宣传达人灌水之王突出贡献优秀版主荣誉管理论坛元老