AWS 配信

Amazon Interactive Video Service (IVS) を勉強会の配信で使ってみました。

はじめに

7/15に Amazon Interactive Video Service がGAしました。
https://aws.amazon.com/jp/blogs/aws/amazon-interactive-video-service-add-live-video-to-your-apps-and-websites/
https://aws.amazon.com/jp/ivs/
ちょうど翌日(日本時間)に会社開催の勉強会が開催予定だったので急遽Amazon IVSでも配信してみようということになり試してみました。
https://irettechlabo.connpass.com/event/181098/

配信環境

配信環境はざっくり下記のようになっています。
完全リモートで実施しています。

  • スピーカーをZoomで繋ぎます。
  • 配信者(今回は私)がOBSで同時配信します。
  • 片方はYoutubeLive
  • もう片方にIVSで配信します。
  • EC2に配信用のサーバーを立てています。

準備

Amazon IVS

IVSの利用方法はとても簡単なので省きます。ほぼチュートリアルに沿っています。
2、3回クリックすると開始することができます。
https://docs.aws.amazon.com/ivs/latest/userguide/what-is.html

立ち上げるとこのような感じです。

配信用サーバー

EC2に立てています。
下記にSDKの話が書いてあります。
https://docs.aws.amazon.com/ivs/latest/userguide/SWPG.html

実際にはサンプルコードを利用しています。video.jsが利用されていますね。
https://github.com/aws-samples/amazon-ivs-player-web-sample

サンプルコードはnode.jsで配信するために少々設定を変更しています。
具体的には、外部公開するための設定です。
注意:開発用のサーバーなので本番環境でやりたいときはApacheなりでしっかりと組んでください。

portとhostを設定しています。

~
    },
    devServer: {
        disableHostCheck: true,
        compress: false,
        contentBase: [
            path.resolve(__dirname, 'bundle'),
            path.resolve(__dirname, 'dist')
        ],
        index: 'index.html',
        port: 80,
        host: "0.0.0.0"
    },
~

見た目に関してはコンテンツをごにょごにょしてください。

OBS

同時配信にはプラグインを利用しています。

雷鳴さんのOBS複数サイト同時配信プラグインを利用させて頂きました。
https://sorayukinoyume.hatenadiary.org/entry/2020/04/04/174256

まじ最高っす。

配信

配信開始するとステータスが確認できます。視聴者数が確認できるので良いですね。

実際にみると。

今回は1080pで配信を行いましたが大きな遅延も発生せず問題なく配信できました。

配信中のEC2側のトラフィックも上げておきますが25人程度じゃ全然関係ないですね。

IVSのメトリクスも見ていきます。今のところは下記が用意されています。

Metric Dimension Description
LiveDeliveredTime None すべての視聴者に配信される動画の合計リアルタイム時間。
LiveDeliveredTime Channel LiveDeliveredTimeをチャンネル別にフィルタリングします。チャンネルの値はARNです。
LiveDeliveredTime Channel,ViewerCountryCode チャンネルと視聴者の国コードでLiveDeliveredTimeをフィルタリングします。チャンネルの値は ARN です。国の値は2文字のISO 3166-1国コードです。これにより、次の質問に答えることができます:視聴者はどこから見ているのか?視聴者の国が特定できない場合は、UNKNOWNと表示されます。
LiveInputTime None ビデオストリームのリアルタイム持続時間。
LiveInputTime Channel LiveInputTimeをチャンネルごとにフィルタリングします。チャンネルの値はARNです。

今回の配信時のメトリクス。

まとめ

今回は勉強会の配信にAmazon IVSを利用してみましたが非常に簡単に配信が行えます。
数時間で環境が構築でき配信環境を整えることが行えました。画質、音声に関しても文句はないと思います。
また、これとは別にChat機能など追加していくと、簡易な配信用プラットフォームとしてとても有効だと思いました。

-AWS, 配信
-,