今天,我试图找出编码视频时预设slow
与预设相比文件大小有何不同ultrafast
(如果所有其他参数相同)。我拍摄了一个大约的视频10 GB
,并使用以下命令行对前两分钟进行了编码:
"C:\Program Files\ffmpeg\bin\ffmpeg.exe" -i input.mkv -c:v libx265 -preset slow -crf 22 -c:a copy output.mkv
为了仅对前两分钟进行编码,我在发出该命令后观察了控制台,并Ctrl-C
在 FFMPEG 对前两分钟进行编码时命中。
然后output.mkv
大约是70 MB
大小。
当我在上面的命令行中替换并让它再次编码前两分钟时,-preset slow
大小大约是。-preset ultrafast
output.mkv
40 MB
现在我完全糊涂了。我肯定是严重误解了什么。
从文档(在关于预设的部分)(省略了我的):
较慢的预设将提供更好的压缩(压缩是每个文件大小的质量)。[...] 类似地,对于恒定质量的编码,您只需选择较慢的预设即可节省比特率。
据我了解,我的命令行和文档显示,我使用的是恒定质量编码,因此较慢的预设应该意味着更好的压缩,而这反过来应该意味着更小的文件大小。那么为什么输出文件增加当我使用慢点预设,假设预设是唯一改变的参数?
附注:我知道上面的引用来自 FFMPEGH.264文档,而我正在使用H.265编码器。但是,FFMPEG 的后者文档指出,这两个编码器在预设方面的行为相同。
编辑
@harrymc 引起了我的注意这个问题,我不得不承认这与我的答案相同,而且我在研究过程中没有注意到。但是,那里的答案(即使有)也不够(至少对我来说),因为它与 FFMPEG 的文档相矛盾,没有给出可理解的(再次说明,对我来说)解释或解释 FFMPEG 文档中的错误。
因此:我的问题是重复的(抱歉,无意),但另一个问题的答案并未解决我的问题。
答案1
出现于https://www.reddit.com/r/handbrake/comments/teibty/h_265_slower_encoder_preset_leading_to_higher/crf 值对于不同的预设“意味着”不同的东西。因此,在选择预设后,请选择一个您可以在该预设内接受的 crf 值。Wiki 也更新了,加油!