大家好啊,今天做一个视频压缩的科普贴,方便给硬盘不够的站友腾腾空间,事先说明本人并未专门研究过这方面的详细内容,如有错误,欢迎指正。如果你只关注结论,建议只看红字
![]()
影响一个视频的大小主要有这几个因素:码率 分辨率 帧率 编码器选择,其中为了尽可能保持高质量近似无损的压缩,我们一般不会去更改分辨率以及帧率,那么码率和编码器就是我们需要去更改的了
首先,先谈编码格式。如今最常用的几种。分别有h264 h265 av1,h264产生于2003年,目前仍是最常用的视频编码标准,目前绝大多数在线网站仍使用h264编码,包括红p和别的平台的作者,但是由于产生时间长,压缩率如今看来不是很高,h265产生于2013年,是h264的继任者,据官方称,H.265 在压缩效率上比 H.264 提高了大约 50%,这意味着在保持相同画质的情况下,H.265 视频的文件大小可以减少一半。实际虽然没这么夸张吗,但比h264也好很多了。至于av1产生于2018年,据说同样的体积,相比h265,它能够提供20%到30%的画质提升,由于相比h265高额的版权费,av1开源的特性,如今各大平台如奈飞 b站 油管都广泛使用了av1。
其次各个编码器一般来说有软件编码也就是cpu编码以及硬件编码也就是显卡编码的差别,其中二者的区别简单概括就是,在同样码率下cpu的优势是质量更好,大小更小,而显卡的优势是速度更快,一句话cpu是慢工出细活,显卡是速度似火箭。
在视频压缩中,我不推荐使用h264以及av1,h264因为时间过于久远,且目前绝大数作者的源视频就使用h264,那么你在压缩后往往并不能获得一个质量较好或是体积较小的视频,因此我更推荐使用h265编码,在我实际测试中,它可以帮我节省40%甚至90%的空间,而视频质量不管是主观截图以及vmaf还是用客观的psnr ssim评测,都基本可看作无损,至于av1我并不推荐使用,首先av1软件编码速度极慢,不管是libaom rav1e 还是svt-av1,那个速度实在太慢了,显卡编码速度倒是很快,但是目前只支持40系n卡以及intel的独显和最近的几代核显,av1的质量只在极低码率下会比h265有优势,一旦码率在1500以上,表现会大幅下跌,所以一我推荐你可以在压缩一些简单的2d动画时使用它,比如里番这类。而且请注意av1编码的视频,你需要充分考虑设备的解码支持情况,以我的手机是晓龙888为例,它并不支持硬件解码av1,在播放的时候查看功耗,h265硬解功耗有1.5w左右,而av1在5w左右,都快赶得上玩米家游戏的功耗了。
说完了编码器选择,下面是具体的压缩教程。目前市面上可以用的压缩软件有很多,我在这里推荐使用shannencoder,他是一个优秀的批量压缩软件
首先打开软件,点击快速设置,在里面的编解码器中我们能看到这些,其中不带括号的av1 h265 h264是采用软件编码,带括号中的nvenc qsv amf分别是英伟达 因特尔 amd的硬件编码,如果是使用硬件编码 那么你有什么显卡就选择编码器,其中注意amd的显卡编码质量明显差于其他两家一些。
在编码器下方有质量 量化器 比特率三个选项,其中质量我建议只在使用cpu软件编码中启用,而量化器则只在硬件编码中启用,如果你想严格控制视频的体积那么请选择比特率选项。但是就我个人而言,在做本地存储中,我不会使用比特率模式,我更看重视频的整体质量,选择比特率会难以控制。在不同编码器中点击配置会看到对应的设置,cpu编码推荐使用crf23作为标准值,大致等于视觉无损压缩,其中的配置如果想直接省事就用slow 旁边的main10profile勾选,10bit输出可略微减小体积。
如果是显卡编码,cqp通常选择24,这是一个标准值,点击配置其中的main10代表10bit视频深度输出,这个推荐始终启用,级别保持auto 预设选择p5或者p7,二者差距很小,推荐p5,在4k视频编码中可以跑到100以上的fps,在1080p中更是可以达到三四百fps,选择p7速度大约会下降50%。
其他的帧率 图片大小什么的一般不要动,最下面的是音频编码选择,一般直接用复制就好,在主界面的偏好设置-解码器设置中推荐把h264 hevc/h265 av1的设置调整为sw,即软件解码,这样可以最大化速度,缺点是cpu占用会上升些。
下面是各编码器速度对比
以我自己使用8845h+rtx4060为例子,贴一个简单的速度对比图。
首先是1080p分辨率的视频
然后是nvenc显卡编码
cqp p7预设,速度在200fps上下
p5预设,速度直接翻倍! 要注意p5和p7预设反应在vmaf跑分中只有0.2左右的差距,区别很小
下面是4k分辨率视频对比
x265 crf24,只有4到5的fps 这个速度已经很慢了
nvenc cqp24 p5,可以看到也可以达到100fps以上,这个速度是cpu的25倍以上了,而且在4k高码率情况下 cpu和显卡编码的质量会被大幅拉到同一水平线,如果你不是强迫症用户,4k视频就不要用cpu压了
最后是ffmetrics这个工具的介绍,这是一款专门用来对比单个视频不同编码器预设参数下质量的对比软件,通过它,你可以获得详细的视频参数比较,
里面的psnr ssim vmaf分别是不同的视频质量评估标准,其中的vmaf更贴近人眼感受,偏向主观,vmaf在95分以上大约可认为无损,如果视频分辨率是4k及以上,在model里面选择vmaf_4k_v0.6.1.这个视频中我用h265 nvenc cqp24对比x265(cpuh265)crf23 自定义参数,可以发现后者比前者高了2.5分左右,但是实际的视频大小上,cpu是55.5 显卡是47.9,之后我调整cqp为22,视频大小为58.6,vmaf得分为95.6,相比cpu编码仍有一定差距,因此也印证了我们之前的结论,即同等体积,cpu编码中等预设画质大于显卡编码,同等视频质量,cpu编码的视频一定比显卡更小。但是请注意,对于各种各样复杂度的视频,你没办法使用一个或几个码率做到一劳永逸,所以我仍推荐你使用cpu crf23或是显卡cqp24,他们都能提供给你一个不错的质量,视频大小可以做到相比原视频大幅减少。当然crf或是cqp并不是适用于所有视频,他们对于原始未经压缩的视频友好,如果是一些网站下载已经二压三压的视频,那么还是选择码率更好,至于多少,一般粗暴地选原来的一般就可以
压完mp4文件不显示封面了,请问这个有解决方法吗?
@orara 显卡速度很快,cpu会慢点
以上评论亮了
请问压得速度快么?
@orara 显卡速度很快,cpu会慢点
@AshShocked
2080Super也有NVenc
@illllllllll 并不会,n卡1650super及以上改进了编码单元,按我文章里面用cqp24 10bit转码,vmaf保底93 94以上,n卡是低码率同样画质nvenc压出来的视频大小要比x265大25%上下,也就是同样在中低码率下不如cpu,但是中高码率区别就越来越小了,用cpu压主要是太慢了,一个4k 5分钟mmd压一个小时都困难
学习了,这边一般拿小丸无脑压,原理一点不懂

这次看看大佬的教程,测试测试
先马一下,下次试试,所有盘全红了
对于高码率视频,h265快进时会比h264慢吗
很多超分补帧去码视频码率太高,快进时需要等零点几秒才会播放,很影响体验。265压缩率更高了会不会更卡了
@触手怪 应该是不会的,我用potplayer播放30w码率的视频都不会卡顿,可能是你播放器没有用硬解,软解高分辨率高帧率吃cpu性能,性能不足会卡,n卡在9系之后都支持硬解h265 10bit了
依稀听到CPU在骂我
感谢大佬分享!我的硬盘有救了!
然后一点点小疑惑希望大佬解惑,本人机器是23款拯救者i9-13900hx+RTX4060,在假定片源都是1080p/30fps或以上的规格(不太确定码率,但应该不低),可以直接无脑用大佬帖子里的N卡设置吗?虽然4060也是垃圾卡,反倒cpu很强,但是不确定cpu压的效率如何,但估计总归是不如gpu的。然后cqp在哪个位置呀我好像没看到。
感谢感谢!
@小黑 可以的,显卡编码用我的预设配置就可以,解压出来打开右边的那些配置,一般用nvenc cqp那两个,如果要用cpu去压,就用最下面那两个,cpu和显卡的速度对比我更新在文章里了,13900hx多核强适合压片,但是速度肯定是比不上显卡的,要用的话建议关睿频或是锁cpu功耗,不然太吵了。cqp就是那个量化器
@AshShocked 好嘞 感谢大佬
mmd的压缩效果特别好,值得折腾
能不能压缩‘压缩完的视频’,理论上体积会再次变小(虽然量不高),依次循环以实现...
@MiuKu 当然可以,不过这种三压及以上的就要用比特率了,恒定质量(crf cqp)不适合,压缩出来可能比之前都大
大佬,用这个软件导出和用剪映不剪辑直接换编码器导出的区别在哪呀?
@po886655886 我有用过pr和剪映的视频导出,就算不做任何更改,无论哪个预设参数,同样码率都不如shanaencoder这类专业压制软件质量高,而且差的有点多
@AshShocked 感觉到了,昨天试着用剪映甚至导出了比源文件还大的一坨。大佬,还有个问题,就是下面那个对比的软件,我把视频导入之后它一直没法显示参数,没法对比是啥情况。
@po886655886 不清楚哦,右边那里勾选vmaf,然后最上面把源视频拖进去,下面的框里拖入你对应压缩后的一个或多个视频,然后点start,等待结果,这就是完整流程了
感谢大佬
,原来的软件只能一个个压,加上各种参数也不是特别懂。
整起来麻烦,所以只压缩一些很大很长的视频。现在批量压缩,刚刚试了一下800多M的文件夹,压完200M不到。
看了几个视频画面都看不出来啥损失。 
压完mp4文件不显示封面了,请问这个有解决方法吗?
@scpeop03 这是windows的问题,用k-lite或者lcaros都可以解决,我用的是lcaros
@scpeop03 WIN10自带的解码貌似打不开压缩后的文件。
是大佬!我的硬盘有救了,在某个帖子下面看到说站里有工具教程教人压缩视频,照着大佬 设置基本上1.26G变成500m ,画质肉眼感觉不出什么损失,我觉得我又行了,就是不知道对于那种长时间的AV有没有用