SOFTELメモ Developer's blog

会社概要 ブログ 調査依頼 採用情報 ...
技術者募集中

Safariだけ HTMLのvideoタグで動画が再生されない

問題

videoタグでmp4の動画を埋め込んだのですが、iPhoneだけ動画が再生されません。

答え

主流のブラウザでは、H.264のmp4をvideoタグで設置でき、自動再生もできる。

基本はそうなのだが、ちょこちょこ落とし穴があった。

回答1

動画の走査方式で、インターレース方式だとiOSがうまく取り扱えないらしい。

iOSではインターレース方式の動画は再生できないようなので、プログレッシブ方式に変更する。

回答2

Webサーバーが HTTP Range Requests に対応する必要がある。

長い動画を全てダウンロードしなくても、途中の部分だけダウンロードしたり、途中で通信が失敗しても失敗した部分からダウンロードを再開したりできる仕組み。

Safariの場合、対応が必要なようです。どんなに短い動画であっても。

https://developer.apple.com/library/archive/documentation/AppleApplications/Reference/SafariWebContent/CreatingVideoforSafarioniPhone/CreatingVideoforSafarioniPhone.html#//apple_ref/doc/uid/TP40006514-SW6

HTTPレスポンスヘッダに Accept-Ranges: bytes や Content-Range: ~ など出していないシステムで問題が発生していたので、そういうことなんだなと気づきました。

関連するメモ

コメント