(57)【要約】  コンテンツ部分の要求駆動型の符号化をコンテンツストリームの一部として再生することを可能にするためのシステムおよび方法が記載される。コンテンツストリームは、複数の種類のコンテンツを構成することができ、それぞれが異なるフォーマットパラメータに従って最初に符号化される。したがって、最初に符号化されたままの複数の種類のコンテンツの再生は、整合性のないフォーマットのコンテンツストリームをもたらすはずである。これに対処するために、ストリーミングコンテンツ配信サービスは、整合したフォーマットのコンテンツ部分が利用可能であるかどうかを判定することによって要求に応答し得、そのような部分が利用可能でない場合、ストリームに含めるためのフォールバックコンテンツ部分を選択する。ストリーミングコンテンツサービスは、要求に応じて、整合したフォーマットのコンテンツ部分の生成をさらに開始することができ、それにより、後続の要求は、整合したフォーマットのコンテンツ部分を使用して処理され得る。
2019535191.tif 000002
【特許請求の範囲】
【請求項１】
ストリーミングコンテンツを提供するためのシステムであって、前記システムは、
主要コンテンツに相当する第１のコンテンツ部分のセットを含むデータストアであって、前記第１のコンテンツ部分のセットが、１つまたは複数の第１のパラメータに従って符号化されるデータストアと、
コンピュータ実行可能命令によって構成された１つまたは複数のコンピューティング装置と、
を含み、
前記コンピュータ実行可能命令が実行されると、前記コンピューティング装置に、
クライアントコンピューティング装置から前記主要コンテンツを含むコンテンツストリームを提供するための要求を取得するステップと、
付加的コンテンツを前記コンテンツストリームに含めることを決定するステップと、
前記データストアが、前記１つまたは複数の第１のパラメータに従って符号化された前記付加的コンテンツを構成する第２のコンテンツ部分のセットを含まないものと判断するステップと、
前記コンテンツストリームに含めるフォールバックコンテンツを選択するステップであって、前記データストアが、前記１つまたは複数の第１のパラメータに従って符号化された前記フォールバックコンテンツを構成する第３のコンテンツ部分のセットをさらに含むステップと、
前記コンテンツストリームのマニフェストを生成するステップであって、前記マニフェストが、前記第１のコンテンツ部分のセット内のそれぞれのコンテンツ部分の識別子と、前記第３のコンテンツ部分のセット内のそれぞれのコンテンツ部分の識別子と、を含むステップと、
前記マニフェストを前記クライアントコンピューティング装置に送信するステップと、
前記１つまたは複数の第１のパラメータに従って、前記付加的コンテンツの符号化を開始して、前記第１のパラメータのセットに従って符号化された前記付加的コンテンツを構成する第２のコンテンツ部分のセットをもたらすステップと、
行わせるシステム。
【請求項２】
前記主要コンテンツは、オーディオコンテンツ、ビデオコンテンツまたはテキストコンテンツのうちの少なくとも１つである、
請求項１に記載のシステム。
【請求項３】
前記付加的コンテンツは、免責事項、警告、クレジット、献辞または広告のうちの少なくとも１つである、
請求項１に記載のシステム。
【請求項４】
前記１つまたは複数のコンピューティング装置は、前記コンピュータ実行可能命令によって、
前記主要コンテンツを含む第２のコンテンツストリームを提供するための第２の要求を取得するステップと、
前記第２の要求に応答して、
前記付加的コンテンツを前記第２のコンテンツストリームに含めるべきであると決定するステップと、
前記データストアが、前記１つまたは複数の第１のパラメータに従って符号化された前記付加的コンテンツを構成する前記第２のコンテンツ部分のセットを含むものと判断するステップと、
前記第２のコンテンツストリーム用の第２のマニフェストを生成するステップであって、前記第２のマニフェストが、前記第１のコンテンツ部分のセット内のそれぞれのコンテンツ部分の識別子と、前記第２のコンテンツ部分のセット内のそれぞれのコンテンツ部分の識別子と、を含むステップと、
前記第２のマニフェストを前記クライアントコンピューティング装置に送信するステップと、
を行うようにさらに構成される、
請求項１に記載のシステム。
【請求項５】
前記１つまたは複数のコンピューティング装置は、前記コンピュータ実行可能命令によって、
前記第３のコンテンツ部分のセットのコンテンツ部分に対する要求を受信するステップと、
前記要求に応じて前記コンテンツ部分を送信するステップと、
を行うようにさらに構成され、
前記コンテンツ部分は、コンテンツ配信ネットワーク内のクライアントコンピューティング装置またはポイントオブプレゼンス（ＰＯＰ）の少なくとも一方に送信される、
請求項１に記載のシステム。
【請求項６】
前記１つまたは複数のコンピューティング装置は、前記コンピュータ実行可能命令によって、
前記付加的コンテンツのプロバイダに関連するシステムに要求を送信して、前記コンテンツストリーム内の構成のための前記付加的コンテンツを選択するステップと、
前記コンテンツストリーム内の前記付加的コンテンツの構成を識別する応答を取得するステップと、
を行うようにさらに構成される、
請求項１に記載のシステム。
【請求項７】
ストリーミングコンテンツ配信システムによって実行されるコンピュータ実行方法であって、前記コンピュータ実行方法は、
クライアントコンピューティング装置から、コンテンツストリームを提供する要求を取得するステップと、
前記コンテンツストリームに対する１つまたは複数の符号化パラメータを決定するステップと、
前記コンテンツストリームに含まれるコンテンツを選択するステップと、
前記コンテンツが、前記１つまたは複数の符号化パラメータに従って符号化されたフォーマットで利用できないと判定するステップと、
前記１つまたは複数の符号化パラメータに従って前記コンテンツの符号化を開始するステップと、
前記コンテンツストリーム内に含めるためのフォールバックコンテンツを選択するステップと、
前記コンテンツストリーム用のマニフェストを生成するステップであって、前記マニフェストが、前記フォールバックコンテンツに対応する識別子を含むステップと、
前記マニフェストを前記クライアントコンピューティング装置に送信するステップと、
を含むコンピュータ実行方法。
【請求項８】
前記コンテンツストリームに含まれる前記コンテンツを選択するステップは、
前記コンテンツストリーム内の構成のための前記コンテンツを選択するために、前記コンテンツのプロバイダに関連するシステムに要求を送信するステップと、
前記コンテンツストリーム内の構成のための前記コンテンツを識別する応答を取得するステップと、
を含む、
請求項７に記載のコンピュータ実行方法。
【請求項９】
前記応答は、動画広告掲出テンプレート（ＶＡＳＴ）の仕様に従ってフォーマットされる、
請求項８に記載のコンピュータ実行方法。
【請求項１０】
前記１つまたは複数の符号化パラメータは、前記コンテンツストリームの一部として出力されるべきコンテンツ部分のビットレート、オーディオ正規化値、フレームレートまたは解像度のうちの少なくとも１つについての値を含む、
請求項７に記載のコンピュータ実行方法。
【請求項１１】
前記マニフェストは、前記コンテンツストリームの一部として出力されるべき主要コンテンツに対応する識別子をさらに含む、
請求項７に記載のコンピュータ実行方法。
【請求項１２】
前記コンテンツストリームに対する第２の要求を受信するステップと、
前記コンテンツが、前記１つまたは複数の符号化パラメータに従って符号化された前記フォーマットで利用可能であると判定するステップと、
前記コンテンツストリームのための第２のマニフェストを生成するステップであって、前記第２のマニフェストが、前記１つまたは複数の符号化パラメータに従って符号化された前記コンテンツに対応する識別子を含むステップと、
前記マニフェストを前記クライアントコンピューティング装置に送信するステップと、
さらにを含む、
請求項７に記載のコンピュータ実行方法。
【請求項１３】
前記フォールバックコンテンツは、前記コンテンツに対する代替物、または１つもしくは複数の代替の符号化パラメータに従って符号化された前記コンテンツの構成のうちの少なくとも１つに対応する、
請求項７に記載のコンピュータ実行方法。
【請求項１４】
１つまたは複数のプロセッサと、
コンピュータ実行可能命令を格納した１つまたは複数のメモリと、
を含むシステムであって、
前記コンピュータ実行可能命令は、前記１つまたは複数のプロセッサによって実行されると、前記１つまたは複数のプロセッサに、
クライアントコンピューティング装置からコンテンツストリームを提供する要求を取得するステップと、
前記コンテンツストリーム用のマニフェストファイルを生成するステップであって、前記マニフェストファイルが、前記コンテンツストリームの一部として出力されるコンテンツ部分の識別子を含み、前記コンテンツストリームの一部として出力される少なくとも１つのコンテンツ部分が、ストリーミングコンテンツ配信システムにおいてまだ利用可能ではないステップと、
前記マニフェストファイルを前記クライアントコンピューティング装置に送信するステップと、
前記マニフェストファイル内で識別される前記少なくとも１つのコンテンツ部分をもたらすようにコンテンツファイルの符号化を開始するステップと、
前記少なくとも１つのコンテンツ部分に対する要求を受信するステップと、
前記マニフェストファイル内で識別された前記少なくとも１つのコンテンツ部分が、前記クライアントコンピューティング装置への送信に利用可能ではないと決定するステップと、
フォールバックコンテンツ部分を選択するステップと、
前記フォールバックコンテンツ部分または前記フォールバックコンテンツ部分を識別する情報を送信するステップと、
を行わせるシステム。
【請求項１５】
前記コンテンツストリームは、ハイパーテキストトランスポートプロトコル（ＨＴＴＰ）ライブストリーミングプロトコル（ＨＬＳ）、ＭＰＥＧ−ＤＡＳＨ（ＤＡＳＨ）、ＭＩＣＲＯＳＯＦＴスムーズストリーミング（ＭＳＳ）プロトコルまたはＨＴＴＰ動的ストリーム（ＨＤＳ）プロトコルのうちの少なくとも１つに従ってフォーマットされる、
請求項１４に記載のシステム。
【発明の詳細な説明】
【背景技術】
【０００１】
一般的に述べれば、コンピューティング装置は、データをやり取りするために、１つの通信網または一続きの通信網を利用する。企業および組織は、業務を支援し、または第三者にサービスを提供するために、多数のコンピューティング装置を相互に接続したコンピュータネットワークを運用する。コンピューティングシステムは、地理的にただ一つの場所に設置することも、または地理的に複数の別個の場所に設置することもできる（例えば、プライベート通信網またはパブリック通信網を介して相互接続する）。具体的に、本明細書で全般に「データセンタ」と称するデータセンタまたはデータ処理センタは、多数の相互接続したコンピューティングシステムを含み、データセンタの利用者にコンピューティングリソースを提供できるようにする。データセンタは、組織に代わって運営されるプライベートデータセンタ、または一般の人々に代わって、もしくは一般の人々のために運営されるパブリックデータセンタであり得る。
【０００２】
サービスプロバイダまたはコンテンツ制作者（企業、アーティスト、メディア配信サービスなど）は、一続きの相互接続したデータセンタを使用して、コンテンツ（ウェブサイト、ウェブコンテンツ、または他のデジタルデータなど）を利用者またはクライアントに配信することができる。このような相互接続したデータセンタは、「コンテンツ配信ネットワーク」（ＣＤＮ）またはストリーミングコンテンツ配信システムと呼ばれることもある。既存のルーティング技術およびアドレス指定技術により、ストリーミングコンテンツ配信システムと関係がある複数のデータセンタが、クライアントコンピューティング装置と類似または同一のコンテンツを提供できるようになる。時には、コンテンツ一式を提供する各データセンタは、ポイントオブプレゼンス（「ＰＯＰ」）と呼ばれることがある。ストリーミングコンテンツ配信システムは、同システムが様々な場所のクライアントからの要求を効率的に処理できるようにするために、ＰＯＰを広域にわたって（または世界中に）保有することができる。
【０００３】
ＣＤＮは、多種多様のコンテンツを配信するために利用することができ、場合によっては、先行のコンテンツ配信システムを複製したり、または置き換えたりするのに役立つことがある。例えば、ＣＤＮは、従来のテレビ放送網またはラジオ放送網と同様の方法で、ネットワークベースのストリーミングビデオコンテンツまたはストリーミングオーディオコンテンツを提供することができる。このコンテンツは、それぞれ「インターネットテレビ」または「インターネットラジオ」と呼ばれることもある。ストリーミングコンテンツは、一般に、専用のコンピューティング装置（例えば、セットトップボックス）、クライアントコンピューティング装置上の専用ビューワ（例えば、ソフトウェアアプリケーション）、または非専用のソフトウェアアプリケーション（例えば、ウェブブラウザ）によって視聴することができる。多くの場合、このようなビューワは、「オンデマンド」でコンテンツを再生するために利用できるなど、テレビやラジオのような従来の配信網で利用可能な機能よりも優れた機能を提供する。この自由度は、コンテンツストリームに含まれるコンテンツに幅広い多様性を引き起こし得る。例えば、各利用者に、利用者の管轄区域に応じて様々な法的警告を与えたり、または利用者の予測される好みに応じて様々な広告を提供したりすることができる。ただし、コンテンツの多様性は、コンテンツストリーム中に整合性のないフォーマットをもたらす場合もある。例として、主要コンテンツが第１のパラメータのセットに従ってフォーマットを合わせられ、広告などの付加的なコンテンツが、第２の、異なったパラメータのセットに従ってフォーマットを合わせられる。この整合性のないフォーマットは、再生機器が、異なるフォーマットのコンテンツを再生しようとするため、技術的な問題と、望ましくないユーザ体験との両方を引き起こす可能性がある。
【図面の簡単な説明】
【０００４】
【図１】クライアントコンピューティング装置、コンテンツプロバイダ、および広告システム、ならびにコンテンツストリームをクライアントコンピューティング装置に提供するように構成されるストリーミングコンテンツ配信システムを含み、コンテンツストリームが、コンテンツストリームの要求の際に、コンテンツストリームに含まれる他のコンテンツ部分と整合するように符号化されたコンテンツ部分を含む、例示的な論理ネットワーク環境を示すブロック図である。
【図２】図１のストリーミングコンテンツ配信システム内のコンテンツ管理エンジンを実装することができるサーバの一実施形態の例示的構成を示すブロック図である。
【図３Ａ】コンテンツストリームを形成するコンテンツ部分を識別するマニフェストファイルを生成することによって、コンテンツストリームのクライアント要求に応答するとともに、クライアント要求に応答して、コンテンツストリームに含まれる他のコンテンツ部分と整合するように、コンテンツ部分の少なくとも１つを符号化する、図１のストリーミングコンテンツ配信システムの例示的な相互作用を示すブロック図である。
【図３Ｂ】コンテンツストリームを形成するコンテンツ部分を識別するマニフェストファイルを生成することによって、コンテンツストリームのクライアント要求に応答するとともに、クライアント要求に応答して、コンテンツストリームに含まれる他のコンテンツ部分と整合するように、コンテンツ部分の少なくとも１つを符号化する、図１のストリーミングコンテンツ配信システムの例示的な相互作用を示すブロック図である。
【図４Ａ】マニフェストファイル中で識別された他のコンテンツ部分と整合するように符号化されるコンテンツ部分か、またはフォールバックコンテンツ部分のいずれか一方を提供することによって、マニフェストファイル中で識別されたコンテンツ部分のクライアント要求に応答する、図１のストリーミングコンテンツ配信システムの例示的な相互作用を示すブロック図である。
【図４Ｂ】マニフェストファイル中で識別された他のコンテンツ部分と整合するように符号化されるコンテンツ部分か、またはフォールバックコンテンツ部分のいずれか一方を提供することによって、マニフェストファイル中で識別されたコンテンツ部分のクライアント要求に応答する、図１のストリーミングコンテンツ配信システムの例示的な相互作用を示すブロック図である。
【図５】コンテンツストリームのクライアント要求に基づいて、コンテンツストリーム内に整合コンテンツ部分を提供する、例示的なルーチンを示すフローチャートである。
【発明を実施するための形態】
【０００５】
総体的に述べれば、本開示は、通信網を通じてコンテンツストリームを提供することに関し、コンテンツストリームの少なくとも一部が、コンテンツストリーム自体の要求に応答して符号化される。さらに具体的に、本開示は、コンテンツストリーム内のコンテンツ部分の動的符号化を可能にし、コンテンツストリーム内の他の部分のパラメータまたは態様を整合させ、整合性のないコンテンツストリームの再生に伴う技術的な問題を低減し、コンテンツストリーム内の整合性のないフォーマットが原因でエンドユーザの体験を中断させないようにする。例示的に、本開示の態様は、コンテンツストリーム内のコンテンツ部分間で整合性のあるフォーマットを維持しながら、コンテンツストリームへの様々なコンテンツタイプのオンザフライ挿入を可能にすることができる。当フォーマットには、例えばビデオコンテンツの解像度、ビットレート、およびフレームレートが含まれ得る。別の例として、フォーマットには、オーディオコンテンツのビットレート、フレームレート、または正規化値が含まれ得る。一例として、本開示では、コンテンツストリーム内に整合性のあるフォーマットを維持する形で、免責事項、法的警告、または広告などの付加的コンテンツ部分をコンテンツストリーム内に含めることができるようになり、コンテンツストリームの要求前に付加的コンテンツ部分を事前符号化状態に維持する必要はない。したがって、本開示の実施形態では、コンテンツストリームの要求に応答するなどして、オンザフライで決定されるように、付加的コンテンツ部分をストリームに含めることが可能となり、その一方で、これらの付加的コンテンツ部分をコンテンツストリームのフォーマットに整合させることをも可能にして、より良好なユーザ体験をもたらすとともに、フォーマットの不整合のために発生する可能性のある技術的問題を軽減する。加えて、本開示の実施形態では、「整合」コンテンツ部分（例えば、コンテンツストリーム内の他の部分のフォーマットと整合するフォーマットを有するコンテンツ部分）が利用可能ではない場合に、デフォルトコンテンツ部分などのフォールバック部分の使用を可能にすることができる。
【０００６】
本明細書に記載されるように、コンテンツストリームは、通常、クライアントが第２の部分をダウンロードしながら第１の部分を観始めることができるように、別々に伝送されて視聴され得る部分に分割されたコンテンツ（「セグメント」または「チャンク」と呼ばれることもある）を指す。コンテンツストリームの種々の部分は、多くの場合、１つまたは複数のマニフェスト内で識別される。このマニフェストは、ストリーミングコンテンツに関するメタデータと、コンテンツ内部分のリストとを提供する。各部分は、リソース識別子（ユニフォームリソースインジケータ、または「ＵＲＩ」など）またはファイル名に基づいてマニフェスト内で識別することができ、クライアントコンピューティング装置は、この識別子またはファイル名を使用して、その部分を取得して出力することができる。多くの場合、複数タイプのコンテンツが単一のマニフェスト内で識別される。例えば、マニフェストは、出力されるべき法的警告、主要コンテンツの第１の部分、広告、主要コンテンツの第２の部分などを識別し得るものである。このような部分の各々は別個のファイルに相当することができ、各部分は潜在的に独立したパラメータに従って符号化されて、異なったフォーマットの部分をもたらす。例示的には、法的警告は、第１のビットレート、解像度、およびフレームレートで符号化され得、主要コンテンツは、第２のビットレート、解像度、およびフレームレートで符号化され得、広告は、第３のビットレート、解像度、およびフレームレートで符号化され得るなどである。クライアントコンピューティング装置は、多くの場合、異なるパラメータに従って符号化された部分を出力し得るが、このことは分裂的なユーザ体験を招く可能性がある。場合によっては、このことはまた、出力装置（例えば、モニタ）の構成が、様々な符号化パラメータを簡単にするように変更されたときに、遅延を引き起こすなど、再生に関する技術的な問題を引き起こす可能性がある。さらに、一部のクライアントコンピューティング装置では、法的な警告および通知、クレジット、献辞、または広告など、望まないコンテンツを選択的にブロックし、また選別するために、部分の符号化パラメータに関する情報を利用することがある。そのようなコンテンツをブロックする装置またはソフトウェアは、「アドブロッカ」と呼ばれることがある。アドブロッカは、多くの場合、望まないコンテンツとして特定のリソースを指定する情報のマニフェストを監視することによって機能する。例えば、アドブロッカは、様々な部分の符号化パラメータを検出し、ある特定のパラメータ（例えば、周囲の部分よりも低いビットレート）を有する部分を、望まないコンテンツを含むものとして識別することによって、望まないコンテンツを識別しようとすることができる。望まないコンテンツを識別した後、広告ブロックは、それらの部分をマニフェストファイルから削除するか、または別の方法でクライアントコンピューティング装置がその部分を表示するのを妨げることができる。これらの変更は、クライアントによる重要なコンテンツの閲覧を妨げ、（例えば、法的警告の有効性を減らすこと、コンテンツプロバイダの広告収入を減らすことなどによって）コンテンツプロバイダに好ましからざる影響を及ぼす恐れがある。
【０００７】
本開示の実施形態では、「整合」コンテンツ部分を含むコンテンツストリームの作成を可能にすることによって、これらの問題に対処し、コンテンツストリーム内の部分は、それらの部分が異なるタイプのコンテンツ（例えば、主要コンテンツおよび付加的コンテンツ）に相当する場合でも、共通のフォーマットパラメータを共有するようにする。説明し易くするために、コンテンツストリームが、主要コンテンツとしてのテレビ番組、および付加的コンテンツとしての広告に相当する部分を含む例を記載する。しかしながら、主要コンテンツは、要求される任意のストリーミングコンテンツ（例えば、オーディオ、ビデオ、またはテキストコンテンツ、ならびにそれらの組み合わせ）を含むことができ、付加的コンテンツは、主要コンテンツに追加されてコンテンツストリームを形成する任意のコンテンツを含むことができる。コンテンツストリームがテレビコンテンツおよび広告コンテンツの両方（例えば、ストリーム内のそれぞれのコンテンツ部分によって表される両方）を含む場合、テレビコンテンツおよび広告コンテンツ用の各種の符号化パラメータは、エンドユーザ体験と、コンテンツストリームを出力しようとするクライアントコンピューティング装置の動作との一方または両方を中断させる可能性がある。この問題に対処するための１つの可能な解決策は、推定されるすべてのテレビコンテンツのあり得るべきすべてのフォーマットに整合するバージョンを用いて、可能なすべての広告コンテンツのそれぞれの事前符号化バージョンを維持することである。しかしながら、可能性のある種類豊富な広告コンテンツ、テレビコンテンツ、および符号化パラメータにより、しばしば、そのようなアプローチは不可能に、または非実用的にされる。例えば、広告コンテンツが１ユーザ当たりの単位または１要求当たりの単位で決定される場合、コンテンツストリーム内に含まれる特定の広告コンテンツは、ユーザごとにまたは時間と共に大きく変化し得る。さらに、テレビコンテンツは、多彩な様々なバージョンと関連し、それぞれが多種のパラメータ（例えば、様々な解像度）で符号化され得る。したがって、可能性のある全広告コンテンツを可能なすべてレビコンテンツのパラメータと整合するように事前符号化することは、そのような事前符号化を行うのに必要な処理能力の面、および事前符号化コンテンツの維持に必要なメモリの面から、計算的に法外なものとなり得る。そのために、本開示の実施形態では、所与のコンテンツストリーム内で広告コンテンツ（または他の付加的コンテンツ）を適宜に符号化するために要求駆動型の符号化を利用するストリーミングコンテンツ配信サービスを提供する。例えば、クライアントが所望のテレビコンテンツを含むコンテンツストリームを要求する場合、ストリーミングコンテンツ配信サービスは、コンテンツストリームに含まれるべき広告コンテンツを決定し、そのクライアント要求時に、テレビコンテンツのパラメータと整合するパラメータで、その広告コンテンツを符号化することができる。したがって、コンテンツストリームは一定のパラメータを持って出力されて、これらのパラメータの変化に起因する潜在的な技術的問題を軽減し、パラメータの変更によって中断される可能性がある全ユーザ体験を改善する。さらに、このような符号化は、クライアント要求に応じて行われるだけでよいので、ストリーミングコンテンツ配信サービスは、「必要に応じて」という原則のみで整合パラメータを用いて広告コンテンツを符号化することが可能となり、ストリーミングコンテンツ配信サービスの計算要件を軽減する。場合によっては、ストリーミングコンテンツ配信サービスは、そのような符号化された広告コンテンツ（または他の付加的コンテンツ）をキャッシュするように構成され、このキャッシュされたコンテンツを再符号化することなしに後続のコンテンツストリームに含めることができるようにする。キャッシュされたコンテンツは、キャッシュを維持するのに必要とされるコンピューティングリソースを削減するために、継続的にまたは周期的に削除され得る。
【０００８】
ストリーミングコンテンツ配信サービスは、場合によっては、コンテンツストリーム用に「楽観的に」作成されたマニフェストを使用することによって、要求駆動型の符号化を実行してもよい。上記の通り、マニフェストは、通常、コンテンツの様々な部分の識別情報を含むことができ、クライアントコンピューティング装置は、マニフェスト内で識別された部分を取り出して出力することによって、マニフェストを処理することができる。概して、マニフェストの生成と、マニフェスト内で識別された部分の、クライアントコンピューティング装置による取り出しとの間には、マニフェスト内で識別された部分を取り出すことができる前に、マニフェストをクライアントコンピューティング装置に伝送させる必要があることを考えると、少なくともある程度の遅延があることが予想できる。場合によっては、クライアントコンピューティング装置は、再生中に必要とされるときのみマニフェスト内で識別された部分（例えば、現在の再生位置に対してコンテンツストリームの次のｎ秒を占める部分）を取り出すように構成され得るので、この遅延はかなりのものとなり得る。したがって、ストリーミングコンテンツ配信サービスは、広告コンテンツを構成する部分などの、ストリーム用の整合コンテンツ部分を識別するマニフェストを、それらの整合コンテンツ部分が作成される前であっても生成することができる。これを本明細書では全般に「楽観的な」マニフェスト作成と称している。このようなマニフェストの生成と同時に、またはその後に、ストリーミングコンテンツ配信サービスは、以下で説明するように、整合コンテンツ部分を生成し始めることができる。整合コンテンツ部分の生成が、この整合コンテンツ部分に対するクライアントコンピューティング装置からの要求の受信前に完了する場合、次いで整合コンテンツ部分が、クライアントコンピューティング装置に送信され、コンテンツストリーム内に含められ得る。このように、コンテンツストリームのクライアント要求に応答して、整合コンテンツ部分をオンザフライで作成することができる。
【０００９】
場合によっては、楽観的なマニフェスト作成によって、まだ利用可能ではないコンテンツ部分についての要求が、クライアントコンピューティング装置からもたらされることがある。例えば、楽観的なマニフェスト作成によって、コンテンツストリームの主要コンテンツと整合するパラメータで符号化された、法的警告などの「プリロールコンテンツ」を識別するマニフェストがもたらされるものと仮定する。さらに、プリロールコンテンツは、マニフェストによって、主要コンテンツより前に再生されるようにスケジュール設定され、整合プリロールコンテンツは、ストリーミングコンテンツ配信システムによって、まだ作成されていないものと仮定する。このような場合に、クライアントコンピューティング装置が、ストリーミングコンテンツ配信システムがプリロールコンテンツの作成を完了する前に、プリロールコンテンツを要求することがある。従来のシステムでは、このような要求はエラー（例えば、ハイパーテキスト転送プロトコル、または「ＨＴＴＰ」でのエラーコード「４０４」）の原因となり得るものであり、このエラーは一般に望ましくない。そのために、本開示の実施形態では、クライアントコンピューティング装置によって要求されたコンテンツ部分がまだ利用可能ではない場合に、フォールバックコンテンツ部分の使用を可能にすることができる。実例として、上記の例では、ストリーミングコンテンツ配信システムは、マニフェストファイルで識別されたプリロールコンテンツのデフォルトバージョンを維持することができ、したがって、整合プリロールコンテンツが利用できない場合には、整合プリロールコンテンツに対するクライアント要求により、デフォルトバージョンのプリロールコンテンツが配信される。フォールバックコンテンツ部分の使用は、コンテンツストリーム内のコンテンツストリーム間に異なったフォーマットパラメータをもたらし得るが、この結果は、クライアントコンピューティング装置でエラーを起こさせるよりも望ましくあり得る。以下にさらに詳細に説明するように、ストリーミングコンテンツ配信システムがフォールバックコンテンツ部分を利用する場合、これらのコンテンツ部分は、ストリーミングコンテンツ配信システムの様々なコンポーネントによるフォールバックコンテンツ部分の適切な処理を可能にするように、フォーマットすることができる。例えば、フォールバックコンテンツ部分は、低い「有効時間」値かゼロ「有効時間」値かを伴って生成され、その結果、普通ならフォールバックコンテンツ部分をキャッシュし得るストリーミングコンテンツ配信システムのコンポーネント（例えば、ポイントオブプレゼンス、すなわち「ＰＯＰ」）が、そうしないように指示され得る。さらなる例として、ストリーミングコンテンツ配信システムは、整合コンテンツ部分の要求に応答してフォールバックコンテンツ部分を直接返すのではなく、（例えば、ＨＴＴＰの３ｘｘリダイレクトコードを介して）フォールバックコンテンツ部分へのリダイレクトを返すことができる。これらの技法は、フォールバックコンテンツ部分を提供することによって、整合コンテンツ部分に対する後続の要求が適切に処理され、自動的に満たされないことを保証することができる。
【００１０】
オーディオやビデオなどの特定型式のストリーミングコンテンツに関して、いくつかの例が提供されるが、本開示の実施形態は、マニフェストによってユーザに識別される個別のセクションに分割された任意のコンテンツの配信を制御するために利用してもよい。さらに、本明細書ではコンテンツ配信システムについての例が提供されるが、本開示の実施形態は、ストリーミングコンテンツをクライアントコンピューティング装置に供給するように動作するコンピューティング装置の任意のネットワークについて実施することができる。したがって、本明細書で提供される例は、実際に例示的なものであって、網羅的ではないことを意図している。
【００１１】
上記の説明に照らして当業者によって理解されるように、本明細書に開示される実施形態は、パラメータの整合セットに従って一貫して符号化されたストリーミングコンテンツをユーザに配信するための、ストリーミングコンテンツ配信システムなどのコンピューティングシステムの能力を大幅に高める。さらに、本明細書で開示される実施形態は、クライアント装置がコンテンツストリームの１つまたは複数の部分の出力を変更することを禁止または防止するように、保護された方法でストリーミングコンテンツを配信するための、ストリーミングコンテンツ配信システムなどのコンピューティングシステムの能力を大幅に高める。したがって、本開示の実施形態では、ストリーミングコンテンツ配信システムまたは他のネットワーク装置に、テレビ放送網およびラジオ放送網などの従来の配信網によって提供される機能性を複製させ、再現させることによって、そのようなコンピューティングシステムの機能の改良がなされる。さらに、本開示の実施形態は、コンピューティングシステムが内包する技術的問題に対処する。つまり具体的には、適切なパラメータでコンテンツを符号化するのに利用可能なコンピューティングリソースが限られること、クライアントコンピューティング装置への伝送後のデータに対するネットワーク伝送システムによる制御が限られること、およびクライアント装置がそのコンテンツを望ましくない方法で修正する可能性が高いことに対処する。これらの技術的問題は、コンテンツ部分に対する要求駆動型の符号化の使用、楽観的なマニフェスト生成、およびまだ利用可能ではないコンテンツ部分に対する要求を処理するためのフォールバック部分の使用を含む、本明細書に記載される様々な技術的解決策によって対処される。したがって、本開示によれば、総体的に見て、既存のネットワークシステムおよびコンピューティングシステムに対する大幅な改良が示される。
【００１２】
ある場合に、本開示の実施形態は、追加の技法を利用して、コンテンツストリームの削除または改ざんを防止することができる。例えば、本開示で説明されるストリーミングコンテンツ配信システムは、ストリーミングコンテンツのマニフェスト内の隠された識別子を利用することができ、これらの識別子は、クライアントコンピューティング装置がこれらの識別子に基づいて異なるタイプのコンテンツを区別することを妨げる。ストリーミングコンテンツにおいて隠された識別子を生成し利用するシステムおよび方法は、２０１６年５月２３日に出願され、「ＰＲＯＴＥＣＴＩＮＧ  ＣＯＮＴＥＮＴ−ＳＴＲＥＡＭ  ＰＯＲＴＩＯＮＳ  ＦＲＯＭ  ＭＯＤＩＦＩＣＡＴＩＯＮ  ＯＲ  ＲＥＭＯＶＡＬ」（「‘４２３出願」）と題された米国特許出願第１５／１６２，４２３号にさらに詳細に記載され、この米国特許出願の全記載内容は参照により本明細書に援用される。
【００１３】
本開示の前述の態様および付随する利点の多くは、添付の図面と併用されるときに、以下を参照することにより、それらについての理解が一層深まるにつれて、ますます容易に分かるようになるであろう。
【００１４】
図１は、ネットワーク１０６を介してストリーミングコンテンツ配信システム１１０と通信する複数のクライアントコンピューティング装置１０２、コンテンツプロバイダ１０４、および広告システム１３０を含む例示的な論理ネットワーク環境１００を示すブロック図である。クライアントコンピューティング装置１０２、コンテンツプロバイダ１０４、および広告システム１３０は、図１内にグループ化されているように示されるが、クライアントコンピューティング装置１０２、コンテンツプロバイダ１０４、および広告システム１３０は、地理的に離れていてもよく、独立して所有または運営がされていてもよい。例えば、クライアントコンピューティング装置１０２は、ストリーミングコンテンツ配信システム１１０にアクセスする世界的、大陸的、または地域的な様々な場所における多数のユーザを表すこともあり得る。さらに、コンテンツプロバイダ１０４は、ウェブサイト、マルチメディア、または他のデジタルのネットワーク配信可能コンテンツなどのコンテンツをクライアントコンピューティング装置１０２に提供するために、ストリーミングコンテンツ配信システム１１０と関連している多数の同系の団体、または個別の団体を表すこともあり得る。さらにまた、広告システム１３０は、コンテンツプロバイダと関連しているコンテンツ内に含まれるべき広告コンテンツを提供する（それと共に、例えば、コンテンツプロバイダに収益をもたらす）多数の同系の団体、または個別の団体を表すこともあり得る。別個のものとして示してあるが、クライアントコンピューティング装置、コンテンツプロバイダ１０４、または広告システム１３０は、共通のエンティティによって、または共通のコンピューティング装置によって動作され得る。そのため、図１内のクライアントコンピューティング装置１０２、コンテンツプロバイダ１０４、および広告システム１３０のグループ分けは、物理的ではなく、論理的なグループ分けを表すことを意図している。同様に、ストリーミングコンテンツ配信システム１１０の各コンポーネントを、地理的に多様な領域内に配置してもよい。例えば、ストリーミングコンテンツ配信システム１１０は、ストリーミングコンテンツ配信システム１１０に広大な地理的プレゼンスを与えるために、世界的、大陸的、または地域的に別個の様々な場所にＰＯＰ１１２を含むことができる。
【００１５】
ネットワーク１０６は、任意の有線ネットワーク、無線ネットワーク、またはそれらの組み合わせとすることができる。さらに、ネットワーク１０６は、パーソナルエリアネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク、ケーブルネットワーク、衛星ネットワーク、携帯電話ネットワーク、またはそれらの組み合わせとすることができる。図１の環境の例では、ネットワーク１０６はインターネットなどのグローバルエリアネットワーク（ＧＡＮ）である。上に述べた他の種類の通信網を介して通信するためのプロトコルおよびコンポーネントは、コンピュータ通信分野の当業者には周知であり、したがって本明細書でさらに詳細に説明する必要はない。クライアントコンピューティング装置１０２、コンテンツプロバイダ１０４、広告システム１３０、およびストリーミングコンテンツ配信システム１１０のそれぞれは、ネットワーク１０６への単一の接続を有するものとして描かれているが、クライアントコンピューティング装置１０２、コンテンツプロバイダ１０４、広告システム１３０、およびストリーミングコンテンツ配信システム１１０の個々のコンポーネントは、全く異なるポイントでネットワーク１０６に接続されてもよい。したがって、通信時間および通信能力は、図１のコンポーネント間で異なり得る。
【００１６】
クライアントコンピューティング装置１０２は、ストリーミングコンテンツ配信システム１１０と通信することができる幾つもの異なるコンピューティング装置を含むことができる。例えば、個々のクライアントコンピューティング装置１０２は、ラップトップコンピュータまたはタブレットコンピュータ、パーソナルコンピュータ、ウェアラブルコンピュータ、サーバ、パーソナルデジタルアシスタント（ＰＤＡ）、ハイブリッドＰＤＡ／携帯電話、携帯電話、電子ブックリーダ、セットトップボックス、カメラ、デジタルメディアプレーヤなどに相当し得る。各クライアントコンピューティング装置１０２は、ストリーミングコンテンツの受信および出力を可能にするハードウェアおよび／またはソフトウェアを含み、（例えば、コンテンツを直接ダウンロードすること、コンテンツを含むウェブページをダウンロードすることなどによって）ストリーミングコンテンツを出力することができる専用再生ハードウェア、専用ソフトウェア（例えば、特別にプログラムされたアプリケーション）、および汎用ソフトウェア（例えば、ウェブブラウザ）を含み得る。場合によっては、クライアントコンピューティング装置１０２は、コンテンツの特定の部分がクライアントコンピューティング装置によって出力されたかどうかなど、コンテンツの出力に関する情報をストリーミングコンテンツ配信システム１１０に報告するようにさらに構成されてもよい。個々のクライアントコンピューティング装置１０２の具体的な構成は異なっていてもよい。例えば、大部分のクライアントコンピューティング装置１０２は、修正することなしでストリーミングコンテンツを取り出して出力することができる。しかし、一部のクライアントコンピューティング装置１０２は、ストリーミングコンテンツを修正して特定の部分（例えば、法的警告、クレジット、献辞、広告など）を削除するように構成されたハードウェアまたはソフトウェアを含む場合がある。
【００１７】
コンテンツプロバイダ１０４は、（１つまたは複数のクライアントコンピューティング装置１０２を含み得る）クライアントコンピューティング装置への後続の伝送のためにストリーミングコンテンツ配信システム１１０にコンテンツを提供するエンティティによって所有または運営される任意のコンピューティング装置を含み得る。例えば、コンテンツプロバイダ１０４は、ストリーミングオーディオ、ビデオ、テキスト、マルチメディア、または双方向サービス（例えば、ビデオゲーム、バーチャルコンテンツもしくは拡張現実コンテンツ、または他の没入型コンテンツ）をホストとして処理するサーバを含んでもよい。図１にネットワーク接続コンピューティング装置として例示的に示されているが、コンテンツプロバイダ１０４は、追加的にまたは代替的に非ネットワーク接続通信チャネルを介して（例えば、データの物理的配信を介して）ストリーミングコンテンツ配信システム１１０にコンテンツを提供し得る。
【００１８】
広告システム１３０は、他のコンテンツ（例えばストリーミングビデオ）内に含めるために、広告コンテンツをストリーミングコンテンツ配信システム１１０に提供するエンティティによって所有または運営される任意のコンピューティング装置を含むことができる。広告には、ストリーミングコンテンツ配信システム１１０によって提供される他のコンテンツタイプ内に挿入される写真、テキスト、オーディオ、ビデオ、または任意の他のコンテンツが含まれ得る。例示的に、広告は、広告システム１３０によって広告コンテンツデータストア１３４内に格納され得、この広告コンテンツデータストア１３４は、ハードドライブ（ＨＤＤ）、ソリッドステートドライブ（ＳＤＤ）、ネットワーク接続ストレージ（ＮＡＳ）、テープドライブ、またはこれらの任意の組み合わせなどの、任意の永続的または実質的に永続的なデータ記憶装置に相当したものであってもよい。ある場合に、広告システム１３０は、ストリーミングコンテンツ配信システム１１０によって提供されるストリーミングコンテンツ内に含まれるべき特定の広告を（例えば、クライアントコンピューティング装置１０２の属性に基づいて）選択するように構成されてもよい。そのために、広告システム１３０は、クライアントコンピューティング装置１０２にストリーミングされるコンテンツに関する情報（例えば、クライアントコンピューティング装置１０２自体の属性を含む）を受信し、ストリーミングコンテンツ内に含めるべき広告の選択を返すように構成された広告選択サービス１３２を含むことができる。一実施形態では、ストリーミングコンテンツ配信システム１１０および広告選択サービス１３２は、ＩＮＴＥＲＡＣＴＩＶＥ  ＡＤＶＥＲＴＩＳＩＮＧ  ＢＵＲＥＡＵ（商標）（「ＩＡＢ」）によって提供される動画広告掲出テンプレート（ＶＡＳＴ）仕様などの標準プロトコルまたは仕様の使用によって通信することができる。この標準プロトコルまたは仕様は、ストリーミングコンテンツサービスがストリーミングコンテンツに関する情報を送信し、どの広告を再生すべきか、どのように広告を再生すべきかに関する情報、および広告のための通知情報を広告システム１３０から受信することを可能にする（例えば、広告の様々な部分として要求を送信すべきＵＲＩが出力される）。広告選択サービス１３２を含む広告システム１３０の動作は、当技術分野において一般的に知られているので、本明細書では詳細には説明しない。例示的な実施形態は、コンテンツストリームに含めるために広告を選択する別個の広告システム１３０に関して記載されているが、ストリーミングコンテンツ配信システム１１０は、追加的にまたは代替的に（例えば、広告選択サービス１３２をストリーミングコンテンツ配信システム１１０に統合することによって、一連の規則に基づいて広告を選択することによって、静的な広告を提供することによって、非広告コンテンツを保護されたコンテンツとして統合することによってなど）広告システム１３０と対話することなしに動作し得る。
【００１９】
ストリーミングコンテンツ配信システム１１０は、クライアントコンピューティング装置１０２が、コンテンツプロバイダ１０４および広告システム１３０によってストリーミングコンテンツ配信システム１１０に提供されるストリーミングコンテンツにアクセスすることを可能にする構成となっている様々なコンポーネントおよび装置を含み得る。具体的に、ストリーミングコンテンツ配信システム１１０は、ストリーミングコンテンツをホストとして処理するように構成された多数のＰＯＰ１１２を含むことができ、あるいはストリーミングコンテンツ配信システム１１０、コンテンツプロバイダ１０４、および／または広告システム１３０によってホストとして処理されるストリーミングコンテンツのキャッシングポイントとして機能するように構成される。各ＰＯＰ１１２は、コンテンツをクライアントコンピューティング装置１０２に提供するように構成された様々なコンピューティング装置を含むことができる。そのために、図１には示していないが、各ＰＯＰ１１２は、ストリーミングコンテンツの検索およびクライアントコンピューティング装置への配信を容易にするように連携して動作する幾つものプロセッサ、データストア、またはネットワーキングコンポーネントを含み得るものである。ＰＯＰ１１２は、ストリーミングコンテンツ配信システム１１０の内部ネットワークを介して、そのシステム１１０の他のコンポーネントと通信することができ、この内部ネットワークには、任意の有線ネットワーク、無線ネットワーク、またはそれらの組み合わせが含まれ得、この内部ネットワークは、パーソナルエリアネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク、ケーブルネットワーク、衛星ネットワーク、携帯電話ネットワーク、またはそれらの組み合わせであってもよい。場合によっては、内部ネットワークは、ネットワーク１０６によって少なくとも部分的に（例えば、バーチャルプライベートネットワーク、すなわち「ＶＰＮ」として）実装されてもよい。例示的に、各ＰＯＰ１１２は、ローカルキャッシュデータストア内のコンテンツ部分の限られた選択（例えば、ごく最近要求されたｎ個のコンテンツ部分）を保持するように機能することができ、その結果、これらのコンテンツ部分をクライアントコンピューティング装置１０２に迅速に伝送することができる。ローカルキャッシュデータストアが要求されたコンテンツ部分を含まない場合に、ＰＯＰ１１２が、ストリーミングコンテンツ配信システム１１０内のコンテンツサービス１２０のコンテンツデータストア１２４、広告コンテンツデータストア１３４、またはコンテンツプロバイダ１０４のシステム内のデータストア（図１には示されていない）などのリモートデータストアからコンテンツ部分を検索し、このコンテンツ部分を要求中のクライアントコンピューティング装置１０２に返すように構成することができる。
【００２０】
ストリーミングコンテンツ配信システム１１０は、ストリーミングコンテンツに対するクライアント要求に応答し、要求中のクライアントコンピューティング装置１０２に提供されるべき多数のコンテンツ部分を識別するマニフェストを生成するように構成されたマニフェスト生成サービス１１４をさらに含むことができる。以下により詳細に説明するように、マニフェスト生成サービス１１４は、ストリーミングコンテンツ配信システム１１０の他のコンポーネントと同様に広告システム１３０などの外部コンポーネントとも情報を交換して、マニフェスト内で識別される特定のコンテンツ部分を選択することができる。これらのコンテンツ部分は、例えば、各コンテンツ部分が整合パラメータ、または別の方法で置き換え可能なパラメータ（例えば、共通のビットレート、フレームレート、または解像度）に従って符号化されるように選択され得る。場合によっては、マニフェスト生成サービス１１４はさらに、監視報告サービス１１８およびＰＯＰ１１２などのストリーミングコンテンツ配信システム１１０の他のコンポーネントに情報を伝達することができ、その情報によって、これらのコンポーネントが、クライアントコンピューティング装置から受信したコンテンツと相互に作用し合い、またこのコンテンツを処理できるようになる。例えば、（上記参照により援用される）‘４２３出願に記載されているように、マニフェスト生成サービス１１４が隠された識別子を含むマニフェストを生成する場合、マニフェスト生成サービス１１４は、隠された識別子の情報を監視報告サービス１１８およびＰＯＰ１１２に送信して、それらのコンポーネントが各閲覧部分の内在する（隠されていない）識別子を決定することを可能にし得る。本開示の実施形態によれば、マニフェスト生成サービス１１４は、場合によっては、マニフェスト内で識別された少なくとも１つのコンテンツ部分がストリーミングコンテンツ配信システム１１０においてまだ利用可能ではないように、マニフェストを楽観的に生成することができる。したがって、マニフェスト生成サービス１１４は、コンテンツサービス１２０がまだ利用可能ではない任意のコンテンツ部分を生成し始めることができるように、このような楽観的なマニフェスト生成をコンテンツサービス１２０に通知することができる。
【００２１】
コンテンツサービス１２０は、マニフェストファイル内で識別されているがストリーミングコンテンツ配信システム１１０上でまだ利用可能ではないコンテンツ部分など、コンテンツストリームで使用するためのコンテンツ部分を生成するように構成され得る。例示的には、コンテンツサービス１２０は、マニフェスト生成サービス１１４からマニフェスト情報を受信し、コンテンツデータストア１２４内でまだ利用可能ではないマニフェスト内で参照される任意のコンテンツ部分を識別し、そのようなコンテンツ部分を生成するコンテンツ管理エンジン１２２を含むことができる。一実施形態では、コンテンツ管理エンジン１２２自体が、ソースコンテンツ（例えば、コンテンツストリームに含まれるコンテンツアイテムの非圧縮バージョンまたは高品質バージョン）向けの所望の符号化パラメータに従って、ソースコンテンツを検索し、このソースコンテンツからコンテンツ部分を生成することによって、そのようなコンテンツ部分を符号化してもよい。別の実施形態では、コンテンツ管理エンジン１２２が別途の符号化システムとやり取りして、所望の符号化パラメータに従って、ソースコンテンツを符号化するように、このシステムに指示してもよい。別途の符号化システムの一例は、「ＳＹＮＣＨＲＯＮＩＺＡＴＩＯＮ  ＯＦ  ＭＵＬＴＩＰＬＥ  ＥＮＣＯＤＥＲＳ  ＦＯＲ  ＳＴＲＥＡＭＩＮＧ  ＣＯＮＴＥＮＴ」と題され、２０１６年６月２７日に出願された米国特許出願第１５／１９４，３４７号（「‘３４７出願」）に記載され、この米国特許出願の全記載内容は参照により本明細書に援用される。コンテンツ部分が符号化された後、それらの部分を、マニフェストを受信したクライアントコンピューティング装置１０２、ＰＯＰ１１２、またはストリーミングコンテンツ配信システム１１０の他のコンポーネントが利用できるようにするために、それらの部分がコンテンツデータストア１２４に格納され得る。コンテンツデータストア１２４は、生成されたコンテンツ部分および（例えば、コンテンツプロバイダ１０４、広告システム１３０などによって提供される）他のコンテンツを格納するために利用され得るものであり、ハードドライブ（ＨＤＤ）、ソリッドステートドライブ（ＳＤＤ）、ネットワーク接続ストレージ（ＮＡＳ）、テープドライブ、またはこれらの任意の組み合わせなどの、任意の永続的または実質的に永続的なデータ記憶装置に相当するものであってもよい。
【００２２】
コンテンツサービス１２０は、ＰＯＰ１１２またはクライアントコンピューティング装置１０２から受信され得るコンテンツ部分の要求を処理するようにさらに構成されてもよい。実例として、コンテンツ管理エンジン１２２は、コンテンツ部分に対する要求を受信し、そのコンテンツ部分がコンテンツデータストア１２４内に含まれるかどうかを判定してもよい。含まれるとすれば、コンテンツ管理エンジン１２２は、要求されたコンテンツ部分を要求中の装置に返すことができる。含まれないとすれば、コンテンツ管理エンジン１２２は、フォールバックコンテンツ部分を要求中の装置に返すことができる。以下により詳細に説明するように、フォールバックコンテンツ部分は、コンテンツストリーム内の他のコンテンツ部分と整合しないパラメータに従って符号化されたコンテンツを有するバージョンなど、要求されたコンテンツ部分の異なるバージョンに相当し得るものであり、普通なら利用不可能なコンテンツ部分の要求に伴うはずのエラーを防ぐために提供され得るものである。場合によっては、コンテンツサービス１２０は、要求されたコンテンツ部分に対する将来の要求が、フォールバックコンテンツ部分の配信によって自動的に満たされないようにする方法で、フォールバックコンテンツ部分を返してもよい。例示的には、コンテンツサービス１２０は、ＰＯＰ１１２がフォールバックコンテンツ部分を要求されたコンテンツ部分としてキャッシュさせないようにし、要求されたコンテンツ部分に対する後続の要求もまた、（例えば、ＰＯＰ１１２のキャッシュから処理されるのではなく）コンテンツサービス１２０に配信されるようにする。
【００２３】
ストリーミングコンテンツ配信システムは、クライアントコンピューティング装置上のコンテンツの出力に関する監視情報を処理するように構成された１つまたは複数のサーバを含む監視報告サービス１１８をさらに含むことができる。実例として、監視報告サービス１１８は、何のコンテンツがクライアントコンピューティング装置１０２上に出力されたかを示す情報をログ記録してもよい。場合によっては、監視報告サービス１１８は、クライアントコンピューティング装置１０２上のコンテンツ出力に応答して、通知をさらに送信してもよい。監視報告サービス１１８による通知の送信に関するさらなる詳細は、「ＯＵＴＰＵＴ  ＴＲＡＣＫＩＮＧ  ＦＯＲ  ＰＲＯＴＥＣＴＥＤ  ＣＯＮＴＥＮＴ−ＳＴＲＥＡＭ  ＰＯＲＴＩＯＮＳ」と題され、２０１６年９月３０日に本願と同時に出願された米国特許出願第１５／２８２，９２９号に記載され、この米国特許出願の全記載内容は参照により本明細書に援用される。
【００２４】
ストリーミングコンテンツ配信システム１１０は、図１に示すよりも少ないコンポーネントかそれとも多いコンポーネントを有し得ることが当業者によって理解されるであろう。加えて、ストリーミングコンテンツ配信システム１１０は、様々なウェブサービスおよび／またはピアツーピアネットワーク構成を含むこともあり得る。したがって、図１のストリーミングコンテンツ配信システム１１０の描写は例示として解釈されるべきである。例えば、いくつかの実施形態では、マニフェスト生成サービス１１４またはコンテンツサービス１２０などのストリーミングコンテンツ配信システム１１０のコンポーネントは、ホスト型コンピューティング環境に実装される１つまたは複数のバーチャルマシンによって実行されてもよい。ホスト型コンピューティング環境は、コンピューティング装置、ネットワーキング装置、および／またはストレージ装置を含むことができる１つまたは複数の迅速に提供されて解放されるコンピューティングリソースを含むことができる。ホスト型コンピューティング環境は、クラウドコンピューティング環境と呼ばれることもある。
【００２５】
図２は、本明細書に記載されるコンテンツ管理エンジン１２２を実装することができるサーバ２００のアーキテクチャの一実施形態を示す。図２に示すサーバ２００の全体的なアーキテクチャは、本開示の態様を実施するのに使用することができるコンピュータハードウェアコンポーネントおよびコンピュータソフトウェアコンポーネントの構成を含む。図に示すように、サーバ２００は、処理装置２０４、ネットワークインタフェース２０６、コンピュータ可読媒体ドライブ２０７、入出力装置インタフェース２０８、ディスプレイ２０２、および入力装置２２４を含み、これらはすべて通信バスを介して互いに通信することができる。ネットワークインタフェース２０６は、図１のネットワーク１０６などの１つまたは複数のネットワークまたはコンピューティングシステムへの接続性を提供することができる。したがって、処理ユニット２０４は、ネットワークを介して他のコンピューティングシステムまたはサービスから情報および命令を受信することができる。処理ユニット２０４はまた、メモリ２１０との間で通信し、さらに入出力装置インタフェース２０８を介してオプションのディスプレイ２０２向けに出力情報を供給することができる。入出力装置インタフェース２２０は、キーボード、マウス、デジタルペンなどのオプションの入力装置２２４から入力を受け付けることもできる。いくつかの実施形態では、サーバ２００は、図２に示すものよりも多い（または少ない）コンポーネントを含み得る。例えば、サーバ２００のいくつかの実施形態では、１つまたは複数の代替の通信チャネルを通じて（例えば、ネットワークインタフェース２０６を介して）入出力機能を提供しながらも、ディスプレイ２０２および入力装置２２４を省略してもよい。
【００２６】
メモリ２１０は、１つまたは複数の実施形態を実施するために処理装置２０４が実行するコンピュータプログラム命令を含むことができる。メモリ２１０には、通常、ランダムアクセスメモリ（ＲＡＭ）、リードオンリメモリ（ＲＯＭ）、および／または他の永続的または非一時的なメモリが含まれる。メモリ２１０は、サーバ２００の全体的な管理および動作において処理ユニット２０４によって使用されるコンピュータプログラム命令を提供するオペレーティングシステム２１４を格納することができる。メモリ２１０は、本開示の態様を実施するためのコンピュータプログラム命令および他の情報をさらに含むことができる。例えば一実施形態ではメモリ２１０は、例えばコンピューティング装置にインストールされたウェブブラウザなどのナビゲーションインタフェースを介して、コンピューティング装置上に表示するためのユーザインタフェース（および／またはその命令）を生成するユーザインタフェースソフトウェア２１２を含む。さらに、メモリ２１０は、データストア２２０などの１つまたは複数の補助データストアを含むか、またはこれらと通信することができる。この補助データストアは、ハードドライブ（ＨＤＤ）、ソリッドステートドライブ（ＳＤＤ）、ネットワーク接続ストレージ（ＮＡＳ）、テープドライブ、またはこれらの任意の組み合わせなど、任意の永続的または実質的に永続的なデータストレージに相当し得る。
【００２７】
ユーザインタフェースモジュール２１２に加えて、メモリ２１０は、処理ユニット２０４によって実行され得るコンテンツ管理ソフトウェア２１６を含んでもよい。一実施形態では、コンテンツ管理ソフトウェア２１６は、例えば、ストリーミングコンテンツ配信システムでまだ利用できないコンテンツ部分を識別すること、所望のパラメータに従ってそれらのコンテンツ部分を生成すること、および（例えば、利用可能な場合にはコンテンツ部分を提供することによって、または要求されたコンテンツ部分が利用可能でない場合には、フォールバックコンテンツ部分を提供することによって）コンテンツ部分に対する要求を管理することといった、本開示の様々な態様を実施する。コンテンツ管理ソフトウェア２１６は、サーバ２００の一部として図２に示されるが、他の実施形態では、このソフトウェアの全部または一部が、マニフェスト生成サービス１１４など、ストリーミングコンテンツ配信システム１１０内の代替のコンピューティング装置によって実装されてもよい。
【００２８】
図３Ａおよび図３Ｂは、クライアントコンピューティング装置１０２に配信するためのマニフェストを生成して、装置１０２が、ストリーミングコンテンツ配信システム１１０からコンテンツストリームを出力できるようにするための例示的な一連の相互作用を示し、このコンテンツストリームが、一揃いの整合パラメータに従って符号化された一連の部分を含む。２つの図として示しているが、図３Ａおよび図３Ｂのうちの相互作用には、順番に番号が付されており、併せて行ってもよい。
【００２９】
相互作用は、図３Ａの（１）から開始され、クライアントコンピューティング装置１０２は、ストリーミングコンテンツ配信システム１１０のマニフェスト生成サービス１１４からコンテンツを要求する。この要求は、ストリーミングコンテンツを閲覧するためのアプリケーション、ウェブブラウザアプリケーションなどを起動したり、またはこれらのアプリケーションとインタラクトしたりすることによってなど、クライアントがクライアントコンピューティング装置１０２を使用することによって生成され得る。この要求は、テレビ番組、映画、ビデオ、オーディオ番組などの、クライアントによって望まれる主要コンテンツを少なくとも指定することができる。場合によっては、この要求は、クライアントコンピューティング装置１０２の構成、装置１０２の位置、装置１０２のアカウント、またはストリーミングコンテンツ配信システム１１０上のクライアントなど、クライアントコンピューティング装置１０２、またはクライアントコンピューティング装置１０２を利用するクライアントに関する情報をさらに指定することができる。後述するように、この情報は、ストリーミングコンテンツ配信システム１１０および／または広告システム１３０によって利用されて、クライアントコンピューティング装置１０２に提供される、法的警告、クレジット、献辞、または広告などの付加的コンテンツを決定することができ、これらのいずれかを、ストリーミングコンテンツ配信システム１１０は、クライアントコンピューティング装置１０２からの要求に応答して、付加的コンテンツがコンテンツストリーム内の他の部分（例えば、主要コンテンツの一部）と整合する符号化を用いた部分において提供されるように、オンザフライで符号化することができる。
【００３０】
上述の通り、クライアントコンピューティング装置１０２によって要求される主要コンテンツに加えて、ストリーミングコンテンツには、法的警告、クレジット、献辞、または広告などの１つまたは複数の他のタイプのコンテンツを含めることもできる。このコンテンツは、本明細書では一般に「付加的コンテンツ」として記載される。場合によっては、マニフェスト生成サービス１１４自体が、何の付加的コンテンツをコンテンツストリーム内に含めるべきかを決定することができる。例えば、マニフェスト生成サービス１１４は、すべてのコンテンツストリーム内に特定の法的警告を含めることができ、または（例えば、要求された主要コンテンツ、要求の属性、クライアントコンピューティング装置１０２の属性などの基準に基づいて）どのような付加的コンテンツをストリーム内に提供すべきかを決定する規則一式を維持することができる。他の例では、マニフェスト生成サービス１１４は、広告システム１３０などの他のコンポーネントとやり取りして、コンテンツストリーム内にどのような付加的コンテンツを含めるべきかを決定することができる。付加的コンテンツは、マニフェストファイルが生成された時点で決定することができるので、付加的コンテンツは、クライアントコンピューティング装置１０２またはその装置１０２のクライアントを特に対象とすることができる。例えば、クライアントに関連する可能性が高い特定の広告をコンテンツストリーム内に含めることができる。図３Ａの説明の目的で、マニフェスト生成サービス１１４は、付加的コンテンツとしてコンテンツストリーム内に含める少なくとも１つの広告を決定するために、広告システム１３０Ａと関わり合うように構成されているものとする。
【００３１】
それに伴って（２）において、マニフェスト生成サービス１１４は、コンテンツストリーム内に含まれ、したがってクライアントコンピューティング装置１０２に配信されたマニフェストファイル内で識別される広告の選択についての要求を広告システム１３０Ａに送信する。一実施形態では、この要求はＶＡＳＴ仕様に従ってフォーマットされてもよく、要求された主要コンテンツに関する情報、クライアントコンピューティング装置１０２の属性、その装置１０２のクライアントの属性などの、要求に関する任意の情報を含んでもよい。それに応じて、（３）において、広告システム１３０Ａは、付加的コンテンツとしてコンテンツストリーム内に含まれるべき広告の指示を返す。広告システム１３０Ａによる広告の選択のための具体的なやり取りについては、本開示の範囲外であり、したがって詳細には説明しない。
【００３２】
上述のように、コンテンツストリームの一部を形成する各コンテンツ部分が、整合パラメータ（例えば、ビットレート、フレームレート、解像度など）に従って符号化されることが全般に望ましい場合がある。したがって、（４）において、マニフェスト生成サービス１１４は、コンテンツサービス１２０とやり取りして、選択された広告に対応するコンテンツ部分が、コンテンツストリームの一部を形成する他のコンテンツ部分（例えば、クライアントコンピューティング装置１０２によって要求された、主要コンテンツに対応するコンテンツ部分）と整合するパラメータに従って符号化されたフォーマットで利用可能かどうかを判断することができる。選択された広告に対応し、整合パラメータに従って符号化されたコンテンツ部分が、コンテンツデータストア１２４内などのコンテンツサービス１２０で利用可能な場合、マニフェスト生成サービス１１４は、コンテンツストリーム用のマニフェスト内の整合するコンテンツ部分の識別子を含み、クライアントコンピューティング装置１０２がコンテンツストリームを出力することを可能にするために、クライアントコンピューティング装置１０２にマニフェストを返すことができる。また一方、図３Ａの説明の目的で、選択された広告のための整合コンテンツ部分（例えば、コンテンツストリーム内に含まれるべき他のコンテンツ部分のパラメータと整合するパラメータに従って符号化される広告を構成するコンテンツ部分）が、コンテンツサービス１２０で利用可能ではないものとする。この結果として（５）において、マニフェスト生成サービス１１４は、コンテンツサーバ１２０とやり取りして、コンテンツストリーム内に含めるための１つまたは複数のフォールバックコンテンツ部分を決定する。一実施形態では、フォールバックコンテンツ部分は、コンテンツストリーム内に含まれる他のコンテンツ部分の符号化パラメータと異なるパラメータに従って符号化される選択された広告のバージョンなど、選択された広告の非整合バージョンを構成してもよい。例えば、フォールバックコンテンツ部分は、コンテンツストリーム内の残りのコンテンツ部分が高精細である場合に、選択された広告の低精細バージョンを構成してもよい。別の実施形態では、フォールバックコンテンツ部分は、代替の広告など、選択された広告以外のコンテンツを構成してもよい。例示的には、フォールバックコンテンツ部分は、コンテンツストリーム内にフォールバックコンテンツ部分を含めることがコンテンツストリームの再生を妨害しないように、コンテンツストリーム内の他のコンテンツの符号化パラメータに整合するフォーマットで符号化された代替広告を構成してもよい。例えば、コンテンツストリーム内の主要コンテンツが「高精細」パラメータに従ってフォーマットされている場合、マニフェスト生成サービス１１４は、選択された広告が「高精細」パラメータに従ってフォーマットされたコンテンツ部分では利用できないが、「高精細」パラメータに従ってフォーマットされた部分では代替広告の利用が可能であると判断することができる。したがって、マニフェスト生成サービスは、フォールバックコンテンツ部分として代替広告に相当する部分を選択することができる。
【００３３】
その後、（６）において、マニフェスト生成サービス１１４は、コンテンツストリームのためのマニフェストを生成し、フォールバックコンテンツ部分、および要求された主要コンテンツに対応する部分を識別する。概して述べれば、マニフェストの生成には、どのコンテンツ（例えば、主要コンテンツおよび任意の付加的コンテンツ）がクライアントコンピューティング装置にストリーミングされるべきかの識別、（例えば、広告システム１３０Ａによって提供される情報、またはマニフェスト生成サービス１１４に維持されている他の情報によって決定される）そのコンテンツの相対順序、および一連のコンテンツ部分が順に再生されたときに所望のコンテンツストリームを形成するそのコンテンツ部分が含まれ得る。例えば、マニフェスト生成サービス１１４が、３０分のテレビ番組をストリーミングする前に３分の広告をストリーミングすべきであると決定した場合、マニフェスト生成サービス１１４は、３分の広告を形成するコンテンツ部分と、３０分のテレビ番組を形成するコンテンツ部分とを識別するマニフェストを生成することができる。したがって、図３Ａの相互作用を参照すると、マニフェストの生成は、主要コンテンツに相当するコンテンツ部分のセットの識別子、およびフォールバックコンテンツ部分の識別子を含むマニフェストファイルを作成することを含み得る。マニフェストは、コンテンツ部分のフォーマット、各部分の長さ、ストリームの全長などの、ストリームに関するメタデータを含むこともできる。一実施形態では、マニフェストは、ＡＰＰＬＥ（商標）ＨＴＴＰライブストリーミングプロトコル、すなわち「ＨＬＳ」に従ってフォーマットされる。他の実施形態では、マニフェストは、ＭＰＥＧ−ＤＡＳＨ（ｄｙｎａｍｉｃ  ａｄａｐｔｉｖｅ  ｓｔｒｅａｍｉｎｇ  ｏｖｅｒ  ＨＴＴＰ）（「ＤＡＳＨ」）プロトコル、ＡＤＯＢＥ（商標）ＨＴＴＰ動的ストリーム（ＨＤＳ）プロトコル、またはＭＩＣＲＯＳＯＦＴ（商標）スムーズストリーミング（ＭＳＳ）プロトコルなどの他のストリーミングプロトコルに従ってフォーマットされてもよい。通常、これらのプロトコルに従って生成されるマニフェストには、ネットワークベースのシステム上の実際のファイルに対応する各コンテンツ部分の識別子が含まれる。例えば、マニフェストは、ネットワークベースの記憶装置に格納されているビデオファイル（トランスポートストリーム、または「ｔｓ」ファイルなど）に対応する各コンテンツ部分のＵＲＩを指定することができる。したがって、これらのビデオファイルをダウンロードして出力することによって、クライアントはマニフェストで識別されたコンテンツをストリーミングすることができる。
【００３４】
場合によっては、マニフェスト内に実際の識別子を直接配置することによって、クライアントコンピューティング装置１０２が、マニフェストを選択的に修正して不要な部分を削除したり、または特定のコンテンツ部分のダウンロードもしくは出力をブロックしたりする機会を提供することができる。したがって、マニフェスト生成サービス１１４は、（４）において、「隠された」マニフェストを生成することができ、このマニフェストは、‘４２３出願（上記参照により援用される）に記載されているように、クライアントコンピューティング装置１０２が異なるタイプのコンテンツを区別することを防止または禁止する隠された識別子によってコンテンツ部分を識別する。
【００３５】
図３Ａの相互作用は図３Ｂに続き、そこでは（７）において、マニフェスト生成サービス１１４が、コンテンツストリームのためのマニフェストをクライアントコンピューティング装置１０２に送信する。後述するように、（例えば、図４Ａおよび図４Ｂに関して）クライアントコンピューティング装置１０２は、その後、コンテンツストリームを形成するコンテンツ部分を取り出すためにマニフェストを処理し、そのコンテンツストリームをクライアントに出力することができる。
【００３６】
上述のように、マニフェスト内で識別された各コンテンツ部分は、整合パラメータ（例えば、ビットレート、フレームレート、解像度など）に従って符号化されたコンテンツを構成することが全般に望ましい場合がある。図３Ａの相互作用では、コンテンツストリームに含めるために選択された広告に相当するコンテンツ部分は、コンテンツストリームの他の部分と整合するパラメータに従って符号化されたフォーマットで利用できないものとする。マニフェスト生成サービス１１４は、そのような場合にストリームに含めるためにフォールバックコンテンツ部分を選択するように動作してもよいが、マニフェスト生成サービス１１４は、コンテンツストリームに対する要求に応答して、整合パラメータに従って選択された広告を符号化するようにコンテンツサービス１２０に指示することによって、さらなる発生を制限するように構成されてもよい。このようにして、選択された広告を構成するコンテンツ部分は、整合パラメータに従った符号化として、図３Ａに関して説明したコンテンツストリーム内に構成される主要コンテンツと同じパラメータに従ってフォーマットされた同じ主要コンテンツまたは他の主要コンテンツに対する代替クライアントコンピューティング装置１０２からの要求など、他のコンテンツストリームに含めるために、コンテンツサービス１２０で利用可能にすることができる。
【００３７】
したがって、（８）において、マニフェスト生成サービス１１４は、コンテンツストリーム内の他のコンテンツ部分のパラメータと整合するパラメータに従って符号化された、コンテンツストリーム内に含めるために前もって選択された広告を構成するコンテンツ部分を生成する要求をコンテンツサービス１２０に送信する。
【００３８】
（９）において、コンテンツサービス１２０は、広告システム１３０Ａから付加的コンテンツを検索する。例示的に、付加的コンテンツは、コンテンツサービス１２０が、所与のコンテンツストリームの符号化パラメータと整合するように、様々な異なるパラメータに従って付加的コンテンツを再符号化またはトランスコードすることを可能にするフォーマットで、広告システム１３０Ａによって提供され得る。例えば、付加的コンテンツは、「生の」または非圧縮フォーマットで、または（例えば、「メザニン」ファイルとして）コンテンツストリーム内の他のコンテンツ部分と整合するように選択されたパラメータで再符号化することを可能にするのに十分高い品質である圧縮フォーマットで提供され得る。一実施形態では、コンテンツサーバ１２０が付加的コンテンツを検索できるようにするために、付加的コンテンツの位置を広告システム１３０Ａによって（例えば、ＶＡＳＴ応答内で）識別することができる。
【００３９】
その後、（１０）において、コンテンツサービス１２０は、コンテンツストリーム内に含まれる他のコンテンツ部分と整合するパラメータに従って符号化された、選択された広告を構成するコンテンツ部分を生成する。例えば、コンテンツストリームが所与のパラメータのセット（例えば、特定のビットレート、フレームレート、または解像度、特定の符号化パラメータに関連する事前定義されたプロファイルなど）に従って符号化されたコンテンツ部分のセットを含む場合、コンテンツサービス１２０は、マニフェストファイルにおいて要求されたコンテンツ部分を生成するために、広告システム１３０から受信した付加的コンテンツを処理することができる。例示的に、コンテンツ管理エンジンは、上記参照により援用される‘３４７出願に記載されているようなコンテンツエンコーダのプールとやり取りして、コンテンツエンコーダのプールに、適切なパラメータを用いて付加的コンテンツを符号化するように指示することができる。その後、（１１）において、コンテンツサービス１２０は、ＰＯＰ１１２またはクライアントコンピューティング装置１０２による後の検索のために、符号化された整合コンテンツ部分をコンテンツデータストア１２４内に格納することができる。したがって、広告または他の付加的コンテンツが、コンテンツストリーム内に含められるために選択されるが、コンテンツストリームの他の部分と整合するパラメータを有する符号化においてまだ利用可能ではない場合、図３Ａおよび図３Ｂの相互作用を介して、コンテンツストリームの再生を可能にするために、フォールバックコンテンツ部分をコンテンツストリームに含めることができる。さらに、付加的コンテンツは、コンテンツストリームの要求に応答して、コンテンツストリームと整合するパラメータを有する一組のコンテンツ部分に再符号化されてもよい。その後、コンテンツ部分のセットによって構成されるように、再符号化された付加的コンテンツは、コンテンツストリームの後続の要求のためにマニフェストファイル内に含まれてもよい。
【００４０】
図３Ａおよび図３Ｂの相互作用が上記で順次に説明されているが、相互作用の一部またはすべてが繰り返し起こり得ること、およびこれらの相互作用が少なくとも部分的に同時に起こり得ることが企図される。例えば、マニフェスト生成サービス１１４は、マニフェストをＰＯＰ１１２に同時にまたは並行して送信し、マニフェスト内のコンテンツ部分が作成されることを要求することができる。さらなる例として、ストリーミングコンテンツ配信システム１１０は、ストリーミングコンテンツの所与の項目について複数のマニフェストを配信するように、または経時的に複数の送信として単一のマニフェストを配信するように構成され得る。したがって、新しいマニフェストまたはマニフェストのセクションがクライアントコンピューティング装置１０２に送信される各時点に先立って、マニフェスト生成サービス１１４は、新しいマニフェストまたはセクション内で識別されるべきコンテンツ部分の新しいセットを決定することができる。場合によっては、この新しい部分のセットは、ストリーミングコンテンツに関する（例えば、監視サービス１１８から得られるような）監視された情報に基づいて、変化し得る。例えば、監視情報が、クライアントコンピューティング装置１０２が部分を出力しなかったこと（または、潜在的に、その部分がクライアントコンピューティング装置１０２によって一度も要求されなかったこと）を示す場合、マニフェスト生成サービス１１４は、新しいマニフェストまたはマニフェストセクション内のその部分（または別の付加的コンテンツ部分）を識別することができる。したがって、ユーザが部分（例えば、広告）を見ないようにするためにその部分を「スキップする」場合、新しい広告または保護された部分がマニフェスト内で識別され得る。場合によっては、新しいマニフェストは、クライアントコンピューティング装置１０２がコンテンツを出力するまで（例えば、主要コンテンツなどの他のコンテンツではない）付加的コンテンツのみを識別することができ、その時点で他のコンテンツを含む追加のマニフェスト（またはマニフェストセクション）を提供することができる。
【００４１】
さらに、図３Ａおよび図３Ｂの相互作用は、一連のコンテンツ部分に関して説明されているが、本開示の実施形態は、それぞれが異なるバージョンのストリーミングコンテンツを形成する代替の一連のコンテンツ部分の使用を可能にし得る。例えば、第１の一連のコンテンツ部分は、ストリーミングコンテンツを第１の品質レベルで提示し、第２の一連のコンテンツ部分は、第２の品質レベルでなどと提示し得る。様々なコンテンツ部分のシリーズは、クライアントコンピューティング装置１０２に提供される単一のマニフェストまたは複数のマニフェストで識別され得る。場合によっては、クライアントコンピューティング装置１０２は、装置１０２の状態を説明するために（例えば、装置１０２とストリーミングコンテンツ配信システム１１０との間の低速通信を説明するために）異なるシリーズのコンテンツ部分の出力間で切り替えてもよい。したがって、コンテンツサービス１２０は、場合によっては、マニフェストファイル内で識別されたコンテンツ部分を満たすために、様々な異なるパラメータに従って、付加的コンテンツを再符号化するように動作し得る。
【００４２】
上述の相互作用は、選択された広告がコンテンツストリーム内の他の部分と整合するフォーマットで利用可能ではない場合におけるマニフェストファイル内のフォールバックコンテンツ部分の識別を例示しているが、代替の実装が可能であり、本明細書において企図される。例えば、マニフェスト生成サービス１１４は、場合によっては、そのような整合コンテンツ部分がマニフェスト生成時にストリーミングコンテンツ配信システム１１０で実際に利用可能であるかどうかにかかわらず、マニフェスト内に含めるための整合コンテンツ部分を識別し得る。例えば、マニフェスト生成サービス１１４は、最初に適切な符号化コンテンツがコンテンツサービス１２０で利用可能であることを検証することなく、マニフェスト内に、所与のコンテンツ部分について、その部分（例えば、広告の１セクション）内に含まれるべきコンテンツを識別する情報、およびそのコンテンツに対する所望の符号化パラメータを含み得る。場合によっては、識別情報は、所望のコンテンツおよび符号化パラメータを含むファイル識別子または統一参照識別子を含み得る（例えば、ｈｔｔｐ：／／ｓｃｄｓ．ｔｌｄ／ａｄ１＿ｓｅｇｍｅｎｔ１＿ｈｄ．ｔｓ）。その後、マニフェスト生成サービス１１４は、マニフェスト内で識別されているが（例えば、コンテンツデータストア１２４内の）ストリーミングコンテンツ配信システム１１０ではまだ利用可能ではない任意のコンテンツ部分を生成するように、コンテンツサービス１２０に要求を送信することができる。一実施形態では、マニフェスト生成サービス１１４は、完全なマニフェストをコンテンツサービス１２０に送信することができ、コンテンツ管理エンジン１２２は、マニフェスト内で参照されているが、まだコンテンツデータストア１２４から利用できないコンテンツ部分を識別することができる。別の実施形態では、マニフェスト生成サービス１１４は、マニフェスト内で参照されているがまだコンテンツデータストア１２４から利用可能ではない任意のコンテンツ部分を識別することができる。例示的に、マニフェスト内で参照されているがまだコンテンツデータストア１２４から利用可能ではないコンテンツ部分の識別は、マニフェスト内で参照されている基礎となるコンテンツの特定部分（例えば、特定の広告、警告、免責事項など）が、マニフェスト内で参照される他のコンテンツ部分と一致するパラメータで符号化されたバージョンで、コンテンツデータストア１２４内で利用可能かどうかを判定することを含み得る。一実施形態では、マニフェスト内で参照されているがまだコンテンツデータストア１２４から利用可能ではないコンテンツ部分の識別は、マニフェストファイル内で参照されるファイル識別子（例えば、ＵＲＩ）と、コンテンツデータストア１２４内に含まれる対応する識別子とを比較することを含み得る。その後、コンテンツサービス１２０は、マニフェストファイル内で識別されたコンテンツ部分の符号化を開始することができ、その結果、コンテンツ部分に対する要求の前に符号化が完了した場合、新たに符号化されたコンテンツ部分をクライアントコンピューティング装置１０２に送信することができる。コンテンツ部分を要求する前に符号化が完了しない場合、フォールバックコンテンツ部分を要求中のクライアントコンピューティング装置１０２に送信することができる。
【００４３】
クライアント装置１０２が、コンテンツサービス１０２でまだ利用できない可能性があるコンテンツ部分を含むマニフェストファイルに基づいてストリーミングコンテンツを視聴することを可能にするための例示的な相互作用について、図４Ａを参照しながら説明する。具体的に、図４Ａは、要求されたコンテンツ部分がコンテンツサービス１２０において利用可能ではないという決定に応答して、フォールバックコンテンツ部分を提供するための例示的な一連の相互作用を示し、一方、図４Ｂは、要求されたコンテンツ部分の要求駆動型の符号化が完了した場合などにおいて、要求されたコンテンツ部分を提供するための例示的な一連の相互作用を示す。
【００４４】
図４Ａの相互作用は（１）で開始し、ここでクライアントコンピューティング装置１０２は、マニフェスト内に含まれるコンテンツ部分の識別子を使用して、ストリーミングコンテンツ配信システム１１０のＰＯＰ１１２からコンテンツ部分を要求する。図４Ａの説明のために、要求されたコンテンツ部分は、マニフェスト内の他のコンテンツ部分（例えば、主要コンテンツ）の符号化パラメータと整合するように符号化されている付加的コンテンツ（例えば、免責事項または広告）に対応するものとする。上述のように、マニフェストファイルは、コンテンツ部分がストリーミングコンテンツ配信サービス１１０において実際に利用可能であるかどうかにかかわらず、コンテンツ部分を参照することによって生成され得る。したがって、図４Ａおよび図４Ｂの相互作用では、要求された整合コンテンツ部分が実際にストリーミングコンテンツ配信サービス１１０に存在することを仮定しない。
【００４５】
一実施形態では、要求は、ストリーミングコンテンツ配信システム１１０で利用可能であると予想されるコンテンツ部分のファイル名を使用することによって（例えば、要求駆動型の符号化に従って生成される）要求されたコンテンツ部分を識別する。他の実施形態では、上記の参照により援用される‘４２３出願の実施形態に従って生成された隠された識別子（これは、ストリーミングコンテンツ配信システム１１０において利用可能であると予想されるコンテンツ部分の実際の識別子に対応する）を使用することによって、この要求は要求されたコンテンツ部分を識別する。この要求は、ストリーミングコンテンツ配信システム１１０から以前に取得されたマニフェストを処理することに基づいて、クライアントコンピューティング装置１０２によって（例えば、ウェブブラウザまたは他のアプリケーションによって）自動的に生成され得る。要求を受信すると、ＰＯＰ１１２は、（２）において、識別子に基づいて要求された部分を決定する。例示的に、隠された識別子が使用されない場合、ＰＯＰ１１２は、クライアントコンピューティング装置１０２によって提供される識別子から要求されたコンテンツ部分（例えば、要求された部分の実際の識別子）を直接識別することができる。実際の識別子を暗号化キーで暗号化することによって生成された隠された識別子が使用される場合、ＰＯＰ１１２はそのキーを利用して隠された識別子を解読し、結果として要求された部分の実際の識別子を決定する。他の変換（例えば、ランダムな割り当て）を使用して生成された隠された識別子が使用される場合、ＰＯＰ１１２は、隠された識別子の実際の識別子へのマッピングなど、マニフェスト生成システム１１４によって提供される情報を利用して、どの実際の識別子が要求部分に対応するかを決定する。
【００４６】
上記のように、ＰＯＰ１１２は、クライアントコンピューティング装置１０２によって要求される少なくとも一部のコンテンツ部分をキャッシュするように機能することができ、その結果、同じまたは異なるクライアントコンピューティング装置１０２によるコンテンツ部分に対する２回目以降の要求は、キャッシュ内に含まれるコンテンツ部分のコピーを提供することによって処理することができる。したがって、ＰＯＰ１１２が最近整合コンテンツ部分に対する要求を受信した場合、ＰＯＰ１１２は整合コンテンツ部分を直接クライアントコンピューティング装置１０２に返すことができる。しかしながら、（整合コンテンツ部分がマニフェストファイル内で識別された他の部分のパラメータと整合するようにオンザフライで生成される場合のように）どのクライアントコンピューティング装置１０２も最近、整合コンテンツ部分を要求していない場合、ＰＯＰ１１２は、（３）において、整合コンテンツ部分がキャッシュされていないと判断することができる。したがって、ＰＯＰ１１２は、（４）において、コンテンツサービス１２０から整合コンテンツ部分を要求する。
【００４７】
（５）において、コンテンツサービス１２０は（例えば、コンテンツ管理エンジン１２２を介して）、要求された整合コンテンツ部分がコンテンツデータストア１２４内で利用可能であるかどうかを判定する。例示的に、要求された整合コンテンツ部分は、図３Ｂの相互作用（１０）に関して上に述べたのと同じ整合コンテンツ部分であるとする。さらに、コンテンツサービス１２０が、その整合コンテンツ部分の生成が完了する前に、その整合コンテンツ部分の要求を取得するものとする。これは例えば、整合コンテンツ部分を生成するのに必要な計算時間に起因して起こり得る。そのような状況下では、１つの選択肢は、「ファイルが見つかりません」というエラーなど、コンテンツサービス１２０がＰＯＰ１１２にエラーを返すことであり得、それは次にクライアントコンピューティング装置１０２にエラーを送信し得る。当業者によって理解されるように、そのような選択肢はおそらく望ましくないであろう。したがって、要求された整合コンテンツ部分が利用できない場合にエラーを返すのではなく、コンテンツサービス１２０は代わりに、（６）において、フォールバックコンテンツ部分を識別してもよい。図３Ａおよび図３Ｂに関して上に述べたように、フォールバックコンテンツ部分は、場合によっては、要求されたコンテンツ部分と同じ基礎となるコンテンツを含み得るが、異なるパラメータに従って符号化され得る。例えば、フォールバックコンテンツ部分は、より低い解像度、ビットレート、またはフレームレートで符号化された同じオーディオ、ビデオ、またはテキストコンテンツを含み得る。他の例では、フォールバックコンテンツ部分は、整合コンテンツ部分と同じパラメータに従ってフォーマットされた、異なる広告など、要求されたコンテンツ部分とは異なる基礎となるコンテンツを表すことができる。フォールバック部分の使用は、整合コンテンツ部分の使用と比較した場合、望ましくない可能性があるが、フォールバック部分の使用は、多くの場合に要求駆動型の符号化の実装を可能にし、一方、要求駆動型の符号化を適時に完了することができない場合には、コンテンツストリームの許容可能な配信を提供することができる。さらに、整合コンテンツ部分がコンテンツサービス１２０によって生成された後に、そのような整合コンテンツ部分に対する後続の要求が発生する可能性が高いため、共通アクセスされるコンテンツストリームに対してフォールバック部分を使用することは比較的まれであり得る。場合によっては、コンテンツプロバイダ（例えば、主要コンテンツまたは付加的コンテンツのプロバイダ）は、コンテンツサービス１２０がフォールバックコンテンツを選択することができる基準を指定することができる。例えば、広告システム１３０には、一次選択コンテンツが利用可能でない場合にフォールバックコンテンツを選択するためのＶＡＳＴ応答基準を組み込むことができる。そのような基準には、非限定的な例として、フォールバックコンテンツの符号化パラメータ、フォールバックコンテンツの主題、フォールバックコンテンツに関連するタグ、またはフォールバックコンテンツのプロバイダが含まれ得る。
【００４８】
フォールバックコンテンツ部分が、要求されたコンテンツ部分と同じ基礎となるコンテンツを構成するが、異なるパラメータに従って符号化される場合、このようなフォールバックコンテンツ部分は、ストリーミングコンテンツ配信システム１１０または外部サービスのいずれかにおいて、潜在的なコンテンツ部分ごとのフォールバックコンテンツ部分の記憶が可能であるようにフォーマットされ得る。例えば、フォールバックコンテンツ部分は、各フォールバックコンテンツ部分の記憶がコンテンツデータストア１２４内に比較的小さい記憶スペースを必要とするように、比較的低いビットレートまたは解像度で符号化されてもよい。さらなる例として、フォールバックコンテンツ部分は、フォールバックコンテンツ部分の基礎をなすコンテンツ（例えば、付加的コンテンツなど）のプロバイダのシステムなど、ストリーミングコンテンツ配信システム１１０の外部でホストされてもよく、したがって、コンテンツデータストア１２４の記憶スペースを必要としない。
【００４９】
したがって、（７）において、コンテンツサービス１２０は、フォールバックコンテンツ部分をＰＯＰ１１２に返すことができる。フォールバックコンテンツ部分１１２がコンテンツデータストア内に格納されている場合、コンテンツサービス１２０はフォールバックコンテンツ部分を直接返すことができる。フォールバックコンテンツ部分１１２が、外部データストア、例えばフォールバックコンテンツ部分の基礎となるコンテンツのプロバイダのデータストア（例えば、広告システム１３０のデータストア）内に格納されている場合、コンテンツサービス１２０は、ＰＯＰ１１２にフォールバックコンテンツ部分の位置への参照を返し、ＰＯＰ１１２は次にその位置からフォールバックコンテンツ部分を検索することができる。
【００５０】
いくつかの実施形態では、コンテンツサービス１２０によって提供される応答は、ＰＯＰ１１２でのフォールバックコンテンツ部分の不適切なキャッシングを禁止するように形成され得る。例えば、フォールバックコンテンツ部分が、整合コンテンツ部分の要求に応答してＰＯＰ１１２に返されることを想起されたい。したがって、ＰＯＰ１１２の構成は、ＰＯＰ１１２にフォールバックコンテンツ部分を整合コンテンツ部分としてキャッシュさせることができる。これにより、実際の整合コンテンツ部分がコンテンツサービス１２０で利用可能であるかどうかにかかわらず、ＰＯＰ１１２は、フォールバックコンテンツ部分を用いて整合コンテンツ部分に対する後続の要求を処理することができる。この問題に対処するために、一実施形態では、コンテンツサービス１２０は、フォールバックコンテンツ部分に対して小さいかゼロかの有効時間、すなわち「ＴＴＬ」値を確立し、ＰＯＰ１１２に対して、フォールバックコンテンツ部分は即時にまたは実質的に即時に（例えば、数ミリ秒または数秒以内）無効であるとみなすべきであることを示すことができる。したがって、ＰＯＰ１１２がＴＴＬ値を適切に認識していると仮定すると、フォールバックコンテンツ部分はＰＯＰ１１２にキャッシュされないと予想することができ、整合コンテンツ部分に対するさらなる要求は、図４Ａおよび図４Ｂの相互作用の繰り返しをもたらす可能性がある。
【００５１】
いくつかの実施形態では、ＰＯＰ１１２における潜在的なキャッシングの問題は、リダイレクトを利用することによってコンテンツサービス１２０によってさらに対処され得る。例えば、整合コンテンツ部分に対する要求に応答して直接フォールバックコンテンツ部分を返すのではなく、コンテンツサービス１２０は、フォールバックコンテンツ部分のＵＲＩへのリダイレクトを返すことができる。リダイレクトの使用は、例えば、ＰＯＰ１１２でのフォールバックコンテンツ部分のキャッシングを可能にするために有利であり得る。例えば、ＰＯＰ１１２がフォールバックコンテンツ部分に関連するＵＲＩへのリダイレクトを検索する場合、ＰＯＰ１１２は、ＵＲＩに関連するフォールバックコンテンツ部分のローカルにキャッシュされたバージョンによって要求を満たすことができる。例示的に、リダイレクトは、ＰＯＰ１１２が、整合コンテンツ部分にアクセスするための後続の要求に対して有効なリダイレクトを考慮しないように、低いかまたはゼロのＴＴＬ値に関連付けられ得る。
【００５２】
（９）において、ＰＯＰ１１２は、整合コンテンツ部分に対する要求を満たすために、検索されたフォールバックコンテンツ部分をクライアントコンピューティング装置１０２に返すことができる。次いで、クライアントコンピューティング装置１０２は、（１０）において、コンテンツストリームの一部としてフォールバックコンテンツ部分を出力し、したがってフォールバックコンテンツ部分内で符号化されたコンテンツを視聴することができる。
【００５３】
図４Ｂを参照すると、図４Ａのものとは別に起こり得る一連の相互作用が示されている。具体的には、図４Ａの相互作用は、要求された整合コンテンツ部分がコンテンツサービス１２０で利用可能でない場合（例えば、整合コンテンツ部分は依然としてコンテンツサービス１２０によって生成されているため）に発生するが、図４Ｂの相互作用は、要求された整合コンテンツ部分がコンテンツサービス１２０で利用可能である事例を示す。例えば、マニフェストファイルのクライアントコンピューティング装置への送信とクライアントコンピューティング装置による整合コンテンツ部分の要求との間に発生する時間の量が、コンテンツサービス１２０が整合コンテンツ部分を生成することを可能にするのに十分であるように、図４Ｂの相互作用は、要求された整合コンテンツ部分がマニフェストファイル内で識別された一連のコンテンツ部分の終わり近くに発生する。したがって、図４Ｂの（１）から（４）の相互作用は、図４Ａの対応する相互作用と実質的に同様であり、再度説明されない。しかしながら、図４Ｂの相互作用とは異なり、（５）において、コンテンツサービス１２０は、要求された整合コンテンツ部分が（例えば、整合コンテンツ部分を参照するマニフェストファイルの生成に応答して生成された後）コンテンツサービス１２０で利用可能であると判断する。したがって（６）において、整合コンテンツ部分がＰＯＰ１１２に返される。例示的に、整合コンテンツ部分は、ＰＯＰ１１２に整合コンテンツ部分をキャッシュするように促すメタデータでフォーマットされ、またはこのメタデータに関連付けられてもよく、その結果、整合コンテンツ部分に対する（例えば、同一または異なるクライアントコンピューティング装置１０２による）後続の要求は、キャッシュされたコピーからＰＯＰ１１２によって処理されてもよい。例えば、コンテンツサービス１２０は、整合コンテンツ部分を返す際に、整合コンテンツ部分を比較的長い（例えば、数分または数時間程度の）ＴＴＬ値に関連付けることができる。
【００５４】
その後、（７）において、整合コンテンツ部分をＰＯＰ１１２からクライアントコンピューティング装置１０２に返すことができる。次いで、クライアントコンピューティング装置１０２は、（８）において、整合コンテンツ部分を出力することができる。したがって、クライアントコンピューティング装置１０２は、ストリーミングコンテンツ配信サービス１０２が、事前に生成された一組の整合コンテンツ部分を維持することを要せずに、整合パラメータに従って符号化された一組のコンテンツ部分によって形成されるコンテンツストリームを出力することができる。もっと正確には、少なくとも一部のコンテンツ部分（例えば、主要コンテンツに付随するようにコンテンツストリームに含まれる付加的コンテンツに対応する）は、コンテンツストリームの要求に応答して動的に符号化され得る。対応するコンテンツ部分に対する要求の前に、このような動的符号化が完了している場合には、それらのコンテンツ部分をクライアントコンピューティング装置に返すことができる。さらに、それらのコンテンツ部分は、コンテンツ部分を含むコンテンツストリームに対する後続の要求が以前に生成されたコンテンツ部分に基づいて満たされることができるように、ＰＯＰ１１２またはコンテンツサーバ１２０のいずれかでキャッシュされ得る。また一方、動的に符号化されたコンテンツ部分がクライアントコンピューティング装置１０２によって要求された時点で利用可能でない場合でも、クライアントコンピューティング装置１０２はフォールバックコンテンツ部分を利用してコンテンツストリームを出力することができる。
【００５５】
図４Ａおよび図４Ｂの相互作用は、マニフェストファイル内に含まれる識別子に対応する特定のコンテンツ部分に対するクライアントコンピューティング装置１０２からの要求を参照して説明されるが、本開示のいくつかの実施形態は、任意の所与のコンテンツ部分に直接対応しない識別子を利用することができる。例えば、付加的コンテンツがコンテンツストリームに含まれることになっている場合、マニフェスト生成サービス１１４は、どの付加的コンテンツが含まれるべきかを必ずしも決定することなく、そのような付加的コンテンツに対する「プレースホルダ」識別子をマニフェストファイルに含めるように構成され得る。例示的に、プレースホルダ識別子は、個々のコンテンツ部分に関連付けられていないコンテンツサービス１２０のＵＲＩを参照することができる（例えば、「ｈｔｔｐ：／／ｃｏｎｔｅｎｔｓｅｒｖｉｃｅ．ｔｌｄ／ｐｌａｃｅｈｏｌｄｅｒ．ｔｓ」）。プレースホルダ識別子に対応する部分に対する要求を受信すると、コンテンツサーバ１２０は、その要求に応答して返すべきコンテンツ部分を動的に決定することができる。例示的には、コンテンツ部分は、要求中の装置によって出力されているストリームの他の部分と整合するパラメータを用いて、コンテンツサーバ１２０においてどのコンテンツ部分が利用可能であるかに基づいて決定されてもよい。いくつかの事例では、コンテンツ部分は、ＶＡＳＴ仕様を介するなどして、広告システム１３０との相互作用に基づいて決定され得る。
【００５６】
図５を参照して、要求駆動型の符号化を介して作成された部分を含むストリーミングコンテンツを提供するための１つの例示的なルーチン５００を説明する。ルーチン５００は、例えば、図１のコンテンツ配信システム１１０によって（例えば、コンテンツサービス１２０を利用して）実行することができる。ルーチン５００はブロック５０２から開始し、そこでコンテンツ配信システム１１０は、クライアントコンピューティング装置１０２からストリーミングコンテンツの要求を取得する。この要求は、ストリーミングコンテンツを閲覧するためのアプリケーション、ウェブブラウザアプリケーションなどを起動したり、またはこれらのアプリケーションとインタラクトしたりすることによってなど、クライアントがクライアントコンピューティング装置１０２を使用することによって生成され得る。この要求は、テレビ番組、映画、ビデオ、オーディオ番組などの、クライアントによって望まれる主要コンテンツを少なくとも指定することができる。場合によっては、この要求は、クライアントコンピューティング装置１０２の構成、装置１０２の位置、装置１０２のアカウント、またはストリーミングコンテンツ配信システム１１０上のクライアントなど、クライアントコンピューティング装置１０２、またはクライアントコンピューティング装置１０２を利用するクライアントに関する情報をさらに指定することができる。
【００５７】
ブロック５０４において、ストリーミングコンテンツ配信システム１１０は、ストリーム内の他のコンテンツ部分（例えば、主要コンテンツを構成する部分）のものと整合する符号化パラメータを用いて、整合コンテンツ部分のセットとしてコンテンツストリームに含まれる付加的コンテンツを選択する。場合によっては、ストリーミングコンテンツ配信システム１１０は、広告システム１３０などの第三者外部システムとの相互作用によって付加的コンテンツを決定することができる。さらに、ストリーミングコンテンツ配信システム１１０は、広告選択アルゴリズムで使用するためにクライアントコンピューティング装置１０２に関する情報を広告システム１３０に配信することなどによって、クライアントコンピューティング装置１０２に関する情報に基づいて付加的コンテンツを決定することができる。
【００５８】
ブロック５０５で、ストリーミングコンテンツ配信システム１１０は、コンテンツストリームを集合的に表す一連のコンテンツ部分を参照して、コンテンツストリームのマニフェストファイルを生成する。この一連のコンテンツ部分は、主要コンテンツに対応するコンテンツ部分の第１のセットと、付加的コンテンツに相当するコンテンツ部分の第２のセットとを含み得る。コンテンツ部分の第１のセットは、ストリーミングコンテンツ配信サービス１１０に格納されてもよく、第１のパラメータセット（例えば、ビットレート、フレームレート、解像度など）に従って符号化された主要コンテンツを表してもよい。第２のコンテンツ部分のセットは、整合するパラメータセット（例えば、同じまたは類似のビットレート、フレームレート、解像度など）に従って符号化された付加的コンテンツを構成することができ、その結果、第２のコンテンツセット部分の出力は、クライアントコンピューティング装置上の技術的困難や、クライアントの分裂的な消耗経験をもたらさない。図５の説明のために、この第２のコンテンツ部分のセットは、「整合コンテンツ部分」と呼ばれる。しかしながら、マニフェストファイル内で参照されているにもかかわらず、これらの整合コンテンツ部分は、ストリーミングコンテンツ配信サービス１１０上にまだ存在していない可能性があり、その理由は、可能性のあるすべての整合コンテンツ部分の事前生成は、計算的に法外であり得るためである。
【００５９】
したがって、ブロック５０８において、ストリーミングコンテンツ配信サービス１１０は、整合コンテンツ部分の生成を開始することができる。例示的に、ストリーミングコンテンツ配信サービス１１０は、整合コンテンツ部分に相当する付加的コンテンツのコピーを取得することができ、このコピーは、コンテンツストリームの他の部分と整合するパラメータを用いて再符号化するのに適している。このコピーは、「生」ファイル、「マスター」コピー、または「メザニン」ファイルなどの非圧縮または高解像度のコピーを含むことができ、ストリーミングコンテンツ配信サービス１１０に格納することができ、または付加的コンテンツの提供者のシステムなどの別のシステムから取り出すことができる。その後、ストリーミングコンテンツ配信サービス１１０は、そのコピーをコンテンツストリームに含めるために、フォーマットされた部分のセットに再符号化することができる。これらの部分は、例えば、その部分の数および期間、ならびにその部分を符号化するために使用されるべき符号化パラメータなど、マニフェストファイル内に含まれる情報に基づいて決定され得る。場合によっては、ストリーミングコンテンツ配信サービス１１０は、整合コンテンツ部分を符号化するために、上で参照によって援用されている‘３４７出願のコンテンツストリーミングシステムなどの、他のサービスと連携することができる。
【００６０】
さらに、ブロック５１０において（ブロック５１０では、ブロック５０８の実行の前またはそれと同時に、したがって整合コンテンツの生成が完了する前に行われてもよい）、マニフェストファイルは、コンテンツストリームの要求に関連付けられているクライアントコンピューティング装置に送信される。
【００６１】
ブロック５１２において、マニフェストファイル内で参照されるように、整合コンテンツ部分に対する要求が受信される。例示的には、クライアントコンピューティング装置によってＰＯＰに送信された要求に基づいて、要求をＰＯＰから受信することができる。クライアントコンピューティング装置からの要求は、ウェブブラウザ、ビデオプレーヤ、オーディオプレーヤなどの再生アプリケーションを介してマニフェストファイルを処理することに基づくことができる。他の実施形態では、要求はクライアントコンピューティング装置から直接受信され得る。
【００６２】
ブロック５１４において、ストリーミングコンテンツ配信サービス１１０は、要求された整合コンテンツ部分がストリーミングコンテンツ配信サービス１１０で利用可能であるかどうかを判定する。（例えば、ブロック５０８で開始した）整合コンテンツ部分の生成が完了した場合、ブロック５１８は真と評価することができ、ルーチン５００はブロック５２０に進むことができ、ストリーミングコンテンツ配信サービス１１０は要求された整合コンテンツ部分を要求中の装置（例えば、ＰＯＰやクライアントコンピューティング装置）に返す。場合によっては、ストリーミングコンテンツ配信サービス１１０は、要求された整合コンテンツ部分を修正するか、または要求された整合コンテンツ部分をメタデータと関連付けることによって、整合コンテンツ部分のキャッシングを容易にすることができる。例えば、ストリーミングコンテンツ配信サービス１１０は、整合コンテンツ部分に対して比較的長い（例えば、数分または数時間程度）ＴＴＬ値を確立し、その結果、ＰＯＰが整合コンテンツ部分をキャッシュする可能性が高くなり、整合コンテンツ部分に対する後続の要求が、キャッシュされたデータに基づいてＰＯＰによって満たされるようにしてもよい。その後、ルーチン５００はブロック５２６で終了する。
【００６３】
整合コンテンツ部分の生成がまだ完了していない場合など、要求された整合コンテンツ部分がストリーミングコンテンツ配信サービス１１０で利用可能でない場合、ブロック５１８は偽と評価することができる。したがって、ルーチン５００はブロック５２２に進み、そこでフォールバックコンテンツ部分が識別される。フォールバックコンテンツ部分は、異なるパラメータに従って符号化された、要求されたコンテンツ部分と同じ基礎となるコンテンツ（例えば、同じ基礎となるオーディオ、ビデオ、またはテキスト）を構成することができる。例えば、フォールバックコンテンツ部分は、要求されたマッチングコンテンツ部分の低品質または低解像度のコピーを構成することができる。一実施形態では、ストリーミングコンテンツ配信サービス１１０は、コンテンツストリームに含まれる可能性がある付加的コンテンツごとに、フォールバックコンテンツ部分のセットを維持することができる。これらのフォールバックコンテンツ部分は、（例えば、コンテンツストリームの符号化パラメータとは無関係に）多くの異なるコンテンツストリームで利用することができ、場合によっては比較的低品質の可能性があるので、ストリーミングコンテンツ配信サービス１１０での事前生成フォールバックコンテンツ部分の格納は計算的に、法外なことはない。他の実施形態では、フォールバックコンテンツ部分は、基礎となるコンテンツのプロバイダのシステムなどの外部システムに格納することができる。したがって、ストリーミングコンテンツ配信サービス１１０は、そのような外部システム上のフォールバックコンテンツ部分を識別することができる。
【００６４】
ブロック５２４において、ストリーミングコンテンツ配信サービス１１０は、フォールバックコンテンツ部分を要求中の装置（例えば、ＰＯＰまたはクライアントコンピューティング装置）に返す。いくつかの事例では、ストリーミングコンテンツ配信サービス１１０は、フォールバックコンテンツ部分を直接返すことができる。他の例では、ストリーミングコンテンツ配信サービス１１０は、フォールバックコンテンツ部分への参照（例えば、ＨＴＴＰの３ｘｘリダイレクト）を返して、要求中の装置がフォールバックコンテンツ部分を取り出すことを可能にし得る。いずれの場合も、返された情報は、キャッシングまたは将来のその情報への依存を抑制するために、ストリーミングコンテンツ配信サービス１１０によって修正され得る。例えば、ストリーミングコンテンツ配信サービス１１０は、整合コンテンツ部分に対する後続の要求が（ブロック５２４で返された情報のキャッシュされたバージョンに基づいて満たされるのではなく）再びストリーミングコンテンツ配信サービス１１０に送信されることが予想されるので、返された情報（例えば、フォールバックコンテンツ部分、またはフォールバックコンテンツ部分への参照）をゼロまたは低いＴＴＬ値に関連付けることができる。その後、ルーチン５００はブロック５２６で終了する。
【００６５】
ルーチン６００を順次説明しているが、ルーチン６００の様々なブロックの実装は、少なくとも部分的に同時に行われてもよく、ストリーミングコンテンツ配信システム１１０内の異なるコンポーネントによって達成されてもよい。例えば、ストリーミングコンテンツ配信システム１１０は、マニフェスト生成サービスを利用してルーチン６００の一部（例えば、ブロック５０２、５０４、５０６、および５１０）を実施し、コンテンツサービスを利用してルーチン６００の他のブロック（例えば、ブロック５０８、５１２〜５２４）を実施することができる。ルーチン６００の機能の一部または全部を、ＰＯＰ上に（例えば、コンテンツ配信ネットワーク内で）さらに実装することができる。さらに、ルーチン６００は、所与のコンテンツストリームを形成する単一の一連のコンテンツ部分に関して例示的に説明されているが、いくつかの実施形態は、それぞれがコンテンツストリームのバージョンを形成し、クライアントコンピューティング装置への出力中に必要に応じて組み合わせることができる、複数の一連のコンテンツ部分を提供することができる。例えば、各一連のコンテンツ部分は、異なる品質レベル（ビットレートや解像度を変えるなど）の異なるバージョンのコンテンツストリームを形成することができ、クライアントコンピューティング装置は、クライアントコンピューティング装置の計算リソース（ネットワーク帯域幅、処理能力、メモリなど）に従って異なるシリーズ間で選択することができる。そのような場合、各シリーズはマニフェストファイルで識別され、ストリーミングコンテンツ配信サービス１１０ではまだ利用できない可能性があるコンテンツ部分を含むことができる。例えば、マニフェストファイルは、これらのバージョンがストリーミングコンテンツ配信サービス１１０で利用可能であるかどうかにかかわらず、コンテンツ部分の標準定義バージョン、高解像度バージョン、および超高解像度バージョンを参照することができる。ストリーミングコンテンツ配信サービス１１０は、次に、マニフェストファイルの生成時にそのようなバージョンを作成し始め、生成後にそれらをクライアントコンピューティング装置に提供することができる。要求されたバージョンがまだ利用可能ではない場合、ストリーミングコンテンツ配信サービス１１０は、ストリーミングコンテンツ配信サービス１１０において事前に生成されたデフォルトのフォールバックバージョンを提供することができる。
【００６６】
上記の方法およびプロセスのすべては、１つまたは複数のコンピュータまたはプロセッサによって実行されるソフトウェアコードモジュール内で実施され、これによって完全に自動化され得る。コードモジュールは、任意の種類の非一時的コンピュータ可読媒体または他のコンピュータ記憶装置に格納することができる。あるいは、方法のうちの一部または全部は、専用のコンピュータハードウェアで実施されてもよい。
【００６７】
特に明記しない限り、とりわけ、「できる（ｃａｎ）」、「できるであろう（ｃｏｕｌｄ）」、「可能性がある（ｍｉｇｈｔ）」、または「してよい（ｍａｙ）」等の条件付き言語は、普通ならばいくつかの実施形態がある特定の特徴、要素、および／またはステップを含み、一方で他の実施形態が含まないことを示すために概して使用されるとして文脈内で理解される。したがって、そのような条件的言語は、概して、特徴、要素、および／またはステップが、１つ以上の実施形態に任意の方法で要求されるか、または１つ以上の実施形態が、ユーザ入力もしくはプロンプトを用いて、もしくは用いずに、これらの特徴、要素、および／またはステップが含まれるのか、それとも任意の特定の実施形態で行われるべきであるかを決定するための論理を必ず含むことを含意することは意図していない。
【００６８】
特に明記しない限り、句「Ｘ、ＹまたはＺのうちの少なくとも１つ」などの選言的な言葉は、そうでなければ項目、用語等がＸ、ＹもしくはＺまたはそのいずれかの組み合わせ（例えば、Ｘ、Ｙおよび／またはＺ）であってよいことを示すために一般的に用いられるとして文脈の中で理解される。ゆえに、係る選言的言語は、特定の実施形態がＸの少なくとも１つ、Ｙの少なくとも１つまたはＺの少なくとも１つがそれぞれ存在することを必要とすることを暗示することを一般的に意図しておらず、意味するべきではない。
【００６９】
特に明記しない限り、『ａ』または『ａｎ』等の冠詞は、概して、１つ以上の記載された項目を含むと解釈すべきである。したがって、「するように構成された装置」等の語句は、１つ以上の列挙された装置を含むことを目的とする。そのような１つまたは複数の列挙された装置は、記載された列挙を実行するように集合的に構成されることもできる。例えば、「列挙Ａ、ＢおよびＣを実行するように構成されたプロセッサ」は、列挙ＢおよびＣを実行するように構成された第２のプロセッサと連動して機能し、列挙Ａを実行するように構成された第１のプロセッサを含む場合がある。
【００７０】
本明細書に説明する、および／または添付の図面に図示するフロー図のいずれのルーチンの記述、要素、またはブロックも、ルーチンにおける特定の論理的機能または要素を実装するための１つまたは複数の実行可能な命令を含む、モジュール、セグメント、またはコードの部分を潜在的に表すものとして理解されるべきである。代替の実施態様は、本明細書に説明する実施形態の範囲内に含まれ、その中で要素または機能は、当業者によって理解されるであろうように、関係する機能性に応じて、実質的に同時のまたは逆の順序を含む、示され、説明されるものとは異なる順序で削除または実行され得る。
【００７１】
上記の実施形態は、以下の条項を考慮して、一層よく理解することができる。
【００７２】
条項１．ストリーミングコンテンツを提供するためのシステムであって、
主要コンテンツに相当する第１のコンテンツ部分のセットを含むデータストアであって、前記第１のコンテンツ部分のセットが、１つまたは複数の第１のパラメータに従って符号化される、前記データストアと、
コンピュータ実行可能命令で構成された１つまたは複数のコンピューティング装置であって、前記コンピュータ実行可能命令が実行されると、
クライアントコンピューティング装置から前記主要コンテンツを含むコンテンツストリームを提供するための要求を取得すること、
付加的コンテンツを前記コンテンツストリームに含めることを決定すること、
前記データストアが、前記１つまたは複数の第１のパラメータに従って符号化された前記付加的コンテンツを構成する第２のコンテンツ部分のセットを含まないものと判断すること、
前記コンテンツストリームに含めるフォールバックコンテンツを選択することであって、前記データストリームが、前記１つまたは複数の第１のパラメータに従って符号化された前記フォールバックコンテンツを構成する第３のコンテンツ部分のセットをさらに含む、前記選択すること、
前記コンテンツストリームのマニフェストを生成することであって、前記マニフェストが、前記第１のコンテンツ部分のセット内のそれぞれのコンテンツ部分の識別子と、前記第３のコンテンツ部分のセット内のそれぞれのコンテンツ部分の識別子とを含む、前記生成すること、
前記マニフェストを前記クライアントコンピューティング装置に送信すること、および
前記１つまたは複数の第１のパラメータに従って、前記付加的コンテンツの符号化を開始して、前記第１のパラメータのセットに従って符号化された前記付加的コンテンツを構成する第２のコンテンツ部分のセットをもたらすこと、
を前記コンピューティング装置に行わせる、前記１つまたは複数のコンピューティング装置と、
を含む、前記システム。
【００７３】
条項２．前記主要コンテンツが、オーディオコンテンツ、ビデオコンテンツ、またはテキストコンテンツのうちの少なくとも１つである、条項１に記載のシステム。
【００７４】
条項３．前記付加的コンテンツが、免責事項、警告、クレジット、献辞、または広告のうちの少なくとも１つである、条項１に記載のシステム。
【００７５】
条項４．前記１つまたは複数のコンピューティング装置が、
前記主要コンテンツを含む第２のコンテンツストリームを提供するための第２の要求を取得すること、
前記第２の要求に応答して、
前記付加的コンテンツを前記第２のコンテンツストリームに含めるべきであると決定すること、
前記データストアが、前記１つまたは複数の第１のパラメータに従って符号化された前記付加的コンテンツを構成する前記第２のコンテンツ部分のセットを含むものと判断すること、
前記第２のコンテンツストリーム用の第２のマニフェストを生成することであって、前記第２のマニフェストが、前記第１のコンテンツ部分のセット内のそれぞれのコンテンツ部分の識別子と、前記第２のコンテンツ部分のセット内のそれぞれのコンテンツ部分の識別子とを含む、前記生成すること、
前記第２のマニフェストを前記クライアントコンピューティング装置に送信すること、
を行わせる前記コンピュータ実行可能命令を用いてさらに構成される、条項１に記載のシステム。
【００７６】
条項５．前記１つまたは複数のコンピューティング装置が、
前記第３のコンテンツ部分のセットのコンテンツ部分に対する要求を受信すること、および
前記要求に応じて前記コンテンツ部分を送信すること、
を行わせる前記コンピュータ実行可能命令を用いてさらに構成され、
前記コンテンツ部分が、コンテンツ配信ネットワーク内のクライアントコンピューティング装置またはポイントオブプレゼンス（ＰＯＰ）の少なくとも一方に送信される、条項１に記載のシステム。
【００７７】
条項６．前記１つまたは複数のコンピューティング装置が、
前記付加的コンテンツの前記プロバイダに関連するシステムに要求を送信して、前記コンテンツストリーム内の構成のための前記付加的コンテンツを選択すること、および
前記コンテンツストリーム内の前記付加的コンテンツ構成を識別する応答を取得すること、
を行わせる前記コンピュータ実行可能命令を用いてさらに構成される、条項１に記載のシステム。
【００７８】
条項７．ストリーミングコンテンツ配信システムによって実行されるコンピュータ実行方法であって、
クライアントコンピューティング装置から、コンテンツストリームを提供する要求を取得すること、
前記コンテンツストリームに対する１つまたは複数の符号化パラメータを決定すること、
前記コンテンツストリームに含まれるコンテンツを選択すること、
前記コンテンツが、前記１つまたは複数の符号化パラメータに従って符号化されたフォーマットで利用できないと判定すること、
前記１つまたは複数の符号化パラメータに従って前記コンテンツの符号化を開始すること、
前記コンテンツストリーム内に含めるためのフォールバックコンテンツを選択すること、
前記コンテンツストリーム用のマニフェストを生成することであって、前記マニフェストが、前記フォールバックコンテンツに対応する識別子を含む、前記生成すること、および
前記マニフェストを前記クライアントコンピューティング装置に送信すること、
を含む、前記コンピュータ実行方法。
【００７９】
条項８．前記コンテンツストリームに含まれる前記コンテンツを選択することが、
前記コンテンツストリーム内の構成のための前記コンテンツを選択するために、前記コンテンツの前記プロバイダに関連するシステムに要求を送信すること、および
前記コンテンツストリーム内の構成のための前記コンテンツを識別する応答を取得すること、
を含む、条項７に記載のコンピュータ実行方法。
【００８０】
条項９．前記応答が、動画広告掲出テンプレート（ＶＡＳＴ）の仕様に従ってフォーマットされる、条項８に記載のコンピュータ実行方法。
【００８１】
条項１０．前記１つまたは複数の符号化パラメータが、前記コンテンツストリームの一部として出力されるべきコンテンツ部分のビットレート、オーディオ正規化値、フレームレート、または解像度のうちの少なくとも１つについての値を含む、条項７に記載のコンピュータ実行方法。
【００８２】
条項１１．前記マニフェストが、前記コンテンツストリームの一部として出力されるべき主要コンテンツに対応する識別子をさらに含む、条項７に記載のコンピュータ実行方法。
【００８３】
条項１２．前記コンテンツストリームに対する第２の要求を受信すること、
前記コンテンツが、前記１つまたは複数の符号化パラメータに従って符号化された前記フォーマットで利用可能であると判定すること、
前記コンテンツストリームのための第２のマニフェストを生成することであって、前記第２のマニフェストが、前記１つまたは複数の符号化パラメータに従って符号化された前記コンテンツに対応する識別子を含む、前記生成すること、および
前記マニフェストを前記クライアントコンピューティング装置に送信すること、
を含む、条項７に記載のコンピュータ実行方法。
【００８４】
条項１３．前記フォールバックコンテンツが、前記コンテンツに対する代替物、または１つもしくは複数の代替の符号化パラメータに従って符号化された前記コンテンツの構成のうちの少なくとも１つに対応する、条項７に記載のコンピュータ実行方法。
【００８５】
条項１４．コンピュータ実行可能命令を格納した非一時的コンピュータ可読媒体であって、前記コンピュータ実行可能命令がストリーミングコンテンツ配信システムによって実行されると、前記ストリーミングコンテンツ配信システムに
クライアントコンピューティング装置からコンテンツストリームを提供する要求を取得すること、
前記コンテンツストリーム用のマニフェストファイルを生成することであって、前記マニフェストファイルが、前記コンテンツストリームの一部として出力されるコンテンツ部分の識別子を含み、前記コンテンツストリームの一部として出力される少なくとも１つのコンテンツ部分が、前記ストリーミングコンテンツ配信システムにおいてまだ利用可能ではない、前記生成すること、
前記マニフェストファイルを前記クライアントコンピューティング装置に送信すること、
前記マニフェストファイル内で識別される前記少なくとも１つのコンテンツ部分をもたらすようにコンテンツファイルの符号化を開始すること、
前記少なくとも１つのコンテンツ部分に対する要求を受信すること、
前記マニフェストファイル内で識別された前記少なくとも１つのコンテンツ部分が、前記クライアントコンピューティング装置への送信に利用可能ではないと決定すること、
フォールバックコンテンツ部分を選択すること、および
前記フォールバックコンテンツ部分、または前記フォールバックコンテンツ部分を識別する情報を送信すること、
を行わせる、前記非一時的コンピュータ可読媒体。
【００８６】
条項１５．前記コンテンツストリームが、ハイパーテキストトランスポートプロトコル（ＨＴＴＰ）ライブストリーミングプロトコル（ＨＬＳ）、ＭＰＥＧ−ＤＡＳＨ（ＤＡＳＨ）、ＭＩＣＲＯＳＯＦＴスムーズストリーミング（ＭＳＳ）プロトコル、またはＨＴＴＰ動的ストリーム（ＨＤＳ）プロトコルのうちの少なくとも１つに従ってフォーマットされる、条項１４に記載の非一時的コンピュータ可読媒体。
【００８７】
条項１６．前記コンピュータ実行可能命令がさらに、前記ストリーミングコンテンツ配信システムに、前記少なくとも１つのコンテンツ部分に対して１つまたは複数のパラメータを選択させ、前記コンピュータ実行可能命令が、前記ストリーミングコンテンツ配信システムに、前記１つまたは複数のパラメータに従って前記コンテンツファイルの符号化を開始させる、条項１４に記載の非一時的コンピュータ可読媒体。
【００８８】
条項１７．前記少なくとも１つのコンテンツ部分に対する前記１つまたは複数のパラメータが、前記コンテンツストリームの一部として出力されるべき他のコンテンツ部分の１つまたは複数のパラメータに少なくとも部分的に基づいて選択される、条項１４に記載の非一時的コンピュータ可読媒体。
【００８９】
条項１８．前記コンピュータ実行可能命令がさらに、前記ストリーミングコンテンツ配信システムに、前記コンテンツファイル内のコンテンツのデフォルト構成に相当するフォールバックコンテンツ部分を選択させる、条項１４に記載の非一時的コンピュータ可読媒体。
【００９０】
条項１９．前記フォールバックコンテンツ部分を識別する前記情報が、前記フォールバックコンテンツ部分の位置へのリダイレクトである、条項１４に記載の非一時的コンピュータ可読媒体。
【００９１】
条項２０．前記リダイレクトが、前記リダイレクトのキャッシュを妨げるために選択されたＴＴＬ値に関連付けられる、条項１９に記載の非一時的コンピュータ可読媒体。
【００９２】
上記の実施形態に対して多くの変形および修正を加えることができ、それらの要素は他の許容可能な例の中にあるものとして理解されるべきであることを強調しなければならない。そのような修正および変形はすべて、本開示の範囲内に含まれ、以下の特許請求の範囲によって保護されることを意図している。
【図１】
2019535191.tif 000003
【図２】
2019535191.tif 000004
【図３Ａ】
2019535191.tif 000005
【図３Ｂ】
2019535191.tif 000006
【図４Ａ】
2019535191.tif 000007
【図４Ｂ】
2019535191.tif 000008
【図５】
2019535191.tif 000009
【国際調査報告】
2019535191.tif 000010
2019535191.tif 000011