HTML5ビデオタグ内で機能するH.264にAVIを変換する


7

既存の白黒AVIを、HTML5ビデオタグ内で機能するH.264ビデオに変換したいと思います。

私は現在このffmpegコマンドを使用しています:

ffmpeg -i file.avi -y -c:v libx264 file.h264

このコマンドは機能しません。H.264ファイルは生成されますが、VLCプレーヤー以外では再生されません。

回答:


16

.h264単なる生のH.264バイトストリームです。これは単なるビデオコンテンツであり、洗練されたプレーヤーで再生できますが、通常はすべてをMPEG-4 Part 14( "MP4")などのコンテナ形式に入れたいと思います。

だから、実行:

ffmpeg -i file.avi -c:v libx264 -pix_fmt yuv420p file.mp4

HTML5プログレッシブダウンロードの場合moov、MP4コンテナのアトムをファイルの先頭に移動すると、すぐに再生できます。

ffmpeg -i file.avi -c:v libx264 -pix_fmt yuv420p -movflags faststart file.mp4

興味があるかもしれません:コーデック(DivXなど)とは何ですか?また、ファイル形式(MPGなど)とどう違うのですか?


MP4出力は、HTML5ビデオタグまたはWindows Media Playerでは実行されません。コマンドを実行すると、「廃止されたピクセル形式が使用されています。範囲を正しく設定したことを確認してください。ピクセル形式が指定されていません。h.264エンコーディングにyuvj444pが選択されています。これで、HTML5ビデオタグでビデオを見ることができます
SF開発者

ええ、だから彼らはそこにメッセージを持っています。将来的には、コマンド自体だけでなく、ffmpegコマンドの完全なコマンドライン出力も投稿してください。それから私はおそらく、あなたが持っている非標準の入力のためにピクセル形式を変更する必要があると言ったでしょう。
slhck

私の現在のシナリオはこれです:ビデオはローカルクライアントマシンで作成され、圧縮、品質、およびサイズのためにh264に変換されます(API経由でサーバーにアップロードする必要があるため)。70Mg aviは、1MG mp4と比較して100K h264ビデオになります(したがって、アップロードの理由から、最初にh264に変換してから、サーバーで最終mp4に変換することをお勧めします)。コマンド-i file.avi -y -c:v libx264 file.h264をクライアントで実行した場合、異なるはずです...サーバーでmp4に再変換する必要があることを認識しています。
SF開発者

MP4コンテナは、コンテナ内の同じビデオで1MBに対して、H.264ビデオで100kではなく、数パーセントのオーバーヘッドのみを提供します。あなたは何か間違ったことをしていると思います。すべてをMP4にエンコードします。ファイルを後で簡単に処理できます。
slhck

私はそれを試してみます...助けてくれてありがとう。はい、次回は出力全体をアップロードします。とても有難い !!
SF開発者
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.