LinodeでWowza Streaming Engineを構築し、Akamai Media Services Live 4を利用してPush型のライブ配信を実現する

# Akamai Media Services Live 4を利用したPush配信とは

Akamai Media Services Live 4(MSL4)はライブビデオストリーミング用のオリジンサービスです。
大規模な配信（突発的な視聴者数増加を含め）になると、CDNを利用してもオリジンへのリクエストが多くなるため、オリジンのスケーラビリティを考える必要が出てきます。
MSL4は、エンコーダーからHLS/DASH/CMAFの形式でMSL4にセグメントとマニフェストファイルをPushすることができ、オリジンの負荷をオフロードすることができます。
Akamai CDNとMSL4間の通信費はかからないため、ライブオリジン間の通信コストの削減にもつながります。
アーカイブ機能も備えており、冗長性の観点ではIngest先はPrimaryとBackupが用意されているため、障害時にはIngest先を切り替えることが可能です。
本記事では、Linode上に構築したWowza Streaming EngineからMSL4を利用した配信を紹介します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/49877/8bbb0aab-41b6-31fe-a445-88005c75d6d5.png)

# 本記事での紹介範囲

LinodeでのWowza Streaming Engineの構築、Akamai Adaptive Media Deliveryの設定などは以下の記事で紹介しています。
本記事ではMSL4を導入する際の差分を紹介します。

https://qiita.com/isss802/items/e01bb17a05e773c5aec1

# Akamai Media Services Live 4(MSL4)の構築

MSL4の設定画面からAdd Streamを選択して新規作成を行います。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/49877/713b68b1-534a-1498-fa57-c31f57a86d4e.png)

MSL4の設定を作成するため、各項目を記載してNextを選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/49877/addbf55f-d4fd-82d7-8116-b8d87b177480.png)

アーカイブの設定はしないため、Nextを選択


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/49877/c20de3bc-0060-1b61-07d2-6e0f28b130cb.png)

Origin Hostnameの設定を行います。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/49877/fa15316c-a054-49e3-735a-a437032a810a.png)


ここまでの設定内容を確認のうえ、通知を受け取るEmailアドレスを入力してCreateを押せば作成は完了です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/49877/10deaf8e-0dca-94b1-620c-0c0be7da905b.png)

作成した設定を確認して、各設定に利用する項目を控えておきます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/49877/6be9273b-e9d2-fae8-9941-5815b6f7b2b1.png)



# Akamai Adaptive Media Delivery(AMD)の設定

AMDのOriginとしてMSL4を利用するように設定の変更が必要となります。
先程控えた宛先の内容で設定します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/49877/da54a6c2-d741-9910-c53d-418ecf00958e.png)

設定後に、StagingとProductionに展開します。

# Wowza Streaming Engineの設定

Wowzaからライブ映像をMSL4へPushするためにStream Targetsの追加を行います。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/49877/07e4dd5f-5272-4e81-9c9f-0495e34983f4.png)

作成した設定を有効化します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/49877/c038bf0d-f0a0-38ef-3c00-9ceeab9ddc47.png)

# OBS Studioの設定

OBS StudioのStream設定をWowzaに設定した内容に合わせます。

`rtmp://[LinodeのPublic IP]:1935/[Wowzaに設定したSource Stream Name]`

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/49877/eb26f8b2-1f27-c9f4-668f-afb1c616d3f2.png)

OBSの配信を開始します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/49877/c2047668-a8c1-f331-f832-882293e11381.png)


# 配信の確認

AkamaiのPlayerを利用して配信の確認を行います。

http://players.akamai.com/players/hlsjs

`https://xxxxxxxxxx.akamaized.net/hls/live/[Akamai Stream ID]/[Akamai EventName]/[Destination Stream Name]/playlist.m3u8`


OBS Studioの配信時間と比較して、遅延が9-10秒程度であることが確認できました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/49877/942de259-8834-4406-25e4-c74d77fd8cf1.png)

# 参考サイト

**[Stream to the Akamai HD network from Wowza Streaming Engine](https://www.wowza.com/docs/how-to-stream-to-akamai)**

**[Publishing HLS streams to MSL4.X using Wowza](https://community.akamai.com/customers/s/article/Publishing-HLS-streams-to-MSL4-X-using-Wowza?language=en_US)**

# まとめ

Akamai Media Services Live 4を利用することにより、ライブオリジンとなるWowza Streaming Engineの負荷をオフロードすることができます。
そのため、Linode上で用意するインスタンスサイズを小さくすることができ、大規模配信でもスケーラブルな配信環境を用意することができます。