V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Licsber
V2EX  ›  宽带症候群

个人收藏、归档视频 有比 HEVC 更好的编码方式吗?

  •  
  •   Licsber · 2021-12-16 15:45:58 +08:00 · 8275 次点击
    这是一个创建于 1105 天前的主题,其中的信息可能已经有所发展或是发生改变。

    需求:

    1. 体积缩小(会对 AVC 的视频二压 接受部分损失 很多视频不想删又不想占用太多空间)
    2. 尽可能保留细节(感觉 HEVC 涂抹太严重了 肉眼可见的发丝、雪花等细节模糊)
    3. 可在 macOS 上使用空格键预览(兼容 QuickTime player 即需要添加 hvc1 的 vtag 这点排除了 vp9 )
    4. 编码效率可接受(排除 av1 不知道为什么只有单线程 libaom-av1 实现 巨慢无比)

    从前天测试到今天 还算满意的压制参数如下:
    gpu:

    function ff() {  
    	ffmpeg -y -hwaccel auto -threads auto -i "$1" -c:v hevc_nvenc -vtag hvc1 -bf 4 -preset slow -rc:v vbr_hq -qmin 10 -qmax 52 -bufsize:v 8M -profile:v main10 "${1%.*}".enc.mp4  
    }
    

    cpu:

    function ffw() {  
    	ffmpeg -y -threads auto -i "$1" -c:v libx265 -vtag hvc1 -bf 4 -crf 23 -preset slow -qmin 10 -qmax 52 "${1%.*}".enc.mp4  
    }
    

    有没有路过的大神帮忙看看还有没有优化的空间

    49 条回复    2021-12-17 18:41:03 +08:00
    cpstar
        1
    cpstar  
       2021-12-16 15:51:44 +08:00
    编码方式还有啥不知道,但是我知道直接买块更大的硬盘
    Licsber
        2
    Licsber  
    OP
       2021-12-16 16:18:40 +08:00
    @cpstar #1 确实可以
    但是还想要把各种奇怪格式都转成 mp4 比如 rmvb 、mkv
    还有一些 QuickTime player 预览会卡顿的 mp4 都想要重新编码一下
    msg7086
        3
    msg7086  
       2021-12-16 17:11:59 +08:00 via Android
    暂时只有 hevc 。等个五年左右应该有更好的选择。
    mxT52CRuqR6o5
        4
    mxT52CRuqR6o5  
       2021-12-16 17:30:22 +08:00
    av1 的开源编码器的速度巨慢,压缩率似乎也不咋地(用 av1 的大厂都是用自家私有的编码器的)
    hevc 应该是目前最好的选择,如果细节不行试试看加大码率
    h.266 成熟后 h.266 就是最好的选择了,收费的还是好用
    Licsber
        5
    Licsber  
    OP
       2021-12-16 17:33:04 +08:00
    @msg7086 #3 也看到了文章说 储存原始视频是最好的 因为总有更好的编码方案
    一路等下去哪里是个尽头呢(🐶
    Licsber
        6
    Licsber  
    OP
       2021-12-16 17:38:39 +08:00
    @mxT52CRuqR6o5 #4 感觉 av1 真的就是战未来了 完全没办法拿上来比
    我这测试下来 上面的 HEVC 参数对于一些略有噪点的视频(比如老番)完全看不出来区别
    但是对于真人皮肤细节就不太行 使用原始码率都会带一点涂抹感觉
    要是现实视频也能有 waifu2x 这样的模型就好了 自动锐化补充高频细节
    mxT52CRuqR6o5
        7
    mxT52CRuqR6o5  
       2021-12-16 17:56:21 +08:00
    @Licsber
    av1 未来我认为也不太行,只有大厂有能力自研编码器的才用得好 av1
    番剧的编码参数的话,可以研究研究那些压制组的参数
    amirobotics
        8
    amirobotics  
       2021-12-16 17:58:46 +08:00
    虽然我不懂这些,但是我会白嫖好几个 OD 25TB 。
    Rheinmetal
        9
    Rheinmetal  
       2021-12-16 17:59:16 +08:00
    原始数据加密 aws glacier
    qq316107934
        10
    qq316107934  
       2021-12-16 18:00:52 +08:00
    建议存原始视频,过几年可能又有 H.267 出现,效果更好了
    wy315700
        11
    wy315700  
       2021-12-16 18:03:15 +08:00
    4K 以上用 Hevc 比较好,1080 其实没啥大区别。
    当然,费尽心思去编码,还不如买个更大的硬盘,毕竟很多商业片或者字幕组压片的参数比你这些参数要牛逼的多,也慢得多。。
    Licsber
        12
    Licsber  
    OP
       2021-12-16 18:28:37 +08:00
    @mxT52CRuqR6o5 #7 大厂自研的 av1 就没一个公开的 估计现阶段也拉垮
    嗯 感觉各种字幕组在这方面经验很多 一些番剧都是压的很不错的

    @amirobotics #8 白嫖 od 对我没啥用 不在本地的数据我都会加密 这就丧失了随时预览的能力

    @Rheinmetal #9 还没到这种量级 虽然这是最好的归档方案了

    @qq316107934 #10 哈哈 H.267 估计有生之年了 265 都花了十年 到那个时候硬盘应该不值几个钱了

    @wy315700 #11 嗯 每次编码都会引入损失 想的是这个损失近可能小 只要收益超过付出成本就 ok
    ynyounuo
        13
    ynyounuo  
       2021-12-16 18:28:46 +08:00 via iPhone   ❤️ 2
    @Licsber
    现阶段 HEVC 就是最优选择,当然二压别人的压制没有必要

    热门商品视频的原始数据如果不是为其他 encoder 发电根本没必要存;一来商品发售的成片也不是 raw data 甚至根本不接近制作原素材十分之一的信息量,二来这些玩意儿想买或者找的难度都不大;非常小众的可以存

    好的视频内容自然会有商业公司或顶层粉丝利用真正接近 raw 的 data 的拷贝或素材进行重制(比如 Criterion 的部分出片和星战 4K77/80/83 等)

    一般水平或尚未得到这些待遇的视频内容只要已保存内容和在售商品保持一定的 transparency ,并且各类设备都可以支持回放就足够好了,现在的普及程度,合理的 HEVC 压制就足够做到这点

    未来没必要保,一来过几年个人运算力和个人能拥有的储存空间都会大幅提升,二来商品视频也会因为流媒等的发展利用 raw data 或接近 raw 的 data 制作新的商品(现阶段很多流媒体的部分发布素质已经超越了 BD ,未来还会有更多比如 Bravia Core 之类的服务只会带动更多淘汰旧版视频商品的东西)
    mxT52CRuqR6o5
        14
    mxT52CRuqR6o5  
       2021-12-16 18:38:12 +08:00
    @Licsber
    大厂的私有 AV1 编码器有可能压缩比不差的(应该是能达到 hevc 相当或差一些的水平),av1 就是个视频编码标准,也就是定义了一些描述视频冗余信息的规则,至于怎么利用这些规则达到更大的压缩比就是编码器的事了,服务器上传流量毕竟还是一个很贵的东西,大厂是有动力去做一个高压缩比的 av1 编码器的(同时也是 Hevc 明明很贵还是需求的原因)
    Licsber
        15
    Licsber  
    OP
       2021-12-16 21:33:25 +08:00
    @ynyounuo #13 谢谢 感觉还是我对 HEVC 的期望太高了
    现在决定还是保留原始文件 + HEVC 二压用来快捷预览和网络分享
    期待未来有创时代的技术可以解决画质细节和压缩率之间的 trade off

    @mxT52CRuqR6o5 #14 只能期待过几年 av1 普及( HEVC 可是等了十年
    mikewang
        16
    mikewang  
       2021-12-16 21:47:58 +08:00
    个人建议不用二压,压制组辛辛苦苦调的参数肯定不会差的。现在储存成本也不是很高,如果不常用就买块破硬盘存着呗。消耗算力又降低画质,不划算。
    clrss
        17
    clrss  
       2021-12-16 22:37:03 +08:00
    根据经验, 同码率下的画质, 软压 AVC = 硬压 HEVC.

    压制组的 AVC 都是软压吧. hevc_nvenc 比不了.
    kokutou
        18
    kokutou  
       2021-12-16 23:03:58 +08:00
    cpu 别的参数删了, 直接 crf 26 veryslow

    gpu 别用, 质量烂的很, gpu 是给推流直播用的.
    chinni
        19
    chinni  
       2021-12-16 23:11:30 +08:00 via Android
    一句话…二次压缩没意义…还不如大硬盘
    1423
        20
    1423  
       2021-12-16 23:22:39 +08:00
    硬盘越来越便宜。。对历史数据的压缩越来越没有必要
    Kagari
        21
    Kagari  
       2021-12-16 23:34:36 +08:00
    h264 时代之前的抄个参数转成 HEVC ,h264 、h265 的就不要动了
    ZRS
        22
    ZRS  
       2021-12-17 01:27:40 +08:00
    不要二压
    tsui
        23
    tsui  
       2021-12-17 04:16:36 +08:00
    20 年前,我们热衷于收藏 192Kbps MP3 ,挂着 52k 小猫下载,Lame 跑一天压缩到 128Kbps 甚至 96Kbps 方便携带

    楼主是不是觉得是曾相识呢
    cxumol
        24
    cxumol  
       2021-12-17 04:31:00 +08:00 via Android
    软压 -c libx265 压缩率更高,请问 h264 用 libx265 转过来画质如何?
    hei1000
        25
    hei1000  
       2021-12-17 04:42:59 +08:00
    我前不久试过 hevc+ffmpeg 各种参数搭配测试效果,最后发现直接提供 bitrate 是最好的,其他 preset 都不好控制清晰度+文件大小的平衡

    `ffmpeg -hide_banner -i input.mp4 -c:v hevc_nvenc -c:a copy -b:v 2000k output.mp4`
    上面 2000k 换成自己想要的
    yuzo555
        26
    yuzo555  
       2021-12-17 05:36:00 +08:00
    “尽可能保留细节”,要做到这一点你得排除 nvenc
    charslee013
        27
    charslee013  
       2021-12-17 06:16:54 +08:00
    随便找了个旧番视频测试下 , 源视频是 h264
    ```bash
    ❯ ffprobe -v error -select_streams v:0 -show_entries stream=width,height,duration,bit_rate -of default=noprint_wrappers=1 input.mp4
    width=1920
    height=1080
    duration=1373.038333
    bit_rate=2441310
    ```

    ffmpeg 压缩参数(平台是 Apple M1 )
    ```bash
    ffmpeg -i input.mp4 -c:v hevc_videotoolbox -vtag hvc1 -c:a copy -x265-params lossless=1 -preset slower output.mp4
    ```

    压缩成 hevc 后可见码率是下降了许多
    ```bash
    ❯ ffprobe -v error -select_streams v:0 -show_entries stream=width,height,duration,bit_rate -of default=noprint_wrappers=1 output.mp4
    width=1920
    height=1080
    duration=1379.086042
    bit_rate=927937
    ```

    对比下压缩后的体积
    ```bash
    ❯ du -h input.mp4 output.mp4
    429M input.mp4
    192M output.mp4
    ```
    压缩率有 44.7% 还算不错

    然后以 PSNR 和 SSIM 测试下两者的差异
    ```bash
    ❯ ffmpeg -i input.mp4 -i output.mp4 -lavfi psnr -f null -
    [Parsed_psnr_0 @ 0x108b05eb0] PSNR y:25.101322 u:34.842173 v:36.384440 average:26.670481 min:4.389950 max:inf

    ❯ ffmpeg -i input.mp4 -i output.mp4 -lavfi ssim -f null -
    [Parsed_ssim_0 @ 0x106d06ce0] SSIM Y:0.949013 (12.925385) U:0.976488 (16.287145) V:0.978982 (16.774069) All:0.958587 (13.828618)
    ```

    技术总结:动漫番剧之类不太特别看重画面质感的可以转换成 hevc 格式以便于压缩保存,如果本来就是二压过的视频还是以源视频为好
    jackmod
        28
    jackmod  
       2021-12-17 07:27:05 +08:00
    之前为了节省动画片的空间我直接 -c:v hevc_nvenc -qp:v 35 肉眼看不到明显的细节区别。
    现在选择塞硬盘里。
    hevc 的默认品质好像是 28 来着。
    pperlee
        29
    pperlee  
       2021-12-17 09:08:20 +08:00
    个人收藏,其实直接存起来就好了。毕竟大多数播放器都是向下兼容的,完全没有必要再次压缩。多年以后你来看这些视频,其实都是一样的,因为你已经老花眼(或者高度近视),看不清了。
    wanguorui123
        30
    wanguorui123  
       2021-12-17 09:15:27 +08:00
    如果是 M1 ,还是用 HEVC 吧,有硬件加速
    geekvcn
        31
    geekvcn  
       2021-12-17 09:16:48 +08:00
    尽可能保留细节。。。视频编码,图片压缩都是基于有损压缩,想尽可能保留细节用无损压缩算法+大字典吧。视频编码基本上就是把光栅化帧尽可能矢量化,并引入关键帧前后帧进一步提高矢量化程度以此降低大小,代价就是细节损失。想要效果好别用硬件编码,用软件编码高预设就行了
    shadows
        32
    shadows  
       2021-12-17 10:07:28 +08:00
    如果是热门内容,有新技术了自然有压制组重新压制
    dadachen1997
        33
    dadachen1997  
       2021-12-17 10:11:25 +08:00
    建议硬盘冷备等未来新的编码格式出现,or 容量大跳水
    3dwelcome
        34
    3dwelcome  
       2021-12-17 10:13:38 +08:00
    @hei1000

    这是真的,只要码率上去后,管他什么压缩算法,无脑选就行了,效果都不差的。
    xz410236056
        35
    xz410236056  
       2021-12-17 10:17:11 +08:00
    H2XX 这种不是要专利费的吗
    lovehigh
        36
    lovehigh  
       2021-12-17 10:20:21 +08:00
    1. AV1 的话可以用用看 SVT-AV1 ,比 libaom-av1 快不少。当然肯定不能和 libx265 比
    2. GPU 加速的不要用,体积小不了多少。
    XiLingHost
        37
    XiLingHost  
       2021-12-17 10:24:43 +08:00
    与其重编码,不如重新打包,把各种 metadata 都修正好,然后用 mkv 作为容器格式把视频音频字幕流都匹配好包装好,文件名用规范格式写好,目录结构组织好
    这样不是更利于归档吗
    至于实际的流,就各自用原始的编码格式就行了
    hronro
        38
    hronro  
       2021-12-17 10:37:40 +08:00
    你要归档视频,追求压缩比完全没有意义啊,因为以后肯定会出现比现在压缩比更高的格式,特别是如果你要归档多年,那么一旦编码格式更新 2 代以上,你就会发现你之前的视频完全是渣渣。

    相比追求压缩比,我自己更倾向于追求无损画质。我现在用 380Mbps 的 10 bit HEVC 格式编码视频,画质几乎接近于无损,代价就是视频体积相当大。
    mxT52CRuqR6o5
        39
    mxT52CRuqR6o5  
       2021-12-17 11:10:14 +08:00
    @Licsber
    大厂们只需要有个 AV1 的编码标准在那里就行了,并没有动力去改善开源的编码器表现的,普及了也不适合当转码收藏用的编码方式
    mxT52CRuqR6o5
        40
    mxT52CRuqR6o5  
       2021-12-17 11:16:13 +08:00 via Android
    @hronro bd 原盘都没这么高码率吧,片源是母带吗?
    libook
        41
    libook  
       2021-12-17 11:31:27 +08:00
    突然在想,原片是不是刻光盘,然后就没必要存硬盘里了,硬盘里可以存压制后的。

    同样一直观望 AV1 编码,目前消费级硬件貌似只出了硬解码,没出硬编码,软编码没找到速度可以接受的。
    hronro
        42
    hronro  
       2021-12-17 11:47:10 +08:00
    @mxT52CRuqR6o5 #40 我自己拍的一些视频,记录日常的。电影的话直接保存 BD Remux 就挺好的了。
    ji39
        43
    ji39  
       2021-12-17 11:49:13 +08:00
    56k 的小猫
    anbobi
        44
    anbobi  
       2021-12-17 13:50:18 +08:00
    JPEG2000 ,影院 DCP 数字拷贝都是用的这个,肯定比 HEVC 好
    newmlp
        45
    newmlp  
       2021-12-17 13:52:55 +08:00
    hevc 编码 1080 及以下的时候要调低最大 ctu 到 32 ,不然就会有细节损失
    wangsd
        46
    wangsd  
       2021-12-17 14:23:54 +08:00
    AV1 可以使用 SVT-AV1 ,intel 和 netflix 的开源实现,速度会快不少,不过综合下来 HEVC 是目前最好的选择了。
    geniussoft
        47
    geniussoft  
       2021-12-17 16:11:51 +08:00 via iPhone
    不压了,现在单盘 18T 了。
    马上 20T 就上市。
    retamia
        48
    retamia  
       2021-12-17 17:19:34 +08:00
    @Licsber 大厂自研的 AV1 并不会拉胯,要比开源的版本速度和压缩率都要好很多。

    目前自研的编码器都会结合算法来进行感知编码,对人眼区域敏感的地方分配更多的码率,但这种都是商业的,需要付费。针对不同客户的视频类型都会使用不同的转码参数,这些都有相关测试人员来进行主观测试和 vmaf 之类的打分的

    如果你忍受压缩速度,可以用 veryslow preset ,crf 可以尽量低,但是码率就会变大。4k hdr 以下的,hevc 和 avc 差别不是太大。
    huihuilang
        49
    huihuilang  
       2021-12-17 18:41:03 +08:00 via Android
    有这么点功夫编码还不如多买两个硬盘呢
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4084 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 10:14 · PVG 18:14 · LAX 02:14 · JFK 05:14
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.