ffmpeg:如何将 libaom-av1 转换为 whatsapp 格式

ffmpeg:如何将 libaom-av1 转换为 whatsapp 格式

libaom-av1我正在尝试转换具有格式的视频格式和opus音频格式的视频

在此处输入图片描述

我将其转换为 mp4 使用

ffmpeg -y -i test.mkv -c copy -c:a aac 1.mp4

现在1.mp4的大小2.4 mb

但当我尝试分享它时whatsapp,它显示为9.4 MB

在此处输入图片描述

现在我想保持相同的大小在 1.5-2MB 左右并whatsappsame quality

我也试过

ffmpeg -y -i test.mkv \
  -c:v libx264 -crf 28 -preset medium -profile:v baseline -level 3.0 -pix_fmt yuv420p \
  -c:a aac -ar 44100 -ac 2 -b:a 48k \
  -movflags faststart \
  1.mp4

但质量很差

我该怎么办

原始视频(test.mkv)可以在以下网址获取:https://0x0.st/-Ad4.mp4

答案1

您需要了解 libaom-av1 实际上是什么。

它是一种非常高效的编解码器。效率大约是 WhatsApp 使用的 libx264 的 3 倍。因此,在不影响质量的情况下,WhatsApp 中的文件至少需要大 3 倍,如果 AV1 文件有噪声模型,则需要更大。即使是 H265 的效率也远低于 AV1,大约低 30-40%,具体取决于 AV1 文件是否使用胶片颗粒编码。

你无能为力。WhatsApp 决定使用古老的 H264 作为其视频编解码器。你无法改变这一点。对于 2.4MB 的 AV1 文件,使用 x264 占用 9MB 似乎完全合理。

无关:

如果您想亲自尝试 AV1,这里有一个使用官方生产编码器 libsvtav1 将任何视频编码为 AV1 的命令,请注意这将需要相当长的时间(预设 6 是一个快速预设,如果您想要一个更小的文件,请转到预设 4,但这将花费更长时间,预设 8 仅比 x265 中等效率高 10%,但速度同样极快):

ffmpeg -i input.mp4 -vcodec libsvtav1 -acodec copy -qp 23 -preset 6 -g 300 output.mkv

-g 300 告诉编码器在 300 帧后放置一个关键帧,根据您的帧速率*5 进行更改。

您也可以使用参考编码器 libaom-av1,但是它不仅比 svt 慢得多,而且效率也不高,而且实际上无法进行多线程。在这种情况下,它甚至比上面的 svt 命令效率更低,但速度要慢得多。当然您可以尝试一下:

ffmpeg -i input.mp4 -vcodec libaom-av1 -cpu-used 6 -acodec copy -crf 23 output.mkv

相关内容