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.

LinodeでWowza Streaming Engineを構築してAkamai CDNでライブ配信をする

Last updated at Posted at 2023-02-28

Akamai CDNを利用してライブ配信する

Akamaiでは世界最大規模のライブ配信イベントにも耐えうるContent Delivery Network(CDN)として、Adaptive Media Deliveryというソリューションを提供しています。
本記事では、OBSにてキャプチャした動画をLinode上に構築したWowza Streaming EngineでHLSにEncodingして、Akamai CDNで配信する方法を紹介します。
Linodeでは低コストなライブオリジンを構築することができ、Akamai CDNを活用することで大規模な配信にも対応することができます。
今回はHLSにて配信する際になるべく低遅延で行う設定を行っております。
image.png

Akamai Adaptive Media Deliveryとは

Akamai Adaptive Media Deliveryは、Akamai Technologiesが提供するメディア配信ソリューションです。これにより、多くの視聴者に高品質の映像と音声コンテンツをインターネットを介して配信することができます。
世界最大のサッカーイベントなどの大規模な配信まで行うことができる配信基盤です。

Akamai Adaptive Media Delivery

Linodeとは

Linode (https://www.linode.com/) は Akamaiが提供するIaaS (Infrastructure as a Service) プラットフォームプロバイダーのサービスです。
Linodeは、仮想サーバーを提供し、ユーザーが自分のウェブサイトやアプリケーションなどをホストすることができます。

Wowza Streaming Engineとは

Wowza Streaming Engineは、インターネットを介して動画と音声をストリーミングするための高性能サーバーソフトウェアです。このソフトウェアは、どのデバイス、どこに、どのフォーマットでもライブおよびオンデマンドのコンテンツを配信することを可能にします。カスタマイズ可能なプラットフォームを提供することで、映像と音声を効率的に配信することができます。

OBS Studioとは

OBS Studioは、オープンソースの映像配信ソフトウェアです。ライブストリーミングやビデオキャプチャー、録画などを行うことができます。ユーザーは、カメラやマイクなどのデバイスを接続し、映像と音声をキャプチャーして、インターネット上に配信することができます。使いやすいインターフェースと多彩な機能が特徴です。

Linodeの構築をする

Wowza Streaming Engineを構築するサーバーをLinodeで用意します。

インスタンスのタイプはシステム要件を参考に選定します。

image.png
参考:https://www.wowza.com/docs/wowza-streaming-engine-technical-specifications

Linode https://cloud.linode.com/ にログインして、インスタンスを起動します。

image.png

後ほどNode Balancerを付与するため、Private IPにチェックを付けます。

image.png

https://cloud.linode.com/nodebalancers から Node Balancerを作成します。

image.png

image.png

CDNからオリジンへのアクセスを実現させるため、DNSのレコードを作成します。

wowza.sample.com CNAME xxx-xxx-xxx-xxx-.ip.linodeusercontent.com

以上でLinodeの構築は完了です。

Wowza Streaming Engineを構築する

https://auth.wowza.com/register からWowza Streming Engineのトライアルライセンスを発行します。

image.png

https://www.wowza.com/docs/how-to-install-and-configure-wowza-streaming-engine からLinuxのインストーラーをダウンロードし、作成したLinodeのサーバーにファイルを転送します。

LinodeのサーバーにSSH接続をし、Wowzaインストーラーを実行します。

root@localhost:~# ./WowzaStreamingEngine-4.8.21+6-linux-x64-installer.run
----------------------------------------------------------------------------
Welcome to the Wowza Streaming Engine Setup Wizard.

----------------------------------------------------------------------------
Please read the following License Agreement. You must accept the terms of this
agreement before continuing with the installation.

Press [Enter] to continue:

先程発行したライセンスキーを入力します。

Enter License Key
Please enter your Wowza Streaming Engine License Key.
            Format: XXXXX-XXXXX-XXXXX-XXXXX-XXXXX-XXXXX[-XXXXXXXXXXXX]

License Key: []:

セットアップを完了させます。

----------------------------------------------------------------------------
Setup is now ready to begin installing Wowza Streaming Engine on your computer.

Do you want to continue? [Y/n]: y

ブラウザーからWowza Streaming Engineの管理画面にアクセスします。

http://[作成したインスタンスのIP]:8088/enginemanager/login.htm

Applicationsからライブオリジンを作成します。

image.png

配信を行うための設定を行います。
HLSとDASH、Low-Latencyにチェックを付けます。

参考: https://www.wowza.com/docs/how-to-set-up-low-latency-applications-in-wowza-streaming-engine-for-rtmp-streaming

image.png

Source Securityの設定でRTMPの認証を外します。

image.png

低遅延で配信するための設定を追加します。

参考:Changing Default Segment Size to Decrease Streaming Latency

設定項目 内容
cupertinoChunkDurationTarget 各チャンクの期間をミリ秒単位で設定
cupertinoMaxChunkCount Wowza StreamingEngineが使用可能なチャンクリストに保存するチャンクの最大数を設定
cupertinoPlaylistChunkCount プレイリスト内のプレイヤーに返されるアイテムの数を設定

image.png

Customの設定でflushIntervalとonFlushNotifyClientsの設定を行います。

参考:Set up low latency applications in Wowza Streaming Engine for RTMP streaming

image.png

OBS Studioで接続するための情報を控えます。

rtmp://[Host - Server]:[Host - Port]/[Application]

image.png

Akamai Adaptive Media Deliveryを構築する

https://control.akamai.com から Create PropertyからAdaptive Media Deliveryを選択します。

image.png

image.png

設定項目 内容
Property name 任意の名前
Contract 契約があるContact ID
Group 設定を作成するグループ

image.png

今回はドメインの取得やDNSの設定が不要なShared Certificate Hostnameを作成します。

image.png

任意の名前を設定して作成をします。

image.png

Origin Server Hostnameの設定欄にLinode Node BalancerのHostnameのDNSレコードを追加したドメインを設定します。

image.png

Segmented Media Delivery Modeを設定します。

参考:HLS and a third-party origin

image.png

Content Characteristicsを設定します。
今回は極力低遅延の配信を行いたいため、セグメントを2secに設定します。

image.png

HTTP/2とChunked Transfer Encodingを設定します。

image.png

設定を保存し、StagingとProductionに展開させます。

image.png

以上で、Akamaiの設定は完了となります。

OBS Studioの設定をする

Media Sourceから任意の配信する動画、カメラなどを設定します。

参考:Send an RTMP Stream to Wowza Streaming Engine With OBS Studio

image.png

SettingのOutputからなるべく遅延を少なくするための設定を行います。

image.png

Streamの設定で先程控えたrtmpのURLを入力します。
Steam Keyは[Application]の名前を入力します。

rtmp://[Host - Server]:[Host - Port]/[Application]

image.png

配信を開始します。

image.png

以上で、OBS Studioの設定は完了です。

配信の確認

Akamaiのプレイヤーで配信の確認を行います。

WowzaのTest PlaybackからURLの確認を行います。

image.png

以下のようなURLを作成し、アクセスを行えます。

https://xxxxx.akamaized.net/[ApplicationName]/[ApplicationName]/playlist.m3u8

image.png

OBSの配信画面とプレイヤーの遅延を比較してみると、6−7秒程度の遅延で配信できることが確認できました。

image.png

注意事項

チャンクを小さく設定する場合には、リクエスト数が増加します。
そのため、サーバーへの負荷も増加することとなります。
また、チャンクが小さいとクライアント側でバッファリングが発生することもあり、快適に視聴できる適切な値での設定が必要となります。

まとめ

今回は、AkamaiのCDNとLinodeを活用したライブ配信基盤の紹介となりました。
今回の設定はあくまでも参考として利用し、最適な設定値を検証していただければと思います。
また、大規模配信を実施する際にはオリジンサーバーの負荷を軽減するため、AkamaiのCDNを多層構造にするCloud Wrapperを導入することでオフロード率を高めることができます。
ぜひ、AkamaiとLinodeを組み合わせて活用していただければと思います。

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?