(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022074119
(43)【公開日】2022-05-17
(54)【発明の名称】ビデオストリーミングのためのセッションベースの適応再生プロファイルの決定
(51)【国際特許分類】
H04N 21/2662 20110101AFI20220510BHJP
H04N 21/24 20110101ALI20220510BHJP
【FI】
H04N21/2662
H04N21/24
【審査請求】有
【請求項の数】20
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2021177591
(22)【出願日】2021-10-29
(31)【優先権主張番号】17/087,255
(32)【優先日】2020-11-02
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】512333560
【氏名又は名称】フル・エルエルシー
(74)【代理人】
【識別番号】100108855
【弁理士】
【氏名又は名称】蔵田 昌俊
(74)【代理人】
【識別番号】100103034
【弁理士】
【氏名又は名称】野河 信久
(74)【代理人】
【識別番号】100179062
【弁理士】
【氏名又は名称】井上 正
(74)【代理人】
【識別番号】100199565
【弁理士】
【氏名又は名称】飯野 茂
(74)【代理人】
【識別番号】100219542
【弁理士】
【氏名又は名称】大宅 郁治
(74)【代理人】
【識別番号】100153051
【弁理士】
【氏名又は名称】河野 直樹
(74)【代理人】
【識別番号】100162570
【弁理士】
【氏名又は名称】金子 早苗
(72)【発明者】
【氏名】トンギュ・ダイ
(72)【発明者】
【氏名】ラン・シエ
(72)【発明者】
【氏名】ウェンハオ・ジャン
(72)【発明者】
【氏名】ダーリャン・フー
(72)【発明者】
【氏名】チャオ・リー
(72)【発明者】
【氏名】チャン・ショー
(72)【発明者】
【氏名】イーティン・グイ
(72)【発明者】
【氏名】イーチョン・リュー
(72)【発明者】
【氏名】シージー・シー
【テーマコード(参考)】
5C164
【Fターム(参考)】
5C164FA06
5C164MB13S
5C164SB08S
5C164SB41P
5C164SC03P
5C164YA21
5C164YA24
(57)【要約】 (修正有)
【課題】再生経験を最適化するプロファイルラダーをクライアントに提供する方法及びストレージメディアを提供する。
【解決手段】方法は、クライアントからのビデオを求める要求に関連付けられているセッションに関するセッションの特徴を受信し、セッションの特徴を使用してセッションに関するネットワーク状況を予測する。ネットワーク状況に基づいて、利用可能なプロファイルのサブセットを選択する。利用可能なプロファイルは、異なる再生特性に関連付けられている。この方法は、ビデオの再生のための利用可能なプロファイルのサブセットを含むプロファイルラダーをクライアントに提供する。プロファイルラダーは、クライアントを、セッション中にビデオのセグメントを要求するために、利用可能なプロファイルのサブセットを使用することを制限する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
コンピューティングデバイスによって、クライアントからのビデオを求める要求に関連付けられているセッションに関するセッションの特徴を受信することと、
前記コンピューティングデバイスによって、前記セッションの特徴を使用して前記セッションに関するネットワーク状況を予測することと、
前記コンピューティングデバイスによって、前記ネットワーク状況に基づいて、利用可能なプロファイルのサブセットを選択することと、ここにおいて、前記利用可能なプロファイルが、異なる再生特性に関連付けられている、
前記コンピューティングデバイスによって、前記ビデオの再生のための利用可能なプロファイルの前記サブセットを含むプロファイルラダーを前記クライアントに提供することと、ここにおいて、前記プロファイルラダーが、前記クライアントを、前記セッション中に前記ビデオのセグメントを要求するために、利用可能なプロファイルの前記サブセットを使用することに制限する、
を備える方法。
【請求項2】
前記ネットワーク状況を予測することが、
前記ネットワーク状況を予測するために前記セッションの特徴を予測ネットワークへと入力することを備える、請求項1に記載の方法。
【請求項3】
前記ネットワーク状況が、予測された利用可能な帯域幅と、サービス品質メトリックとのうちの少なくとも一方を備える、請求項1に記載の方法。
【請求項4】
前記セッションの特徴から前記ネットワーク状況を予測するための予測モデルを生成するために前記クライアントに関する過去のセッションの特徴を用いて予測ネットワークをトレーニングすること
をさらに備える、請求項1に記載の方法。
【請求項5】
利用可能なプロファイルの前記サブセットを選択することが、
複数のプロファイルサブセットからプロファイルサブセットを選択すること、ここにおいて、それぞれのプロファイルサブセットが、利用可能なプロファイルの別々のサブセットを含む、を備える、請求項1に記載の方法。
【請求項6】
利用可能なプロファイルの前記サブセットを選択することが、
利用可能なプロファイルの前記サブセットにおける前記プロファイルを予測すること、ここにおいて、利用可能なプロファイルの前記サブセットが、固定されたプロファイルサブセットから選択することなしに動的に予測される、を備える、請求項1に記載の方法。
【請求項7】
利用可能なプロファイルの前記サブセットを選択することが、
利用可能なプロファイルの前記サブセットを選択するために前記ネットワークメトリックにルールのセットを適用することを備える、請求項1に記載の方法。
【請求項8】
利用可能なプロファイルの前記サブセットを選択することが、
複数のプロファイルサブセットのうちの1つを選択するために前記ネットワークメトリックにルールのセットを適用すること、ここにおいて、それぞれのプロファイルサブセットが、利用可能なプロファイルの別々のサブセットを含む、を備える、請求項1に記載の方法。
【請求項9】
前記プロファイルラダーを提供することが、
前記プロファイルラダーを前記クライアントへ送ること、ここにおいて、前記クライアントが、前記セッション中に前記ビデオのセグメントを要求するために、利用可能なプロファイルの前記サブセットを使用することに制限を適用する、を備える、請求項1に記載の方法。
【請求項10】
前記プロファイルラダーを提供することが、
前記プロファイルラダーをコンテンツ配信ネットワークへ送ること、ここにおいて、前記コンテンツ配信ネットワークが、前記プロファイルラダーを前記クライアントへ通信する、を備える、請求項1に記載の方法。
【請求項11】
前記クライアントへ送られるマニフェストが、ビデオのセグメントに関するすべての利用可能なプロファイルに関する情報を含み、
前記クライアントが、前記セグメントビデオに関するプロファイルを要求するために、利用可能なプロファイルの前記サブセットを使用することに制限を適用する、
請求項10に記載の方法。
【請求項12】
前記クライアントが、前記ビデオの再生の開始に際して、利用可能なプロファイルの前記サブセットにプロファイルを加えることを可能にされる、請求項1に記載の方法。
【請求項13】
前記クライアントが、前記ビデオの再生の開始に際して、利用可能なプロファイルの前記サブセットに対してプロファイルを除去することを可能にされる、請求項1に記載の方法。
【請求項14】
命令を含む非一時的コンピュータ可読ストレージメディアであって、前記命令が、実行されたときに、
クライアントからのビデオを求める要求に関連付けられているセッションに関するセッションの特徴を受信することと、
前記セッションの特徴を使用して前記セッションに関するネットワーク状況を予測することと、
前記ネットワーク状況に基づいて、利用可能なプロファイルのサブセットを選択することと、ここにおいて、前記利用可能なプロファイルが、異なる再生特性に関連付けられている、
前記ビデオの再生のための利用可能なプロファイルの前記サブセットを含むプロファイルラダーを前記クライアントに提供することと、ここにおいて、前記プロファイルラダーが、前記クライアントを、前記セッション中に前記ビデオのセグメントを要求するために、利用可能なプロファイルの前記サブセットを使用することに制限する、を行うように動作可能であるようにコンピュータシステムを制御する、非一時的コンピュータ可読ストレージメディア。
【請求項15】
コンピューティングデバイスによって、利用可能なプロファイルのサブセットを含むプロファイルラダーを受信することと、ここにおいて、利用可能なプロファイルの前記サブセットが、ビデオを再生するためのセッションに関して決定される、
前記コンピューティングデバイスによって、前記プロファイルラダーにおけるプロファイルを使用して、ビデオのセグメントを求める要求を送ることと、
前記コンピューティングデバイスによって、前記ビデオの前記再生に関する再生状況を分析することと、
前記再生状況の前記分析に基づいて、前記セッションに関して前記プロファイルラダーを調整するかどうかを決定することと、
前記プロファイルラダーを調整することが決定された場合に、前記利用可能なプロファイルのうちからのプロファイルを前記プロファイルラダーに加えること、または利用可能なプロファイルの前記サブセットからプロファイルを除去することと
を備える方法。
【請求項16】
前記プロファイルラダーを調整するかどうかを決定することが、
前記ビデオの前記再生中の再バッファリングの発生に関する情報を保持することと、
利用可能なプロファイルの前記サブセットにおける最も低い帯域幅を有するプロファイルよりも低い帯域幅を有するプロファイルを加えることとを備える、請求項15に記載の方法。
【請求項17】
前記プロファイルラダーを調整するかどうかを決定することが、
利用可能な帯域幅がしきい値よりも大きいかどうかを決定することと、
利用可能なプロファイルの前記サブセットに以前に加えられたプロファイルを除去することとを備える、請求項15に記載の方法。
【請求項18】
前記プロファイルラダーを調整するかどうかを決定することが、
利用可能な帯域幅がしきい値よりも大きいかどうか、またはバッファ長がしきい値よりも大きいかどうかを決定することと、
利用可能なプロファイルの前記サブセットに以前に加えられたプロファイルを除去することとを備える、請求項15に記載の方法。
【請求項19】
前記プロファイルラダーを調整するかどうかを決定することが、
利用可能なプロファイルの前記サブセットにおける最も高いビットレートを有するプロファイルよりも高いビットレートを有するプロファイルを加えることを備える、請求項15に記載の方法。
【請求項20】
利用可能なプロファイルの前記サブセットが、前記セッションに関する予測されたネットワーク状況に基づいて予測される、請求項15に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
【背景技術】
【0002】
[0001]ビデオストリーミングにおいては、プロファイルラダーは、クライアントがビデオのセグメントをストリーミングする際に使用する上で利用可能であるさまざまなプロファイルを一覧表示する。それぞれのプロファイルは、別々のレベルのビットレートなど、別々のレベルに関連付けられ得る。したがって、ネットワーク状況が良好である場合には、クライアントは、より高いビットレートを有するプロファイルを要求することができる。逆に、ネットワーク状況が悪化している場合には、クライアントは、より低いビットレートを有するプロファイルを要求することができる。ビデオ配信システムは、良好なネットワーク状況が経験されている場合には、より高いビットレートを有するビデオプロファイルをクライアントに提供したいと望み、これは、ストリーミングされているビデオの品質を改善する。劣悪なネットワーク状況が経験されている場合には、ビデオ配信システムは、より低いビットレートを有するプロファイルをクライアントに提供したいと望み、それによってクライアントは、再バッファリングまたはダウンロードの失敗など、いかなる再生の問題も伴わずにビデオを再生することができる。
【0003】
[0002]プロファイルラダーは、プラットフォーム上のクライアントのためのすべてのセッションに関して同じであり得る。たとえば、モバイルデバイスプラットフォーム上のすべてのモバイルクライアントは、同じプロファイルラダーを受信し得る。同じプロファイルラダーを使用することは、最適な再生状況を提供しない場合がある。なぜなら、別々のモバイルクライアントは、別々のネットワーク状況を経験し得るからである。たとえば、利用可能なネットワーク帯域幅がプロファイルラダーにおける最も高いプロファイルのビットレートを超えている場合には、クライアントは、利用可能な帯域幅を介して再生され得る最も高い可能な品質のビデオを受信していない。また、利用可能なネットワーク帯域幅がプロファイルラダーにおける最も低いプロファイルの最小ビットレートよりも低い場合には、クライアントは、再バッファリングを経験し得る。なぜなら、プロファイルラダーにおける最も低いプロファイルによって提供される最も低いビットレートでビデオをストリーミングするのに十分な利用可能なネットワーク帯域幅がないからである。したがって、プロファイルラダーにおけるプロファイルは、クライアントにとっての再生経験を最適化していない。
【発明の概要】
【0004】
[0003]後続する考察に、特に図面に関して、示されている詳細は、例示的な考察という目的のための例を表しており、本開示の原理および概念的な側面の記述を提供するために提示されているということが強調される。この点については、本開示の基本的な理解にとって必要とされるものを超えて実施の詳細を示すための試みは行われていない。後続する考察は、図面と併せて、どのようにして本開示による実施形態が実施され得るかを当業者に対して明らかにする。さまざまな図面およびサポートする記述における同様のまたは同じ要素どうしを識別するかまたはそれらにその他の形で言及するために、同様のまたは同じ参照番号が使用され得る。添付の図面においては、下記のとおりである。
【図面の簡単な説明】
【0005】
【
図1】[0004]いくつかの実施形態による、適応プロファイルラダーを生成するための簡略化されたシステムを示す図。
【
図2】[0005]いくつかの実施形態による、プロファイルサブセットを予測するための方法の簡略化されたフローチャート。
【
図3】[0006]いくつかの実施形態による、プロファイル予測システムのさらに詳細な例を示す図。
【
図4】[0007]いくつかの実施形態による、プロファイルラダー用に選択されることが可能であるさまざまなプロファイルサブセットの例を示す図。
【
図5】[0008]いくつかの実施形態による、プロファイル予測システムをトレーニングすることの例を示す図。
【
図6】[0009]いくつかの実施形態による、ネットワークメトリック予測のさらに詳細な例を示す図。
【
図7】[0010]いくつかの実施形態による、予測モデルを使用してプロファイルサブセット決定を生成することの例を示す図。
【
図8】[0011]いくつかの実施形態による、プロファイルサブセットを選択するための方法の簡略化されたフローチャート。
【
図9】[0012]いくつかの実施形態による、再生セッション中にプロファイルラダーを適応させるための方法の簡略化されたフローチャート。
【
図10】[0013]いくつかの実施形態による、プロファイルに関するより低いビットレートをプロファイルラダーに加えることの例を示す図。
【
図11】[0014]一実施形態による、1つまたは複数の通信ネットワークを介して複数のクライアントデバイスと通信状態にあるビデオストリーミングシステムを示す図。
【
図12】[0015]ビデオコンテンツおよび広告を見るための装置の線図。
【発明を実施するための形態】
【0006】
[0016]本明細書において記述されているのは、ビデオストリーミングシステムのための技術である。以降の記述においては、説明の目的から、いくつかの実施形態の徹底的な理解を提供するために、多くの例および特定の詳細が示されている。特許請求の範囲によって定義されているいくつかの実施形態は、これらの例における特徴のうちのいくつかまたはすべてを単独で、または以降で記述されているその他の特徴と組み合わせて含むことが可能であり、本明細書において記述されている特徴および概念の修正および均等物をさらに含み得る。
【0007】
[0017]ビデオ配信システムが、セッションごとになど、動的に適応されることが可能である適応プロファイルラダーを使用し得る。プロファイル予測システムが、セッションに関するネットワーク状況をそのセッションが開始する前に予測することができる。次いでプロファイル予測システムは、セッションに関するプロファイルラダーを選択するために、予測されたネットワーク状況を使用する。また、再生中に、ネットワーク状況が、予測されたネットワーク状況から変化した場合には、インセッションプロファイルアダプタが、より低いビットレートを有するより低いプロファイル、またはより高いビットレートを有するより高いプロファイルを加えることによってなど、それに従ってプロファイルラダーを調整し得る。
【0008】
[0018]適応プロファイルラダーを使用することは、ビデオの再生を改善し得る。たとえば、ネットワーク状況を予測して、それらの予測されたネットワーク状況にプロファイルラダーを適応させることは、現在のセッション中に経験され得るネットワーク状況により適しているプロファイルをクライアントに提供し得る。したがってビデオ配信システムは、プラットフォーム(たとえば、モバイルデバイスプラットフォーム、リビングルームデバイスプラットフォーム等)ごとになど、固定されたプロファイルラダーをクライアント用に使用する代わりに別々のクライアントに関するセッションごとにプロファイルラダーを適応的に計算する。このケースにおいては、ビデオ配信システムは、同じプラットフォーム上のクライアントどうしに関して、そしてまた別々のプラットフォーム上のクライアントどうしに関してプロファイルラダーを適応させ得る。別々のセッションは別々のネットワーク状況を経験し得るので、適応プロファイルラダーは、それぞれのセッションにおいて経験され得るネットワーク状況により適しているプロファイルを含み得る。また、ネットワーク状況が変化した場合には、インセッションプロファイルアダプタは、より適切である可能性があるさまざまなプロファイルを加えるように、またはもはや適切ではない可能性があるプロファイルを除去するように、これらの変化するネットワーク状況に適応することができる。したがってビデオの再生は、ネットワーク状況における変化に対して回復力があり得る。
【0009】
[0019]システムの概観
[0020]
図1は、いくつかの実施形態による、適応プロファイルラダーを生成するための簡略化されたシステム100を示している。システム100は、ビデオ配信システム102、クライアント104、およびコンテンツ配信ネットワーク106を含む。ビデオ配信システム102、コンテンツ配信ネットワーク106、およびクライアント104は、1つまたは複数のコンピューティングデバイスを使用して実装され得る。また、ビデオ配信システム102、コンテンツ配信ネットワーク106、およびクライアント104の単一の例が示されているが、システム100は、複数のビデオ配信システム102、コンテンツ配信ネットワーク106、および/またはクライアント104を含み得るということが理解されるであろう。たとえば、ビデオ配信システム102は、複数のクライアント104と通信することが可能であり、コンテンツ配信ネットワーク106は、複数のサーバを介してクライアント104へビデオを送り得る、といった具合である。また、ビデオ配信システム102、コンテンツ配信ネットワーク106、およびクライアント104は、別々のエンティティとして示されているが、それらによって実行される機能は、それらの間において、またはその他のエンティティへ分散され得る。
【0010】
[0021]ビデオ配信システム102は、ビデオオンデマンドまたはテレビの生放送からのライブビデオなどのビデオをクライアント104が要求することを可能にするビデオ配信サービスを提供し得る。ビデオ配信システム102は、クライアント104におけるインターフェース112において表示されるアプリケーションを提供し得る。ユーザアカウントが、ビデオ配信サービスにアクセスするためにアプリケーションにログオンし得る。次いでビデオ配信システム102は、クライアント104からビデオ要求を受信し、そのビデオ要求を処理して、クライアント104がビデオをストリーミングすることを可能にし得る。
【0011】
[0022]クライアント104は、メディアプレーヤ(図示せず)を介してなど、インターフェース112においてビデオを再生できるコンピューティングデバイスを含み得る。クライアント104は、モバイル電話、スマートフォン、セットトップボックス、テレビ、リビングルームデバイス、タブレットデバイスなどを含み得る。クライアント104は、プラットフォーム上で動作することが可能であり、プラットフォームは、そのプラットフォーム上で動作するデバイスのタイプによって分類され得る。たとえば、プラットフォームは、モバイルデバイスプラットフォーム、リビングルームデバイスプラットフォームなどを含む。ユーザによって使用されるユーザアカウントが、ビデオ配信サービスにアクセスするためにクライアント104を使用し得る。たとえば、ユーザアカウントは、ユーザアカウントに関する情報を識別するためにビデオ配信サービスにログインし得る。クライアント104が、ビデオを求める要求をユーザアカウントから受信した場合には、クライアント104は、そのビデオを求めてビデオ配信システム102へビデオ要求を送り得る。
【0012】
[0023]コンテンツ配信ネットワーク106は、クライアント104へビデオを配信できるサーバを含む。たとえば、コンテンツ配信サーバシステム116が、クライアント104へビデオを配信できる1つまたは複数のサーバを含み得る。いくつかの実施形態においては、コンテンツ配信サーバシステム116は、クライアント104へビデオのセグメントを配信する。それらのセグメントは、ビデオのうちの6秒間など、ビデオの一部分であり得る。知られているように、ビデオは、別々のレベルに対応する複数のプロファイルで符号化されることが可能であり、それらの別々のレベルは、ビットレートおよび/または品質の別々のレベルであり得る。クライアント104は、現在の再生状況に基づいてプロファイルレベルのうちの1つからビデオのセグメントを要求し得る。たとえば、クライアント104は、現在の利用可能な帯域幅およびその他のネットワーク状況に基づいてビデオに関するプロファイルを選択するために適応ビットレートアルゴリズムを使用し得る。
【0013】
[0024]ビデオの再生を開始するためのプロセスにおいて、ビデオ配信システム102は、ビデオを求める要求をクライアント104から受信し得る。ビデオ配信システム102は、コンテンツ配信ネットワーク106を選択し、コンテンツ配信ネットワーク106および/またはクライアント104に情報を提供して、コンテンツ配信ネットワーク106とクライアント104との間においてビデオがストリーミングされることを可能にし得る。ビデオ配信システム102はまた、再生構成およびメディア提示の記述など、さまざまな情報を提供し得る。再生構成は、ストリーミングなどのための利用可能なプロトコルを含み得る。メディア提示の記述は、利用可能であるプロファイル、セグメント持続時間、およびビデオのその他の特性についての情報を含み得る。
【0014】
[0025]ビデオ配信システム102は、コンテンツ配信ネットワーク106とクライアント104との間においてビデオをストリーミングするためにセッションにおいて使用されるプロファイルラダーを適応的に決定する。プロファイルラダーは、セッションにおいて要求するためにクライアント104にとって利用可能であるプロファイルを含む。プロファイルは、さまざまなレベルで分類されることが可能であり、それぞれのレベルは、別々の特性に関連付けられ得る。たとえば、それぞれのレベルは、400キロバイト/秒(kbps)、650kbps、1000kbps、1500kbps、...12000kbpsなど、別々のビットレートに関連付けられ得る。しかしながらレベルは、品質特性(たとえば、解像度)など、ビットレート以外の特性に関連付けられ得る。いくつかの実施形態においては、ビデオは、400kbpsに関連付けられているプロファイルに関して400kbpsレベルで符号化されるなど、レベルは、ビデオがそのレベルに関してどのように符号化されるかに基づいて決定され得る。
【0015】
[0026]いくつかの実施形態においては、12個のプロファイルなど、利用可能なX個のプロファイルがあり得るが、7個など、それらのプロファイルのサブセットのみが、セッション中に使用され得る。これらの数のプロファイルが論じられているが、さまざまな数のプロファイルが利用可能であり得、および/またはサブセットは、さまざまな数のプロファイルを含み得るということが理解されるであろう。したがって、プロファイルのサブセットのみが使用されるので、クライアント104によって経験されているネットワーク状況のもとで有用であり得る、プロファイルラダーにおけるプロファイルの選択をクライアント104に提供することが重要である。プロファイル予測システム108が、セッションに関して適応されているプロファイルサブセットを生成する。適応プロファイルラダーを生成することが、セッションに関して記述されているが、適応プロファイルラダーは、同じクライアントからのビデオを求める複数の要求に、またはその他のクライアントとのセッションになど、複数のセッションに適用され得る。適応プロファイルラダーは、固定されたラダーとは異なる。なぜなら、適応プロファイルラダーは、クライアント104に関連付けられている特性に基づいて生成されるからである。以降でさらに詳細に論じられるように、プロファイル予測システム108は、セッションに関するネットワーク状況を予測し、次いで、プロファイルサブセット決定を生成するためにネットワーク状況を使用し得る。プロファイルサブセット決定は、セッションに関するプロファイルラダーに含めるための利用可能なプロファイルのサブセットを識別し得る。次いでビデオ配信システム102は、プロファイルサブセット決定をコンテンツ配信ネットワーク106および/またはクライアント104に提供し得る。
【0016】
[0027]コンテンツ配信ネットワーク106は、ビデオ要求と、プロファイルサブセット決定を反映するプロファイルラダーとを受信し得る。マニフェストジェネレータ114は、クライアント104に関するマニフェストを生成し得る。マニフェストは、クライアント104によって要求されることが可能であるビデオのセグメントに関する情報と、ビデオのセグメントを再生するために必要とされるその他の任意の情報とを列挙し得る。それらの情報は、クライアント104が再生のためのセグメントを要求するために使用し得るリンクを含み得る。いくつかの実施形態においては、マニフェストは、セグメントごとのそれぞれのプロファイルに関するリンクを含むなど、マニフェストは、それぞれのセグメントに関してすべての利用可能なプロファイルを列挙する。クライアント104は、セグメントの再生を要求するためにリンクのうちの1つを選択することができる。
【0017】
[0028]上で論じられているように、プロファイルラダーは、クライアント104をプロファイルのサブセットに制限し得る。その制限を施行するために、さまざまな方法が使用され得る。たとえば、マニフェストジェネレータ114は、クライアント104によって使用されることが可能であるプロファイルラダーにおけるプロファイルサブセットを識別する情報をマニフェストに挿入し得る。その他の実施形態においては、コンテンツ配信ネットワーク106は、メタデータにおいて、または制御チャネルにおいてなど、その他の方法でプロファイルラダーを送り得る。また、ビデオ配信システム102は、プロファイルラダーにおけるプロファイルのサブセットに関する情報をクライアント104に送ることが可能であり、クライアント104は次いで、そのサブセットにおけるプロファイルからのみ選択を行い得る。したがって、たとえマニフェストがすべてのプロファイルへのリンクを含んでいても、プロファイルラダーは、クライアント104がマニフェストに要求できるプロファイルを制限する。
【0018】
[0029]いくつかの実施形態においては、コンテンツ配信ネットワーク106が、それぞれのプロファイルを求めるセグメントに関する要求を受信する際に、セグメントの配信中にはコンテンツ配信ネットワーク106のロジックは変更されないままであり得る。クライアント104は、使用されることが可能であるプロファイルラダーにおけるプロファイルを決定し、それらのプロファイルを求める要求を送る。制限は、コンテンツ配信ネットワーク106ではなく、クライアント104において適用され得る。コンテンツ配信ネットワーク106は、すべてのプロファイルを伴うマニフェストを提供することが可能であり、適応プロファイルラダーに基づいてプロファイルを加えるまたはマニフェストからプロファイルを除去する必要なしに、リンクを求める要求に応答する。しかしながら、コンテンツ配信ネットワーク106は、プロファイルラダーにおいて提供されるプロファイルのサブセットのみを伴うマニフェストを提供し得る。
【0019】
[0030]クライアント104がマニフェストを受信した場合には、クライアント104は、プロファイルに関連付けられているセグメントを求める要求を送ることができる。たとえば、クライアント104は、所望のビットレートに関連付けられているセグメントに関するリンクを選択し得る。コンテンツ配信サーバシステム116は次いで、要求されているプロファイルに関するビデオのセグメントをクライアント104へ送ることが可能であり、クライアント104は次いで、インターフェース112上のメディアプレーヤにおいてセグメントを表示することができる。上で論じられているように、クライアント104は、現在のネットワーク状況に基づいて、セグメントに関して要求されるプロファイルを変更し得る。
【0020】
[0031]セッション中にネットワーク状況が変化する場合があり得る。変化するネットワーク状況に適応するために、インセッションプロファイルアダプタ110が、クライアント104において経験されている現在のネットワーク状況を分析し、プロファイルラダーが調整されるべきであるかどうかを決定し得る。たとえば、インセッションプロファイルアダプタ110は、プロファイルを加えまたはプロファイルラダーからプロファイルを除去し得る。この加えることまたは除去することは、経験されているネットワーク状況により適している可能性があるプロファイルを要求すること、または経験されている現在の状況に最適に適してはいないプロファイルを要求しないことをクライアント104に強制し得る。不適切なプロファイルがプロファイルラダーに含まれている場合には、望ましくないプロファイルをクライアント104が選択する場合があり得る。
【0021】
[0032]プロファイルラダーの予測
[0033]ビデオ要求が受信された場合には、プロファイル予測システム108は、現在のセッションにおいて使用するためのプロファイルサブセットを予測する。
図2は、いくつかの実施形態による、プロファイルサブセットを予測するための方法の簡略化されたフローチャート200を示している。202において、ビデオ配信システム102が、セッションに関するビデオを求める要求を受信する。ビデオを求める要求は、ユーザアカウントの識別と、デバイスタイプ、ロケーション等など、その他の情報とを含み得る。
【0022】
[0034]204において、プロファイル予測システム108は、セッションに関するネットワークメトリックを予測し得る。いくつかの実施形態においては、ネットワークメトリックは、ネットワーク帯域幅、再バッファ率、および失敗率など、ビデオ配信または再生の側面を記述するさまざまなメトリックを含み得る。ネットワーク帯域幅は、セッションに関して測定される利用可能なネットワーク帯域幅であり得、再バッファ率は、再生中のセグメントの成功した再生と比較した再バッファの発生の測定値に基づくことが可能であり、失敗率は、成功したダウンロードと比較したセグメントのダウンローディングが失敗する回数の測定値に基づき得る。その他のネットワークメトリックも使用され得る。
【0023】
[0035]206において、プロファイル予測システム108は、プロファイルラダーに関するプロファイルのサブセットを予測するためにネットワークメトリックを使用する。この予測は、利用可能なプロファイルのリストからプロファイルのサブセットを予測し得る。上で論じられているように、クライアント104は、利用可能なプロファイルのリスト全体からすべてのプロファイルを選択することが可能ではない場合があり、むしろ、利用可能なプロファイルのサブセットが、プロファイルラダー用に選択される。
【0024】
[0036]208において、ビデオ配信システム102は、プロファイルラダーをコンテンツ配信ネットワーク106および/またはクライアント104に提供する。プロファイルラダーは、クライアント104によってセッションにおいて使用されることが可能である利用可能なプロファイルのサブセットを識別する。
【0025】
[0037]
図3は、いくつかの実施形態による、プロファイル予測システム108のさらに詳細な例を示している。プロファイル予測システム108は、利用可能なプロファイル306を受信し、利用可能なプロファイル306は、プロファイルラダーにおいて使用され得るすべてのプロファイルを列挙する。プロファイルレベルは、この例においてはビットレートとして分類されているが、さまざまな特性を使用して分類されることが可能である。示されているように、利用可能なプロファイルは、最も低いビットレートとして200kbpsで開始し、最も高いビットレートで12000kbpsまでのプロファイルを含む。この例においては、利用可能なプロファイル306は、12個のプロファイルを含むが、さまざまな数のプロファイルが利用可能であり得る。
【0026】
[0038]いくつかの実施形態においては、プロファイル予測システム108は、プロファイルラダーに含まれることが可能であるプロファイルの数に関する制限を受ける。たとえば、あるプロファイルラダーが7つのプロファイルに制限され得るが、制限は、そのプロファイルラダーをさまざまな数のプロファイルに制限し得る。しかしながら制限は、利用可能なプロファイルの数未満であり得る。
【0027】
[0039]
図4は、いくつかの実施形態による、プロファイルラダー用に選択され得るさまざまなプロファイルサブセットの例を示している。プロファイルサブセットA 402-1、プロファイルサブセットB 402-2、プロファイルサブセットC 402-3、およびプロファイルサブセットD 402-4として4つのプロファイルサブセットが示されているが、その他のプロファイルサブセットが理解され得る。それぞれのプロファイルサブセット402は、いくつかの実施形態においては、1つのサブセットが少なくとも1つの異なるプロファイルを含むという点において異なり得る。サブセットに関する目標は、クライアント104において経験されているネットワーク状況により適している可能性があるプロファイルを取り込むことであり得る。たとえば、200kbpsという最も低いビットレートがプロファイルサブセットA 402-1に含まれているなど、プロファイルサブセットA 402-1は、より低いビットレートに偏っているプロファイルを含み得る。また、プロファイルサブセットA 402-1は、4000kbpsという最も高いビットレートプロファイルを含む。プロファイルサブセットA 402-1は、ネットワーク状況が、4000kbpsよりも低い利用可能な帯域幅を有すると予測される場合に、よりよく機能し得る。
【0028】
[0040]プロファイルサブセットB 402-2は、プロファイルサブセットA 402-1よりもわずかに高いビットレート分布にとってさらに最適であるいくつかのプロファイルを含み得る。たとえば、プロファイルサブセットB 402-2における最も低いビットレートは、400kbpsである。このケースにおいては、200kbpsでの低いビットレートをクライアント104が経験している場合には、ネットワーク帯域幅がビデオのビットレートよりも小さいので、クライアント104は、200kbpsのプロファイルへ切り替えることが可能ではなくなり、再バッファリングを経験し得る。しかしながら、4000kbpsを上回る利用可能な帯域幅をクライアント104が経験している場合には、クライアント104は、4500kbpsのプロファイルと8000kbpsのプロファイルとから選び得る。
【0029】
[0041]プロファイルサブセットC 402-3は、プロファイルサブセットB 402-2よりも高い利用可能な帯域幅を経験しているクライアント104にとって最適であり得るプロファイルを含む。たとえば、プロファイルサブセットC 402-3は、650kbpsのビットレートを有する最も低いプロファイルを含み、8000kbpsの最も高いプロファイルを含む。また、プロファイルサブセットC 402-3は、より高いビットレートでさらに多くのオプションを含むように6000kbpsのプロファイルを含む。最後に、プロファイルサブセットD 402-4は、最も高い予測された利用可能な帯域幅分布を経験しているクライアント104に関するものであり得る。このケースにおいては、プロファイルサブセットD 402-4は、1000kbpsを有する最も低いプロファイルと、12000kbpsの最も高いプロファイルとを含む。
【0030】
[0042]
図3を再び参照すると、ネットワークメトリックプレディクタ302は、それぞれのセッションの再生の前にネットワーク状況を予測し得る。いくつかの実施形態においては、ネットワークメトリックプレディクタ302は、予測されたネットワーク帯域幅、そしてまた1つまたは複数のサービス品質(QoS)メトリックを出力し得る。予測されたネットワーク帯域幅は、セッション中の予測された利用可能な帯域幅であり得る。QoSメトリックは、セッション中に予測されるサービス品質を測定するさまざまなメトリックであり得る。たとえば、QoSメトリックは、再バッファ率および失敗率を含み得る。
【0031】
[0043]ネットワークメトリックが予測されると、プロファイル決定ジェネレータ304が、プロファイルサブセット決定を生成する。いくつかの実施形態においては、プロファイル決定ジェネレータ304は、ネットワーク状況を分析し、ネットワーク状況に基づいて適切なプロファイルラダーを選択し得る。たとえば、ネットワーク状況が、低い利用可能な帯域幅、より高い再バッファ率、および/またはより高い失敗率に関連付けられている場合には、プロファイル決定ジェネレータ304は、より低いビットレートを含むプロファイルサブセットを選択し得る。再生中の再バッファまたは失敗の発生を最小化するためには、より低いビットレートを有するプロファイルサブセットが選択される。しかしながら、ネットワーク帯域幅が高いと予測されたり、再バッファ率が低いと予測されたり、および/または失敗率がより低いと予測されたりするなど、ネットワーク状況がよりよい場合には、プロファイル決定ジェネレータ304は、より高いビットレートに関連付けられているプロファイルサブセットを選択する。クライアント104が再生の品質を改善するためにより高いビットレートを要求することを可能にするためには、より高いビットレート分布を有するプロファイルサブセットが選択される。
【0032】
[0044]プロファイル決定ジェネレータ304は、プロファイルサブセットを生成するためにさまざまな方法を使用し得る。いくつかの実施形態においては、プロファイル決定ジェネレータ304は、
図4において示されているように、事前に生成されたプロファイルサブセットのうちからプロファイルサブセットを選択し得る。その他の実施形態においては、プロファイル決定ジェネレータ304は、ネットワーク状況に基づいて動的にプロファイルサブセットを生成し得る。これらのプロセスは、以降でさらに詳しく記述される。これから、プロファイル予測システム108のトレーニングが論じられ、次いで予測が、より詳しく論じられる。
【0033】
[0045]トレーニング
[0046]
図5は、いくつかの実施形態による、プロファイル予測システム108をトレーニングすることの例を示している。いくつかの実施形態においては、ネットワークメトリックプレディクタ302およびプロファイル決定ジェネレータ304のいずれかが、上で論じられているようにネットワーク状況またはプロファイルサブセット決定を予測するために使用されることが可能であるパラメータを含む予測モデルを使用し得る。その他の実施形態においては、ネットワークメトリックプレディクタ302およびプロファイル決定ジェネレータ304は、ルールベースのシステムを使用し得る。以降では、ネットワークメトリックプレディクタ302とプロファイル決定ジェネレータ304の両方がプロファイルサブセット決定を生成するために予測モデルを使用することを最初に記述するが、以降で論じられるように、ネットワークメトリックプレディクタ302およびプロファイル決定ジェネレータ304のいずれかに関してルールベースのプロセスが使用され得る。
【0034】
[0047]トレーニング情報502は、セッション#1の特徴504-1、セッション#2の特徴504-2、...、およびセッション#Nの特徴504-Nなど、過去のセッションの特徴を含み得る。セッションの特徴は、特定のユーザアカウントからの過去のセッションから抽出され得る。また、セッションの特徴504は、その他のユーザアカウントから抽出され得る。下記は、セッションを特徴付けるために使用され得る特徴のうちのいくつかであり得る。
【0035】
【0036】
[0048]表I
[0049]表Iにおいて列挙されている特徴は、使用されてもよく、または使用されなくてもよく、その他の特徴が使用されてもよい。いくつかの実施形態においては、特徴は、ユーザ、ネットワーク、およびコンテキストというカテゴリーに関連付けられ得る。ユーザ特徴は、ユーザアカウントまたはクライアントの特性に関連付けられ得る。ネットワーク特徴は、再生セッション中のネットワークメトリックに関連付けられ得る。コンテキストは、セッションの再生に関連した情報であり得る。
【0037】
[0050]いくつかの実施形態においては、ユーザアカウント特徴は、デバイスプラットフォーム、ユーザの国、ユーザの領域、ユーザの都市、およびインターネットサービスプロバイダ(ISP)を含む。デバイスプラットフォームは、モバイルデバイス、リビングルームデバイス等など、クライアント104に関連付けられているプラットフォームであり得る。ユーザの国は、米国など、クライアント104またはユーザアカウントが配置されている場所であり得る。ユーザの領域は、ワシントンなど、クライアント104またはユーザアカウントが配置されている州であり得る。ユーザの都市は、シアトルなど、クライアント104またはユーザアカウントが配置されている都市であり得る。ISPは、クライアント104によって使用されているインターネットプロバイダであり得る。
【0038】
[0051]ネットワークカテゴリーにおいては、ネットワークタイプは、WiFi、4G等など、セッション中にクライアント104によって使用されるネットワークであり得る。コンテンツ配信ネットワークは、関連付けられている再生セッションにおいて使用されたCDNであり得る。
【0039】
[0052]コンテキストカテゴリーにおいては、特徴は、ピーク時間内、曜日、時間帯、前の帯域幅、および前のサービス品質(QoS)を含み得る。ピーク時間内という特徴は、関連付けられているセッションがピーク時間中に発生しているかどうかであり得、ピーク時間は、現地時間の午後7:00から午後11:00までであり得る。曜日は、セッションに関連付けられている曜日であり得、時間帯は、セッションに関連付けられている時間帯である。前の帯域幅は、ユーザアカウントに関連付けられている最後のセッション中に経験された帯域幅ステータスであり得る。前のQoSは、ユーザアカウントに関連付けられている最後のセッションからの前のQoSメトリックであり得、これは、セッション中に経験された再バッファ率および失敗率を含み得る。
【0040】
[0053]プロファイル予測システム108は、セッションの特徴504を受信し、ネットワークメトリックプレディクタ302および/またはプロファイル決定ジェネレータ304のための予測モデルをトレーニングすることができる。いくつかの実施形態においては、直接プロファイルサブセットを予測する代わりにネットワーク状況が予測される。なぜなら、セッションから収集されることが可能である統計は、経験された帯域幅と、QoSメトリックとを含むからである。これは、パラメータが正確にトレーニングされることを可能にする。なぜなら、特定の特徴セットに関して帯域幅とQoSメトリックとのグラウンドトゥルースがわかっているからである。すなわち、セッション中に経験された実際の帯域幅がわかっており、セッションの特徴に相関付けられることが可能である。トレーニングプロセスは、セッションの特徴504をモデルへと入力し、モデルの出力、および帯域幅とQoSメトリックとのグラウンドトゥルースに基づいてモデルのパラメータをトレーニングし得る。
【0041】
[0054]予測されたネットワーク状況は、セッションの評価と、過去のセッションからのグラウンドトゥルース情報(たとえば、ネットワーク帯域幅、再バッファ率、失敗率、および、そのセッションにおいて使用されたプロファイルラダー)とを使用することによってプロファイルサブセット決定予測モデルをトレーニングするために使用されることが可能である。セッションの特徴504は、良好なセッション(たとえば、再バッファリングが発生しなかった)または不良なセッション(たとえば、再バッファリングが発生した)であるなどの評価で評価され得る。グラウンドトゥルース特徴は、セッションが良好なセッションとして分類されたか、または不良なセッションとして分類されたかに基づいてモデルのパラメータをトレーニングするためにプロファイル決定ジェネレータ304へと入力される。現在のセッションの特徴は、プロファイル決定ジェネレータ304へと入力されることが可能であり、プロファイル決定ジェネレータ304は、利用可能なプロファイルラダーが良好なセッションをもたらすことになるか、または不良なセッションをもたらすことになるかを予測する。良好なセッションであると予測される最も高い帯域幅分布を有するプロファイルラダーが選択され得る。
【0042】
[0055]ネットワークメトリックプレディクタ302およびプロファイル決定ジェネレータ304をトレーニングするためのさまざまな方法が理解され得るということに留意されたい。トレーニング後に、ネットワーク状況予測モデルおよびプロファイルサブセット決定予測モデルが生成され、リアルタイムの実行中に使用されることが可能である。
【0043】
[0056]ネットワークメトリック予測
[0057]
図6は、いくつかの実施形態による、ネットワークメトリック予測のさらに詳細な例を示している。ネットワークメトリックプレディクタ302が、セッションの特徴602を受信する。現在のセッションの特徴602は、表Iにおいて記述されている特徴に関する情報を含み得る。たとえば、ビデオ配信システム102は、ビデオを要求したユーザアカウントを受信し、そのユーザアカウントに関する特徴を取り出し得る。
【0044】
[0058]ネットワークメトリックプレディクタ302は、ネットワークメトリック予測604を出力するために、セッションの特徴602を、トレーニングされたネットワーク状況予測モデルへと入力する。たとえば、ネットワークメトリック予測604は、ネットワーク帯域幅606-1、再バッファ率606-2、および失敗率606-3を含む。簡略化された例においては、セッションの特徴602が、高いネットワーク帯域幅をもたらした過去の特徴に類似している場合には、ネットワーク帯域幅606-1は高い可能性がある。また、再バッファ率606-2および失敗率606-3は、現在のセッションの特徴602に類似していた特徴に関する再バッファ率および失敗率に類似している可能性がある。ネットワークメトリックプレディクタ302は次いで、ネットワークメトリック予測604をプロファイル決定ジェネレータ304へ出力する。
【0045】
[0059]また、ネットワークメトリックプレディクタ302は、ネットワークメトリック予測604を予測するためにルールベースのプロセスを使用し得る。ネットワークメトリックプレディクタ302は、ネットワーク帯域幅606-1、再バッファ率606-2、および失敗率606-3を表す値を生成するために現在のセッションの特徴にルールを適用する。たとえば、いくつかの特徴は、より高いネットワーク帯域幅にマップすることが可能であり、いくつかの特徴は、より低い再バッファ率にマップすることが可能である、といった具合である。
【0046】
[0060]プロファイルサブセット決定
[0061]プロファイルサブセット決定ジェネレータ304は、プロファイルサブセット決定を決定するために予測モデルまたはルールベースの方法を使用し得る。予測モデルアプローチは、
図7において記述されており、ルールベースのアプローチは、
図8において記述されている。
【0047】
[0062]
図7は、いくつかの実施形態による、予測モデルを使用してプロファイルサブセット決定を生成することの例を示している。プロファイル決定ジェネレータ304は、トレーニングされたプロファイルサブセット決定予測モデルを使用し得る。このケースにおいては、ネットワークメトリック予測604(たとえば、ネットワーク帯域幅606-1、再バッファ率606-2、および失敗率606-3)は、プロファイル決定ジェネレータ304へと入力される。次いで、プロファイル決定ジェネレータ304は、プロファイルサブセット決定を出力する。プロファイルサブセット決定は、選択されたプロファイルサブセットA、B、C、またはDのうちの1つであり得る。その他の例においては、プロファイルサブセット決定は、プロファイルラダーに含まれることになる特定のプロファイルを出力し得る。たとえば、プロファイル決定ジェネレータ304は、ネットワークメトリックを分析し、動的にプロファイルラダーに含めるためのプロファイルを決定し得る。したがって、プロファイル決定ジェネレータ304は、事前に決定されたサブセットに制限されないことが可能である。プロファイルを動的に選択することは、適応プロファイルラダーに関するプロファイルの分布を決定する際に、より多くの柔軟性を提供し得る。
【0048】
[0063]その他の例においては、プロファイル決定ジェネレータ304は、ルールベースのプロセスを使用し得る。
図8は、いくつかの実施形態による、プロファイルサブセットを選択するための方法の簡略化されたフローチャート800を示している。802において、プロファイル決定ジェネレータ304が、ネットワークメトリック予測604を受信する。プロファイル決定ジェネレータ304は次いで、ネットワークメトリック予測604にルールを適用し得る。ルールに関して使用されるしきい値は、例であり、変更され得る。いくつかの例においては、804において、プロファイル決定ジェネレータ304は、ネットワーク帯域幅606-1の予測された帯域幅が1000kbpsなどのしきい値よりも小さいかどうかを決定する。1000kbpsという値が使用され得る。なぜなら、これはより低いビットレートであるからであり、帯域幅が1000kbps未満である場合には、プロファイル決定ジェネレータ304は、806においてプロファイルサブセットAを選択する。プロファイル決定ジェネレータ304は、プロファイルサブセットAを選択する。なぜなら、このサブセットは、プロファイルの最も低いビットレート分布に関連付けられているからである。
【0049】
[0064]帯域幅が1000kbps以上である場合には、プロファイル決定ジェネレータ304は、再バッファ率の値が3%よりも大きいなど、再バッファ率606-2がしきい値を満たしているかどうかを決定する。再バッファ率606-2が3%よりも大きい場合には、810において、プロファイル決定ジェネレータ304は、プロファイルサブセットBを選択する。プロファイルサブセットBにおけるより低いビットレート分布は、利用可能な帯域幅よりもビデオのビットレートが高いことに起因して発生する再バッファの数を低減し得るので、プロファイル決定ジェネレータ304は、プロファイルサブセットBを選択する。たとえば、プロファイルサブセットCまたはプロファイルサブセットDが選択された場合には、より高いビットレートプロファイルがクライアント104によって選択される可能性がより高くなり、これは、所望よりも高い再バッファ率をもたらし得る。予測される帯域幅が1000kbps以上であり、最も低いビットレート分布を有するプロファイルが必要とされない可能性があるので、プロファイルサブセットAが選択されない可能性がある。
【0050】
[0065]812において、再バッファ率606-2が3%以下である場合には、プロファイル決定ジェネレータ304は、失敗率606-3が8%よりも大きいかどうかなど、それがしきい値を満たしているかどうかを決定する。失敗率606-3が8%よりも大きい場合には、814におけるプロファイル決定ジェネレータ304は、プロファイルサブセットCを選択する。プロファイル決定ジェネレータ304は、セグメントをダウンロードする際の失敗の数を低減するためにプロファイルサブセットDの代わりにプロファイルサブセットCを選択し得る。プロファイルサブセットCは、より少ない失敗をもたらし得る。なぜなら、ビットレート分布がプロファイルサブセットDよりも低いからである。
【0051】
[0066]失敗率606-3が8%よりも大きい場合には、816において、プロファイル決定ジェネレータ304は、プロファイルサブセットDを選択する。このケースにおいては、ネットワークメトリック予測204は、すべてのルールに合格し、プロファイルサブセットにおける最も高いビットレート分布が選択される。上記のロジックが記述されているが、それぞれメトリックに関して複数のしきい値をテストすることなど、その他のロジックが使用され得る。
【0052】
[0067]インセッション適応プロファイル決定
[0068]ビデオ配信システム102は、セッションが開始する前に最初のプロファイルラダーを決定する。しかしながら、再生が始まると、ネットワーク状況が変化する場合があり得る。すなわち、ビデオ配信システム102は、プロファイルラダーを生成するために、予測されたネットワーク状況を使用するが、セッション中に経験され得る実際のネットワーク状況は使用しない。したがって、ネットワーク状況が変化すると、プロファイルラダーに関するプロファイルのサブセットが適切でなくなる場合があり得る。
図9は、いくつかの実施形態による、再生セッション中にプロファイルラダーを適応させるための方法の簡略化されたフローチャート900を示している。プロファイルラダーを適応させるためのこのプロセスが記述されているが、その他のプロセスが使用され得る。
【0053】
[0069]902において、クライアント104は、ビデオのセグメントをダウンロードし、現在のネットワーク状況を検出する。現在のネットワーク状況は、現在のセッションに関する利用可能な帯域幅、再バッファ率、および失敗率を含み得る。904において、インセッションプロファイルアダプタ110は、ネットワーク状況が第1のしきい値を満たすかどうかを決定する。たとえば、しきい値は、ビットレートがしきい値を上回っているべきであること、再バッファ率がしきい値を下回っているべきであること、および失敗率がしきい値を下回っているべきであることなど、経験されるべきである最小のネットワーク状況に基づき得る。テストは、メトリックのうちの1つまたは複数がそれぞれのしきい値を満たすことを必要とし得る。ビットレートに関しては、テストは、現在のネットワーク帯域幅がプロファイルにおける最も低いビットレートのしきい値を上回っていることを必要とし得る。
【0054】
[0070]ネットワーク状況が第1のしきい値を満たす場合には、906において、インセッションプロファイルアダプタ110は、プロファイルラダーに現在存在している最も低いビットレートよりも低いビットレートを有するプロファイル、または現在プロファイルラダーにある最も低いビットレートの次に低いビットレートを有するプロファイルなど、より低いビットレートを有するプロファイルをプロファイルラダーに加える。いくつかの実施形態においては、インセッションプロファイルアダプタ110は、制限なしにプロファイルラダーにプロファイルを加えることができる。その他の例においては、プロファイルラダーは、プロファイルの数を制限することが可能であり、インセッションプロファイルアダプタ110は、より低いビットレートのプロファイルを加える際に、より高いビットレートを有するプロファイルを除去し得る。
【0055】
[0071]ネットワーク状況が第1のしきい値を満たさない場合には、908において、インセッションプロファイルアダプタ110は、安定したネットワーク状況が発生しているかどうかを決定する。現在の帯域幅、再バッファ率、および失敗率がしきい値またはしきい値の範囲内にある場合には、安定したネットワーク状況が発生し得る。テストは、メトリックのうちの1つまたは複数がそれぞれのしきい値を満たすことを必要とし得る。たとえば、現在のビットレートがプロファイルラダーにおける最も低いビットレートと最も高いビットレートとの間にある場合には、安定したネットワーク状況が決定され得る。910において、安定したネットワーク状況が発生している場合には、インセッションプロファイルアダプタ110は、現在のプロファイルラダーを保持する。
【0056】
[0072]安定したネットワーク状況が発生していない場合には、912において、インセッションプロファイルアダプタ110は、ネットワーク状況が第2のしきい値を満たすかどうかを決定する。たとえば、利用可能な帯域幅は、プロファイルラダーにおけるプロファイルの最も高いビットレートよりも大きい場合がある。
【0057】
[0073]914において、ネットワーク状況が第2のしきい値を満たす場合には、インセッションプロファイルアダプタ110は、より高いビットレートを有するプロファイルをプロファイルラダーに加える。たとえば、現在の利用可能な帯域幅が12000kbpsである場合には、インセッションプロファイルアダプタ110は、12000kbpsを有するプロファイルを、またはプロファイルラダーにおける最も高いビットレートを上回る次に高いビットレートを有するプロファイルをプロファイルラダーに加え得る。ネットワーク状況が第2のしきい値を満たさない場合には、プロセスは、引き続きセグメントをダウンロードして現在のネットワーク状況を検出するために902へ繰り返す。
【0058】
[0074]
図10は、いくつかの実施形態による、プロファイルに関するより低いビットレートをプロファイルラダーに加えることの例を示している。1002において、クライアント104がセグメントをダウンロードする。1004において、インセッションプロファイルアダプタ110は、再生再バッファリングが発生するかどうかを決定する。そうである場合には、1006において、インセッションプロファイルアダプタ110は、再バッファカウントを実施する。再バッファカウントは、セッションに関する再バッファの発生の数をカウントし得る。1008において、インセッションプロファイルアダプタ110は、再バッファカウントがしきい値rebuffer_thresよりも大きいかどうかを決定する。再バッファカウントが再バッファしきい値以下である場合には、プロセスは、別のセグメントをダウンロードするために1002へ繰り返す。
【0059】
[0075]再生再バッファリングが発生しなかった場合には、1012において、インセッションプロファイルアダプタ110は、帯域幅が帯域幅しきい値BW_thresよりも大きいかどうか、および/またはバッファ長がバッファしきい値BL_thresよりも大きいかどうかを決定する。インセッションプロファイルアダプタ110は、より高い帯域幅が経験されているかどうかを決定するために、利用可能な帯域幅を帯域幅しきい値と比較する。また、インセッションプロファイルアダプタ110は、特定の量の時間にわたってさらに低い帯域幅を取り扱うのに十分なビデオがバッファにあるかどうかを決定するためにバッファ長をバッファ長しきい値と比較する。バッファは、ビデオのセグメントが受信されたときにそれらを格納するために使用され、メディアプレーヤは、バッファからセグメントを読み取る。利用可能な帯域幅が下がった場合には、バッファに格納されている十分なビデオが依然としてあり得、それによって再バッファリングは、利用可能な帯域幅が再び増加するまで、ある時間期間にわたって発生しないことが可能である。
【0060】
[0076]利用可能な帯域幅が帯域幅しきい値よりも大きく、バッファ長がバッファ長しきい値よりも大きい場合には、1014において、インセッションプロファイルアダプタ110は、より低いビットレートを有する別のプロファイルをインセッションプロファイルアダプタ110が加えられていたなど、プロファイルがプロファイルラダーに加えているかどうかを決定する。そうでない場合には、プロセスは、別のダウンロードされたセグメントを分析するために1002へ繰り返す。加えられたプロファイルが存在する場合には、1016において、インセッションプロファイルアダプタ110は、加えられたプロファイルを除去し得る。たとえば、インセッションプロファイルアダプタ110は、最も低いビットレートを有する加えられたプロファイルを除去し得る。このプロファイルは、利用可能な帯域幅がしきい値を上回っている場合、またはより低い帯域幅を取り扱うのに十分なビデオデータがバッファにある場合には、必要とされない可能性がある。次いで、1018において、インセッションプロファイルアダプタ110は、そのプロファイルをプロファイルラダーから除去することによってラダーを更新する。加えられたプロファイルの除去は、より低いビットレートを有するプロファイルをクライアント104が選択することを許可しないことが可能であり、これはラダーをより効率的にする。なぜなら、それは、現在のネットワーク状況にさらによく一致するビットレートを有するプロファイルを含むからである。
【0061】
[0077]インセッションプロファイルアダプタ110は、より高い帯域幅分布を有するより高いプロファイルを加えまたは削除し得る。たとえば、利用可能な帯域幅がプロファイルラダーにおける最も高いプロファイルのビットレートよりも高い場合には、インセッションプロファイルアダプタ110は、より高いビットレート分布を有するさらに高いプロファイルをプロファイルラダーへと加え得る。しかしながら、ネットワーク状況がより悪くなった場合には、加えられたさらに高いプロファイルは、実際には再生経験に影響を与えない可能性がある。なぜなら、適応ビットレートアルゴリズムは、低い帯域幅を経験しているケースにおいてそのプロファイルを選択しない可能性があるからである。しかしながら、プロファイルラダーの数の制限を考慮すると、より低いプロファイルをインセッションプロファイルアダプタ110が加えた場合には、インセッションプロファイルアダプタ110は、加えられているさらに高いプロファイルを除去し得る。
【0062】
[0078]結論
[0079]したがって、ビデオ配信システム102は、それぞれのセッションに関して適応プロファイルラダーを使用する。適応プロファイルは、セッションの予測されたネットワーク状況用に最適化され得るプロファイルのサブセットを選択する。ネットワーク状況が変化した場合には、プロファイルラダーを調整するためにインセッションプロファイルアダプタ110が使用され得る。したがって、プロファイルは固定されておらず、ネットワーク状況に適応することができるので、セッションにおいて経験される品質が改善され得る。たとえば、より高いビットレートを有するプロファイルがクライアント104に提供された場合には、より高いビットレートがセッションにおいて要求され得る。また、より低いビットレートの環境をクライアント104が経験しているときに、より低いビットレートを有するプロファイルがクライアント104に提供された場合には、再バッファリングが低減され得る。
【0063】
[0080]例示的な実施形態
[0081]いくつかの実施形態においては、コンピューティングデバイスによって、クライアントからのビデオを求める要求に関連付けられているセッションに関するセッションの特徴を受信することと、コンピューティングデバイスによって、セッションの特徴を使用してセッションに関するネットワーク状況を予測することと、コンピューティングデバイスによって、ネットワーク状況に基づいて、利用可能なプロファイルのサブセットを選択することと、ここにおいて、利用可能なプロファイルが、異なる再生特性に関連付けられている、コンピューティングデバイスによって、ビデオの再生のための利用可能なプロファイルのサブセットを含むプロファイルラダーをクライアントに提供することと、ここにおいて、プロファイルラダーが、クライアントを、セッション中にビデオのセグメントを要求するために、利用可能なプロファイルのサブセットを使用することに制限する、を備える方法。
【0064】
[0082]いくつかの実施形態においては、ネットワーク状況を予測することは、ネットワーク状況を予測するためにセッションの特徴を予測ネットワークへと入力することを備える。
【0065】
[0083]いくつかの実施形態においては、ネットワーク状況は、予測された利用可能な帯域幅と、サービス品質メトリックとのうちの少なくとも一方を備える。
【0066】
[0084]いくつかの実施形態においては、セッションの特徴からネットワーク状況を予測するための予測モデルを生成するためにクライアントに関する過去のセッションの特徴を用いて予測ネットワークをトレーニングすることをさらに備える方法。
【0067】
[0085]いくつかの実施形態においては、利用可能なプロファイルのサブセットを選択することは、複数のプロファイルサブセットからプロファイルサブセットを選択すること、ここにおいて、それぞれのプロファイルサブセットが、利用可能なプロファイルの別々のサブセットを含む、を備える。
【0068】
[0086]いくつかの実施形態においては、利用可能なプロファイルのサブセットを選択することは、利用可能なプロファイルのサブセットにおけるプロファイルを予測すること、ここにおいて、利用可能なプロファイルのサブセットが、固定されたプロファイルサブセットから選択することなしに動的に予測される、を備える。
【0069】
[0087]いくつかの実施形態においては、利用可能なプロファイルのサブセットを選択することは、利用可能なプロファイルのサブセットを選択するためにネットワークメトリックにルールのセットを適用することを備える。
【0070】
[0088]いくつかの実施形態においては、利用可能なプロファイルのサブセットを選択することは、複数のプロファイルサブセットのうちの1つを選択するためにネットワークメトリックにルールのセットを適用すること、ここにおいて、それぞれのプロファイルサブセットが、利用可能なプロファイルの別々のサブセットを含む、を備える。
【0071】
[0089]いくつかの実施形態においては、プロファイルラダーを提供することは、プロファイルラダーをクライアントへ送ること、ここにおいて、クライアントが、セッション中にビデオのセグメントを要求するために、利用可能なプロファイルのサブセットを使用することに制限を適用する、を備える。
【0072】
[0090]いくつかの実施形態においては、プロファイルラダーを提供することは、プロファイルラダーをコンテンツ配信ネットワークへ送ること、ここにおいて、コンテンツ配信ネットワークが、プロファイルラダーをクライアントへ通信する、を備える。
【0073】
[0091]いくつかの実施形態においては、クライアントへ送られるマニフェストが、ビデオのセグメントに関するすべての利用可能なプロファイルに関する情報を含み、クライアントは、セグメントビデオに関するプロファイルを要求するために、利用可能なプロファイルのサブセットを使用することに制限を適用する。
【0074】
[0092]いくつかの実施形態においては、クライアントは、ビデオの再生の開始に際して、利用可能なプロファイルのサブセットにプロファイルを加えることを可能にされる。
【0075】
[0093]いくつかの実施形態においては、クライアントは、ビデオの再生の開始に際して、利用可能なプロファイルのサブセットに対してプロファイルを除去することを可能にされる。
【0076】
[0094]いくつかの実施形態においては、命令を含む非一時的コンピュータ可読ストレージメディアであって、それらの命令が、実行されたときに、クライアントからのビデオを求める要求に関連付けられているセッションに関するセッションの特徴を受信することと、セッションの特徴を使用してセッションに関するネットワーク状況を予測することと、ネットワーク状況に基づいて、利用可能なプロファイルのサブセットを選択することと、ここにおいて、利用可能なプロファイルが、異なる再生特性に関連付けられている、ビデオの再生のための利用可能なプロファイルのサブセットを含むプロファイルラダーをクライアントに提供することと、ここにおいて、プロファイルラダーが、クライアントを、セッション中にビデオのセグメントを要求するために、利用可能なプロファイルのサブセットを使用することに制限する、を行うように動作可能であるようにコンピュータシステムを制御する、非一時的コンピュータ可読ストレージメディア。
【0077】
[0095]いくつかの実施形態においては、コンピューティングデバイスによって、利用可能なプロファイルのサブセットを含むプロファイルラダーを受信することと、ここにおいて、利用可能なプロファイルのサブセットが、ビデオを再生するためのセッションに関して決定される、コンピューティングデバイスによって、プロファイルラダーにおけるプロファイルを使用して、ビデオのセグメントを求める要求を送ることと、コンピューティングデバイスによって、ビデオの再生に関する再生状況を分析することと、再生状況の分析に基づいて、セッションに関してプロファイルラダーを調整するかどうかを決定することと、プロファイルラダーを調整することが決定された場合に、利用可能なプロファイルのうちからのプロファイルをプロファイルラダーに加えること、または利用可能なプロファイルのサブセットからプロファイルを除去することとを備える方法。
【0078】
[0096]いくつかの実施形態においては、プロファイルラダーを調整するかどうかを決定することは、ビデオの再生中の再バッファリングの発生に関する情報を保持することと、利用可能なプロファイルのサブセットにおける最も低い帯域幅を有するプロファイルよりも低い帯域幅を有するプロファイルを加えることとを備える。
【0079】
[0097]いくつかの実施形態においては、プロファイルラダーを調整するかどうかを決定することは、利用可能な帯域幅がしきい値よりも大きいかどうかを決定することと、利用可能なプロファイルのサブセットに以前に加えられたプロファイルを除去することとを備える。
【0080】
[0098]いくつかの実施形態においては、プロファイルラダーを調整するかどうかを決定することは、利用可能な帯域幅がしきい値よりも大きいかどうか、および/またはバッファ長がしきい値よりも大きいかどうかを決定することと、利用可能なプロファイルのサブセットに以前に加えられたプロファイルを除去することとを備える。
【0081】
[0099]いくつかの実施形態においては、プロファイルラダーを調整するかどうかを決定することは、利用可能なプロファイルのサブセットにおける最も高いビットレートを有するプロファイルよりも高いビットレートを有するプロファイルを加えることを備える。
【0082】
[00100]いくつかの実施形態においては、利用可能なプロファイルのサブセットは、セッションに関する予測されたネットワーク状況に基づいて予測される。
【0083】
[00101]システム
[00102]本明細書において開示されている特徴および態様は、
図11において示されているように、1つまたは複数の通信ネットワークを介して複数のクライアントデバイスと通信状態にあるビデオストリーミングシステム1100とともに実施され得る。ビデオストリーミングシステム1100の態様は、本開示に従って用意されたコンテンツの配布および配信を可能にするためのアプリケーションの例を提供するためだけに記述されている。本テクノロジーは、ストリーミングビデオアプリケーションに限定されず、その他のアプリケーションおよび配信メカニズム用に適合され得るということを理解されたい。
【0084】
[00103]一実施形態においては、メディア番組プロバイダが、メディア番組のライブラリを含み得る。たとえば、メディア番組は、サイト(たとえば、ウェブサイト)、アプリケーション、またはブラウザを通じて集約および提供され得る。ユーザは、メディア番組プロバイダのサイトまたはアプリケーションにアクセスして、メディア番組を要求することができる。ユーザは、メディア番組プロバイダによって提供されるメディア番組のみを要求することに制限され得る。
【0085】
[00104]システム1100においては、ビデオデータが、ビデオコンテンツサーバ1102への入力としての使用のために、1つまたは複数のソースから、たとえばビデオソース1110から入手され得る。入力ビデオデータは、任意の適切なデジタルフォーマット、たとえば、ムービングピクチャーズエキスパートグループ(MPEG)-1、MPEG-2、MPEG-4、VC-1、H.264/アドバンストビデオコーディング(AVC)、高効率ビデオコーディング(HEVC)、またはその他のフォーマットでの生のまたは編集されたフレームベースのビデオデータを備え得る。代替として、ビデオは、非デジタルフォーマットで提供されて、スキャナおよび/またはトランスコーダを使用してデジタルフォーマットへ変換され得る。入力ビデオデータは、さまざまなタイプのビデオクリップまたは番組、たとえば、テレビエピソード、映画、および、消費者にとって関心のある主要なコンテンツとして製作されたその他のコンテンツを備え得る。ビデオデータは音声を含むことも可能であり、または音声のみが使用され得る。
【0086】
[00105]ビデオストリーミングシステム1100は、1つまたは複数のコンピュータにわたって分散された1つまたは複数のコンピュータサーバまたはモジュール1102、1104、および/または1107を含み得る。それぞれのサーバ1102、1104、1107は、1つまたは複数のデータストア1109、たとえば、データベース、インデックス、ファイル、またはその他のデータ構造を含み得るか、またはそれらに動作可能に結合され得る。ビデオコンテンツサーバ1102は、さまざまなビデオセグメントのデータストア(図示せず)にアクセスし得る。ビデオコンテンツサーバ1102は、クライアントデバイスと通信するユーザインターフェースコントローラによって指示されるようにビデオセグメントを供給し得る。本明細書において使用される際には、ビデオセグメントは、テレビエピソード、映画、記録されたライブパフォーマンス、またはその他のビデオコンテンツを見るためのストリーミングビデオセッションにおいて使用され得るような、フレームベースのビデオデータの特定の部分を指す。
【0087】
[00106]いくつかの実施形態においては、ビデオ広告サーバ1104は、特定の広告主またはメッセージのための広告として構成された比較的短いビデオ(たとえば、10秒、30秒、または60秒のビデオ広告)のデータストアにアクセスし得る。広告は、何らかの種類の支払いと引き換えに広告主に提供され得るか、またはシステム1100に関する販売促進メッセージ、公共サービスメッセージ、またはその他の何らかの情報を備え得る。ビデオ広告サーバ1104は、ユーザインターフェースコントローラ(図示せず)によって指示されるようにビデオ広告セグメントを供給し得る。
【0088】
[00107]ビデオストリーミングシステム1100はまた、ビデオ配信システム102を含み得る。
【0089】
[00108]ビデオストリーミングシステム1100はさらに、ビデオコンテンツおよびビデオ広告をストリーミングビデオセグメントへと統合する統合/ストリーミングコンポーネント1107を含み得る。たとえば、ストリーミングコンポーネント1107は、コンテンツサーバまたはストリーミングメディアサーバであり得る。コントローラ(図示せず)は、任意の適切なアルゴリズムまたはプロセスに基づいてストリーミングビデオにおける広告の選択または構成を決定し得る。ビデオストリーミングシステム1100は、
図11において示されていないその他のモジュールまたはユニット、たとえば、管理サーバ、コマースサーバ、ネットワークインフラストラクチャー、広告選択エンジンなどを含み得る。
【0090】
[00109]ビデオストリーミングシステム1100は、データ通信ネットワーク1112に接続し得る。データ通信ネットワーク1112は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、たとえば、インターネット、電話ネットワーク、ワイヤレスセルラーテレコミュニケーションネットワーク(WCS)1114、またはこれらのもしくは類似のネットワークどうしの何らかの組合せを備え得る。
【0091】
[00110]1つまたは複数のクライアントデバイス1120は、データ通信ネットワーク1112、ワイヤレスセルラーテレコミュニケーションネットワーク1114、および/または別のネットワークを介して、ビデオストリーミングシステム1100と通信状態にあり得る。そのようなクライアントデバイスは、たとえば、LANに関してはルータ1118を介した、ワイヤレスセルラーテレコミュニケーションネットワーク1114に関しては基地局1117を介した、またはその他の何らかの接続を介した、1つまたは複数のラップトップコンピュータ1120-1、デスクトップコンピュータ1120-2、「スマート」モバイル電話1120-3、タブレットデバイス1120-4、ネットワーク対応テレビ1120-5、またはそれらの組合せを含み得る。動作中に、そのようなクライアントデバイス1120は、ユーザ入力デバイスから受け取られたユーザ入力、またはその他の入力に応答して、システム1100に対してデータまたは命令を送ることおよび受信することが可能である。それに応答して、システム1100は、メディア番組の選択に応答したデータストア1109からのビデオセグメントおよびメタデータをクライアントデバイス1120に供給し得る。クライアントデバイス1120は、ディスプレイスクリーン、プロジェクタ、またはその他のビデオ出力デバイスを使用してメディアプレーヤにおけるストリーミングビデオセグメントからビデオコンテンツを出力し、そのビデオコンテンツと対話するためのユーザ入力を受け取り得る。
【0092】
[00111]オーディオビデオデータの配布は、さまざまな方法、たとえばストリーミングを使用して、ストリーミングコンポーネント1107から、コンピュータネットワーク、テレコミュニケーションネットワーク、およびそのようなネットワークの組合せを介して、リモートクライアントデバイスへ実施され得る。ストリーミングにおいては、コンテンツサーバは、クライアントデバイス上で少なくとも部分的に動作するメディアプレーヤコンポーネントにオーディオビデオデータを継続的にストリーミングし、メディアプレーヤコンポーネントは、サーバからストリーミングデータを受信すると同時にオーディオビデオデータを再生し得る。ストリーミングが論じられているが、配信のその他の方法が使用され得る。メディアプレーヤコンポーネントは、コンテンツプロバイダからデータの最初の部分を受信した直後にビデオデータの再生を開始し得る。従来のストリーミング技術は、単一のプロバイダを使用してデータのストリームを一群のエンドユーザに配信する。単一のストリームを大勢の視聴者へ配信するためには、高い帯域幅および処理能力が必要とされる場合があり、エンドユーザの数が増大するにつれて、プロバイダの必要とされる帯域幅が増大し得る。
【0093】
[00112]ストリーミングメディアは、オンデマンドまたはライブで配信されることが可能である。ストリーミングは、ファイル内の任意のポイントにおける即時の再生を可能にする。エンドユーザは、メディアファイルにおいて再生を開始するために、または再生を任意のポイントへ変更するためにメディアファイル内をスキップし得る。したがってエンドユーザは、ファイルがプログレッシブにダウンロードするのを待つ必要はない。典型的には、ストリーミングメディアは、高帯域幅能力を有する少数の専用のサーバから専門のデバイスを介して配信され、その専門のデバイスは、ビデオファイルを求める要求を、それらのファイルのフォーマット、帯域幅、および構造に関する情報とともに受け入れ、ビデオを再生するのに必要な量のデータのみを、それを再生するのに必要とされる速度で配信する。ストリーミングメディアサーバはまた、宛先クライアント上のメディアプレーヤの送信帯域幅および能力を考慮し得る。ストリーミングコンポーネント1107は、ビデオが再生される際に、変化するネットワーク状況に適応するために、制御メッセージおよびデータメッセージを使用してクライアントデバイス1120と通信し得る。これらの制御メッセージは、クライアントにおける早送り、早戻し、一時停止、またはファイルの特定の部分へのシークなどの制御機能を有効にするためのコマンドを含むことができる。
【0094】
[00113]ストリーミングコンポーネント1107は、必要とされる際にのみ、必要とされる速度でビデオデータを送信するので、供給されるストリームの数に関する正確な制御が保持されることが可能である。視聴者が、より低いデータレートの送信メディア上で高いデータレートのビデオを見ることは不可能であろう。しかしながら、ストリーミングメディアサーバは、(1)ビデオファイルへのランダムアクセスをユーザに提供し、(2)誰がどのビデオ番組を見ているか、そしてどれぐらい長くそれらが見られているかのモニタリングを可能にし、(3)より効率的に送信帯域幅を使用し(視聴経験をサポートするのに必要とされる量のデータのみが送信されるので)、(4)ビデオファイルは、視聴者のコンピュータにおいて格納されず、メディアプレーヤによって破棄され、したがってコンテンツに関するさらなる制御を可能にする。
【0095】
[00114]ストリーミングコンポーネント1107は、HTTPおよびリアルタイムメッセージングプロトコル(RTMP)など、TCPベースのプロトコルを使用し得る。ストリーミングコンポーネント1107はまた、ライブウェブキャストを配信することができ、マルチキャストすることができ、これは、複数のクライアントが単一のストリームへと同調することを可能にし、したがって帯域幅を節約する。ストリーミングメディアプレーヤは、メディア番組における任意のポイントへのランダムアクセスを提供するためにビデオ全体をバッファリングすることに依存しないことが可能である。代わりに、これは、メディアプレーヤからストリーミングメディアサーバへ送信される制御メッセージの使用を通じて実現される。ストリーミングのために使用されるその他のプロトコルは、ハイパーテキスト転送プロトコル(HTTP)ライブストリーミング(HLS)またはダイナミックアダプティブストリーミングオーバーHTTP(DASH)である。HLSおよびDASHプロトコルは、典型的には1つまたは複数のコンテンツ配信ネットワーク(CDN)からさまざまなビットレートで利用可能にされる小さなセグメントの再生リストを介してHTTP経由でビデオを配信する。これは、メディアプレーヤがセグメントごとにビットレートとコンテンツソースの両方を切り替えることを可能にする。この切り替えは、ネットワーク帯域幅の変動を、そしてまた、ビデオの再生中に生じ得るインフラストラクチャーの障害を補正するのに役立つ。
【0096】
[00115]ストリーミングによるビデオコンテンツの配信は、さまざまなモデルのもとで実現され得る。1つのモデルにおいては、ユーザは、ビデオ番組の視聴に対する支払いを行い、たとえば、メディア番組のライブラリもしくは制限されたメディア番組の一部分へのアクセスに対する料金を支払うか、またはペイパービューサービスを使用する。放送テレビによってその開始直後に広く採用された別のモデルにおいては、スポンサーが、番組の提示中または提示に隣接して広告を提示する権利と引き換えに、メディア番組の提示に対する支払いを行う。いくつかのモデルにおいては、広告は、ビデオ番組において所定の時間に挿入され、この時間は、「広告スロット」または「広告休憩」と呼ばれ得る。ストリーミングビデオについては、メディアプレーヤは、クライアントデバイスが指定の広告スロット中に所定の広告を再生することもなくビデオを再生することができないように構成され得る。
【0097】
[00116]
図12を参照すると、ビデオコンテンツおよび広告を見るための装置1200の線図が示されている。選択された実施形態においては、装置1200は、プロセッサメモリ1204に動作可能に結合されているプロセッサ(CPU)1202を含むことが可能であり、プロセッサメモリ1204は、プロセッサ1202による実行用のバイナリーコード化された機能モジュールを保持する。そのような機能モジュールは、入力/出力およびメモリアクセスなどのシステム機能を取り扱うためのオペレーティングシステム1206、ウェブページを表示するためのブラウザ1208、ならびにビデオを再生するためのメディアプレーヤ1210を含み得る。それらのモジュールはさらに、インセッションプロファイルアダプタ110を含み得る。メモリ1204は、
図12において示されていないさらなるモジュール、たとえば、本明細書におけるその他の場所で記述されているその他のオペレーションを実行するためのモジュールを保持し得る。
【0098】
[00117]バス1214またはその他の通信コンポーネントが、装置1200内の情報の通信をサポートし得る。プロセッサ1202は、特定のタスクを定義する機械可読ソフトウェアコードを実行することによって、本明細書において開示されている特徴および態様に従って特定のタスクを実行するように構成されているかまたはそのように動作可能な専門のもしくは専用のマイクロプロセッサであり得る。プロセッサメモリ1204(たとえば、ランダムアクセスメモリ(RAM)またはその他の動的なストレージデバイス)は、バス1214に、または直接プロセッサ1202に接続されて、情報と、プロセッサ1202によって実行されることになる命令とを格納し得る。メモリ1204はまた、そのような命令の実行中に一時変数またはその他の中間情報を格納し得る。
【0099】
[00118]ストレージデバイス1224におけるコンピュータ可読メディアが、バス1214に接続されて、プロセッサ1202のための静的な情報および命令を格納することが可能であり、たとえば、ストレージデバイス(CRM)1224は、装置1200が電源をオフにされるときにモジュール1206、1208、1210、および1212を格納することが可能であり、そこから、装置1200が電源を入れられたときに、それらのモジュールがプロセッサメモリ1204へとロードされ得る。ストレージデバイス1224は、情報、命令、またはそれらの何らかの組合せ、たとえば、プロセッサ1202によって実行されたときに、装置1200が、本明細書において記述されている方法の1つまたは複数のオペレーションを実行するように構成されるかまたは動作可能であるようにする命令を保持する非一時的コンピュータ可読ストレージメディアを含み得る。
【0100】
[00119]通信インターフェース1216はまた、バス1214に接続され得る。通信インターフェース1216は、任意選択でルータ/モデム1226および有線またはワイヤレス接続を介して、装置1200と1つまたは複数の外部デバイス、たとえばストリーミングシステム1100との間における双方向データ通信を提供またはサポートし得る。代替として、または追加として、装置1200は、アンテナ1229に接続されているトランシーバ1218を含むことが可能であり、それを通じて、装置1200は、ワイヤレス通信システムのための基地局と、またはルータ/モデム1226とワイヤレスに通信し得る。代替として、装置1200は、ローカルエリアネットワーク、仮想プライベートネットワーク、またはその他のネットワークを介してビデオストリーミングシステム1100と通信し得る。さらなる代替として、装置1200は、システム1100のモジュールまたはコンポーネントとして組み込まれて、バス1214を介して、またはその他の何らかのモダリティによってその他のコンポーネントと通信し得る。
【0101】
[00120]装置1200は、(たとえば、バス1214およびグラフィックスプロセッシングユニット1220を介して)ディスプレイユニット1228に接続され得る。ディスプレイ1228は、装置1200の操作者に情報を表示するための任意の適切な構成を含み得る。たとえば、ディスプレイ1228は、視覚的な表示で装置1200のユーザに情報を提示するために、液晶ディスプレイ(LCD)、タッチスクリーンLCD(たとえば、容量性ディスプレイ)、発光ダイオード(LED)ディスプレイ、プロジェクタ、またはその他のディスプレイデバイスを含むことまたは利用することが可能である。
【0102】
[00121]1つまたは複数の入力デバイス1230(たとえば、英数字キーボード、マイクロフォン、キーパッド、リモートコントローラ、ゲームコントローラ、カメラ、またはカメラアレイ)が、情報およびコマンドを装置1200へ伝達するためにユーザ入力ポート1222を介してバス1214に接続され得る。選択された実施形態においては、入力デバイス1230は、カーソルの位置決めに対する制御を提供またはサポートし得る。このようなカーソル制御デバイス(ポインティングデバイスとも呼ばれる)は、マウス、トラックボール、トラックパッド、タッチスクリーン、カーソル方向キー、または、物理的な動きを受信もしくは追跡把握して、その動きを、カーソルの動きを示す電気信号へと変換するためのその他のデバイスとして構成され得る。カーソル制御デバイスは、たとえばタッチセンシティブスクリーンを使用して、ディスプレイユニット1228へと組み込まれ得る。カーソル制御デバイスは、方向情報およびコマンド選択をプロセッサ1202に伝達し、ディスプレイ1228上のカーソルの動きを制御し得る。カーソル制御デバイスは、2つ以上の自由度を有して、たとえば、デバイスが平面または3次元空間におけるカーソル位置を指定することを可能にし得る。
【0103】
[00122]いくつかの実施形態は、命令実行システム、装置、システム、またはマシンによる、またはそれらに関連した使用のために非一時的コンピュータ可読ストレージメディアに実装され得る。コンピュータ可読ストレージメディアは、いくつかの実施形態によって記述されている方法を実行するようにコンピュータシステムを制御するための命令を含む。コンピュータシステムは、1つまたは複数のコンピューティングデバイスを含み得る。命令は、1つまたは複数のコンピュータプロセッサによって実行されたときに、いくつかの実施形態において記述されているものを実行するように構成されるかまたはそのように動作可能であり得る。
【0104】
[00123]本明細書における記述において、および後続する特許請求の範囲全体を通じて使用される際には、「a」、「an」、および「the」は、文脈が明確に別段の指示をしない限り、複数の参照を含む。また、本明細書における記述において、および後続する特許請求の範囲全体を通じて使用される際には、「in」の意味は、文脈が明確に別段の指示をしない限り、「in」および「on」を含む。
【0105】
[00124]上の記述は、さまざまな実施形態を、いくつかの実施形態の態様がどのように実施され得るかの例とともに示している。上記の例および実施形態は、唯一の実施形態であるとみなされるべきではなく、下記の特許請求の範囲によって定義されるいくつかの実施形態の柔軟性および利点を例示するために提示されている。上記の開示および下記の特許請求の範囲に基づいて、その他のアレンジ、実施形態、実装形態、および均等物が、特許請求の範囲によって定義される本明細書の範囲から逸脱することなく採用され得る。
【外国語明細書】