使用 ffmpeg 进行 AV1 编码

使用 ffmpeg 进行 AV1 编码

自最新版本以来(4.0),ffmpeg 支持AV1编解码器。甚高频液晶还应该能够播放 AV1 视频。

不幸的是,我还没有找到将现有视频编码为 AV1 的语法。我从命令行使用 ffmpeg,如下所示:

ffmpeg -i input.mp4 output.avi

但是 AV1 需要哪些选项呢?

答案1

如果您的 ffmpeg 版本已链接库,则可通过以下方式提供 AV1 解码和编码libaom。为了链接库,请使用以下方式编译 ffmpeg --enable-libaom(请参阅编译指南)。

基本语法是:

ffmpeg -i input.mp4 -c:v libaom-av1 -strict -2 output.avi

(注:-strict -2-strict experimental是必需的,因为编码器目前处于实验阶段。AV1 编码是非常此时速度较慢。)

您可以指定目标比特率(例如-b:v 2M)或目标质量级别(例如-crf 30)。libaom还支持两遍编码。

有关详细信息,请参阅AV1 编码指南在 FFmpeg Wiki 上。

答案2

FFmpeg 维基提到现在FFmpeg 中的软件 AV1 编码器:libaom、SVT-AV1 和rav1e。它还声称“[在] 2020 年,SVT-AV1 被 AOMedia 采用作为 AV1 未来开发以及未来编解码器工作的基础。”

Gyan 的回答已经提供了一些有关 libaom 的信息。

SVT-AV1 的上游文档包含几个在 FFmpeg 中使用它的示例。例如,如果您想要快速编码,他们提供了这个示例命令:

ffmpeg -i infile.mkv -c:v libsvtav1 -preset 10 -crf 35 -c:a copy outfile.mkv

rav1e 大胆宣称自己是速度最快的 AV1 编码器。当然,这在实践中是否属实取决于所编码的内容。示例命令位于FFmpeg 文档正确

ffmpeg -i input -c:v librav1e -b:v 500K -rav1e-params speed=5:low_latency=true output.mp4

(请注意,这会将视频比特率设置为 500K,高于默认为 200K。

相关内容