[アップデート] Amazon Interactive Video Service にライブストリームの録画機能が追加されました

IVS に待望の録画機能が追加されました!
2021.04.08

こんにちは、大前です。

Amazon Interactive Video Service(以下 Amazon IVS)に、待望の録画機能が追加されました!

追加された機能を実際に触っていきたいと思います。

TL;DR

  • Amazon IVS にチャネルで配信するストリームの録画機能が追加されたよ
  • 録画されたストリームは HLS 形式で S3 に保存されるよ

どんなアップデートか

Amazon IVS で配信するストリームを録画する事ができる様になりました。また、録画ファイルは S3 に保存されます。 本機能の利用による追加費用は発生しません。通常通り、S3 側のストレージコストなどが発生するのみです。

注意点として、ストリームの記録は一部失われる可能性がある事 が挙げられています。完全なアーカイブが求められる要件がある場合には注意しましょう。

ストリーミングロケーションとAWSの間、またはAWS内のネットワークの問題により、ストリームの記録中にデータが失われる可能性があることに注意してください。このような場合、AmazonIVSはレコーディングよりもライブストリームを優先します。冗長性を確保するために、ストリーミングツールを介してローカルに記録します。

やってみた

録画機能の有効化

実際に、Amazon IVS の録画機能を使ってみたいと思います。また、2021/4 時点で Amazon IVS は東京リージョンに対応していませんので、適切なリージョンを選択の上お試しください。

コンソールから Amazon IVS のチャネル作成画面を開くと、ストリームの記録と保存 という設定項目が追加されている事がわかります。

「S3への自動記録」を選択する事で、録画機能が有効化されます。 また、録画機能を使用するにあたって、記録設定 を作成する必要がありますので「記録設定を作成」をクリックします。

記録設定の作成画面では、既存の S3 を使用するか新規の S3 を使用するか選択する事ができます。今回は新しい S3 バケットを作成します。

記録設定を作成すると録画設定は完了ですので、Amazon IVS のチャネルを作成します。 また、作成した記録設定は他の IVS チャネルに流用する事ができます。

配信する

Amazon IVS のチャネルが作成できたら、OBS を利用して配信を行なっていきます。

Amazon IVS を使用した配信方法については、以下を参照ください。

Amazon IVS のコンソール画面にも配信されている事が確認できます。

録画ファイルを確認する

配信後、記録設定で指定した S3 を確認すると {S3バケット}/ivs/v1/{アカウントID}/{ランダム文字列}/{年}/{月}/{日}/{時}/{分} 配下に events/media/ というディレクトリが作成されている事が確認できます。

events/ 配下には以下の 3ファイルが確認できます。録画に関するメタデータが格納されている様です。

  • ivs-check
  • recording-ended.json
  • recording-started.json

試しに、recording-started.json を開いてみました。録画開始時間や Amazon IVS チャネル情報、ストリームの内訳が記載されています。

{
    "version": "v1",
    "recording_started_at": "2021-04-08T00:46:48Z",
    "channel_arn": "arn:aws:ivs:us-east-1:xxxxxxxx:channel/y2IX7ZV3fDHj",
    "recording_status": "RECORDING_STARTED",
    "media": {
        "hls": {
            "path": "media/hls",
            "playlist": "master.m3u8",
            "renditions": [
                {
                    "path": "360p30",
                    "playlist": "playlist.m3u8",
                    "resolution_width": 640,
                    "resolution_height": 360
                },
                {
                    "path": "160p30",
                    "playlist": "playlist.m3u8",
                    "resolution_width": 284,
                    "resolution_height": 160
                },
                {
                    "path": "1080p60",
                    "playlist": "playlist.m3u8",
                    "resolution_width": 1920,
                    "resolution_height": 1080
                },
                {
                    "path": "720p60",
                    "playlist": "playlist.m3u8",
                    "resolution_width": 1280,
                    "resolution_height": 720
                },
                {
                    "path": "480p30",
                    "playlist": "playlist.m3u8",
                    "resolution_width": 852,
                    "resolution_height": 480
                }
            ]
        },
        "thumbnails": {
            "path": "media/thumbnails"
        }
    }
}


media/ 配下には、実際の録画ファイルを格納する hls/ と、サムネイルを格納する thumbnails/ が作成されています。 録画ファイルは HLS 形式で保存される事がわかります。また、サムネイルも生成してくれるのは嬉しいですね。

thumbnails/ 配下にはサムネイルが jpg 形式で 2つ生成されていました。サムネイル生成に関する設定は確認できませんでしたので、Amazon IVS 側でよしなに生成してくれる様です。

hls/ にはマスターのマニフェストファイルと、解像度毎のディレクトリが確認できます。1080p/720p/480p/360p/160p の 5つのストリームが生成される事がわかります。

1080p/ 配下を覗いてみると、マニフェストファイルとセグメントファイルが確認できます。セグメントは ts 形式で保存されていました。セグメントファイルの名前は Amazon IVS 側で自動的に決定される様です。

おわりに

Amazon IVS に追加された録画機能を触ってみました!Amazon IVS に録画機能がない事は IVS を選択する際の懸念事項として大きいものでしたが、今回のアップデートでそれが解消された気がします。

今後も、Amazon IVS のアップデートに期待ですね!

以上、AWS 事業本部の大前でした。

参考