2

HTML5 ビデオと同じビデオの Flash フォールバックで jPlayer をセットアップしようとしています。

HTML5 ビデオの再生は非常に高速です (「バッファ」時間はわずか 1 秒です)。

私が抱えている問題は、Flash フォールバックにあります。HTML5 バージョンでは 1 秒で再生を開始する同じ正確なビデオが、Flash バージョンでは再生を開始するのに 50 秒以上かかります (そして、私は 1.5 Mbps DSL 接続を使用しています)。そして、この間ずっと、「進行状況」バーはまったくありません...黒い画面だけです。

再生を開始する前に、ビデオ全体をダウンロードしようとしているかのようです。Firefox、Chrome、IE9、IE8、および IE7 でこれをテストしました。すべてのブラウザで同じこと。また、Flash Player はすべてのブラウザで最新です。また、各テストが正確であることを確認できるように、各テストの間に常にブラウザーのキャッシュをクリアします。

これを引き起こす可能性のあるアイデアはありますか?

私は多くの異なるビデオ エンコーダーを試しました... Sony Vegas、Handbrake、Miro、Super、Freemake、Any Video Converter ですが、それぞれで多かれ少なかれ同じ結果が得られます (HTML5 ビデオを使用すると瞬時に再生されますが、非常にFlash フォールバックを使用する場合の長いバッファ時間)。

サーバーに MIME の問題があるのではないかと考えたので、ルート ディレクトリの .htaccess ファイルに次のコードを追加しました...

    # AddType TYPE/SUBTYPE EXTENSION  
    AddType audio/mpeg mp3
    AddType audio/mp4 m4a
    AddType audio/ogg ogg
    AddType audio/ogg oga
    AddType audio/webm webma
    AddType audio/wav wav
    AddType video/mp4 mp4
    AddType video/mp4 m4v
    AddType video/ogg ogv
    AddType video/webm webm
    AddType video/webm webmv

しかし、それは何の違いもありませんでした。

次に、テストとして、「Big Buck Bunny」の動画 (m4v、ogv、webm) を jPlayer サーバーからダウンロードし、サーバーにアップロードしました。驚いたことに、Flash バージョンでもすぐに再生されました。(1 秒以内)。非常に奇妙な。

そこで、別のテストとして、所有しているすべてのエンコーダー (Sony Vegas、Handbrake、Miro、Super、Freemake、Any Video Converter) を使用して Big Buck Bunny の動画を mp4/m4v に再エンコードし、それらすべてのファイルをサーバーにアップロードしました。次に、それらの各ファイルを個別に使用して Flash フォールバックをテストしました。また、Flash の再生を開始するのに、すべてのファイルで長い時間がかかりました (非常に小さなファイル サイズにエンコードしたものでも)。それでも、すべての HTML5 バージョンが即座に再生されました。

Flash フォールバックが再生を開始するのに非常に時間がかかる原因について、私は本当に立ち往生しています。過去数日間、問題を特定するために考えられるすべてのテストを試しましたが、まだ解決できません。

何か案は?

それが役立つ場合、以下はこれをテストするために使用しているページの 1 つです。その特定のページでは、jPlayer デモの 1 つとまったく同じ HTML コードを使用しており、デフォルトのソリューションを「フラッシュ」に設定しています。唯一の違いは、フラッシュの遅延を示すために、m4v ファイルを再エンコードしたことです (この特定のビデオでは、私の側では約 30 秒です)...

http://thebestinfo.org/jplayer/flash.html

前述のように、使用するエンコーダーや圧縮ファイルのサイズに関係なく、Flash フォールバックを使用すると常に大きな遅延が発生します。

これを理解するための助けにとても感謝しています!前もって感謝します!!

4

1 に答える 1

1

jPlayer dev guide のサーバー応答セクションによると、あなたが説明している動作は、サーバーがバイト範囲要求を受け入れることができないか、ファイル ヘッダーにメディア長メタデータがないことが原因である可能性があります。

バイト範囲リクエスト

サーバーで Range リクエストを有効にする必要があります。これは、サーバーの応答のヘッダーに Accept-Ranges が含まれているかどうかを確認することで簡単に確認できます。ほとんどの HTML5 ブラウザーでは、ダウンロード中に新しいファイル位置をシークできるため、サーバーは新しい範囲の要求を許可する必要があります。

一部の HTML5 ブラウザでは、バイト範囲リクエストを受け入れないと問題が発生します。一部の形式では、ファイルの開始点と終了点を読み取ってその期間を知る必要があるため、多くの場合、ファイルから期間を読み取ることはできません。サーバーでRangeリクエストが有効になっていない場合、Chromeは最も問題が発生する傾向がありますが、すべてのメディアがロードされるのを待たなければならないというだけの場合でも、すべてのブラウザで何らかの問題が発生します。 .

この問題は、デフォルト構成の Jetty 6 サーバーに影響することが知られています。

範囲要求をサポートするメディア ファイルを提供できる PHP 関数が jPlayer コミュニティによって作成されました。このトピックについては、このjPlayer サポート グループの投稿を参照してください。

于 2013-02-20T07:13:12.733 に答える