奇妙なことに、一部のMP4ファイルはHTML5で再生されますが、再生されないものもあります。これはテストページです http://psdtucss.com/test/test2.html 、Chrome 19.0.1084.46 mで開きます。最初のMP4が再生されますが、もう1つはありません。理由は何ですか?コードは非常にシンプルです。
<h3>the first mp4 file can play</h3>
<p><video width="640" height="264" controls="controls"><source src="1.mp4" type="video/mp4" />Your browser does not support the video tag.</video></p>
<h3>but the other can't play</h3>
<p><video width="640" height="264" controls="controls"><source src="2.mp4" type="video/mp4" />Your browser does not support the video tag.</video></p>
どうすれば修正できますか?
私はvideojsを試しましたが、それでも一部のMP4ファイルが再生されません。テストページはこちら: http://psdtucss.com/test/test.html
mp4はcontainer形式のみです。さまざまなコーデックでビデオとオーディオを含めることができます。プレーヤー(ブラウザーのプレーヤーを含む)は、ビデオを正しく再生するために、コンテナー形式と使用されるすべてのコーデックをサポートする必要があります。
VideoJSの使用は間違いなく良い考えです。ブラウザに固有の多くの回避策を処理します。
ただし、1つの問題が解決するわけではありません。すべてのブラウザーでサポートされる単一のビデオコーデックはありません。 (参照 Wikipedia:HTML5ビデオ:Browser_support )
実用的な解決策はおそらく2つのバージョンを提供することです:mp4コンテナでのh264と通常webmと呼ばれるもの(特定のMatroskaコンテナでのVP8ビデオとvorbisオーディオ) )。これら2つで、すべての主要なブラウザーをカバーできます。
ビデオの変換/再コーディングには、いくつかのツールとサービスを利用できます。私はあなたのオペレーティングシステムや要件については知りません。だから、ワイルドな推測として:
友人が彼の小さなブログにいくつかのビデオを公開するのを助けるために私が使用したものは、変換用の ffmpegを使用したこのシェルスクリプト です。それでも(ビデオの品質、パフォーマンス、コーディングのすべてで)改善の余地はたくさんありますが、開始するには十分なはずです。
ビデオ1.mp4はh.264を使用してエンコードされていますが、ビデオ2.mp4はエンコードされていません。 MediaInfoを取得して確認します。
最初のビデオは、FirefoxとOpera以外のすべてでサポートされているh264エンコーディングを使用しています。 2番目のビデオは、ブラウザでサポートされていないMPEG-4ビデオコーデックを使用しています。広くサポートされているビデオコーデックは、Theora、H.264、VP8のみです。
MPEG-4 Part 2 ビデオコーデックは MPEG-4 Part 14 コンテナ形式とは異なります
MP4は複数のコーデックをサポートしています。一部のプレーヤーはすべてのコーデックをサポートしていません(一部のコードはライセンスが必要です、または一部のコーデックはブラウザーの作成後にリリースされました)。