Azure Media Services のライブ エンコード機能の概要


このポストは、4 月 13 日に投稿された An introduction to Live Encoding with Azure Media Services の翻訳です。

昨年 Azure Media Services のライブ ストリーミング機能がリリースされました。これにより、放送事業者が従来から大規模ライブ イベントで利用しているような、即座に拡張できて常時利用可能なストリーミング ソリューションをマイクロソフトのユーザーの皆様にもご利用いただけるようになりました。既にお読みになったかもしれませんが、ライブ イベントを Azure 管理ポータルで管理する方法を説明したブログ.NET SDK で管理する方法を示したブログ、またライブ フィードを供給する方法について記載したブログがありますので、そちらもお読みください。これまでライブ ストリーミングでアダプティブ ビットレートのビデオ ストリームを作成してクラウド上にプッシュするには、オンプレミスのエンコーダーを使用する必要がありました。しかし、現在プレビュー版としているライブ エンコード機能を使用すれば、Azure Media Services にシングル ビットレートのライブ フィードを送信するだけで済みます。このデータはアダプティブ ビットレートのストリームにエンコードされ、MPEG-DASH、Microsoft Smooth Streaming、Apple HLS、または Adobe HDS の各形式で各種クライアントに配信されます。

この記事では、このライブ エンコード機能の概要について説明します。この機能を使用すると、Azure Media Services で次のことが可能になります。

  • シングル ビットレートのライブ フィードからアダプティブ ビットレート ストリームへのライブ エンコード
  • RTP プロトコル (MPEG トランスポート ストリーム)、RTMP、および Smooth Streaming でのライブ フィードの取得
  • クライアントへのスレート挿入の制御、および広告信号の挿入
  • ライブ フィードのサムネイル プレビューの取得

ライブ エンコードとは

ライブ イベントをストリーミング配信する場合、高品質のビデオ、さまざまなネットワーク条件下での配信、あらゆるユーザー デバイスへの対応などが課題となります。品質とネットワーク条件については、アダプティブ ビットレート ストリーミング (英語) というソリューションがあります。また、複数デバイス (および各デバイスの機能) への対応については、動的パッケージなどの再パッケージ化システムで解決できます。

アダプティブ ビットレート ストリーミング機能では、解像度やビットレートが異なる複数のビデオ ストリームの同期を取りながらビデオをエンコードします。ライブ イベントの場合は、受信するビデオをリアルタイムで処理するために、ある程度の遅延を維持する必要があります。このライブ エンコードと呼ばれるリアルタイムのビデオ圧縮処理では、非常に高い演算負荷がかかります。ライブ イベントをストリーム配信する場合、高速な CPU と可能であれば GPU アクセラレーションを搭載したハードウェアが推奨されます。さらにユーザーへのイベント配信は CDN から行うため、複数のビデオ ストリーム (6 ~ 10 種類) を提供する場合は、これらを CDN にストリームとして送信できる帯域幅が必要です。このように、ライブ イベントの配信には非常に高価なインフラストラクチャが必要となります。

Azure Media Services のライブ エンコード機能は、このようなインフラストラクチャ面の問題に対処するクラウド ベースのワークフローです。シングル ビデオ フィード (高品質) を Azure データセンターに送信すれば、このサービスが高負荷のエンコード処理を行いアダプティブ ビットレート ストリームに変換します。このため、遠隔地で開催されるライブ イベントの配信も Wi-Fi やモバイル ネットワークの予算のみで実現できます。エンコーダーはカメラに組み込みのものか、安価または無料で提供されている低電力のもので十分です。また、このサービスは即座に拡張できるため、イベント中の利用率の急増にも対応できます。料金は利用した分のみ課金されるしくみです。

ライブ エンコード機能の使用方法

ライブ イベントを配信する場合のライブ エンコード機能のセットアップは、次の手順で行います。

  1. ライブ フィードの入力で使用するプロトコルを決定します (詳細は後述します)。
  2. API または Azure 管理ポータルからライブ チャネルを作成し、ライブ エンコード機能で必要な条件に合わせて設定項目を選択します。
  3. オンプレミスのエンコーダーをセットアップし、シングル ビデオ フィード (高品質) を送信できるようにします。
  4. 出力されたストリームを Azure 管理ポータルなどからプレビューして確認します。
  5. イベントを管理するプログラム (英語) を作成します。

注: API および構成手順の詳細については、今後ブログで公開する予定です。

サポートされている形式とコーデック

ライブ エンコード機能の入力では、RTMP、RTP (MPEG TS)、および Smooth Streaming の各プロトコルがサポートされています。ライブ フィードは、MPEG-2 (最大 422 プロファイル) または H.264 (最大 High 422 プロファイル) にエンコードしたビデオでの送信が可能です。また、音声は AAC-LC (最大 7.1 チャンネル)、Dolby® Digital/AC-3 (最大 7.1 チャンネル)、または MPEG Audio (Layer 2 および 3、最大ステレオ チャンネル) での送信ができます。

ライブ エンコーダーでは 4:2:2 から 4:2:0 のクロマ サブサンプリングがサポートされており、また音声チャネルのダウンミキシング、音声のリサンプリング、およびダイナミック レンジの圧縮も可能です。

出力エンコードに関して、ビデオは H.264 (最大 High 4:2:0 プログレッシブ)、音声はステレオまたはモノラルの AAC (LC、HE v1、HE v2 の各プロファイル) に対応しています。

また、EIA/CEA-708 のクローズド キャプションが付属している入力ビデオ フィードにも対応します。

広告の信号については、入力では API 呼び出しによる入力、および入力プロトコルが RTP の場合はインバンドの SCTE-35 の SpliceInsert および TimeSignal のコマンドに対応しています。出力では、HLS のプレイリスト タグ (SCTE-67)、Smooth Streaming のスパース トラック (SCTE-35)、および HDS の CueInfo 要素に対応しています。

取り込みプロトコルの選択

チャネルへの入力ライブ フィードは下記のいずれかのプロトコルで送信します。

  1. RTMP: このプロトコルではほとんどの場合、カメラに組み込み済みのエンコーダーまたは Telestream Wirecast や Flash Media Live Encoder、Tricaster などのツールを使用して、入力フィードをオープンなインターネットから最寄りの Azure データセンターに送信します。
  2. RTP: 放送事業者向けのプロトコルで、Elemental Technologies、Ericsson、Ateme、Envivio などのベンダーのオンプレミスのライブ エンコーダーを使用します。通常、入力ストリームのセットアップは IT 部門と協力して行い、Azure ExpressRoute などのプライベート ネットワークや専用ネットワークを使用します。
  3. HTTP 経由の Smooth Streaming: 一般的に、Elemental Technologies、Ericsson、Ateme、Envivio などのベンダーが提供するオンプレミスのライブ エンコーダーを使用します。通常は、オープンなインターネット経由で入力ストリームを最寄りの Azure データセンターに送信できます。

RTMP を使用する場合の注意事項

RTMP 経由でライブ フィードをチャネルに送信する場合、次の制限が適用されます。

  1. H.264 でエンコードする場合、解像度は最大 1080p30、ステレオ音声は AAC-LC 形式となります。
  2. 音声のサンプリング レートは 44.1 kHz となります。
  3. Closed GOP および CBR モードでのエンコードを推奨します。
  4. ビデオと音声を合計したビットレートよりも広い帯域幅を使用することを推奨します。

RTP を使用する場合の注意事項

RTP でライブ ストリームを送信する場合、ネットワーク接続が次の条件を満たしている必要があります。

  1. 十分なスループット (入力ストリームの最大 1.5 倍)。広い帯域幅は人気イベントの配信中のみ必要で、常時必要なわけではありません。ネットワークを選択するだけで簡単に帯域幅を変更できるのでコストを削減できます。
  2. 低レイテンシ (150 ミリ秒未満)、Traceroute コマンドでのホップ数は 10 ~ 15。
  3. サービス品質および可用性についての SLA。

ここからは、マイクロソフトが推奨する手法を 2 つ説明します。選択するオプションにかかわらず、ネットワーク プロバイダーは Tier 1 を推奨します。Tier 1 ネットワーク プロバイダーのリストはこちらのページ (英語) でご確認いただけます。

パブリック インターネット経由の RTP 接続と Border Gateway Protocol (BGP) ピアリング

この機能では、パブリック インターネット経由での RTP 接続、および Microsoft Azure ネットワークとの BGP ピアリングを使用できます。この場合、1 つまたは複数のネットワーク プロバイダーから提供される、High Speed IP (HSIP) と呼ばれるインターネット機能を使用します。ビデオ データはパブリック インターネットで伝送されます。また、このときネットワーク プロバイダーのインターネット IP エッジと Microsoft Azure ネットワークをコロケーション環境でクロス接続する必要があります。このコロケーションはネットワーク プロバイダーによって異なり、マイクロソフトの場合は PeeringDB (英語) を使用します。Azure へのインターネット配信サービスは各ネットワーク プロバイダーの担当で、業界標準の SLA が適用されます。この手法は現在 NBC Sports が使用しており、ソチ オリンピックの配信にも使用されました (英語)。一般的に、この手法ではネットワーク コストを低く抑えることができます。

プライベート ネットワーク/専用ネットワーク経由の RTP 接続

専用のプライベート ネットワークを経由した、(ビデオに特化しない) 一般データ伝送用のネットワーク ソリューションを使用することもできます。大抵の場合、このオプションはネットワーク プロバイダーがマネージド サービス パッケージとして提供していて、実際に配信の際に必要となるのはこのサービス パッケージの一部のみです。このようなマネージド サービスには、エンドツーエンドの配信サービスが提供され、より高水準な SLA が適用されるというメリットがあります。この手法には次の 2 種類があります。

  1. ネットワーク サービス プロバイダー (NSP) または Exchange プロバイダーによる Microsoft Azure ExpressRoute の利用 (Azure ExpressRoute と Level 3 Cloud Connect Solutions の組み合わせ (英語)Azure ExpressRoute と Equinix Cloud Exchange の組み合わせ (英語) など)
  2. Level 3 VYVX solutions (英語) などのネットワーク プロバイダーが提供するマネージド ビデオ サービス

 

RTP 経由でライブ フィードを送信する場合、転送時のエンコードとコンテナー、およびプロトコルは一般的に次のようになります。

  • エンコード形式: H264/AAC
  • コンテナー形式: MPEG-2 TS
  • アプリケーション層のネットワーク プロトコル: RTP ユニキャスト
  • トランスポート層のネットワーク プロトコル: UDP

スレートの使用と信号による広告挿入

ライブ エンコードが有効化されたチャネルでは、ビデオの処理フロー内にコンポーネントが配置され、これを操作することができます。マイクロソフトのサービスでは、出力のアダプティブ ビットレート ストリームにチャネルでスレートおよび広告信号を挿入することができます。スレートとは、特定の場合 (イベントの休憩時など) に入力ライブ フィードを補う静止画像です。広告信号とは、その名前のとおり出力ストリームに埋め込まれたタイミング同期信号で、ビデオ プレーヤーに特定の時間に広告に切り替えるなどのアクションを指示します。この手法で使用されている SCTE-35 による信号のメカニズムの概要については、こちらのブログ記事 (英語) をご覧ください。次に示すのは、ライブ イベントで実装可能な一般的なシナリオです (サンプル コードおよび API の詳細については、今後ブログ記事で取り扱う予定です)。

  1. イベント開始前に PRE-EVENT 画像をビューアーで表示する場合
  2. イベント開始後に POST-EVENT 画像をビューアーで表示する場合
  3. イベント中に問題が発生した場合 (会場で停電が発生した場合など) に ERROR-EVENT 画像をビューアーで表示する場合
  4. イベント休憩中にライブ イベントのフィードを非表示にして AD-BREAK 画像を表示する場合

ライブ フィードのサムネイルのプレビュー取得

ライブ エンコードが有効化されている場合、ライブ フィードがチャネルに到達した場合にそのプレビューを取得できます。これは、チャネルに実際にライブ フィードが到達しているかどうかを確認する場合に非常に便利です。このサムネイルには、API 経由でアクセスできます。

まとめ

今回の記事では、Azure Media Services のライブ エンコード機能の概要をお伝えしました。今後も Azure 管理ポータルからのライブ エンコードの使用、入力ライブ フィードを生成する際のオンプレミスのエンコーダーの構成、スレートや広告の制御などに関する多数の記事をお届けする予定ですので、どうぞご期待ください。また、この機能についてご不明な点がありましたら、AMSLiveD@microsoft.com までご連絡ください。

Comments (0)

Skip to main content