web-dev-qa-db-ja.com

Safari9.0はストレージサーバーでmp4ビデオを再生できません

次のビデオリンクは、safari 9.0(最新バージョン)では再生できません。しかし、古いバージョンのサファリ、chromeおよびfirefoxは再生できます。

http://assets00.grou.ps/0F2E3C/wysiwyg_files/Videos/saksuka/20150928104628-lhmkkfbhnkiisbhht.mp4

サーバーからコンピューターにビデオをダウンロードすると、safari9.0で遊ぶことができます。

そのため、この問題がビデオエンコーディングに起因するとは思わない。

これらの設定を行いました。

mime.types
video/mp4   mp4 m4v
video/ogg   ogv
video/webm  webm

httpd.conf
AddType video/mp4 mp4 m4v
AddType video/ogg ogv
AddType video/webm webm

.htaccess
AddType video/mp4 mp4 m4v
AddType video/ogg ogv
AddType video/webm webm
9
Mehmet

これは、Safariの一部のmp4ファイルで繰り返し発生する問題のようです。

Localhost node.js静的サーバーでビデオをテストしましたが、Safariで正常に再生されました。つまり、ビデオ自体は正常であるはずです。

SafariでWebインスペクターを見ると、Webリクエストに一部のヘッダーが含まれていないことがわかります。これにより、一部のサーバーに問題が発生し、Safariが期待する方法で応答しないか、まったく応答しません。

同様の問題が議論されているのを見ることができます(2番目の問題は私が思うあなたのケースではありませんが、サーバーに送信された要求に含まれる情報がサーバーにあなたが望むように応答しないことを「決定」させる可能性があることを示しています):

更新

Wiresharkを使用してChromeからのリクエストをキャプチャすると、再生されるビデオを含むサーバーからの応答が発生し、Safari(同じマシン上)からのリクエストではサーバーからの応答が発生しないことがわかります。

リクエストは一般的に類似しており、どちらにもリファラーヘッダーが含まれています。 Safariブラウザは、最初にサーバーから返される最初の2バイトのみを要求します。これは、ファイルが返すバイト範囲を指定するために使用される「range」ヘッダーを使用して行われます。

  • 範囲:bytes = 0-1\r\n

一方、Chromeは、範囲内の動画全体をリクエストします。

  • 範囲:bytes = 0-\r\n

ただし、ChromeでHTTPツール(Postmanなど)を使用し、範囲を0-1に変更しても、Chromeの場合、サーバーの応答が停止するようには見えません。 。実際、ツールを使用して可能な限り、Safariセットと同じヘッダーをすべて設定すると、ビデオは正常に返されるようです。

7
Mick

問題は、safariまたはiOがチャンクを予期していることです。ストリーミングサーバーからの意味。ビデオがblobまたはファイルサーバーからのものである場合、safariはエラーをスローします。あなたはそれをこの投稿に関連付けることができます リソースのロードに失敗しました、iOSでプラグインがロードを処理しました

2
mr.b

ビデオタグで再生されていないmp4にもう少し光を当てるために、ここで私の経験を共有したいと思います。最近、Safariでmp4が再生されないという問題のトラブルシューティングに時間を費やしました。

前の回答の1つで述べたように、Safariは最初に206応答を期待するVideoタグのバイト範囲要求を送信します。ただし、Service Workerを使用している場合、応答は200で返され、Safariはこれを処理する方法を知らないようです。 私たちの解決策は、Safari用のServiceWorkerの使用を除外することでした。

これは、MacBookのSafariデバッガーの[ネットワーク]タブを使用して、iPadで発生した問題のトラブルシューティングを行うことで見つかりました。添付されているのは、比較/参照用のスクリーンショットです。左側のタブには、デフォルトで通話がどのように表示されるかが表示されます。右側のタブには、ServiceWorkerを使用した場合に表示される内容が表示されます。

Safari Network Tab Service Workers