如何指定 lossy/lossless .webm 转换的方式(在 ffmpeg 中)?

How to specify how lossy/lossless a .webm conversion will be (in ffmpeg)?

我似乎无法理解如何使转换无损(或至少在视觉上无损)?输出有时会有一些快速移动的部分,输出会变得块状;我想尽可能保持无损,同时仍保持一定的压缩。我需要在命令行中进行哪些调整?谢谢~

ffmpeg -c:v libvpx-vp9 -i in.webm -c:v libvpx -vf scale=400:416,hue=h=45:s=1 -auto-alt-ref 0 out.webm

根据 FFmpeg Wiki: VP9,“two-pass 是 libvpx-vp9 的推荐编码方法,因为一些质量增强编码器功能仅在 2-pass 模式下可用”。您的命令示例:

ffmpeg -c:v libvpx-vp9 -i in.webm -c:v libvpx-vp9 -vf scale=400:416,hue=h=45:s=1 -b:v 0 -crf 30 -pass 1 -an -f null /dev/null
ffmpeg -c:v libvpx-vp9 -i in.webm -c:v libvpx-vp9 -vf scale=400:416,hue=h=45:s=1 -b:v 0 -crf 30 -pass 2 -c:a copy output.webm

CRF 值可以是 0–63。较低的值意味着更好的质量。推荐值范围为 15–35,建议 1080p 高清视频使用 31。有关详细信息,请参阅 Google - Getting Started with VP9