
在流媒体视频分发这一块,很长一段时间里小丸工具箱都是唯一真神,因为它有一套极其深度优化的特调压制参数,可以把视频压制到一个惊人的低码率的同时,还能保留非常高的质量。

不做参数优化的情况下 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/td> | 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 2024-07-27 03:52:42 +08:00 |
2 v7eeaU2MLyWNvp 2024-07-27 06:47:52 +08:00 265 有研究么?我还说以后有机会把我存的各种视频压个 265 呢。265/HEVC 不是说体积比 264 小的更很多么 |
3 acess 2024-07-27 09:54:21 +08:00 楼主的图里有评分么?看来看去好像都没找到…… |
4 jkjoke 2024-07-27 09:56:15 +08:00 感谢分享,测试了一下体积小了很多,画质肉眼几乎看不出变化 |
6 easynote 2024-07-27 10:38:30 +08:00 mark ,等一个 265 |
7 lazywen 2024-07-27 18:39:28 +08:00 handbrake 视频码率默认 1000 左右吧?有点低了 |
8 HOMO114514 OP @lazywen Handbrake 出场预设叫 Fast 1080p30 ,使用的设置是 x264 ,30fps ,22RF ,Fast ,Main ,L4.0 不知道你说的 1000K 码率从何而来。 |
9 piero66 2024-07-27 19:14:05 +08:00 via Android 压制组好像都不用 handbrake ,用什么 VapourSynth ,据说效果比 handbrake 特调还能再好点 |
10 piero66 2024-07-27 19:20:08 +08:00 via Android 我有次拿 handbrake 投稿,被压制组嘲讽了,你可以看下 vcb 的教程 https://guides.vcb-s.com/basics |
11 icaolei 2024-07-27 19:21:06 +08:00 这样一看,NVEnc 的优势太大了,速度和质量都有领先。 |
12 HOMO114514 OP @icaolei 码率爆炸了,压制的第一个字是首先是压 nvenc 和 qsv 设计上都是适合 CBR 场景,比如流录制、流直播、jellyfin 等服务器的转码回放,以 CQ 为控制目标用于本地存储的时候体积占用是纯 CPU 的 2 倍 |
13 HOMO114514 OP @piero66 vcb 的系列教程都看过,handbrake 还是主要给日常工作用途的压片降体积,用 vs 有种牛刀杀鸡的味道,专业的事情、专业的作品发行,还是让专业的人来吧 我个人认为: 便捷度 <------------------> 专业度 Handbrake 小丸 megui 、vs 等 |
14 slowman 2024-07-27 19:45:52 +08:00 截图有错误?哪里 76 分? |
15 malagebidi 2024-07-27 20:03:14 +08:00 怎么小丸就成唯一真神了,如果 x264 的参数都有认真学习过,按理说应该是用 megui 或者命令行,我反正也试过 Handbrake 不止一次,一点感觉都没用出来。 |
16 piero66 2024-07-27 20:21:31 +08:00 via Android @HOMO114514 正常直接用达芬奇自带的 encode 流程就够 |
17 3IOhG7M0knRu5UlC 2024-07-27 20:32:57 +08:00 via Android 能导出 ffmpeg 命令吗 |
19 icaolei 2024-07-27 21:47:18 +08:00 @HOMO114514 #12 确实,压缩率不够,还是挺大的。不过 CQ 相同体积居然能差 2 倍,这个属实没想到能差这么多。我去年在 vidcoder 上用过 NVEnc 和 x265 来对比,当时感觉没差那么多,所以后来我还用 NVEnc 压了不少视频。 |
20 hahao 2024-07-29 08:43:16 +08:00 请问 MAC 上有没有类似小丸工具箱这种工具,压缩效果好画质还保留不错的?刚换 MAC ,一时没找到 |
21 kero991 2024-07-30 15:11:39 +08:00 想起了我很早以前玩压片时的经历,但当年快压用 mediacoder ,精压要用 avs+megui 啊,当年那个自带不少压片组预设参数的 megui 安装包还让我弄丢了,找了很久没找到 |
22 Kagari 2024-08-02 14:57:20 +08:00 我刚想说 n 卡录屏的色域播放时有点问题,然后发现 vmaf 的对比源不是源文件。如果不缩分辨率的话用 LosslessCut 这种关键帧裁剪工具更快 我最近用 av1 来压,svtav1psy SvtAv1EncApp --rc 0 --preset 4 --qp 45 如果是 40 系的话直接回放 av1 就行了,更新之后已经支持 av1 了 |
23 cat 345 天前 请教 OP 有没有调教过 4K 压缩的经验,要什么参数才能体积尽可能小的情况下不要断层不要色块呢 |
24 VwEI 254 天前 请教 OP 有没有 AV1 或者 H265 的 |