視聴者ごとの同時ストリーム数の制限

このトピックでは、Brightcove 再生制限を使用して同時ストリーム数を制限する方法について学びます。

はじめに

同時ストリーム数の制限を設定すると、特定のユーザーが任意の時点で視聴できる動画ストリームの数を決定することができます。ユーザーごとの同時ストリーム数を制限することで、アカウントを持たない友人と認証情報を共有することを防止することができます。

最大同時ストリーム数に達した後に視聴者またはそのアカウント認証情報を持つ他の誰かが追加のストリームを開こうとすると、最も古いセッションが停止されるか、新しいリクエストがブロックされます。この挙動は制御可能です。

この機能は DRM ワークフローに組み込まれているため、安全に使用でき、最小限の統合で利用することができます。

この機能を初めて使用する場合は、Brightcove 再生制限の概要ドキュメントをご参照ください。

アカウントの設定

ストリーム同時実行機能を有効にするには、弊社担当営業にお問い合わせください。

実装

この機能を使用するには、コンテンツが DRM により暗号化されている必要があります。実装の手順は以下のとおりです:

  1. クレームの値を決めます:

    • climit クレームは、同時に再生可能な視聴者またはストリームの数を示します。
    • cbeh クレームは、同時ストリーム数の制限に達した際のブロック方法を定義します。新規視聴者(異なる IP アドレスおよびデバイス)をブロックするか、新しいストリームリクエスト(セッション)をブロックするかを選択することができます。
      • cbehBLOCK_NEW_USER - 新規視聴者をブロック
      • cbehBLOCK_NEW - 新しいストリームをブロック
  2. JSON Web Tokent(JWT)を作成し、希望する同時ストリーム制限を含めます。詳細については、JSON Web Token (JWT) の作成を参照して下さい。
  3. 再生制限を使用するようにプレーヤーを設定し、動画コンテンツを取得する際に JSON Web Token (JWT) を渡します。詳細は、再生権限管理サービスのプレーヤーの設定 セクションを参照してください。

更新間隔

同時ストリーム数の制限を確実に適用するために、定義された更新間隔に基づいて、再生中に DRM ライセンスの更新リクエストが送信されます。設定時にこの更新間隔を定義する必要があります。

再生中の認証リクエストでは、JWT トークン内で同時実行制限を指定し、公開鍵 ID を含める必要があります。

現在、各更新リクエストは購入済みライセンスのカウントに加算されるため、更新間隔を決定する際に考慮する必要があります。

更新間隔 2 時間のコンテンツに対するライセンス発行数
なし 1
15 分 8
5 分 24
2 分 60

動作の理解

この機能では、ストリームのブロック方法を選択することができます。

最も古いストリームをブロック

Brightcove は DRM 保護されたコンテンツの再生ストリーム制限をサポートしています。新しい更新リクエストが処理されると、最も古いセッションが停止されます。これにより、新しいユーザーリクエストにアクセスが許可され、もはや有効でない可能性のある最も古いリクエストがブロックされ、ネットワークやデバイスの障害に関するメッセージが表示されます。

この動作がデフォルトの設定です。

最も古いストリームをブロック
最も古いストリームをブロック

ユーザーの動作(時系列):

  1. Ben、Jason、Sarah が映画の視聴を開始。
  2. Jamie が視聴を開始しようとしたため、Ben の更新リクエストが拒否される。
  3. Ben が映画を再開し、今度は Jason の更新リクエストが失敗する。
  4. しばらくして Jason が別の映画を視聴開始し、Sarah の映画が停止する。

新規ユーザーをブロック

最大同時ストリーム数に達した際に、新規視聴者/ユーザー(異なる IP アドレスおよびデバイス)をブロックすることもできます。これにより、同時にアクセスできるユニークなユーザー数を制限できますが、各ユーザーは複数のリクエストを送信することができます。

この動作を有効にするには、JSON Web Token (JWT)cbeh クレームを次のように設定します:

"cbeh": "BLOCK_NEW_USER"

以下はその例です:

新規ユーザーをブロック
新規ユーザーをブロック

ユーザーの動作(時系列):

  1. Ben、Jason、Sarah が映画の視聴を開始。
  2. Jamie が視聴を開始しようとするが、最大制限に達しているためリクエストがブロックされる。
  3. Jason が視聴を停止し、新たな視聴者が視聴を開始できるようになる。Jamie が映画を視聴開始。

新規ストリームをブロック

また、最大同時ストリーム数に達した際に、新規ストリーム リクエスト(セッション)をブロックすることもできます。これにより、現在視聴しているユーザーはそのまま視聴を続けることができますが、新しいリクエストにはエラーメッセージが表示されます。

この動作を有効にするには、JSON Web Token (JWT)cbeh クレームを次のように設定します:

"cbeh": "BLOCK_NEW"

以下はその例です:

新規リクエストをブロック
新規リクエストをブロック

ユーザーの動作(時系列):

  1. Jason、Jamie、Sarah が映画の視聴を開始。
  2. Jason が同じデバイスで 2 つ目のストリームを開始しようとするが、最大制限に達しているためリクエストがブロックされる。
  3. Jamie が視聴を停止し、新たなセッションリクエストが許可される。Jason が 2 つ目のストリームを視聴開始。

PlayReady

PlayReady は、再生中のライセンスチェックをサポートしていません。

現在の Brightcove Player

Brightcove Player v6.48.x 以降を使用している場合、Edge ブラウザでは PlayReady ではなく Widevine を優先的に使用するように設定されます。そのため、PlayReady に関する問題は発生しません。

Chromium Edge ブラウザにおける EPA DRM ソース選択の修正については、Brightcove Player リリースノートを参照してください。

古いバージョン

古いバージョンの Brightcove Player では、Chromium Edge ブラウザのデフォルト設定として PlayReady が優先されます。この場合、再生中のライセンスチェックを手動で実行する必要があります。

プレーヤーで手動のライセンス更新を実装する方法については、Microsoft の Concurrency Limiting ドキュメントを参照してください。

Safari

Safari ブラウザでは同時ストリーム数の制限がサポートされていますが、更新リクエストは送信されません。これは、他のブラウザと比較して新しいセッションやストリームのブロックが長時間継続することを意味します。

DRM を使用した同時ストリーム制限を設定する場合、Safari ウェブブラウザから AirPlay へのキャストはできません。AirPlay へのキャストは、Brightcove Native SDK for iOS を使用したネイティブアプリからのみ可能です。

注意事項

本機能に関して、以下の注意事項が適用されます:

  • 以下の場合は手動のライセンス更新リクエストを実装する必要があります:
    • Brightcove 以外のプレーヤーで同時ストリーム制限を使用する場合(Widevine で保護されている場合を除く)
    • PlayReady を使用するすべてのデバイスで同時ストリーム制限を適用する場合(Brightcove Player v6.48.x 以降を使用している場合を除く)
  • 手動のライセンス更新リクエストは、設定された更新間隔よりも短い間隔で実行する必要があります。