はじめに
前回の記事では FFmpeg で生成した RTMP ライブストリーム (シングルストリーム) をアップロードして、
Wowza Streaming Engine 経由でストリーミング配信を行うための設定を紹介しました。
この記事では、アダプティブストリーミングのライブストリーミング配信を行うための方法を紹介します。
作業の手順は、以下の通りです。
- ライブソースストリームの入力セキュリティの設定 (省略)
- FFmpeg によるビデオファイルを使った RTMP ライブソースの入力
- SMIL ファイルの作成
- ライブストリーミング再生のテスト
Big Buck Bunny サイト のビデオコンテンツをサンプルとして使うストリーミングコンテンツとします。
配信で利用する ビデオファイル はこちらを利用しました。
手順1: ライブソースの入力セキュリティの設定 (省略)
前回の記事で作成した設定を利用するため、ここでは省略します。
手順の詳細は、前回の記事を参照します。
手順2: FFmpeg によるビデオファイルを使ったライブソースの入力
以下のコマンドを実行し、ビデオファイルとスクリプトファイルをダウンロードします。
スクリプトファイルは Gist で公開しているシェルスクリプト を利用します。
cd ~/
mkdir videos
cd videos
curl -O https://download.blender.org/demo/movies/BBB/bbb_sunflower_1080p_30fps_normal.mp4
curl -LO https://gist.github.com/liveinstantly/7969cc44d14e96c98434cf4e8744a15f/raw/88d2a83c77e01ff32262db04f739e5755efbd6a5/ffmpeg_filelive_abr_transcode.sh
chmod +x ffmpeg_filelive_abr_transcode.sh
curl -O https://wowzademostorage1.blob.core.windows.net/transcoding/liveencode_spec_sample.txt
以下のコマンドを実行して、ビデオのトランスコードとライブソースの入力を行います。
このスクリプトでは、ビデオファイルから複数のビットレートのライブストリームを生成し、Wowza Streaming Engine に入力します。
生成する複数のライブストリームの詳細は liveencode_spec_sample.txt ファイルで定義します。
./ffmpeg_filelive_abr_transcode.sh -f ~/videos/bbb_sunflower_1080p_30fps_normal.mp4 -s ./liveencode_spec_sample.txt -h **[WowzaStreamingEngineのドメイン名]** -a **live** -u **[username]** -p "**[password]**"
liveencode_spec_sample.txt ファイルは、コンマ区切りのファイルになっていて、以下の情報が含まれています。
| ストリーム名 | 解像度(幅) | 解像度(高さ) | ビットレート | プロファイル | 
|---|---|---|---|---|
| livestream1 | 1280 | 720 | 1500 | high | 
| livestream2 | 960 | 540 | 800 | baseline | 
| livestream3 | 640 | 360 | 500 | baseline | 
ライブソースストリームの入力が開始したら、上部メニューバーの [Applications] をクリックし、
左のメニューから既定のライブアプリケーション (live) をクリックします。
次に、左のメニューから [Incoming Streams] をクリックすると、livestream1, livestream2, livestream3 という名前のストリームが入力されていることが確認できます。
手順3: SMIL ファイルの作成
アダプティブストリーミング配信のために SMIL ファイルを作成します。
以下の SMIL ファイル (XML ファイル) を作成し /usr/local/WowzaStreamingEngine/content ディレクトリに追加します。
liveencode_spec_sample.txt ファイルの詳細情報に従って、以下のように SMIL ファイルを定義します。
<?xml version="1.0" encoding="UTF-8"?>
<smil title="Sample SMIL file for Live Adaptive Streaming">
  <body>
    <switch>
      <video height="720" src="livestream1" systemLanguage="eng" width="1280">
        <param name="videoBitrate" value="1500000" valuetype="data"></param>
        <param name="audioBitrate" value="128000" valuetype="data"></param>
      </video>
      <video height="540" src="livestream2" systemLanguage="eng" width="960">
        <param name="videoBitrate" value="800000" valuetype="data"></param>
        <param name="audioBitrate" value="64000" valuetype="data"></param>
      </video>
      <video height="360" src="livestream3" systemLanguage="eng" width="640">
        <param name="videoBitrate" value="500000" valuetype="data"></param>
        <param name="audioBitrate" value="64000" valuetype="data"></param>
      </video>
    </switch>
  </body>
</smil>
手順4: ライブストリーミング再生のテスト
手順2でライブストリームの入力が完了したら、ライブストリームの配信ができる状態になります。
ライブストリームの再生 URL は以下のように構成されます。
| ストリーミング形式 | URL | 
|---|---|
| HLS | https://[WowzaStreamingEngineのドメイン名]/[アプリケーション名]/smil:[SMILファイル名]/playlist.m3u8 | 
| DASH | https://[WowzaStreamingEngineのドメイン名]/[アプリケーション名]/smil:[SMILファイル名]/manifest.mpd | 
[アプリケーション名] は、この例では live となります。
[SMILファイル名] は、この例では adaptivelivestream となります。
Web プレイヤーを使って、再生のテストを行います。
まとめ
この記事では、FFmpeg で生成したマルチビットレートの RTMP ライブストリームをアップロードして、
Wowza Streaming Engine 経由でストリーミング配信を行うための設定を紹介しました。
Wowza Streaming Engine を利用することで、RTMP, RTSP, SRT 等のライブストリームを Apple HLS, MPEG-DASH などの
ストリーミング形式に変換することができるようになります。また、CDN と組み合わせを行うことで大規模な HTTP ベースの
アダプティブストリーミング配信を実現することも可能となります。
 



 
    
Top comments (0)