(57)【要約】  ビデオファイルを１以上の所望のフォーマットに処理するビデオエンコードシステムを開示する。ビデオファイルは並列に処理される部分がある。ビデオエンコードシステムは拡張可能なコンピューター資源で構成するようにしてもよい。拡張可能なコンピューター資源はクラウドコンピュータープラットフォームによって提供されてもよい。
2014515895.tif 000002
【特許請求の範囲】
【請求項１】
ビデオファイルを処理する方法であって、
前記ビデオファイルを受信するステップと、
複数のワーカーコンピューター資源を用いて並列に前記ビデオファイルの複数の分割部分を処理するステップと、
処理済みのビデオファイルを提供するステップと、
を備える方法。
【請求項２】
前記ビデオファイルに対する所望のエンコードフォーマットを受信するステップをさらに備え、
前記処理済みビデオファイルは、所望のエンコードフォーマットでエンコードされたものであることを特徴とする請求項１記載の方法。
【請求項３】
前記ビデオファイルの処理に関連する負荷を判断するステップをさらに備え、
前記複数の分割部分の数は、負荷に基づくものであることを特徴とする請求項１記載の方法。
【請求項４】
前記処理済みビデオファイルの所望の解像度と前記処理済みビデオファイルの所望のビットレートの少なくとも１つを受信するステップをさらに備え、
前記負荷は、前記処理済みビデオファイルの所望の解像度と前記処理済みビデオファイルの所望のビットレートの少なくとも１つに基づくものであることを特徴とする請求項３記載の方法。
【請求項５】
前記複数のワーカーコンピューター資源の数は、拡張可能であることを特徴とする請求項１記載の方法。
【請求項６】
前記複数のワーカーコンピューター資源は、クラウドコンピューターのプラットフォームの一部であることを特徴とする請求項１記載の方法。
【請求項７】
ビデオファイルをエンコードするシステムであって、
ビデオエンコード管理コンピューターシステムと、
前記ビデオエンコード管理コンピューターシステムによって、動的にアクティブおよび非アクティブにする複数のワーカーコンピューター資源と、
を備えた拡張可能なコンピュータープラットフォームを備え、
前記ビデオエンコード管理コンピューターシステムが、所望のエンコードフォーマットでビデオファイルをエンコードする指示を受信し、前記ビデオファイルをエンコードするために必要な、前記複数のワーカーコンピューター資源のうちのワーカーコンピューター資源の第１の数を決定し、
前記ビデオエンコード管理コンピューターシステムが、前記複数のワーカーコンピューター資源のうちの前記第１の数のワーカーコンピューター資源に指示して、前記所望のエンコードフォーマットでビデオファイルをエンコードすることを特徴とするシステム。
【請求項８】
前記複数のワーカーコンピューター資源のうちの前記第１の数のワーカーコンピューター資源のそれぞれが、前記所望のエンコードフォーマットで前記ビデオファイルの分割部分のそれぞれを並列にエンコードすることを特徴とする請求項７記載のシステム。
【請求項９】
前記複数のワーカーコンピューター資源のうちの前記第１の数のワーカーコンピューター資源のうちの第１のワーカーコンピューター資源が、前記ビデオファイルを複数の分割部分に分割し、並列で前記所望のフォーマットにエンコードするために各分割部分を前記複数のワーカーコンピューター資源のうちの前記第１の数のワーカーコンピューター資源のそれぞれに割り当てることを特徴とする請求項７記載のシステム。
【請求項１０】
前記複数の分割部分は、複数の分けられたビデオクリップであることを特徴とする請求項９記載のシステム。
【請求項１１】
前記複数の分割部分は、複数の時間幅のビデオファイルであることを特徴とする請求項９記載のシステム。
【請求項１２】
前記複数のワーカーコンピューター資源のうちの前記第１の数のワーカーコンピューター資源のうちの前記第１のワーカーコンピューター資源が、前記複数のワーカーコンピューター資源のうちの前記第１の数のワーカーコンピューター資源の残りから、複数の処理済みビデオファイルを受信することを特徴とする請求項９記載のシステム。
【請求項１３】
前記複数のワーカーコンピューター資源のうちの前記第１の数のワーカーコンピューター資源のうちの前記第１のワーカーコンピューター資源が、前記複数の処理済みビデオの分割部分に基づいて、前記所望のエンコードフォーマットで処理済みビデオファイルを生成することを特徴とする請求項１２記載のシステム。
【請求項１４】
ビデオファイルをエンコードするためのシステムにおいて、
前記ビデオファイルに基づいて処理シーケンスを実行するビデオエンコード管理制御部、
を備え、
前記処理シーケンスが、
前記ビデオファイルと所望のエンコードフォーマットに基づいて、処理済みビデオファイルを生成する負荷を決定するステップと、
前記処理済みビデオファイルの生成に必要なコンピューター資源の第１の数を決定するステップと、
前記第１の数のコンピューター資源のうちの第１のコンピューター資源をマスターコンピューター資源として割り当てるステップと、
前記第１の数のコンピューター資源で並列にエンコードするために、ビデオファイルを複数の分割部分に分割するようにマスターコンピューター資源に指示するステップと、
を含むことを特徴とするシステム。
【請求項１５】
前記処理シーケンスが、前記第１の数のコンピューター資源を起動するステップをさらに備えることを特徴とする請求項１４記載のシステム。
【請求項１６】
前記第１の数のコンピューター資源は、拡張可能なコンピューターシステムの一部であり、プログラムによって起動されることを特徴とする請求項１５記載のシステム。
【請求項１７】
ビデオファイルを処理する方法であって、
前記ビデオファイルを受信するステップと、
前記ビデオファイルの所望のエンコードフォーマットを受信するステップと、
前記ビデオファイルおよび前記所望のエンコードフォーマットに基づいて、処理済みビデオファイルを生成する負荷を決定するステップ、
前記処理済みビデオファイルの生成に必要なコンピューター資源の第１の数を決定するステップ、
前記第１の数のコンピューター資源のうちの第１のコンピューター資源をマスターコンピューター資源として割り当てるステップと、
前記第１の数のコンピューター資源で並列にエンコードするために、前記ビデオファイルを複数の分割部分に分割するようにマスターコンピューター資源に指示するステップを備えることを特徴とする方法。
【請求項１８】
前記第１の数のコンピューター資源を起動するステップをさらに備えることを特徴とする請求項１７記載の方法。
【請求項１９】
前記第１の数のコンピューター資源は、拡張可能なコンピューターシステムの一部であり、プログラによって起動されることを特徴とする請求項１８記載の方法。
【請求項２０】
前記マスターコンピューター資源からの前記処理済みビデオファイルが完成した通知を受信するステップをさらに備えることを特徴とする請求項１７記載の方法。
【請求項２１】
前記処理済みビデオファイルが完成した通告を提供するステップをさらに備えることを特徴とする請求項２０記載の方法。
【請求項２２】
所望のエンコードフォーマットに基づいてビデオファイルの処理においてコンピューター資源によって実行される複数の命令を含む非一時的なコンピューター読み取り可能な媒体であって、前記複数の命令が、
前記ビデオファイルと所望のエンコードフォーマットに基づいて、処理済みビデオファイルを生成する負荷を決定する命令と、
前記処理済みビデオファイルの生成に必要なコンピューター資源の第１の数を決定する命令と、
前記第１の数のコンピューター資源のうちの第１のコンピューター資源をマスターコンピューター資源として割り当てる命令と、
前記第１の数のコンピューター資源で並列にエンコードするために、ビデオファイルを複数の分割部分に分割するようにマスターコンピューター資源に指示する命令であることを特徴とするシステム。
【請求項２３】
ビデオファイルを処理する方法であって、
前記ビデオファイルを受信するステップと、
前記ビデオファイルの処理に関する負荷を決定するステップと、
複数のワーカーコンピューターシステムで前記ビデオファイルの複数の分割部分を並列に処理するステップと、
処理済みのビデオファイルを提供するステップと、
を備える方法。
【請求項２４】
前記ビデオファイルの所望のエンコードフォーマットを受信するステップをさらに備え、
前記処理済みビデオファイルは、前記所望のエンコードフォーマットでエンコードされることを特徴とする請求項２３記載の方法。
【請求項２５】
前記処理済みビデオファイルの所望の解像度と前記処理済みビデオファイルの所望のビットレートの少なくとも１つを受信するステップをさらに備え、
前記負荷は、前記処理済みビデオファイルの所望の解像度と前記処理済みビデオファイルの所望のビットレートの少なくとも１つに基づくものであることを特徴とする請求項２３記載の方法。
【請求項２６】
前記複数のワーカーインスタンスの数は、拡張可能であることを特徴とする請求項２３記載の方法。
【請求項２７】
前記複数のワーカーインスタンスは、クラウドコンピューターの一部であることを特徴とする請求項２３記載の方法。
【請求項２８】
ビデオファイルをエンコードするためのシステムであって、
ビデオ符号化管理コンピューターシステムと、
前記ビデオエンコード管理コンピューターシステムによって動的にアクティブおよび非アクティブにすることが可能な複数のワーカーコンピューターシステムと、
を有するクラウドコンピューターのプラットフォームを備え、
前記ビデオエンコード管理システムは、所望のエンコードフォーマットで前記ビデオファイルをエンコードする命令を受信し、前記ビデオファイルをエンコードするために必要なワーカーコンピューターシステムの数を決定し、
前記ビデオエンコード管理コンピューターシステムが、前記ビデオファイルをエンコードするために前記数のワーカーコンピューターシステムをアクティブにすることを特徴とするシステム。
【発明の詳細な説明】
【関連出願の相互参照】
【０００１】
この出願は、２０１１年５月１９日に出願され、米国仮特許出願第６１／４６８，８７２号、発明の名称「ビデオエンコードシステムおよび方法」、明細書ＬＹＲ−Ｐ０００１は、ここに援用され、利益を主張する。
【技術分野】
【０００２】
本発明は、ビデオエンコードシステムおよび方法に関する。
【背景技術】
【０００３】
ワールド・ワイド・ウェブ上でビデオの視聴が増加するのに従って、ウェッブサイトでは、ますますフレキシブルなエンコードのためのソリューションが求められている。ビデオは、頻繁に多重解像度でかつ複数のビットレートでエンコードすることが必要とされる。加えて、複数のウェッブサイトは複数のエンコードフォーマットをサポートしている。ウェッブサイトは、オリジナルのソースコンテンツを多くのビデオフォーマットで取得し、コンテンツを頻繁にランダムに獲得し、回数を予測することができない。つまり、ウェッブサイトは、提供する新しいビデオをある日には１００本受け取り、他の日には１００００本受信するかもしれない。ビデオコンテンツは、頻繁にタイムリーに反映される（例えば、新しいコンテンツを即座に、多くの場合同日に、潜在的な試聴者が利用できるようにするという強い誘因がある）。従来、自社の設備内にひと揃いのエンコーダーを所有するコンテンツプロバイダーによって、ビデオのエンコードが行われてきた。各エンコーダーは、所定の日にビデオコンテンツの一定量しか処理することができないため、適時性の要因を考えると、コンテンツプロバイダーはピーク時の利用に合わせてそのシステムを提供しなければならない。これにより、大抵の時間は動いていない状態の沢山の列のエンコーダーの設置が必要になる。さらに、ひと揃いのエンコーダーの設置は、重要な先行投資のための資本支出と、後に長い使用期間にわたる償却が要求される。
【発明の概要】
【課題を解決するための手段】
【０００４】
本開示の典型的な実施形態は、ビデオファイルを処理する方法である。本発明の方法は、ビデオファイルを受信するステップ、複数のワーカーコンピューター（作業者コンピューター）資源を用いて並列にビデオファイルの複数の分割部分を処理するステップ、処理済みのビデオファイルを提供するステップで構成される。その一例では、前記方法は、ビデオファイルに対する所望のエンコードフォーマットを受信するステップをさらに備え、処理済みビデオファイルは、所望のエンコードフォーマットでエンコードされたものである。別の例では、前記方法は、ビデオファイルの処理に関連する負荷を判断するステップをさらに備え、複数の分割部分の数は負荷に基づくものである。他の方法では、処理済みビデオファイルの所望の解像度と処理済みビデオファイルの所望のビットレートの少なくとも１つを受信するステップをさらに備え、負荷は処理済みビデオファイルの所望の解像度と処理済みビデオファイルの所望のビットレートの少なくとも１つに基づくものである。また、一例では、複数のワーカーコンピューター資源の数は拡張可能である。さらに、他の一例では、複数のワーカーコンピューター資源はクラウドコンピューターのプラットフォームの一部である。
【０００５】
本開示の他の典型的な実施形態では、ビデオファイルをエンコードするためのシステムが提供される。前記システムは、ビデオエンコード管理コンピューターシステムと、ビデオエンコード管理コンピューターシステムによって動的にアクティブおよび非アクティブにする複数のワーカーコンピューター資源を備えた拡張可能なコンピュータープラットフォームとを備える。ビデオエンコード管理コンピューターシステムが、所望のエンコードフォーマットでビデオファイルをエンコードする指示を受信し、ビデオファイルをエンコードするために必要な、複数のワーカーコンピューター資源のうちのワーカーコンピューター資源の第１の数を決定する。ビデオエンコード管理コンピューターシステムが、複数のワーカーコンピューター資源のうちの第１の数のワーカーコンピューター資源に指示して、所望のエンコードフォーマットでビデオファイルをエンコードする。一例として、複数のワーカーコンピューター資源のうちの第１の数のワーカーコンピューター資源それぞれが、所望のエンコードフォーマットでビデオファイルの分割部分のそれぞれを並列にエンコードする。他の例では、複数のワーカーコンピューター資源のうちの第１の数のワーカーコンピューター資源のうちの第１のワーカーコンピューター資源が、ビデオファイルを複数の分割部分に分割し、並列で前記所望のフォーマットにエンコードするために各分割部分を、前記複数のワーカーコンピューター資源のうちの第１の数のワーカーコンピューター資源のそれぞれに割り当てる。変形例では、複数の分割部分は、複数の分けられたビデオクリップである。別の変形例では、複数の分割部分は、複数の時間間隔のビデオファイルである。また、別の変形例では、複数のワーカーコンピューター資源のうちの第１の数のワーカーコンピューター資源のうちの第１のワーカーコンピューター資源が、前記複数のワーカーコンピューター資源のうちの前記第１の数のワーカーコンピューター資源の残りから、複数の処理済みビデオファイルを受信する。さらに別の変形例では、複数のワーカーコンピューター資源のうちの第１の数のワーカーコンピューター資源のうちの第１のワーカーコンピューター資源が、複数の処理済みビデオの分割部分に基づいて、所望のエンコードフォーマットで処理済みビデオファイルを生成する。
【０００６】
本開示のさらなる他の典型的な実施形態では、ビデオファイルをエンコードするためのシステムが提供される。そのシステムは、ビデオファイルに基づいて処理シーケンスを実行するビデオエンコード管理制御部を備える。この処理シーケンスは、ビデオファイルと所望のエンコードフォーマットに基づいて、処理済みビデオファイルを生成する負荷を決定するステップと、処理済みビデオファイルの生成に必要なコンピューター資源の第１の数を決定するステップと、第１の数のコンピューター資源のうちの第１のコンピューター資源をマスターコンピューター資源として割り当てるステップと、第１の数のコンピューター資源で並列にエンコードするために、ビデオファイルを複数の分割部分に分割するようにマスターコンピューター資源に指示するステップとを含む。その一例として、処理シーケンスが、さらに第１の数のコンピューター資源を起動するステップを備えるようにしてもよい。その変形例として、第１の数のコンピューター資源は、拡張可能なコンピューターシステムの一部であり、プログラムによって起動される。
【０００７】
本開示のさらなる他の典型的な実施形態では、ビデオファイルを処理するための方法が提供される。本発明の方法は、ビデオファイルを受信するステップ、ビデオファイルの所望のエンコードフォーマットの受信するステップ、ビデオファイルおよび所望のエンコードフォーマットに基づいて処理済みビデオファイルを生成する負荷を決定するステップ、処理済みビデオファイルの生成に必要なコンピューター資源の第１の数を決定するステップ、第１の数のコンピューター資源のうちの第１のコンピューター資源をマスターコンピューター資源として割り当てるステップ、および、第１の数のコンピューター資源を用いて並列にエンコードするためにビデオファイルを複数の分割部分に分割するようにマスターコンピューター資源に指示するステップを備える。また、一例では、前記方法は、第１の数のコンピューター資源を起動するステップをさらに備える。その変形例では、第１の数のコンピューター資源は、拡張可能なコンピューターシステムの一部であり、プログラによって起動されるものであってもよい。その別の例では、前記方法は、マスターコンピューター資源からの処理済みビデオファイルが完成した通知を受信するステップをさらに備える。その変化例では、前記方法は、処理済みビデオファイルが完成した通告を提供するステップをさらに備える。
【０００８】
本開示のさらなる典型的な実施形態では、所望のエンコードフォーマットに基づいて行われるビデオファイルの処理がコンピューター資源によって実行される複数の命令を備えた非一時的なコンピューター読み取り可能な媒体が提供される。前記複数の命令は、ビデオファイルおよび所望のエンコードフォーマットに基づいて処理済みビデオファイルを生成する負荷を決定する命令、処理済みビデオファイルの生成に必要なコンピューター資源の第１の数を決定する命令、第１の数のコンピューター資源のうち第１のコンピューター資源をマスターコンピューター資源として割り当てる命令、および、第１の数のコンピューター資源を用いて並列にエンコードするためにビデオファイルを複数の分割部分に分割するようにマスターコンピューター資源に指示する命令である。
【０００９】
また、本開示のさらなる典型的な実施形態では、ビデオファイルを処理するための方法が提供される。本発明の方法は、ビデオファイルを受信するステップ、ビデオファイルの処理に関する負荷を決定するステップと、複数のワーカーコンピューターシステムでビデオファイルの分割部分を並列に処理するステップと、処理済みビデオファイルを提供するステップとを備える。一例では、前記方法は、ビデオファイルの所望のエンコードフォーマットを受信するステップをさらに備え、処理済みビデオファイルは所望のエンコードフォーマットでエンコードされたものである。その他の例では、前記方法は、処理済みビデオファイルの所望の解像度および処理済みデオファイルの所望のビットレートの少なくとも１つを受信するステップをさらに備え、負荷は、処理済みビデオファイルの所望の解像度の処理済みビデオファイルの所望のビットレートの少なくとも１つに基づく。さらに別の例では、複数のワーカーインスタンスの数は拡張可能である。さらなる他の一例では、複数のワーカーインスタンスはクラウドコンピューターのプラットフォームの一部である。
【００１０】
本開示の更なる典型的な実施形態では、ビデオファイルをエンコードするためのシステムが提供される。システムは、ビデオ符号化管理コンピューターシステムと、ビデオエンコード管理コンピューターシステムによって動的にアクティブおよび非アクティブにすることが可能な複数のワーカーコンピューターシステムを備えたクラウドコンピューターのプラットフォームで構成される。ビデオエンコード管理システムは、所望のエンコードフォーマットでビデオファイルをエンコードする命令を受信し、ビデオファイルをエンコードするために必要なワーカーコンピューターシステムの数を決定し、その数のワーカーコンピューターシステムをビデオエンコード管理コンピューターシステムがビデオファイルをエンコードするためにアクティブにする。
【００１１】
本開示の上記の特徴および他の特徴は、単独でまたは任意に組み合わせて特許性がある対象を構成し、以下の詳細な説明および図面により明白になるであろう。
【図面の簡単な説明】
【００１２】
添付の図面と併せて以下の発明の実施形態の記載を参照することにより、この開示の上記の特徴および他の特徴とこの開示の効果、それを達成する方法が、より明白になり、発明それ自体がより理解されるであろう。
【図１】複数のクライントと通信するビデオエンコードシステムの一例を示す。
【図２】クライアントコンピューターシステムの一例を示す。
【図３】図１のビデオエンコードシステムのエンコード管理コンピューターシステムの一例を示す。
【図４】図１のビデオエンコードシステムのマスターワーカーコンピューターシステムの一例を示す。
【図５】図１のビデオエンコードシステムのワーカーコンピューターシステムの一例を示す。
【図６】図１のビデオエンコードシステムの一例の実施形態を示す。
【図７】メッセージシステムを介した複数のクライアントコンピューターとビデオエンコードシステムのコンピューターシステム間のやり取り（インタラクト）の様子を示す図
【図８】複数のクライアントとビデオエンコードシステムのファイル転送システム間のやり取りの様子を示す図
【図９】ビデオエンコードシステムのマスターワーカーコンピューターとビデオエンコードシステムのファイル転送システム間のやり取りの様子を示す図
【図１０】図６のビデオエンコードシステムのファイル転送システムとクライアントの１つの出力ディレクトリー間のやり取りの様子を示す図
【図１１】図１のビデオエンコードシステムの処理の流れの一例を示す。
【図１２】図１のビデオエンコードシステムの処理の一例を示す。
【００１３】
対応する参照される特徴は、複数の見方を通じて対応する部分を示す。ここに記載される例示は発明の典型的な実施形態を説明し、このような例示はいかなる方法において発明の範囲を限定するものとして解釈されるべきではない。
【発明を実施するための形態】
【００１４】
ここに開示された実施形態は、以下に詳細に説明された詳細な形態に、発明が網羅されたものではなく、あるいは発明を限定することを意図するものでもない。むしろ、実施形態は他の当業者がこの発明を利用できるように説明するために選ばれて記述されている。
【００１５】
図１に、ビデオエンコードシステム１００を示す。ビデオエンコードシステム１００は、１つ以上のネットワーク１０４を通して複数の顧客１０２に対して情報の送受信を行う。ネットワーク１０４には、プライベートネットワーク、インターネットのような公衆回線、ローカルエリア・ネットワーク、広域ネットワーク、携帯電話通信網、有線ネットワーク、無線ネットワーク、およびこれらの組合せが含まれる。
【００１６】
ビデオエンコードシステム１００がクライアントコンピューターシステム１０６から受信する代表的な情報は、ビデオファイル１１０およびビデオファイル１１０の処理に関する情報である。一実施形態では、クライアントコンピューターシステム１０６がビデオエンコードシステム１００にビデオファイル１１０を送信する、あるいは、ビデオエンコードシステム１００にビデオファイル１１０を送信するように別のコンピューターシステムに命令する。一実施形態では、クライアントコンピューターシステム１０６は、ビデオファイル１１０の取り出し方法の指示をビデオエンコードシステム１００に提供する。
【００１７】
ビデオエンコードシステム１００がクライアントコンピューターシステム１０６に送信する代表的な情報には、ビデオファイル１１０およびビデオファイル１１０の処理に関する情報に基づいて生成される少なくとも１つの処理済みビデオファイル１１２が含まれる。一実施形態では、ビデオエンコードシステム１００は、クライアントコンピューターシステム１０６に処理済みビデオファイル１１２を送信する、あるいは、クライアントンコピューターシステム１０６に処理済みビデオファイル１１２を送信するように別のコンピューターシステムに命令する。一実施形態では、クライアントコンピューターシステム１０６によって指定された送信先に処理済みビデオファイル１１２を送信する、または、クライアントコンピューターシステム１０６によって指定された送信先に処理済みビデオファイル１１２を送信するように他のコンピューターシステムに命令する。一実施形態では、ビデオエンコードシステム１００が、処理済みビデオファイル１１２の取り出し方法の指示をクライアントコンピューターシステム１０６に提供する。
【００１８】
図に示された実施形態では、ビデオファイル１１０の処理に関する情報には、所望のビデオエンコードフォーマットに関連する情報が含まれる。ビデオファイル１１０のフォーマットに関連する代表的な情報には、ビデオエンコードのフォーマット、ビットレート、解像度、および、他の適切な情報が含まれる。ビデオファイル１１０の処理に関連する更なる代表的な情報として、キーポイントの位置および他のメタデータが含まれるようにしてもよい。一実施形態では、情報はビデオファイル１１０の複数のエンコードフォーマットに関連し、複数の処理済みビデオファイルが、ビデオエンコードシステム１００によって生成される。
【００１９】
図２に、代表的なクライアントコンピューターシステム１０６を示す。クライアントコンピューターシステム１０６は制御部１２０を備える。制御部１２０は、記憶部１２２へアクセスすることができる。記憶部１２２は制御部１２０によって実行され、クライアントコンピューターシステム１０６がネットワーク１０４上の他のコンピューター装置と通信するための通信ソフトウェア１２４が設けられる。通信ソフトウェア１２４は、ソフトウェアとして図に示しているが、ソフトウェア、ハードウェア、またはそれらの組合せとして組み込まれてもよい。クライアントコンピューターシステム１０６は、さらに記憶部１２２に格納される少なくとも１つのビデオファイル１１０を有する。また、情報ファイル１１６が記憶部１２２に格納されている様子が示されている。一実施形態では、情報ファイル１１６には、ビデオファイル１１０の処理に関する情報が含まれる。一実施形態では、ビデオファイル１１０の処理に関する情報は、ビデオファイル１１０の一部として格納される。
【００２０】
クライアントコンピューターシステム１０６は、さらにユーザ・インタフェース１３０を備える。ユーザ・インタフェース１３０には、１つ以上の入力装置１３２および１つ以上の出力装置と、図に示すディスプレイ１３４が含まれる。代表な入力装置には、キーボード、マウス、ポインター装置、トラックボール、ボタン、スイッチ、タッチスクリーン、およびオペレータにクライアントコンピューターシステム１０６の入力を提供するのに適した他の装置が含まれる。代表的な出力装置には、ディスプレイ、タッチスクリーン、プリンター、スピーカー、およびクライアントコンピューターシステム１０６のオペレータに情報を提供するのに適した他の装置が含まれる。
【００２１】
一実施形態では、クライアントコンピューターシステム１０６は、さらにビデオ・カメラ１３６および付属のマイクロフォン１３８を備える。ビデオファイル１１０を撮影するためにビデオ・カメラ１３６を用いるようにしてもよい。一実施形態では、クライアントコンピューターシステム１０６は別のコンピューター装置からビデオファイル１１０を受信する。代表的なクライアントコンピューターシステム１０６には、デスクトップコンピューター、ラップトップコンピューター、タブレットコンピューター、携帯電話、スマートフォン、ビデオ・カメラ、および他の適切なコンピューター装置が含まれる。
【００２２】
図に示された実施形態では、クライアントコンピューターシステム１０６は単一システムである。別の実施形態では、クライアントコンピューターシステム１０６は互いに通信する２つ以上のシステムで構成する。図に示す実施形態では、クライアントコンピューターシステム１０６は、制御部１２０と記憶部１２２を備え、制御部１２０は同時に作動する一以上のプロセッサーであってもよく、記憶部１２２が制御部１２０からアクセス可能な複数の記憶部であってもよい。制御部１２０の１つ以上のプロセッサーに対する記憶部１２２として、ソフトウェアの実行に関連する記憶部およびデータの格納に関連する記憶部が設けられるが、これに限定するものではない。記憶部１２２には、コンピューター読み取り可能な媒体が含まれる。コンピューター読み取り可能な媒体には、制御部１２０の１つ以上のプロセッサーからアクセス可能なあらゆる媒体が含まれ、揮発性の媒体および不揮発性の媒体が含まれる。さらに、コンピューター読み取り可能な媒体は取り外し可能であっても、取外し不可能な媒体であっても、それらのいずれかまたは両方であってもよい。一例として、コンピューター読み取り可能な媒体には、これに限定するものではないが、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュ・メモリ、または他の記憶技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）、または他の光学磁気ディスク装置、磁気カセット、磁気テープ、磁気ディスク記憶装置、または他の磁気記憶装置が含まれ、あるいは、所望の情報を格納するのに使用され、かつ、制御部１２０がアクセス可能な他のあらゆる非一時的な媒体であってもよい。
【００２３】
図１に戻って、ビデオエンコードシステム１００は、ビデオエンコード管理コンピューターシステム２００および複数のワーカーコンピューターシステム２０２を備える。一実施形態では、ワーカーコンピューターシステム２０２の数は固定されている。一実施形態では、ワーカーコンピューターシステム２０２の数は動的に決められ、拡張可能なオンデマンドシステムを提供する。
【００２４】
一実施形態では、ビデオエンコードシステム１００はクラウドコンピューターのプラットフォームに置かれる。一実施形態では、クラウドコンピューターは、相当に大きなオンデマンドコンピューターのコンピューター資源が利用可能なサードパティーが提供するサービスである。クラウドコンピューターの実施形態において、コンピューター資源はワーカーコンピューターシステム２０２またはインスタンスという用語を用いる。「インスタンス」は、特定ＣＰＵと所定のメモリと所定のハードディスクのスペースを備えたコンピューター資源である。インスタンスは、プログラムによって起動され、シャットダウンされるものであってもよい。一実施形態では、コンピューター資源の数は固定である。一実施形態では、コンピューター資源の数は動的に決められ、拡張可能なオンデマンドシステムで提供される。
【００２５】
図３に、代表的なビデオエンコード管理コンピューターシステム２００を示す。ビデオエンコード管理コンピューターシステム２００は、制御部２２０を備える。制御部２２０は、記憶部２２２にアクセスすることができる。記憶部２２２は制御部２２０によって実行され、ビデオエンコード管理コンピューターシステム２００がネットワーク１０４または他のネットワーク上の他のコンピューター装置と通信を行う通信ソフトウェア２２４が設けられる。通信ソフトウェア２２４は、ソフトウェアとして図に示しているが、ソフトウェア、ハードウェア、またはそれらの組合せとして組み込まれてもよい。ビデオエンコード管理コンピューターシステム２００は、さらに、クライアントコンピューターシステム１０６から受信して、記憶部２２２に格納するビデオファイル１１０および情報ファイル１１６を有する。代表的なビデオエンコード管理コンピューターシステム２００には、デスクトップコンピューター、ラップトップコンピューター、タブレットコンピューター、携帯電話、スマートフォン、および他の適切なコンピューターが含まれる。
【００２６】
ビデオエンコード管理コンピューターシステム２００は、さらにユーザ・インタフェース２３０を備える。ユーザ・インタフェース２３０には、１つ以上の入力装置２３２および１つ以上の出力装置、図に示すディスプレイ２３４が含まれる。代表的な入力装置には、キーボード、マウス、ポインター装置、トラックボール、ボタン、スイッチ、タッチスクリーン、および、オペレータにビデオエンコード管理コンピューターシステム２００の入力を提供するのに適した他の装置が含まれる。代表的な出力装置には、ディスプレイ、タッチスクリーン、プリンター、および、ビデオエンコード管理コンピューターシステム２００のオペレータに情報を提供するのに適した他の装置が含まれる。
【００２７】
図に示す実施形態では、ビデオエンコード管理コンピューターシステム２００は単一システムである。別の実施形態では、ビデオエンコード管理コンピューターシステム２００は、互い送受信する２つ以上のシステムで構成する。図に示す実施形態では、ビデオエンコード管理コンピューターシステム２００は、制御部２２０と記憶部２２２を備え、制御部２２０が同時に作動する１つ以上のプロセッサーであってもよく、記憶部２２２が制御部２２０からアクセス可能な複数の記憶部であってもよい。制御部２２０の１つ以上のプロセッサーに対する記憶部２２２は、ソフトウェアの実行に関連する記憶部およびデータの格納に関連する記憶部が設けられるが、これに限定するものではない。記憶部２２２には、コンピューター読み取り可能な媒体が含まれる。コンピューター読み取り可能な媒体には、制御部２２０の１つ以上のプロセッサーがアクセス可能なあらゆる媒体が含まれ、揮発性および不揮発性の媒体が含まれる。さらに、コンピューター読み取り可能な媒体は、取り外し可能であっても、取外し不可能な媒体であっても、それらのいずれかまたは両方であってもよい。一例として、コンピューター読み取り可能な媒体には、これに限定されるものではないが、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュ・メモリ、または他の記憶技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）、または他の光学磁気ディスク装置、磁気カセット、磁気テープ、磁気ディスク記憶装置、または他の磁気記憶装置が含まれ、あるいは、所望の情報を格納するのに使用され、制御部２２０がアクセス可能な他のあらゆる非一時的な媒体であってもよい。
【００２８】
記憶部２２２は、さらに、ビデオエンコード管理ソフトウェア２１０を備える。ビデオエンコード管理ソフトウェア２１０は、ビデオファイル１１０の処理に関するものである。クラウドコンピューターまたは他の分散型のコンピューターの実施形態では、制御部２２０はビデオファイル１１０を処理するためのビデオエンコード管理ソフトウェア２１０を実行する。例えば、ビデオファイル１１０のサイズおよびビデオファイル１１０の所望の処理に応じて、制御部２２０はビデオファイル１１０を処理するために使用するワーカーコンピューターシステム２０２の数を決定し、マスターワーカーコンピューターシステム２０６として機能する各ワーカーコンピューターシステム２０２を割り当てる。ビデオエンコード管理ソフトウェア２１０は、ソフトウェアとして図に示されているが、ソフトウェア、ハードウェア、またはそれらの組合せとして組み込まれてもよい。
【００２９】
図１１を参照して、ビデオエンコード管理コンピューターシステム２００の代表的な処理シーケンス２５０を説明する。ブロック２５２に示すように、ビデオファイル１１０は、ビデオエンコード管理コンピューターシステム２００で受信される。ビデオエンコード管理コンピューターシステム２００は、ビデオファイル１１０およびビデオファイル１１０の所望の処理を定める情報ファイル１１６を分析する。一実施形態では、情報ファイル１１６には、ビデオファイル１１０の所望のエンコードフォーマット、その所望のエンコードフォーマット解像度、およびその所望のエンコードフォーマットのビットレートが含まれる。
【００３０】
図１１へ戻って、ブロック２５４に示されるように、ビデオエンコード管理コンピューターシステム２００はビデオエンコードシステム１００の推定負荷を決定する。一実施形態では、推定負荷は式（１）に基づいて決定される。
【００３１】
【数１】
2014515895.tif 000003
【００３２】
式中、ＬＯＡＤ＝ビデオエンコードシステム１００の推定負荷；（Ａ）＝所望のエンコードの所望のフレームレート；（Ｔ）＝ビデオファイル１１０の持続時間；（Ｈ）＝所望のエンコードにおける列の数；（Ｗ）＝所望のエンコードにおける行の数；ｎはワーカーコンピューターシステム２０２のエンコードソフトウェアの速度に基づく。一実施形態では、エンコードソフトウェアは、ＮＹ１００２２ 、ニューヨーク、パークアベニュー４０５にあるＬｙｒｉｃａｌ  Ｌａｂｓから提供されるＨ．２６４4エンコーダーが利用可能である。この場合、ｎの値は１．５である。一実施形態では、ｎの値は、約１．２から約２．５の間である。他の代表的なビデオエンコーダーは、http://www.videolan.org.からオンラインで提供されるＶｉｄｅｏＬＡＮのｘ２６４が利用可能である。
【００３３】
ビデオエンコード管理コンピューターシステム２００は、ブロック２５６によって表されるように、決定されたＬＯＡＤに基づいて、ワーカーコンピューターシステム２０２の数を定める。一実施形態では、推定負荷は式（２）に基づいて決定する。
【００３４】
【数２】
2014515895.tif 000004
【００３５】
式中、ＮＵＭ＝起動するワーカーコンピューターシステム２０２の数；ＬＯＡＤ＝ビデオエンコードシステム１００の推定負荷；ＳＩＮＧＬＥ_ＷＯＲＫＥＲ_ＬＯＡＤ＝代表的なワーカーコンピューターシステム２０２の負荷容量；ＣＥＩＬＩＮＧ関数は次の最も小さい整数になるようにＮＵＭを増やす。ブロック２５８に示すように、ビデオエンコード管理コンピューターシステム２００は、ビデオファイル１１０を処理するのに必要なワーカーコンピューターシステム２０２を決められた数起動する。ブロック２６０に示すように、ビデオエンコード管理コンピューターシステム２００は、さらに、ビデオファイル１１０の処理を管理するワーカーコンピューターシステム２０２の１つをマスターワーカーコンピューターシステム２０６として指定する。ブロック２６２に示すように、ビデオエンコード管理コンピューターシステム２００は、マスターワーカーコンピューターシステム２０６にビデオファイル１１０を送信し、マスターワーカーコンピューターシステム２０６に指示して、起動されたワーカーコンピューターシステム２０２の数と等しい数の分割部分にビデオファイル１１０を分割する。この場合、マスターワーカーコンピューターシステム２０６も、ビデオファイル１１０の１つの分割部分をエンコードする。
【００３６】
図４に、代表的なマスターワーカーコンピューターシステム２０６を示す。マスターワーカーコンピューターシステム２０６は制御部３２０を備える。制御部３２０は、記憶部３２２へアクセスすることができる。記憶部３２２は制御部３２０によって実行され、マスターワーカーコンピューターシステム２０６がネットワーク１０４または他のネットワーク上の他のコンピューター装置と通信を行う通信ソフトウェア３２４が設けられる。通信ソフトウェア３２４は、ソフトウェアとして図に示しているが、ソフトウェア、ハードウェア、またはそれらの組合せとして組み込まれてもよい。マスターワーカーコンピューターシステム２０６は、さらに、ビデオエンコード管理コンピューターシステム２００から受信し、記憶部３２２に格納されるビデオファイル１１０および情報ファイル１１６を有する。代表的なマスターワーカーコンピューターシステム２０６には、デスクトップコンピューター、ラップトップコンピューター、タブレットコンピューター、携帯電話、スマートフォン、および他の適したコンピューター装置が含まれる。
【００３７】
マスターワーカーコンピューターシステム２０６は、さらに、ユーザ・インタフェース３３０を備える。ユーザ・インタフェース３３０には、１つ以上の入力装置３３２および１つ以上の出力装置、図に示すディスプレイ３３４が含まれる。代表的な入力装置には、キーボード、マウス、ポインター装置、トラックボール、ボタン、スイッチ、タッチスクリーン、およびオペレータにマスターワーカーコンピューターシステム２０６の入力を提供するのに適した他の装置が含まれる。代表的な出力装置には、ディスプレイ、タッチスクリーン、プリンターをおよびマスターワーカーコンピューターシステム２０６のオペレータに情報を提供するのに適した他の装置が含まれる。
【００３８】
図に示す実施形態では、マスターワーカーコンピューターシステム２０６は単一システムである。別の実施形態では、マスターワーカーコンピューターシステム２０６は、互い送受信する２つ以上のシステムで構成する。図に示す実施形態では、マスターワーカーコンピューターシステム２０６は、制御部３２０および記憶部３２２を備え、制御部３２０が同時に作動する１つ以上のプロセッサーであってもよく、記憶部３２２は制御部３２０がアクセス可能な複数の記憶部であってもよい。制御部３２０の１つ以上のプロセッサーに対する記憶部３２２は、ソフトウェアの実行に関連する記憶部およびデータの格納に関連する記憶部が設けられるが、これに限られるものではない。記憶部３２２には、コンピューター読み取り可能な媒体が含まれる。コンピューター読み取り可能な媒体は、制御部３２０の１つ以上のプロセッサーからアクセス可能な媒体であり、揮発性および不揮発性の媒体が含まれる。さらに、コンピューター読み取り可能な媒体は、取り外し可能であっても、取外し不可能な媒体であっても、それらのいずれかまたは両方であってもよい。一例として、コンピューター読み取り可能な媒体は、これに限定するものではないが、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュ・メモリ、または他の記憶技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）、または他の光学磁気ディスク装置、磁気カセット、磁気テープ、磁気ディスク記憶装置、または他の磁気記憶装置、あるいは、所望の情報を格納するのに使用され、制御部３２０がアクセス可能な他のあらゆる非一時的な媒体も含む。
【００３９】
記憶部３２２には、さらに、ビデオ分割ソフトウェア３０２、ビデオ連結ソフトウェア３０４、ビデオエンコードソフトウェア３１０、分割部分の数３０８、およびワーカーコンピューターシステムの割り当てインデックス３００が設けられる。ビデオ分割ソフトウェア３０２は、マスターワーカーコンピューターシステム２０６と残りのワーカーコンピューターシステム２０２で処理するために、通常は、等しい時間間隔でビデオファイル１１０を分割する。一実施形態では、ビデオ分割ソフトウェア３０２は、ある特定の分割部分に対応してそれぞれ別のビデオクリップを生成する。一例では、ビデオ管理システムは、各分割部分に対する時間窓（クリップの２分と４分の間の間隔）を決定し、分割したビデオクリップを生成するビデオ分割ソフトウェア３０２にこれらの時間間隔を与える。代表的なビデオ分割ソフトウェア３０２は、http://www.ffmpeg.orgにオンラインでFFmpeg.orgから提供されるＦｆｍｐｅｇが利用可能である。ビデオ連結ソフトウェア３０４は、ビデオファイルにビデオ部分を連結する。代表的なビデオ連結ソフトウェア３０４は、http://www.flvsoft.comにオンラインでＦＬＳｏｆｔから提供されるＦｌｖｂｉｎｄが利用可能である。ビデオエンコードソフトウェア３１０は、ビデオファイル１１０の処理に関するものである。制御部３２０は、情報ファイル１１６で指定された目標のエンコードフォーマットに、ビデオファイル１１０の少なくとも１つの分割部分をエンコードする。代表的なビデオエンコードソフトウェア３１０は、http://www.videolan.orgにオンラインでＶｉｄｅｏＬＡＮから提供されるｘ２６４が利用可能である。ビデオ分割ソフトウェア３０２、ビデオ連結ソフトウェア３０４、およびビデオエンコードソフトウェア３１０が、別のソフトウエアモジュールとして示されているが、ビデオ分割ソフトウェア３０２、ビデオ連結ソフトウェア３０４、およびビデオエンコードソフトウェア３１０の１つ以上が、一緒のソフトウエアモジュールとして結合されていてもよい。ビデオ分割ソフトウェア３０２、ビデオ連結ソフトウェア３０４、およびビデオエンコードソフトウェア３１０が、ソフトウェアとして説明するが、ビデオ分割ソフトウェア３０２、ビデオ連結ソフトウェア３０４、およびビデオエンコードソフトウェア３１０の１つ以上を、ソフトウェア、ハードウェア、またはそれらの組合せとして組み込まれてもよい。
【００４０】
ビデオファイル１１０を分割するビデオエンコード管理コンピューターシステム２００が起動するワーカーコンピューターシステム２０２の数は、分割部分の数３０８が対応する。マスターワーカーコンピューターシステム２０６は、分割部分の数３０８に基づいて、ビデオ分割ソフトウェア３０２でビデオファイル１１０を分割部分３０６に分割する。一実施形態では、分割部分３０６はビデオクリップであり、ビデオクリップのそれぞれが個々の時間間隔に対応する。この実施形態では、マスターコンピューターシステム２０６が、ワーカーコンピューターシステム２０２のそれぞれが各分割部分３０６を取り出して、ビデオファイル１１０の各分割部分３０６を処理するように指示する。マスターワーカーコンピューターシステム２０６は、各分割部分と各ワーカーコンピューターシステム２０２のインデックス３００を格納する（図１２参照）。このようにして、マスターワーカーコンピューターシステム２０６は、処理済みビデオファイル１１２を生成するように命令したワーカーコンピューターシステム２０２から送り返された処理済み分割部分３１６を受信することができる。
【００４１】
図５に、代表的なワーカーコンピューターシステム２０２を示す。ワーカーコンピューターシステム２０２は、制御部３５０を備える。制御部３５０は、記憶部３５２へアクセスすることができる。記憶部３５２は制御部３５０によって実行され、ワーカーコンピューターシステム２０２がネットワーク１０４または他のネットワーク上の他のコンピューター装置と通信を行う通信ソフトウェア３５４を備えている。通信ソフトウェア３５４は、図にソフトウェアとして示されているが、ソフトウェア、ハードウェア、またはそれらの組合せとして組み込まれてもよい。ワーカーコンピューターシステム２０２は、さらに、マスターワーカーコンピューターシステム２０６から受信して記憶部３５２に格納する１つの分割部分３０６を有する。代表的なワーカーコンピューターシステム２０２には、デスクトップコンピューター、ラップトップコンピューター、タブレットコンピューター、携帯電話、スマートフォン、および他の適切なコンピューター装置が含まれる。
【００４２】
ワーカーコンピューターシステム２０２には、さらにユーザ・インタフェース３６０が設けられる。ユーザ・インタフェース３６０には、１つ以上の入力装置３６２および１つ以上の出力装置、図に示すディスプレイ３６４が含まれる。代表的な入力装置には、キーボード、マウス、ポインター装置、トラックボール、ボタン、スイッチ、タッチスクリーン、およびオペレータにワーカーコンピューターシステム２０２の入力を提供することが可能な他の適切な装置が含まれる。代表的な出力装置には、ディスプレイ、タッチスクリーン、プリンターを、およびワーカーコンピューターシステム２０２のオペレータに情報を提供する他の適切な装置が含まれる。
【００４３】
図に示めす実施形態において、ワーカーコンピューターシステム２０２は、単一のシステムである。別の実施形態では、ワーカーコンピューターシステム２０２には互いに通信する１つ以上のシステムで構成する。図に示す実施形態では、ワーカーコンピューターシステム２０２は、制御部３５０と記憶部３５２を備え、制御部３５０が同時に動作する１以上のプロセッサーであってもよく、記憶部３５２が制御部３５０からのアクセス可能な複数の記憶部であってもよい。制御部３５０の１以上のプロセッサーに対する記憶部３５２として、ソフトウェアの実行に関連する記憶部およびデータの格納に関連する記憶部が設けられるが、これに限定するものではない。記憶部３５２には、コンピューター読み取り可能な媒体が含まれる。コンピューター読み取り可能な媒体には、制御部３５０の１つ以上のプロセッサーからアクセス可能なあらゆる媒体が含まれ、揮発性の媒体および不揮発性の媒体が含まれる。さらに、コンピューター読み取り可能な媒体は、取り外し可能であっても、取外し不可能な媒体であっても、それらのいずれかまたは両方であってもよい。一例として、コンピューター読み取り可能な媒体には、これに限定するものではないが、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュ・メモリ、または他の記憶技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）、または他の光学磁気ディスク装置、磁気カセット、磁気テープ、磁気ディスク記憶装置、または他の磁気記憶装置が含まれ、あるいは、所望の情報を格納するのに使用され、かつ、制御部１２０がアクセス可能な他のあらゆる非一時的な媒体であってもよい。
【００４４】
記憶部３５２には、さらにビデオエンコードソフトウェア３１０が設けられる。ビデオエンコードソフトウェア３１０は、割り当てられた分割部分３０６の処理に関するものである。制御部３５０は、目標のエンコードフォーマットに、ビデオファイル１１０の割り当てられた分割部分３０６をエンコードして、処理済み分割部分３１６を生成する。
【００４５】
処理済み分割部分３１６の全てが、マスターワーカーコンピューターシステム２０６で受信されると、マスターワーカーコンピューターシステム２０６は処理された分割部分３１６を連結して処理済みビデオファイル１１２を生成する（図１２を参照）。処理済みビデオファイル１１２は、要求したクライアントコンピューターシステム１０６に送り返すか、または、クライアントコンピューターシステム１０６から指示された別のコンピューター装置に送信する。
【００４６】
図６〜１０に、ビデオエンコードシステム１００の典型的な実施形態が示されている。図に示された実施形態では、オンデマンドのエンコードシステムとして、コンピューター資源を提供するために、アマゾンウェッブサービスが提供するオンライン上のhttp://aws.amazon.comに置かれるＡｍａｚｏｎ  Ｅｌａｓｔｉｃ  Ｃｏｍｐｕｔｅ  Ｃｌｏｕｄ（「Ａｍａｚｏｎ  ＥＣ２」）サービスが利用可能である。説明された実施形態の総合システム４００が、図６に示される。
【００４７】
また、メッセージシステム４０２は、クライアントコンピューターシステム１０６とビデオエンコードシステム１００間の通信のために使用される。図に示された実施形態では、Ａｍａｚｏｎ’ｓ Ｓｉｍｐｌｅ Ｑｕｅｕｉｎｇ Ｓｅｒｖｉｃｅ （「Ａｍａｚｏｎ ＳＱＳ」）が、メッセージングに用いられる。待ち行列システムは、クライアントコンピューターシステム１０６とビデオエンコードシステム１００のクラウド内のコンピューターシステムの間でメッセージを通信できるようにする。例えば、インスタンスとワーカーコンピューターシステム２０２とマスターワーカーコンピューターシステム２０６との間、および、クラウド内のシステムとクライアントコンピューターシステム１０６との間でファイルを共有するファイルホスティングシステム４０４が提供される。図に示された実施形態では、アマゾンのＳ３ファイルシステム（「アマゾンＳ３」）がファイルを転送するために使用される。
【００４８】
エンコード処理は、コンテンツホスト（以下、「出版業者」という）が、自分のサーバー（クライアントコンピューターシステム１０６）の指定されたディレクトリー４０８にビデオファイル４１０をコピーすることから開始される。出版業者は、ビデオファイル４１０に加えて、所望のエンコードを行うときの解像度およびビットレートを指定している情報ファイル４１６を提供する。複数の目的とする解像度およびビットレートが１つの情報ファイル４１６の内で指定されるようにしてもよい。
【００４９】
次に、出版業者のサーバー（クライアントコンピューターシステム１０６）で稼動するローカルサービス（ファイルホスティングシステム４０４）によって、ファイル（ビデオファイル４１０および情報ファイル４１６の両方）がクラウドベースのファイルシステムに転送される。図に示された実施形態では、アマゾンＳ３が使用されている。
【００５０】
出版業者のローカルサービス（ファイルホスティングシステム４０４）は、特定のファイルがアップロードされていることを示すメッセージをメッセージシステム４０２のメッセージ待ち行列に置く。図に示された実施形態では、アマゾンＳＱＳが用いられる。アマゾンＳＱＳは、双方向でいつでも利用できるサービスであり、同時に多くのクライアントコンピューターシステム１０６からアクセス可能である。クリップマネージャーまたはビデオエンコード管理ソフトウェア２１０（ビデオエンコード管理コンピューターシステム２００）、これはクラウドベースのインスタンス上で動くサービスであり、待ち行列にアクセスして、エンコードするファイに関する特定のメッセージを読み込む。図７に示すように、ビデオエンコード管理コンピューターシステム２００は、メッセージシステム４０２を介して多数のクライアントコンピューターシステム１０６と通信することができる。通信ベースのアマゾンＳＱＳは、クリップマネージャーに利用可能な資源があれば、クリップマネージャーがアマゾンＳＱＳに単にアクセスすれば、クリップマネージャーはコンピューターの負荷が重いためにメッセージを逃すことはないことが保証される。ビデオファイル４１０および関連する情報ファイル４１６は、アクセスの準備ができたファイルホスティングシステム４０４上に存在する。
【００５１】
クリップマネージャーは、エンコードする新しいファイルがあることを示すメッセージ待ち行列内のメッセージにアクセスすると、ファイルホスティングシステム４０４のビデオファイル４１０および情報ファイル４１６にアクセスして、エンコードを完了するために必要な資源を決定する。クリップマネージャーは、ビデオクリップを１つのインスタンスを用いて処理してもよいし、多数のインスタンスの間でその仕事を分けてもよい。図に示された実施形態では、１つのインスタンスに、一定の計算負荷（すなわち、特定の長さの時間に対して特定の解像度のビデオクリップ）が与えられる。解像度に応じて、ビデオファイルは固定の長さのパートごとに処理される。この部分の長さが、エンコードする目標の解像度の１つの処理（function）になる。例えば、２時間のビデオクリップは、２分のパートに分割され、６０個のインスタンスで並行して処理するようにしてもよい。但し、９０秒のクリップは、１つのインスタンスで処理されるであろう。インスタンスは、オンデマンドでプロクラから起動される。クラウドベースのシステムは、要求された資源を供給し、使用されないインスタンスはプログラムからシャットダウンされる。
【００５２】
ワーカーコンピューターシステム２０２およびマスターワーカーコンピューターシステム２０６等のある特定のビデオクリップをエンコードするために起動されるインスタンスに対して、「ワーカー」インスタンスという用語を用いる。ワーカーインスタンスは、ファイルホスティングシステム４０４内のファイルのポインターが与えられ、アマゾンＳ３は、目標の解像度とビットレートとファイルのパートに関する情報に従ってエンコードしなければならない（例えば、２分から４分間の間隔のクリップ）。ワーカーは、ファイルホスティングシステム４０４（アマゾンＳ３）のビデオファイル４１０にアクセスする。既知の可用性が高いファイルホスティングシステム４０４（アマゾンＳ３）は、通信回線が混雑しているために性能が低下することなく多くのワーカーが同じファイルに同時にアクセスすることができる。ワーカーは、指定された時間間隔で標準的なフォーマットにデコードする。図に示された実施形態では、フォーマットは、圧縮されていない.yuvファイルである。多くのパブリックドメインプログラムで、広範囲の標準的なフォーマットにデコードすることができる。続いて、.yuvファイルは、エンコードする所望の解像度にサイズ調整される。そして、エンコーダーが、所望のフォーマットにファイルをエンコードする。一実施形態では、ＮＹ  １００２２、ニューヨーク、パークアベニュー４０５ にあるＬｙｒｉｃａｌ  Ｌａｂｓから提供される Ｈ．２６４のエンコーダーは、.flvファイルを入力してエンコードし、.flv（フラッシュビデオファイル）ファイルまたは.mp4（ＭＰＥＧオーディオストリーム）ファイルのいずれかのフォーマットまたは両方のフォーマットで出力する。エンコーダーは商業的に関心がもたれる解像度とビットレートの全範囲に対応する機能がある。結果として、エンコード済みファイルは図９に示すようにアマゾンＳ３の待ち行列に再び置かれる。もう一つの代表的なビデオエンコーダーはhttp://www.videolan.orgにオンラインで置かれるＶｉｄｅｏＬＡＮから提供されるｘ２６４が利用可能である。
【００５３】
エンコードプロセスが複数パートまたは分割部分に分けられると、１つのワーカー（マスターワーカーコンピューターシステム２０６）は、Ｓ３からエンコードされた部分を集めて、それらを連結して１つのエンコード済みファイル（処理済みビデオファイル１１２）にする。パブリックドメインの多くのプログラムで、このビットストリームを連結することができる。特定の実施形態では、ＦＬＶＢｉｎｄが用いられる。
【００５４】
エンコード済みファイルがアマゾンＳ３に置かれれば、ワーカー（マスターワーカーコンピューターシステム２０６）は、仕事が完了したことを、クリップマネージャー（ビデオエンコード管理コンピューターシステム２００）に通知する。それ以上の仕事がなければクリップマネージャー（ビデオエンコード管理コンピューターシステム２００）は、仕事がなくなったワーカーに、新しい仕事を割り当てる、またはインスタンスを終了する。
【００５５】
クリップマネージャー（ビデオエンコード管理コンピューターシステム２００）は、特定のエンコードジョブが完了したことを示すメッセージをメッセージシステム４０２のメッセージ待ち行列に置くとともに、エンコード済みファイルへのポインターをファイルホスティングシステム４０４（アマゾンＳ３）上に置く。出版業者のサーバーで動いているローカルサービスは、メッセージ待ち行列にアクセスして、エンコード済みファイル（処理済みビデオファイル１１２）をダウンロードする。多数あるエンコード済みファイルは、一つの入力ファイルから作られた結果である。このプロセスは図１０に示される。
【００５６】
図に示す実施形態では、出版業者は、ピーク時の利用をターゲットにして、広いエンコーダー用の場所（farm）を用意する必要はない。顧客の需要へ対応してクラウドベースのシステムのスケールを決めるので、顧客の費用は、実際に使用されたコンピューター資源に関するだけである。前もってコストがかかることがほとんどないため、出版業者のコストはビジネスに対応したものとなり、経済的な強みを提供する。
【００５７】
この発明では、代表的な設計について説明を行ったが、本発明は、この開示された意図とその範囲内でさらに変更されたものであってもよい。従ってこの出願は、一般的な原則に応じて発明を変形させ、利用し、または適応したあらゆる範囲に及ぶものである。さらに、この出願は、この発明の分野の当業者に知られまたは通常の行われている範囲から生じる現在の開示の範囲から離れることがない範囲に及ぶものである。
【図１】
2014515895.tif 000005
【図２】
2014515895.tif 000006
【図３】
2014515895.tif 000007
【図４】
2014515895.tif 000008
【図５】
2014515895.tif 000009
【図１１】
2014515895.tif 000010
【図１２】
2014515895.tif 000011
【図６】
2014515895.tif 000012
【図７】
2014515895.tif 000013
【図８】
2014515895.tif 000014
【図９】
2014515895.tif 000015
【図１０】
2014515895.tif 000016
【国際調査報告】
2014515895.tif 000017
2014515895.tif 000018