web-dev-qa-db-ja.com

ffmpegは品質を損なうことなく変換します

ファイルタイプがflv/mp4/webm以外の場合、すべての動画を自分の動画プレーヤー(ウェブサイト内)に変換する必要があります。

私が使用する場合:ffmpeg -i filename.mkv -sameq -ar 22050 filename.mp4

[h264 @ 0x645ee0] MB 22 1、バイトストリームのデコード中のエラー(8786)

私の要点は、ファイルタイプを変換する必要がある場合に何をすべきかです。

8
Jensej

-sameq(FFMpegで削除)の代わりに、-qscale 0を使用します。ファイルサイズは増加しますが、品質は保持されます。

8
A. Attia

使ってはいけません - -sameq、「同じ品質」という意味ではありません

このオプションは、FFmpegから少し前に削除されました。これは、古いビルドを使用していることを意味します。

使用 -crfオプションはlibx264でエンコードするときに代わりに使用します。これはffmepgで使用されるH.264ビデオエンコーダーであり、利用可能な場合はMP4出力のデフォルトエンコーダーです。詳細は FFmpeg H.264ビデオエンコーディングガイド を参照してください。

最近のffmpegを入手

FFmpeg Download ページに移動して、そこでビルドを取得します。 Linux、OS X、およびWindowsのオプションがあります。または、 FFmpegコンパイルガイド のいずれかに従うことができます。 FFmpegの開発は非常に活発なので、使用するのに実用的な最新バージョンを使用することを常にお勧めします。

品質の低下を受け入れる必要があります

Libx264を使用するとロスレス出力を生成できますが、それはおそらく非常に大きなファイルを作成し、ブラウザーでデコードできないか、JWプレーヤーでサポートされない可能性があります(私は試したことはありません)。

良いニュースは、視覚的にほぼロスレスのビデオを作成できることです。繰り返しになりますが、ファイルは多少大きくなる場合がありますが、品質とファイルサイズのどちらかを選択する必要があります。

-crf 18〜29の間の値を選択します。許容できる品質を提供する最大数を選択します。その値を動画に使用します。

他のもの

  • 追加 -movflags +faststart。これにより、moov atomがファイルの末尾から先頭に移動します。これにより、ビデオのダウンロード中にビデオの再生を開始できます。それ以外の場合は、ビデオ全体を完全にダウンロードしてからダウンロードする必要があります。再生を開始できます。

  • 追加 -pix_fmt yuv420p。これにより、すべてのプレーヤーで互換性のあるクロマサブサンプリングが保証されます。それ以外の場合、ffmpegは、デフォルトで、いくつかの要因に応じて、クロマサブサンプリングを最小化または回避しようとします。その結果は、FFmpeg以外のプレーヤーでは再生できないことがよくあります。

19
llogan

品質を落とさずにすべてのmkvをmp4に変換します(実際には再パッケージ化のみです)。

for %a in ("*.mkv") do ffmpeg.exe -i "%a" -vcodec copy -acodec copy -scodec mov_text "%~na.mp4"
7
emetrue