在流媒体视频分发这一块,很长一段时间里小丸工具箱都是唯一真神,因为它有一套极其深度优化的特调压制参数,可以把视频压制到一个惊人的低码率的同时,还能保留非常高的质量。
不做参数优化的情况下 Handbrake 对于这段视频只有 76 分
搜了 Handbrake 的很多教程,基本都是教界面怎么用,CRF 调多少,编码器选什么,最多就是把 Profile 调成 Slow ,Preset 调成 High 这种基础动作。
多数时候,一样的 CRF 获得的视频码率基本是一致的,但最终图像质量却有着天差地别,尤其是当我拍摄一段夕阳或者天空的场景时,能够很明显地看到 Handbrake 色彩断层比小丸更加严重。
所以琢磨了好一阵子,我终于把小丸的进阶 x264 参数复刻到了 Handbrake 上,使他们拥有一致的 vmaf 评分的同时,在 1080P 下还能获得 50%的编码速度提升:
这下终于能够在享受现代化的队列管理、灵活的音轨视频轨字幕轨映射的同时,还能获得和小丸一样的压制质量了。
保存为 json ,预设→从文件导入
{
"PresetList": [
{
"AlignAVStart": true,
"AudioCopyMask": [],
"AudioEncoderFallback": "av_aac",
"AudioLanguageList": [
"any"
],
"AudioList": [
{
"AudioBitrate": 256,
"AudioCompressionLevel": 0,
"AudioEncoder": "av_aac",
"AudioMixdown": "stereo",
"AudioNormalizeMixLevel": false,
"AudioSamplerate": "auto",
"AudioTrackQualityEnable": false,
"AudioTrackQuality": -1,
"AudioTrackGainSlider": 0,
"AudioTrackDRCSlider": 0
}
],
"AudioSecondaryEncoderMode": true,
"AudioTrackSelectionBehavior": "all",
"ChapterMarkers": true,
"ChildrenArray": [],
"Default": true,
"FileFormat": "av_mp4",
"Folder": false,
"FolderOpen": false,
"Optimize": true,
"Mp4iPodCompatible": false,
"PictureCropMode": 0,
"PictureBottomCrop": 0,
"PictureLeftCrop": 0,
"PictureRightCrop": 0,
"PictureTopCrop": 0,
"PictureDARWidth": 1920,
"PictureDeblockPreset": "off",
"PictureDeblockTune": "medium",
"PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8",
"PictureDeinterlaceFilter": "decomb",
"PictureCombDetectPreset": "default",
"PictureCombDetectCustom": "",
"PictureDeinterlacePreset": "default",
"PictureDeinterlaceCustom": "",
"PictureDenoiseCustom": "",
"PictureDenoiseFilter": "off",
"PictureSharpenCustom": "",
"PictureSharpenFilter": "off",
"PictureSharpenPreset": "medium",
"PictureSharpenTune": "none",
"PictureDetelecine": "off",
"PictureDetelecineCustom": "",
"PictureColorspacePreset": "off",
"PictureColorspaceCustom": "",
"PictureChromaSmoothPreset": "off",
"PictureChromaSmoothTune": "none",
"PictureChromaSmoothCustom": "",
"PictureItuPAR": false,
"PictureKeepRatio": true,
"PicturePAR": "auto",
"PicturePARWidth": 1,
"PicturePARHeight": 1,
"PictureWidth": 3840,
"PictureHeight": 2160,
"PictureUseMaximumSize": true,
"PictureAllowUpscaling": false,
"PictureForceHeight": 0,
"PictureForceWidth": 0,
"PicturePadMode": "none",
"PicturePadTop": 0,
"PicturePadBottom": 0,
"PicturePadLeft": 0,
"PicturePadRight": 0,
"PresetName": "1080P x264 xiaowan",
"Type": 1,
"SubtitleAddCC": false,
"SubtitleAddForeignAudioSearch": false,
"SubtitleAddForeignAudioSubtitle": false,
"SubtitleBurnBehavior": "none",
"SubtitleBurnBDSub": false,
"SubtitleBurnDVDSub": false,
"SubtitleLanguageList": [
"any"
],
"SubtitleTrackSelectionBehavior": "none",
"VideoAvgBitrate": 0,
"VideoColorMatrixCode": 0,
"VideoEncoder": "x264",
"VideoFramerateMode": "vfr",
"VideoGrayScale": false,
"VideoScaler": "swscale",
"VideoPreset": "slow",
"VideoTune": "",
"VideoProfile": "high",
"VideoLevel": "auto",
"VideoOptionExtra": "ref=4:bframes=3:me=umh:keyint=600:min-keyint=1:deblock=1,1:scenecut=60:qcomp=0.5:psy-rd=0.3,0:aq-mode=2:aq-strength=0.8",
"VideoQualityType": 2,
"VideoQualitySlider": 24,
"VideoMultiPass": true,
"VideoTurboMultiPass": true,
"x264UseAdvancedOptions": false,
"PresetDisabled": false,
"MetadataPassthrough": true
}
],
"VersionMajor": 56,
"VersionMicro": 0,
"VersionMinor": 0
}
补充一些测试结果
使用VMAF,导出的影片由ffmpeg转为m4v,再通过vmaf cli直接评分
ffmpeg -i <input> -pix_fmt yuv420p <output>.y4m
vmaf -r reference.y4m -d target.y4m
所有的压制统一使用CRF 24,NVENC则是CQ 24。
NVENC H.264的参数和x264差异很大,暂时不想研究怎么套过去,所以直接用了空参数。
一段Apex Legends的游戏录像,这类视频的特点是3D场景且画面瞬息万变,使得无论是时域还是空域的压缩难度都极高,使用CRF作为码率控制方法时,码率都会偏高。
由Nvidia即时回放录制,视频设定是1440P@60fps,70Mbps
使用Davinci Resolve截取片段,并导出为1080P H.264 Master,具体参数可见下图:
工具 | 编码器 | 预设 | 参数 | 速度 | 码率 | VMAF分 |
---|---|---|---|---|---|---|
源 (Davinci Resolve) | QT H.264 | slow | / | 250 fps | 39693 Kbps | |
小丸工具箱 | x264 | / | 小丸 | 58 fps | 10607 Kbps | 92.113585 |
Handbrake | x264 | slow | 小丸 | 72 fps | 11729 Kbps | 90.427260 |
Handbrake | x264 | slower | 小丸 | 50 fps | 11647 Kbps | 90.888737 |
Handbrake | x264 | slow | 无 | 71 fps | 15702 Kbps | 93.172524 |
Handbrake | NVENC H.264 | slower | 无 | 276 fps | 28187 Kbps | 96.561963 |
使用iPhone 14 Pro Max录制的4K 60fps HDR室内弱光静物,未开启ProRes
iPhone原相机录制
Davinci Resolve截取片段,套映射回SDR,并导出为1080P H.265 Master
工具 | 编码器 | 预设 | 参数 | 速度 | 码率 | VMAF分 |
---|---|---|---|---|---|---|
源 (Davinci Resolve) | QT H.265 | slow | / | 253 fps | 16382 Kbps | |
小丸工具箱 | x264 | / | 小丸 | 56 fps | 2740 Kbps | 90.903313 |
Handbrake | x264 | slow | 小丸 | 141 fps | 2961 Kbps | 91.110439 |
Handbrake | x264 | slow | 无 | 131 fps | 3903 Kbps | 92.381452 |
Handbrake | NVENC H.264 | slower | 无 | ~306 fps | 14263 Kbps | 99.549175 |
注:NVENC压制太快,worker还没统计出平均fps就结束了,所以显示fps为0,上表的速度是拿Frames/Time (0.5s精度)估算的
小丸的VMAF反而是最低的,但它的码率控制始终最强。
《小林家的龙女仆S》蓝光原盘BD Remux中,截取出OP部分
第二季龙女仆几乎是我看过的所有番中,原画制作规格最高的,我甚至怀疑接近1080P。
感谢73ACG的Remux,文件内置了Chapter,通过mkvmerge直接切割得到OP
mkvmerge -o ref.mkv -s 0 --atracks !1 --split chapters:2,3 '.\Kobayashi-san Chi no Maidragon S S02E01-[1080p][JP.BD.Remux][lolice-mix].mkv'
工具 | 编码器 | 预设 | 参数 | 速度 | 码率 | VMAF分 |
---|---|---|---|---|---|---|
源 | / | / | / | / | 35.1 Mbps | |
小丸工具箱 | x264 | / | 小丸 | 54 fps | 3765 Kbps | 96.891264 |
Handbrake | x264 | slow | 小丸 | 90 fps | 4594 Kbps | 96.600525 |
Handbrake | x264 | slow | 无 | 89 fps | 5288 Kbps | 96.470555 |
Handbrake | NVENC H.264 | slower | 无 | 281 fps | 8303 Kbps | 97.731199 |
唉,小康娜真可爱
小丸还是唯一真神。
使用小丸参数的Handbrake在质量和速度方面获得了综合起来较好的成绩,已经十分接近小丸的质量,
但slower相比slow牺牲速度换来的质量提升意义不大。
不携带参数时,x264和NVENC的分数都很高,但是码率都控制不住。
1
shyling 120 天前
|
2
v7eeaU2MLyWNvp 120 天前
265 有研究么?我还说以后有机会把我存的各种视频压个 265 呢。265/HEVC 不是说体积比 264 小的更很多么
|
3
acess 120 天前
楼主的图里有评分么?看来看去好像都没找到……
|
4
jkjoke 120 天前
感谢分享,测试了一下体积小了很多,画质肉眼几乎看不出变化
|
5
yazoox 120 天前
感谢分享!
|
6
easynote 120 天前
mark ,等一个 265
|
7
lazywen 120 天前
handbrake 视频码率默认 1000 左右吧?有点低了
|
8
HOMO114514 OP @lazywen
Handbrake 出场预设叫 Fast 1080p30 ,使用的设置是 x264 ,30fps ,22RF ,Fast ,Main ,L4.0 不知道你说的 1000K 码率从何而来。 |
9
piero66 120 天前 via Android
压制组好像都不用 handbrake ,用什么 VapourSynth ,据说效果比 handbrake 特调还能再好点
|
10
piero66 120 天前 via Android
我有次拿 handbrake 投稿,被压制组嘲讽了,你可以看下 vcb 的教程 https://guides.vcb-s.com/basics
|
11
icaolei 120 天前
这样一看,NVEnc 的优势太大了,速度和质量都有领先。
|
12
HOMO114514 OP @icaolei
码率爆炸了,压制的第一个字是首先是压 nvenc 和 qsv 设计上都是适合 CBR 场景,比如流录制、流直播、jellyfin 等服务器的转码回放,以 CQ 为控制目标用于本地存储的时候体积占用是纯 CPU 的 2 倍 |
13
HOMO114514 OP @piero66
vcb 的系列教程都看过,handbrake 还是主要给日常工作用途的压片降体积,用 vs 有种牛刀杀鸡的味道,专业的事情、专业的作品发行,还是让专业的人来吧 我个人认为: 便捷度 <------------------> 专业度 Handbrake 小丸 megui 、vs 等 |
14
1423 120 天前
截图有错误?哪里 76 分?
|
15
malagebidi 120 天前
怎么小丸就成唯一真神了,如果 x264 的参数都有认真学习过,按理说应该是用 megui 或者命令行,我反正也试过 Handbrake 不止一次,一点感觉都没用出来。
|
16
piero66 120 天前 via Android
@HOMO114514 正常直接用达芬奇自带的 encode 流程就够
|
17
GooMS 120 天前 via Android
能导出 ffmpeg 命令吗
|
19
icaolei 120 天前
@HOMO114514 #12 确实,压缩率不够,还是挺大的。不过 CQ 相同体积居然能差 2 倍,这个属实没想到能差这么多。我去年在 vidcoder 上用过 NVEnc 和 x265 来对比,当时感觉没差那么多,所以后来我还用 NVEnc 压了不少视频。
|
20
hahazifengzi 118 天前
请问 MAC 上有没有类似小丸工具箱这种工具,压缩效果好画质还保留不错的?刚换 MAC ,一时没找到
|
21
kero991 117 天前
想起了我很早以前玩压片时的经历,但当年快压用 mediacoder ,精压要用 avs+megui 啊,当年那个自带不少压片组预设参数的 megui 安装包还让我弄丢了,找了很久没找到
|
22
Kagari 114 天前
我刚想说 n 卡录屏的色域播放时有点问题,然后发现 vmaf 的对比源不是源文件。如果不缩分辨率的话用 LosslessCut 这种关键帧裁剪工具更快
我最近用 av1 来压,svtav1psy SvtAv1EncApp --rc 0 --preset 4 --qp 45 如果是 40 系的话直接回放 av1 就行了,更新之后已经支持 av1 了 |