是否可以进行从 m4v 到 webm 的无损转换?

是否可以进行从 m4v 到 webm 的无损转换?

我有几个 m4v 文件,需要将其转换为 webm。

我正在ffmpeg这样做,并使用了如下命令:

ffmpeg -i myfiletoconvert.m4v output.webm

转换工作正常,分辨率仍然相同,但质量却不一样。

我真正想要的是转换是无损的。我希望输入文件的属性与输出文件的属性相同,这样就不会出现明显的质量变化。

我该如何实现这个目标呢?

答案1

我希望输入文件的属性与输出文件的属性相同,这样就不会看到明显的质量变化。

您正在从有损编解码器转换到另一个有损编解码器。这意味着无论如何您都会损失质量,除非您将目标比特率设置得很高,以至于质量损失不会引人注意(即使它仍然存在)。

当然,缺点是文件大小会增加。你可能会问,文件大小会增加多少?没人知道。这取决于输入视频的质量以及视频编码的难易程度。

要在转换期间强制比特率,请执行以下操作,例如恒定的 1 MBit/s:

ffmpeg -i in.m4v -c:v libvpx -b:v 1M -c:a libvorbis out.webm

编码libvpx器还可以使用可变质量,使用选项-qmin-qmax

ffmpeg -i in.m4v -c:v libvpx -qmin 10 -qmax 42 -c:a libvorbis out.webm

使用较低的两个参数值可实现更好的质量。通常 FFmpeg 会将它们设置为 2/31,但据我所知,WebM 需要不同的比例。

答案2

作为版本 1.3.0,2013 年 12 月,libvpx 通过 VP9 支持无损编码。

使用示例:

ffmpeg -i in.m4v -vcodec libvpx-vp9 -lossless 1 out.webm

一个问题是,webm 仅支持 opus 和 vorbis 音频,这并非无损音频。但是,即使在适度的比特率下,opus 质量也非常出色,因此如果您确实需要 webm,这就是您的选择。只需将音频比特率调至-b:a 512k或您喜欢的任何级别即可。

相关内容