我使用 ffmpeg 对视频进行了一些重新编码,主要目的是重新压缩来自各种来源(youtube、twitch、tiktok 等)的视频,以减少文件大小,同时减少可接受的(主观)质量损失。鉴于我对原始文件的质量设置知之甚少(而且这些质量设置无论如何都会随着时间的推移而变化),因此任何一个文件的过程都非常耗时。每次的过程都是这样的:
- 压缩一段视频
- 将压缩块与原始块进行比较
- 根据重新编码的糟糕程度向上或向下调整 crf。
- 重复此操作,直到找到给定文件的理想 crf 值,否则我会感到疲倦并放弃。
这本质上是一种“反复试验”的方法,每次有人问如何找到最佳设置时,它都是唯一的答案。当然,尝试和错误是有效的,但它需要在每次循环后进行交互。鉴于 ffmpeg 还可以计算给定编码(PSNR 或 VMAF)的损失,是否有任何前端或包装脚本实现自动化过程?
另一种方法是使用脚本或前端生成重新编码的“联系表”,基本上是在一系列 CRF 值上重复重新编码原始文件的一小块。这样的事情已经存在了吗?研究如何生成视频预览已经产生了很多创建类似 YouTube 的预览片段的方法,而不是质量测试片段。