HOMO114514

终于在 Handbrake 上复刻出了压制领域真神小丸工具箱的效果

  •  
  •   HOMO114514 · Jul 27, 2024 · 6476 views
    This topic created in 804 days ago, the information mentioned may be changed or developed.

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

    不做参数优化的情况下 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
    }
    
    Supplement 1  ·  Jul 27, 2024

    补充一些测试结果

    评估方法

    使用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差异很大,暂时不想研究怎么套过去,所以直接用了空参数。

    1. FPS游戏录像

    一段Apex Legends的游戏录像,这类视频的特点是3D场景且画面瞬息万变,使得无论是时域还是空域的压缩难度都极高,使用CRF作为码率控制方法时,码率都会偏高。

    源

    由Nvidia即时回放录制,视频设定是1440P@60fps,70Mbps

    使用Davinci Resolve截取片段,并导出为1080P H.264 Master,具体参数可见下图:

    image-20240727170953655

    压制结果

    工具 编码器 预设 参数 速度 码率 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

    QQ20240727-162258

    Supplement 2  ·  Jul 27, 2024

    2. 手机录像

    使用iPhone 14 Pro Max录制的4K 60fps HDR室内弱光静物,未开启ProRes

    源

    iPhone原相机录制

    Davinci Resolve截取片段,套映射回SDR,并导出为1080P H.265 Master

    image-20240727173642348

    image-20240727173704811

    压制结果

    工具 编码器 预设 参数 速度 码率 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反而是最低的,但它的码率控制始终最强。

    image-20240727175546702

    Supplement 3  ·  Jul 27, 2024

    3. 动漫蓝光原盘

    《小林家的龙女仆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'
    

    image-20240727183220853

    压制结果

    工具 编码器 预设 参数 速度 码率 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

    image-20240727185723558

    唉,小康娜真可爱

    结论

    小丸还是唯一真神。

    使用小丸参数的Handbrake在质量和速度方面获得了综合起来较好的成绩,已经十分接近小丸的质量,

    但slower相比slow牺牲速度换来的质量提升意义不大。

    不携带参数时,x264和NVENC的分数都很高,但是码率都控制不住。

    24 replies  •  2025-03-18 15:29:35 +08:00
    shyling
        1
    shyling  
       Jul 27, 2024
    小丸那套参数确实很强,表面上都是 ffmpeg ,但是我用别的工具确实没那个效果

    改天用用你的。

    有没有具体每个参数的分析啊。
    v7eeaU2MLyWNvp
        2
    v7eeaU2MLyWNvp  
       Jul 27, 2024
    265 有研究么?我还说以后有机会把我存的各种视频压个 265 呢。265/HEVC 不是说体积比 264 小的更很多么
    acess
        3
    acess  
       Jul 27, 2024
    楼主的图里有评分么?看来看去好像都没找到……
    jkjoke
        4
    jkjoke  
       Jul 27, 2024
    感谢分享,测试了一下体积小了很多,画质肉眼几乎看不出变化
    yazoox
        5
    yazoox  
       Jul 27, 2024
    感谢分享!
    easynote
        6
    easynote  
       Jul 27, 2024
    mark ,等一个 265
    lazywen
        7
    lazywen  
       Jul 27, 2024
    handbrake 视频码率默认 1000 左右吧?有点低了
    HOMO114514
        8
    HOMO114514  
    OP
       Jul 27, 2024
    @lazywen
    Handbrake 出场预设叫 Fast 1080p30 ,使用的设置是
    x264 ,30fps ,22RF ,Fast ,Main ,L4.0
    不知道你说的 1000K 码率从何而来。
    piero66
        9
    piero66  
       Jul 27, 2024 via Android
    压制组好像都不用 handbrake ,用什么 VapourSynth ,据说效果比 handbrake 特调还能再好点
    piero66
        10
    piero66  
       Jul 27, 2024 via Android
    我有次拿 handbrake 投稿,被压制组嘲讽了,你可以看下 vcb 的教程 https://guides.vcb-s.com/basics
    icaolei
        11
    icaolei  
       Jul 27, 2024
    这样一看,NVEnc 的优势太大了,速度和质量都有领先。
    HOMO114514
        12
    HOMO114514  
    OP
       Jul 27, 2024 via iPhone
    @icaolei
    码率爆炸了,压制的第一个字是首先是压
    nvenc 和 qsv 设计上都是适合 CBR 场景,比如流录制、流直播、jellyfin 等服务器的转码回放,以 CQ 为控制目标用于本地存储的时候体积占用是纯 CPU 的 2 倍
    HOMO114514
        13
    HOMO114514  
    OP
       Jul 27, 2024 via iPhone
    @piero66
    vcb 的系列教程都看过,handbrake 还是主要给日常工作用途的压片降体积,用 vs 有种牛刀杀鸡的味道,专业的事情、专业的作品发行,还是让专业的人来吧

    我个人认为:
    便捷度 <------------------> 专业度
    Handbrake 小丸 megui 、vs 等
    slowman
        14
    slowman  
       Jul 27, 2024
    截图有错误?哪里 76 分?
    malagebidi
        15
    malagebidi  
       Jul 27, 2024
    怎么小丸就成唯一真神了,如果 x264 的参数都有认真学习过,按理说应该是用 megui 或者命令行,我反正也试过 Handbrake 不止一次,一点感觉都没用出来。
    piero66
        16
    piero66  
       Jul 27, 2024 via Android
    @HOMO114514 正常直接用达芬奇自带的 encode 流程就够
    3IOhG7M0knRu5UlC
        17
    3IOhG7M0knRu5UlC  
       Jul 27, 2024 via Android
    能导出 ffmpeg 命令吗
    slowman
        18
    slowman  
       Jul 27, 2024
    @piero66 #10 看你压什么内容, 动漫 BD 裸压确实可能被视为落后, 但其他内容就不一定了
    icaolei
        19
    icaolei  
       Jul 27, 2024
    @HOMO114514 #12 确实,压缩率不够,还是挺大的。不过 CQ 相同体积居然能差 2 倍,这个属实没想到能差这么多。我去年在 vidcoder 上用过 NVEnc 和 x265 来对比,当时感觉没差那么多,所以后来我还用 NVEnc 压了不少视频。
    hahao
        20
    hahao  
       Jul 29, 2024
    请问 MAC 上有没有类似小丸工具箱这种工具,压缩效果好画质还保留不错的?刚换 MAC ,一时没找到
    kero991
        21
    kero991  
       Jul 30, 2024
    想起了我很早以前玩压片时的经历,但当年快压用 mediacoder ,精压要用 avs+megui 啊,当年那个自带不少压片组预设参数的 megui 安装包还让我弄丢了,找了很久没找到
    Kagari
        22
    Kagari  
       Aug 2, 2024
    我刚想说 n 卡录屏的色域播放时有点问题,然后发现 vmaf 的对比源不是源文件。如果不缩分辨率的话用 LosslessCut 这种关键帧裁剪工具更快
    我最近用 av1 来压,svtav1psy SvtAv1EncApp --rc 0 --preset 4 --qp 45
    如果是 40 系的话直接回放 av1 就行了,更新之后已经支持 av1 了
    cat
        23
    cat  
       Dec 17, 2024
    请教 OP 有没有调教过 4K 压缩的经验,要什么参数才能体积尽可能小的情况下不要断层不要色块呢
    VwEI
        24
    VwEI  
       Mar 18, 2025
    请教 OP 有没有 AV1 或者 H265 的
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1042 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 71ms · UTC 18:15 · PVG 02:15 · LAX 11:15 · JFK 14:15
    ♥ Do have faith in what you're doing.