

# IVS RTMP 配信 \$1 リアルタイムストリーミング
<a name="rt-rtmp-publishing"></a>

このドキュメントでは、RTMP を使用して IVS ステージに配信するプロセスの概要を説明します。さまざまな取り込みオプションの詳細については、「[ストリームの取り込み](https://docs.aws.amazon.com/ivs/latest/RealTimeUserGuide/rt-stream-ingest.html)」ドキュメントを参照してください。

## 前提条件
<a name="rtmp-prerequisites"></a>

### ステージの作成
<a name="rtmp-create-stage"></a>

ステージを作成するには、以下のコマンドを使用します。

`aws ivs-realtime create-stage --name "test-stage"`

レスポンスを含む詳細については、「[CreateStage](https://docs.aws.amazon.com/ivs/latest/RealTimeAPIReference/API_CreateStage.html)」を参照してください。

**重要：** レスポンスで、RTMP エンドポイントと RTMPS エンドポイントの両方を一覧表示する `endpoints` フィールドを書き留めます。これらは RTMP エンコーダーのセットアップに必要です。

### 取り込み設定を作成する
<a name="rtmp-create-an-ingest-configuration"></a>

RTMPS を使用してステージに配信するには、まず取り込み設定を作成し、ステージに関連付ける必要があります。ステージに配信すると (取り込み設定のストリームキーとステージの RTMP エンドポイントを使用)、メディアは参加者としてステージに配信されます。`userId` およびカスタム `attributes` を指定するオプションがあり、ステージに接続する[参加者](https://docs.aws.amazon.com/ivs/latest/RealTimeAPIReference/API_Participant.html)に関連付けられます。

```
aws ivs-realtime create-ingest-configuration \
  --name 'test' \
  --stage-arn arn:aws:ivs:us-east-1:123456789012:stage/8faHz1SQp0ik \
  --user-id '123' \
  --ingest-protocol 'RTMPS'
```

レスポンスを含む詳細については、「[CreateIngestConfiguration](https://docs.aws.amazon.com/ivs/latest/RealTimeAPIReference/API_CreateIngestConfiguration.html)」を参照してください。

取り込み設定を作成するときは、事前に特定のステージ ARN に関連付けることができます。この関連付けがない場合、ストリームキーは使用できません。また、インジェスト設定 (`stageArn` フィールドを含む) は [UpdateIngestConfiguration](https://docs.aws.amazon.com/ivs/latest/RealTimeAPIReference/API_UpdateIngestConfiguration.html) オペレーションを介して更新できるため、異なるステージで同じ設定を再利用できます。

**注:** 取り込み設定 `insecureIngest` フィールドはデフォルトで `false` になり、RTMPS を使用する必要があります。RTMP 接続は拒否されます。RTMP を使用する必要がある場合は、`insecureIngest` を `true` に設定します。RTMP を必須とする特定の検証済みのユースケースがない限り、RTMPS の使用をお勧めします。

## RTMP シングルトラックビデオ
<a name="rtmp-singletrack"></a>

ここでは、OBS Studio の使用方法を示しますが、IVS [メディア仕様](https://docs.aws.amazon.com/ivs/latest/RealTimeUserGuide/rt-stream-ingest.html#supported-media-specifications)を満たす任意の RTMP エンコーダを使用できます。

### OBS ガイド
<a name="rtmp-singletrack-obs"></a>

1. ソフトウェアをダウンロードしてインストールします: [https://obsproject.com/download](https://obsproject.com/download)。

1. [**設定**] をクリックします。[**設定**] パネルの [**ストリーム**] セクションで、[**サービス**] ドロップダウンから [**カスタム**] を選択します。

1. [**サーバー**] には、ステージから RTMP または RTMPS エンドポイントを入力します。

1. **ストリームキー** には、取り込み設定から `streamKey` を入力します。

1. ビデオ設定を通常どおりに設定します。いくつかの制限があります。

   1. IVS Real-Time Streaming は、8.5 Mbps で最大 720p の入力をサポートします。これらの制限のいずれかを超えると、ストリームは切断されます。

   1. **[出力]** パネルの **[キーフレーム間隔]** を 1 秒または 2 秒に設定することをお勧めします。キーフレーム間隔を短くすると、視聴者の動画再生をより迅速に開始できます。**CPU 使用率プリセット**を **[veryfast]** に、レイテンシーを最小にするために**調整**を **[zerolatency]** に設定することをお勧めします。

   1. OBS はサイマルキャストをサポートしていないため、ビットレートを 2.5 Mbps 未満に維持することをお勧めします。これにより、低帯域幅接続の視聴者が視聴できるようになります。

   1. B フレームを含むストリームは自動的に切断されるため、B フレームを無効にします。次のいずれかを行います。
      + x264 オプションで、`bframes=0 sliced-threads=0` と入力します。
      + オプション (NVENC の場合など) の場合は、B フレームを 0 に設定します。

   注意: RTMP ストリームにはオーディオトラックとビデオトラックの両方が含まれている必要があります。含まれていない場合、ストリームは切断されます。

1. 次に [**ストリーミングを開始**] を選択します。

**重要:** エンコーダーの最大ビットレートが 8.5 Mbps に設定されている場合、パブリッシャーはセッションから消えることがあります。これは、最大ビットレート設定が目標のみであり、エンコーダーが目標を超えることがあるためです。これを防ぐには、エンコーダーの最大ビットレートを 6 Mbps などに設定します。

## E-RTMP マルチトラックビデオ
<a name="rtmp-multitrack"></a>

IVS は、E-RTMP (拡張リアルタイムメッセージングプロトコル) のマルチトラックビデオ機能をサポートするので、単一の RTMP ストリームで複数のビデオ品質を IVS ステージに配信できます。これによりアダプティブビットレートストリーミングが可能になり、サブスクライバーはネットワーク接続に最適な品質で自動的に視聴できます。

取り込まれると、さまざまなビデオ品質がサイマルキャストレイヤーとしてサブスクライバーに配信されます。サブスクライバーが受信するレイヤーを設定するには、リアルタイムストリーミング SDK ガイド ([Android](https://docs.aws.amazon.com/ivs/latest/RealTimeUserGuide/broadcast-android.html)、[iOS](https://docs.aws.amazon.com/ivs/latest/RealTimeUserGuide/broadcast-ios.html)、[Web](https://docs.aws.amazon.com/ivs/latest/RealTimeUserGuide/broadcast-web.html)) のサイマルキャストによるレイヤードエンコーディングに関するセクションを参照してください。

サンプルコードについては、GitHub の [aws-samples/sample-amazon-ivs-multitrack-video](https://github.com/aws-samples/sample-amazon-ivs-multitrack-video) を参照してください。

この図は、マルチトラックビデオを使用した配信の仕組みを示しています。

![\[マルチトラックビデオをステージに配信する。\]](http://docs.aws.amazon.com/ja_jp/ivs/latest/RealTimeUserGuide/images/E-RTMP.png)


### OBS ガイド
<a name="rtmp-multitrack-obs"></a>

1. OBS Studio をダウンロードしてインストールします。

   1. Windows: マルチトラックビデオは OBS Studio 30.2 以降でサポートされています。

   1. macOS: マルチトラックビデオは、OBS Studio 31.1 Beta (Apple Silicon のみ) 以降でサポートされています。

   1. ダウンロード: [https://obsproject.com/download](https://obsproject.com/download)。

1. [**設定**] をクリックします。**[設定]** パネルの **[ストリーム]** セクションで、**[サービス]** ドロップダウンから **[Amazon IVS]** を選択します。

1. [**サーバー**] は [**自動**] のままにします。

1. **ストリームキー** には、取り込み設定から `streamKey` を入力します。

1. [**Multitrack Video**] セクションで、[**Enable Multitrack Video**] を選択します。

1. [**ビデオ**] パネルで、目的の [**Base (Canvas Resolution)**] と [**Output (Scaled) Resolution**] を設定します。IVS Real-Time Streaming は、最大 720p の入力をサポートします。これらの制限を超えると、ストリームは切断されます。

   マルチトラックビデオが有効な場合、ビデオトラックの数、ビットレート、キーフレーム間隔などの設定は、デバイスの容量に基づいて自動的に設定されます。

1. [**ストリーミングを開始**] を選択します。

### FFmpeg による配信
<a name="rtmp-multitrack-ffmpeg"></a>

FFmpeg を使用して、RTMP 経由での IVS リアルタイムストリーミングにライブビデオと音声を配信できます。無料のオープンソースプロジェクトである FFmpeg は、ビデオ、音声、およびその他のマルチメディアコンテンツを処理するための包括的な一連のソフトウェアライブラリで構成されています。

以下のコマンド例は、色のパターンとトーンが含まれるストリームを配信します。

```
ffmpeg \
 -re \
 -f lavfi -i testsrc=d=300:s=1280x720:r=60,format=yuv420p \
 -f lavfi -i sine=f=440:b=4:d=300 \
 -c:v libx264 \
 -b:v 2500k \
 -g 60 -bf 0 \
 -profile:v baseline \
 -preset veryfast \
 -tune zerolatency \
 -x264opts sliced-threads=0 \
 -c:a aac \
 -ac 2 \
 -b:a 160k \
 -ar 48000 \
 -f flv \
 rtmps://$INGEST_ENDPOINT/app/$STREAM_KEY
```

この例では、`$INGEST_ENDPOINT` と `$STREAM_KEY` を IVS コンソールまたは API の独自の値に置き換えてください。

この設定は、H.264 ビデオ (ベースラインプロファイル、B フレームなし、スライスされたスレッドなし) や AAC 音声などの IVS リアルタイムストリーミングで[サポートされているメディア仕様](https://docs.aws.amazon.com/ivs/latest/RealTimeUserGuide/rt-stream-ingest.html#supported-media-specifications)に適合しています。

## ステージへのプライベート取り込み
<a name="private-ingest-stages"></a>

インターフェイス VPC エンドポイントを使用して、Amazon VPC 内のリソースまたは Direct Connect からステージに RTMP(S) ストリームと E-RTMP(S) ストリームを配信できます。これによって VPC と IVS 間のプライベート接続が可能になり、AWS ネットワーク内に取り込みトラフィックを保持できます。IVS のインターフェイス VPC エンドポイントを設定および構成するには、「*IVS 低レイテンシーストリーミングユーザーガイド*」の「[IVS Private Ingest](https://docs.aws.amazon.com//ivs/latest/LowLatencyUserGuide/private-ingest-ll.html)」を参照してください。