Ffmpeg 压缩视频的最佳参数是怎样的?

我想知道 ffmpeg 是否有最佳的视频压缩参数,以及它的命令是怎样的。

压制参数要根据你的压缩率、目标画质、压制时间三者权衡,不同类型的视频所需的参数也不同,当然没有什么所谓的最佳参数,如果你只想要一个傻瓜式的压制工具,不妨试试别的,ffmpeg显然不太符合你的需求。

1 个赞

视频压制的话,考虑的问题很多,本地的观看设备,片源动画和真人影片要求也不同,如果是网站上传,还得考虑网站的上传文件限制,超过网站要求的文件限制网站还会二压,如果是一键的话可以考虑小丸.

crf 23

-crf 23 质量差了点。我都是用-crf 17的

要最佳的话 -preset placebo,压制会非常慢
还要根据视频来调-tune

-preset 控制效率,-crf 控制质量(越小越好)。
赶时间可以 -preset ultrafast -crf 14,不赶时间可以 -preset veryslow -crf 17。
只是举例,最终效果不满意可以把 crf 再往低调,但是文件也会变得更大。

除了楼上几位提到的视频内容本身的差异,还有个播放设备(屏幕分辨率)和观看者(肉眼分辨率)的影响。
我一般是切几个10-30秒的片段出来,然后用不同的 crf 值输出样片,肉眼自测。
遇上“适合”的视频,-crf 14-crf 23压制后的画面效果真没啥差别(或许我该换眼镜了 :joy:

FFmpeg默认好像就是23,我转mv和搞笑视频到手机用的27(越大画质越差),小屏幕肉眼几乎无法区别

学习一下啊

要是有最佳参数的话,估计就不会有压制组出现了,毕竟都用唯一的那个“最佳参数”,完全是一样的结果……
优质压制组的主旨都是在画面尽可能好的前提下,获得最小的体积,需要大量的参数试验,每个片都可能需要不一样的参数设置。
所以说压制是一个专业活

1 个赞

不同的需求,不同的參數。你把參數調高,那質量就肯定更好,但是體積也上去了。

質量到了一定程度,可能肉眼就看不出區別。

我对压制组的理解不太一样,压制组主要解决色带和调色之类的问题,压制参数反而不太重要。

ffmpeg的压制其实用的还是x264,对于x264有数十个可调参数(没数过,二十来个是有的)对最终成品会有影响.

不过虽然有那么多参数,但是实际上一部分用默认值,一部分根据影片类型有固定值.实际需要自行调整的也就那么四五个参数.

这些参数里,最重要的、影响最大的莫过于crf参数了(对于crf模式),对于同一个影片其他参数相同时这个参数越低,最终呈现效果越好,码率也越大.

不过crf参数也有边际效应,过低的值会带来极大的码率(体积)提升以及较小甚至看不出来的画质提升.

画面越单调的片子,所需的码率也就越低,crf参数也就可以取的更高.

看你的目的是什么了,如果要求不高,可以找一个知名压制组的片子,用mediainfo看看使用的压制参数,crf定到20,用脚本批量压就行.

我crf值16到24都用过.

无论是主要还是次要,不同压制组挑选压制参数多少都是有考虑到质量与体积的平衡,就像我说的“保证画面质量,体积尽量小”。针对不同类型的视频依然有不一样的重点或画面处理需求,例如真人视频和动漫肯定不能一概而论的嘛。

像我的理解,很大一部分人下载压制版,都是因为原盘体积太大,而压制版画质相差不大,体积显著减小

最近我也是在给硬盘里的一些 x264 美剧文件转为更小的 x265。

我平时下载电影美剧都是选的 x265,主要是文件能小不少,而视觉损失可以接受。

以前没接触过这些,网上查了查,根本别人的建议,我也是测试了好几遍。


首先是这个音频我根本听不出来 DD 1000+ kbps 和 AAC 224 kbps 的区别(毕竟我也没有家庭影院、杜比音响什么的),我看了下 RARBG 喜欢将音频压缩为 AAC 224k,那我也选这个了。


视频的话,我试过了 两次编码、GPU 编码、不同预设 -preset-crf 18、20、23、28

  • 两次编码:
    效果最好的(和 RARBG 一样选的是 2000 kbps),肉眼基本无法分辨区别,文件也非常小,但代价却是花费时间翻倍(毕竟是两次),这就太慢了点。。。

  • GPU 编码:
    速度比 CPU 快一些,但是质量明显不如 CPU,比默认的 -crf 28 还差的样子。。。也可能是因为我的显卡渣渣的原因吧~

  • -preset:
    这个只是随便试了几个,但感觉效果有点迷糊,要么用质量换速度,要么用速度换质量,所以我还是用默认值算了~

  • -crf:
    18,我仅靠肉眼可以说已经完全看不出来了。。。文件缩小了一半
    20,文件又小了不少,贴到屏幕上仔细看的话,在一些画面下是能看到细微差别
    28,文件大幅减小,但是画面质量也明显下降了
    23,最后我选了一个居中值(ffmpeg 官方文档提到了,265 的 28 = 264 的 23),试了下感觉还不错,文件大小很满意,画面的话对于视频中的一些文字什么完全看不出差别,只有在人物面部才能看到细微差别(但前提是需要贴到屏幕上仔细对比),类似于给人物皮肤做了个细微磨皮的样子,皮肤上的纹理变浅了(但并没有消失)

最终选择了 -c:v libx265 -crf 23 -c:a aac -b:a 224k 这个参数。
从 x264.mkv 变成 x265.mp4 ,文件缩小至 20%(1484 MB => 300 MB),而画面的损失我也可以接受(毕竟只是 1080P 视频罢了),而且我还需要考虑到压缩时间,目前基本上是 1:1(最多快几分钟),即一个 20 分钟的视频,需要花费 20 分钟。。。

如果用的是 -crf 20 则文件大概是 30%