【文献】
Hung T. Le, et al., ,Adaptive video streaming with smooth advertisement insertion,2014 IEEE Fifth International Conference on Communications and Electronics (ICCE),2014年 7月30日,pp.162-167,URL,https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=6916697
(58)【調査した分野】(Int.Cl.,DB名)
前記1つまたは複数の符号化パラメータは、前記コンテンツストリームの一部として出力されるべきコンテンツ部分のビットレート、オーディオ正規化値、フレームレートまたは解像度のうちの少なくとも1つについての値を含む、
請求項8に記載のコンピュータ実行方法。
前記フォールバックコンテンツは、前記コンテンツに対する代替物、または1つもしくは複数の代替の符号化パラメータに従って符号化された前記コンテンツの構成のうちの少なくとも1つに対応する、
請求項8に記載のコンピュータ実行方法。
【発明を実施するための形態】
【0005】
総体的に述べれば、本開示は、通信網を通じてコンテンツストリームを提供することに関し、コンテンツストリームの少なくとも一部が、コンテンツストリーム自体の要求に応答して符号化される。さらに具体的に、本開示は、コンテンツストリーム内のコンテンツ部分の動的符号化を可能にし、コンテンツストリーム内の他の部分のパラメータまたは態様を整合させ、整合性のないコンテンツストリームの再生に伴う技術的な問題を低減し、コンテンツストリーム内の整合性のないフォーマットが原因でエンドユーザの体験を中断させないようにする。例示的に、本開示の態様は、コンテンツストリーム内のコンテンツ部分間で整合性のあるフォーマットを維持しながら、コンテンツストリームへの様々なコンテンツタイプのオンザフライ挿入を可能にすることができる。当フォーマットには、例えばビデオコンテンツの解像度、ビットレート、およびフレームレートが含まれ得る。別の例として、フォーマットには、オーディオコンテンツのビットレート、フレームレート、または正規化値が含まれ得る。一例として、本開示では、コンテンツストリーム内に整合性のあるフォーマットを維持する形で、免責事項、法的警告、または広告などの付加的コンテンツ部分をコンテンツストリーム内に含めることができるようになり、コンテンツストリームの要求前に付加的コンテンツ部分を事前符号化状態に維持する必要はない。したがって、本開示の実施形態では、コンテンツストリームの要求に応答するなどして、オンザフライで決定されるように、付加的コンテンツ部分をストリームに含めることが可能となり、その一方で、これらの付加的コンテンツ部分をコンテンツストリームのフォーマットに整合させることをも可能にして、より良好なユーザ体験をもたらすとともに、フォーマットの不整合のために発生する可能性のある技術的問題を軽減する。加えて、本開示の実施形態では、「整合」コンテンツ部分(例えば、コンテンツストリーム内の他の部分のフォーマットと整合するフォーマットを有するコンテンツ部分)が利用可能ではない場合に、デフォルトコンテンツ部分などのフォールバック部分の使用を可能にすることができる。
【0006】
本明細書に記載されるように、コンテンツストリームは、通常、クライアントが第2の部分をダウンロードしながら第1の部分を観始めることができるように、別々に伝送されて視聴され得る部分に分割されたコンテンツ(「セグメント」または「チャンク」と呼ばれることもある)を指す。コンテンツストリームの種々の部分は、多くの場合、1つまたは複数のマニフェスト内で識別される。このマニフェストは、ストリーミングコンテンツに関するメタデータと、コンテンツ内部分のリストとを提供する。各部分は、リソース識別子(ユニフォームリソースインジケータ、または「URI」など)またはファイル名に基づいてマニフェスト内で識別することができ、クライアントコンピューティング装置は、この識別子またはファイル名を使用して、その部分を取得して出力することができる。多くの場合、複数タイプのコンテンツが単一のマニフェスト内で識別される。例えば、マニフェストは、出力されるべき法的警告、主要コンテンツの第1の部分、広告、主要コンテンツの第2の部分などを識別し得るものである。このような部分の各々は別個のファイルに相当することができ、各部分は潜在的に独立したパラメータに従って符号化されて、異なったフォーマットの部分をもたらす。例示的には、法的警告は、第1のビットレート、解像度、およびフレームレートで符号化され得、主要コンテンツは、第2のビットレート、解像度、およびフレームレートで符号化され得、広告は、第3のビットレート、解像度、およびフレームレートで符号化され得るなどである。クライアントコンピューティング装置は、多くの場合、異なるパラメータに従って符号化された部分を出力し得るが、このことは分裂的なユーザ体験を招く可能性がある。場合によっては、このことはまた、出力装置(例えば、モニタ)の構成が、様々な符号化パラメータを簡単にするように変更されたときに、遅延を引き起こすなど、再生に関する技術的な問題を引き起こす可能性がある。さらに、一部のクライアントコンピューティング装置では、法的な警告および通知、クレジット、献辞、または広告など、望まないコンテンツを選択的にブロックし、また選別するために、部分の符号化パラメータに関する情報を利用することがある。そのようなコンテンツをブロックする装置またはソフトウェアは、「アドブロッカ」と呼ばれることがある。アドブロッカは、多くの場合、望まないコンテンツとして特定のリソースを指定する情報のマニフェストを監視することによって機能する。例えば、アドブロッカは、様々な部分の符号化パラメータを検出し、ある特定のパラメータ(例えば、周囲の部分よりも低いビットレート)を有する部分を、望まないコンテンツを含むものとして識別することによって、望まないコンテンツを識別しようとすることができる。望まないコンテンツを識別した後、広告ブロックは、それらの部分をマニフェストファイルから削除するか、または別の方法でクライアントコンピューティング装置がその部分を表示するのを妨げることができる。これらの変更は、クライアントによる重要なコンテンツの閲覧を妨げ、(例えば、法的警告の有効性を減らすこと、コンテンツプロバイダの広告収入を減らすことなどによって)コンテンツプロバイダに好ましからざる影響を及ぼす恐れがある。
【0007】
本開示の実施形態では、「整合」コンテンツ部分を含むコンテンツストリームの作成を可能にすることによって、これらの問題に対処し、コンテンツストリーム内の部分は、それらの部分が異なるタイプのコンテンツ(例えば、主要コンテンツおよび付加的コンテンツ)に相当する場合でも、共通のフォーマットパラメータを共有するようにする。説明し易くするために、コンテンツストリームが、主要コンテンツとしてのテレビ番組、および付加的コンテンツとしての広告に相当する部分を含む例を記載する。しかしながら、主要コンテンツは、要求される任意のストリーミングコンテンツ(例えば、オーディオ、ビデオ、またはテキストコンテンツ、ならびにそれらの組み合わせ)を含むことができ、付加的コンテンツは、主要コンテンツに追加されてコンテンツストリームを形成する任意のコンテンツを含むことができる。コンテンツストリームがテレビコンテンツおよび広告コンテンツの両方(例えば、ストリーム内のそれぞれのコンテンツ部分によって表される両方)を含む場合、テレビコンテンツおよび広告コンテンツ用の各種の符号化パラメータは、エンドユーザ体験と、コンテンツストリームを出力しようとするクライアントコンピューティング装置の動作との一方または両方を中断させる可能性がある。この問題に対処するための1つの可能な解決策は、推定されるすべてのテレビコンテンツのあり得るべきすべてのフォーマットに整合するバージョンを用いて、可能なすべての広告コンテンツのそれぞれの事前符号化バージョンを維持することである。しかしながら、可能性のある種類豊富な広告コンテンツ、テレビコンテンツ、および符号化パラメータにより、しばしば、そのようなアプローチは不可能に、または非実用的にされる。例えば、広告コンテンツが1ユーザ当たりの単位または1要求当たりの単位で決定される場合、コンテンツストリーム内に含まれる特定の広告コンテンツは、ユーザごとにまたは時間と共に大きく変化し得る。さらに、テレビコンテンツは、多彩な様々なバージョンと関連し、それぞれが多種のパラメータ(例えば、様々な解像度)で符号化され得る。したがって、可能性のある全広告コンテンツを可能なすべてレビコンテンツのパラメータと整合するように事前符号化することは、そのような事前符号化を行うのに必要な処理能力の面、および事前符号化コンテンツの維持に必要なメモリの面から、計算的に法外なものとなり得る。そのために、本開示の実施形態では、所与のコンテンツストリーム内で広告コンテンツ(または他の付加的コンテンツ)を適宜に符号化するために要求駆動型の符号化を利用するストリーミングコンテンツ配信サービスを提供する。例えば、クライアントが所望のテレビコンテンツを含むコンテンツストリームを要求する場合、ストリーミングコンテンツ配信サービスは、コンテンツストリームに含まれるべき広告コンテンツを決定し、そのクライアント要求時に、テレビコンテンツのパラメータと整合するパラメータで、その広告コンテンツを符号化することができる。したがって、コンテンツストリームは一定のパラメータを持って出力されて、これらのパラメータの変化に起因する潜在的な技術的問題を軽減し、パラメータの変更によって中断される可能性がある全ユーザ体験を改善する。さらに、このような符号化は、クライアント要求に応じて行われるだけでよいので、ストリーミングコンテンツ配信サービスは、「必要に応じて」という原則のみで整合パラメータを用いて広告コンテンツを符号化することが可能となり、ストリーミングコンテンツ配信サービスの計算要件を軽減する。場合によっては、ストリーミングコンテンツ配信サービスは、そのような符号化された広告コンテンツ(または他の付加的コンテンツ)をキャッシュするように構成され、このキャッシュされたコンテンツを再符号化することなしに後続のコンテンツストリームに含めることができるようにする。キャッシュされたコンテンツは、キャッシュを維持するのに必要とされるコンピューティングリソースを削減するために、継続的にまたは周期的に削除され得る。
【0008】
ストリーミングコンテンツ配信サービスは、場合によっては、コンテンツストリーム用に「楽観的に」作成されたマニフェストを使用することによって、要求駆動型の符号化を実行してもよい。上記の通り、マニフェストは、通常、コンテンツの様々な部分の識別情報を含むことができ、クライアントコンピューティング装置は、マニフェスト内で識別された部分を取り出して出力することによって、マニフェストを処理することができる。概して、マニフェストの生成と、マニフェスト内で識別された部分の、クライアントコンピューティング装置による取り出しとの間には、マニフェスト内で識別された部分を取り出すことができる前に、マニフェストをクライアントコンピューティング装置に伝送させる必要があることを考えると、少なくともある程度の遅延があることが予想できる。場合によっては、クライアントコンピューティング装置は、再生中に必要とされるときのみマニフェスト内で識別された部分(例えば、現在の再生位置に対してコンテンツストリームの次のn秒を占める部分)を取り出すように構成され得るので、この遅延はかなりのものとなり得る。したがって、ストリーミングコンテンツ配信サービスは、広告コンテンツを構成する部分などの、ストリーム用の整合コンテンツ部分を識別するマニフェストを、それらの整合コンテンツ部分が作成される前であっても生成することができる。これを本明細書では全般に「楽観的な」マニフェスト作成と称している。このようなマニフェストの生成と同時に、またはその後に、ストリーミングコンテンツ配信サービスは、以下で説明するように、整合コンテンツ部分を生成し始めることができる。整合コンテンツ部分の生成が、この整合コンテンツ部分に対するクライアントコンピューティング装置からの要求の受信前に完了する場合、次いで整合コンテンツ部分が、クライアントコンピューティング装置に送信され、コンテンツストリーム内に含められ得る。このように、コンテンツストリームのクライアント要求に応答して、整合コンテンツ部分をオンザフライで作成することができる。
【0009】
場合によっては、楽観的なマニフェスト作成によって、まだ利用可能ではないコンテンツ部分についての要求が、クライアントコンピューティング装置からもたらされることがある。例えば、楽観的なマニフェスト作成によって、コンテンツストリームの主要コンテンツと整合するパラメータで符号化された、法的警告などの「プリロールコンテンツ」を識別するマニフェストがもたらされるものと仮定する。さらに、プリロールコンテンツは、マニフェストによって、主要コンテンツより前に再生されるようにスケジュール設定され、整合プリロールコンテンツは、ストリーミングコンテンツ配信システムによって、まだ作成されていないものと仮定する。このような場合に、クライアントコンピューティング装置が、ストリーミングコンテンツ配信システムがプリロールコンテンツの作成を完了する前に、プリロールコンテンツを要求することがある。従来のシステムでは、このような要求はエラー(例えば、ハイパーテキスト転送プロトコル、または「HTTP」でのエラーコード「404」)の原因となり得るものであり、このエラーは一般に望ましくない。そのために、本開示の実施形態では、クライアントコンピューティング装置によって要求されたコンテンツ部分がまだ利用可能ではない場合に、フォールバックコンテンツ部分の使用を可能にすることができる。実例として、上記の例では、ストリーミングコンテンツ配信システムは、マニフェストファイルで識別されたプリロールコンテンツのデフォルトバージョンを維持することができ、したがって、整合プリロールコンテンツが利用できない場合には、整合プリロールコンテンツに対するクライアント要求により、デフォルトバージョンのプリロールコンテンツが配信される。フォールバックコンテンツ部分の使用は、コンテンツストリーム内のコンテンツストリーム間に異なったフォーマットパラメータをもたらし得るが、この結果は、クライアントコンピューティング装置でエラーを起こさせるよりも望ましくあり得る。以下にさらに詳細に説明するように、ストリーミングコンテンツ配信システムがフォールバックコンテンツ部分を利用する場合、これらのコンテンツ部分は、ストリーミングコンテンツ配信システムの様々なコンポーネントによるフォールバックコンテンツ部分の適切な処理を可能にするように、フォーマットすることができる。例えば、フォールバックコンテンツ部分は、低い「有効時間」値かゼロ「有効時間」値かを伴って生成され、その結果、普通ならフォールバックコンテンツ部分をキャッシュし得るストリーミングコンテンツ配信システムのコンポーネント(例えば、ポイントオブプレゼンス、すなわち「POP」)が、そうしないように指示され得る。さらなる例として、ストリーミングコンテンツ配信システムは、整合コンテンツ部分の要求に応答してフォールバックコンテンツ部分を直接返すのではなく、(例えば、HTTPの3xxリダイレクトコードを介して)フォールバックコンテンツ部分へのリダイレクトを返すことができる。これらの技法は、フォールバックコンテンツ部分を提供することによって、整合コンテンツ部分に対する後続の要求が適切に処理され、自動的に満たされないことを保証することができる。
【0010】
オーディオやビデオなどの特定型式のストリーミングコンテンツに関して、いくつかの例が提供されるが、本開示の実施形態は、マニフェストによってユーザに識別される個別のセクションに分割された任意のコンテンツの配信を制御するために利用してもよい。さらに、本明細書ではコンテンツ配信システムについての例が提供されるが、本開示の実施形態は、ストリーミングコンテンツをクライアントコンピューティング装置に供給するように動作するコンピューティング装置の任意のネットワークについて実施することができる。したがって、本明細書で提供される例は、実際に例示的なものであって、網羅的ではないことを意図している。
【0011】
上記の説明に照らして当業者によって理解されるように、本明細書に開示される実施形態は、パラメータの整合セットに従って一貫して符号化されたストリーミングコンテンツをユーザに配信するための、ストリーミングコンテンツ配信システムなどのコンピューティングシステムの能力を大幅に高める。さらに、本明細書で開示される実施形態は、クライアント装置がコンテンツストリームの1つまたは複数の部分の出力を変更することを禁止または防止するように、保護された方法でストリーミングコンテンツを配信するための、ストリーミングコンテンツ配信システムなどのコンピューティングシステムの能力を大幅に高める。したがって、本開示の実施形態では、ストリーミングコンテンツ配信システムまたは他のネットワーク装置に、テレビ放送網およびラジオ放送網などの従来の配信網によって提供される機能性を複製させ、再現させることによって、そのようなコンピューティングシステムの機能の改良がなされる。さらに、本開示の実施形態は、コンピューティングシステムが内包する技術的問題に対処する。つまり具体的には、適切なパラメータでコンテンツを符号化するのに利用可能なコンピューティングリソースが限られること、クライアントコンピューティング装置への伝送後のデータに対するネットワーク伝送システムによる制御が限られること、およびクライアント装置がそのコンテンツを望ましくない方法で修正する可能性が高いことに対処する。これらの技術的問題は、コンテンツ部分に対する要求駆動型の符号化の使用、楽観的なマニフェスト生成、およびまだ利用可能ではないコンテンツ部分に対する要求を処理するためのフォールバック部分の使用を含む、本明細書に記載される様々な技術的解決策によって対処される。したがって、本開示によれば、総体的に見て、既存のネットワークシステムおよびコンピューティングシステムに対する大幅な改良が示される。
【0012】
ある場合に、本開示の実施形態は、追加の技法を利用して、コンテンツストリームの削除または改ざんを防止することができる。例えば、本開示で説明されるストリーミングコンテンツ配信システムは、ストリーミングコンテンツのマニフェスト内の隠された識別子を利用することができ、これらの識別子は、クライアントコンピューティング装置がこれらの識別子に基づいて異なるタイプのコンテンツを区別することを妨げる。ストリーミングコンテンツにおいて隠された識別子を生成し利用するシステムおよび方法は、2016年5月23日に出願され、「PROTECTING CONTENT−STREAM PORTIONS FROM MODIFICATION OR REMOVAL」(「‘423出願」)と題された米国特許出願第15/162,423号にさらに詳細に記載され、この米国特許出願の全記載内容は参照により本明細書に援用される。
【0013】
本開示の前述の態様および付随する利点の多くは、添付の図面と併用されるときに、以下を参照することにより、それらについての理解が一層深まるにつれて、ますます容易に分かるようになるであろう。
【0014】
図1は、ネットワーク106を介してストリーミングコンテンツ配信システム110と通信する複数のクライアントコンピューティング装置102、コンテンツプロバイダ104、および広告システム130を含む例示的な論理ネットワーク環境100を示すブロック図である。クライアントコンピューティング装置102、コンテンツプロバイダ104、および広告システム130は、
図1内にグループ化されているように示されるが、クライアントコンピューティング装置102、コンテンツプロバイダ104、および広告システム130は、地理的に離れていてもよく、独立して所有または運営がされていてもよい。例えば、クライアントコンピューティング装置102は、ストリーミングコンテンツ配信システム110にアクセスする世界的、大陸的、または地域的な様々な場所における多数のユーザを表すこともあり得る。さらに、コンテンツプロバイダ104は、ウェブサイト、マルチメディア、または他のデジタルのネットワーク配信可能コンテンツなどのコンテンツをクライアントコンピューティング装置102に提供するために、ストリーミングコンテンツ配信システム110と関連している多数の同系の団体、または個別の団体を表すこともあり得る。さらにまた、広告システム130は、コンテンツプロバイダと関連しているコンテンツ内に含まれるべき広告コンテンツを提供する(それと共に、例えば、コンテンツプロバイダに収益をもたらす)多数の同系の団体、または個別の団体を表すこともあり得る。別個のものとして示してあるが、クライアントコンピューティング装置、コンテンツプロバイダ104、または広告システム130は、共通のエンティティによって、または共通のコンピューティング装置によって動作され得る。そのため、
図1内のクライアントコンピューティング装置102、コンテンツプロバイダ104、および広告システム130のグループ分けは、物理的ではなく、論理的なグループ分けを表すことを意図している。同様に、ストリーミングコンテンツ配信システム110の各コンポーネントを、地理的に多様な領域内に配置してもよい。例えば、ストリーミングコンテンツ配信システム110は、ストリーミングコンテンツ配信システム110に広大な地理的プレゼンスを与えるために、世界的、大陸的、または地域的に別個の様々な場所にPOP112を含むことができる。
【0015】
ネットワーク106は、任意の有線ネットワーク、無線ネットワーク、またはそれらの組み合わせとすることができる。さらに、ネットワーク106は、パーソナルエリアネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク、ケーブルネットワーク、衛星ネットワーク、携帯電話ネットワーク、またはそれらの組み合わせとすることができる。
図1の環境の例では、ネットワーク106はインターネットなどのグローバルエリアネットワーク(GAN)である。上に述べた他の種類の通信網を介して通信するためのプロトコルおよびコンポーネントは、コンピュータ通信分野の当業者には周知であり、したがって本明細書でさらに詳細に説明する必要はない。クライアントコンピューティング装置102、コンテンツプロバイダ104、広告システム130、およびストリーミングコンテンツ配信システム110のそれぞれは、ネットワーク106への単一の接続を有するものとして描かれているが、クライアントコンピューティング装置102、コンテンツプロバイダ104、広告システム130、およびストリーミングコンテンツ配信システム110の個々のコンポーネントは、全く異なるポイントでネットワーク106に接続されてもよい。したがって、通信時間および通信能力は、
図1のコンポーネント間で異なり得る。
【0016】
クライアントコンピューティング装置102は、ストリーミングコンテンツ配信システム110と通信することができる幾つもの異なるコンピューティング装置を含むことができる。例えば、個々のクライアントコンピューティング装置102は、ラップトップコンピュータまたはタブレットコンピュータ、パーソナルコンピュータ、ウェアラブルコンピュータ、サーバ、パーソナルデジタルアシスタント(PDA)、ハイブリッドPDA/携帯電話、携帯電話、電子ブックリーダ、セットトップボックス、カメラ、デジタルメディアプレーヤなどに相当し得る。各クライアントコンピューティング装置102は、ストリーミングコンテンツの受信および出力を可能にするハードウェアおよび/またはソフトウェアを含み、(例えば、コンテンツを直接ダウンロードすること、コンテンツを含むウェブページをダウンロードすることなどによって)ストリーミングコンテンツを出力することができる専用再生ハードウェア、専用ソフトウェア(例えば、特別にプログラムされたアプリケーション)、および汎用ソフトウェア(例えば、ウェブブラウザ)を含み得る。場合によっては、クライアントコンピューティング装置102は、コンテンツの特定の部分がクライアントコンピューティング装置によって出力されたかどうかなど、コンテンツの出力に関する情報をストリーミングコンテンツ配信システム110に報告するようにさらに構成されてもよい。個々のクライアントコンピューティング装置102の具体的な構成は異なっていてもよい。例えば、大部分のクライアントコンピューティング装置102は、修正することなしでストリーミングコンテンツを取り出して出力することができる。しかし、一部のクライアントコンピューティング装置102は、ストリーミングコンテンツを修正して特定の部分(例えば、法的警告、クレジット、献辞、広告など)を削除するように構成されたハードウェアまたはソフトウェアを含む場合がある。
【0017】
コンテンツプロバイダ104は、(1つまたは複数のクライアントコンピューティング装置102を含み得る)クライアントコンピューティング装置への後続の伝送のためにストリーミングコンテンツ配信システム110にコンテンツを提供するエンティティによって所有または運営される任意のコンピューティング装置を含み得る。例えば、コンテンツプロバイダ104は、ストリーミングオーディオ、ビデオ、テキスト、マルチメディア、または双方向サービス(例えば、ビデオゲーム、バーチャルコンテンツもしくは拡張現実コンテンツ、または他の没入型コンテンツ)をホストとして処理するサーバを含んでもよい。
図1にネットワーク接続コンピューティング装置として例示的に示されているが、コンテンツプロバイダ104は、追加的にまたは代替的に非ネットワーク接続通信チャネルを介して(例えば、データの物理的配信を介して)ストリーミングコンテンツ配信システム110にコンテンツを提供し得る。
【0018】
広告システム130は、他のコンテンツ(例えばストリーミングビデオ)内に含めるために、広告コンテンツをストリーミングコンテンツ配信システム110に提供するエンティティによって所有または運営される任意のコンピューティング装置を含むことができる。広告には、ストリーミングコンテンツ配信システム110によって提供される他のコンテンツタイプ内に挿入される写真、テキスト、オーディオ、ビデオ、または任意の他のコンテンツが含まれ得る。例示的に、広告は、広告システム130によって広告コンテンツデータストア134内に格納され得、この広告コンテンツデータストア134は、ハードドライブ(HDD)、ソリッドステートドライブ(SDD)、ネットワーク接続ストレージ(NAS)、テープドライブ、またはこれらの任意の組み合わせなどの、任意の永続的または実質的に永続的なデータ記憶装置に相当したものであってもよい。ある場合に、広告システム130は、ストリーミングコンテンツ配信システム110によって提供されるストリーミングコンテンツ内に含まれるべき特定の広告を(例えば、クライアントコンピューティング装置102の属性に基づいて)選択するように構成されてもよい。そのために、広告システム130は、クライアントコンピューティング装置102にストリーミングされるコンテンツに関する情報(例えば、クライアントコンピューティング装置102自体の属性を含む)を受信し、ストリーミングコンテンツ内に含めるべき広告の選択を返すように構成された広告選択サービス132を含むことができる。一実施形態では、ストリーミングコンテンツ配信システム110および広告選択サービス132は、INTERACTIVE ADVERTISING BUREAU(商標)(「IAB」)によって提供される動画広告掲出テンプレート(VAST)仕様などの標準プロトコルまたは仕様の使用によって通信することができる。この標準プロトコルまたは仕様は、ストリーミングコンテンツサービスがストリーミングコンテンツに関する情報を送信し、どの広告を再生すべきか、どのように広告を再生すべきかに関する情報、および広告のための通知情報を広告システム130から受信することを可能にする(例えば、広告の様々な部分として要求を送信すべきURIが出力される)。広告選択サービス132を含む広告システム130の動作は、当技術分野において一般的に知られているので、本明細書では詳細には説明しない。例示的な実施形態は、コンテンツストリームに含めるために広告を選択する別個の広告システム130に関して記載されているが、ストリーミングコンテンツ配信システム110は、追加的にまたは代替的に(例えば、広告選択サービス132をストリーミングコンテンツ配信システム110に統合することによって、一連の規則に基づいて広告を選択することによって、静的な広告を提供することによって、非広告コンテンツを保護されたコンテンツとして統合することによってなど)広告システム130と対話することなしに動作し得る。
【0019】
ストリーミングコンテンツ配信システム110は、クライアントコンピューティング装置102が、コンテンツプロバイダ104および広告システム130によってストリーミングコンテンツ配信システム110に提供されるストリーミングコンテンツにアクセスすることを可能にする構成となっている様々なコンポーネントおよび装置を含み得る。具体的に、ストリーミングコンテンツ配信システム110は、ストリーミングコンテンツをホストとして処理するように構成された多数のPOP112を含むことができ、あるいはストリーミングコンテンツ配信システム110、コンテンツプロバイダ104、および/または広告システム130によってホストとして処理されるストリーミングコンテンツのキャッシングポイントとして機能するように構成される。各POP112は、コンテンツをクライアントコンピューティング装置102に提供するように構成された様々なコンピューティング装置を含むことができる。そのために、
図1には示していないが、各POP112は、ストリーミングコンテンツの検索およびクライアントコンピューティング装置への配信を容易にするように連携して動作する幾つものプロセッサ、データストア、またはネットワーキングコンポーネントを含み得るものである。POP112は、ストリーミングコンテンツ配信システム110の内部ネットワークを介して、そのシステム110の他のコンポーネントと通信することができ、この内部ネットワークには、任意の有線ネットワーク、無線ネットワーク、またはそれらの組み合わせが含まれ得、この内部ネットワークは、パーソナルエリアネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク、ケーブルネットワーク、衛星ネットワーク、携帯電話ネットワーク、またはそれらの組み合わせであってもよい。場合によっては、内部ネットワークは、ネットワーク106によって少なくとも部分的に(例えば、バーチャルプライベートネットワーク、すなわち「VPN」として)実装されてもよい。例示的に、各POP112は、ローカルキャッシュデータストア内のコンテンツ部分の限られた選択(例えば、ごく最近要求されたn個のコンテンツ部分)を保持するように機能することができ、その結果、これらのコンテンツ部分をクライアントコンピューティング装置102に迅速に伝送することができる。ローカルキャッシュデータストアが要求されたコンテンツ部分を含まない場合に、POP112が、ストリーミングコンテンツ配信システム110内のコンテンツサービス120のコンテンツデータストア124、広告コンテンツデータストア134、またはコンテンツプロバイダ104のシステム内のデータストア(
図1には示されていない)などのリモートデータストアからコンテンツ部分を検索し、このコンテンツ部分を要求中のクライアントコンピューティング装置102に返すように構成することができる。
【0020】
ストリーミングコンテンツ配信システム110は、ストリーミングコンテンツに対するクライアント要求に応答し、要求中のクライアントコンピューティング装置102に提供されるべき多数のコンテンツ部分を識別するマニフェストを生成するように構成されたマニフェスト生成サービス114をさらに含むことができる。以下により詳細に説明するように、マニフェスト生成サービス114は、ストリーミングコンテンツ配信システム110の他のコンポーネントと同様に広告システム130などの外部コンポーネントとも情報を交換して、マニフェスト内で識別される特定のコンテンツ部分を選択することができる。これらのコンテンツ部分は、例えば、各コンテンツ部分が整合パラメータ、または別の方法で置き換え可能なパラメータ(例えば、共通のビットレート、フレームレート、または解像度)に従って符号化されるように選択され得る。場合によっては、マニフェスト生成サービス114はさらに、監視報告サービス118およびPOP112などのストリーミングコンテンツ配信システム110の他のコンポーネントに情報を伝達することができ、その情報によって、これらのコンポーネントが、クライアントコンピューティング装置から受信したコンテンツと相互に作用し合い、またこのコンテンツを処理できるようになる。例えば、(上記参照により援用される)‘423出願に記載されているように、マニフェスト生成サービス114が隠された識別子を含むマニフェストを生成する場合、マニフェスト生成サービス114は、隠された識別子の情報を監視報告サービス118およびPOP112に送信して、それらのコンポーネントが各閲覧部分の内在する(隠されていない)識別子を決定することを可能にし得る。本開示の実施形態によれば、マニフェスト生成サービス114は、場合によっては、マニフェスト内で識別された少なくとも1つのコンテンツ部分がストリーミングコンテンツ配信システム110においてまだ利用可能ではないように、マニフェストを楽観的に生成することができる。したがって、マニフェスト生成サービス114は、コンテンツサービス120がまだ利用可能ではない任意のコンテンツ部分を生成し始めることができるように、このような楽観的なマニフェスト生成をコンテンツサービス120に通知することができる。
【0021】
コンテンツサービス120は、マニフェストファイル内で識別されているがストリーミングコンテンツ配信システム110上でまだ利用可能ではないコンテンツ部分など、コンテンツストリームで使用するためのコンテンツ部分を生成するように構成され得る。例示的には、コンテンツサービス120は、マニフェスト生成サービス114からマニフェスト情報を受信し、コンテンツデータストア124内でまだ利用可能ではないマニフェスト内で参照される任意のコンテンツ部分を識別し、そのようなコンテンツ部分を生成するコンテンツ管理エンジン122を含むことができる。一実施形態では、コンテンツ管理エンジン122自体が、ソースコンテンツ(例えば、コンテンツストリームに含まれるコンテンツアイテムの非圧縮バージョンまたは高品質バージョン)向けの所望の符号化パラメータに従って、ソースコンテンツを検索し、このソースコンテンツからコンテンツ部分を生成することによって、そのようなコンテンツ部分を符号化してもよい。別の実施形態では、コンテンツ管理エンジン122が別途の符号化システムとやり取りして、所望の符号化パラメータに従って、ソースコンテンツを符号化するように、このシステムに指示してもよい。別途の符号化システムの一例は、「SYNCHRONIZATION OF MULTIPLE ENCODERS FOR STREAMING CONTENT」と題され、2016年6月27日に出願された米国特許出願第15/194,347号(「‘347出願」)に記載され、この米国特許出願の全記載内容は参照により本明細書に援用される。コンテンツ部分が符号化された後、それらの部分を、マニフェストを受信したクライアントコンピューティング装置102、POP112、またはストリーミングコンテンツ配信システム110の他のコンポーネントが利用できるようにするために、それらの部分がコンテンツデータストア124に格納され得る。コンテンツデータストア124は、生成されたコンテンツ部分および(例えば、コンテンツプロバイダ104、広告システム130などによって提供される)他のコンテンツを格納するために利用され得るものであり、ハードドライブ(HDD)、ソリッドステートドライブ(SDD)、ネットワーク接続ストレージ(NAS)、テープドライブ、またはこれらの任意の組み合わせなどの、任意の永続的または実質的に永続的なデータ記憶装置に相当するものであってもよい。
【0022】
コンテンツサービス120は、POP112またはクライアントコンピューティング装置102から受信され得るコンテンツ部分の要求を処理するようにさらに構成されてもよい。実例として、コンテンツ管理エンジン122は、コンテンツ部分に対する要求を受信し、そのコンテンツ部分がコンテンツデータストア124内に含まれるかどうかを判定してもよい。含まれるとすれば、コンテンツ管理エンジン122は、要求されたコンテンツ部分を要求中の装置に返すことができる。含まれないとすれば、コンテンツ管理エンジン122は、フォールバックコンテンツ部分を要求中の装置に返すことができる。以下により詳細に説明するように、フォールバックコンテンツ部分は、コンテンツストリーム内の他のコンテンツ部分と整合しないパラメータに従って符号化されたコンテンツを有するバージョンなど、要求されたコンテンツ部分の異なるバージョンに相当し得るものであり、普通なら利用不可能なコンテンツ部分の要求に伴うはずのエラーを防ぐために提供され得るものである。場合によっては、コンテンツサービス120は、要求されたコンテンツ部分に対する将来の要求が、フォールバックコンテンツ部分の配信によって自動的に満たされないようにする方法で、フォールバックコンテンツ部分を返してもよい。例示的には、コンテンツサービス120は、POP112がフォールバックコンテンツ部分を要求されたコンテンツ部分としてキャッシュさせないようにし、要求されたコンテンツ部分に対する後続の要求もまた、(例えば、POP112のキャッシュから処理されるのではなく)コンテンツサービス120に配信されるようにする。
【0023】
ストリーミングコンテンツ配信システムは、クライアントコンピューティング装置上のコンテンツの出力に関する監視情報を処理するように構成された1つまたは複数のサーバを含む監視報告サービス118をさらに含むことができる。実例として、監視報告サービス118は、何のコンテンツがクライアントコンピューティング装置102上に出力されたかを示す情報をログ記録してもよい。場合によっては、監視報告サービス118は、クライアントコンピューティング装置102上のコンテンツ出力に応答して、通知をさらに送信してもよい。監視報告サービス118による通知の送信に関するさらなる詳細は、「OUTPUT TRACKING FOR PROTECTED CONTENT−STREAM PORTIONS」と題され、2016年9月30日に本願と同時に出願された米国特許出願第15/282,929号に記載され、この米国特許出願の全記載内容は参照により本明細書に援用される。
【0024】
ストリーミングコンテンツ配信システム110は、
図1に示すよりも少ないコンポーネントかそれとも多いコンポーネントを有し得ることが当業者によって理解されるであろう。加えて、ストリーミングコンテンツ配信システム110は、様々なウェブサービスおよび/またはピアツーピアネットワーク構成を含むこともあり得る。したがって、
図1のストリーミングコンテンツ配信システム110の描写は例示として解釈されるべきである。例えば、いくつかの実施形態では、マニフェスト生成サービス114またはコンテンツサービス120などのストリーミングコンテンツ配信システム110のコンポーネントは、ホスト型コンピューティング環境に実装される1つまたは複数のバーチャルマシンによって実行されてもよい。ホスト型コンピューティング環境は、コンピューティング装置、ネットワーキング装置、および/またはストレージ装置を含むことができる1つまたは複数の迅速に提供されて解放されるコンピューティングリソースを含むことができる。ホスト型コンピューティング環境は、クラウドコンピューティング環境と呼ばれることもある。
【0025】
図2は、本明細書に記載されるコンテンツ管理エンジン122を実装することができるサーバ200のアーキテクチャの一実施形態を示す。
図2に示すサーバ200の全体的なアーキテクチャは、本開示の態様を実施するのに使用することができるコンピュータハードウェアコンポーネントおよびコンピュータソフトウェアコンポーネントの構成を含む。図に示すように、サーバ200は、処理装置204、ネットワークインタフェース206、コンピュータ可読媒体ドライブ207、入出力装置インタフェース208、ディスプレイ202、および入力装置224を含み、これらはすべて通信バスを介して互いに通信することができる。ネットワークインタフェース206は、
図1のネットワーク106などの1つまたは複数のネットワークまたはコンピューティングシステムへの接続性を提供することができる。したがって、処理ユニット204は、ネットワークを介して他のコンピューティングシステムまたはサービスから情報および命令を受信することができる。処理ユニット204はまた、メモリ210との間で通信し、さらに入出力装置インタフェース208を介してオプションのディスプレイ202向けに出力情報を供給することができる。入出力装置インタフェース220は、キーボード、マウス、デジタルペンなどのオプションの入力装置224から入力を受け付けることもできる。いくつかの実施形態では、サーバ200は、
図2に示すものよりも多い(または少ない)コンポーネントを含み得る。例えば、サーバ200のいくつかの実施形態では、1つまたは複数の代替の通信チャネルを通じて(例えば、ネットワークインタフェース206を介して)入出力機能を提供しながらも、ディスプレイ202および入力装置224を省略してもよい。
【0026】
メモリ210は、1つまたは複数の実施形態を実施するために処理装置204が実行するコンピュータプログラム命令を含むことができる。メモリ210には、通常、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、および/または他の永続的または非一時的なメモリが含まれる。メモリ210は、サーバ200の全体的な管理および動作において処理ユニット204によって使用されるコンピュータプログラム命令を提供するオペレーティングシステム214を格納することができる。メモリ210は、本開示の態様を実施するためのコンピュータプログラム命令および他の情報をさらに含むことができる。例えば一実施形態ではメモリ210は、例えばコンピューティング装置にインストールされたウェブブラウザなどのナビゲーションインタフェースを介して、コンピューティング装置上に表示するためのユーザインタフェース(および/またはその命令)を生成するユーザインタフェースソフトウェア212を含む。さらに、メモリ210は、データストア220などの1つまたは複数の補助データストアを含むか、またはこれらと通信することができる。この補助データストアは、ハードドライブ(HDD)、ソリッドステートドライブ(SDD)、ネットワーク接続ストレージ(NAS)、テープドライブ、またはこれらの任意の組み合わせなど、任意の永続的または実質的に永続的なデータストレージに相当し得る。
【0027】
ユーザインタフェースモジュール212に加えて、メモリ210は、処理ユニット204によって実行され得るコンテンツ管理ソフトウェア216を含んでもよい。一実施形態では、コンテンツ管理ソフトウェア216は、例えば、ストリーミングコンテンツ配信システムでまだ利用できないコンテンツ部分を識別すること、所望のパラメータに従ってそれらのコンテンツ部分を生成すること、および(例えば、利用可能な場合にはコンテンツ部分を提供することによって、または要求されたコンテンツ部分が利用可能でない場合には、フォールバックコンテンツ部分を提供することによって)コンテンツ部分に対する要求を管理することといった、本開示の様々な態様を実施する。コンテンツ管理ソフトウェア216は、サーバ200の一部として
図2に示されるが、他の実施形態では、このソフトウェアの全部または一部が、マニフェスト生成サービス114など、ストリーミングコンテンツ配信システム110内の代替のコンピューティング装置によって実装されてもよい。
【0028】
図3Aおよび
図3Bは、クライアントコンピューティング装置102に配信するためのマニフェストを生成して、装置102が、ストリーミングコンテンツ配信システム110からコンテンツストリームを出力できるようにするための例示的な一連の相互作用を示し、このコンテンツストリームが、一揃いの整合パラメータに従って符号化された一連の部分を含む。2つの図として示しているが、
図3Aおよび
図3Bのうちの相互作用には、順番に番号が付されており、併せて行ってもよい。
【0029】
相互作用は、
図3Aの(1)から開始され、クライアントコンピューティング装置102は、ストリーミングコンテンツ配信システム110のマニフェスト生成サービス114からコンテンツを要求する。この要求は、ストリーミングコンテンツを閲覧するためのアプリケーション、ウェブブラウザアプリケーションなどを起動したり、またはこれらのアプリケーションとインタラクトしたりすることによってなど、クライアントがクライアントコンピューティング装置102を使用することによって生成され得る。この要求は、テレビ番組、映画、ビデオ、オーディオ番組などの、クライアントによって望まれる主要コンテンツを少なくとも指定することができる。場合によっては、この要求は、クライアントコンピューティング装置102の構成、装置102の位置、装置102のアカウント、またはストリーミングコンテンツ配信システム110上のクライアントなど、クライアントコンピューティング装置102、またはクライアントコンピューティング装置102を利用するクライアントに関する情報をさらに指定することができる。後述するように、この情報は、ストリーミングコンテンツ配信システム110および/または広告システム130によって利用されて、クライアントコンピューティング装置102に提供される、法的警告、クレジット、献辞、または広告などの付加的コンテンツを決定することができ、これらのいずれかを、ストリーミングコンテンツ配信システム110は、クライアントコンピューティング装置102からの要求に応答して、付加的コンテンツがコンテンツストリーム内の他の部分(例えば、主要コンテンツの一部)と整合する符号化を用いた部分において提供されるように、オンザフライで符号化することができる。
【0030】
上述の通り、クライアントコンピューティング装置102によって要求される主要コンテンツに加えて、ストリーミングコンテンツには、法的警告、クレジット、献辞、または広告などの1つまたは複数の他のタイプのコンテンツを含めることもできる。このコンテンツは、本明細書では一般に「付加的コンテンツ」として記載される。場合によっては、マニフェスト生成サービス114自体が、何の付加的コンテンツをコンテンツストリーム内に含めるべきかを決定することができる。例えば、マニフェスト生成サービス114は、すべてのコンテンツストリーム内に特定の法的警告を含めることができ、または(例えば、要求された主要コンテンツ、要求の属性、クライアントコンピューティング装置102の属性などの基準に基づいて)どのような付加的コンテンツをストリーム内に提供すべきかを決定する規則一式を維持することができる。他の例では、マニフェスト生成サービス114は、広告システム130などの他のコンポーネントとやり取りして、コンテンツストリーム内にどのような付加的コンテンツを含めるべきかを決定することができる。付加的コンテンツは、マニフェストファイルが生成された時点で決定することができるので、付加的コンテンツは、クライアントコンピューティング装置102またはその装置102のクライアントを特に対象とすることができる。例えば、クライアントに関連する可能性が高い特定の広告をコンテンツストリーム内に含めることができる。
図3Aの説明の目的で、マニフェスト生成サービス114は、付加的コンテンツとしてコンテンツストリーム内に含める少なくとも1つの広告を決定するために、広告システム130Aと関わり合うように構成されているものとする。
【0031】
それに伴って(2)において、マニフェスト生成サービス114は、コンテンツストリーム内に含まれ、したがってクライアントコンピューティング装置102に配信されたマニフェストファイル内で識別される広告の選択についての要求を広告システム130Aに送信する。一実施形態では、この要求はVAST仕様に従ってフォーマットされてもよく、要求された主要コンテンツに関する情報、クライアントコンピューティング装置102の属性、その装置102のクライアントの属性などの、要求に関する任意の情報を含んでもよい。それに応じて、(3)において、広告システム130Aは、付加的コンテンツとしてコンテンツストリーム内に含まれるべき広告の指示を返す。広告システム130Aによる広告の選択のための具体的なやり取りについては、本開示の範囲外であり、したがって詳細には説明しない。
【0032】
上述のように、コンテンツストリームの一部を形成する各コンテンツ部分が、整合パラメータ(例えば、ビットレート、フレームレート、解像度など)に従って符号化されることが全般に望ましい場合がある。したがって、(4)において、マニフェスト生成サービス114は、コンテンツサービス120とやり取りして、選択された広告に対応するコンテンツ部分が、コンテンツストリームの一部を形成する他のコンテンツ部分(例えば、クライアントコンピューティング装置102によって要求された、主要コンテンツに対応するコンテンツ部分)と整合するパラメータに従って符号化されたフォーマットで利用可能かどうかを判断することができる。選択された広告に対応し、整合パラメータに従って符号化されたコンテンツ部分が、コンテンツデータストア124内などのコンテンツサービス120で利用可能な場合、マニフェスト生成サービス114は、コンテンツストリーム用のマニフェスト内の整合するコンテンツ部分の識別子を含み、クライアントコンピューティング装置102がコンテンツストリームを出力することを可能にするために、クライアントコンピューティング装置102にマニフェストを返すことができる。また一方、
図3Aの説明の目的で、選択された広告のための整合コンテンツ部分(例えば、コンテンツストリーム内に含まれるべき他のコンテンツ部分のパラメータと整合するパラメータに従って符号化される広告を構成するコンテンツ部分)が、コンテンツサービス120で利用可能ではないものとする。この結果として(5)において、マニフェスト生成サービス114は、コンテンツサーバ120とやり取りして、コンテンツストリーム内に含めるための1つまたは複数のフォールバックコンテンツ部分を決定する。一実施形態では、フォールバックコンテンツ部分は、コンテンツストリーム内に含まれる他のコンテンツ部分の符号化パラメータと異なるパラメータに従って符号化される選択された広告のバージョンなど、選択された広告の非整合バージョンを構成してもよい。例えば、フォールバックコンテンツ部分は、コンテンツストリーム内の残りのコンテンツ部分が高精細である場合に、選択された広告の低精細バージョンを構成してもよい。別の実施形態では、フォールバックコンテンツ部分は、代替の広告など、選択された広告以外のコンテンツを構成してもよい。例示的には、フォールバックコンテンツ部分は、コンテンツストリーム内にフォールバックコンテンツ部分を含めることがコンテンツストリームの再生を妨害しないように、コンテンツストリーム内の他のコンテンツの符号化パラメータに整合するフォーマットで符号化された代替広告を構成してもよい。例えば、コンテンツストリーム内の主要コンテンツが「高精細」パラメータに従ってフォーマットされている場合、マニフェスト生成サービス114は、選択された広告が「高精細」パラメータに従ってフォーマットされたコンテンツ部分では利用できないが、「高精細」パラメータに従ってフォーマットされた部分では代替広告の利用が可能であると判断することができる。したがって、マニフェスト生成サービスは、フォールバックコンテンツ部分として代替広告に相当する部分を選択することができる。
【0033】
その後、(6)において、マニフェスト生成サービス114は、コンテンツストリームのためのマニフェストを生成し、フォールバックコンテンツ部分、および要求された主要コンテンツに対応する部分を識別する。概して述べれば、マニフェストの生成には、どのコンテンツ(例えば、主要コンテンツおよび任意の付加的コンテンツ)がクライアントコンピューティング装置にストリーミングされるべきかの識別、(例えば、広告システム130Aによって提供される情報、またはマニフェスト生成サービス114に維持されている他の情報によって決定される)そのコンテンツの相対順序、および一連のコンテンツ部分が順に再生されたときに所望のコンテンツストリームを形成するそのコンテンツ部分が含まれ得る。例えば、マニフェスト生成サービス114が、30分のテレビ番組をストリーミングする前に3分の広告をストリーミングすべきであると決定した場合、マニフェスト生成サービス114は、3分の広告を形成するコンテンツ部分と、30分のテレビ番組を形成するコンテンツ部分とを識別するマニフェストを生成することができる。したがって、
図3Aの相互作用を参照すると、マニフェストの生成は、主要コンテンツに相当するコンテンツ部分のセットの識別子、およびフォールバックコンテンツ部分の識別子を含むマニフェストファイルを作成することを含み得る。マニフェストは、コンテンツ部分のフォーマット、各部分の長さ、ストリームの全長などの、ストリームに関するメタデータを含むこともできる。一実施形態では、マニフェストは、APPLE(商標)HTTPライブストリーミングプロトコル、すなわち「HLS」に従ってフォーマットされる。他の実施形態では、マニフェストは、MPEG−DASH(dynamic adaptive streaming over HTTP)(「DASH」)プロトコル、ADOBE(商標)HTTP動的ストリーム(HDS)プロトコル、またはMICROSOFT(商標)スムーズストリーミング(MSS)プロトコルなどの他のストリーミングプロトコルに従ってフォーマットされてもよい。通常、これらのプロトコルに従って生成されるマニフェストには、ネットワークベースのシステム上の実際のファイルに対応する各コンテンツ部分の識別子が含まれる。例えば、マニフェストは、ネットワークベースの記憶装置に格納されているビデオファイル(トランスポートストリーム、または「ts」ファイルなど)に対応する各コンテンツ部分のURIを指定することができる。したがって、これらのビデオファイルをダウンロードして出力することによって、クライアントはマニフェストで識別されたコンテンツをストリーミングすることができる。
【0034】
場合によっては、マニフェスト内に実際の識別子を直接配置することによって、クライアントコンピューティング装置102が、マニフェストを選択的に修正して不要な部分を削除したり、または特定のコンテンツ部分のダウンロードもしくは出力をブロックしたりする機会を提供することができる。したがって、マニフェスト生成サービス114は、(4)において、「隠された」マニフェストを生成することができ、このマニフェストは、‘423出願(上記参照により援用される)に記載されているように、クライアントコンピューティング装置102が異なるタイプのコンテンツを区別することを防止または禁止する隠された識別子によってコンテンツ部分を識別する。
【0035】
図3Aの相互作用は
図3Bに続き、そこでは(7)において、マニフェスト生成サービス114が、コンテンツストリームのためのマニフェストをクライアントコンピューティング装置102に送信する。後述するように、(例えば、
図4Aおよび
図4Bに関して)クライアントコンピューティング装置102は、その後、コンテンツストリームを形成するコンテンツ部分を取り出すためにマニフェストを処理し、そのコンテンツストリームをクライアントに出力することができる。
【0036】
上述のように、マニフェスト内で識別された各コンテンツ部分は、整合パラメータ(例えば、ビットレート、フレームレート、解像度など)に従って符号化されたコンテンツを構成することが全般に望ましい場合がある。
図3Aの相互作用では、コンテンツストリームに含めるために選択された広告に相当するコンテンツ部分は、コンテンツストリームの他の部分と整合するパラメータに従って符号化されたフォーマットで利用できないものとする。マニフェスト生成サービス114は、そのような場合にストリームに含めるためにフォールバックコンテンツ部分を選択するように動作してもよいが、マニフェスト生成サービス114は、コンテンツストリームに対する要求に応答して、整合パラメータに従って選択された広告を符号化するようにコンテンツサービス120に指示することによって、さらなる発生を制限するように構成されてもよい。このようにして、選択された広告を構成するコンテンツ部分は、整合パラメータに従った符号化として、
図3Aに関して説明したコンテンツストリーム内に構成される主要コンテンツと同じパラメータに従ってフォーマットされた同じ主要コンテンツまたは他の主要コンテンツに対する代替クライアントコンピューティング装置102からの要求など、他のコンテンツストリームに含めるために、コンテンツサービス120で利用可能にすることができる。
【0037】
したがって、(8)において、マニフェスト生成サービス114は、コンテンツストリーム内の他のコンテンツ部分のパラメータと整合するパラメータに従って符号化された、コンテンツストリーム内に含めるために前もって選択された広告を構成するコンテンツ部分を生成する要求をコンテンツサービス120に送信する。
【0038】
(9)において、コンテンツサービス120は、広告システム130Aから付加的コンテンツを検索する。例示的に、付加的コンテンツは、コンテンツサービス120が、所与のコンテンツストリームの符号化パラメータと整合するように、様々な異なるパラメータに従って付加的コンテンツを再符号化またはトランスコードすることを可能にするフォーマットで、広告システム130Aによって提供され得る。例えば、付加的コンテンツは、「生の」または非圧縮フォーマットで、または(例えば、「メザニン」ファイルとして)コンテンツストリーム内の他のコンテンツ部分と整合するように選択されたパラメータで再符号化することを可能にするのに十分高い品質である圧縮フォーマットで提供され得る。一実施形態では、コンテンツサーバ120が付加的コンテンツを検索できるようにするために、付加的コンテンツの位置を広告システム130Aによって(例えば、VAST応答内で)識別することができる。
【0039】
その後、(10)において、コンテンツサービス120は、コンテンツストリーム内に含まれる他のコンテンツ部分と整合するパラメータに従って符号化された、選択された広告を構成するコンテンツ部分を生成する。例えば、コンテンツストリームが所与のパラメータのセット(例えば、特定のビットレート、フレームレート、または解像度、特定の符号化パラメータに関連する事前定義されたプロファイルなど)に従って符号化されたコンテンツ部分のセットを含む場合、コンテンツサービス120は、マニフェストファイルにおいて要求されたコンテンツ部分を生成するために、広告システム130から受信した付加的コンテンツを処理することができる。例示的に、コンテンツ管理エンジンは、上記参照により援用される‘347出願に記載されているようなコンテンツエンコーダのプールとやり取りして、コンテンツエンコーダのプールに、適切なパラメータを用いて付加的コンテンツを符号化するように指示することができる。その後、(11)において、コンテンツサービス120は、POP112またはクライアントコンピューティング装置102による後の検索のために、符号化された整合コンテンツ部分をコンテンツデータストア124内に格納することができる。したがって、広告または他の付加的コンテンツが、コンテンツストリーム内に含められるために選択されるが、コンテンツストリームの他の部分と整合するパラメータを有する符号化においてまだ利用可能ではない場合、
図3Aおよび
図3Bの相互作用を介して、コンテンツストリームの再生を可能にするために、フォールバックコンテンツ部分をコンテンツストリームに含めることができる。さらに、付加的コンテンツは、コンテンツストリームの要求に応答して、コンテンツストリームと整合するパラメータを有する一組のコンテンツ部分に再符号化されてもよい。その後、コンテンツ部分のセットによって構成されるように、再符号化された付加的コンテンツは、コンテンツストリームの後続の要求のためにマニフェストファイル内に含まれてもよい。
【0040】
図3Aおよび
図3Bの相互作用が上記で順次に説明されているが、相互作用の一部またはすべてが繰り返し起こり得ること、およびこれらの相互作用が少なくとも部分的に同時に起こり得ることが企図される。例えば、マニフェスト生成サービス114は、マニフェストをPOP112に同時にまたは並行して送信し、マニフェスト内のコンテンツ部分が作成されることを要求することができる。さらなる例として、ストリーミングコンテンツ配信システム110は、ストリーミングコンテンツの所与の項目について複数のマニフェストを配信するように、または経時的に複数の送信として単一のマニフェストを配信するように構成され得る。したがって、新しいマニフェストまたはマニフェストのセクションがクライアントコンピューティング装置102に送信される各時点に先立って、マニフェスト生成サービス114は、新しいマニフェストまたはセクション内で識別されるべきコンテンツ部分の新しいセットを決定することができる。場合によっては、この新しい部分のセットは、ストリーミングコンテンツに関する(例えば、監視サービス118から得られるような)監視された情報に基づいて、変化し得る。例えば、監視情報が、クライアントコンピューティング装置102が部分を出力しなかったこと(または、潜在的に、その部分がクライアントコンピューティング装置102によって一度も要求されなかったこと)を示す場合、マニフェスト生成サービス114は、新しいマニフェストまたはマニフェストセクション内のその部分(または別の付加的コンテンツ部分)を識別することができる。したがって、ユーザが部分(例えば、広告)を見ないようにするためにその部分を「スキップする」場合、新しい広告または保護された部分がマニフェスト内で識別され得る。場合によっては、新しいマニフェストは、クライアントコンピューティング装置102がコンテンツを出力するまで(例えば、主要コンテンツなどの他のコンテンツではない)付加的コンテンツのみを識別することができ、その時点で他のコンテンツを含む追加のマニフェスト(またはマニフェストセクション)を提供することができる。
【0041】
さらに、
図3Aおよび
図3Bの相互作用は、一連のコンテンツ部分に関して説明されているが、本開示の実施形態は、それぞれが異なるバージョンのストリーミングコンテンツを形成する代替の一連のコンテンツ部分の使用を可能にし得る。例えば、第1の一連のコンテンツ部分は、ストリーミングコンテンツを第1の品質レベルで提示し、第2の一連のコンテンツ部分は、第2の品質レベルでなどと提示し得る。様々なコンテンツ部分のシリーズは、クライアントコンピューティング装置102に提供される単一のマニフェストまたは複数のマニフェストで識別され得る。場合によっては、クライアントコンピューティング装置102は、装置102の状態を説明するために(例えば、装置102とストリーミングコンテンツ配信システム110との間の低速通信を説明するために)異なるシリーズのコンテンツ部分の出力間で切り替えてもよい。したがって、コンテンツサービス120は、場合によっては、マニフェストファイル内で識別されたコンテンツ部分を満たすために、様々な異なるパラメータに従って、付加的コンテンツを再符号化するように動作し得る。
【0042】
上述の相互作用は、選択された広告がコンテンツストリーム内の他の部分と整合するフォーマットで利用可能ではない場合におけるマニフェストファイル内のフォールバックコンテンツ部分の識別を例示しているが、代替の実装が可能であり、本明細書において企図される。例えば、マニフェスト生成サービス114は、場合によっては、そのような整合コンテンツ部分がマニフェスト生成時にストリーミングコンテンツ配信システム110で実際に利用可能であるかどうかにかかわらず、マニフェスト内に含めるための整合コンテンツ部分を識別し得る。例えば、マニフェスト生成サービス114は、最初に適切な符号化コンテンツがコンテンツサービス120で利用可能であることを検証することなく、マニフェスト内に、所与のコンテンツ部分について、その部分(例えば、広告の1セクション)内に含まれるべきコンテンツを識別する情報、およびそのコンテンツに対する所望の符号化パラメータを含み得る。場合によっては、識別情報は、所望のコンテンツおよび符号化パラメータを含むファイル識別子または統一参照識別子を含み得る(例えば、http://scds.tld/ad1_segment1_hd.ts)。その後、マニフェスト生成サービス114は、マニフェスト内で識別されているが(例えば、コンテンツデータストア124内の)ストリーミングコンテンツ配信システム110ではまだ利用可能ではない任意のコンテンツ部分を生成するように、コンテンツサービス120に要求を送信することができる。一実施形態では、マニフェスト生成サービス114は、完全なマニフェストをコンテンツサービス120に送信することができ、コンテンツ管理エンジン122は、マニフェスト内で参照されているが、まだコンテンツデータストア124から利用できないコンテンツ部分を識別することができる。別の実施形態では、マニフェスト生成サービス114は、マニフェスト内で参照されているがまだコンテンツデータストア124から利用可能ではない任意のコンテンツ部分を識別することができる。例示的に、マニフェスト内で参照されているがまだコンテンツデータストア124から利用可能ではないコンテンツ部分の識別は、マニフェスト内で参照されている基礎となるコンテンツの特定部分(例えば、特定の広告、警告、免責事項など)が、マニフェスト内で参照される他のコンテンツ部分と一致するパラメータで符号化されたバージョンで、コンテンツデータストア124内で利用可能かどうかを判定することを含み得る。一実施形態では、マニフェスト内で参照されているがまだコンテンツデータストア124から利用可能ではないコンテンツ部分の識別は、マニフェストファイル内で参照されるファイル識別子(例えば、URI)と、コンテンツデータストア124内に含まれる対応する識別子とを比較することを含み得る。その後、コンテンツサービス120は、マニフェストファイル内で識別されたコンテンツ部分の符号化を開始することができ、その結果、コンテンツ部分に対する要求の前に符号化が完了した場合、新たに符号化されたコンテンツ部分をクライアントコンピューティング装置102に送信することができる。コンテンツ部分を要求する前に符号化が完了しない場合、フォールバックコンテンツ部分を要求中のクライアントコンピューティング装置102に送信することができる。
【0043】
クライアント装置102が、コンテンツサービス102でまだ利用できない可能性があるコンテンツ部分を含むマニフェストファイルに基づいてストリーミングコンテンツを視聴することを可能にするための例示的な相互作用について、
図4Aを参照しながら説明する。具体的に、
図4Aは、要求されたコンテンツ部分がコンテンツサービス120において利用可能ではないという決定に応答して、フォールバックコンテンツ部分を提供するための例示的な一連の相互作用を示し、一方、
図4Bは、要求されたコンテンツ部分の要求駆動型の符号化が完了した場合などにおいて、要求されたコンテンツ部分を提供するための例示的な一連の相互作用を示す。
【0044】
図4Aの相互作用は(1)で開始し、ここでクライアントコンピューティング装置102は、マニフェスト内に含まれるコンテンツ部分の識別子を使用して、ストリーミングコンテンツ配信システム110のPOP112からコンテンツ部分を要求する。
図4Aの説明のために、要求されたコンテンツ部分は、マニフェスト内の他のコンテンツ部分(例えば、主要コンテンツ)の符号化パラメータと整合するように符号化されている付加的コンテンツ(例えば、免責事項または広告)に対応するものとする。上述のように、マニフェストファイルは、コンテンツ部分がストリーミングコンテンツ配信サービス110において実際に利用可能であるかどうかにかかわらず、コンテンツ部分を参照することによって生成され得る。したがって、
図4Aおよび
図4Bの相互作用では、要求された整合コンテンツ部分が実際にストリーミングコンテンツ配信サービス110に存在することを仮定しない。
【0045】
一実施形態では、要求は、ストリーミングコンテンツ配信システム110で利用可能であると予想されるコンテンツ部分のファイル名を使用することによって(例えば、要求駆動型の符号化に従って生成される)要求されたコンテンツ部分を識別する。他の実施形態では、上記の参照により援用される‘423出願の実施形態に従って生成された隠された識別子(これは、ストリーミングコンテンツ配信システム110において利用可能であると予想されるコンテンツ部分の実際の識別子に対応する)を使用することによって、この要求は要求されたコンテンツ部分を識別する。この要求は、ストリーミングコンテンツ配信システム110から以前に取得されたマニフェストを処理することに基づいて、クライアントコンピューティング装置102によって(例えば、ウェブブラウザまたは他のアプリケーションによって)自動的に生成され得る。要求を受信すると、POP112は、(2)において、識別子に基づいて要求された部分を決定する。例示的に、隠された識別子が使用されない場合、POP112は、クライアントコンピューティング装置102によって提供される識別子から要求されたコンテンツ部分(例えば、要求された部分の実際の識別子)を直接識別することができる。実際の識別子を暗号化キーで暗号化することによって生成された隠された識別子が使用される場合、POP112はそのキーを利用して隠された識別子を解読し、結果として要求された部分の実際の識別子を決定する。他の変換(例えば、ランダムな割り当て)を使用して生成された隠された識別子が使用される場合、POP112は、隠された識別子の実際の識別子へのマッピングなど、マニフェスト生成システム114によって提供される情報を利用して、どの実際の識別子が要求部分に対応するかを決定する。
【0046】
上記のように、POP112は、クライアントコンピューティング装置102によって要求される少なくとも一部のコンテンツ部分をキャッシュするように機能することができ、その結果、同じまたは異なるクライアントコンピューティング装置102によるコンテンツ部分に対する2回目以降の要求は、キャッシュ内に含まれるコンテンツ部分のコピーを提供することによって処理することができる。したがって、POP112が最近整合コンテンツ部分に対する要求を受信した場合、POP112は整合コンテンツ部分を直接クライアントコンピューティング装置102に返すことができる。しかしながら、(整合コンテンツ部分がマニフェストファイル内で識別された他の部分のパラメータと整合するようにオンザフライで生成される場合のように)どのクライアントコンピューティング装置102も最近、整合コンテンツ部分を要求していない場合、POP112は、(3)において、整合コンテンツ部分がキャッシュされていないと判断することができる。したがって、POP112は、(4)において、コンテンツサービス120から整合コンテンツ部分を要求する。
【0047】
(5)において、コンテンツサービス120は(例えば、コンテンツ管理エンジン122を介して)、要求された整合コンテンツ部分がコンテンツデータストア124内で利用可能であるかどうかを判定する。例示的に、要求された整合コンテンツ部分は、
図3Bの相互作用(10)に関して上に述べたのと同じ整合コンテンツ部分であるとする。さらに、コンテンツサービス120が、その整合コンテンツ部分の生成が完了する前に、その整合コンテンツ部分の要求を取得するものとする。これは例えば、整合コンテンツ部分を生成するのに必要な計算時間に起因して起こり得る。そのような状況下では、1つの選択肢は、「ファイルが見つかりません」というエラーなど、コンテンツサービス120がPOP112にエラーを返すことであり得、それは次にクライアントコンピューティング装置102にエラーを送信し得る。当業者によって理解されるように、そのような選択肢はおそらく望ましくないであろう。したがって、要求された整合コンテンツ部分が利用できない場合にエラーを返すのではなく、コンテンツサービス120は代わりに、(6)において、フォールバックコンテンツ部分を識別してもよい。
図3Aおよび
図3Bに関して上に述べたように、フォールバックコンテンツ部分は、場合によっては、要求されたコンテンツ部分と同じ基礎となるコンテンツを含み得るが、異なるパラメータに従って符号化され得る。例えば、フォールバックコンテンツ部分は、より低い解像度、ビットレート、またはフレームレートで符号化された同じオーディオ、ビデオ、またはテキストコンテンツを含み得る。他の例では、フォールバックコンテンツ部分は、整合コンテンツ部分と同じパラメータに従ってフォーマットされた、異なる広告など、要求されたコンテンツ部分とは異なる基礎となるコンテンツを表すことができる。フォールバック部分の使用は、整合コンテンツ部分の使用と比較した場合、望ましくない可能性があるが、フォールバック部分の使用は、多くの場合に要求駆動型の符号化の実装を可能にし、一方、要求駆動型の符号化を適時に完了することができない場合には、コンテンツストリームの許容可能な配信を提供することができる。さらに、整合コンテンツ部分がコンテンツサービス120によって生成された後に、そのような整合コンテンツ部分に対する後続の要求が発生する可能性が高いため、共通アクセスされるコンテンツストリームに対してフォールバック部分を使用することは比較的まれであり得る。場合によっては、コンテンツプロバイダ(例えば、主要コンテンツまたは付加的コンテンツのプロバイダ)は、コンテンツサービス120がフォールバックコンテンツを選択することができる基準を指定することができる。例えば、広告システム130には、一次選択コンテンツが利用可能でない場合にフォールバックコンテンツを選択するためのVAST応答基準を組み込むことができる。そのような基準には、非限定的な例として、フォールバックコンテンツの符号化パラメータ、フォールバックコンテンツの主題、フォールバックコンテンツに関連するタグ、またはフォールバックコンテンツのプロバイダが含まれ得る。
【0048】
フォールバックコンテンツ部分が、要求されたコンテンツ部分と同じ基礎となるコンテンツを構成するが、異なるパラメータに従って符号化される場合、このようなフォールバックコンテンツ部分は、ストリーミングコンテンツ配信システム110または外部サービスのいずれかにおいて、潜在的なコンテンツ部分ごとのフォールバックコンテンツ部分の記憶が可能であるようにフォーマットされ得る。例えば、フォールバックコンテンツ部分は、各フォールバックコンテンツ部分の記憶がコンテンツデータストア124内に比較的小さい記憶スペースを必要とするように、比較的低いビットレートまたは解像度で符号化されてもよい。さらなる例として、フォールバックコンテンツ部分は、フォールバックコンテンツ部分の基礎をなすコンテンツ(例えば、付加的コンテンツなど)のプロバイダのシステムなど、ストリーミングコンテンツ配信システム110の外部でホストされてもよく、したがって、コンテンツデータストア124の記憶スペースを必要としない。
【0049】
したがって、(7)において、コンテンツサービス120は、フォールバックコンテンツ部分をPOP112に返すことができる。フォールバックコンテンツ部分112がコンテンツデータストア内に格納されている場合、コンテンツサービス120はフォールバックコンテンツ部分を直接返すことができる。フォールバックコンテンツ部分112が、外部データストア、例えばフォールバックコンテンツ部分の基礎となるコンテンツのプロバイダのデータストア(例えば、広告システム130のデータストア)内に格納されている場合、コンテンツサービス120は、POP112にフォールバックコンテンツ部分の位置への参照を返し、POP112は次にその位置からフォールバックコンテンツ部分を検索することができる。
【0050】
いくつかの実施形態では、コンテンツサービス120によって提供される応答は、POP112でのフォールバックコンテンツ部分の不適切なキャッシングを禁止するように形成され得る。例えば、フォールバックコンテンツ部分が、整合コンテンツ部分の要求に応答してPOP112に返されることを想起されたい。したがって、POP112の構成は、POP112にフォールバックコンテンツ部分を整合コンテンツ部分としてキャッシュさせることができる。これにより、実際の整合コンテンツ部分がコンテンツサービス120で利用可能であるかどうかにかかわらず、POP112は、フォールバックコンテンツ部分を用いて整合コンテンツ部分に対する後続の要求を処理することができる。この問題に対処するために、一実施形態では、コンテンツサービス120は、フォールバックコンテンツ部分に対して小さいかゼロかの有効時間、すなわち「TTL」値を確立し、POP112に対して、フォールバックコンテンツ部分は即時にまたは実質的に即時に(例えば、数ミリ秒または数秒以内)無効であるとみなすべきであることを示すことができる。したがって、POP112がTTL値を適切に認識していると仮定すると、フォールバックコンテンツ部分はPOP112にキャッシュされないと予想することができ、整合コンテンツ部分に対するさらなる要求は、
図4Aおよび
図4Bの相互作用の繰り返しをもたらす可能性がある。
【0051】
いくつかの実施形態では、POP112における潜在的なキャッシングの問題は、リダイレクトを利用することによってコンテンツサービス120によってさらに対処され得る。例えば、整合コンテンツ部分に対する要求に応答して直接フォールバックコンテンツ部分を返すのではなく、コンテンツサービス120は、フォールバックコンテンツ部分のURIへのリダイレクトを返すことができる。リダイレクトの使用は、例えば、POP112でのフォールバックコンテンツ部分のキャッシングを可能にするために有利であり得る。例えば、POP112がフォールバックコンテンツ部分に関連するURIへのリダイレクトを検索する場合、POP112は、URIに関連するフォールバックコンテンツ部分のローカルにキャッシュされたバージョンによって要求を満たすことができる。例示的に、リダイレクトは、POP112が、整合コンテンツ部分にアクセスするための後続の要求に対して有効なリダイレクトを考慮しないように、低いかまたはゼロのTTL値に関連付けられ得る。
【0052】
(9)において、POP112は、整合コンテンツ部分に対する要求を満たすために、検索されたフォールバックコンテンツ部分をクライアントコンピューティング装置102に返すことができる。次いで、クライアントコンピューティング装置102は、(10)において、コンテンツストリームの一部としてフォールバックコンテンツ部分を出力し、したがってフォールバックコンテンツ部分内で符号化されたコンテンツを視聴することができる。
【0053】
図4Bを参照すると、
図4Aのものとは別に起こり得る一連の相互作用が示されている。具体的には、
図4Aの相互作用は、要求された整合コンテンツ部分がコンテンツサービス120で利用可能でない場合(例えば、整合コンテンツ部分は依然としてコンテンツサービス120によって生成されているため)に発生するが、
図4Bの相互作用は、要求された整合コンテンツ部分がコンテンツサービス120で利用可能である事例を示す。例えば、マニフェストファイルのクライアントコンピューティング装置への送信とクライアントコンピューティング装置による整合コンテンツ部分の要求との間に発生する時間の量が、コンテンツサービス120が整合コンテンツ部分を生成することを可能にするのに十分であるように、
図4Bの相互作用は、要求された整合コンテンツ部分がマニフェストファイル内で識別された一連のコンテンツ部分の終わり近くに発生する。したがって、
図4Bの(1)から(4)の相互作用は、
図4Aの対応する相互作用と実質的に同様であり、再度説明されない。しかしながら、
図4Bの相互作用とは異なり、(5)において、コンテンツサービス120は、要求された整合コンテンツ部分が(例えば、整合コンテンツ部分を参照するマニフェストファイルの生成に応答して生成された後)コンテンツサービス120で利用可能であると判断する。したがって(6)において、整合コンテンツ部分がPOP112に返される。例示的に、整合コンテンツ部分は、POP112に整合コンテンツ部分をキャッシュするように促すメタデータでフォーマットされ、またはこのメタデータに関連付けられてもよく、その結果、整合コンテンツ部分に対する(例えば、同一または異なるクライアントコンピューティング装置102による)後続の要求は、キャッシュされたコピーからPOP112によって処理されてもよい。例えば、コンテンツサービス120は、整合コンテンツ部分を返す際に、整合コンテンツ部分を比較的長い(例えば、数分または数時間程度の)TTL値に関連付けることができる。
【0054】
その後、(7)において、整合コンテンツ部分をPOP112からクライアントコンピューティング装置102に返すことができる。次いで、クライアントコンピューティング装置102は、(8)において、整合コンテンツ部分を出力することができる。したがって、クライアントコンピューティング装置102は、ストリーミングコンテンツ配信サービス102が、事前に生成された一組の整合コンテンツ部分を維持することを要せずに、整合パラメータに従って符号化された一組のコンテンツ部分によって形成されるコンテンツストリームを出力することができる。もっと正確には、少なくとも一部のコンテンツ部分(例えば、主要コンテンツに付随するようにコンテンツストリームに含まれる付加的コンテンツに対応する)は、コンテンツストリームの要求に応答して動的に符号化され得る。対応するコンテンツ部分に対する要求の前に、このような動的符号化が完了している場合には、それらのコンテンツ部分をクライアントコンピューティング装置に返すことができる。さらに、それらのコンテンツ部分は、コンテンツ部分を含むコンテンツストリームに対する後続の要求が以前に生成されたコンテンツ部分に基づいて満たされることができるように、POP112またはコンテンツサーバ120のいずれかでキャッシュされ得る。また一方、動的に符号化されたコンテンツ部分がクライアントコンピューティング装置102によって要求された時点で利用可能でない場合でも、クライアントコンピューティング装置102はフォールバックコンテンツ部分を利用してコンテンツストリームを出力することができる。
【0055】
図4Aおよび
図4Bの相互作用は、マニフェストファイル内に含まれる識別子に対応する特定のコンテンツ部分に対するクライアントコンピューティング装置102からの要求を参照して説明されるが、本開示のいくつかの実施形態は、任意の所与のコンテンツ部分に直接対応しない識別子を利用することができる。例えば、付加的コンテンツがコンテンツストリームに含まれることになっている場合、マニフェスト生成サービス114は、どの付加的コンテンツが含まれるべきかを必ずしも決定することなく、そのような付加的コンテンツに対する「プレースホルダ」識別子をマニフェストファイルに含めるように構成され得る。例示的に、プレースホルダ識別子は、個々のコンテンツ部分に関連付けられていないコンテンツサービス120のURIを参照することができる(例えば、「http://contentservice.tld/placeholder.ts」)。プレースホルダ識別子に対応する部分に対する要求を受信すると、コンテンツサーバ120は、その要求に応答して返すべきコンテンツ部分を動的に決定することができる。例示的には、コンテンツ部分は、要求中の装置によって出力されているストリームの他の部分と整合するパラメータを用いて、コンテンツサーバ120においてどのコンテンツ部分が利用可能であるかに基づいて決定されてもよい。いくつかの事例では、コンテンツ部分は、VAST仕様を介するなどして、広告システム130との相互作用に基づいて決定され得る。
【0056】
図5を参照して、要求駆動型の符号化を介して作成された部分を含むストリーミングコンテンツを提供するための1つの例示的なルーチン500を説明する。ルーチン500は、例えば、
図1のコンテンツ配信システム110によって(例えば、コンテンツサービス120を利用して)実行することができる。ルーチン500はブロック502から開始し、そこでコンテンツ配信システム110は、クライアントコンピューティング装置102からストリーミングコンテンツの要求を取得する。この要求は、ストリーミングコンテンツを閲覧するためのアプリケーション、ウェブブラウザアプリケーションなどを起動したり、またはこれらのアプリケーションとインタラクトしたりすることによってなど、クライアントがクライアントコンピューティング装置102を使用することによって生成され得る。この要求は、テレビ番組、映画、ビデオ、オーディオ番組などの、クライアントによって望まれる主要コンテンツを少なくとも指定することができる。場合によっては、この要求は、クライアントコンピューティング装置102の構成、装置102の位置、装置102のアカウント、またはストリーミングコンテンツ配信システム110上のクライアントなど、クライアントコンピューティング装置102、またはクライアントコンピューティング装置102を利用するクライアントに関する情報をさらに指定することができる。
【0057】
ブロック504において、ストリーミングコンテンツ配信システム110は、ストリーム内の他のコンテンツ部分(例えば、主要コンテンツを構成する部分)のものと整合する符号化パラメータを用いて、整合コンテンツ部分のセットとしてコンテンツストリームに含まれる付加的コンテンツを選択する。場合によっては、ストリーミングコンテンツ配信システム110は、広告システム130などの第三者外部システムとの相互作用によって付加的コンテンツを決定することができる。さらに、ストリーミングコンテンツ配信システム110は、広告選択アルゴリズムで使用するためにクライアントコンピューティング装置102に関する情報を広告システム130に配信することなどによって、クライアントコンピューティング装置102に関する情報に基づいて付加的コンテンツを決定することができる。
【0058】
ブロック505で、ストリーミングコンテンツ配信システム110は、コンテンツストリームを集合的に表す一連のコンテンツ部分を参照して、コンテンツストリームのマニフェストファイルを生成する。この一連のコンテンツ部分は、主要コンテンツに対応するコンテンツ部分の第1のセットと、付加的コンテンツに相当するコンテンツ部分の第2のセットとを含み得る。コンテンツ部分の第1のセットは、ストリーミングコンテンツ配信サービス110に格納されてもよく、第1のパラメータセット(例えば、ビットレート、フレームレート、解像度など)に従って符号化された主要コンテンツを表してもよい。第2のコンテンツ部分のセットは、整合するパラメータセット(例えば、同じまたは類似のビットレート、フレームレート、解像度など)に従って符号化された付加的コンテンツを構成することができ、その結果、第2のコンテンツセット部分の出力は、クライアントコンピューティング装置上の技術的困難や、クライアントの分裂的な消耗経験をもたらさない。
図5の説明のために、この第2のコンテンツ部分のセットは、「整合コンテンツ部分」と呼ばれる。しかしながら、マニフェストファイル内で参照されているにもかかわらず、これらの整合コンテンツ部分は、ストリーミングコンテンツ配信サービス110上にまだ存在していない可能性があり、その理由は、可能性のあるすべての整合コンテンツ部分の事前生成は、計算的に法外であり得るためである。
【0059】
したがって、ブロック508において、ストリーミングコンテンツ配信サービス110は、整合コンテンツ部分の生成を開始することができる。例示的に、ストリーミングコンテンツ配信サービス110は、整合コンテンツ部分に相当する付加的コンテンツのコピーを取得することができ、このコピーは、コンテンツストリームの他の部分と整合するパラメータを用いて再符号化するのに適している。このコピーは、「生」ファイル、「マスター」コピー、または「メザニン」ファイルなどの非圧縮または高解像度のコピーを含むことができ、ストリーミングコンテンツ配信サービス110に格納することができ、または付加的コンテンツの提供者のシステムなどの別のシステムから取り出すことができる。その後、ストリーミングコンテンツ配信サービス110は、そのコピーをコンテンツストリームに含めるために、フォーマットされた部分のセットに再符号化することができる。これらの部分は、例えば、その部分の数および期間、ならびにその部分を符号化するために使用されるべき符号化パラメータなど、マニフェストファイル内に含まれる情報に基づいて決定され得る。場合によっては、ストリーミングコンテンツ配信サービス110は、整合コンテンツ部分を符号化するために、上で参照によって援用されている‘347出願のコンテンツストリーミングシステムなどの、他のサービスと連携することができる。
【0060】
さらに、ブロック510において(ブロック510では、ブロック508の実行の前またはそれと同時に、したがって整合コンテンツの生成が完了する前に行われてもよい)、マニフェストファイルは、コンテンツストリームの要求に関連付けられているクライアントコンピューティング装置に送信される。
【0061】
ブロック512において、マニフェストファイル内で参照されるように、整合コンテンツ部分に対する要求が受信される。例示的には、クライアントコンピューティング装置によってPOPに送信された要求に基づいて、要求をPOPから受信することができる。クライアントコンピューティング装置からの要求は、ウェブブラウザ、ビデオプレーヤ、オーディオプレーヤなどの再生アプリケーションを介してマニフェストファイルを処理することに基づくことができる。他の実施形態では、要求はクライアントコンピューティング装置から直接受信され得る。
【0062】
ブロック514において、ストリーミングコンテンツ配信サービス110は、要求された整合コンテンツ部分がストリーミングコンテンツ配信サービス110で利用可能であるかどうかを判定する。(例えば、ブロック508で開始した)整合コンテンツ部分の生成が完了した場合、ブロック518は真と評価することができ、ルーチン500はブロック520に進むことができ、ストリーミングコンテンツ配信サービス110は要求された整合コンテンツ部分を要求中の装置(例えば、POPやクライアントコンピューティング装置)に返す。場合によっては、ストリーミングコンテンツ配信サービス110は、要求された整合コンテンツ部分を修正するか、または要求された整合コンテンツ部分をメタデータと関連付けることによって、整合コンテンツ部分のキャッシングを容易にすることができる。例えば、ストリーミングコンテンツ配信サービス110は、整合コンテンツ部分に対して比較的長い(例えば、数分または数時間程度)TTL値を確立し、その結果、POPが整合コンテンツ部分をキャッシュする可能性が高くなり、整合コンテンツ部分に対する後続の要求が、キャッシュされたデータに基づいてPOPによって満たされるようにしてもよい。その後、ルーチン500はブロック526で終了する。
【0063】
整合コンテンツ部分の生成がまだ完了していない場合など、要求された整合コンテンツ部分がストリーミングコンテンツ配信サービス110で利用可能でない場合、ブロック518は偽と評価することができる。したがって、ルーチン500はブロック522に進み、そこでフォールバックコンテンツ部分が識別される。フォールバックコンテンツ部分は、異なるパラメータに従って符号化された、要求されたコンテンツ部分と同じ基礎となるコンテンツ(例えば、同じ基礎となるオーディオ、ビデオ、またはテキスト)を構成することができる。例えば、フォールバックコンテンツ部分は、要求されたマッチングコンテンツ部分の低品質または低解像度のコピーを構成することができる。一実施形態では、ストリーミングコンテンツ配信サービス110は、コンテンツストリームに含まれる可能性がある付加的コンテンツごとに、フォールバックコンテンツ部分のセットを維持することができる。これらのフォールバックコンテンツ部分は、(例えば、コンテンツストリームの符号化パラメータとは無関係に)多くの異なるコンテンツストリームで利用することができ、場合によっては比較的低品質の可能性があるので、ストリーミングコンテンツ配信サービス110での事前生成フォールバックコンテンツ部分の格納は計算的に、法外なことはない。他の実施形態では、フォールバックコンテンツ部分は、基礎となるコンテンツのプロバイダのシステムなどの外部システムに格納することができる。したがって、ストリーミングコンテンツ配信サービス110は、そのような外部システム上のフォールバックコンテンツ部分を識別することができる。
【0064】
ブロック524において、ストリーミングコンテンツ配信サービス110は、フォールバックコンテンツ部分を要求中の装置(例えば、POPまたはクライアントコンピューティング装置)に返す。いくつかの事例では、ストリーミングコンテンツ配信サービス110は、フォールバックコンテンツ部分を直接返すことができる。他の例では、ストリーミングコンテンツ配信サービス110は、フォールバックコンテンツ部分への参照(例えば、HTTPの3xxリダイレクト)を返して、要求中の装置がフォールバックコンテンツ部分を取り出すことを可能にし得る。いずれの場合も、返された情報は、キャッシングまたは将来のその情報への依存を抑制するために、ストリーミングコンテンツ配信サービス110によって修正され得る。例えば、ストリーミングコンテンツ配信サービス110は、整合コンテンツ部分に対する後続の要求が(ブロック524で返された情報のキャッシュされたバージョンに基づいて満たされるのではなく)再びストリーミングコンテンツ配信サービス110に送信されることが予想されるので、返された情報(例えば、フォールバックコンテンツ部分、またはフォールバックコンテンツ部分への参照)をゼロまたは低いTTL値に関連付けることができる。その後、ルーチン500はブロック526で終了する。
【0065】
ルーチン600を順次説明しているが、ルーチン600の様々なブロックの実装は、少なくとも部分的に同時に行われてもよく、ストリーミングコンテンツ配信システム110内の異なるコンポーネントによって達成されてもよい。例えば、ストリーミングコンテンツ配信システム110は、マニフェスト生成サービスを利用してルーチン600の一部(例えば、ブロック502、504、506、および510)を実施し、コンテンツサービスを利用してルーチン600の他のブロック(例えば、ブロック508、512〜524)を実施することができる。ルーチン600の機能の一部または全部を、POP上に(例えば、コンテンツ配信ネットワーク内で)さらに実装することができる。さらに、ルーチン600は、所与のコンテンツストリームを形成する単一の一連のコンテンツ部分に関して例示的に説明されているが、いくつかの実施形態は、それぞれがコンテンツストリームのバージョンを形成し、クライアントコンピューティング装置への出力中に必要に応じて組み合わせることができる、複数の一連のコンテンツ部分を提供することができる。例えば、各一連のコンテンツ部分は、異なる品質レベル(ビットレートや解像度を変えるなど)の異なるバージョンのコンテンツストリームを形成することができ、クライアントコンピューティング装置は、クライアントコンピューティング装置の計算リソース(ネットワーク帯域幅、処理能力、メモリなど)に従って異なるシリーズ間で選択することができる。そのような場合、各シリーズはマニフェストファイルで識別され、ストリーミングコンテンツ配信サービス110ではまだ利用できない可能性があるコンテンツ部分を含むことができる。例えば、マニフェストファイルは、これらのバージョンがストリーミングコンテンツ配信サービス110で利用可能であるかどうかにかかわらず、コンテンツ部分の標準定義バージョン、高解像度バージョン、および超高解像度バージョンを参照することができる。ストリーミングコンテンツ配信サービス110は、次に、マニフェストファイルの生成時にそのようなバージョンを作成し始め、生成後にそれらをクライアントコンピューティング装置に提供することができる。要求されたバージョンがまだ利用可能ではない場合、ストリーミングコンテンツ配信サービス110は、ストリーミングコンテンツ配信サービス110において事前に生成されたデフォルトのフォールバックバージョンを提供することができる。
【0066】
上記の方法およびプロセスのすべては、1つまたは複数のコンピュータまたはプロセッサによって実行されるソフトウェアコードモジュール内で実施され、これによって完全に自動化され得る。コードモジュールは、任意の種類の非一時的コンピュータ可読媒体または他のコンピュータ記憶装置に格納することができる。あるいは、方法のうちの一部または全部は、専用のコンピュータハードウェアで実施されてもよい。
【0067】
特に明記しない限り、とりわけ、「できる(can)」、「できるであろう(could)」、「可能性がある(might)」、または「してよい(may)」等の条件付き言語は、普通ならばいくつかの実施形態がある特定の特徴、要素、および/またはステップを含み、一方で他の実施形態が含まないことを示すために概して使用されるとして文脈内で理解される。したがって、そのような条件的言語は、概して、特徴、要素、および/またはステップが、1つ以上の実施形態に任意の方法で要求されるか、または1つ以上の実施形態が、ユーザ入力もしくはプロンプトを用いて、もしくは用いずに、これらの特徴、要素、および/またはステップが含まれるのか、それとも任意の特定の実施形態で行われるべきであるかを決定するための論理を必ず含むことを含意することは意図していない。
【0068】
特に明記しない限り、句「X、YまたはZのうちの少なくとも1つ」などの選言的な言葉は、そうでなければ項目、用語等がX、YもしくはZまたはそのいずれかの組み合わせ(例えば、X、Yおよび/またはZ)であってよいことを示すために一般的に用いられるとして文脈の中で理解される。ゆえに、係る選言的言語は、特定の実施形態がXの少なくとも1つ、Yの少なくとも1つまたはZの少なくとも1つがそれぞれ存在することを必要とすることを暗示することを一般的に意図しておらず、意味するべきではない。
【0069】
特に明記しない限り、『a』または『an』等の冠詞は、概して、1つ以上の記載された項目を含むと解釈すべきである。したがって、「するように構成された装置」等の語句は、1つ以上の列挙された装置を含むことを目的とする。そのような1つまたは複数の列挙された装置は、記載された列挙を実行するように集合的に構成されることもできる。例えば、「列挙A、BおよびCを実行するように構成されたプロセッサ」は、列挙BおよびCを実行するように構成された第2のプロセッサと連動して機能し、列挙Aを実行するように構成された第1のプロセッサを含む場合がある。
【0070】
本明細書に説明する、および/または添付の図面に図示するフロー図のいずれのルーチンの記述、要素、またはブロックも、ルーチンにおける特定の論理的機能または要素を実装するための1つまたは複数の実行可能な命令を含む、モジュール、セグメント、またはコードの部分を潜在的に表すものとして理解されるべきである。代替の実施態様は、本明細書に説明する実施形態の範囲内に含まれ、その中で要素または機能は、当業者によって理解されるであろうように、関係する機能性に応じて、実質的に同時のまたは逆の順序を含む、示され、説明されるものとは異なる順序で削除または実行され得る。
【0071】
上記の実施形態は、以下の条項を考慮して、一層よく理解することができる。
【0072】
条項1.ストリーミングコンテンツを提供するためのシステムであって、
主要コンテンツに相当する第1のコンテンツ部分のセットを含むデータストアであって、前記第1のコンテンツ部分のセットが、1つまたは複数の第1のパラメータに従って符号化される、前記データストアと、
コンピュータ実行可能命令で構成された1つまたは複数のコンピューティング装置であって、前記コンピュータ実行可能命令が実行されると、
クライアントコンピューティング装置から前記主要コンテンツを含むコンテンツストリームを提供するための要求を取得すること、
付加的コンテンツを前記コンテンツストリームに含めることを決定すること、
前記データストアが、前記1つまたは複数の第1のパラメータに従って符号化された前記付加的コンテンツを構成する第2のコンテンツ部分のセットを含まないものと判断すること、
前記コンテンツストリームに含めるフォールバックコンテンツを選択することであって、前記データストリームが、前記1つまたは複数の第1のパラメータに従って符号化された前記フォールバックコンテンツを構成する第3のコンテンツ部分のセットをさらに含む、前記選択すること、
前記コンテンツストリームのマニフェストを生成することであって、前記マニフェストが、前記第1のコンテンツ部分のセット内のそれぞれのコンテンツ部分の識別子と、前記第3のコンテンツ部分のセット内のそれぞれのコンテンツ部分の識別子とを含む、前記生成すること、
前記マニフェストを前記クライアントコンピューティング装置に送信すること、および
前記1つまたは複数の第1のパラメータに従って、前記付加的コンテンツの符号化を開始して、前記第1のパラメータのセットに従って符号化された前記付加的コンテンツを構成する第2のコンテンツ部分のセットをもたらすこと、
を前記コンピューティング装置に行わせる、前記1つまたは複数のコンピューティング装置と、
を含む、前記システム。
【0073】
条項2.前記主要コンテンツが、オーディオコンテンツ、ビデオコンテンツ、またはテキストコンテンツのうちの少なくとも1つである、条項1に記載のシステム。
【0074】
条項3.前記付加的コンテンツが、免責事項、警告、クレジット、献辞、または広告のうちの少なくとも1つである、条項1に記載のシステム。
【0075】
条項4.前記1つまたは複数のコンピューティング装置が、
前記主要コンテンツを含む第2のコンテンツストリームを提供するための第2の要求を取得すること、
前記第2の要求に応答して、
前記付加的コンテンツを前記第2のコンテンツストリームに含めるべきであると決定すること、
前記データストアが、前記1つまたは複数の第1のパラメータに従って符号化された前記付加的コンテンツを構成する前記第2のコンテンツ部分のセットを含むものと判断すること、
前記第2のコンテンツストリーム用の第2のマニフェストを生成することであって、前記第2のマニフェストが、前記第1のコンテンツ部分のセット内のそれぞれのコンテンツ部分の識別子と、前記第2のコンテンツ部分のセット内のそれぞれのコンテンツ部分の識別子とを含む、前記生成すること、
前記第2のマニフェストを前記クライアントコンピューティング装置に送信すること、
を行わせる前記コンピュータ実行可能命令を用いてさらに構成される、条項1に記載のシステム。
【0076】
条項5.前記1つまたは複数のコンピューティング装置が、
前記第3のコンテンツ部分のセットのコンテンツ部分に対する要求を受信すること、および
前記要求に応じて前記コンテンツ部分を送信すること、
を行わせる前記コンピュータ実行可能命令を用いてさらに構成され、
前記コンテンツ部分が、コンテンツ配信ネットワーク内のクライアントコンピューティング装置またはポイントオブプレゼンス(POP)の少なくとも一方に送信される、条項1に記載のシステム。
【0077】
条項6.前記1つまたは複数のコンピューティング装置が、
前記付加的コンテンツの前記プロバイダに関連するシステムに要求を送信して、前記コンテンツストリーム内の構成のための前記付加的コンテンツを選択すること、および
前記コンテンツストリーム内の前記付加的コンテンツ構成を識別する応答を取得すること、
を行わせる前記コンピュータ実行可能命令を用いてさらに構成される、条項1に記載のシステム。
【0078】
条項7.ストリーミングコンテンツ配信システムによって実行されるコンピュータ実行方法であって、
クライアントコンピューティング装置から、コンテンツストリームを提供する要求を取得すること、
前記コンテンツストリームに対する1つまたは複数の符号化パラメータを決定すること、
前記コンテンツストリームに含まれるコンテンツを選択すること、
前記コンテンツが、前記1つまたは複数の符号化パラメータに従って符号化されたフォーマットで利用できないと判定すること、
前記1つまたは複数の符号化パラメータに従って前記コンテンツの符号化を開始すること、
前記コンテンツストリーム内に含めるためのフォールバックコンテンツを選択すること、
前記コンテンツストリーム用のマニフェストを生成することであって、前記マニフェストが、前記フォールバックコンテンツに対応する識別子を含む、前記生成すること、および
前記マニフェストを前記クライアントコンピューティング装置に送信すること、
を含む、前記コンピュータ実行方法。
【0079】
条項8.前記コンテンツストリームに含まれる前記コンテンツを選択することが、
前記コンテンツストリーム内の構成のための前記コンテンツを選択するために、前記コンテンツの前記プロバイダに関連するシステムに要求を送信すること、および
前記コンテンツストリーム内の構成のための前記コンテンツを識別する応答を取得すること、
を含む、条項7に記載のコンピュータ実行方法。
【0080】
条項9.前記応答が、動画広告掲出テンプレート(VAST)の仕様に従ってフォーマットされる、条項8に記載のコンピュータ実行方法。
【0081】
条項10.前記1つまたは複数の符号化パラメータが、前記コンテンツストリームの一部として出力されるべきコンテンツ部分のビットレート、オーディオ正規化値、フレームレート、または解像度のうちの少なくとも1つについての値を含む、条項7に記載のコンピュータ実行方法。
【0082】
条項11.前記マニフェストが、前記コンテンツストリームの一部として出力されるべき主要コンテンツに対応する識別子をさらに含む、条項7に記載のコンピュータ実行方法。
【0083】
条項12.前記コンテンツストリームに対する第2の要求を受信すること、
前記コンテンツが、前記1つまたは複数の符号化パラメータに従って符号化された前記フォーマットで利用可能であると判定すること、
前記コンテンツストリームのための第2のマニフェストを生成することであって、前記第2のマニフェストが、前記1つまたは複数の符号化パラメータに従って符号化された前記コンテンツに対応する識別子を含む、前記生成すること、および
前記マニフェストを前記クライアントコンピューティング装置に送信すること、
を含む、条項7に記載のコンピュータ実行方法。
【0084】
条項13.前記フォールバックコンテンツが、前記コンテンツに対する代替物、または1つもしくは複数の代替の符号化パラメータに従って符号化された前記コンテンツの構成のうちの少なくとも1つに対応する、条項7に記載のコンピュータ実行方法。
【0085】
条項14.コンピュータ実行可能命令を格納した非一時的コンピュータ可読媒体であって、前記コンピュータ実行可能命令がストリーミングコンテンツ配信システムによって実行されると、前記ストリーミングコンテンツ配信システムに
クライアントコンピューティング装置からコンテンツストリームを提供する要求を取得すること、
前記コンテンツストリーム用のマニフェストファイルを生成することであって、前記マニフェストファイルが、前記コンテンツストリームの一部として出力されるコンテンツ部分の識別子を含み、前記コンテンツストリームの一部として出力される少なくとも1つのコンテンツ部分が、前記ストリーミングコンテンツ配信システムにおいてまだ利用可能ではない、前記生成すること、
前記マニフェストファイルを前記クライアントコンピューティング装置に送信すること、
前記マニフェストファイル内で識別される前記少なくとも1つのコンテンツ部分をもたらすようにコンテンツファイルの符号化を開始すること、
前記少なくとも1つのコンテンツ部分に対する要求を受信すること、
前記マニフェストファイル内で識別された前記少なくとも1つのコンテンツ部分が、前記クライアントコンピューティング装置への送信に利用可能ではないと決定すること、
フォールバックコンテンツ部分を選択すること、および
前記フォールバックコンテンツ部分、または前記フォールバックコンテンツ部分を識別する情報を送信すること、
を行わせる、前記非一時的コンピュータ可読媒体。
【0086】
条項15.前記コンテンツストリームが、ハイパーテキストトランスポートプロトコル(HTTP)ライブストリーミングプロトコル(HLS)、MPEG−DASH(DASH)、MICROSOFTスムーズストリーミング(MSS)プロトコル、またはHTTP動的ストリーム(HDS)プロトコルのうちの少なくとも1つに従ってフォーマットされる、条項14に記載の非一時的コンピュータ可読媒体。
【0087】
条項16.前記コンピュータ実行可能命令がさらに、前記ストリーミングコンテンツ配信システムに、前記少なくとも1つのコンテンツ部分に対して1つまたは複数のパラメータを選択させ、前記コンピュータ実行可能命令が、前記ストリーミングコンテンツ配信システムに、前記1つまたは複数のパラメータに従って前記コンテンツファイルの符号化を開始させる、条項14に記載の非一時的コンピュータ可読媒体。
【0088】
条項17.前記少なくとも1つのコンテンツ部分に対する前記1つまたは複数のパラメータが、前記コンテンツストリームの一部として出力されるべき他のコンテンツ部分の1つまたは複数のパラメータに少なくとも部分的に基づいて選択される、条項14に記載の非一時的コンピュータ可読媒体。
【0089】
条項18.前記コンピュータ実行可能命令がさらに、前記ストリーミングコンテンツ配信システムに、前記コンテンツファイル内のコンテンツのデフォルト構成に相当するフォールバックコンテンツ部分を選択させる、条項14に記載の非一時的コンピュータ可読媒体。
【0090】
条項19.前記フォールバックコンテンツ部分を識別する前記情報が、前記フォールバックコンテンツ部分の位置へのリダイレクトである、条項14に記載の非一時的コンピュータ可読媒体。
【0091】
条項20.前記リダイレクトが、前記リダイレクトのキャッシュを妨げるために選択されたTTL値に関連付けられる、条項19に記載の非一時的コンピュータ可読媒体。
【0092】
上記の実施形態に対して多くの変形および修正を加えることができ、それらの要素は他の許容可能な例の中にあるものとして理解されるべきであることを強調しなければならない。そのような修正および変形はすべて、本開示の範囲内に含まれ、以下の特許請求の範囲によって保護されることを意図している。