megui吧 关注:5,463贴子:37,794

[尝试贴]从零开始简单粗暴地压制

只看楼主收藏回复

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


IP属地:上海1楼2015-07-25 11:58回复
    先说一直被人诟病的AVSWriter
    我觉得这款软件有一个好处就是AVS基础入门
    说人话就是至少让人知道了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来使用)
    另外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,中文叫“多试试”(怎么可能),能用好这个的肯定能在微软技术部门谋得一席之地,相对VISTA\7\8而言,在XP环境下出错几率会少一些,至于原因么MR大神有指教过,我虽然理解了一点但(用自己的话就)表达不好,就以以“兼容性问题”为借口搪塞一下
    ConvertToYV12()
    ——转换色彩空间,一般用不到
    Crop(0,0,0,0)
    ——主要是切边用的,括号里为左上右下的顺序,(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")
    ——这个不知道是干什么的


    IP属地:上海2楼2015-07-25 12:43
    收起回复
      其实一般仅仅用于简单粗暴内嵌的AVS哪有那么长
      列举一个比较万能的AVS
      LoadPlugin("D:\software\MeGUI\tools\ffms\ffms2.dll")
      LoadPlugin("D:\software\MeGUI\tools\avisynth_plugin\VSFilter.dll")
      video=FFVideoSource("aa.mkv",fpsnum=30000,fpsden=1001).LanczosResize(1280,720).Textsub("aa.ass")
      audio=FFAudioSource("aa.mkv")
      AudioDub(video,audio)
      第一行加载了ffms2.dll,是为了第三行和第四行能用FFVideoSource和FFAudioSource
      第二行我不知道是干嘛用的
      FFMS可以加载MKV、MP4、AVI,甚至包括部分FLV,有些不常见的格式都至少可以用来尝试一下
      “fpsnum=30000,fpsden=1001”是指29.970帧率,23.976的话把30000换成24000,用来指定成品的帧率,不改变的话直接省略不写。另外我真的不知道那两个英文单词是啥意思
      分辨率不修改的话也可以不写
      所以在不改分辨率和帧率的情况下,可以缩减成这样
      LoadPlugin("D:\software\MeGUI\tools\ffms\ffms2.dll")
      LoadPlugin("D:\software\MeGUI\tools\avisynth_plugin\VSFilter.dll")
      video=FFVideoSource("aa.mkv").Textsub("aa.ass")
      audio=FFAudioSource("aa.mkv")
      AudioDub(video,audio)
      我会告诉你不加字幕的话还能再缩减吗?
      最后一行是指视频音频混流,在这个例子中,没有这一行是会出错的


      IP属地:上海3楼2015-07-25 12:51
      收起回复
        除了上面所说的FFMS,说一下常见格式的滤镜
        LWLibavVideoSource("aa.mkv")
        LSMASHVideoSource("aa.mp4")
        AVIsource(“aa.avi”)
        注意,不管是逗号、引号还是括号,均为半角英文


        IP属地:上海4楼2015-07-25 12:53
        收起回复
          说一下改帧率的滤镜
          以下这段话应该就是复制的逝雪大神的原话
          AssumeFPS(改参数滤镜)
          ChangeFPS(插帧滤镜)
          ConvertFPS(blending滤镜-blend是模糊功能)
          assumefps不改变总帧数,调整的是帧间隔时间,视频时长改变
          changefps抽取或添加帧,不改变时长,改变总帧数,由于一段内的几帧帧间画面被改变,会出现卡顿。convertfps计算两帧差值生成融合帧,不改变时长,改变总帧数,由于一些帧是计算出来的,会出现某帧虚影边缘模糊等现象。所以逐行画面fps不要蛋疼的去动它
          两种表达方式,以29.970为例
          AssumeFPS(30,1,true)
          AssumeFPS(30000,1001)


          IP属地:上海5楼2015-07-25 12:56
          回复
            现在说一下什么是帧率、码率、分辨率
            eh……
            大陆请自行百度,大陆以外请谷歌或当地合法的搜索引擎
            善用搜索引擎是学习各种技能的好方法


            IP属地:上海6楼2015-07-25 12:58
            收起回复
              说实话压制这东西没办法做到简单粗暴....
              除非二压别人的压制源
              就算是不玩EP自己去处理 DVD HDTV BD 这些东西需要补的知识太多了最常见的就是隔行扫描到逐行扫描
              很多人都知道1080P的分辨率是1920*1080 但是并不知道这个P的含义
              假如遇到的是1080I的视频 用处理1080P的所谓的模版那不是作死是什么?
              要压制视频 首选还是要了解片源和了解自己的需求 也就是想把这个片源处理成什么样
              一句话隔行扫描必须死(好在4K标准下已经没有隔行扫描了)


              IP属地:广东8楼2015-07-25 13:07
              回复(6)
                8楼大神提到了P和I的概念
                我简单的理解就是1080P是逐行扫描视频,1080I是隔行扫描视频
                这俩概念请自行百度
                隔行常见于TS、DVD、BD等片源,但常见不等于全是
                另外也有遇到过明明标有P却实际是I、或反过来的情况,所以强调具体片源具体分析
                反交错略高级,再议


                IP属地:上海9楼2015-07-25 13:19
                回复
                  megui关于音频的剪辑方法也还是有的
                  工具--avs切割器--选定切割区间--保存为clt文件
                  工具--音频切割器
                  这样操作就是无损切割
                  另外选定切割区间需要轴知识
                  一个好的压制一定至少也是个熟练的时间轴
                  轴压不分家


                  IP属地:上海11楼2015-07-25 13:24
                  收起回复
                    关于AVS的部分讲了很多很多,因为这部分非常非常地重要,不会用avs将至少在megui这个软件的使用上困难重重寸步难行
                    而megui部分想说明的部分就很快了


                    IP属地:上海12楼2015-07-25 13:26
                    回复

                      编码设置“配置”

                      编码模式需要勾选“显示高级设置”才会有那么多项可选
                      我以主楼所提到的大神们的名义推荐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,但绝不可能超越片源地码率
                      补充一点
                      每一次的压制都是有损的,码率无法补足,只要不扩大尺寸,码率只会随着压制次数的增多而越来越小


                      IP属地:上海13楼2015-07-25 13:38
                      收起回复
                        一键编码时,记得要选择“没有目标的大小”

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


                        IP属地:上海14楼2015-07-25 13:42
                        收起回复
                          反交错这事情太复杂了,视觉效果就是有横纹(我喜欢称之为百叶窗)——也许这么表述是错的,具体请自行百度“交错”或“反交错”等
                          5烂2用肉眼不太容易看出来,需要megui预览逐帧浏览,表现形式为3帧好、2帧坏——在坏的那一帧会有横纹)
                          帧帧烂就容易的多了,尤其是在画面人物有明显动作的时候,逐帧观看是每一帧都坏
                          以下这段话是我直接复制的(经过整理的部分的)大神的原话:
                          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


                          IP属地:上海15楼2015-07-25 13:49
                          收起回复
                            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的交错类型
                            dgindexnx得到的不是d2v,而是dgi,别的没看出有啥区别
                            DGSource("aa.dgi")
                            qtgmc(preset="fast",fpsdivisor=2)
                            ——这个例子默认为帧帧烂的交错类型。qtgmc默认翻倍,如果视频源是29.970的话,fpsdivisor=1就是49.940(可以省略不写,默认为1),fpsdivisor=2就是回到29.970
                            至于哪个好么,我不清楚,反正如果是寻常番组的话,我肯定会写2,如果是水着PV的话,我肯定会写1……


                            IP属地:上海16楼2015-07-25 14:03
                            收起回复
                              另外不管是DVD还是TS,都会遇到另一个视频比率问题,sar值
                              体现在于播放的时候看起来是16:9,而查看视频信息则是4:3
                              比如看起来是1920:1080的,视频信息是1440:1080
                              再比如看起来是848:480的,视频信息是640:480
                              sar有正规的处理方法,有一行公式
                              源高x目标比率(比如16:9)=源宽xSAR
                              1080x16/9=1080xSAR,求SAR的值(以分数表示)
                              这个我真的不在行,所以不多说了
                              我说的是另一个变通方法——但前提记得这个方法是错误的处理方法
                              就是在AVS里强行更改为视觉尺寸,好处是配字幕时不用再考虑比例问题了——16:9的字幕在4:3的视频里,字体的视觉效果会被压扁,受影响的应该还不止这个
                              坏处是增大了码率,很多信息点都是被计算出来的
                              强调一下,这是个错误地方法,虽然我一直都是这么干的……


                              IP属地:上海17楼2015-07-25 14:14
                              收起回复