APP下载

利用MeGUI进行视音频编码压缩的方法

2020-08-13康旭丰

数字传媒研究 2020年7期
关键词:视频文件码率脚本

康旭丰

内蒙古新闻出版广电局微波传输总站 内蒙古 呼和浩特市010050

随着数字视频拍摄设备、多媒体技术及互联网的高速发展,人们可以方便的使用如手机、DV、运动相机、无人机等设备拍摄数字视频,与此同时也催生了人们视频分享及存储的需求。人们在拍摄原始视频素材时往往会选择高分辨率、高码率的编码参数用来保证素材质量,从而导致原始文件占用较多的存储空间,在利用这些素材进行剪辑时也将消耗更多的硬件资源。同时,在线视频分享网站往往对上传的视频文件尺寸及编码参数有限制,不满足要求的视频文件可能被视频网站的自动压缩功能二次压缩,导致视频质量的损失。MeGUI可以方便的满足对数字视频进行编码压缩的需求。

1 MeGUI的软件特性

MeGUI通过利用AviSynth的AVS脚本实现对视频的处理[1],比如视频的缩放、裁切、降噪等。AVS脚本将处理后的结果提交给MeGUI进行编码。AviSynth是一种帧服务器,在处理数字视频文件的过程期间不产生中间文件,可以显著减少编码时间。MeGUI内置了多种开源视、音频编码器,如X264、X265等视频编码器,FFmpeg AAC/AC-3、Flac、LAME MP3等 音 频 编 码器。它支持并行、可编辑的队列任务功能,支持同时处理多个编码压缩任务,提高任务处理速度;支持自动分析输入视频原文件,判断其扫描方式、场序并进行反交错;支持为视频流添加内嵌字幕及视频水印;支持抽取封装容器中的音视频流;支持封装容器的转换。

2 MeGUI的安装配置

2.1 运行环境

MeGUI可在其SourceForge上的开源项目[2]首页处下载最新版本的发行包,下载完成后直接解压缩即可。但是要正常运行使用MeGUI,还可能需要配置以下运行环境:

2.1.1 运行环境要求

Microsoft.NET framework 2.0或包含2.0功能组件的.NET framework 3.5版本。MeGUI是依赖于.net运行环境的应用程序,需要.net运行环境才能正常工作。

2.1.2 解码器

MeGUI本身提供了X264、X265等数款视、音频编码器,但本机操作系统可能缺少对应的解码器。推荐选择完美解码或KLite Codec解码包进行安装。

2.1.3 可选的外部AAC音频编码器

为满足特殊需求,也可以有选择的安装NeroAAC或FDKAAC音频编码器,并在MeGUI的设置项中启用这些可选的编码器。

2.2 启动

在运行环境配置完成后,启动MeGUI文件夹中的MeGUI.exe文件即可启动MeGUI。其主界面如图1。

2.3 初次运行

初次运行MeGUI时,软件会提示开启每次启动时自动检查更新的功能,建议启用该功能,以保证最新版本的软件更新。启动完成后,利用菜单栏Tools中的Updater工具进行MeGUI工具组件的安装与更新,建议在使用前将所有组件安装并更新至服务端最新版本,即Local Date与Server Date相同,Status均 为no update available。如图2所示。

图1 MeGUI主界面

图2 MeGUI Updater工具

图3 AVS Script Creator界面

3 MeGUI的使用步骤

为满足本地存储及视频在线分享等不同需求,我们在使用MeGUI时可以按需选择视音频流的编码器的具体配置及封装格式,并利用MeGUI所包含的工具进行操作。

3.1 使用AVS Script Creator工具生成AVS脚本并创建索引文件

运行MeGUI软件,点击Tools菜单栏中的AVS Script Creator项,打开AVS Script Creator的界面,如图2所示。该界面的三个选项卡页面分别对应输入/输出、滤镜及脚本功能页。

在I/O页面点击Input栏中的Video Input右侧的“…”按钮选择视频输入源,之后在MeGUI弹出的对话窗口中选择File Indexer工具来创建索引文件。在File Indexer工具界面点击Queue按钮,开始创建视频索引文件。索引创建完成后MeGUI将打开视频预览窗口,并自动回到AVS Script Creator工具界面。

在I/O(输入/输出)面板上我们可以选择在编码时对视频进行Crop(裁切)、Resize(缩放)操作,在对应项前方的复选框打钩并填写对应数值即可。裁切中的四项数值分别对应从视频左、右、上、下起分别裁切掉的像素值。缩放项中两项数值分别对应编码输出结果的横向像素值与纵向像素值。

在Filters(滤镜)面板上我们可以利用Deinterlacing(反交错)功能对隔行扫描视频进行反交错操作。点击Analyse按钮分析视频的扫描方式,得到视频源的扫描方式及上下场优先信息。勾选Deinterlace项前方的复选框并选择Filed Deinterlace,即可设置编码时进行反交错。

在Script(脚本)面板中我们可以浏览自动生成的AVS脚本,也可以对脚本进行手动编辑,调用其他dll扩展滤镜以实现特定功能。

(1)添加视频内嵌字幕,我们需要在创建AVS脚本时手动编辑AVS脚本,在AVS Script Creator的Script界面添加如下脚本内容,其中的扩展dll及视频源路径需按实际修改:

LoadPlugin (“D:MeGUI oolsavisynth_pluginVSFilter.dll”)

TextSub(“D:SampleSubtitle.ass”)

脚本解释:加载硬压字幕扩展,并指定字幕源文件路径。

(2)添加视频图片水印,我们需要在创建AVS脚本时手动编辑AVS脚本,在AVS Script Creator的Script界面对脚本进行编辑:

LoadPlugin (“D:MeGUI oolslsmashLSMASH -Source.dll”)

LSMASHVideoSource(“D:Sample Video.mp4”)

ConvertToRGB32()

LoadPlugin(“D:CompressMeGUI oolsavspluginsImageSeq.dll”)

Img=ImageSource(“D:Watermark.png”,pixel_type=“rgb32”).LanczosResize(250,250)

Layer(Img,“add”,255,16,16)

ConvertToYV12()

脚本解释:由于MeGUI仅能处理YUV色彩空间的视频,在添加色彩空间为RGB模式的图片作为水印时需要先将视频的色彩空间转换为RGB32模式,之后再调用图片源扩展,创建变量名为Img的图片来源,并定义图片的色彩空间及缩放尺寸。接着在视频之上增加包含Img的图层,定义其不透明度及横纵位置。最后将视频的色彩空间转换回YV12交由MeGUI编码。

脚本编辑完成后,点击界面下方的Save按钮,完成创建视频处理的AVS脚本。与此同时,MeGUI会自动创建音频处理的AVS脚本。

3.2 选择合适的视音频编码器进行编码

AVS脚本创建完成后,MeGUI在Input界面上会按AVS脚本内容及软件的默认配置各项内容,之后我们便可按照不同需求选择合适的视、音频编码器,在MeGUI主界面上点选Enccoder Settings下拉栏选择合适的编码器。

3.2.1 储存

在进行本地存储时,我们一般要求在尽量保证尽量少的画质损失前提下减少文件占用空间。基于以上需求,我们可以选择X265或X264视频编码器中的Const.Quality(恒定质量)模式进行视频文件的编码,它是一种根据实际画面需要自动分配码率的编码方式,使得视频保持几乎一致的目测质量。Const.Quality模式是一次编码,速度较快。

首先在编码器的设置页面中,Encoding Mode选择Const.Quality并在右侧Quality栏填写合适的视频质量量化值,Quality的数值越小,画质越高,码率越高。我们可以在保证视频质量可接受的前提下选择较大的量化值来换取更小的存储空间占用。推荐取值一般在18-26之间,通常Quality值取18时基本可以认为视觉上是无损的。如图4。

接下来选择一个Preset(预设),预设作为一系列参数的集合,可以在不同的编码质量和压缩效率之前取得平衡。预设按照编码速度快慢可表示为:Ultra-Fast、SuperFast、VeryFast、Faster、Fast、Medium、Slow、Slower、VerySlow、Placebo。通 常 可以选择Slow至VerySlow即可,Placebo预设消耗的大量编码时间带来的质量提升并不明显。

音频部分可以选择保留原始素材的音频资源,待视频部分编码完成后利用菜单Tools-Muxer中的Adaptive Muxer工具将视频流与音频流重新封装即可。

3.2.2 在线视频分享

在进行在线视频分享时,用来上传的视频往往需要受到网站的各种限制,以某视频网站为例,其要求:

最大分辨率1920x1080的逐行扫描视频,视频平均码率最高6000Kbps(H264/AVC编 码),High-Profile 4.1,视频峰值码率不超过24000kbps,平均至少10秒一个关键帧,色彩位深8bit;音频码率最高320kbps(AAC编码),声道数小于等于2,音频采样率44.1Khz。

图4 X265编码器Const.Quality编码模式

图5 X264编码器自动二次编码模式配置

图6 X264编码器帧格式及码率控制配置

图7 AAC音频编码器配置

为满足在码率限制内取得最佳的视频质量,我们可以选择视频编码器中的Automated 2Pass(自动二次编码)模式进行视频编码。在二次编码模式中,编码器首先将对视频文件进行分析,得到视频的复杂度统计信息文件,然后在二次编码时利用该信息在码率限制下尽可能的合理分配码率,从而获得基本平稳的全片视频质量。

首先,在X264编码器配置界面钩选Show Advanced Settings复选框,显示高级设置。按照编码参数限制,Encoding编码模式选用Automated 2Pass模式,Bitrate平均码率填写6000,AVC Profile选 择High Profile,AVC Level选择4.1。编码预设选择Very Slow。如图5。

其次,在Frame-Type选项卡的GOP Size项中,GOP的值应为10*FPS。以上传30FPS视频为例,将Maximum GOP Size的值设置为300。在Rate Control选项卡中,将VBV Buffer Size及VBV Maximum Bitrate的值设为24000。至此视频编码器配置完毕。如图6。

图8自动编码配置

在MeGUI主界面的Audio Encoding项中选择FFmpeg AAC或其他AAC音频编码器,点击右侧Config打开音频编码器界面。Output Channels选择Downmix multichannel to Stereo,Sample Rate选 择Change to 44100 Hz,根据不同AAC编码器配置区别,选择CBR编码模式,滑动滑块将音频码率调整到320kbps。至此音频编码器配置完毕。如图7。

编码器分别配置完成后,回到MeGUI主界面,点击下方的AutoEncode按钮,打开自动编码界 面,Container选 择MP4,Splitting选 择No Splitting,Size and Bitrate选 择No Target Size,点击Queue将编码任务加入序列进行编码。如图8。待编码任务完成后,用于上传分享的视频文件便编码、封装完成了。

结束语

利用MeGUI提供的丰富工具,我们可以轻松完成数字视频的编码压制,满足不同的编码需求,有效提高工作效率。

猜你喜欢

视频文件码率脚本
酒驾
流媒体视频文件相似性识别的方法
移动视频源m3u8多码率节目源终端自动适配技术
随心定制视频文件的缩略图
一种基于HEVC 和AVC 改进的码率控制算法
安奇奇与小cool 龙(第二回)
基于状态机的视频码率自适应算法
快速检索,抓取电影中的精彩篇章
快乐假期
小编的新年愿望