民浩

 

【高清视频压制教程】使用MeGUI压制视频教程(以PSP视频为例)(转载)

工具安装篇

一、所需工具以及环境
MeGUI、 NeroAAC、 完美者解码、Avisynth 2.5.8

运行环境需求:Microsoft .NET Framework 2.0以上(win7用户不用考虑)

一、安装
先安装完美者解码文件关联为音频视频全部、win7用户建议用完美者全部关联后再用自带播放器设置全部关联(此外不建议安装其他视频音频解码软件)
官方下载地址:度娘吞 没的法
这个中文安装就自己搞定吧
接下来安装AviSynth 2.5.8
当然也可以安装2.6.0版本
2.5.8有32/64位独立版本
现使用32位2.5.8版本(本人系统64位,因AVS 64位版本才出不久未详细测试,理论上支持更快渲染预览)
官方下载地址:搜索AviSynath
关于AviSynth 可参考百度百科http://baike.baidu.com/view/155915.htm

OK

I Agree


Full(当然也可以默认) Next

安装位置自定义 Install

Next


Finish
 
重点MeGUI的安装
下载地址:
115.COM/file/belcznoc#
MeGUI_0.3.5_x86_Installer_OfflinePackage.rar
如果对英文实在头疼的同学文章末尾提供该软件的汉化补丁
 

Next


I Agree



安装位置自定义 Install

Finish
接下来启动MeGUI 完成升级

第一次运行时会弹出这个窗口 选择是(Y)启动升级 建议保证网络的畅通
或者

Option>Update选择升级

弹出窗口 默认全选 Update
升级过程中会弹出这个窗口 右键 全选

Import
接下来会弹出这个

Overwrite profile
再次弹出这个 方法同上

接下来 程序会重启 安装升级补丁

选择是(Y)
该过程 有些电脑会很慢
重启后弹出新窗口

选择是(Y)安装刚刚下载的补丁

直接点Update


这个提示需要 neroAacEnc 点入会去官方下载 需要注册邮箱等很麻烦点否(N)
这里提供下载地址115.COM/file/an90neu0#
NeroAACCodec-1.5.1.zip
 

这个方法如上

这个也是 Import

接下来程序会重启 应用补丁 选 是(Y)
再次弹出


选择否(Y)两次
关闭 MeGUI 打开安装目录
打开NeroAACCodec-1.5.1
下载地址:115.COM/file/an90neu0
NeroAACCodec-1.5.1.zip

打开D:\Program Files (x86)\MeGUI\tools\eac3to(MeGUI安装目录的eac3to文件夹)
将压缩包win32文件夹下

NeroAacEnc.exe 拖出至D:\Program Files (x86)\MeGUI\tools\eac3to
目录下
再次启动MeGUI

选择 Option>Settings

线程级别改为Normal 点Save


64为系统已默认选择X264 64位版
至此 软件 安装配置等 结束。
需要 MeGUI 汉化补丁的点这里
115.COM/file/belczoty
替换 原英文MeGUI.exe 即可(记得备份英文版)
AVS教学篇
本人不是老鸟 高手请多指教

接下来是关于avs脚本的教学 当然网络上也有avswriter等工具
这里介绍的是用记事本编写avs脚本的操作
不想做细致研究的请直接复制代码
此代码是压制480P PSP用
需要对中文部分稍作修改

LoadPlugin("安装路径\MeGUI\tools\avisynth_plugin\ColorMatrix.dll")
LoadPlugin("安装路径\MeGUI\tools\avisynth_plugin\Decomb.dll")
LoadPlugin("安装路径\MeGUI\tools\avisynth_plugin\TomsMoComp.dll")
LoadPlugin("安装路径\MeGUI\tools\avisynth_plugin\UnDot.dll")
LoadPlugin("安装路径\MeGUI\tools\avisynth_plugin\VSFilter.dll")

DirectShowSource("视频路径",视频原帧率,audio=true,ConvertFPS=True)
ColorMatrix(mode="Rec.709->Rec.601")这行如果是 720P以上视频转480P就去掉
ConvertToYV12()

TextSub("字幕路径")
LanczosResize(704,480)
AddBorders(8,0,8,0)
完成后将 该txt文件改成avs文件 文件名字为生成视频的名字
注:PSP播放480P视频 屏幕左右缺少8像素会使480P视频不完整
LanczosResize(704,480)缩放
AddBorders(8,0,8,0)左右添加8像素黑边
ConvertToYV12() 转换色彩编码 防止某些解码不能

例子:
需要细致研究的继续 想直接压制的请跳转MeGUI配置篇
 
各种命令
LoadPlugin()  加载插件
如:
LoadPlugin("安装路径\MeGUI\tools\avisynth_plugin\VSFilter.dll")加载字幕插件
用来支持 ass等特效字幕压制
LoadPlugin("安装路径\MeGUI\tools\avisynth_plugin\UnDot.dll")
降噪滤镜如果需要降噪操作则需调用此插件 加载不操作无影响

DirectShowSource()  万能调用 读取影像文件所用
DirectShowSource("视频路径",视频原帧率,audio=true,ConvertFPS=True)
Audio=true是开启音频false则去掉音频
也有Video=false去掉视频保留音频等操作 新版MeGUI已经包含此功能
ConvertFPS=True用来固定一些视频帧率段落参差不齐的问题,作用是防止转换可变桢率的RMVB和WMV时出现影音不同步。rmvb/wmv都是是浮动帧率,如果你指定帧率反而会不同步,所以不要指定fps这个数值。
一般不指定ConvertFPS帧率
视频原帧率 具体请看各种视频信息 也可以自定义帧率

其他
AVISource()  avi文件调用
mpeg2source() 用于解码DVD的mpeg2格式的视频
WAVSource("e:\vob\ss.wav") 读取wave音频
AC3SOUECE("e:\vob\ss.ac3")  读取ac3音频
MPASOURCE("e:\vob\ss.MP3")  读取mp3音频
以上由于需要各种插件支持功能已被DirectShowSource()取代

LanczosResize() 缩放滤镜
LanczosResize是BicubicResize的替代者,提供更精准、更锐利的画质。在日本普遍使用LanczosResize,欧美大多使用BicubicResize。本来是日本人开发的第三方滤镜,自AviSynth 2.05版本开始吸收为内置滤镜。
例:LanczosResize(640,480)把分辨率改变为640*480
有关缩放保持视频不变形操作请咨询搜索相关教程
同比例缩放不会变形 不同比例缩放需要填充黑边以保证视频不会变形

需要加载插件
放 大缩小:由trbarry编写的,由于对SSE进行了优化,所以速度快,效果好。替代了AviSynth中的BilinearResize。和 LanczosResize的米切尔双立方体算法不同,这个是单纯的双线性算法。LanczosResize的画质更锐利和真实,适合普通电影;而 SimpleResize的画质较柔和,适合动画。

例:LoadPlugin("SimpleResize.dll")
SimpleResize(640,480)作用与LanczosResize和BicubicResize是一样的。
Crop() 切边
为了保持比例或切除黑边,参数是整数,顺序是左、上、宽、高。

例:Crop(8,0,704,480)  左右各切去8像素

vob文件画面大小一般720×480。16:9宽银幕的都带了很大的黑边,需要裁减掉。也是avs用于vob压制的关键因素之一。裁减黑边和缩放画面是vob文件压制中很重要的因素,一般连用。对于本身就无黑边的文件直接用LanczosResize()

  16:9画面的有2种情况,请记住这几个数值,在rmvb压制中直接套用即可!

DVD变形宽银幕:640×352,608×336
电影宽银幕: 640×272
  如要将电影宽银幕的画面比列调整到640×272,avs里可以这么写:

  Crop(8,90,704,300)
  LanczosResize(640,272)

  如要将DVD变形宽银幕的画面比列调整到608×336,avs里可以这么写:

  Crop(8,64,704,352)
  LanczosResize(608,336)

  无黑边的画面的直接用:LanczosResize(512,384) 缩小同时画面强制到标准4:3

AddBorders() 加黑边
加边:给影像加黑边。参数是整数,顺序是左、上、右、下。
例:AddBorders(0,64,0,64)  就是给图像上下各加64像素的黑边

Levels()亮度滤镜
例:Levels(0,1.2,255,0,255)  调整Gamma,使画面变亮
层次:调节亮度、对比度和Gamma值 ,号隔开

Tweak()
调整:可以调节色度,饱和度,亮度,对比度。
  色度:-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。

例:Tweak(0,1,20,1)

4个浮点数分别表示:调节色度,饱和度,亮度,对比度。一般将第三个调节在0-30之间,以15-20为宜。

FadeIn ()淡入和 FadeOut()淡出
例:FadeOut(24) #影片最后24帧淡出

Trim()
截取:可以截取某段影片。参数为整数,表示需要编辑的开始帧和结束帧。
0也算一帧
Trim(0,0)表示从头放到尾
例:Trim(240,480) #截取240~480帧这一片断
算时间(换成分钟)=(帧率*秒数-1帧) /60
例:29.97帧率一分钟是1798.2帧 才用进一法后减一 为1798帧是一分钟

AudioDub()
影音合并:可以把影像和声音合并在一起。
下面是一个简单的实例:
  Video =AVISOURCE(“xxx.avi”,FALSE,“YUY2”)
Audio= WAVSOURCE(“xxx.wav”)
AudioDub(Video,Audio)    把test.avi和test.wav合并

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

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

例:写法①WavSource("test.wav").DelayAuido(0.5) # 把test.wav延迟半秒

 写法②DelayAudio(wavsource(”XXX.WAV“),-30)30的单位是毫秒,经典的解决音画同步问题。

ResampleAudio()
音频重新采样
  例:WAVSOURCE(“xxx.wav”).ResampleAudio(48000) #音频重新采样,采样率48000

AmplifydB()
左右声道的放大减小
AmplifydB(wavsource(“xxx.wav”),3,3) #左右声道放大3DB
提示 可以为负数 绝对值不要超过7

Mergechannels()
组合左声道、右声道
  例:Left=wavSource("C:\1.wav").getleftchannel
    Right=wavsource("C:\2.wav").getrightchannel
    mergechannels(Left,Right)

VobSub()
需要插件支持
Sub字幕:VobSub不但是外挂字幕的好手,内嵌字幕也是一样的强。
将字幕的2个文件test.idx和test.sub放在同一个目录下就可以了。

  例:LoadPlugin("VobSub.dll")
    VobSub("test")

也可以这样VobSub("e:\vob\ test.idx")  加载影片字幕

TextSub()
SSA和ASS字幕:这个也是VobSub自带的,可以内嵌特效字幕。

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

例2:LoadPlugin("VSFilter.dll")
   TextSub("F:\DVD\js60\js601.srt") 加载srt字幕
需要调用字幕滤镜LoadPlugin("VSFilter.dll")

色彩模式的转换
有些压缩软件不支持某些色彩模式,例如默认情况下Helix不能在YV12环境下工作,需要将DVD的YV12转为YUY2
video=ConvertToYUY2(video)
由于avs的语言规范比较宽松也可以写成
ConvertToYV12()
或者万能调用后面加. ConvertToYV12()
当然如果你装了Xvid,Helix也是可以在YV12下工作的。

有如下的转换:
ConvertToRGB32()
ConvertToRGB24()
ConvertToRGB()
ConvertToYUY2()
ConvertToYV12()

简单例子:

  AVISOURCE(“xxx.avi”)
  ConvertToYUY2()

等价于AVISOURCE(“xxx.avi”,“YUY2”)或者AVISOURCE(“xxx.avi”).ConvertToYUY2()
视频部分
到了这里 如果想直接压制的同学请下载 配置好的文件解压到
Video里文件
安装目录\MeGUI\allprofiles\x264目录下
Audio里文件
安装目录\MeGUI\allprofiles\Nero AAC目录下

115.COM/file/c24aqvf4#
PSP_AVC_480P_profile.rar

然后打开安装目录\MeGUI\update_cache下MP4Box-0.4.6-dev_20100410.zip文件


打开安装目录\MeGUI\tools\mp4box清除里面的全部文件
将压缩包内的文件全部解压到当前文件夹
要问原因就是新版的MP4BOX的引导文件PSP识别不了 如果你会修改头文件引导也可以不用这项操作 修改工具如 Atom Changer


需要了解MeGUI的同学请继续以下使用的是英文原版 使用汉化补丁的同学请对照操作
以下配置文件需要可下载
115.COM/file/belcitwf
x264_dp__PSP_480P.rar
再次了解avs

让我们看一个最简单的用于处理视频的avs 脚本,
DirectShowSource("C:\test\Terminator\The.Terminator.BDRe.x264.mkv",23.976,audio=false)
textsub("C:\test\Terminator\The.Terminator.BDRe.x264.srt")
LanczosResize(480,256)
以上使用到的avs 函数包括,
DirectShowSource("source",fps,audio=false,video=false)
加载片源函数,有多个参数可调."source"即是片源的路径,fps 为片源的帧速,audio/video=false 为强制屏蔽音频流/视频流,默认为true.
由于rmvb,mkv 作为片源,可能会导致DSS 函数读取帧速不正确,所以fps 可以作为可选参数,强制以固定帧速读取.
Textsub("source") / Vobsub(“source”)
加载字幕函数,安装vsfilter 之后可用(vobsub 自带).可以加载srt,ssa,ass,idx+sub 字幕.各种特效,都可用ssa/ass 实现.
LanczosResize(width,height)
改变视频流分辨率,数值请尽量使用偶数
将以上文本保存成扩展名为.avs 文件后即可以用MeGUI 加载.
AviSynth 支持自定义变量和函数嵌套(暂且这么称呼吧,也有点像Class 其实),所以以下两段avs 脚本效果是相同的:
(1)
Vi=DirectShowSource(“source”).textsub(“source”)
LanczosResize(Vi,480,272)
(2)
DirectShowSource(“source”).textsub(“source”).LanczosResize(480,272)
所以,写avs 脚本是非常自由的,大家可以随意发挥.
接下来再介绍几个常用的处理视频的函数,
AVISource(“source”,audio=false)
加载片源函数,仅用于AVI 封装的文件.自动读取fps 无需手动干预,仅可屏蔽音频.
AddBorders(x,x,x,x)
画面加黑边函数.四个参数分别为左上右下的象素数.由于压缩视频最终分辨率长宽都必须是16 的整数倍,当按照源高宽比缩小后的像素为非
16 的倍数时,通常就需要在画面上下方加入黑边. 另一种方法就是直接拉伸到最近的16 的倍数,将造成细微变形.
ConvertToYV12()
转换色彩空间为YV12.由于某些片源的色彩空间不被x264 支持,可转换为YV12.
Crop(a,b,y,z)
画面裁切函数.a,b,y,z 分别代表左侧裁去像素,上方裁去像素,画面剩余宽度,画面剩余高度.
ChangeFPS(fps)
改变视频帧速.采用丢帧方式转换帧速.
ConvertFPS(fps)
同上.采用混合帧方式.
处理音频的方法基本类似,可使用以下脚本,
DirectShowSource("C:\test\Terminator\The.Terminator.BDRe.x264.mkv",video=false).Amplifydb(3)
由于AC3/DTS 音频在2.0 声道下声音较小,所以我们需要用到Amplifydb()函数使用音频增益.
Amplifydb(3)
音频增益函数,3 表示增益的分贝数为+3,也可用负数,大于8 会出现暴音.
ResampleAudio(48000)
音频重采样函数.MP4AVC 仅支持采样率为48000 的AAC 音频,对于其他采样率的音频源需要重新采样.
SSRC(48000)
同上.采样效果更佳,速度也更慢.

以下开始正题
开始界面如下设置



片源如果是BD的话推荐2PASS模式 有自动和手动 有经验的同学选择手动吧
以下为自动 码率为1500K 动画400-800 演唱会电影1200-2000



再看这选项卡的设置





点击OK保存
部分参数资料 详情自行搜索
VBV Buffer Size 码率控制缓冲区的大小,单位kbit,默认0
VBV Maximum Bitrate 平均码率模式下,最大瞬时码率,默认0(与-B 设置相同)
VBV Initial Buffer 码率控制缓冲区数据保留的最大数据量与缓冲区大小之比,范围0~1.0,默认0.9
Bitrate Variance 平均码率差异,较小的值可以让目标文件的码率与预期更接近,较大的值更能发挥x264 的适应性得到更高质量,可取
1.0-4.0
Quantizer Compression 量化曲线压缩控制,,0 为固定码率,1 为固定量化值,默认0.6
Temp. Blur of est. Frame complexity 根据相邻帧平滑量化值比例的最大值,范围0~99.9,默认20.0
Temp. blue of Quant after CC 对统计文件结果平滑量化值比例的最大值,范围0~99.9,默认0.5
Chroma M.E. 启用运动向量检测
M.E. Range 运动向量检测最大长度,可取16-32,推荐16 (32 可提高质量,单不明显,速度严重降低)
Scene Change Sensitivity 画面动态变化限,当超出此值时插入I 帧,默认40
M.E. Algorithm
Subpixel Refinement 动态预测和分区方式,可选项1~7,推荐6 (压缩速度1 为7 的四倍)
Kayframe Interval 最大IDR 帧间距,默认250 (一般为fps*10,对于23.976fps 推荐240)
Min. GOP Size 最小IDR 帧间距,默认25 (等同fps)
CABAC 内容自适应二进制算术编码(CABAC,高效率的熵编码)(会提高质量,但速度较慢)
Minimum Quantizer 设置最小量化值,范围0~51,默认10
Maximum Quantizer 设置最大量化值,范围0~51,默认51
Maximum Quantizer Delta 设置相邻帧之间的量化值差,范围0~50,默认4
Factor between I and P frame Quants I 帧和P 帧之间的量化系数,默认1.40
Factor between P and B frame Quants P 帧和B 帧之间的量化系数,默认1.30
Chroma QP Offset 色度和亮度之间的量化差,范围-12~+12,默认0
Macroblock Options 动态块划分方法
Number of B-frames 在I,P 帧之间可插入的B 帧数量最大值,范围0~16,默认0,推荐2-3
Adaptive B-Frames 自适应B 帧判定,推荐勾选
B-Pyramid 允许以B-Frame 作为参考帧 (勿开启,会导致psp 播放不能)
B-frame mode 动态预测方式,可选none/spatial(同一帧的相邻位置)/temporal(前后帧取相同位置)/auto,默认spatial,推荐 AutoB-frame bias 控制插入B 帧判定,范围-100~+100,越高越容易插入B 帧,默认0
音频部分


下面开始视频压制
所用视频为39 BD
LoadPlugin("D:\Program Files (x86)\MeGUI\tools\avisynth_plugin\ColorMatrix.dll")
LoadPlugin("D:\Program Files (x86)\MeGUI\tools\avisynth_plugin\VSFilter.dll")

DirectShowSource("H:\ 初音ミク演唱会BD\ミクの日感谢祭 39's Giving Day Project DIVA presents\BDMV\STREAM\00004.m2ts",29.97,audio=true,ConvertFPS=True)
ColorMatrix(mode="Rec.709->Rec.601")
ConvertToYV12()

TextSub("H:\初音ミク演唱会BD\ミクの日感谢祭 39's Giving Day Project DIVA presents\初音ミクの日感谢祭 39's Giving Day.srt")
LanczosResize(704,480)
AddBorders(8,0,8,0)
写好这个后用 完美解码编码模式打开这个avs跑一下 不是编码模式可能没有声音
但是无影响压制 然后换回默认模式
打开MeGUI 载入avs


会弹出预览 可能 会有比例失调 但是和压制无关
关闭窗口 选择下面

AutoEncode自动生成任务


点击上面选项卡


Queue


Start 开始任务 Stop是暂停 Abort是中断 Delete是删除 Clear是清空

由于压制全靠CPU 所以压制期间请保持CPU其他占用最小 温度适宜
开始过程会有个预编码 根据配置会有几分钟到十多分钟的无响应状态请耐心等待

【视频知识相关】H.264 MPEG-4 AVC级别Level DPB 与 MaxDpbMbs 详
http://tieba.baidu.com/p/1406016356
【视频知识相关】10bit-depth相比8bit-depth的优劣
http://tieba.baidu.com/p/1405994584

posted on 2012-10-09 19:59  民浩  阅读(4177)  评论(0编辑  收藏  举报

导航