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程度の同じサイズを維持し、共有したいと思っていwhatsappますsame 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 よりはるかに効率が低く、AV1 ファイルがフィルム グレインでエンコードされているかどうかによって約 30 ~ 40% 低くなります。

あなたにできることは何もありません。WhatsApp は、ビデオ コーデックとして古い H264 を使用することを決定しました。これを変更することはできません。2.4 MB の AV1 ファイルで x264 の 9 MB はまったく妥当なようです。

オフトピック:

AV1 を自分で試してみたい場合は、公式の製品エンコーダ libsvtav1 を使用して任意のビデオを AV1 にエンコードするコマンドがあります。これにはかなり時間がかかることに注意してください (プリセット 6 は高速プリセットです。さらに小さいファイルが必要な場合はプリセット 4 を使用してください。ただし、時間がかかります。プリセット 8 は x265 medium よりも 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

関連情報