web-dev-qa-db-ja.com

m4vからwebmへのロスレス変換を行うことは可能ですか?

いくつかのm4vファイルがあり、webmに変換する必要があります。

そのためにffmpegを使用しており、次のようなコマンドを使用しています。

ffmpeg -i myfiletoconvert.m4v output.webm

変換は正常に機能し、解像度は同じままですが、品質はまったく同じではありません。

私が実際に望んでいるのは、変換がロスレスであることです。入力ファイルのプロパティが出力ファイルのプロパティと同じになるようにしたいので、目立った品質の変更はありません。

どうすればそれを達成できますか?

2
badgerhill

入力ファイルのプロパティが出力ファイルのプロパティと同じになるようにしたいので、目立った品質の変更はありません。

損失のあるコーデックから別の損失のあるコーデックに移行しています。つまり、目標ビットレートを非常に高く設定して品質の低下が目立たないように設定しない限り、たとえ品質が失われても、品質は低下します。

欠点は、もちろん、ファイルサイズが大きくなることです。どれくらい増えますか?誰にもわかりません。入力ビデオの品質がどれだけ良いか、ビデオのエンコードがどれだけ簡単かによって異なります。

変換中にビットレートを強制するには、次のようにします。一定の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では別のスケールが必要です。

3
slhck