0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Wowza Streaming Engine を使ったライブストリーミング (1)

Last updated at Posted at 2023-03-28

はじめに

この記事では、Wowza Streaming Engine でライブストリーミング配信を行うためのセットアップを行います。

ライブ配信は、Wowza Streaming Engine にライブソースストリームを入力し、そのライブストリームをストリーミング方式に変換して、ライブストリーミング配信を行います。

作業の手順は、以下の通りです。

  1. ライブソースストリームの入力セキュリティの設定
  2. FFmpeg によるビデオファイルを使った RTMP ライブソースの入力
  3. ライブストリーミング再生のテスト

Big Buck Bunny サイト のビデオコンテンツをサンプルとして使うストリーミングコンテンツとします。

配信で利用する ビデオファイル はこちらを利用しました。

手順1: ライブソースの入力セキュリティの設定

Wowza Streaming Engine にライブソースストリームを入力する際にパスワードで認証を行うことにより、
ライブソースの入力セキュリティを確保することができます。

ライブソースの入力セキュリティを設定にするには、以下の手順で行います。

  1. Wowza Streaming Engine Manager 管理 UI にログインし、上部メニューバーの [Server] をクリックします。

  2. 左のメニューから [Source Authentication] をクリックします。

  3. [+Add Source] ボタンを押します。

  4. 以下のパラメーター情報を入力して、[+Add] ボタンをクリックします。

    パラメーター
    Source User Name ソース認証のユーザー名: 例: livestream1
    Source Password (Confirm Password) ソース認証のパスワード

    注意: ユーザー名とパスワードの値は、大文字と小文字が区別され、英数字、ピリオド (.)、アンダースコア (_)、およびハイフン (-) 文字のみを含めることができます。

  5. 上部メニューバーの [Applications] をクリックし、左のメニューから既定のライブアプリケーション (live) をクリックします。

  6. 左のメニューから [Source Security] をクリックし、ソースセキュリティの設定を確認します。

    • [RTMP Sources] が [Require password authentication] (パスワード認証を必要とする) となっているかを確認する。
    • もし設定が異なる場合は、[Edit] ボタンをクリックし、設定変更を行う。

    WSE Live Source Security 設定

手順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:v: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 という名前の
ストリームが入力されていることが確認できます。

Live Incoming Stream

手順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 ベースの
アダプティブストリーミング配信を実現することも可能となります。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?