AWSのStreaming Serviceを使って、Unityで動画をStreamingする
ツール情報:
この記事で利用するのツール:
- AVProVideo
- Unity: 2018.4.2f1
- AWS S3 Service
- AWS Elemental MediaConvert Service
Streaming Mechanism:
ストリーミングのメカニズムでは、1つファイルを数パーツファイルに分けて、プレイバック時間で判定、適切なパーツをDLして、再生する。
システム構築図:
Service | 備考 |
---|---|
S3(input) | MediaConvertによって変換処理する入力動画を保管する(管理者が動画をアップロードする) |
S3 (output) | MediaConvertによって変換処理した出力動画を保管する(ジョブにより自動でアップロードされる) |
AWS Media MediaConvert | S3(input)にアップされましたの動画をストリーミングファイルに変換するサビースです |
その他 | Network、SSLやCDNなどのためです |
システム流れ:
- 管理者がオリジナルの動画ファイルをInput用のS3に上がる。
- AWS Media Converter サビースで、変換ジョブを作成して、変換動画品質設定、Output用のS3を指定して、実行する。
- Unityに,AVProVideoアセットをインポートする。
- Output用のS3に、.m3u8拡張のファイルの公開パスをUnityのAVProVideoアセットにあるのPrefabに渡して、設定はここまで完了します、UnityでPlayするとStreamingが開始する。
メモ:
AWS Media Converterを使わなくて、他のムービー変換ツール使って、ストリーミング用のムービーをOutput用のS3に上げる。次は、Step4と同様です。
AWS Media Convert サビース:
Bitrateについて:
簡単で定義すると:ビットレートは、特定の期間に送信されるデータの量を表す用語です。 これは、ビット(データ単位)とレート(レート)を組み合わせた単語です。Bitrate測定Unitは kbps(Kilobit per second)またはMbps(Megabit per second)です。
AWSサビースで、Bitrateタイプは3つあります、簡単な定義を説明しております:
- QVBR (Quality-Defined Variable Bitrate):
- CBR (Constant Bitrate):
- 固定帯域幅ネットワークでの配信では、ビットレートを一定にする必要があるときに使います。
- CBRを選択すると、エンコーダーはファイルサイズと品質をビットレートに設定した値で制限します。 エンコーダーは、ビデオのすべての部分に同じビット数を使用します。
- VBR (Variable Bitrate):
- 指定したサイズを下回らないように、合計ファイルサイズが必要際に使います。
- VBRでは、アセットの平均ビットレートを指定します。 エンコーダはビットを割り当てて、より多くのビットがビデオの複雑な部分に送られるようにします。 合計ファイルサイズ(コンテナ、パッケージ、およびオーディオデータを除く)は、指定した平均ビットレート(ビット/秒)にアセットの長さ(秒)を掛けたものになります。
- VBRを使用する場合、各アセットの複雑さに合わせて平均ビットレートを調整すると、最良の結果が得られます。
Bitrateに参考資料を添付しております。
変換の設定:
こちらはブロードキャストおよびマルチスクリーン配信用にファイルベースのコンテンツを変換するサビースです。
Streaming使うため、Apple HLSグループを選択する。(グループについての詳細はこの記事では記載しておりません)
上記書いてあるのBitrateついてセクションを参考しながら、ビデオ使う目的と合わせて、ビデオ品質を選択します、この記事ではQVBR(AWSのデフォルトを使います)。個人意見ではこれが一番適切なBitrateタイプです。