video.jsを使ってm3u8形式の動画ファイルをSafari以外のブラウザでも再生する方法を紹介します。デモページは下のボタンから。
Demo
動作環境
下記環境で(現時点の最新版での)動作を確認しています。
※要Flash
使うJSライブラリ
- videojs/video.js
- 基本素材。動画ファイルを様々なブラウザで再生できるようにする。
- videojs/videojs-contrib-media-sources
- videojs/videojs-contrib-hls
- HLS(
m3u8
)形式の動画ファイルを再生可能にするvideo.jsプラグイン。 - HLSに対応していないブラウザでもFlash技術を通すことで再生可能にしているよう。
Usage
全体HTMLファイルはこんな感じ。
CSS/JS読み込み
video.js, videojs-media-sources.js, videojs.hls.js 以外にもCSSを読み込まないとエラーが出て再生できなかったのでCSSも読み込むこと。
videoタグ
適当なクラスを持った<video>
をタグにheight
, width
を定義してやって、中にtype="application/x-mpegURL"
とsrc
を持った<source>
タグを入れてやる。
JavaScript
videojs()
内にvideoタグのIDでplayerを生成してplay。
最後に
クロスオリジンな動画リソースを読み込むときは CORS(Cross-Origin Resource Sharing) の設定を適切にしてやる必要があることに注意!
追記
本記事を参考に書かれた下記の記事も参考になるかもしれません。
Video.js を使って HLS形式の動画をストリーミング再生する - akiyoko blog