停滞中...

OBSとFlazrDumperを使った配信は非常にお手軽だけどFlashが動かない環境(iOSやAndroid)では見れない。そこでVLCメディアプレイヤー(以下VLC)を使ってFLVからHLSをつくり出そうというおはなし。


HLS

HTTP Live Streaming(HLS)はAppleが開発したHTTPを使ったライブ配信の仕組み。HTTPを使っているためHTML5対応Webブラウザでそのまま視聴可能で、iPadやiPhoneだけでなくAndroid 4.x端末でもアプリを導入することなく視聴できる。

はじめるまえに

まずOBSとFlazrDumperを使ったHTTP Flash配信が行えていることが前提条件。

今回の方法

→ FlazrDumper → VLC → FlazrDumper → 視聴者のWebブラウザ

VLCはFlazrDumperからFLVを受け取りながらHLS用のファイル出力を行い、FlazrDumperのHTTPサーバーが視聴者への送出を請け負うといった流れ。

用意するもの


FlazrDumperはFlash配信のものをそのまま利用。また、FlashPlayerにHLSへの自動転送ページを追加したのでこちらも要更新。

VLCの設定

補助スクリプトでインストール情報を利用するのでインストーラー版(exeのやつ)を使ってインストールすること。64ビット版でも可。

補助スクリプトの設定

HlsLauncher.zipに含まれる2つのファイル(HlsLauncher.jsとHlsLauncher_iPad.js)をFlazrDumper.jarと同じフォルダに展開する。


ローカルで視聴確認

  1. FlazrDumper.jarを実行してFlazrDumperを起動する。
  2. OBSで配信開始する。
  3. HlsLauncher.jsを実行してVLCを起動する(コマンドプロンプトのような黒いウィンドウが表示される)。
  4. VLCをスタートメニューから起動して次のいずれかの方法でm3u8ファイルを開く。

VLCが正しく動いているならば、liveフォルダにmystream.m3u8が作成され、live\tsフォルダではmystream-xxxxxxxxxx.ts(xxxは数字)が作成&削除され続ける。HLS配信を終了する場合はVLC(黒ウィンドウのほう)を閉じる。

視聴できない場合


視聴者への通知

Flash配信と同じアドレス http://あなたのグローバルIP:8888/live/ を視聴者に知らせる。視聴者の環境でFlashが利用出来ない場合はHLS用ページ(index_m.html)へ自動転送される。手持ちの携帯端末で視聴する場合は必要に応じてプライベートIPを使う。

HLS配信のデメリット

Flash配信と比べて遅延が大きい。Flash配信なら最短5秒程度でいけるところがHLS配信だとその仕組み上どうしても25秒程度はかかる。

HlsLauncher.js

HlsLauncher.jsはWSH用のJavaScriptで記述されたスクリプトファイル。テキストエディタで編集可能。これを使うことで手間をかなり削減できる。

スクリプトの処理内容は次の通り。
  1. VLCのインストール場所をレジストリから取得
  2. FlazrDumperの利用ポート番号を設定ファイルから取得
  3. フォルダ構成にあわせたVLCコマンドラインを生成
  4. VLCを起動
  5. 終了したら生成されたtsファイル群を削除

再エンコードしたい場合

HlsLauncher.jsの代わりにHlsLauncher_iPad.jsを使うとVLC内蔵x264により再エンコードされたデータが出力される。

HlsLauncher_iPad.jsでは解像度は2/3にリサイズ(フルHDなら1280x720に)され2Mbpsで出力される。フルHDをデコードできない端末ではこれを使うことでたぶん見れるようになる。テキストエディタでHlsLauncher_iPad.jsを編集すれば任意のx264オプションを指定可能。ただし、h264エンコードを行うためそれなりにCPU負荷がある。

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

 

管理人/副管理人のみ編集できます