Wowza Streaming Engine を使ったライブストリーミング (1)
はじめに
この記事では、Wowza Streaming Engine でライブストリーミング配信を行うためのセットアップを行います。
ライブ配信は、Wowza Streaming Engine にライブソースストリームを入力し、そのライブストリームをストリーミング方式に変換して、ライブストリーミング配信を行います。
作業の手順は、以下の通りです。
- ライブソースストリームの入力セキュリティの設定
- FFmpeg によるビデオファイルを使った RTMP ライブソースの入力
- ライブストリーミング再生のテスト
Big Buck Bunny サイト のビデオコンテンツをサンプルとして使うストリーミングコンテンツとします。
配信で利用する ビデオファイル はこちらを利用しました。
手順1: ライブソースの入力セキュリティの設定
Wowza Streaming Engine にライブソースストリームを入力する際にパスワードで認証を行うことにより、 ライブソースの入力セキュリティを確保することができます。
ライブソースの入力セキュリティを設定にするには、以下の手順で行います。
Wowza Streaming Engine Manager 管理 UI にログインし、上部メニューバーの [Server] をクリックします。
左のメニューから [Source Authentication] をクリックします。
[+Add Source] ボタンを押します。
以下のパラメーター情報を入力して、[+Add] ボタンをクリックします。
パラメーター 値 Source User Name ソース認証のユーザー名: 例: livestream1
Source Password (Confirm Password) ソース認証のパスワード 注意: ユーザー名とパスワードの値は、大文字と小文字が区別され、英数字、ピリオド (.)、アンダースコア (_)、およびハイフン (-) 文字のみを含めることができます。
上部メニューバーの [Applications] をクリックし、左のメニューから既定のライブアプリケーション (live) をクリックします。
左のメニューから [Source Security] をクリックし、ソースセキュリティの設定を確認します。
- [RTMP Sources] が [Require password authentication] (パスワード認証を必要とする) となっているかを確認する。
- もし設定が異なる場合は、[Edit] ボタンをクリックし、設定変更を行う。
手順2: FFmpeg によるビデオファイルを使ったライブソースの入力
以下のコマンドを実行し、ビデオファイルをダウンロードします。
cd ~/
mkdir videos
cd videos
curl -O https://download.blender.org/demo/movies/BBB/bbb_sunflower_1080p_30fps_normal.mp4
ビデオのダウンロードが完了したら、FFmpeg ツール
を使ってダウンロードしたビデオファイルから、
次の FFmpeg コマンドを使って、RTMP ライブソースストリームを生成し、Wowza Streaming Engine の live
アプリケーションに入力します。
ライブソースストリームの入力 URL には、手順1で設定したソース認証のユーザー名 (
[username]
) と ソース認証のパスワード ([password]
) を正しく指定します。
ffmpeg -threads 4 -re -stream_loop -1 \
-i ~/videos/bbb_sunflower_1080p_30fps_normal.mp4 \
-rtmp_live live -pix_fmt yuv420p -r 30 \
-map 0✌️0 -c:v libx264 -preset veryfast -tune animation \
-b:v 1500k -profile:v high -s:v 1280x720 -minrate:v 1500k -maxrate:v 1500k -bufsize:v 3000k \
-flags:v +cgop -g 60 -x264opts keyint=60:keyint_min=60:no-scenecut \
-sc_threshold 0 -crf 23 -vsync 1 \
-filter:v drawtext=:text=(bitrate=1500K):fontsize=32:x=32:y=32:box=1:boxcolor=white:fontcolor=black,drawtext=:text=%{localtime}:x=32:y=64:fontsize=32:box=1:boxcolor=white:fontcolor=black,drawtext=:text=%{pts\\:hms}:x=32:y=96:fontsize=32:box=1:boxcolor=white:fontcolor=black \
-map 0:1 -c:a aac -b:a 64k -ac 2 \
-af:a aresample=async=1:min_hard_comp=0.100000:first_pts=0 \
-f flv rtmp://[username]:[password]@[wowza_hostname]:1935/live/livestream1
この FFmpeg を使ったコマンドでは、ビデオファイルを 1280x720 の解像度でエンコードしたストリームで RTMP ストリームを生成しています。 エンコード時に、ビデオフィルター機能を使って、現在の日時・時刻の情報を映像に埋め込む処理をしています。
ライブソースストリームの入力が開始したら、上部メニューバーの [Applications] をクリックし、
左のメニューから既定のライブアプリケーション (live) をクリックします。
次に、左のメニューから [Incoming Streams] をクリックすると、livestream1
という名前の
ストリームが入力されていることが確認できます。
手順3: ライブストリーミング再生のテスト
手順2でライブストリームの入力が完了したら、ライブストリームの配信ができる状態になります。
ライブストリームの再生 URL は以下のように構成されます。
ストリーミング形式 | URL |
---|---|
HLS | https://[WowzaStreamingEngineのドメイン名]/[アプリケーション名]/[入力ストリーム名]/playlist.m3u8 |
DASH | https://[WowzaStreamingEngineのドメイン名]/[アプリケーション名]/[入力ストリーム名]/manifest.mpd |
[アプリケーション名] は、この例では live となります。
[入力ストリーム名] は、この例では livestream1 となります。
Web プレイヤー を使って、再生のテストを行います。
まとめ
この記事では、FFmpeg で生成した RTMP ライブストリームをアップロードして、Wowza Streaming Engine 経由で ストリーミング配信を行うための設定を紹介しました。
Wowza Streaming Engine を利用することで、RTMP, RTSP, SRT 等のライブストリームを Apple HLS, MPEG-DASH などの ストリーミング形式に変換することができるようになります。また、CDN と組み合わせを行うことで大規模な HTTP ベースの アダプティブストリーミング配信を実現することも可能となります。