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