IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ エムケイ・システムズ・ユーエスエイ・インコーポレイテッドの特許一覧

特開2024-73386ライブコンテンツをマルチキャストするためのシステムおよび方法
<>
  • 特開-ライブコンテンツをマルチキャストするためのシステムおよび方法 図1
  • 特開-ライブコンテンツをマルチキャストするためのシステムおよび方法 図2
  • 特開-ライブコンテンツをマルチキャストするためのシステムおよび方法 図3
  • 特開-ライブコンテンツをマルチキャストするためのシステムおよび方法 図4
  • 特開-ライブコンテンツをマルチキャストするためのシステムおよび方法 図5
  • 特開-ライブコンテンツをマルチキャストするためのシステムおよび方法 図6
  • 特開-ライブコンテンツをマルチキャストするためのシステムおよび方法 図7
  • 特開-ライブコンテンツをマルチキャストするためのシステムおよび方法 図8
  • 特開-ライブコンテンツをマルチキャストするためのシステムおよび方法 図9
  • 特開-ライブコンテンツをマルチキャストするためのシステムおよび方法 図10
  • 特開-ライブコンテンツをマルチキャストするためのシステムおよび方法 図11
  • 特開-ライブコンテンツをマルチキャストするためのシステムおよび方法 図12
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024073386
(43)【公開日】2024-05-29
(54)【発明の名称】ライブコンテンツをマルチキャストするためのシステムおよび方法
(51)【国際特許分類】
   H04L 67/562 20220101AFI20240522BHJP
   H04L 65/1101 20220101ALI20240522BHJP
   H04L 67/568 20220101ALI20240522BHJP
   H04L 67/55 20220101ALI20240522BHJP
【FI】
H04L67/562
H04L65/1101
H04L67/568
H04L67/55
【審査請求】未請求
【請求項の数】21
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2023193833
(22)【出願日】2023-11-14
(31)【優先権主張番号】22306679.6
(32)【優先日】2022-11-15
(33)【優先権主張国・地域又は機関】EP
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.FRAM
(71)【出願人】
【識別番号】523431176
【氏名又は名称】エムケイ・システムズ・ユーエスエイ・インコーポレイテッド
【氏名又は名称原語表記】MK SYSTEMS USA INC.
【住所又は居所原語表記】251 LITTLE FALLS DRIVE, WILMINGTON, DELAWARE 19808, UNITED STATES OF AMERICA
(74)【代理人】
【識別番号】110001818
【氏名又は名称】弁理士法人R&C
(72)【発明者】
【氏名】アレックス・マコーリー
(72)【発明者】
【氏名】リチャード・フリアム
(72)【発明者】
【氏名】ジョゼフ・キオク
(72)【発明者】
【氏名】ティム・レット
(72)【発明者】
【氏名】トッド・ルンド
(72)【発明者】
【氏名】マーク・ニーブール
(57)【要約】
【課題】エンドユーザへライブコンテンツデータをストリーミングするための改良された、または代替的な方法を提供すること。
【解決手段】本明細書において、ライブコンテンツをマルチキャストするためのシステム、装置、および方法を開示する。マルチキャストサーバは、マルチキャスト伝送によってゲートウェイ装置にライブコンテンツデータを伝送する。ゲートウェイ装置は、前記マルチキャスト伝送によって前記ライブコンテンツデータを受信する、前記所定のゲートウェイ装置と、関連付けられた再生装置と、によって信頼される中間サーバを使用して、前記ゲートウェイ装置と前記関連付けられた再生装置との間に、前記所定のゲートウェイ装置から前記関連付けられた再生装置への安全なリアルタイム伝送のためのセキュアな通信セッションを確立する、および前記セキュアな通信セッションを使用して、ユニキャスト伝送によって前記関連付けられた再生装置に前記ライブコンテンツデータを伝送する、ために構成されている。
【選択図】図2
【特許請求の範囲】
【請求項1】
ライブコンテンツをマルチキャストするための、コンピュータによって実行されるシステムであって、
マルチキャスト伝送によってライブコンテンツデータを伝送するために構成されたマルチキャストサーバと、
ゲートウェイ装置であって、
前記マルチキャスト伝送によって前記マルチキャストサーバから前記ライブコンテンツデータを受信する、
前記所定のゲートウェイ装置と、関連付けられた再生装置と、によって信頼される中間サーバを使用して、前記ゲートウェイ装置と前記関連付けられた再生装置との間に、前記所定のゲートウェイ装置から前記関連付けられた再生装置への安全なリアルタイム伝送のためのセキュアな通信セッションを確立する、および
前記セキュアな通信セッションを使用して、ユニキャスト伝送によって前記関連付けられた再生装置に前記ライブコンテンツデータを伝送する、
ために構成されたゲートウェイ装置と、
を含む、システム。
【請求項2】
請求項1に記載の、コンピュータによって実行されるシステムであって、
前記マルチキャストサーバは、第1マルチキャストサーバであり、
前記マルチキャスト伝送は、第1マルチキャスト伝送であり、
第2マルチキャスト伝送によって広告コンテンツデータを伝送するために構成された第2マルチキャストサーバをさらに含み、
前記ゲートウェイ装置は、
前記第2マルチキャスト伝送によって前記第2マルチキャストサーバから前記広告コンテンツデータを受信する、および
前記セキュアな通信セッションを使用して、ユニキャスト伝送によって前記関連付けられた再生装置に前記広告コンテンツデータを伝送する、
ために構成されている、システム。
【請求項3】
請求項2に記載の、コンピュータによって実行されるシステムであって、
前記第2マルチキャストサーバによって伝送される前記広告コンテンツデータは、カルーセルに複数の広告を含む、システム。
【請求項4】
請求項3に記載の、コンピュータによって実行されるシステムであって、
前記複数の広告のうちの少なくとも1つを含むように主要コンテンツ再生リストを変更するためのサーバサイド広告挿入エンジンをさらに含む、システム。
【請求項5】
請求項1に記載の、コンピュータによって実行されるシステムであって、
前記セキュアな通信セッションは、WebRTCセッションである、システム。
【請求項6】
請求項1に記載の、コンピュータによって実行されるシステムであって、
前記中間サーバをさらに含み、
前記中間サーバは、前記ゲートウェイ装置と前記関連付けられた再生装置とによって信頼されるサーバ証明書をホストする、システム。
【請求項7】
ライブコンテンツデータをマルチキャストするための、コンピュータによって実行される方法であって、
マルチキャスト伝送によってマルチキャストサーバから複数のゲートウェイ装置に前記ライブコンテンツデータを伝送することと、
前記ゲートウェイ装置のうちの所定のゲートウェイ装置と、関連付けられた再生装置と、によって信頼される中間サーバを使用して、前記所定のゲートウェイ装置と前記関連付けられた再生装置との間に、前記所定のゲートウェイ装置から前記関連付けられた再生装置への安全なリアルタイム伝送のためのセキュアな通信セッションを確立することと、
前記セキュアな通信セッションを使用して、ユニキャスト伝送によって前記所定のゲートウェイ装置から前記関連付けられた再生装置に前記ライブコンテンツデータを伝送することと、
を含む、方法。
【請求項8】
請求項7に記載の、コンピュータによって実行される方法であって、
前記マルチキャストサーバは、第1マルチキャストサーバであり、
前記マルチキャスト伝送は、第1マルチキャスト伝送であり、
第2マルチキャスト伝送によって第2マルチキャストサーバから少なくとも前記所定のゲートウェイ装置に広告コンテンツデータを伝送することと、
前記セキュアな通信セッションを使用して、ユニキャスト伝送によって前記所定のゲートウェイ装置から前記関連付けられた再生装置に前記広告コンテンツデータを伝送することと、
をさらに含む、方法。
【請求項9】
請求項7に記載の、コンピュータによって実行される方法であって、
前記ライブコンテンツデータは、アダプティブビットレートのコンテンツデータを含む、方法。
【請求項10】
請求項7に記載の、コンピュータによって実行される方法であって、
前記確立することは、WebRTCセッションを確立することを含む、方法。
【請求項11】
請求項7に記載の、コンピュータによって実行される方法であって、
コンテンツ配信ネットワークによってコンテンツ配信元サーバから前記マルチキャストサーバに前記ライブコンテンツデータを伝送することをさらに含む、方法。
【請求項12】
ライブコンテンツの伝送のためのゲートウェイ装置であって、
少なくとも1つのプロセッサと、
前記少なくとも1つのプロセッサと通信可能なメモリと、
前記メモリに保存されたソフトウェアコードであって、前記少なくとも1つのプロセッサにおいて実行されると、前記装置に、
マルチキャスト伝送によってマルチキャストサーバからライブコンテンツデータを受信することと、
前記ゲートウェイ装置と、関連付けられた再生装置と、によって信頼される中間サーバを使用して、前記関連付けられた再生装置とのセキュアな通信セッションであって、前記ゲートウェイ装置から前記関連付けられた再生装置への安全なリアルタイム伝送のためのセキュアな通信セッションを確立することと、
前記セキュアな通信セッションを使用して、ユニキャスト伝送によって前記関連付けられた再生装置に前記ライブコンテンツデータを伝送することと、
を実行させるソフトウェアコードと、
を含む、装置。
【請求項13】
請求項12に記載のゲートウェイ装置であって、
前記関連付けられた再生装置と同一のローカルエリアネットワーク(LAN)上で動作するように構成されている、ゲートウェイ装置。
【請求項14】
請求項12に記載のゲートウェイ装置であって、
前記セキュアな通信セッションは、WebRTCセッションである、ゲートウェイ装置。
【請求項15】
請求項12に記載のゲートウェイ装置であって、
前記ユニキャスト伝送は、ストリーム制御伝送プロトコル(SCTP)を使用する、ゲートウェイ装置。
【請求項16】
請求項12に記載のゲートウェイ装置であって、
前記マルチキャストサーバは、第1マルチキャストサーバであり、
前記マルチキャスト伝送は、第1マルチキャスト伝送であり、
広告コンテンツデータを第2マルチキャストサーバから第2マルチキャスト伝送によって受信するように構成されている、ゲートウェイ装置。
【請求項17】
請求項16に記載のゲートウェイ装置であって、
前記第2マルチキャストサーバからの前記マルチキャスト伝送のためのIPアドレスおよびポートを前記関連付けられた再生装置から受信し、前記IPアドレスおよび前記ポートを使用して、前記第2マルチキャストサーバからの前記マルチキャスト伝送に参加するように構成されている、ゲートウェイ装置。
【請求項18】
請求項12に記載のゲートウェイ装置であって、
前記マルチキャスト伝送を介して受信したパケットからメッセージを再構成するように構成されている、ゲートウェイ装置。
【請求項19】
請求項18に記載のゲートウェイ装置であって、
前記パケットは、順序の誤ったパケットを含む、ゲートウェイ装置。
【請求項20】
請求項12に記載のゲートウェイ装置であって、
前記ユニキャスト伝送では、信頼性および並び替え機能が無効となっている、ゲートウェイ装置。
【請求項21】
請求項20に記載のゲートウェイ装置であって、
前記ユニキャスト伝送は、アプリケーション層の並び替えおよび/またはパケットの回復のために構成されている、ゲートウェイ装置。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、データのストリーミングに関し、より具体的には、ライブコンテンツデータのマルチキャストに関する。
【背景技術】
【0002】
インターネットを介しての、例えば、オーバー・ザ・トップのメディアサービス(over-the-top media service)を介して、エンドユーザへの動画および/または音声のライブコンテンツのストリーミングが普及している。しかしながら、多数のエンドユーザへ人気のあるライブコンテンツをストリーミングする際、コンテンツ配信ネットワーク(content delivery network)に対するリソース要求は大きくなり、利用可能な容量を超える場合がある。この結果、コンテンツ配信が質的に低下したり、失敗したりする可能性がある。
【0003】
したがって、エンドユーザへライブコンテンツデータをストリーミングするための改良された、または代替的な方法が求められている。
【発明の概要】
【0004】
ある態様によると、ライブコンテンツをマルチキャストするための、コンピュータによって実行されるシステムが提供される。
前記システムは、
マルチキャスト伝送によってライブコンテンツデータを伝送するために構成されたマルチキャストサーバと、
ゲートウェイ装置であって、
前記マルチキャスト伝送によって前記マルチキャストサーバから前記ライブコンテンツデータを受信する、
前記所定のゲートウェイ装置と、関連付けられた再生装置と、によって信頼される中間サーバを使用して、前記ゲートウェイ装置と前記関連付けられた再生装置との間に、前記所定のゲートウェイ装置から前記関連付けられた再生装置への安全なリアルタイム伝送のためのセキュアな通信セッションを確立する、および
前記セキュアな通信セッションを使用して、ユニキャスト伝送によって前記関連付けられた再生装置に前記ライブコンテンツデータを伝送する、
ために構成されたゲートウェイ装置と、
を含む。
【0005】
他の態様によると、ライブコンテンツデータをマルチキャストするための、コンピュータによって実行される方法が提供される。
前記方法は、
マルチキャスト伝送によってマルチキャストサーバから複数のゲートウェイ装置にライブコンテンツデータを伝送することと、
前記ゲートウェイ装置のうちの所定のゲートウェイ装置と、関連付けられた再生装置と、によって信頼される中間サーバを使用して、前記所定のゲートウェイ装置と前記関連付けられた再生装置との間に、前記所定のゲートウェイ装置から前記関連付けられた再生装置への安全なリアルタイム伝送のためのセキュアな通信セッションを確立することと、
前記セキュアな通信セッションを使用して、ユニキャスト伝送によって前記所定のゲートウェイ装置から前記関連付けられた再生装置に前記ライブコンテンツデータを伝送することと、
を含む。
【0006】
さらなる態様によると、ライブコンテンツの伝送のためのゲートウェイ装置が提供される。
前記装置は、
少なくとも1つのプロセッサと、
前記少なくとも1つのプロセッサと通信可能なメモリと、
前記メモリに保存されたソフトウェアコードであって、前記少なくとも1つのプロセッサにおいて実行されると、前記装置に、
マルチキャスト伝送によってマルチキャストサーバからライブコンテンツデータを受信することと、
前記ゲートウェイ装置と、関連付けられた再生装置と、によって信頼される中間サーバを使用して、前記関連付けられた再生装置とのセキュアな通信セッションであって、前記ゲートウェイ装置から前記関連付けられた再生装置への安全なリアルタイム伝送のためのセキュアな通信セッションを確立することと、
前記セキュアな通信セッションを使用して、ユニキャスト伝送によって前記関連付けられた再生装置に前記ライブコンテンツデータを伝送することと、
を実行させるソフトウェアコードと、
を含む。
【0007】
本明細書に記載の実施形態に関する数多くのさらなる特徴およびそれらの組み合わせは、本開示を一読すれば当業者にとって明らかとなるであろう。
【図面の簡単な説明】
【0008】
図面は以下のとおりである。
図1】従来のコンテンツストリーミングシステムの概略図である。
図2】実施形態に係るコンテンツストリーミングシステムの概略図である。
図3】実施形態に係る、ゲートウェイ装置およびクライアント装置と相互接続した登録サーバの概略図である。
図4】実施形態に係るクライアント装置の概略図である。
図5】実施形態に係る、図2のコンテンツストリーミングシステムのシステム相互作用を示すシーケンス図である。
図6】実施形態に係る、ブロードキャスト部からのパケットの伝送の概略図である。
図7】実施形態に係る、ゲートウェイにおけるメッセージ再構成の概略図である。
図8】実施形態に係る、クライアント装置におけるメッセージ修復の概略図である。
図9】実施形態に係る、広告コンテンツと組み合わせてライブコンテンツをストリーミングするコンテンツストリーミングシステムの概略図である。
図10】実施形態に係る、図9のコンテンツストリーミングシステムのシステム相互作用を示すシーケンス図である。
図11】実施形態に係る、コンテンツストリーミングシステムにおいて実行される例示的な動作のフローチャートである。
図12】実施形態に係る演算装置の概略図である。 これらの図面は、説明のための例示的な実施形態を描写するものであり、これらの例示的な実施形態に、変更、代替的な構成、代替的な構成要素、および改変を加えてもよい。
【発明を実施するための形態】
【0009】
図1は、ライブコンテンツをストリーミングするための、従来のコンテンツストリーミングシステム10の上位概略図である。コンテンツストリーミングシステム10は、コンテンツをエンドユーザに配信するオーバー・ザ・トップ(OTT)メディアサービスの一部として動作してもよい。
【0010】
図示するように、コンテンツストリーミングシステム10は、コンテンツパッケージャ20と、コンテンツ配信ネットワーク30と、複数のクライアント装置40と、を含んでいる。各クライアント装置40は、ストリーミングされたコンテンツを再生するためにエンドユーザによって操作可能な装置である。
【0011】
コンテンツパッケージャ20は、OTTメディアサービスのためのコンテンツ配信元サーバとしての役割を果たしてもよい。コンテンツパッケージャ20は、コンテンツ配信ネットワーク30を介してクライアント装置40にライブコンテンツをストリーミングする。コンテンツ配信ネットワーク30は、通信ネットワークを介して相互接続したプロキシサーバとデータキャッシュとの分散したネットワークを含んでいる。
【0012】
図2は、ライブコンテンツをストリーミングするための、実施形態に係るコンテンツストリーミングシステム110の上位概略図である。コンテンツストリーミングシステム110は、例えば、コンテンツをエンドユーザに配信するOTTメディアサービスの一部として使用してもよい。ライブコンテンツは、例えば、音声および/または動画コンテンツを含んでいてもよい。
【0013】
本明細書で詳述するように、いくつかの実施形態において、コンテンツストリーミングシステム110は、コンテンツストリーミングシステム10と比較して、一定の技術的な利点を提供する。
【0014】
例えば、コンテンツストリーミングシステム10において、コンテンツ配信ネットワーク30に対するリソース要求は、クライアント装置40の数におおよそ比例する可能性がある。(例えば、スーパーボウル等の人気のライブコンテンツをストリーミングする場合のように)クライアント装置40の数が非典型的に多い時、リソース要求が、コンテンツ配信ネットワーク30の利用可能なリソースの容量を超える可能性がある。この結果、コンテンツ配信が質的に低下したり、失敗したりする可能性がある。
【0015】
いくつかの実施形態において、コンテンツストリーミングシステム110は、マルチキャスト伝送を活用することによって、コンテンツ配信の効率を向上させる。それと同時に、いくつかの実施形態において、コンテンツストリーミングシステム110は、例えば、既存のクライアント装置と互換性のあるHLSやDASH等の従来のストリーミング形式をサポートすることによって一定の後方互換性を保っているので、便利である。これらの実施形態において、マルチキャスト伝送の受信をサポートするために従来のクライアント装置140に変更を加えることを必要とすることなくマルチキャスト伝送を活用するので、便利である。
【0016】
図示するように、コンテンツストリーミングシステム110は、パッケージャ120と、コンテンツ配信ネットワーク130と、ブロードキャスト部150と、ブロードキャスト部管理部160と、複数のゲートウェイ200と、複数のクライアント装置140と、を含んでいる。
【0017】
コンテンツパッケージャ120は、主要コンテンツの出所としての役割を果たし、クライアント装置140に向けたライブコンテンツセグメントのストリームを開始する。コンテンツセグメントは、アダプティブビットレート(ABR)ストリームを提供するように符号化してもよい。コンテンツパッケージャ120は、コンテンツセグメントを1または複数のブロードキャスト部150にストリーミングする。ブロードキャスト部150は、その後、マルチキャスト伝送152によって複数のゲートウェイ200に前記コンテンツセグメントをストリーミングする。各ゲートウェイ200は、その後、ユニキャスト伝送154によって1または複数の関連付けられたクライアント装置140に前記コンテンツセグメントをストリーミングする。特定のクライアント装置140は、特定のゲートウェイ200からデータを受信する等、特定のゲートウェイ200と通信することを求める場合、前記特定のゲートウェイ200と関連付けられる。
【0018】
コンテンツパッケージャ120は、主要コンテンツを1または複数のコンテンツソースから受信する。コンテンツパッケージャ120は、クライアント装置140によってアクセス可能なコンテンツについて記述するデータを含むマニフェストデータ構造を生成する。例えば、マニフェストデータ構造は、利用可能なコンテンツセグメントを記述し、各セグメントは、クライアント装置140によるアクセスおよびその後の再生が個別に可能なコンテンツの一部を提供する。マニフェストデータ構造は、本明細書で「再生リスト」と呼ぶ場合もある。
【0019】
いくつかの実施形態において、コンテンツパッケージャ120は、マニフェストデータ構造で参照するセグメントファイルを、例えば、HLSやDASH等の、ABRストリーミングに好適な形式で生成する。ABRストリーミングに好適な他のプロトコルを使用してもよい。コンテンツパッケージャ120は、例えば、好適なセッション鍵を使用してセグメントファイルを暗号化してもよい。いくつかの実施形態において、コンテンツパッケージャ120は、ジャストインタイムのパッケージャである。
【0020】
コンテンツ配信ネットワーク130は、通信ネットワーク135と、複数の分散したプロキシサーバおよびデータキャッシュと、を含んでいる。通信ネットワーク135は、パケット交換のネットワーク部分、回線交換のネットワーク部分、またはこれらの組み合わせを含んでいてもよい。通信ネットワーク135は、有線リンク、無線周波リンクもしくは衛星リンク等の無線リンク、またはこれらの組み合わせを含んでいてもよい。通信ネットワーク135は、有線アクセスポイントと無線アクセスポイントとを含んでいてもよい。通信ネットワーク135の部分としては、例えば、IPv4、IPv6、X.25、IPX、または同様のネットワークであってもよい。通信ネットワーク135の部分としては、例えば、GSM、GPRS、3G、LTE、または同様のワイヤレスネットワークであってもよい。通信ネットワーク135は、インターネットを含んでいてもよく、インターネットと接続していてもよい。通信ネットワーク135が公衆インターネット等の公衆ネットワークである場合、仮想私設網としてセキュアであってもよい。
【0021】
図示する実施形態において、コンテンツパッケージャ120をブロードキャスト部150と相互接続する通信ネットワーク135の部分は、HTTPに基づくABRストリームの伝送に適応している。
【0022】
ブロードキャスト部150は、コンテンツ配信ネットワーク130を介してパッケージャ120からコンテンツセグメントを受信する。ブロードキャスト部150は、マルチキャストサーバとしての役割を果たす。この目的のために、ブロードキャスト部150は、コンテンツセグメントをマルチキャストするためのマルチキャストストリームを提供する。ブロードキャスト部150は、マルチキャストストリームに参加しているゲートウェイ200にコンテンツセグメントをブロードキャストする。マルチキャストは、通信ネットワーク135と同様の通信ネットワークを介するものであってもよい。マルチキャストは、通信ネットワーク135と一部または全体が重なる通信ネットワークを介するものであってもよい。
【0023】
図2では単一のブロードキャスト部150を図示しているが、いくつかの実施形態において、コンテンツストリーミングシステム110は、複数のブロードキャスト部150を含んでいてもよい。各ブロードキャスト部150は、特定のライブコンテンツ、例えば、特定のブロードキャスト、チャンネル、プログラム、またはこれらの一部に専用であってもよい。
【0024】
ブロードキャスト部管理部160は、1または複数のブロードキャスト部150のライフサイクルを管理する。ブロードキャスト部管理部160は、1または複数のブロードキャスト部150のコンテンツスケジューリングを管理する。ブロードキャスト部管理部160は、編集者の選択またはコンテンツの人気に基づいてスケジューリングを実行してもよい。ブロードキャスト部管理部160は、スケジューリングを手動で実行してもよく、自動で実行してもよい。
【0025】
ゲートウェイ200は、マルチキャスト伝送152に参加して、マルチキャスト伝送152からデータを受信する。ゲートウェイ200は、マルチキャスト伝送152を介してコンテンツデータを含むパケットを受信し、前記パケットからコンテンツデータを含むメッセージを生成する。ゲートウェイ200は、ユニキャスト伝送154によって、関連付けられたクライアント装置140にメッセージを提供する。
【0026】
いくつかの実施形態において、ゲートウェイ200は、家庭のローカルエリアネットワーク(LAN)を広域ネットワーク(WAN)と接続するレジデンシャルゲートウェイである。いくつかの実施形態において、ゲートウェイ200は、本明細書に開示する機能を実行するカスタムソフトウェアコードに適応した従来のレジデンシャルゲートウェイである。カスタムソフトウェアは、本明細書に開示する機能を実行するために、例えば、ソフトウェア更新によって、家庭における既存の装置に提供してもよい。いくつかの実施形態において、ゲートウェイ200は、例えば、ルータ、スイッチ、ハブ、セットトップボックス、または、LANとWANとの間の接続を提供する他の装置であってもよい。
【0027】
いくつかの実施形態において、ゲートウェイ200は、1または複数の関連付けられたクライアント装置140と同じ家庭に設けられていてもよい。
【0028】
いくつかの実施形態において、ゲートウェイ200は、有線リンクによってWAN(およびブロードキャスト部150)と接続していてもよい。これにより、WiFi等の無線リンクと比較して、マルチキャスト伝送のためのより信頼できるリンクが得られる可能性がある。
【0029】
各クライアント装置140は、ストリーミングされたコンテンツを再生するためにエンドユーザによって操作可能な装置である。例えば、クライアント装置140は、ストリーミングされたコンテンツを再生するための表示装置に接続した、デジタルメディア再生部、セットトップボックス、または、ビデオゲーム機であってもよい。クライアント装置140は、さらに、ストリーミングされたコンテンツを再生するための一体型の表示画面を有する、スマートテレビジョン装置、または、ラップトップコンピュータ、タブレットコンピュータ、もしくはスマートフォン等の個人用演算装置であってもよい。クライアント装置140は、本明細書で「再生装置」と呼ぶ場合もある。
【0030】
図3は、実施形態に係る、ゲートウェイ200およびクライアント装置140と相互接続した登録サーバ180を示す上位概略図である。登録サーバ180は、例えば、ユニキャスト伝送154のセキュリティのための、ゲートウェイ200とクライアント装置140との間の安全な通信セッションの確立を容易にする。
【0031】
登録サーバ180は、ゲートウェイ200とクライアント装置140との両方によって信頼される中間体としての役割を果たし、両者の間の安全な通信を仲介することができる。図示する実施形態において、登録サーバ180は、WebSocketサーバとして実装され、WebSocketプロトコルに基づいて、ゲートウェイ200とクライアント装置140との一方または両方と通信する。前記通信は、WebSocketプロトコルに応じて、全二重通信であってもよく、および/または、メッセージに基づく通信であってもよい。
【0032】
いくつかの実施形態において、登録サーバ180は、ゲートウェイ200とクライアント装置140とのいずれのペアが関連付けられており、セキュアな通信のために適格であるかを、それぞれのソースIPアドレスを照合することによって判定する。そのような実施形態において、ゲートウェイ200と、関連付けられたクライアント装置140と、の両方が同一のLAN上の、ネットワークアドレス変換(NAT)ゲートウェイの背後にあり、よって、同じソースIPアドレスからのパケットを用いて登録サーバ180と通信する。
【0033】
いくつかの実施形態において、登録サーバ180は、公衆インターネット上に位置する。いくつかの実施形態において、登録サーバ180は、オペレータのネットワーク(例えば、コンテンツパッケージャ120のオペレータのネットワーク)の一部として存在する。
【0034】
図示する実施形態において、登録サーバ180は、ゲートウェイ200と、関連付けられたクライアント装置140と、の両方によって安全であると認識され、信頼される有効なサーバ証明書を有するウェブサーバをホストする。これにより、ゲートウェイ200は、クライアント装置140との安全な通信、例えば、ユニキャスト伝送154のために、有効なサーバ証明書を用いて自らのウェブサーバをホストする必要がなくなるので、便利である。
【0035】
図示する実施形態において、ゲートウェイ200とクライアント装置140とは、Web Real-Time Communication(WebRTC)プロトコルに基づいて通信する。これにより、リアルタイムのピアツーピア通信が可能となる。この実施形態において、WebRTCプロトコルは、WebRTC通信を確立するのに先立ってゲートウェイ200とクライアント装置140とによって暗号化パラメータ、暗号化鍵、および/または暗号化秘密を共有するのを仲介する登録サーバ180の能力をサポートする。特に、登録サーバ180は、そのような暗号化パラメータ、暗号化鍵、および/または暗号化秘密の共有を、ゲートウェイ200とクライアント装置140との間のWebRTCの「オファー」および「アンサー」のやり取りによって仲介する。いくつかの実施形態において、ゲートウェイ200とクライアント装置140との間の通信の暗号化には、ストリーム制御伝送プロトコル(SCTP)のデータグラムトランスポート層セキュリティ(DTLS)隠蔽を用いても良い。
【0036】
いくつかの実施形態において、Interactive Connectivity Establishment(ICE)プロトコルを使用してゲートウェイ200とクライアント装置140との間にWebRTC通信を確立することができる。いくつかの実施形態において、ICEプロトコルを、STUN(Session Traversal Utilities for NAT)および/またはTURN(Traversal Using Relays around NAT)の一方または両方と組み合わせて使用して、ネットワークアドレス変換器(NATs)やファイアウォール等がある状態でWebRTC通信を容易にしてもよい。
【0037】
いくつかの実施形態において、登録サーバ180は、STUNサーバおよび/またはTURNサーバとしての役割を果たす。そのような実施形態において、ゲートウェイ200とクライアント装置140とのそれぞれは、STUNクライアントおよび/またはTURNクライアントとして構成されている。クライアントとして、ゲートウェイ200とクライアント装置140とは、適切なSTUNサーバ/TURNサーバと通信して、WebRTC通信に用いるためのパブリックIPアドレスおよびポートの情報を得る。
【0038】
いくつかの実施形態において、ゲートウェイ200は、それ自体がSTUNサーバおよび/またはTURNサーバとして機能してもよい。いくつかの実施形態において、他のネットワークエレメントがSTUNサーバおよび/またはTURNサーバとして機能してもよい。
【0039】
図4は、実施形態に係るクライアント装置140の上位概略図である。図示するように、クライアント140は、プロキシ142と、再生部144と、キャッシュ146と、を含んでいる。
【0040】
プロキシ142は、登録サーバ180と通信してゲートウェイ200とのセキュアな通信(例えば、WebRTCセッション)を確立する。
【0041】
プロキシ142は、ゲートウェイ200と通信する。例えば、プロキシ142は、特定のマルチキャスト伝送152に参加するようゲートウェイ200に指示する。例えば、プロキシ142は、ゲートウェイ200からユニキャスト伝送154を受信する。コンテンツセグメントに対応する全てのメッセージをユニキャスト伝送154を介して受信すると、プロキシ142は、前記コンテンツセグメントをキャッシュ146に保存する。プロキシ142は、再生部144からの再生要求に応じて、保存したコンテンツセグメントを再生部144に提供する。
【0042】
再生部144は、ライブコンテンツの再生に必要な場合、コンテンツセグメントを要求する。再生部144は、例えば、コンテンツパッケージャ120によって提供されるようにマニフェストデータ構造において提供されるコンテンツセグメントの一覧に基づいてコンテンツセグメントを要求する。いくつかの実施形態において、再生部144は、好適なウェブブラウザ等の、コンテンツ再生に好適な従来の再生部であってもよい。
【0043】
コンテンツストリーミングシステム110の動作を、図5を参照してさらに記載する。図5は、実施形態に係るシステム相互作用を示すシーケンス図である。
【0044】
図示するように、再生部144は、例えば、特定のチャンネルのコンテンツを要求することによって、再生のための準備を始める。再生要求は、再生部144に対するユーザ制御に応じるものであってもよい。再生要求は、プロキシ142が受信する。プロキシ142は、適切なSTUN/TURNサーバにSTUNおよび/またはTURN要求を行なう。STUN/TURNサーバは、パブリックIPおよびポートの情報を用いてこれに応答する。いくつかの実施形態(例えば、登録サーバ180がSTUN/TURNサーバとして機能する場合)において、ゲートウェイ200は、同様のSTUN/TURN要求を行なう。
【0045】
WebRTCセッションを確立するために、ゲートウェイ200とプロキシ142とのそれぞれは、WebSocket接続によって登録サーバ180と接続する。プロキシ142は、このWebSocket接続によって登録サーバ180にWebRTCオファーを送る。次に、登録サーバ180がゲートウェイ200に前記WebRTCオファーを送る。ゲートウェイ200は、WebRTCアンサーを用いて登録サーバ180に応答する。今度は、登録サーバ180が前記WebRTCアンサーを用いてプロキシ142に応答する。これにより、オファー/アンサーを用いたやり取りが完了する。
【0046】
オファー/アンサーを用いたやり取りに基づいて、ゲートウェイ200とプロキシ142とは、安全なWebRTCセッションを確立する。プロキシ142は、特定のブロードキャスト部150のIPアドレスおよびポートによって識別される特定のマルチキャスト伝送152に参加するよう(WebRTCメッセージによって)ゲートウェイ200に指示する。ゲートウェイ200は、特定のブロードキャスト部150の、識別されたマルチキャスト伝送152に参加する。図示する実施形態において、ブロードキャスト部150は、インターネット・グループ管理プロトコル(IGMP)を利用して、識別されたマルチキャスト伝送152に参加する。
【0047】
ブロードキャスト部150は、コンテンツパッケージャ120からマニフェストデータ構造(すなわち、再生リスト)を得る。ブロードキャスト部150は、コンテンツパッケージャ120から、前記マニフェストデータ構造で特定された1または複数のコンテンツセグメントを得る。ブロードキャスト部150は、コンテンツ配信ネットワーク130を介してパッケージャ120からデータを得てもよい。これは、HTTPまたはHTTP/TLSを介したものであってもよい。
【0048】
ブロードキャスト部150は、マルチキャスト伝送152によってゲートウェイ200に1または複数のコンテンツセグメントを伝送する。図示する実施形態において、マルチキャスト伝送152は、リアルタイム転送プロトコル(RTP)を利用する。いくつかの実施形態において、マルチキャスト伝送152は、低遅延マルチキャストに好適な他のプロトコルを利用する。前記他のプロトコルは、例えば、好適なUDPベースのプロトコルであってもよい。
【0049】
ゲートウェイ200は、ユニキャスト伝送154によってプロキシ142に1または複数のコンテンツセグメントを伝送する。図示する実施形態において、ユニキャスト伝送154は、WebRTCデータチャネルによるものである。この実施形態において、ユニキャスト伝送154は、SCTPを利用する。SCTPは、WebRTCデータチャネルを用いた転送プロトコルである。SCTPにしたがって、コンテンツデータは、メッセージと呼ばれるバイトのグループごとにゲートウェイ200からプロキシ142に伝送される。
【0050】
プロキシ142は、前記ユニキャスト伝送154を受信する。コンテンツセグメントのためのコンテンツデータを含むメッセージを全て受信すると、コンテンツセグメントは、キャッシュ146に保存される。
【0051】
再生部144は、現在の再生リストを適宜に要求する。この要求は、プロキシ142が受信する。プロキシ142は、コンテンツパッケージャ120から前記再生リストを要求する。前記再生リストは、その後、例えば、HTTPまたはHTTP/TLSを介してプロキシ142に提供される。再生部144は、コンテンツセグメントを適宜に要求する。この要求は、プロキシ142が受信する。プロキシ142は、キャッシュ146に保存された、要求されたコンテンツセグメントを再生部144に提供する。
【0052】
図6は、実施形態に係る、ブロードキャスト部150からのパケットの伝送の上位概略描写である。
【0053】
上述したように、ブロードキャスト部150は、コンテンツパッケージャ120から1または複数のコンテンツセグメントを得る。ブロードキャスト部150は、図6に示すように、各コンテンツセグメントを複数のメッセージ156に分割する。図示する実施形態において、各メッセージ156は、サイズが16kBである。他の実施形態において、メッセージは、サイズが異なっていてもよい(例えば、4kBまたは8kB等)。各メッセージ156は、マルチキャスト伝送152のために複数のパケット158にさらに分割される。図示する実施形態において、パケット158は、好適なRTPヘッダとコンテンツデータのペイロードとを含むRTPパケットである。いくつかの実施形態において、マルチキャスト伝送152がRTP以外のプロトコルを使用する場合、他の種類のパケットを使用してもよい。図示する実施形態において、各パケット158は、パケットサイズが1500バイトである。いくつかの実施形態において、他のパケットサイズを用いてもよい。
【0054】
図7は、ゲートウェイ200でのメッセージ再構成の上位概略描写である。図示するように、ゲートウェイ200は、マルチキャスト伝送152を介して受信したパケット158から各メッセージ156を再構成する。
【0055】
パケット158(例えば、図7に示すような、パケットシーケンス#1、#2、#3、#4)は、マルチキャスト伝送152によって1または複数のゲートウェイ200に伝送される。メッセージ156を構成するパケット158を全てゲートウェイ200が受信すると、再構成されたメッセージ156は、ユニキャスト伝送154によってクライアント装置140に伝送される。
【0056】
図示する実施形態において、ゲートウェイ200は、誤った順序で着信するパケット158を取り扱うことが可能である。図7に示すように、例えば、ゲートウェイ200は、パケット158シーケンス#7を受信するが、これは、パケット158シーケンス#8の後に着信する。いくつかの実施形態において、ゲートウェイ200は、1または複数の更なる不完全なメッセージを自らのキャッシュに保存する。図7に示すように、例えば、ゲートウェイ200は、パケット158シーケンス#3の着信を待つ一方、受信したパケット158シーケンス#1、#2、および#4を有する不完全なメッセージ156を保存する。
【0057】
ゲートウェイ200に着信したパケット158のシーケンスナンバーが、ゲートウェイ200にすでに保存されているパケット158と重複する場合、ゲートウェイ200は、ブロードキャスト部150が再起動された結果、同一のシーケンスナンバーを再使用していると想定する。この場合、ゲートウェイ200は、自らのキャッシュをフラッシュし、メッセージ再構成プロセスを再度開始する。
【0058】
図示する実施形態において、ゲートウェイ200は、ブロードキャスト部150から受信したパケット158からメッセージ156を再構成するように構成されている。いくつかの実施形態において、ゲートウェイ200は、ゲートウェイ200でのメッセージの再構成を行なうことなく、クライアント装置140に各パケット158を別々に再伝送するように構成されていてもよい。例えば、WebRTCを使用してゲートウェイ200からクライアント装置140に伝送する場合、各パケット158を別々のWebRTCペイロードとして伝送してもよい。そのような実施形態において、パケットの並び替えが必要であれば、クライアント装置140、例えば、プロキシ142が実行してもよい。クライアント装置140におけるそのようなパケットの並び替えは、順序の誤った伝送(out of order transmission)に対するSCTPのサポートを使用して実施してもよい。
【0059】
いくつかの実施形態において、SCTPを使用し、信頼性および並び替え機能のオプションを無効化して、ユニキャスト伝送154が(TCPではなく)UDPと同様の遅延特性を有し得るようにする。そのような実施形態において、パケットの並び替えと損失パケットの回復は、トランスポート層等のより下の層ではなく、アプリケーション層において行われる。これにより、ネットワークの遅延と混乱に応じるためのアプリケーション層における制御が得られる。例えば、喪失したパケットのためのタイムアウト期間を、特定のアプリケーションの遅延要件に基づいてアプリケーション層において設定してもよい。例えば、並び替えおよび損失パケットの回復は、クライアント140、例えば、プロキシ142のアプリケーション層において行なってもよい。
【0060】
図示する実施形態において、信頼される中間体(例えば、登録サーバ180)を介して、ゲートウェイ200とクライアント装置140との間に安全なセッションを確立することができる、WebRTC等のプロトコルを用いる。これにより、技術的な利点が得られる。例えば、(クライアント装置140上で実行されるような)ウェブブラウザの中には、HTTPを介した要求を許可せず、信頼されるサーバ証明書を有するウェブサーバに対する、HTTP/TLSを介した要求のみを許可するものがある。図示する実施形態では、ゲートウェイ200とクライアント装置140とが通信する際に、ゲートウェイ200とクライアント装置140とのいずれも、信頼されるサーバ証明書をホストする必要がない。
【0061】
また、ゲートウェイ200からクライアント装置140にコンテンツデータをリアルタイムでストリーミングすることができる、WebRTC等のプロトコルを用いる。これにより、技術的な利点が得られる。例えば、図示する実施形態において、ゲートウェイ200は、(例えば、マルチキャスト伝送152を介して受信されるような)コンテンツセグメントの小さな部分の連続的なストリームを伝送する。これには、少数のメッセージを保存するための、ゲートウェイ200における十分なバッファリングが必要となるだけでなく、SCTP通信に関するフロー制御バッファリングが必要となる場合がある。ある実施形態において、メッセージの数は、例えば、2~5の間であり、各メッセージのサイズは、16kBである。これに対して、もしゲートウェイ200の位置にあるゲートウェイがウェブサーバをホストし、HTTP(またはHTTP/TLS)を介してクライアント装置140にコンテンツセグメントを提供するとしたら、このゲートウェイは、クライアント装置140からの再生要求に応答するためにメディアセグメント全体を保存する必要があるだろう。したがって、必要となるバッファサイズは、ゲートウェイ200のバッファサイズよりも大きい。
【0062】
図8は、実施形態に係る、クライアント装置140におけるプロキシ142によって完了することが可能なメッセージ修復プロセスを模式的に図示する。この例に示すように、プロキシ142は、メッセージ156シーケンス#2を除くメッセージ156(シーケンス#1~#n)を受信している。あるメッセージ156が欠けていることを検出すると、プロキシ142は、前記欠けているメッセージ156をパッケージャ20から直接的に要求し、コンテンツ配信ネットワーク130を介して前記メッセージ156を受信してもよい。注目すべきは、欠けているメッセージ156シーケンス#2の伝送に、ゲートウェイ200からのユニキャスト伝送154と、ブロードキャスト部150からのマルチキャスト伝送152と、のいずれをも必要としないことである。いくつかの実施形態において、プロキシ142は、修復プロセスの一部として欠けているメッセージ156を得る代わりに、欠けているコンテンツセグメント全体をパッケージャ20から得てもよい。
【0063】
図9は、実施形態に係る、広告コンテンツと組み合わせてライブコンテンツをストリーミングするためのコンテンツストリーミングシステム1010の上位概略図である。以下により詳細に記載するように、コンテンツストリーミングシステム1010のいくつかの実施形態は、サーバサイド広告挿入(SSAI)を提供する一方、主要コンテンツと同様の規模の広告コンテンツの配信を容易にする。いくつかの実施形態において、広告コンテンツは、例えば、クライアント装置140のエンドユーザを対象とし/クライアント装置140のエンドユーザ向けにパーソナライズしてもよい。
【0064】
図示するように、コンテンツストリーミングシステム1010は、コンテンツストリーミングシステム110の各システムエレメントに加えて、広告パッケージャ1020と、1または複数の広告ブロードキャスト部1050と、制御部1070と、広告決定サーバ1080と、広告挿入部1090と、を含んでいる。
【0065】
広告挿入を容易にするために、パッケージャ120は、主要コンテンツ再生リスト内に、1または複数の広告挿入機会(例えば、主要コンテンツ中の広告ブレーク)の指標を挿入する。広告パッケージャ1020は、広告コンテンツの出所としての役割を果たし、クライアント装置140向けの広告コンテンツのストリームを開始する。広告コンテンツは、ビデオ・オン・デマンド(VOD)ファイルの形式で広告パッケージャ1020に提供されてもよく、VODファイルは、広告セグメント内にストリーミングしてもよい。広告パッケージャ1020は、広告ブロードキャスト部1050に広告セグメントをストリーミングする。広告ブロードキャスト部1050は、その後、マルチキャスト伝送1052によって複数のゲートウェイ200に広告セグメントをストリーミングする。各ゲートウェイ200は、その後、ユニキャスト伝送154によって1または複数の関連付けられたクライアント装置140に広告セグメントをストリーミングする。
【0066】
広告パッケージャ1020は、1または複数の広告ソースから広告コンテンツを受信する。広告パッケージャ120は、利用可能な広告コンテンツを記述するデータを含む広告マニフェストデータ構造を生成する。例えば、マニフェストデータ構造は、利用可能な広告セグメントを記述し、各広告は、クライアント装置140によるアクセスおよびその後の再生が個別に可能なコンテンツの一部を提供してもよい。広告マニフェストデータ構造は、本明細書で「広告再生リスト」と呼ぶ場合もある。
【0067】
いくつかの実施形態において、広告パッケージャ1020は、マニフェストデータ構造で参照する広告セグメントファイルを、例えば、HLSやDASH等の、ABRストリーミングに好適な形式で生成する。いくつかの実施形態において、広告パッケージャ1020は、ジャストインタイムのパッケージャである。
【0068】
広告ブロードキャスト部1050は、コンテンツ配信ネットワーク130を介して広告パッケージャ1020から広告セグメントを受信する。広告ブロードキャスト部1050は、マルチキャストサーバとしての役割を果たす。この目的のために、広告ブロードキャスト部1050は、広告セグメントをマルチキャストするためのマルチキャストストリームを提供する。広告ブロードキャスト部1050は、ブロードキャスト部1050のマルチキャストストリームに参加しているゲートウェイ200に広告セグメントをブロードキャストする。いくつかの実施形態において、マルチキャスト伝送1052は広告コンテンツに使用されるが、その他の点ではマルチキャスト伝送152と同様である。
【0069】
図示する実施形態において、広告ブロードキャスト部1050は、カルーセル(繰り返しループ)によって広告パッケージャ1020から受信する広告コンテンツをマルチキャストする。いかなる時においても、カルーセルに含まれる特定の広告コンテンツは、制御部1070によって制御される。
【0070】
図示する実施形態において、ブロードキャスト部管理部160は、ブロードキャスト部150に加えて、1または複数の広告ブロードキャスト部1050のライフサイクルを管理する。
【0071】
制御部1070は、主要コンテンツと広告コンテンツとのマルチキャストを管理する。制御部1070は、1または複数のブロードキャスト部150に指示を出して、特定のブロードキャスト部150がマルチキャストする特定の主要コンテンツを識別する。制御部1070は、1または複数の広告ブロードキャスト部1050に指示を出して、特定の広告ブロードキャスト部1050がマルチキャストする特定の広告コンテンツを識別する。制御部1070は、関連する広告のリストを取り出し、特定の広告ブロードキャスト部1050(例えば、特定のマルチキャストアドレス/ポート)に対する特定の広告コンテンツのマッピングを生成する。このマッピングは、本明細書で「マルチキャストマップ」と呼ぶ場合もある。
【0072】
制御部1070は、特定の主要コンテンツブロードキャスト、特定のチャンネル、特定のプログラム等に対して広告コンテンツをマッピングする。図示する実施形態において、制御部1070は、関連する広告のリストを広告挿入部1090から取り出す。いくつかの実施形態において、制御部1070は、この関連する広告のリストを広告決定サーバ1080または他の好適なソースから取り出す。制御部1070は、1または複数の広告ブロードキャスト部1050を制御して、前記関連する広告が、それぞれのマルチキャストカルーセルに含まれるようにする。図示する実施形態において、制御部1070は、ブロードキャスト部管理部160を介して1または複数の広告ブロードキャスト部1050を制御する命令を送出する。
【0073】
制御部1070は、マルチキャストマップの少なくとも一部をクライアント装置140に提供する。提供するマルチキャストマップの一部は、例えば、特定のクライアント装置140に関連する、特定のコンテンツブロードキャスト、特定のチャンネル、特定のプログラム等に関するものであってもよい。
【0074】
広告決定サーバ1080は、各広告ブレークの際に再生する広告のリストを生成する。広告決定サーバ1080は、様々な判定基準に基づいて広告を選択する。判定基準は、特定の広告の人気、特定の広告の主要コンテンツとの関連性、特定の広告の特定のエンドユーザとの関連性等を含んでいてもよい。これにより、広告のリストの対象を決める、または、広告のリストをパーソナライズすることができる。広告決定サーバ1080は、広告のリストを広告挿入部1090に提供する。
【0075】
広告挿入部1090は、SSAIエンジンの各機能を実行する。広告挿入部1090は、主要コンテンツ再生リストを変更して、クライアント装置140によって再生する特定の広告を識別することによって、広告を挿入する。特定の広告は、広告決定サーバ1080が提供する広告のリストに基づく。図示する実施形態において、広告挿入部1090は、パッケージャ1020からクライアント装置140に向けて送られる主要コンテンツ再生リストを途中で傍受し、変更して広告コンテンツを挿入する。その後、変更した再生リストをクライアント装置140に提供する。
【0076】
主要コンテンツがライブコンテンツである実施形態において、パッケージャ120は、本明細書で「ライブパッケージャ」と呼ぶ場合もあり、ブロードキャスト部150は、本明細書で「ライブブロードキャスト部」と呼ぶ場合もある。
【0077】
コンテンツストリーミングシステム1010の動作を、図10を参照してさらに記載する。図10は、実施形態に係るシステム相互作用を示すシーケンス図である。
【0078】
広告挿入を容易にするために、パッケージャ1020は、主要コンテンツ再生リスト内に広告指標を挿入する。広告指標は、来たるべき所定の時間に広告配置機会があることを示す。広告指標は、広告ブレークに先立って挿入されて、その後の処理およびクライアント装置140への広告コンテンツの伝送のために十分な時間を確保する。図示する実施形態において、広告指標は、以下のような形式であってもよい。
#EXT-X-DATERANGE:ID=33555487,CLASS="AD-SERVER-CALL",START-DATE=2021-12-14T14:34:10.526Z,X-AD-SERVER-CALL-PARAMETERS="..."
【0079】
いくつかの実施形態において、他の好適な形式を使用してもよい。
【0080】
広告挿入部1090は、パッケージャ1020から主要コンテンツ再生リストを受信する。この再生リスト内の広告指標を検出すると、広告挿入部1090は、次の広告配置機会に挿入可能な関連する広告のリストを広告決定サーバ1080に対して要求する。
【0081】
広告決定サーバ1080は、リストを生成し、広告挿入部1090に提供する。いくつかの実施形態において、リストは、アクティブなコンテンツ再生セッションを有する各クライアント装置140のための広告を特定してもよい。いくつかの実施形態において、複数のリストであって、例えば、それぞれがクライアント装置140のうちの1つに対応するリストを提供してもよい。広告決定サーバ1080は、広告挿入機会に先立って広告のリストを決定する必要があるため、広告のリストのそれぞれは、「前決定」と呼ぶ場合もある。状況によっては、広告決定サーバ1080が前決定を生成する必要がある時に、広告挿入機会の時間長が不明という場合がある。そのような状況では、広告決定サーバ1080は、予想される最長の広告ブレーク時間長にまたがるのに十分な広告コンテンツをリストに含める。
【0082】
広告挿入部1090は、広告決定サーバ1080が提供する広告のリストを保存する。広告挿入部1090は、主要コンテンツ再生リストを変更して、広告のリストの少なくとも一部を含める。図示する実施形態において、再生リストへの挿入は、以下のような形式であってもよく、これを「前決定指標」と呼ぶ場合もある。
#EXT-X-DATERANGE:ID=33555487,CLASS="AD-PRE-DECISION",START-DATE=2021-12-14T14:34:10.526Z,X-AD-DECISION="{ad1_id},{ad1_dur};{ad2_id},{ad2_dur};..."
【0083】
いくつかの実施形態において、他の好適な形式を使用してもよい。
【0084】
各広告は、識別子(すなわち、ad1_id、ad2_id等)によって識別される。各広告の時間長も提供される(すなわち、ad1_dur、ad2_dur等)。
【0085】
ブロードキャスト部150は、広告指標を含む主要コンテンツ再生リストをパッケージャ1020から受信する。ブロードキャスト部150は、前記所定の時間を含む広告配置機会が近づいてきている旨の通知を制御部1070に送る。制御部1070は、広告挿入部1090から関連する広告のリストを得、広告ブロードキャスト部1050を管理するためにブロードキャスト部管理部160に指示を出す。特に、前記指示では、1または複数の広告ブロードキャスト部1050に対して、ブロードキャスト部管理部160の管理の下、リストされた広告がそれぞれのマルチキャストカルーセルに含まれるようにする。
【0086】
クライアント装置140において、再生部144は、広告挿入部1090から受信した主要コンテンツ再生リストを処理する際に、前決定指標を検出する。これに応じて、再生部144は、プロキシ142にコールバックを送出する。次に、プロキシ142は、再生リストにおいて特定されるライブコンテンツに関連するマルチキャストマップ(例えば、特定のチャンネルのためのマルチキャストマップ)の要求をマルチキャストマップサーバ1070に送出する。
【0087】
マルチキャストマップサーバ1070は、(識別子によって識別される)広告のマッピングを提供するこのマルチキャストマップと、特定の広告ブロードキャスト部1050の特定のマルチキャスト伝送1052のためのIPアドレスおよびポートと、を提供する。図示する実施形態において、マルチキャストマップは、以下の形式を有している。
{adX_id}=239.1.1.1:1234
{adY_id}=239.1.1.2:1234
...
【0088】
いくつかの実施形態において、他の好適な形式を使用してもよい。
【0089】
プロキシ142は、マルチキャストマップを使用して、前決定指標において特定される各広告を得るためのIPアドレスおよびポートを特定する。プロキシ142は、特定された広告のための各マルチキャスト伝送1052に参加するよう、自らに関連付けられたゲートウェイ200に指示する。前記指示は、プロキシ142によって、自らに関連付けられたゲートウェイ200に、両者の間の安全な通信セッションを使用して提供される。
【0090】
ゲートウェイ200は、1または複数のマルチキャスト伝送1052によって、前決定において特定される広告に対応する広告セグメントを受信する。広告セグメントは、ユニキャスト伝送154によってプロキシ142に伝送される。広告セグメントは、キャッシュ146に保存される。広告セグメントを得るこのプロセスは、広告データを保存するために割り当てられたキャッシュ146内の空間を使い切るまで繰り返してもよい。
【0091】
広告ブレークがある場合、パッケージャ120は、主要コンテンツ再生リスト内に広告ブレーク指標を挿入して、広告挿入機会の始まりを示すようにする。図示する実施形態において、この広告ブレーク指標は、以下のような形式を有している。
#EXT-X-CUE-OUT:...,DURATION=...
【0092】
いくつかの実施形態において、他の好適な形式を使用してもよい。
【0093】
注目すべきは、広告ブレークの時間長が広告ブレーク指標において定義されていることである。
【0094】
広告挿入部1090は、前決定にリストされた広告のサブセットであって、広告ブレークの時間長内に収まるサブセットを選択する。広告挿入部1090は、主要コンテンツ再生リストを変更して、広告の選択したサブセットを特定する。図示する実施形態において、この選択は、以下のような形式であってもよく、これを「実際の決定指標」と呼ぶ場合もある。
#EXT-X-DATERANGE:ID=33555487,CLASS="AD-ACTUAL-DECISION",START-DATE=2021-12-14T14:34:10.526Z,X-AD-DECISION="{ad1_id},{ad1_dur};{ad2_id},{ad2_dur};..."
【0095】
いくつかの実施形態において、他の好適な形式を使用してもよい。
【0096】
一方、プロキシ142は、広告ブレークの前に、行動決定指標において特定される各広告のための広告セグメントの取り出しを継続する。
【0097】
広告挿入部1090は、一定のライブセグメントを、実際の決定指標において特定される各広告のための広告セグメントと置き換えることによって、主要コンテンツ再生リストを変更する。
【0098】
再生部144は、広告セグメントを有する変更された再生リストを受信する。プロキシ142は、キャッシュ146からの広告セグメントを再生部144に提供する。
【0099】
広告セグメントが再生されると、プロキシ142は、キャッシュ146から前記広告セグメントを削除する。これにより、マルチキャスト伝送1052を介して取り出される追加的な広告セグメントのためのスペースが解放される。
【0100】
いくつかの実施形態において、再生リストで特定される一定の広告は、マルチキャスト伝送1052から省略してもよい。そのような広告には、例えば、人気の低い広告が含まれていてもよい。そのような実施形態において、プロキシ142は、省略された広告のための広告セグメントを、コンテンツ配信ネットワーク130を介して広告パッケージャ1020から直接的に取り出してもよい。このように取り出すことにより、ユニキャスト伝送154を回避することができる。
【0101】
コンテンツストリーミングシステム(例えば、コンテンツストリーミングシステム110またはコンテンツストリーミングシステム1010)の動作を、図11に示すフローチャートを参照してさらに記載する。
【0102】
コンテンツストリーミングシステムの実施形態は、実施形態に係る、ブロック1100以下に例示する動作を実行する。
【0103】
ブロック1102では、マルチキャスト伝送(例えば、伝送152)によってマルチキャストサーバ(例えば、ブロードキャスト部150)から複数のゲートウェイ装置(例えば、ゲートウェイ200)にライブコンテンツデータを伝送する。ライブコンテンツデータは、マルチキャストサーバがコンテンツ配信ネットワーク(例えば、ネットワーク130)を介して出所(例えば、パッケージャ120)から受信したデータを含んでいてもよい。
【0104】
ブロック1104では、任意に、マルチキャスト伝送(例えば、伝送1052)によってマルチキャストサーバ(例えば、広告ブロードキャスト部1050)から複数のゲートウェイ装置(例えば、ゲートウェイ200)に広告コンテンツデータを伝送する。広告コンテンツデータは、マルチキャストサーバがコンテンツ配信ネットワーク(例えば、ネットワーク130)を介して出所(例えば、広告パッケージャ1020)から受信したデータを含んでいてもよい。
【0105】
ブロック1106では、ゲートウェイ装置のうちの所定の1つ(例えば、ゲートウェイ200)と、関連付けられた再生装置(例えば、クライアント装置140)と、の間に、前記所定のゲートウェイ装置と前記関連付けられた再生装置とによって信頼される中間サーバ(例えば、登録サーバ180)を使用して、セキュアな通信セッションを確立する。セキュアな通信セッションは、所定のゲートウェイ装置から関連付けられた再生装置への安全なリアルタイム伝送のためのものである。セキュアな通信セッションは、例えば、WebRTCセッションであってもよい。
【0106】
ブロック1108では、セキュアな通信セッションを使用して、ユニキャスト伝送(例えば、伝送154)によって所定のゲートウェイ装置から関連付けられた再生装置にライブコンテンツデータを伝送する。
【0107】
ブロック1110では、任意に、セキュアな通信セッションを使用して、ユニキャスト伝送(例えば、伝送154)によって所定のゲートウェイ装置から関連付けられた再生装置に広告コンテンツデータを伝送する。
【0108】
受信したライブコンテンツデータは、関連付けられた再生装置において再生される。広告コンテンツデータを受信した場合、適切な広告ブレーク中に関連付けられた再生装置において再生される。
【0109】
図11に示す1または複数のブロックの工程は、異なる順序で実行してもよく、順番を入れ替えて(interleaved)もよく、繰り返してもよいことが理解される必要がある。さらに、各工程の変更、様々な工程の省略もしくは置換、または追加的な工程を考慮してもよい。
【0110】
本明細書で記載した実施形態は、ゲートウェイ200とクライアント装置140との間の通信のためにWebRTCプロトコルを使用するものである。他の実施形態において、他のピアツーピアのプロトコルであって、信頼する中間体を介して確立した、信頼のあるリアルタイム通信を可能とするプロトコルを使用してもよい。
【0111】
本明細書における「リアルタイム」という語句は、ライブコンテンツをストリーミングするのに好適な低遅延通信を指す。例えば、本明細書で使用する「リアルタイム」は、擬似リアルタイム、すなわちリアルタイムに近い通信を指してもよい。
【0112】
図12は、実施形態に係る、コンテンツストリーミングシステム110またはコンテンツストリーミングシステム1010の様々な要素を実現するために使用することができる演算装置1200の概略図である。1つの例において、演算装置1200は、ゲートウェイ装置200を実現するために使用してもよい。他の例において、演算装置1200は、クライアント装置140を実現するために使用してもよい。
【0113】
図示するように、演算装置1200は、少なくとも1つのプロセッサ1202と、メモリ1204と、少なくとも1つのI/Oインターフェース1206と、少なくとも1つのネットワークインターフェース1208と、を含んでいる。
【0114】
各プロセッサ1202は、例えば、任意の種類の汎用マイクロプロセッサまたはマイクロコントローラ、デジタル信号処理(DSP)プロセッサ、集積回路、フィールド・プログラマブル・ゲートアレイ(FPGA)、再構成可能プロセッサ、プログラマブル読み出し専用メモリ(PROM)、またはこれらの任意の組み合わせであってもよい。
【0115】
メモリ1204は、内部または外部に位置する任意の種類のコンピュータメモリの好適な組み合わせを含んでいてもよく、前記コンピュータメモリは、例えば、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、コンパクトディスク読み出し専用メモリ(CDROM)、電気光学メモリ、磁気光学メモリ、消去可能なプログラマブル読み出し専用メモリ(EPROM)、電気的に消去可能なプログラマブル読み出し専用メモリ(EEPROM)、強誘電性RAM(FRAM)等である。
【0116】
各I/Oインターフェース1206は、演算装置1200が、1または複数の入力装置、例えば、キーボード、マウス、カメラ、タッチスクリーン、マイクロフォン等、または、1または複数の出力装置、例えば、表示画面、スピーカ等と相互接続することを可能にする。
【0117】
各ネットワークインターフェース1208は、データの伝送が可能な単一のネットワーク(または、複数のネットワーク)に接続することによって、演算装置1200が、他の構成要素と通信する、他の構成要素とデータを交換する、ネットワーク資源にアクセスおよび接続する、アプリケーションを提供する、および、他の演算アプリケーションを実行することを可能にする。前記ネットワークには、例えば、インターネット、イーサネット、一般電話サービス(POTS)回線、公衆交換電話網(PSTN)、統合サービスデジタル通信網(ISDN)、デジタル加入者回線(DSL)、同軸ケーブル、ファイバーオプティクス、衛星、移動網、無線(例えば、Wi-Fi、WiMAX)、SS7信号路網、固定回線、ローカルエリアネットワーク、広域ネットワーク、および、これらの任意の組み合わせが含まれる。
【0118】
説明を簡潔にするためだけに1つの演算装置1200を示しているが、システム1000は、複数の演算装置1200を含んでいてもよい。複数の演算装置1200は、同一の種類の装置であってもよく、異なる種類の装置であってもよい。複数の演算装置1200は、様々な方法で接続することができ、例えば、直接的に連結する、ネットワークを介して間接的に連結する、および、広い地理的な領域に分散させて、ネットワークを介して接続する(「クラウドコンピューティング」と呼ぶ場合もある)ことができる。
【0119】
例えば、以下には限定されないが、演算装置1200は、サーバ、ネットワークアプライアンス、セットトップボックス、組込み装置、コンピュータ拡張モジュール、パーソナルコンピュータ、ラップトップ、携帯情報端末、携帯電話、スマートフォン装置、UMPCタブレット、ビデオ表示端末、ゲーム機、または、本明細書に記載の方法を実行するように構成することが可能な、任意の他の演算装置であってもよい。
【0120】
上の記載では、本発明の主題の数多くの実施形態の例を示した。各実施形態では、本発明の要素の単一の組み合わせを表しているが、本発明の主題は、開示した要素の可能な組み合わせを全て含むものとする。よって、ある実施形態が要素A、B、およびCを含んでおり、他の実施形態が要素BおよびDを含んでいるとしても、本発明の主題は、明示されていなくても、A、B、C、およびDの他の残りの組み合わせをも含むものとする。
【0121】
本明細書に記載の装置、システム、および方法の実施形態は、ハードウェアとソフトウェアとの両方の組み合わせによって実現してもよい。これらの実施形態は、各コンピュータが、少なくとも1つのプロセッサと、データ記憶システム(例えば、揮発性メモリ、不揮発性メモリ、他のデータ記憶要素、またはこれらの組み合わせ)と、少なくとも1つの通信インターフェースと、を含むプログラム可能なコンピュータ上で実現してもよい。
【0122】
プログラムコードを入力データに適用して、本明細書に記載の機能を実行し、出力情報を生成する。出力情報は、1または複数の出力装置に適用する。いくつかの実施形態において、通信インターフェースは、ネットワーク通信インターフェースであってもよい。要素を組み合わせてもよい実施形態において、通信インターフェースは、ソフトウェア通信インターフェース、例えば、プロセス間通信のためのソフトウェア通信インターフェースであってもよい。さらに他の実施形態において、ハードウェア、ソフトウェア、およびこれらの組み合わせとして実現される通信インターフェースの組み合わせが含まれていてもよい。
【0123】
上の記載の全体を通して、サーバ、サービス、インターフェース、ポータル、プラットフォーム、または、演算装置から形成される他のシステムに関して多数の言及がある。そのような用語の使用は、コンピュータが読み取り可能な、実体的な、一時的でない媒体に保存されているソフトウェア指示を実行するように構成されている少なくとも1つのプロセッサを有する1または複数の演算装置を表すものと見なすと理解されたい。例えば、サーバは、記載した役割、作業(responsibility)、機能を遂行するように、ウェブサーバ、データベースサーバ、または他の種類コンピュータサーバとして動作する1または複数のコンピュータを含むことができる。
【0124】
実施形態の技術的なソリューションは、ソフトウェア製品の形式であってもよい。ソフトウェア製品は、不揮発性の、すなわち一時的でない記憶媒体に保存されていてもよく、前記記憶媒体は、コンパクトディスク読み出し専用メモリ(CD-ROM)、USBフラッシュディスク、または取り外し可能なハードディスクとすることができる。ソフトウェア製品は、コンピュータ装置(パーソナルコンピュータ、サーバ、またはネットワーク装置)が、前記実施形態によって提供される方法を実行することを可能にするいくつかの指示を含んでいる。
【0125】
本明細書に記載の実施形態は、例えば、演算装置、サーバ、受信器、送信器、プロセッサ、メモリ、ディスプレイ、およびネットワーク等の物理的なコンピュータハードウェアによって実現する。本明細書に記載の実施形態は、有用な物理的機械および特別に構成されたコンピュータハードウェア構成を提供する。
【0126】
もちろん、上述した各実施形態は、単に例示的なものを意図しており、限定的なものは意図していない。記載した実施形態は、形態、部材の配置、動作の詳細および順序を様々に変更し得るものである。本開示は、請求項によって定義される範囲内において、そのような変更の全てを含むことを意図している。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
【外国語明細書】