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

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

▶ フル・エルエルシーの特許一覧

特開2024-76957タイミング要件に基づく最適化されたビデオトランスコーディング
<>
  • 特開-タイミング要件に基づく最適化されたビデオトランスコーディング 図1
  • 特開-タイミング要件に基づく最適化されたビデオトランスコーディング 図2A
  • 特開-タイミング要件に基づく最適化されたビデオトランスコーディング 図2B
  • 特開-タイミング要件に基づく最適化されたビデオトランスコーディング 図2C
  • 特開-タイミング要件に基づく最適化されたビデオトランスコーディング 図3
  • 特開-タイミング要件に基づく最適化されたビデオトランスコーディング 図4
  • 特開-タイミング要件に基づく最適化されたビデオトランスコーディング 図5
  • 特開-タイミング要件に基づく最適化されたビデオトランスコーディング 図6
  • 特開-タイミング要件に基づく最適化されたビデオトランスコーディング 図7
  • 特開-タイミング要件に基づく最適化されたビデオトランスコーディング 図8
  • 特開-タイミング要件に基づく最適化されたビデオトランスコーディング 図9A
  • 特開-タイミング要件に基づく最適化されたビデオトランスコーディング 図9B
  • 特開-タイミング要件に基づく最適化されたビデオトランスコーディング 図10
  • 特開-タイミング要件に基づく最適化されたビデオトランスコーディング 図11
  • 特開-タイミング要件に基づく最適化されたビデオトランスコーディング 図12
  • 特開-タイミング要件に基づく最適化されたビデオトランスコーディング 図13
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024076957
(43)【公開日】2024-06-06
(54)【発明の名称】タイミング要件に基づく最適化されたビデオトランスコーディング
(51)【国際特許分類】
   H04N 21/2343 20110101AFI20240530BHJP
【FI】
H04N21/2343
【審査請求】有
【請求項の数】20
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2023164274
(22)【出願日】2023-09-27
(31)【優先権主張番号】2022114915706
(32)【優先日】2022-11-25
(33)【優先権主張国・地域又は機関】CN
(31)【優先権主張番号】18/146,824
(32)【優先日】2022-12-27
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】512333560
【氏名又は名称】フル・エルエルシー
(74)【代理人】
【識別番号】110003708
【氏名又は名称】弁理士法人鈴榮特許綜合事務所
(72)【発明者】
【氏名】チェン・リュー
(72)【発明者】
【氏名】シーチャン・フアンフー
(72)【発明者】
【氏名】シャオボー・リュー
(72)【発明者】
【氏名】ウェンハオ・ジャン
【テーマコード(参考)】
5C164
【Fターム(参考)】
5C164MB13S
5C164PA31
5C164SB02P
5C164SB41S
5C164YA21
(57)【要約】      (修正有)
【課題】ビデオ配信システムにおいてタイミング要件を満たすようにビデオアセットファイルのトランスコードされたバージョンを配信する方法及び記憶媒体を提供する。
【解決手段】方法は、トランスコーディングのためのファイルを受信する。タイミング要件が、ファイルのトランスコーディングに関連付けられている。方法はまた、ターゲット構成のセット及びファイルの特性に基づいて、タイミング推定値の予測を生成する。ターゲット構成のセットにおけるターゲット構成が、トランスコーディング設定に関連付けられている。タイミング推定値は、トランスコーディングシステムのトランスコーディング構成を決定するために、ターゲット構成のセット及びタイミング要件について分析される。方法はさらに、トランスコーディングシステムのトランスコーディング構成を、ファイルをトランスコードするようにトランスコーディングシステムを構成するために出力する。
【選択図】図4
【特許請求の範囲】
【請求項1】
方法であって、
コンピューティングデバイスによって、トランスコーディングのためのファイルを受信すること、ここにおいて、タイミング要件が、前記ファイルの前記トランスコーディングに関連付けられている、と、
前記コンピューティングデバイスによって、ターゲット構成のセットおよび前記ファイルの特性に基づいて、タイミング推定値の予測を生成すること、ここにおいて、前記ターゲット構成のセットにおけるターゲット構成が、トランスコーディング設定に関連付けられている、と、
前記コンピューティングデバイスによって、トランスコーディングシステムのトランスコーディング構成を決定するために、前記ターゲット構成のセットについての前記タイミング推定値および前記タイミング要件を分析することと、
前記コンピューティングデバイスによって、前記ファイルをトランスコードするように前記トランスコーディングシステムを構成するための前記トランスコーディング構成を出力すること、ここにおいて、前記ファイルは、前記トランスコーディングシステムを構成することに基づいて、前記ターゲット構成のセットの少なくとも一部分を使用してトランスコードされるべきである、と、
を備える方法。
【請求項2】
前記タイミング要件は、前記ファイルをトランスコードするための時間制限である、請求項1に記載の方法。
【請求項3】
前記タイミング推定値の前記予測を生成することは、
前記ファイルの特徴を抽出することと、
前記タイミング推定値を予測するために、前記特徴およびターゲット構成を使用することと、
を備える、請求項1に記載の方法。
【請求項4】
前記タイミング推定値の前記予測を生成することは、
前記ファイルの特徴を抽出することと、
前記ターゲット構成のセットのうちの各々についての前記タイミング推定値を予測するために、前記特徴および前記ターゲット構成のセットを使用することと、
を備える、請求項1に記載の方法。
【請求項5】
前記ターゲット構成のセットにおけるターゲット構成が、前記ファイルをトランスコードするために、前記トランスコーディングシステムによって使用される、請求項1に記載の方法。
【請求項6】
前記タイミング推定値および前記タイミング要件を分析することは、
ターゲット構成についてのタイミング推定値を前記タイミング要件と比較することと、
前記ファイルが前記タイミング要件を満たすようにトランスコードされ得るかどうかを決定することと、
を備える、請求項1に記載の方法。
【請求項7】
前記タイミング推定値および前記タイミング要件を分析することは、
前記ファイルが前記タイミング要件を満たすようにトランスコードされ得るかどうかのインジケーションを出力すること
を備える、請求項6に記載の方法。
【請求項8】
前記構成を出力することは、
前記分析することに基づいて、前記ファイルをトランスコードするために使用すべき前記ターゲット構成のセットのうちの1つ以上を決定すること
を備える、請求項1に記載の方法。
【請求項9】
前記ターゲット構成のセットのうちの前記1つ以上は、ターゲット構成の前記トランスコーディングが前記タイミング要件を満たしていることに基づく、請求項8に記載の方法。
【請求項10】
前記ターゲット構成のセットの第1の部分が、第1の公開時刻での公開のために選択され、公開は、トランスコードされたファイルがデバイスへの配信のために要求され得るときである、請求項8に記載の方法。
【請求項11】
前記ターゲット構成のセットの第2の部分が、第2の公開時刻での公開のために選択され、第2の公開時刻は、前記第1の公開時刻よりも後である、請求項10に記載の方法。
【請求項12】
前記トランスコーディング構成を出力することは、
前記タイミング要件を満たさないターゲット構成を選択することと、
前記ターゲット構成についての複数のプリセットを決定することと、
前記複数のプリセットに基づいて、複数のタイミング推定値を決定すること、ここにおいて、前記複数のタイミング推定値は、前記トランスコーディング構成において使用すべき前記複数のプリセットにおける前記プリセットのうちの1つを選択するために使用される、と、
を備える、請求項1に記載の方法。
【請求項13】
前記複数のタイミング推定値を決定することは、
ターゲット構成についての前記複数のプリセットに基づいて、前記複数のタイミング推定値を生成すること、ここにおいて、プリセットが、前記ファイルのトランスコーディング時間に影響を及ぼす、
を備える、請求項12に記載の方法。
【請求項14】
前記タイミング推定値の前記予測を生成することは、
第1のタイプのコンピューティングリソースについての第1のタイミング推定値の第1の予測を生成することと、
第2のタイプのコンピューティングリソースについての第2のタイミング推定値の第2の予測を生成することと、
ターゲット構成をトランスコードするために、前記第1のタイプのコンピューティングリソースおよび前記第2のタイプのコンピューティングリソースのうちの1つを選択するために、前記第1のタイミング推定値および前記第2のタイミング推定値を使用することと、
を備える、請求項1に記載の方法。
【請求項15】
前記第1のタイミング推定値および前記第2のタイミング推定値を使用することは、
前記構成において、前記第1のタイプのコンピューティングリソースに、前記ターゲット構成のセットのうちの第1のターゲット構成を割り振ることと、
前記構成において、前記第2のタイプのコンピューティングリソースに、前記ターゲット構成のセットのうちの第2のターゲット構成を割り振ることと、
を備える、請求項14に記載の方法。
【請求項16】
前記第1のタイプのコンピューティングリソースは、前記ファイルをトランスコードするために使用される第1のトランスコーダに関連付けられており、
前記第2のタイプのコンピューティングリソースは、前記ファイルをトランスコードするために使用される第2のトランスコーダに関連付けられている、
請求項14に記載の方法。
【請求項17】
前記タイミング推定値の前記予測を生成することは、
前記ファイルの一部分についての前記タイミング推定値の前記予測を生成することを備える、請求項1に記載の方法。
【請求項18】
コンピュータ実行可能命令を記憶した非一時的なコンピュータ可読記憶媒体であって、前記コンピュータ実行可能命令は、コンピューティングデバイスによって実行されると、前記コンピューティングデバイスに、
トランスコーディングのためのファイルを受信すること、ここにおいて、タイミング要件が、前記ファイルの前記トランスコーディングに関連付けられている、と、
ターゲット構成のセットおよび前記ファイルの特性に基づいて、タイミング推定値の前記予測を生成すること、ここにおいて、前記ターゲット構成のセットにおけるターゲット構成が、トランスコーディング設定に関連付けられている、と、
トランスコーディングシステムのトランスコーディング構成を決定するために、前記ターゲット構成のセットについての前記タイミング推定値および前記タイミング要件を分析することと、
前記ファイルをトランスコードするように前記トランスコーディングシステムを構成するための前記トランスコーディング構成を出力すること、ここにおいて、前記ファイルは、前記トランスコーディングシステムを構成することに基づいて、前記ターゲット構成のセットの少なくとも一部分を使用してトランスコードされるべきである、と、
を行うように動作可能にさせる、非一時的なコンピュータ可読記憶媒体。
【請求項19】
前記構成を出力することは、
前記タイミング要件を満たさないターゲット構成を選択することと、
前記ターゲット構成についての複数のプリセットを決定することと、
前記複数のプリセットに基づいて、複数のタイミング推定値を決定すること、ここにおいて、前記複数のタイミング推定値は、前記トランスコーディング構成において使用すべき前記複数のプリセットにおける前記プリセットのうちの1つを選択するために使用される、と、
を備える、請求項18に記載の非一時的なコンピュータ可読記憶媒体。
【請求項20】
装置であって、
1つ以上のコンピュータプロセッサと、
トランスコーディングのためのファイルを受信すること、ここにおいて、タイミング要件が、前記ファイルの前記トランスコーディングに関連付けられている、と、
ターゲット構成のセットおよび前記ファイルの特性に基づいて、タイミング推定値の前記予測を生成すること、ここにおいて、前記ターゲット構成のセットにおけるターゲット構成が、トランスコーディング設定に関連付けられている、と、
トランスコーディングシステムのトランスコーディング構成を決定するために、前記ターゲット構成のセットについての前記タイミング推定値および前記タイミング要件を分析することと、
前記ファイルをトランスコードするように前記トランスコーディングシステムを構成するための前記トランスコーディング構成を出力すること、ここにおいて、前記ファイルは、前記トランスコーディングシステムを構成することに基づいて、前記ターゲット構成のセットの少なくとも一部分を使用してトランスコードされるべきである、と、
を行うように動作可能であるように前記1つ以上のコンピュータプロセッサを制御するための命令を備えるコンピュータ可読記憶媒体と、
を備える装置。
【発明の詳細な説明】
【関連出願の相互参照】
【0001】
[0001]米国特許法119条(a)に従って、本願は、2022年11月25日に出願された「OPTIMIZED VIDEO TRANSCODING BASED ON A TIMING REQUIREMENT」と題する中国特許出願第2022114915706号の出願日の利益を享受する権利を有し、かつその利益を主張するものであり、その内容は、あらゆる目的のために、その全体が参照により本明細書に組み込まれる。
【背景技術】
【0002】
[0002]ビデオ配信システムは、ビデオアセットファイルを受信し、異なるトランスコーディング構成に従って、ビデオアセットファイルをトランスコードし得る。例えば、ビデオアセットファイルは、複数のプロファイルにトランスコードされ得、ここで、各プロファイルは、特性(例えば、ビットレート、解像度、コーデック、等)の異なる構成を表す。ビデオがサービス上で公開されると、クライアントが、ビデオの再生を要求し得る。再生中、クライアントは、クライアントによって経験されている現在の再生条件に基づいて、プロファイルのうちの任意のものの間で切り替え得る。
【0003】
[0003]いくつかのケースでは、ビデオ配信システムは、ビデオがいつ公開されるべきかに関する要件を有し得る。例えば、要件は、ビデオが、ある時間から5時間(例えば、ビデオアセットファイルを受信してから5時間)等、ある特定の時間期間内に公開されるべきというものであり得る。異なるビデオアセットファイルのトランスコーディング時間は、それぞれのビデオアセットファイルに含まれるそれぞれのビデオコンテンツの性質により、大きく異なり得る。例えば、同じプロファイルの場合、複雑なテクスチャおよびモーションを有するビデオは、より複雑でないテクスチャおよびモーションを有するビデオと比較して、トランスコードするのにより長くかかり得る。ビデオ配信システムは、どのくらいの速さでビデオアセットファイルが異なるプロファイルにトランスコードされ得るかに関する限られた見通し(limited perspective)を有し得る。したがって、ビデオ配信システムは、タイミング要件を満たすようにビデオアセットファイルのトランスコードされたバージョンを配信するのが困難な場合がある。
【0004】
[0004]含まれる図面は、例示を目的としており、開示される本発明のシステム、装置、方法、およびコンピュータプログラム製品のための可能な構造および動作の例を提供するためにのみ役立つ。これらの図面は、開示される実装形態の趣旨および範囲から逸脱することなく当業者によってなされ得る形態および詳細におけるいかなる変更も決して限定しない。
【図面の簡単な説明】
【0005】
図1】[0005]図1は、いくつかの実施形態による、ビデオアセットファイルをトランスコードするための簡略化されたシステムを図示する。
図2A】[0006]図2Aは、不確定なトランスコーディング時間を有するビデオアセットファイルをトランスコードするときに生じ得る異なるシナリオを図示する。
図2B図2Bは、不確定なトランスコーディング時間を有するビデオアセットファイルをトランスコードするときに生じ得る異なるシナリオを図示する。
図2C】[0007]図2Cは、いくつかの実施形態による、最適化を使用するときのシナリオを図示する。
図3】[0008]図3は、いくつかの実施形態による、最適化システムのより詳細な例を図示する。
図4】[0009]図4は、いくつかの実施形態による、トランスコーディングタイミング推定値を生成するための方法の簡略化されたフローチャートを図示する。
図5】[0010]図5は、いくつかの実施形態による、プロファイルについてのターゲット構成の表を図示する。
図6】[0011]図6は、いくつかの実施形態による、最適化戦略を生成するために使用され得る情報の一覧を示す表を図示する。
図7】[0012]図7は、いくつかの実施形態による、トランスコーディングタイミング推定値を分析するための方法の簡略化されたフローチャートを図示する。
図8】[0013]図8は、いくつかの実施形態による、タイミング要件を満たさないプロファイルのための追加のトランスコーディングオプションを分析するための方法の簡略化されたフローチャートを図示する。
図9A】[0014]図9Aは、いくつかの実施形態による、異なるプリセットの一例を図示する。
図9B】[0015]図9Bは、いくつかの実施形態による、異なるプリセットを使用して最適化を行ったときの結果の一例を図示する。
図10】[0016]図10は、いくつかの実施形態による、コンピューティングリソースを割り振るための方法の簡略化されたフローチャートを図示する。
図11】[0017]図11は、いくつかの実施形態による、最適化戦略を生成するために使用される情報をまとめた情報を示す表を図示する。
図12】[0018]図12は、一実施形態による、1つ以上の通信ネットワークを介して複数のクライアントデバイスと通信状態にあるビデオストリーミングシステムを図示する。
図13】[0019]図13は、ビデオコンテンツおよび広告を視聴するための装置の概略図を図示する。
【発明を実施するための形態】
【0006】
[0020]本明細書では、ビデオ配信システムのための技法が説明される。以下の説明では、説明を目的として、いくつかの実施形態の完全な理解を提供するために、多数の例および具体的な詳細が記載されている。特許請求の範囲によって定義されるいくつかの実施形態は、これらの例における特徴の一部またはすべてを単独で、または以下で説明する他の特徴と組み合わせて含み得、本明細書で説明する特徴および概念の修正および同等物をさらに含み得る。
【0007】
[0021]ビデオ配信システムが、ビデオアセットファイルのプロファイルへのトランスコーディングを最適化し得る。プロファイルは、適応ビットレートストリーミングアプリケーションのために設計され得、ここで、プロファイルは、ビデオ解像度、ビットレート、コーデック、および他の設定等、異なるトランスコーディング構成を定義し得る。例えば、第1のプロファイルは、384×216の出力解像度および280キロバイト毎秒(kbps)のビデオビットレートを有し得、第2のプロファイルは、480×270の出力解像度および400kbpsのビデオビットレートを有し得る。プロファイルはまた、H.264、H.265、等のような、コーデックタイプを指定する等、他の設定も含み得る。
【0008】
[0022]ビデオ配信システムは、サービス上でビデオを公開するためのタイミング要件等、ビデオアセットファイルのための要件を有し得る。ビデオの公開は、ビデオの再生等のために、サービスのユーザアカウントによって使用されているクライアントによってビデオがアクセスされ得る場合であり得る。公開される前に、ビデオ配信システムは、ビデオアセットファイルを1つ以上のプロファイルにトランスコードしなければならない場合がある。要件は、ビデオアセットファイルをトランスコードするために要することができる時間を制限し得る。以下は、要件がビデオアセットファイルのために受信されるときの例であり得るが、他のシナリオも理解され得る。アセットは、番組のエピソードがスケジュールされた時間にブロードキャストされ得るように、線形時間スケジュールでブロードキャストされ得る。ビデオ配信システムは、ブロードキャストされたアセットのためのビデオアセットファイルを受信し得る。例えば、番組のためのビデオアセットファイルは、それがスケジュールされた時間においてブロードキャストされる前、ブロードキャスト中、またはブロードキャストされた後に受信され得る。次いで、ビデオ配信システムは、ビデオアセットファイルをトランスコードする。例えば、ビデオアセットファイルは、ビデオオンデマンドアセットとしてトランスコードされ得、これは、任意の時点で要求され得るアセットである。ビデオオンデマンドアセットは、異なるプロファイルにおいて利用可能であり得る。ビデオ配信システムは、ビデオ配信システム上でビデオを公開するための時刻(time)を指定し得る要件を(例えば、番組をブロードキャストするエンティティから、または内部要件から)受信し得る。例えば、番組のエピソードがブロードキャストされ得、ビデオアセットファイルが午後7:00に受信され得る。次いで、ビデオ配信システムは、午後11:00までに、ビデオをそのビデオ配信サービス上で公開しなければならない場合がある。したがって、ビデオ配信システムは、ビデオをトランスコードするのに4時間あり得る。以前は、ビデオ配信システムは、アセットファイルをトランスコードするのにどれくらい長くかかり得るかを知り得なかった。例えば、いくつかのビデオプロファイルは、午後11:00まで等、要件を満たす時間内にトランスコードされ得ない可能性がある。また、いくつかのプロファイルは、午後8:00まで等、要件より前にトランスコードされ得る可能性もある。第1の状況は、必要とされる時間においてプロファイルが利用可能でないことをもたらし得る。第2の状況は、利用可能時間を効率的に使用しないビデオのトランスコーディングをもたらし得る。例えば、ビデオアセットファイルは、ビデオアセットファイルをトランスコードするために追加の時間をかけることによって、より高い品質でトランスコードされた可能性がある。上記の例が説明されたが、ビデオ配信システムは、他のシナリオにおいてもタイミング要件を受信し得る。例えば、ビデオ配信システムにおける内部要件は、ビデオがある特定の時刻までにリリースされることを必要とし得、映画がある特定の時刻までにリリースされなければならない場合がある、等である。
【0009】
[0023]上記の問題を克服するために、ビデオ配信システムは、ビデオアセットファイルをトランスコードするためのトランスコーディングタイミング推定値を予測し得る。例えば、ビデオ配信システムは、ビデオアセットファイルの特徴を抽出し、ビデオアセットファイルを異なるプロファイルにトランスコードするためのトランスコーディング時間を予測し得る。予測プロセスは、以下でより詳細に説明される。予測されたトランスコーディングタイミング推定値を使用して、ビデオ配信システムは、どのプロファイルがタイミング要件を満たすようにトランスコードされ得るかを決定し得る。この情報を使用して、ビデオ配信システムは、トランスコーディングプロセスを最適化し得る。例えば、ビデオ配信システムは、要件を満たさない可能性があるいくつかのプロファイルをトランスコードしないことを選び得、これは、コンピューティングリソースの使用を節約し得る。また、ビデオ配信システムは、いくつかのプロファイルのトランスコーディングのオーケストレーション(orchestration)を最適化し得る。例えば、いくつかのプロファイルは、予測に基づいて、異なるコンピューティングリソースに割り振られ得る。トランスコーディングシステムは、ローエンドコンピューティングノードおよびハイエンドコンピューティングノードを含み得る。ローエンドコンピューティングノードは、ビデオアセットファイルをハイエンドコンピューティングノードよりも遅くトランスコードし得るが、ローエンドコンピューティングノードは、使用コストがより少なくあり得る。タイミング要件より前に終了すると予測されるプロファイルは、別のコンピューティングノードほど速くビデオアセットファイルをトランスコードし得ないローエンドコンピューティングノードに割り振られ得る。いくつかの実施形態では、予測は、プロファイルがローエンドコンピューティングノードによってトランスコードされ得るか否かを予測するように改善され得る。ローエンドコンピューティングノードは、コストがより少なくあり得、これは、コストを節約し得るので、これはオーケストレーションを改善し得る。別の例では、プロファイルがタイミング要件内でトランスコードされ得ない場合には、ビデオ配信システムは、できる限り(possibly)要件を満たすようにビデオアセットファイルをトランスコードするために、プロファイルのいくつかの特性を変更し得る。例えば、コーデックは、トランスコーダがビデオアセットファイルをより速くトランスコードすることを可能にし得る異なる設定を有し得る。ビデオ配信システムは、ビデオをより速くトランスコードするためのプロファイル内の設定を選び得、これは、ビデオアセットファイルが要件に基づいてトランスコードされることができないと予測することに対する改善である。これは、タイミング要件に基づいて、公開するために利用可能であり得なかったいくつかのプロファイルが、これでタイミング要件を満たすように利用可能になり得るので、トランスコーディングプロセスを改善する。
【0010】
[0024]<システムの概要>
【0011】
[0025]図1は、いくつかの実施形態による、ビデオアセットファイルをトランスコードするための簡略化されたシステム100を図示する。システム100は、コンテンツ配信ネットワーク102と、クライアント104と、ビデオ配信システム106と、を含む。ビデオアセットファイルは、ビデオ、オーディオ、または他のタイプのコンテンツ情報等の、異なるタイプのコンテンツを含み得る。ビデオが、説明を目的として使用され得るが、他のタイプのコンテンツも理解され得る。いくつかの実施形態では、アセットファイルが、別のフォーマットへのトランスコーディングを必要とするフォーマットで受信され得、これは、以下に説明される。例えば、ビデオアセットファイルは、圧縮されたビデオを含むメザニンファイル(mezzanine file)であり得る。メザニンファイルは、ビデオの異なるプロファイル等の、他のファイルを作成するためにトランスコード(例えば、符号化)され得る。
【0012】
[0026]コンテンツプロバイダは、エンティティがメディアコンテンツを要求および受信することを可能にするコンテンツ配信サービスを提供するようにビデオ配信システム106を動作させ得る。コンテンツプロバイダは、クライアント104へのメディアコンテンツの配布を調整するために、ビデオ配信システム106を使用し得る。メディアコンテンツは、ビデオのライブラリからのオンデマンドビデオおよびライブビデオ等の、異なるタイプのコンテンツであり得る。いくつかの実施形態では、ライブビデオは、ビデオが線形スケジュールに基づいて利用可能である場合であり得る。ビデオはまた、オンデマンドで提供され得る。オンデマンドビデオは、任意の時点で要求され得、線形スケジュールでの視聴に限定されないコンテンツであり得る。ビデオは、映画、番組、広告、等のようなプログラムであり得る。上述したように、ビデオアセットファイルのためのビデオは、ライブビデオとして、そしてまた、オンデマンドでも提供され得るが、リリースされる映画についてタイミング要件があり得る等、他のシナリオが存在し得る。
【0013】
[0027]クライアント104は、スマートフォン、リビングルームデバイス、テレビ、セットトップボックス、タブレットデバイス、等のような、異なるコンピューティングデバイスを含み得る。クライアント104は、ビデオ等のコンテンツを再生し得るメディアプレーヤ112を含む。いくつかの実施形態では、メディアプレーヤ112は、ビデオのセグメントを受信し、これらのセグメントを再生し得る。クライアント104は、セグメントの要求をコンテンツ配信ネットワーク102に送り、次いで、メディアプレーヤ112での再生のために、要求したセグメントを受信し得る。セグメントは、ビデオの6秒等のビデオの一部分であり得る。
【0014】
[0028]ビデオは、異なる構成に対応する複数のプロファイルにおいてトランスコードされ得、これは、異なるレベルのビットレートおよび/または品質であり得るが、コーデックタイプ、コンピューティングリソースタイプ(例えば、コンピュータ処理ユニット)、等のような、他の特性も含み得る。各ビデオは、異なる構成を有する関連付けられたプロファイルを有し得る。プロファイルは、異なるレベルで分類され得、各レベルは、異なる構成に関連付けられ得る。例えば、レベルは、ビットレート、解像度、コーデック、等の組合せであり得る。例えば、各レベルは、400キロバイト毎秒(kbps)、650kbps、1000kbps、1500kbps、...12000kbps等の、異なるビットレートに関連付けられ得る。また、各レベルは、品質特性(例えば、解像度)等の、別の特性に関連付けられ得る。プロファイルレベルは、より高いビットレートまたは品質を有するプロファイルが、より低いビットレートまたは品質を有するプロファイルよりも高く格付けされ得るように、より高いまたはより低いとして言及され得る。
【0015】
[0029]コンテンツ配信ネットワーク102は、ビデオをクライアント104に配信し得るサーバを含む。コンテンツ配信ネットワーク102は、クライアント104からビデオのセグメントの要求を受信し、ビデオのセグメントをクライアント104に配信する。クライアント104は、現在の再生条件に基づくプロファイルレベルのうちの1つからビデオのセグメントを要求し得る。再生条件は、利用可能な帯域幅、バッファ長、等のような、ビデオの再生に基づいて経験される任意の条件であり得る。例えば、クライアント104は、現在利用可能な帯域幅、バッファ長、または他の再生条件に基づいてビデオのためのプロファイルを選択するための適応ビットレートアルゴリズムを使用し得る。クライアント104は、現在の再生条件を連続的に評価し、ビデオのセグメントの再生中にプロファイル間で切り替え得る。例えば、再生中、メディアプレーヤ112は、ビデオアセットの異なるプロファイルを要求し得る。例えば、低帯域幅再生条件が経験されている場合には、メディアプレーヤ112は、ビデオの来たるセグメント(upcoming segment)のために、より低いビットレートに関連付けられたより低いプロファイルを要求し得る。しかしながら、より高い利用可能な帯域幅の再生条件が経験されている場合、メディアプレーヤ112は、ビデオの来たるセグメントのために、より高い帯域幅に関連付けられたより高いレベルのプロファイルを要求し得る。
【0016】
[0030]ビデオ配信システム106は、受信されたビデオアセットファイルをトランスコードし、クライアント104がビデオの再生を要求し得るサービス上で、トランスコードされたビデオを公開し得る。トランスコーディングを行うために、ビデオ配信システム106は、トランスコーディングシステムパイプライン108および最適化システム110を含み得る。トランスコーディングシステムパイプライン108は、コンピューティングリソース(例えば、トランスコーディングシステム)を使用して、ビデオアセットファイルをトランスコードし得る。最適化システム110は、ビデオアセットファイルのトランスコーディングを最適化し得る。
【0017】
[0031]ビデオトランスコーディングプロセスでは、ビデオ配信システム106は、あるフォーマットから別のフォーマットへのトランスコーディングを必要とするビデオアセットファイルを受信し得る。例えば、上述したように、ビデオアセットのブロードキャスト後、ビデオ配信システム106は、ビデオアセットのためのビデオアセットファイルを受信し得る。いくつかの例では、番組のエピソードがブロードキャストされ得、ビデオアセットファイルは、ブロードキャスト前、ブロードキャスト中、またはブロードキャスト後等、午後7:00にビデオ配信システム106によって受信される。上述したように、トランスコーディングシステムパイプライン108は、ビデオアセットファイルを少なくとも1つの異なるプロファイルにトランスコードするための、午後11:00等のタイミング要件を有し得、ここで、各プロファイルは、別のビデオファイルであり得る。少なくとも1つのプロファイルのトランスコーディングが完了すると、ビデオ配信システム106は、サービス上でビデオアセットを公開し得る。いくつかの実施形態では、ビデオ配信システム106は、オリジンストレージ(origin storage)114上にトランスコードされたプロファイルを公開し得る。次いで、コンテンツ配信ネットワーク102は、要求を受信し、クライアント104によってそれらが要求されたときに、オリジンストレージ114からプロファイルを受信し得る。プロファイルが各コンテンツ配信ネットワーク102に個々に送られ得る等、他の構成も存在し得る。
【0018】
[0032]プロファイルを公開した後、ビデオアセットは、要求され、再生のためにクライアント104に配信され得る。例えば、ブロードキャスト後、ビデオ配信システム106は、ビデオアセットをビデオオンデマンドアセットとして公開し得、これは、クライアント104によって任意の時点で要求され得る。いくつかの例では、ユーザアカウントは、午後11:00以降の後の時間に番組のエピソードの再生を要求し得る。
【0019】
[0033]トランスコーディングシステムパイプライン108は、異なる特性を含み得るトランスコーディングノード等、トランスコーディングを行い得る異なるコンピューティングリソースを含み得る。異なる特性は、トランスコーディング時間に影響を及ぼし得る。例えば、ローエンドコンピューティングノードは、より低い性能のCPUを有し得、ハイエンドコンピューティングノードは、より高い性能のCPUを有し得る。ローエンドコンピューティングノードは、ビデオアセットファイルをハイエンドコンピューティングノードよりも遅くトランスコードし得る。
【0020】
[0034]最適化システム110は、ビデオアセットファイルに関連付けられた特徴を分析し、ビデオアセットファイルをトランスコードするための最適化戦略を生成し得る。以下でより詳細に説明されるように、最適化システム110は、異なるプロファイルについてのトランスコーディングタイミング推定値を予測し得る。次いで、公開時刻に基づくトランスコーディング時間等の、ビデオアセットファイルのための要件を使用して、最適化システム110は、トランスコーディング最適化戦略を生成し得る。例えば、最適化システム110は、予測されたトランスコーディングタイミング推定値に基づいて、タイミング要件内でどのプロファイルがトランスコードされ得るかを決定し得る。別の戦略は、タイミング要件を満たすようにトランスコーディングを終了できないと予測されたプロファイルのいくつかの構成を、プロファイルがタイミング要件を満たすようにトランスコードされ得るように変更することを試み得る。なお別の戦略は、トランスコーディングシステムパイプライン108におけるコンピューティングリソース上で、プロファイルのトランスコーディングを効率的に割り振ることであり得る。
【0021】
[0035]以下では、次に、最適化システム110を使用する利点を例示する異なるシナリオを説明し、続いて、最適化プロセスの追加の詳細を説明する。
【0022】
[0036]<シナリオ>
【0023】
[0037]図2Aおよび図2Bは、ビデオアセットファイルをトランスコードするときに生じ得る異なるシナリオを図示する。図2Cは、いくつかの実施形態による、最適化を使用するときのシナリオを図示する。図2A図2Cは、コンテンツ到着時刻を示し、これは、ビデオアセットファイルが受信されたときであり得る。例えば、番組のエピソードが、午後7:00のコンテンツ到着時刻に到着し得る。ビデオ配信システム106は、コンテンツを公開するための限られた時間窓を与えられ得る。例えば、限られた時間窓は、午後11:00においてコンテンツ公開時刻を有し得る。
【0024】
[0038]ビデオアセットファイルのトランスコーディングプロセスは、異なる部分を含み得る。例えば、第1の部分Tは、トランスコーディングジョブを準備するのに費やされる処理時間であり得る。異なる準備タスクが行われ得、これは、ビデオアセットファイルの取り込み(ingestion)、リソース割り振り、および任意の前処理分析を含み得る。第2の時間Tは、ビデオアセットファイルをプロファイルにトランスコードするためにかかるビデオトランスコーディング時間であり得る。第3の時間Tは、トランスコーディングジョブが終了した後の処理時間であり、これは、パッケージング、暗号化、CDNネットワークにビデオを送ること、等を含み得る。時間TおよびTにかかる処理時間は、各ビデオアセットファイルについて既知であり得る固定時間窓であり得る。しかしながら、時間Tは、各ビデオアセットファイルのそれぞれの特性と、上述したようにトランスコーディングを行い得るコンピューティングノードの能力とに依存し得るトランスコーディング時間変動により、既知でない場合がある。
【0025】
[0039]不確定なトランスコーディング時間により、潜在的な問題が生じ得る。例えば、図2Aは、不確定なトランスコーディング時間から生じる第1の問題を図示し、図2Bは、不確定なトランスコーディング時間から生じる第2の問題を図示する。図2Aでは、トランスコーディング時間Tは、長すぎ得、その結果、202に示すように、プロファイルのためのビデオアセットファイルが、コンテンツ公開時刻までに準備できていない場合がある。また、図2Bでは、トランスコーディング時間Tは、より短くあり得、これは、プロファイルのためのビデオアセットファイルが、コンテンツ公開時刻より前である204において利用可能になることをもたらす。このケースでは、利用可能時間は、完全には最適化され得ない。例えば、トランスコーディングがより遅く行われ得るような、より高い品質のトランスコーディングを、許容された時間窓内で行うことができた可能性がある。すなわち、トランスコーダは、ビデオを処理するためにより多くの時間をかけ得、これは、より高い品質のトランスコーディングをもたらし得る。
【0026】
[0040]図2Cは、いくつかの実施形態による、最適化戦略を使用して最適化されたトランスコーディングタイムラインを図示する。例えば、206において、時間Tb1は、最適化システム110によって最適化分析に費やされる時間である。次いで、208において、時間Tb2は、最適化システム110によって予測されたトランスコーディング時間である。次いで、プロファイルについてのビデオアセットファイルのトランスコーディングが、コンテンツ公開時刻までに準備され得、これは、時間窓の最適化された使用を提供する。例えば、予測されたトランスコーディングタイミング推定値に基づいて、タイミング要件を依然として満たしながら、時間窓内で可能な限り高い品質のためのプロファイルについてのビデオアセットファイルをトランスコードし得るトランスコーダが選択され得る。
【0027】
[0041]図2Cでは、トランスコーディングジョブを準備するのに費やされる処理時間の第1の部分Tと、206での最適化分析と、208でのトランスコーディングとのタスクが、直列の段階的な順序で示されている。いくつかの実施形態では、これらのタスクのいくつかは、並行してトリガおよび実行され得る。例えば、準備タスクと最適化分析が、並行して実行され得る。また、最適化分析とトランスコーディングもまた、並行して実行され得る。トランスコーディング時間予測のタスクは、ビデオアセットファイルをトランスコードするタスクよりも速く実行され得、トランスコーディング時間情報は、トランスコードするタスクが終了する前に利用可能になる。一旦トランスコーディング時間予測が既知になると、最適化システム110は、この予測に従って、トランスコーディングタスクが継続されることになるか、または終了されることになるかを決定し得る。例えば、タイミング要件が満たされるようにトランスコーディングが終了しないであろう場合、最適化システム110は、このタスクを終了し得る。これらの実施形態では、最適化分析に費やされる時間Tb1は、トランスコーディングタスクにいかなる遅延も導入しないが、それは、いくつかのトランスコーディングタスクが、全く開始されないのではなく、開始されおよび終了されることを必要とし得る。次に、最適化について、以下により詳細に説明する。
【0028】
[0042]<最適化システム>
【0029】
[0043]図3は、いくつかの実施形態による、最適化システム110のより詳細な例を図示する。ビデオアセットファイルは、最適化システム110およびトランスコーディングシステムパイプライン108において受信される。事前分析エンジン302が、トランスコーディングジョブを準備するために必要な事前分析タスク303を行い得る。例えば、事前分析タスク303は、コンテンツ分類ベースのトランスコーディングパラメータチューニング、プロファイル設定を構成すること等を含み得るような、前処理タスクを含み得る。これらのタスクは、並行して行われ得る。事前分析エンジン302はまた、ビデオアセットファイルについての任意のタイミング要件を決定し得る。別の事前分析タスクでは、トランスコーディングタイミング推定エンジン304は、ビデオアセットファイルの特徴を使用して、トランスコーディングタイミング推定値を生成し得る。上述したように、タイミング推定は、他の事前分析タスク303またはトランスコーディングと並行して行われ得る。トランスコーディングタイミング推定値は、複数のプロファイルのために生成され得る。各プロファイルは、ビデオアセットファイルをトランスコードするために必要となる予測された時間を有し得る。また、トランスコーディング時間推定値は、ビデオアセット全体をトランスコードするための推定値であり得るが、ビデオアセットのチャンク、セグメント、または所与の期間もしくは部分等の、より細かい粒度に適用され得る。トランスコーディングタイミングエンジン304は、最適化戦略エンジン306にトランスコーディングタイミング推定値を出力する。最適化戦略エンジン306は、トランスコーディングタイミング推定値と、ビデオアセットファイルのトランスコーディングのための要件とを分析し、最適化戦略を出力する。最適化戦略は、トランスコーディングシステムパイプライン108の構成を決定するために使用され得る。最適化戦略は、どのプロファイルをトランスコードすべきかを決定することと、プロファイルをトランスコードするためのコンピューティングリソースを割り当てることと、を伴い得る。この構成は、最適化戦略に基づいて、ビデオアセットファイルを1つ以上のプロファイルにトランスコードするように、トランスコーディングシステムパイプライン108を構成し、例えば、タイミング要件内でトランスコードされ得るプロファイルが、トランスコードされる。次いで、符号化されたビットストリームが、異なるプロファイルについて、オリジンストレージ114および/またはコンテンツ配信ネットワーク102等に出力される。以下では、次に、トランスコーディングタイミング推定値をより詳細に説明し、次いで、最適化戦略の生成を説明する。
【0030】
[0044]<トランスコーディングタイミング推定値>
【0031】
[0045]図4は、いくつかの実施形態による、トランスコーディングタイミング推定値を生成するための方法の簡略化されたフローチャート400を図示する。402において、最適化システム110は、ビデオアセットファイルを受信する。例えば、上述したように、ブロードキャストされた後、ビデオのためのビデオアセットファイルが、午後7:00に受信される。404において、最適化システム110は、ビデオアセットファイルについての特徴を抽出する。特徴は、ビデオアセットファイルについてのビデオの特性に基づき得る。いくつかの実施形態では、特徴は、ビデオトランスコーディングに関係し得る情報に基づき得る。以下の特徴が使用され得るが、他の特徴も理解され得る。例えば、特徴は、ビデオアセットレベル特徴、ビデオピクセルレベル特徴、ビデオ空間特徴、ビデオ時間特徴、ビデオ周波数特徴、およびプロキシトランスコーディング情報を含み得る。ビデオアセットレベル特徴は、アセット解像度、持続時間、コンテナ、コーデック、レンジ(標準ダイナミックレンジ、高ダイナミックレンジ、等)、および他の特徴を含み得る。コーデックは、ビデオファイルを符号化および復号することを担い得るコーダ/デコーダであり得る。コーデックは、デジタルファイルを作成するために、ファイルを圧縮および復号し得る。異なるコーデックは、H.264、H.265、等のような、異なる規格に関連付けられ得る。コンテナは、コンテンツをトランスコードすることを担い、ビデオコンテンツを記憶するファイルフォーマットであり得。アセット解像度は、アセットの解像度であり得、持続時間は、ビデオの実行時間である。
【0032】
[0046]ビデオピクセルレベル特徴は、輝度、ヒストグラム、平均ピクセル値、ピクセル値の変形、等を含み得る。輝度は、ビデオのフレームの輝度を記述し得る。画像のヒストグラムは、ピクセル強度値等の、画像の特性のヒストグラムを指し得る。平均空間値およびピクセル値の変形は、ピクセルの値を記述し得る。値は、ピクセルによって、フレームにおけるブロックによって、フレームによって、または複数のフレームによって、編成され得る。
【0033】
[0047]ビデオ空間特徴は、テクスチャエッジ、勾配、等を含み得る。ビデオ時間特徴は、モーション、オプティカルフロー、等を含み得る。ビデオ周波数特徴は、変換係数、等を含み得る。プロキシトランスコーディング情報は、より小さい解像度、より小さいターゲットビットレート、間引かれたビデオフレーム、または元のビデオアセットファイルの一部分を使用するより速いトランスコーディング等、トランスコーディングの速度を増大させるための可能なトランスコーディング代替を含み得る。間引かれたビデオフレームは、ビデオアセットファイルからいくつかのビデオフレームを除去し得る。
【0034】
[0048]特徴を抽出した後、406において、最適化システム110は、ターゲット構成を決定する。ターゲット構成は、例えば、ターゲット構成が、トランスコーディングプロセスにおいて使用される設定のための異なる値を指定するフィールドの組合せとして構造化され得る等、トランスコーディングプロセスにおいて使用され得る。異なるターゲット構成の例が、図5に説明される。ターゲット構成は、以下の特徴の組合せを含み得る:
・ 計算レシピ
○ CPUモデル
○ CPUコア数
○ ...
・ ABRレシピ
○ 出力解像度
○ 出力ビットレート
○ セグメント持続時間
○ ...
・ コーデックレシピ
○ コーデック規格、例えば、AVC、HEVC、AV1...等
○ コーデックプリセット、例えば、x264_fast、x265_slower、libaom_cpu2...等
○ コーデックのより細かい制御、例えば、bフレームの数、モーションサーチ方法/
レンジ...等
○ レート制御方法、例えば、VBR-1パス、VBR-2パス...等
○ ...
・ ...
【0035】
[0049]408において、最適化システム110は、特徴およびターゲット構成をトランスコーディングタイミング推定エンジン304に入力し得る。トランスコーディングタイミング推定エンジン304は、特徴およびターゲット構成を受け取り、トランスコーディングタイミング推定値についての予測を出力し得る、予測ネットワーク(例えば、機械学習モジュール)であり得る。いくつかの実施形態では、トランスコーディングタイミング推定エンジン304は、複数のターゲット構成を同時並行に受信し、これらターゲット構成について複数の予測を共に出力する複数の出力を含み得る。別の例では、トランスコーディングタイミング推定エンジン304は、1つのターゲット構成を別個に受信し、そのターゲット構成についてのトランスコーディングタイミング推定値を出力し得る。このケースでは、プロセスは、各ターゲット構成について実行され得る。
【0036】
[0050]410において、最適化システム110は、ターゲット構成についてのトランスコーディングタイミング推定値を出力する。出力は、以下に説明するように、最適化戦略を生成する際に使用され得る。
【0037】
[0051]トランスコーディングタイミング推定値は、予測ネットワークのトレーニングに基づき得る。異なる機械学習アルゴリズムが、予測ネットワークによって使用され得る。特定の機械学習アルゴリズムに応じて、トレーニングされたモデルが、予測ネットワークにおいて準備され、管理され、使用され得る。いくつかの実施形態では、モデルは、トレーニングプロセスを使用して、オフラインでトレーニングされ得る。マルチ出力設計を使用する場合、ターゲット構成のグループに対して、または各ターゲット構成について、別個のモデルが準備され得る。トレーニングデータセットが、他のビデオアセットファイルの履歴上のトランスコーディングジョブの結果に基づいて使用され得、グラウンドトゥルースとして使用され得る。加えて、余分の(extra)トランスコーディングジョブが、ターゲット構成のためのトレーニングデータを決定するために起動され得る。次いで、モデルは、トレーニングデータセットの特徴を入力することと、モデルのパラメータを調整するために、結果をグラウンドトゥルースと比較することと、によってトレーニングされ得る。すなわち、パラメータは、予測ネットワークが同じ入力に基づいてグラウンドトゥルースにより近い予測を生成するように調整され得る。トレーニングされたモデルは、ビデオアセットファイルの特徴およびターゲット構成に基づいて、プロファイルについてのトランスコーディングタイミング推定値を予測することが可能になり得る。
【0038】
[0052]上記プロセスは、図2Aおよび図2Bで説明されたプロセスに対する改善である。不確定なトランスコーディング時間に依拠するか、または場合によっては、固定されたトランスコーディング時間を使用する代わりに、最適化システム110は、トランスコーディング時間を予測する。これは、トランスコーディング時間を決定するプロセスを改善する。ビデオアセットファイルについての特徴の使用は、ビデオアセットファイルの特定の特性についてトランスコーディングタイミング推定値をカスタマイズし得る。これは、トランスコーディング時間に影響を及ぼし得るビデオの特定の特性を考慮に入れることによって、トランスコーディングタイミング推定値がより正確になり得るので、トランスコーディングタイミング推定値を改善する。固定されたトランスコーディング時間は、ビデオアセットファイルの特定の特徴を考慮に入れない。
【0039】
[0053]上述したように、ターゲット構成は、プロファイルに関連付けられ得る。図5は、いくつかの実施形態による、プロファイルについてのターゲット構成の表500を図示する。表500は、プロファイル名を記述する第1の列502と、出力解像度を示す第2の列504と、ビデオビットレートを示す第3の列506と、を含む。例えば、508において、プロファイル「HEVC_600」については、出力解像度は「640×360」であり、ビデオビットレートは「600」kbpsである。510において、第2のプロファイル「HEVC_8000」については、出力解像度は「2560×1440」であり、ビデオビットレートは8000kbpsである。解像度およびビットレートは、ビデオアセットファイルをトランスコードするときに使用されるターゲット構成の設定であり得る。トランスコーダは、これらの設定を使用してビデオをトランスコードすることになり、例えば、トランスコーダは、640×360の出力解像度および600kbpsのビデオビットレートのターゲットで、ビデオアセットファイルをトランスコードし得る。他の特徴(例えば、CPU、コーデック)もまた、プロファイルについて指定され得るが、図示されていない。トランスコーディングタイミング推定値を決定すると、最適化戦略エンジン306は、トランスコーディングタイミング推定値を分析し、最適化戦略を生成し得る。
【0040】
[0054]<最適化戦略>
【0041】
[0055]図6は、いくつかの実施形態による、最適化戦略を生成するために使用され得る情報の一覧を示す表600を図示する。列602、604、606、608、および610は、プロファイルの設定を列挙し得る。例えば、列602は、プロファイル1、プロファイル2、またはプロファイル3等のプロファイル名を記述する。列604、606、および608は、それぞれ、コーデック、出力解像度、およびビデオビットレート等の、プロファイルのトランスコーディング設定を記述する。プロファイルの他の設定も使用され得るが、図示されていない。
【0042】
[0056]列610は、タイミング要件であり得る。このケースでは、タイミング要件は、トランスコーディングがタイミング要件を満たすように終了すべき利用可能時間(T_available)を推定し得る。タイミング要件は、上述したように、コンテンツ公開時刻に基づき得る。これは、ビデオアセットファイルについてのプロファイルがコンテンツ公開時刻に公開されることを可能にし得る。例えば、利用可能時間は、14,400秒である。これは、ビデオアセットファイルをトランスコードするために使用され得る総時間量であり得る。利用可能時間T_availableは、各プロファイルについてのコンテンツ公開時刻-コンテンツ到着時刻-時間T-時間Tb1-時間T等、図2Cで説明された時間に基づき得る。すなわち、利用可能時間は、図2cの時間Tb2であり得る。プロファイル1がプロファイル3と比較して異なる時間Tを有し得る等、異なるプロファイルは、それらに関連付けられた異なる利用可能時間を有し得ることに留意されたい。この場合、利用可能時間として、プロファイル1は、15,000秒を有し得、プロファイル3は、14,400秒を有し得る。タイミング要件はまた、公開時刻、終了時刻(例えば、コンテンツ到着時に開始された場合、午後10:00)、等のような、他の形態であり得る。また、タイミング要件は、並行して実行されているタスクの部分に基づく等、他の方法で決定され得る。さらに、タイミング要件は、コンテンツ公開時刻がタイミング要件であり得る等、他のフォーマットであり得、トランスコーディング時間は、タイミング要件が満たされるかどうかを決定するために、ビデオアセットを公開するために行われることが必要とされる他の時間に追加され得る。例えば、時間T、時間Tb1、時間T、および時間Tの時間が、公開時刻が満たされるかどうか決定するために使用され得る。
【0043】
[0057]列612は、各プロファイルについてのトランスコーディングタイミング推定値であり得る。トランスコーディングタイミング推定値は、プロファイルのトランスコーディングを終了するために必要とされる時間量であり得る。例えば、プロファイル3については、トランスコーディング時間は3200秒と推定され、プロファイル10については、トランスコーディング時間は15,600秒と推定される。トランスコーディングタイミング推定値はまた、終了時刻(例えば、午後10:00)等のような、他の形態であり得る。
【0044】
[0058]最適化戦略エンジン306は、利用可能時間およびトランスコーディングタイミング推定値に基づいて、出力を生成し得る。例えば、出力は、それぞれのプロファイルが利用可能時間内にトランスコードされ得るかどうかを示し得る。いくつかの実施形態では、列614は、第1の値(例えば、真)および第2の値(例えば、偽)に設定され得るフラグであり得る。真フラグは、プロファイルが利用可能時間内である時間においてトランスコードされ得るときに設定されることになる。偽フラグは、プロファイルが利用可能時間内にトランスコードされ得ないときに送られることになる。フラグについて説明したが、他の情報も出力され得る。例えば、利用可能時間とトランスコーディングタイミング推定値との比較に基づいて、値が設定され得る。例えば、プロファイル1については、値14,400-1,400=13,000が出力され得、これは、このプロファイルをトランスコードするのに時間窓において余分の13,000秒があることを示し得る。プロファイル10については、値14,400-15,600=-1200が出力され得、これは、このプロファイルをトランスコードするのに時間窓においてさらに1200秒が必要であることを示し得る。
【0045】
[0059]上記の例では、プロファイル1~8は、フラグABR_profile_pass_flagが真に設定されている。真の値は、これらのプロファイルが、利用可能時間T_available内に成功裏にトランスコードおよび公開され得ることを示す。したがって、トランスコーディングシステムパイプライン108は、コンテンツ公開時刻での配信のために、これらのプロファイルをトランスコードし得る。対照的に、プロファイル9~12は、偽のフラグ値を有する。この値は、トランスコーディングシステムパイプライン108が、これらのプロファイルを時間T_available内にトランスコードできないことを示す。これらのプロファイルは、より長いトランスコーディング時間により、コンテンツ公開時刻において、トランスコードされておらず、公開の準備ができていない場合がある。
【0046】
[0060]以下では、フラグABR_profile_pass_flagの値を生成するための方法を説明する。図7は、いくつかの実施形態による、トランスコーディングタイミング推定値を分析するための方法の簡略化されたフローチャート700を図示する。702において、最適化戦略エンジン306は、ビデオアセットファイルのためのタイミング要件を受信する。例えば、上述したように、時間T_availableは、コンテンツ公開時刻、コンテンツ到着時刻、ならびに時間T、Ta1、およびTに基づいて計算され得る。この情報は、図6の列610に示されている。704において、最適化戦略エンジン306は、ターゲット構成についてのトランスコーディングタイミング推定値を受信する。この情報は、図6の列612に示されている。
【0047】
[0061]706において、最適化戦略エンジン306は、タイミング要件をプロファイルについてのトランスコーディングタイミング推定値と比較する。例えば、最適化戦略エンジン306は、利用可能時間から予測されたトランスコーディングタイミング推定値を差し引く減算を行い得る。例えば、プロファイル2については、14,400-1,800=12,600の値が決定される。708において、最適化戦略エンジン306は、タイミング要件が満たされているかどうかを決定する。一例では、出力が正の数である場合には、最適化戦略エンジン306は、タイミング要件が満たされていると決定し得る。1,000秒等の閾値がまた使用され得、閾値より大きい等、出力が閾値を満たす場合には、最適化戦略エンジン306は、タイミング要件が満たされていると決定し得る。閾値は、トランスコーディング時間における変動を許容する(allow)ためのバッファを設けるために使用され得る。例えば、プロファイルをトランスコードするための利用可能時間は、トランスコーディング時間よりも1000秒長くなければならない。タイミング要件が満たされていない場合には、710において、最適化戦略エンジン306は、要件が満たされていないインジケーション。例えば、最適化戦略エンジン306は、フラグABR_profile_pass_flagを偽に設定し得る。タイミング要件が満たされている場合、712において、最適化戦略エンジン306は、フラグABR_profile_pass_flagを真の値に設定する等、要件が満たされているというインジケーションを出力し得る。
【0048】
[0062]最適化戦略エンジン306は、フラグABR_profile_pass_flagの出力を使用して、最適化戦略を生成し得る。いくつかの実施形態では、最適化戦略は、タイミング要件を満たすプロファイルのトランスコーディングを開始することであり得る。タイミング要件を満たさなかったプロファイルは、この時点ではトランスコードされ得ないが、後に開始され得る。他の実施形態では、十分なコンピューティングリソースが利用可能である場合、タイミング要件を満たさないプロファイルが開始され得るが、必要とされるコンテンツ公開時刻までに終了しない場合がある。しかしながら、追加のプロファイルが公開される後の時点で、これらのプロファイルは、その時点で公開され得る。いくつかの実施形態では、最適化戦略エンジン306は、タイミング要件を満たさないプロファイルについてのトランスコーディングジョブを開始するかどうかを決定するために、利用可能なコンピューティングリソースおよび予測されたトランスコーディングタイミング推定値を分析し得る。例えば、最適化戦略エンジン306が、タイミング要件を満たし得るプロファイルのトランスコーディング時間に影響を及ぼさないであろう利用可能なコンピューティングリソースが存在すると決定した場合には、最適化戦略エンジン306は、すべてのプロファイルについてのトランスコーディングを開始し得る。また、出力はまた、どのプロファイルがタイミング要件を満たすようにトランスコードされ得るかを決定するために使用され、この情報を必要とするシステムに通知するために使用され得る。例えば、ビデオ配信システム106においてプロファイルを公開するための準備は、この予測を使用して始まり得る。
【0049】
[0063]上記の戦略に加えて、最適化戦略エンジン306は、タイミング要件を満たさなかったプロファイルの特性を、そのプロファイルがタイミング要件を満たし得るように調整することを試み得る。図8図9は、いくつかの実施形態による、タイミング要件を満たさないプロファイルのための最適化戦略を図示する。
【0050】
[0064]図8は、いくつかの実施形態による、タイミング要件を満たさないプロファイルのための追加のトランスコーディングオプションを分析するための方法の簡略化されたフローチャート800を図示する。802において、最適化戦略エンジン306は、タイミング要件を満たしていないプロファイルを決定する。例えば、プロファイル11は、21,600のトランスコーディング時間が、14,400のタイミング要件より長いため、タイミング要件を満たしていない。
【0051】
[0065]804において、最適化戦略エンジン306は、プロファイルのためのターゲット構成に対する調整を決定するために、プロファイルの特性を分析し得る。例えば、異なるプロファイルは、トランスコーディング時間を変更し得る異なるプリセットを使用する可能性を有し得る。例えば、トランスコーディング規格は、使用され得る異なるプリセットを指定し得る。プリセットは、プロファイルのためのビデオアセットファイルをトランスコードするために使用され得る異なる設定であり得る。使用され得る異なるプリセットの例が、図9Aに示され、後に説明される。806において、最適化戦略エンジン306は、異なるプロファイルプリセットについてのトランスコーディングタイミング推定値を生成し得る。例えば、異なる設定は、異なるトランスコーディングタイミング推定値をもたらし得る。異なる結果の例が図9Bに示され、これは、以下で説明される。
【0052】
[0066]808において、最適化戦略エンジン306は、どのプリセットがタイミング要件を満たすかを決定する。いくつかのプリセットがタイミング要件を満たしていない場合、810において、最適化戦略エンジン306は、プロファイルのどの設定について要件が満たされていないかのインジケーションを出力する。出力は、上述したように、ABR_profile_pass_flagの値であり得る。いくつかの設定がタイミング要件を満たす場合、812において、最適化戦略エンジン306は、プロファイルのどの設定について要件が満たされているかのインジケーションを出力する。
【0053】
[0067]814において、最適化戦略エンジン306は、インジケーションを分析し、タイミング要件を満たすものがあれば、プロファイルのために設定を選択し得る。例えば、タイミング要件を満たすプリセットについては、最適化システム110は、タイミング要件を満たす最高品質のトランスコーディングをもたらし得るプリセットが選択され得るように、プリセットのうちの1つを選択し得る。
【0054】
[0068]次に、異なるプリセットを選択する例が説明される。図9Aは、いくつかの実施形態による、異なるプリセットの例を図示する。表900は、プロファイルのために使用され得る異なるプリセットを図示する。例えば、x264のコーデックの場合、ultrafast、superfast、very fast、faster、fast、medium、slow、slower、very slow、placeboの異なるプリセットがある。これらのプリセットは、コーデック上で設定され得、「ultrafast」プリセットが「slow」プリセットよりも速くビデオをトランスコードする等、トランスコーディング時間に影響を及ぼし得る。同様に、コーデックx265もまた、同じプリセットを含み得る。また、libaomのコーデックは、いくつのCPUを使用すべきかを示すプリセットを有し得る。CPUが多いほど、より速いトランスコーディング時間をもたらし得る。
【0055】
[0069]図9Bは、いくつかの実施形態による、異なるプリセットを使用して最適化を行ったときの結果の一例を図示する。図9Bでは、表906が、異なるプリセットを使用したトランスコーディングタイミング推定値の例を示す。列908は、プロファイル名を図示し、列910は、コーデックタイプを図示し、列912は、出力解像度を図示し、列914は、プロファイルのビデオビットレートを図示する。列916は、タイミング要件についての時間を図示する。
【0056】
[0070]列918は、コーデックのための異なるプリセットの例を図示する。例えば、プリセット1(fast)の第1の設定、プリセット2(medium)の第2の設定、プリセット3(slow)の第3の設定、およびプリセット4(カスタマイズ)の第4の設定が使用され得る。カスタマイズされたプリセットは、異なるプリセットの組合せ、または規格によって提供されないプリセット等、特別に構成され得る。これらのプリセットは、トランスコーディングを行うコーデックに対して設定され得る。予測ネットワークは、異なるプリセットについてのトランスコーディングタイミング推定値を生成するようにトレーニングされ得る。列920は、異なるプリセットを使用したときの新たな推定トランスコーディング時間を図示する。例えば、プリセット1を使用すると、トランスコーディングタイミング推定値は12,000秒になり、プリセット2を使用すると、17,300秒になり、プリセット3は、21,600秒になり、プリセット4は、14,000秒になる。14,400秒のタイミング要件と比較すると、プリセット1およびプリセット4は、タイミング要件にパスし、プリセット2およびプリセット3は、タイミング要件を満たさない。例えば、プリセット1は、12,000秒の時間を有し、これは、14,400秒より短く、プリセット4は、14,000秒の推定時間を有し、これは、14,400秒より短い。しかしながら、プリセット2は、17,300秒の時間を有し、プリセット3は、21,600秒の時間を有し、これらの両方が、14,400秒のタイミング要件より長い。いくつかの実施形態では、最適化システム110は、複数のプリセットがタイミング要件を満たす場合、プリセットのうちの1つを選択し得る。例えば、最適化戦略エンジン306は、プリセット4を選択し得、その理由は、このプリセットが、プリセット1と比較してより高い品質でビデオアセットファイルをトランスコードするように構成され得るからである。したがって、使用すべきプリセットを選択することによって、プロファイルは、タイミング要件を満たすようにトランスコードされ得、これは、プリセットが使用されないか、またはデフォルトのプリセットが使用される場合に、タイミング要件を満たすようにプロファイルをトランスコードすることができないことに対する改善であり得る。
【0057】
[0071]最適化戦略エンジン306はまた、プロファイルのためのトランスコーディングジョブが割り振られるトランスコーディングノードを選択すること等によって、トランスコーディングシステムパイプライン108におけるコンピューティングリソースのオーケストレーションを最適化し得る。トランスコーディングノードは、CPU、コーデック、等のような、コンピューティングリソースの構成であり得る。割り振りは、コンピューティングリソースの使用を改善し得る。図10は、いくつかの実施形態による、コンピューティングリソースを割り振るための方法の簡略化されたフローチャート1000を図示する。1002において、最適化戦略エンジン306は、ターゲット構成についてのトランスコーディングタイミング推定値を受信する。トランスコーディングタイミング推定値は、タイミング要件内でトランスコードされ得るターゲット構成についての推定トランスコーディング時間であり得る。1004において、最適化システム110は、トランスコーディングノード構成を選択するために、トランスコーディングタイミング推定値を分析し得る。例えば、図11において以下でより詳細に説明されるように、最適化システム110は、異なる性能能力を有する異なるトランスコーディングノードから選択し得る。例えば、ローエンドトランスコーディングノードは、より低い性能(より多くの時間を要する)でビデオアセットファイルをトランスコードし得、ハイエンドトランスコーディングノードは、より高い性能(より速くまたはより高い品質)でビデオアセットファイルをトランスコードし得る。
【0058】
[0072]1006において、最適化システム110は、プロファイルについてのターゲット構成を特定のトランスコーディングノードに割り振り得る。割り振りは、それぞれのプロファイルのトランスコーディングを行うように、異なるトランスコーディングノードに異なるトランスコーディング構成を送り得る。図11は、いくつかの実施形態による、最適化戦略を生成するために使用される情報をまとめた情報を示す表1100を図示する。トランスコーディングコンピューティングリソースは、トランスコーディングノードの異なる特性に依存して異なる分類に分類され得る。いくつかの例では、コンピューティングリソースは、2つの分類に分類され得るが、他の分類も使用され得る。第1の分類は、ローエンドコンピューティングノードであり得、第2の分類は、ハイエンドコンピューティングノードであり得る。一般に、ローエンドコンピューティングノードは、ハイエンドコンピューティングノードと比較してより低い性能を有し得る。ローエンドコンピューティングノードは、CPU等のより低い性能のコンピューティングリソースを有し得るサーバ等のコンピューティングマシンであり得るか、またはより古いものであり得る。これらのコンピューティングノードは、ハイエンドコンピューティングノードと比較して、ビデオアセットファイルをより遅くトランスコードし得る。ハイエンドコンピューティングノードは、より高い周波数を使用して動作するより多くのCPU、等のような、高性能と考えられるコンピューティングリソースを有し得る。一般に、ハイエンドコンピューティングノードは、ビデオアセットファイルをより速くトランスコードし得るが、ビデオアセットファイルをトランスコードするためのコストは、ローエンドコンピューティングノードと比較してより高いコストであり得る。より高いコストは、会社が、データセンタで使用されるコンピューティングリソースに基づいて課金されるためであり得る。
【0059】
[0073]表1100において、列1102、1104、1106、および1108は、プロファイル名、出力解像度、ビデオビットレート、およびタイミング要件に対応する。列1110は、ローエンドグループのコンピューティングノードについてのトランスコーディングタイミング推定値であり得る。列1112は、ローエンドコンピューティンググループについてのトランスコーディングタイミング推定値が、列1108におけるタイミング要件を満たすか否かを示すフラグであり得る。例えば、プロファイル4については、13,900のトランスコーディングタイミング推定値は、14,400のタイミング要件を満たし、真の値が割り当てられている。しかしながら、プロファイル5については、14,800のトランスコーディングタイミング推定値は、14,400のタイミング要件を満たさず、偽の値が割り当てられている。
【0060】
[0074]列1114は、ハイエンドグループについてのトランスコーディングタイミング推定値であり、列1116は、ハイエンドグループについてのパスフラグである。ローエンドグループについてのパスフラグとハイエンドグループについてのパスフラグとは、異なる値を含み得る。例えば、プロファイル1~8は、ハイエンドグループについてのタイミング要件を満たし、一方、プロファイル1~4は、ローエンドグループについてのタイミング要件を満たし得る。したがって、プロファイル5~12は、ローエンドグループについてのタイミング要件を満たさず、プロファイル9~12は、ハイエンドグループについてのタイミング要件を満たさない。
【0061】
[0075]最適化戦略エンジン306は、異なる最適化戦略を行うために、表1100中の結果を使用し得る。上記の例では、プロファイル1~4については、ローエンドグループとハイエンドグループの両方が、タイミング要件に従って利用可能時間内にプロファイルのトランスコーディングを終了し得る。最適化戦略エンジン306は、コストを節約するために、これらのプロファイルのためにローエンドグループを選択し得る。プロファイル5~8については、ハイエンドグループのみが、タイミング要件を満たすようにプロファイルのトランスコーディングを終了し得る。最適化戦略エンジン306は、それらのプロファイルのためのハイエンドノードを選択し得る。プロファイル9~12については、これらのプロファイルは、どのタイプのコンピューティングノードが使用されても、タイミング要件に従ってトランスコードされることができない。最適化戦略エンジン306は、コンピューティングリソースを節約するためにこれらのプロファイルのトランスコーディングをキャンセルし得、これらのプロファイルは、後にトランスコードされ得る。また、これらプロファイルは、コンテンツ公開時刻に公開されないことになるが、コンテンツ公開時刻の後に公開されることになるので、ローエンドコンピューティングノードを使用してトランスコードされ得る。
【0062】
[0076]したがって、最適化システム110は、トランスコーディングジョブを異なるノードに効率的に割り振るために、トランスコーディングタイミング推定値を使用し得る。これは、コンピューティングリソースをより効率的に使用し、コストも節約し得る。
【0063】
[0077]結論として、最適化システム110は、時間通りにコンテンツを公開することができない、または利用可能なトランスコーディング時間を浪費するという問題を回避し得る。ビデオアセットファイルをトランスコードするのにどれくらいの時間がかかり得るかの固定時間または不確定時間を使用する代わりに、最適化システム110は、トランスコーディングジョブが開始する前に生成される、予測されたビデオトランスコーディング時間を使用する。異なるビデオアセットファイルの異なる特性は、異なるトランスコーディングタイミング予測をもたらし得る。したがって、トランスコーディングタイミング予測は、ビデオアセットファイルに対してパーソナライズされていることによって改善され得る。また、異なるターゲット構成が、トランスコーディングタイミング予測によってサポートされ得る。ターゲット構成の1つの設定がタイミング要件を満たさない場合、最適化システム110は、別の設定を選択し得る。これは、プロファイルがタイミング要件内でトランスコードされることを可能にし得、これは、以前には起こり得なかった(may not have previously occurred)。上記のすべては、タイミング要件がコンテンツ公開時刻に課されるとき、ビデオアセットファイルの異なるプロファイルへのトランスコーディングを最適化し得る。
【0064】
[0078]<システム>
【0065】
[0079]本明細書に開示されるような特徴および態様は、図12に示されるように、1つ以上の通信ネットワークを介して複数のクライアントデバイスと通信状態にあるビデオストリーミングシステム1200と共に実装され得る。ビデオストリーミングシステム1200の態様は、本開示に従って準備されたコンテンツの配布および配信を可能にするためのアプリケーションの例を提供するためにのみ説明される。本技術は、ストリーミングビデオアプリケーションに限定されず、他のアプリケーションおよび配信メカニズムにも適合され得ることが理解されるべきである。
【0066】
[0080]一実施形態では、メディアプログラムプロバイダは、メディアプログラムのライブラリを含み得る。例えば、メディアプログラムは、サイト(例えば、ウェブサイト)、アプリケーション、またはブラウザを通じて集約および提供され得る。ユーザは、メディアプログラムプロバイダのサイトまたはアプリケーションにアクセスし、メディアプログラムを要求し得る。ユーザは、メディアプログラムプロバイダによって提供されるメディアプログラムのみを要求することに限定され得る。
【0067】
[0081]システム1200では、ビデオデータは、ビデオコンテンツサーバ1202への入力として使用するために、1つ以上のソースから、例えば、ビデオソース1210から取得され得る。入力ビデオデータは、任意の好適なデジタルフォーマット、例えば、MPEG(Moving Pictures Experts Group)-1、MPEG-2、MPEG-4、VC-1、H.264/AVC(Advanced Video Coding)、HEVC(High Efficiency Video Coding)、または他のフォーマットにおける未加工または編集されたフレームベースのビデオデータを備え得る。代替では、ビデオは、非デジタルフォーマットで提供され、スキャナまたはトランスコーダを使用して、デジタルフォーマットに変換され得る。入力ビデオデータは、様々なタイプのビデオクリップまたはプログラム、例えば、テレビエピソード、映画、および消費者にとって関心の高い主要コンテンツとして制作された他のコンテンツを備え得る。ビデオデータは、オーディオも含み得、またはオーディオのみが使用され得る。
【0068】
[0082]ビデオストリーミングシステム1200は、1つ以上のコンピュータにわたって分散された1つ以上のコンピュータサーバまたはモジュール1202、1204、および1207を含み得る。各サーバ1202、1204、1207は、1つ以上のデータストア1209、例えば、データベース、インデックス、ファイル、または他のデータ構造を含み得るか、またはそれらに動作可能に結合され得る。ビデオコンテンツサーバ1202は、様々なビデオセグメントのデータストア(図示せず)にアクセスし得る。ビデオコンテンツサーバ1202は、クライアントデバイスと通信しているユーザインターフェースコントローラによって指示されるようにビデオセグメントを供給し得る。本明細書で使用される場合、ビデオセグメントは、テレビエピソード、映画、記録されたライブパフォーマンス、または他のビデオコンテンツを視聴するためにストリーミングビデオセッションにおいて使用され得るような、フレームベースのビデオデータの明確な部分を指す。
【0069】
[0083]いくつかの実施形態では、ビデオ広告サーバ1204は、特定の広告主またはメッセージのために広告として構成された比較的短いビデオ(例えば、10秒、30秒、または60秒のビデオ広告)のデータストアにアクセスし得る。広告は、ある種の支払いと引き換えに広告主のために提供され得るか、またはシステム1200のための宣伝メッセージ、公共サービスメッセージ、または何らかの他の情報を備え得る。ビデオ広告サーバ1204は、ユーザインターフェースコントローラ(図示せず)によって指示されるように、ビデオ広告セグメントを供給し得る。
【0070】
[0084]ビデオストリーミングシステム1200はまた、最適化システム110を含み得る。
【0071】
[0085]ビデオストリーミングシステム1200は、ビデオコンテンツおよびビデオ広告をストリーミングビデオセグメントに統合する、統合およびストリーミングコンポーネント1207をさらに含み得る。例えば、ストリーミングコンポーネント1207は、コンテンツサーバまたはストリーミングメディアサーバであり得る。コントローラ(図示せず)が、任意の好適なアルゴリズムまたはプロセスに基づいて、ストリーミングビデオにおける広告の選択または構成を決定し得る。ビデオストリーミングシステム1200は、図12に図示されていない他のモジュールまたはユニット、例えば、管理サーバ、コマースサーバ、ネットワークインフラストラクチャ、広告選択エンジン等を含み得る。
【0072】
[0086]ビデオストリーミングシステム1200は、データ通信ネットワーク1212に接続し得る。データ通信ネットワーク1212は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、例えば、インターネット、電話ネットワーク、ワイヤレスセルラ電気通信ネットワーク(WCS)1214、またはこれらもしくは類似のネットワークの何らかの組合せを備え得る。
【0073】
[0087]1つ以上のクライアントデバイス1220は、データ通信ネットワーク1212、ワイヤレスセルラ電気通信ネットワーク1214、または別のネットワークを介して、ビデオストリーミングシステム1200と通信状態にあり得る。このようなクライアントデバイスは、LAN用のルータ1218を介して、ワイヤレスセルラ電気通信ネットワーク1214用の基地局1217を介して、または何らかの他の接続を介して、例えば、1つ以上のラップトップコンピュータ1220-1、デスクトップコンピュータ1220-2、「スマート」モバイルフォン1220-3、タブレットデバイス1220-4、ネットワーク対応テレビ1220-5、またはこれらの組合せを含み得る。動作中、このようなクライアントデバイス1220は、ユーザ入力デバイスから受信されたユーザ入力または他の入力に応答して、システム1200にデータまたは命令を送受信し得る。これに応答して、システム1200は、メディアプログラムの選択に応答して、データストア1209からのビデオセグメントおよびメタデータを、クライアントデバイス1220に供給し得る。クライアントデバイス1220は、ディスプレイスクリーン、プロジェクタ、または他のビデオ出力デバイスを使用して、メディアプレーヤにおいてストリーミングビデオセグメントからのビデオコンテンツを出力し、ビデオコンテンツと対話するためのユーザ入力を受信し得る。
【0074】
[0088]オーディオビデオデータの配布は、ストリーミングコンポーネント1207からリモートクライアントデバイスへ、様々な方法、例えばストリーミングを使用して、コンピュータネットワーク、電気通信ネットワーク、およびそのようなネットワークの組合せ上で実施され得る。ストリーミングでは、コンテンツサーバは、クライアントデバイス上で少なくとも部分的に動作するメディアプレーヤコンポーネントにオーディオビデオデータを連続的にストリーミングし、メディアプレーヤコンポーネントは、サーバからストリーミングデータを受信するのと同時並行にオーディオビデオデータを再生し得る。ストリーミングが議論されたが、他の配信方法も使用され得る。メディアプレーヤコンポーネントは、コンテンツプロバイダからデータの最初の部分を受信した直後にビデオデータの再生を開始し得る。従来のストリーミング技法は、データのストリームをエンドユーザのセットに配信する単一のプロバイダを使用する。単一のストリームを大勢の視聴者に配信するためには、高い帯域幅および処理能力が必要とされ得、プロバイダに必要な帯域幅は、エンドユーザの数が増大するにつれて増大し得る。
【0075】
[0089]ストリーミングメディアは、オンデマンドまたはライブで配信され得る。ストリーミングは、ファイル内の任意の点での即時の再生を可能にする。エンドユーザは、再生を開始するか、またはメディアファイル内の任意の点に再生を変更するために、メディアファイル内をスキップし得る。したがって、エンドユーザは、ファイルが徐々にダウンロードされるのを待つ必要がない。典型的に、ストリーミングメディアは、ビデオファイルを求める要求を受け入れ、それらのファイルのフォーマット、帯域幅、および構造に関する情報と共に、ビデオを再生するのにちょうど必要なデータ量を、それを再生するのに必要とされるレートで配信する専用デバイスを介して、高帯域幅能力を有する少数の専用サーバから配信される。ストリーミングメディアサーバはまた、宛先クライアント上のメディアプレーヤの伝送帯域幅および能力を考慮し得る。ストリーミングコンポーネント1207は、ビデオが再生されるにつれて変化するネットワーク状態に適応するために、制御メッセージおよびデータメッセージを使用して、クライアントデバイス1220と通信し得る。これらの制御メッセージは、クライアントにおいて、早送り、巻き戻し、一時停止、またはファイルの特定の部分へのシーク等の制御機能を有効にするためのコマンドを含み得る。
【0076】
[0090]ストリーミングコンポーネント1207は、必要に応じてのみおよび必要とされるレートでビデオデータを送信するので、供給されるストリームの数に対する正確な制御が維持され得る。視聴者は、より低いデータレートの伝送媒体上で、高いデータレートのビデオを視聴することはできないことになる。しかしながら、ストリーミングメディアサーバは、(1)ユーザにビデオファイルへのランダムアクセスを提供し、(2)誰がどのビデオプログラムを視聴しているか、およびどれくらい長くそれらが見られているかのモニタリングを可能にし、(3)視聴体験をサポートするために必要とされるデータ量のみが送信されるので、伝送帯域幅をより効率的に使用し、(4)ビデオファイルは、視聴者のコンピュータに記憶されず、メディアプレーヤによって破棄され、したがって、コンテンツに対するより一層の制御を可能にする。
【0077】
[0091]ストリーミングコンポーネント1207は、ハイパーテキスト転送プロトコル(HTTP)およびリアルタイムメッセージングプロトコル(RTMP)等の、TCPベースのプロトコルを使用し得る。ストリーミングコンポーネント1207はまた、ライブウェブキャストを配信し得、マルチキャストし得、これは、1より多くのクライアントが単一のストリームに同調することを可能にし、したがって、帯域幅を節約する。ストリーミングメディアプレーヤは、メディアプログラムにおける任意の点へのランダムアクセスを提供するために、ビデオ全体をバッファリングすることに依拠しない場合がある。その代わりに、これは、メディアプレーヤからストリーミングメディアサーバに送信される制御メッセージを使用して達成される。ストリーミングに使用される他のプロトコルは、HTTPライブストリーミング(HLS)またはDASH(Dynamic Adaptive Streaming over HTTP)である。HLSおよびDASHプロトコルは、典型的に、1つ以上のコンテンツ配信ネットワーク(CDN)から様々なビットレートで利用可能にされる小セグメントのプレイリストを介してHTTP経由でビデオを配信する。これは、メディアプレーヤが、ビットレートとコンテンツソースとの両方を、セグメントごとに切り替えることを可能にする。この切り替えは、ビデオの再生中に発生し得るネットワーク帯域幅の変動およびインフラストラクチャの障害を補償するのに役立つ。
【0078】
[0092]ストリーミングによるビデオコンテンツの配信は、様々なモデルの下で達成され得る。1つのモデルでは、ユーザは、ビデオプログラムの視聴に対して支払いを行い、例えば、メディアプログラムのライブラリまたは一部の制限されたメディアプログラムへのアクセスに対して料金を支払うか、またはペイパービューサービスを使用する。テレビ放送によってその開始直後に広く採用されている別のモデルでは、スポンサーが、プログラム中にまたはプログラムの提示に隣接して広告を提示する権利と引き換えに、メディアプログラムの提示に対して支払いを行う。いくつかのモデルでは、広告は、ビデオプログラムにおける所定の時間において挿入され、その時間は、「広告スロット」または「広告ブレーク」と呼ばれ得る。ストリーミングビデオでは、メディアプレーヤは、クライアントデバイスが、指定された広告スロット中に所定の広告を再生することもなくビデオを再生することができないように構成され得る。
【0079】
[0093]図13を参照すると、ビデオコンテンツおよび広告を視聴するための装置1300の概略図が例示されている。選択された実施形態では、装置1300は、プロセッサメモリ1304に動作可能に結合されたプロセッサ(CPU)1302を含み得、プロセッサメモリ1304は、プロセッサ1302による実行のためのバイナリコード化された機能モジュールを保持する。このような機能モジュールは、入力/出力およびメモリアクセス等のシステム機能を処理するためのオペレーティングシステム1306と、ウェブページを表示するためのブラウザ1308と、ビデオを再生するためのメディアプレーヤ1310と、を含み得る。メモリ1304は、図13に示されていない追加のモジュール、例えば、本明細書の他の箇所で説明されている他の動作を実行するためのモジュールを保持し得る。
【0080】
[0094]バス1314または他の通信コンポーネントは、装置1300内の情報の通信をサポートし得る。プロセッサ1302は、特定のタスクを定義する機械可読ソフトウェアコードを実行することによって、本明細書で開示される特徴および態様に従って、特定のタスクを行うように構成されたまたは動作可能な特殊または専用マイクロプロセッサであり得る。プロセッサメモリ1304(例えば、ランダムアクセスメモリ(RAM)または他の動的記憶デバイス)は、バス1314に接続されるか、またはプロセッサ1302に直接接続され、プロセッサ1302によって実行される情報および命令を記憶し得る。メモリ1304はまた、そのような命令の実行中にテンポラリ変数または他の中間情報を記憶し得る。
【0081】
[0095]記憶デバイス1324におけるコンピュータ可読媒体は、バス1314に接続され、プロセッサ1302のための静的情報および命令を記憶し得、例えば、記憶デバイス(CRM)1324は、装置1300が電源オフにされたときに、モジュール1306、1308、および1310を記憶し得、装置1300が電源投入されたときに、これらモジュールは、そこからプロセッサメモリ1304へとロードされ得る。記憶デバイス1324は、情報、命令、またはこれらの何らかの組合せ、例えば、プロセッサ1302によって実行されると、装置1300を、本明細書で説明されるような方法の1つ以上の動作を行うように構成または動作可能にさせる命令を保持する非一時的なコンピュータ可読記憶媒体を含み得る。
【0082】
[0096]ネットワーク通信(comm.)インターフェース1316もまた、バス1314に接続され得る。ネットワーク通信インターフェース1316は、オプションで、ルータ/モデム1326およびワイヤードまたはワイヤレス接続を介して、装置1300と、1つ以上の外部デバイス、例えばストリーミングシステム1200との間の双方向データ通信を提供またはサポートし得る。代替または追加として、装置1300は、アンテナ1329に接続されたトランシーバ1318を含み得、それを通じて、装置1300は、ワイヤレス通信システムのための基地局と、またはルータ/モデム1326とワイヤレスに通信し得る。代替として、装置1300は、ローカルエリアネットワーク、仮想プライベートネットワーク、または他のネットワークを介して、ビデオストリーミングシステム1200と通信し得る。別の代替として、装置1300は、システム1200のモジュールまたはコンポーネントとして組み込まれ、バス1314を介して、または何らかの他のモダリティによって、他のコンポーネントと通信し得る。
【0083】
[0097]装置1300は、(例えば、バス1314およびグラフィック処理ユニット1320を介して)ディスプレイユニット1328に接続され得る。ディスプレイ1328は、装置1300のオペレータに情報を表示するための任意の好適な構成を含み得る。例えば、ディスプレイ1328は、液晶ディスプレイ(LCD)、タッチスクリーンLCD(例えば、容量性ディスプレイ)、発光ダイオード(LED)ディスプレイ、プロジェクタ、または視覚表示において装置1300のユーザに情報を提示するための他のディスプレイデバイスを含み得るかまたは利用し得る。
【0084】
[0098]1つ以上の入力デバイス1330(例えば、英数字キーボード、マイクロホン、キーパッド、リモートコントローラ、ゲームコントローラ、カメラ、またはカメラアレイ)が、装置1300に情報およびコマンドを通信するために、ユーザ入力ポート1322を介してバス1314に接続され得る。選択された実施形態では、入力デバイス1330は、カーソルの位置決めに対する制御を提供またはサポートし得る。ポインティングデバイスとも呼ばれるそのようなカーソル制御デバイスは、マウス、トラックボール、トラックパッド、タッチスクリーン、カーソル方向キー、または物理的移動を受信もしくは追跡し、その移動を、カーソル移動を示す電気信号に変換するための他のデバイスとして構成され得る。カーソル制御デバイスは、例えばタッチセンシティブスクリーンを使用して、ディスプレイユニット1328に組み込まれ得る。カーソル制御デバイスは、プロセッサ1302に方向情報およびコマンド選択を通信し、ディスプレイ1328上のカーソル移動を制御し得る。カーソル制御デバイスは、2つ以上の自由度を有し得、例えば、デバイスが平面または3次元空間におけるカーソル位置を指定することを可能にし得る。
【0085】
[0099]いくつかの実施形態は、命令実行システム、装置、システム、もしくは機械によって、またはそれらと関連して使用するための非一時的なコンピュータ可読記憶媒体において実装され得る。コンピュータ可読記憶媒体は、いくつかの実施形態によって説明された方法を行うようにコンピュータシステムを制御するための命令を含む。コンピュータシステムは、1つ以上のコンピューティングデバイスを含み得る。命令は、1つ以上のコンピュータプロセッサによって実行されると、いくつかの実施形態において説明されたものを行うように構成され得るか、または動作可能であり得る。
【0086】
[00100]本明細書の説明において、および以下の特許請求の範囲全体を通して使用される場合、「a」、「an」、および「the」は、文脈がそうでないことを明確に示さない限り、複数形への言及を含む。また、本明細書の説明において、および以下の特許請求の範囲全体を通して使用される場合、「in」の意味は、文脈がそうでないことを明確に示さない限り、「in」および「on」を含む。
【0087】
[00101]上記の説明は、どのようにいくつかの実施形態の態様が実装され得るかの例と共に、様々な実施形態を例示した。上記の例および実施形態は、唯一の実施形態であると見なされるべきではなく、以下の特許請求の範囲によって定義されるようないくつかの実施形態の柔軟性および利点を例示するために提示されている。上記の開示および以下の特許請求の範囲に基づいて、他の配置、実施形態、実装形態、および同等物が、特許請求の範囲によって定義される本発明の範囲から逸脱することなく用いられ得る。
図1
図2A
図2B
図2C
図3
図4
図5
図6
図7
図8
図9A
図9B
図10
図11
図12
図13
【外国語明細書】