ファイルタイプがflv/mp4/webm以外の場合、すべての動画を自分の動画プレーヤー(ウェブサイト内)に変換する必要があります。
私が使用する場合:ffmpeg -i filename.mkv -sameq -ar 22050 filename.mp4
:
[h264 @ 0x645ee0] MB 22 1、バイトストリームのデコード中のエラー(8786)
私の要点は、ファイルタイプを変換する必要がある場合に何をすべきかです。
-sameq(FFMpegで削除)の代わりに、-qscale 0
を使用します。ファイルサイズは増加しますが、品質は保持されます。
-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以外のプレーヤーでは再生できないことがよくあります。
品質を落とさずにすべてのmkvをmp4に変換します(実際には再パッケージ化のみです)。
for %a in ("*.mkv") do ffmpeg.exe -i "%a" -vcodec copy -acodec copy -scodec mov_text "%~na.mp4"