動的パッケージャーを使用してマニフェストをフィルター処理する
警告
Azure Media Services は、2024 年 6 月 30 日に廃止されます。 詳細については、AMS 提供終了ガイド
アダプティブ ビットレート ストリーミング コンテンツをデバイスに配信する場合は、特定のデバイス機能または使用可能なネットワーク帯域幅をターゲットにするために、マニフェストの複数のバージョンを発行する必要がある場合があります。 Dynamic Packager を使用すると、特定のコーデック、解像度、ビットレート、オーディオ トラックの組み合わせをその場で除外できるフィルターを指定できます。 フィルター処理により、複数のコピーを作成する必要がなくなります。 ターゲット デバイス (iOS、Android、SmartTV、またはブラウザー) とネットワーク機能 (高帯域幅、モバイル、または低帯域幅のシナリオ) に構成されたフィルターの特定のセットを使用して、新しい URL を発行するだけで済みます。 この場合、クライアントはクエリ文字列を介してコンテンツのストリーミングを操作し (使用可能な アセット フィルターまたはアカウント フィルターを指定して) ストリームの特定のセクションをストリームにストリーム配信できます。
一部の配信シナリオでは、顧客が特定のトラックにアクセスできないようにする必要があります。 たとえば、HD トラックを含むマニフェストを特定のサブスクライバー層に発行したくない場合があります。 または、特定のアダプティブ ビットレート (ABR) トラックを削除して、追加のトラックの恩恵を受けない特定のデバイスへの配信コストを削減したい場合もあります。 この場合、事前に作成されたフィルターの一覧を、作成時に ストリーミング ロケーター に関連付けることができます。 ストリーミング ロケーターによって定義されているため、クライアントはコンテンツのストリーミング方法を操作できません。
ストリーミング ロケーター の
ストリームでさまざまなフィルターを指定するこの機能により、ターゲット デバイスの複数のユース ケース シナリオを対象とする強力な 動的マニフェスト 操作ソリューションが提供されます。 このトピックでは、動的マニフェスト に関連する概念について説明し、この機能を使用できるシナリオの例を示します。
手記
動的マニフェストでは、資産とその資産の既定のマニフェストは変更されません。
マニフェストの概要
Azure Media Services では、HLS、MPEG DASH、Smooth Streaming プロトコルがサポートされています。 ダイナミック パッケージ
マニフェスト ファイルを取得して調べる
動的に作成されたマニフェストに含めるストリームのトラック (ライブまたはビデオ オンデマンド [VOD]) に基づいて、フィルター トラックのプロパティ条件の一覧を指定します。 トラックのプロパティを取得して調べるには、まず Smooth Streaming マニフェストを読み込む必要があります。
ビデオ ストリームのビットレートを監視する
Azure Media Player のデモ ページ を使用して、ビデオ ストリームのビットレートを監視できます。 デモ ページには、診断 タブに診断情報が表示されます。
例: クエリ文字列にフィルターを含む URL
フィルターは、ABR ストリーミング プロトコル (HLS、MPEG-DASH、Smooth Streaming) に適用できます。 次の表に、フィルターを使用した URL の例をいくつか示します。
議定書 | 例 |
---|---|
HLS | https://amsv3account-usw22.streaming.media.azure.net/fecebb23-46f6-490d-8b70-203e86b0df58/bigbuckbunny.ism/manifest(format=m3u8-aapl,filter=myAccountFilter) |
MPEG DASH | https://amsv3account-usw22.streaming.media.azure.net/fecebb23-46f6-490d-8b70-203e86b0df58/bigbuckbunny.ism/manifest(format=mpd-time-csf,filter=myAssetFilter) |
スムーズ ストリーミング | https://amsv3account-usw22.streaming.media.azure.net/fecebb23-46f6-490d-8b70-203e86b0df58/bigbuckbunny.ism/manifest(filter=myAssetFilter) |
表示フィルター処理
資産を複数のエンコード プロファイル (H.264 ベースライン、H.264 High、AACL、AACH、Dolby Digital Plus) と複数の品質ビットレートにエンコードすることを選択できます。 ただし、すべてのクライアント デバイスで資産のすべてのプロファイルとビットレートがサポートされるわけではありません。 たとえば、古い Android デバイスでは、H.264 ベースライン + AACL のみがサポートされています。 利点を得ることができないデバイスに高いビットレートを送信すると、帯域幅とデバイスの計算が無駄になります。 このようなデバイスは、表示のためにスケールダウンするためにのみ、指定されたすべての情報をデコードする必要があります。
動的マニフェストを使用すると、デバイス プロファイル (モバイル、コンソール、HD/SD など) を作成し、各プロファイルに含めるトラックと品質を含めることができます。 これは表示フィルターと呼ばれます。 次の図は、その例を示しています。
次の図の上部には、フィルターのない資産の HLS マニフェストが示されています。 (7 つの表示がすべて含まれています)。左下の図は、"ott" という名前のフィルターが適用された HLS マニフェストを示しています。 "ott" フィルターは、1 Mbps 未満のすべてのビットレートの削除を指定するため、応答で下位 2 つの品質レベルが削除されました。 右下の図は、"mobile" という名前のフィルターが適用された HLS マニフェストを示しています。 "mobile" フィルターは、解像度が 720p を超える表示の削除を指定するため、2 つの 1080p 表示が削除されました。
表示フィルターダイアグラム
言語トラックの削除
アセットには、英語、スペイン語、フランス語などの複数のオーディオ言語が含まれる場合があります。 通常、Player SDK は既定のオーディオ トラックの選択と、ユーザー選択ごとに使用可能なオーディオ トラックを管理します。
このような Player SDK の開発は、デバイス固有のプレイヤー フレームワーク間で異なる実装が必要であるため、困難です。 また、一部のプラットフォームでは、プレーヤー API は制限されており、ユーザーが既定のオーディオ トラックを選択または変更できないオーディオ選択機能は含まれません。アセット フィルターを使用すると、目的のオーディオ言語のみを含むフィルターを作成することで、動作を制御できます。
アセットの開始をトリミングする
ほとんどのライブ ストリーミング イベントでは、演算子は実際のイベントの前にいくつかのテストを実行します。 たとえば、イベントの開始前に次のようなスレートが含まれる場合があります。"プログラムは一時的に開始されます"。
プログラムがアーカイブされている場合、テストデータとスレートデータもアーカイブされ、プレゼンテーションに含まれます。 ただし、この情報はクライアントに表示しないでください。 動的マニフェストを使用すると、開始時刻フィルターを作成し、マニフェストから不要なデータを削除できます。
トリミング フィルター図
ライブ アーカイブからのサブクリップ (ビュー) の作成
多くのライブ イベントは実行時間が長く、ライブ アーカイブには複数のイベントが含まれる場合があります。 ライブ イベントが終了した後、ブロードキャスト担当者は、ライブ アーカイブを論理プログラムの開始シーケンスと停止シーケンスに分割することができます。
これらの仮想プログラムは、ライブ アーカイブの後処理を行わず、個別のアセットを作成せずに個別に発行できます (CDN 内の既存のキャッシュされたフラグメントの利点は得られません)。 このような仮想プログラムの例としては、サッカーやバスケットボールの試合の四半期、野球のイニング、スポーツ プログラムの個々のイベントなどがあります。
動的マニフェストでは、開始時刻と終了時刻を使用してフィルターを作成し、ライブ アーカイブの上部に仮想ビューを作成できます。
フィルター処理された資産を次に示します。
プレゼンテーション ウィンドウの調整 (DVR)
現在、Azure Media Services では、期間を 1 分から 25 時間の間で構成できる循環アーカイブが提供されています。 マニフェスト のフィルター処理を使用すると、メディアを削除せずに、アーカイブの上部にローリング DVR ウィンドウを作成できます。 ブロードキャスト者がライブ エッジで移動し、同時に大きなアーカイブ 期間を維持するために限られた DVR ウィンドウを提供する必要があるシナリオは多数あります。 配信者は、DVR ウィンドウの外にあるデータを使用してクリップを強調表示したり、デバイスごとに異なる DVR ウィンドウを提供したりできます。 たとえば、ほとんどのモバイル デバイスでは大きな DVR ウィンドウが処理されません (モバイル デバイスの場合は 2 分の DVR ウィンドウ、デスクトップ クライアントの場合は 1 時間です)。
LiveBackoff の調整 (ライブ位置)
マニフェスト のフィルター処理を使用すると、ライブ プログラムのライブ エッジから数秒を削除できます。 フィルター処理を使用すると、視聴者がストリームを受信する前に(30秒でバックオフ)、ブロードキャスト担当者はプレビューのパブリケーション ポイントでプレゼンテーションを視聴し、広告挿入ポイントを作成できます。 その後、配信者は、広告の機会の前に情報を受信して処理するために、これらの広告をクライアント フレームワークにプッシュできます。
広告のサポートに加えて、ライブ バックオフ設定を使用して視聴者の位置を調整し、クライアントがドリフトしてライブ エッジに到達しても、サーバーからフラグメントを取得できます。 これにより、クライアントは HTTP 404 または 412 エラーを受け取りません。
ライブ バックオフ フィルターダイアグラム を
1 つのフィルターで複数のルールを組み合わせる
1 つのフィルターに複数のフィルター規則を組み合わせることができます。 たとえば、ライブ アーカイブからスレートを削除し、使用可能なビットレートを除外する "範囲ルール" を定義できます。 複数のフィルタールールを適用する場合、最終的な結果はすべてのルールの積集合になります。
複数のルール フィルターダイアグラム を
複数のフィルターの組み合わせ (フィルター構成)
1 つの URL に複数のフィルターを組み合わせることもできます。 次のシナリオは、フィルターを組み合わせる理由を示しています。
- (ビデオ品質を制限するために) Android や iPad などのモバイル デバイスのビデオ品質をフィルター処理する必要があります。 不要な品質を削除するには、デバイス プロファイルに適したアカウント フィルターを作成します。 アカウント フィルターは、同じ Media Services アカウントのすべての資産に対して、それ以上関連付けなしで使用できます。
- また、資産の開始時刻と終了時刻をトリミングする必要もあります。 トリミングを行うには、アセット フィルターを作成し、開始時刻と終了時刻を設定します。
- これらのフィルターの両方を組み合わせる必要があります。 組み合わせがないと、トリミング フィルターに品質フィルターを追加する必要があり、フィルターの使用がより困難になります。
フィルターを結合するには、フィルター名をセミコロン区切りの形式でマニフェスト/プレイリスト URL に設定します。 品質をフィルター処理
考慮事項と制限事項
forceEndTimestamp、presentationWindowDuration、および liveBackoffDuration の値は VOD フィルターに設定しないでください。 ライブ フィルターのシナリオでのみ使用されます。
動的マニフェストは GOP 境界 (キー フレーム) で動作するため、トリミングには GOP 精度があります。
アカウント フィルターと資産フィルターには、同じフィルター名を使用できます。 資産フィルターの優先順位が高く、アカウント フィルターがオーバーライドされます。
フィルターを更新した場合、ストリーミング エンドポイントがルールを更新するまでに最大 2 分かかることがあります。 フィルターを使用してコンテンツを提供した場合 (また、コンテンツをプロキシと CDN キャッシュにキャッシュした場合)、これらのフィルターを更新すると、プレイヤーが失敗する可能性があります。 フィルターを更新した後、キャッシュをクリアすることをお勧めします。 このオプションを使用できない場合は、別のフィルターを使用することを検討してください。
お客様は、マニフェストを手動でダウンロードし、正確な開始タイム スタンプとタイム スケールを解析する必要があります。
- 資産内のトラックのプロパティを確認するには、マニフェスト ファイルを取得して調べる
。 - 資産フィルターのタイムスタンプ プロパティを設定する数式は次のとおりです。
startTimestamp = マニフェストの開始時刻 <> + <予想されるフィルター開始時刻 (秒単位)> * タイムスケール
- 資産内のトラックのプロパティを確認するには、マニフェスト ファイルを取得して調べる
ヘルプとサポートを受ける
Media Services に質問がある場合は、次のいずれかの方法で更新プログラムに従ってください。
- Q & A
-
Stack Overflow。
azure-media-services
で質問にタグを付け. - @MSFTAzureMedia または @AzureSupport を使用してサポートを要求します。
- Azure portal からサポート チケットを開きます。