简要动画压制教程

您所在的位置:网站首页 小丸工具箱压制60fps视频 简要动画压制教程

简要动画压制教程

2023-08-22 05:09| 来源: 网络整理| 查看: 265

1.   写在前面

不同用途的视频压制目的不同,本教程最初目的是写给组内进行压制基本流程、工具的科普,不同组压制方法和思路不太一样,仅作为参考,对文章内容有疑问欢迎大家前来探讨。

  

1.1 压制的目的

对很多动画制作组来说,压制的目的可以归结为:1.对源进行处理,使源与后期字幕匹配;2. 对源进行重编码,在保持画面损失较小的前提下减小体积,减小分流压力;3. 将字幕嵌入视频,防止观众在播放时出现缺字、特效缺失等问题。

在本文中,不涉及到画面处理,因此压制的目的主要有两个:

1、 重编码减小源体积方便分流;

2、 将字幕嵌入视频内,方便观众播放,防止出现缺字、特效无法显示的情况。

1.2  压制配置要求

学习基础压制并不需要很好的电脑,CPU核心数的多少只会影响压制的快慢,并不会对其他流程进行影响,因此学习压制可以说是有台电脑就行。

但是,由于压制的过程中电脑需要长时间满负荷运转,因此对于想要压制的朋友我们推荐配置至少达到以下水平:

CPU 6核以上

内存 8G以上

显卡支持NVENC编码最佳

电脑能在保持良好通风环境下不降频工作

1.3  其他

本教程只涉及到一些关于压制的基础知识,原理方面不在本文中讨论,更多的如画面处理需要使用到avs、vapoursynth等工具,使用该类工具需要一些计算机语言基础以及对画面要有敏锐的观察力,因此不在此进行赘述,有兴趣的朋友可以自行前往vcb论坛进行学习。

本文涉及到脚本和使用到的工具均已提供在https://uhawings.icu/tools

2.   基础知识2.1  容器

最通俗的说法就是后缀名,例如mp4、mkv就是最常见的容器,也是本组最常使用的格式。一个容器一般可以含有多个轨,例如视频轨、音频轨、字幕轨。

下面节选自维基百科:

mkv:一种新的多媒体封装格式,这个封装格式可把多种不同编码的视频及16条或以上不同格式的音频和语言不同的字幕封装到一个Matroska Media档内。

mp4:是一个国际标准化组织(ISO)认可的媒体封装形式,受到大部份机器的支持。

简单来讲,mp4格式能被大多数设备播放,支持封装常用的视频流格式、音频流格式支持比mkv少,不支持内封ass格式字幕。mkv能支持常见的音频流和视频流,但是播放支持略差于mp4(例如adobe系列软件无法读取),可以内封ass格式字幕。

鉴于mp4和mkv各自的特点,我们在制作TVRip/WEBRip的时候多数使用mp4,而制作BDRip的时候多数使用mkv。

2.2  视频流

即上条所说视频轨中装载的文件,常用的有avc/h264和hevc/h265。

下面节选自维基百科:

avc/h264:目标之一是提供足够的灵活性,以允许该标准能够应用于各种各样的网络和系统的各应用上,包括低和高比特率,低和高分辨率视频,广播,DVD存储,RTP / IP分组网络和ITU-T多媒体电话系统。

hevc/h265: 被视为是h264/ avc标准的继任者,不仅提升影像质量,同时也能达到h264/hevc两倍之压缩率(等同于同样画面质量下比特率减少到了50%)。

基于avc/h264的灵活性,对于目前的电脑来说也有较高的编解码速度,因此对于跟随播出及时制作字幕的番剧我们使用的该种编码方式。因为hevc编码计算需求远高于avc,通常对同个片源压制时使用x264(h264编码器)速度能达到30fps的情况下x265(h265编码器)可能只有5fps,在日常番剧制作中我们较少使用。而BD制作通常没有较高的时间要求,所以我们使用hevc的视频编码方式,在不进行画面处理的情况下能更好的保留画面原样,并且相对于使用avc方式能更节省码率。

2.3  音频流

对于本组制作的片来说常用的即aac和flac两种,mp4格式无法封装flac音频流,因此主要搭配为mp4:avc+aac,mkv:hevc+flac。Mp4主要用于制作TVRip/WEBRip,保证速度和兼容性。mkv主要用于制作BDRip,保证质量。BD中也常用DTS杜比格式音频,我们一般保留不进行压制。

2.4  字幕封装方式

封装方式有3种:外挂、内封、内嵌。

外挂:将制作完成的ass和视频文件相同命名放入文件夹内,若播放器识别即可正确播放。字幕显示效果由观众播放器,通常需要同时发布字体文件包,若使用vsfiltermod特效标签或者较多特效可能导致显示不正常,通常制作BDRip时使用。

内封:即将外挂的字幕放入视频容器内,通常会一并封入字体子集,避免观众缺字问题,但无法解决特效标签问题。通常与字幕组合作的压制组和使用该方式封入字幕。

内嵌:由压制将字幕和画面一同编码嵌入画面,效果通常由压制使用的字幕滤镜决定,能解决观众缺字、特效缺失等问题,保证了兼容性。缺点是画面被永久改变,无法选择是否开启字幕。

对于本组来说,TVRip/WEBRip制作使用内嵌为主,BDRip使用外挂为主。

2.5  片源获取

TV片源一般从nyaa上获取,常用的组有ohy(TV源,720P),erai-raws(web源,1080P),还有刚刚去世的Horriblesubs。具体使用片源需要和后期保持一致,一般一部番片源由校对和后期压制共同决定。目前以WEB源为主。

BD片源目前来源一般为nyaa、u2和各大pt站的BD圆盘,需要自行压制。以及各大合作压制组可能提供的Rip直接使用。

2.6  使用工具

目前组内使用的工具种类繁多,例如小丸工具箱、MeGUI、FFMPEG,以及各种x264、x265编码器独立使用。

3.   基础压制3.1  检查字体、使用字体滤镜

在压制之前使用aegisub的字体收集器功能检查是否有缺字/缺字体的情况,及时和后期沟通补上。同时和后期确认是否有使用vsfiltermod的特效标签,使用特效标签在压制时需要额外步骤才能保证效果显示正常。

字体检查

字幕滤镜检查3.2  压制小丸工具箱

小丸工具箱

目前最新版小丸工具箱为r236版本,不过多年未更新。建议安装时不要安装在C盘。

2.压制

①为源视频输入,可拖入视频或点②选择

③为输出文件名,默认和输入文件同目录,可直接在输入框内修改或者点击④修改

⑤为字幕输入,可拖入或点击⑥选择,默认留空则不压字幕。

⑦为选择编码器,默认x264_32-8bit/x264_64-8bit,不用更改

⑧音频模式,选择“压制音频”后音频选项页控制,默认NeroAAC编码器128k码率。对于组内使用的片源来说已经默认是aac 128k,因此无需重新编码,直接选择复制音频流即可。如果需要压制BDRip,建议选择flac编码器。压制上传视频网络的流媒体的视频可以使用NeroAAC,并适量上调音频码率

⑨为CRF参数,参数可以为0-55,BD压制推荐16~19,日常压片推荐21~24,数值越大质量越差,体积相对越小。

调整完毕后,按下⑩按钮即可压制。

3.批量压制

①~⑥不生效,将文件序列或文件夹拖入下方方框,需要压制字幕的需要将字幕文件和视频同名命名放入同一个文件夹内,勾选11,按12按钮即可压制。压制参数同样受⑦~⑨参数控制。

4.x265压制

由于x265迭代快,小丸工具箱本身因为长期没更新,默认的编码器较为老旧。因此推荐在使用前前往https://down.7086.in/x265-Yuuki-Asuna/ (个人推荐)下载最新编译好的x265编码器,或者选择其他x265编译器,放入%MarukoToolbox%\tools目录下。

在⑦中选择你放入的x265编码器,其他设置方式和x264编码基本相同。推荐使用crf 16~19。

注意:由于小丸主界面字幕压制需要配合默认x264编码器调用tools目录下vsfilter.dll 压制字幕,因此使用自行放入的编码器时在主界面压制字幕会报错,请避免此类情况的发生。

5.     vsfiltermod压制

由于小丸压制字幕时默认调用vsfilter.dll,因此使用小丸压制vsfiltermod.dll特有特效标签时需要切换到avs界面压制。

avs界面

视频、字幕、输出框和主界面用法相同,需要在外置滤镜中找到VSFilterMod.dll,点击插入即可。勾选右下角压制音频,点击压制,即可按主界面的配置压制字幕。

MeGUI

MeGUI和小丸工具箱本质都是调用各种编解码器,对参数进行可视化,让用户在图形界面下对视频进行压制。不同的地方是MeGUI由于工具繁多能做的处理更多,而且视频的压制都必须要使用avs脚本进行。

1.     准备工作updater

点击Tools>Update,右键enable开启AviSynth plugins、AviSynth protable、FFmpeg、FLAC、mkvmerge、MP4Box、x264、x265等所需的常用工具,点击右下角update进行自动更新。

2.     压制

鉴于本教程不讲avs、vs脚本语法,因此我们使用MeGUI自带的avs生成器进行编写脚本压制。

AVS SCRIPT CREATOR

点击Tools>AVS Script Creator(快捷键Ctrl+R)。

将视频拖入或点击video input右侧…选择视频。

点击File Indexer。

点击Queue,自动将视频拆分成视频轨和音频轨。此时会弹出预览视频,关闭即可。

切换到Script选项卡,点击…添加VSFilter.dll滤镜(一般在%MeGUI%\tools\avisynth_plugin\目录下,如果需要压制vsfiltermod特效标签也可将vsfiltermod.dll放入该文件夹方便调用)。

切换回Filters选项卡,此时底部会多出个Subtitles选项框,选择需要压制的字幕文件。

点击下方Preview AVS Script即可预览效果,点击save即可保存准备压制。

 

回到主界面,此时会MeGUI会自动读入avs文件、视频轨、音频轨。

 

对于视频,Encoder settings、File format的设定和之前x264搭配mp4输出,x265搭配mkv输出相同。点击Encoder settings即可更改编码设定,默认Encoding Mode选择Targeting quality,Quality值和小丸工具箱中crf值意义相同。

对于音频,如果有压制需要Encoder settings推荐FFmpeg AAC搭配mp4使用,FLAC搭配mkv使用。使用aac时建议点击右侧config调整适合的码率。

 

以Horriblesub WEB片源为例,我们只压制视频,音频流复制,秩序点击Video encoding框内的Queue。

等待压制完成后使用Tools>Muxer>Adaptive Muxer将处理好的视频、音频、选择合适的Container进行合并即可。

3.3  检查成品

作为一个合格的压制,需要保证自己压制出的成品不会出现因为自身原因导致的视频烂帧、花屏、缺字、特效缺失等问题。因此需要在成品压制完成之后需要压制自行检查成品。

4.   进阶压制

所谓进阶压制,就是跳过小丸、MeGUI的图形化界面直接使用工具进行压制。因此,如果有已经写好的脚本或批处理直接调用工具进行压制,在了解工具、编码器的命令行参数的情况下进行压制,效率会比使用GUI工具有提升。

一般来说常用的工具有ffmpeg、mkvmerge、mp4box,常用的编码器有x264、x265、nvenc。由于工具开源,可能不同的开发者编译出来的版本在功能和命令上有所区别,因此在此处只讲ffmpeg和x264(yuuki)我常用到的用法,具体各个参数的含义、影响情况请参阅vcb开放教程https://vcb-s.nmm-hd.org/和官方文档。

x264

用法:x264 [选项] -o 输出文件名 输入文件名

例:

x264-allbit-x86_64-full.exe --preset veryslow --crf 17.5 --ref 9 --deblock -1:-1 --keyint 360 --min-keyint 1 --qcomp 0.7 –aq-mode 1 --merange 24 --subme 9  --no-fast-pskip --fgo 1 --log-file "output.log" “input.mp4” --output "test.h264"

具体参数含义可以参考https://vcb-s.nmm-hd.org/Dark%20Shrine/,限于篇幅不在次进行赘述。一般单独使用编码器直接编码情况较少,部分编码器可能缺乏封装能力,因此会搭配ffmpeg、mkvmerge和其他音频编码器使用,或者接vspipe之类对处理完成的画面进行编码。

FFmpeg

FFmpeg可以运行音频和视频多种格式的录影、转换、流功能,是一个非常强大的工具。很多工具箱的GUI就是在FFmpeg的基础上进行编写的。FFmpeg本身自带了各类音视频编解码器,也具备封装能力,因此一般用途分两种:

1.分离视频、音频,给专门的音视频编码器或者avs、vs进行画面处理,最后使用ffmpeg封装。

2.简单对音视频进行转码、压制。

以我本人来说,目前的字幕压制就是直接使用批处理命令调用FFmpeg压制。

用法:ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...

具体编码器过多,可调用滤镜也很多,用法丰富,无法在此处一一列出,因此,只放出我个人使用的批处理脚本:

set ffmpeg="%~dp0ffmpeg.exe"

:start

IF "%~1"=="" GOTO :end

:encode

title encodeing %~nx1

%ffmpeg% -y -hwaccel auto -i "%~nx1" -c:v libx264 -preset slower -crf 21.5 -keyint_min 1 -g 240 -deblock -1:-1 -qcomp 0.6 -aq-mode 2 -refs 8 -aq-mode 2 -vf "subtitles='%~n1.ass'" -c:a copy -f mp4 "%~n1.mp4"

SHIFT /1

GOTO :start

:end

Pause

该脚本的作用是:将拖入的文件(可复数)依次使用ffmpeg使用libx264将与该文件同名ass字幕进行内嵌编码(preset slower, crf 21.5,参数名和x264参数略有不同需要翻阅文档查看),保留源文件音频,封装为同名mp4文件。由于默认字幕滤镜为libass,因此使用vsfilter/vsfiltermod制作的字幕渲染表现会稍有不同。

总结下来,进阶压制的流程为:

5.   BDMV处理5.1  BDMV结构认识

对于从BD中抓取到内容,完整结构基本如上,其中多数文件是为了蓝光机播放而编写,对于制作BDRip并没有帮助,因此只需要了解PLAYLIST文件夹是存放播放列表,STREAM文件夹存放真实视频即可。

5.2  目录读取

使用MKVToolNIX即可读出章节信息,一般来说会将整个盘视频内容视为一段完整的视频进行时间的标注。由于没有明确分段信息,一般用不上,基本上在泡面番BD多集在同一个视频文件中时用作分割依据。

5.3  m2st合并、分割操作合并

将第一个文件拖入混流器,右键单击该文件选择追加合并文件。选择后点击开始混流即可

分割

在输出页选择切割模式,按需求分割。

5.4  轴肉压制

由于目前BDRip基本上以hevc视频流为主,压制时间较长,因此一般情况会使用nvenc快速压制一份轴肉给翻校时后使用。

本人使用脚本如下:

@ECHO OFF & CD/D "%~dp0"

set ffmpeg="ffmpeg\ffmpeg.exe"

set NVEncC="NVEncC\NVEncC64.exe"

set mp4box="mp4box\mp4box.exe"

:start

IF "%~1"=="" GOTO :END

:audio

title Audio Encoding

%ffmpeg% -i "%~nx1" -hide_banner -map a:0 -c:a aac "%~n1.aac"

:video

title %~n1 Video Encoding

%NVEncC% -i "%~nx1" --codec h264 --vbr 3000 --max-bitrate 15000 --cabac --aq --bframes 8 --ref 5 --lookahead 32 --bref-mode each -o "%~n1_GPU.h264"

:mux

title Raw Muxing

%mp4box% -add "%~n1_GPU.h264"#trackID=1:name= -add "%~n1.aac":name= -new "%~n1_nvenc.mp4"

:clear

del "%~n1_GPU.h264"

del "%~n1.aac"

:扫尾

SHIFT /1

GOTO :start

:End

echo 任务已完成

pause

使用到的工具有ffmpeg、nvenc、mp4box。使用vbr模式可以改为cqb模式,压制成品格式为mp4(avc+aac)。可批量压制,需将视频文件和压制脚本置于同个文件夹。

5.5  BDRip压制

BDRip压制成品目前以mkv(hevc+flac),字幕外挂为主,但具体情况压制需看情况分析。本人使用脚本如下:

set ffmpeg="%~dp0\ffmpeg\ffmpeg.exe"

set mkvmerge="%~dp0\mkvmerge\mkvmerge.exe"

set x265="%~dp0\x265-gcc-multilib-full.exe"

:start

cls

IF "%~1"=="" GOTO :END

 

:audio

title "%~nx1" flac编码

%ffmpeg% -i "%~nx1" -vn -y -f flac "%~n1.flac"

:video

title "%~nx1" x265编码

%x265% "%~nx1" -D 10 --preset slower --deblock -1:-1 --ctu 32 --qg-size 8 --crf 16 --pbratio 1.2 --cbqpoffs -2 --crqpoffs -2 --no-sao --me 3 --subme 3 --merange 38 --b-intra --limit-tu 4 --no-amp --ref 4 --weightb --keyint 360 --min-keyint 1 --bframes 6 --aq-mode 1 --aq-strength 0.8 --rd 3 --psy-rd 2.0 --psy-rdoq 1.0 --rdoq-level 2 --no-open-gop --rc-lookahead 80 --scenecut 40 --qcomp 0.65 --no-strong-intra-smoothing -o "%~n1_x265.hevc"

:mux

title 合并

%mkvmerge% -o "%~n1_x265.mkv" "%~n1_x265.hevc" "%~n1.flac"

:clear

del "%~n1_x265.hevc"

del "%~n1.flac"

cls

echo %~n1 编码完成

SHIFT /1

GOTO :start

:End

cls

echo 任务已完成

pause

支持批量文件压制,若压制菜单之类的无音频文件会出错,需删除:mux中的“%~n1.flac”。具体参数可根据片源不同调整。

6.   写在最后

压制是一个熟能生巧的职位,虽然初学看起来会很懵但是一直做下去就会轻车熟路。本教程只是一个入门,基本只讲解了用法和流程并未涉及到参数影响和原理,后面更深层次的画面处理部分也未涉及,有兴趣的朋友可以自行了解深入学习。

 

文章编写较为仓促,可能存在疏忽,欢迎指正和提问。

微博:https://weibo.com/312226280

POME:https://www.pomeet.com/minase55



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3