(58)【調査した分野】(Int.Cl.,DB名)
1以上のトランスコーディング・サーバが、ジョブ構成情報をクライアント・コンピューティング・デバイスから受信する工程であって、前記ジョブ構成情報は、アクセス・トークンと標的符号化フォーマットとを備える、工程と、
前記1以上のトランスコーディング・サーバが、前記クライアント・コンピューティング・デバイスからマルチメディア・ファイルを受信する工程と、
前記1以上のトランスコーディング・サーバが、前記ジョブ構成情報のアクセス・トークンが有効であるかどうか決定する工程と、
前記ジョブ構成情報のアクセス・トークンが有効である場合、前記1以上のトランスコーディング・サーバが、前記マルチメディア・ファイルを前記標的符号化フォーマットにトランスコーディングする工程と、
前記1以上のトランスコーディング・サーバが、トランスコーディングされた前記マルチメディア・ファイルを記憶する工程と、
前記1以上のトランスコーディング・サーバが、前記マルチメディア・ファイルをトランスコーディングすることと、トランスコードされた前記マルチメディア・ファイルを記憶することとの正常な完了を示すジョブ応答を前記クライアント・コンピューティング・デバイスに送る工程と、
を備える方法。
前記クライアント・コンピューティング・デバイスからマルチメディア・ファイルを受信する前記工程は、前記クライアント・コンピューティング・デバイスから前記マルチメディア・ファイルの1以上のチャンクを受信することを含む、請求項1に記載の方法。
前記ジョブ構成情報は、1以上のアップロード・ポリシを備え、前記1以上のアップロード・ポリシは、前記マルチメディア・ファイルの時間またはサイズの制限を指定する、請求項1に記載の方法。
前記ジョブ応答は、トランスコーディングされたビデオのサイズと前記トランスコーディングされたビデオに関連付けられている1以上のセキュリティ・ポリシとをさらに示す、請求項1に記載の方法。
前記ジョブ応答は、前記1以上のトランスコーディング・サーバと前記クライアント・コンピューティング・デバイスとの間の共有鍵暗号化に基づいて暗号化される、請求項1に記載の方法。
前記クライアント・コンピューティング・デバイスからマルチメディア・ファイルを受信する前記工程は、前記クライアント・コンピューティング・デバイスから前記マルチメディア・ファイルの1以上のチャンクを受信することを含む、請求項8に記載の媒体。
前記ジョブ構成情報は、1以上のアップロード・ポリシを備え、前記1以上のアップロード・ポリシは、前記マルチメディア・ファイルの時間またはサイズの制限を指定する、請求項8に記載の媒体。
前記ジョブ応答は、トランスコーディングされたビデオのサイズと前記トランスコーディングされたビデオに関連付けられている1以上のセキュリティ・ポリシとをさらに示す、請求項8に記載の媒体。
前記ジョブ応答は、前記1以上のトランスコーディング・サーバと前記クライアント・コンピューティング・デバイスとの間の共有鍵暗号化に基づいて暗号化される、請求項8に記載の媒体。
前記クライアント・コンピューティング・デバイスからマルチメディア・ファイルを受信する前記工程は、前記クライアント・コンピューティング・デバイスから前記マルチメディア・ファイルの1以上のチャンクを受信することを含む、請求項15に記載のシステム。
前記ジョブ構成情報は、1以上のアップロード・ポリシを備え、前記1以上のアップロード・ポリシは、前記マルチメディア・ファイルの時間またはサイズの制限を指定する、請求項15に記載のシステム。
前記ジョブ応答は、トランスコーディングされたビデオのサイズと前記トランスコーディングされたビデオに関連付けられている1以上のセキュリティ・ポリシとをさらに示す、請求項15に記載のシステム。
前記ジョブ応答は、前記1以上のトランスコーディング・サーバと前記クライアント・コンピューティング・デバイスとの間の共有鍵暗号化に基づいて暗号化される、請求項15に記載のシステム。
【発明を実施するための形態】
【0005】
デジタル・カメラを含むモバイル・コンピューティング・デバイス(クライアント・コンピューティング・デバイスとも呼ばれることがある)を使用し、たとえばデジタル・ビデオ・クリップなどマルチメディア・ファイルを記録することができる。クライアント・コンピューティング・デバイスのユーザは、マルチメディア・ファイルをネットワーク上のサービスにアップロードすることができる。特定の実施形態では、クライアント・コンピューティング・デバイスは、サービスに関連付けられたホスト・コンピューティング・サーバに、マルチメディア・ファイルをサービスにアップロードするためのアップロード要求を送る。特定の実施形態では、ホスト・コンピューティング・デバイスは、アップロード要求を受信したとき、サービスに関連するマルチメディア・ファイルのアップロード、トランスコーディング、および記憶を実施するために、アクティブな切り離された、すなわちサードパーティのトランスコーディング・サーバのリストを識別する。特定の実施形態では、アクティブなトランスコーディング・サーバのリストが識別された後で、ホスト・コンピューティング・サーバは、識別されたトランスコーディング・サーバのリストと、1つまたは複数のアップロード・ポリシ、および固定時間に失効するアクセス・トークンをさらに備えるジョブ構成情報と共に、クライアント・コンピューティング・デバイスに返信を返送することができる。アクセス・トークンは、所与の持続時間の間、マルチメディア・ファイルをアップロードするために識別されたトランスコーディング・サーバのそれぞれに対するクライアント・コンピューティング・デバイスのアクセスを許可するために使用されてもよい。
【0006】
特定の実施形態では、クライアント・コンピューティング・デバイスは、トランスコーディング・サーバをリストから選択し、ジョブ構成情報を選択されたトランスコーディング・サーバに送ることができる。選択されたトランスコーディング・サーバは、アクセス・トークンを検証し、その後、ネットワークを使用してクライアント・コンピューティング・デバイスからマルチメディア・ファイルのアップロードを許可することができる。アップロードが完了した後で、トランスコーディング・サーバは、マルチメディア・ファイルを標的符号化フォーマットにトランスコーディングし、トランスコーディングされたマルチメディア・ファイルを、結合されたストレージ・システム内に記憶し、アップロードの完了を示すジョブ応答をクライアント・コンピューティング・デバイスに送ることができる。
【0007】
特定の実施形態では、クライアント・コンピューティング・デバイスは、トランスコーディング・サーバから受信されたジョブ応答をホスト・コンピューティング・デバイスに転送することができる。その後、選択されたトランスコーディング・サーバは、他の作業に使用可能とされてよい。
【0008】
特定の実施形態では、ホスト・コンピューティング・デバイスによって送られ、クライアント・コンピューティング・デバイスによって受信された返信は、クライアント・コンピューティング・デバイスからトランスコーディング・サーバへのアップロード中に障害が発生した場合、フェールオーバを許可する。
【0009】
上記で開示されている実施形態は例にすぎず、本開示の範囲はそれらに限定されない。特定の実施形態は、上記で開示されている実施形態の構成要素、要素、特徴、機能、動作、またはステップのすべて、一部を含むことも、どれも含まないこともある。
【0010】
図1は、サービスに関連付けられたマルチメディア・ファイルをアップロード、トランスコーディング、および記憶するための例示的なネットワーク環境100を示す。ネットワーク環境100は、ネットワーク160によって互いに接続されているユーザ110、クライアント・コンピューティング・デバイス120、サービス・システム130、およびメディア・システム170を含む。
図1は、ユーザ110、クライアント・コンピューティング・デバイス120、サービス・システム130、メディア・システム170、ネットワーク160の特定の構成を示すが、本開示は、ユーザ110、クライアント・コンピューティング・デバイス120、サービス・システム130、メディア・システム170、ネットワーク160の任意の好適な構成を企図する。限定するものとしてではなく一例として、クライアント・コンピューティング・デバイス120、サービス・システム130、およびメディア・システム170の2以上が互いに直接接続され、ネットワーク160をバイパスしてもよい。限定するものとしてではなく別の例として、クライアント・コンピューティング・デバイス120、サービス・システム130、およびメディア・システム170の2以上が、全体として、または部分的に互いに物理的に、または論理的に同じ場所にあってもよい。限定するものとしてではなく別の例として、メディア・システム170は、サービス・システム130から分離され、そこから独立して動作するサードパーティ・システムであってもよい。
図1は、特定の数のユーザ110、クライアント・コンピューティング・デバイス130、サービス・システム130、メディア・システム170、およびネットワーク160を示すが、本開示は、任意の好適な数のユーザ110、クライアント・コンピューティング・デバイス120、サービス・システム130、メディア・システム170、およびネットワーク160を企図する。限定するものとしてではなく一例として、ネットワーク環境100は、複数のユーザ110、クライアント・コンピューティング・デバイス120、サービス・システム130、メディア・システム170、およびネットワーク160を含んでもよい。各サービス・システム130は、1つまたは複数のホスト・コンピューティング・サーバ132をさらに含んでもよく、各メディア・システム170は、1つまたは複数のトランスコーディング・サーバ172、および1つまたは複数の結合されたストレージ・システム174をさらに備えてもよい。
図1は、メディア・システム170の特定の実施形態を示すが、本開示は、各メディア・システム170に関連付けられたトランスコーディング・サーバ172およびストレージ・システム174の任意の好適な構成を企図する。限定するものとしてではなく一例として、1つまたは複数のトランスコーディング・サーバ172は、全体として、または部分的に1つまたは複数のストレージ・システム174に直接、物理的に、および電気的に結合されてもよい。限定するものとしてではなく別の例として、1つまたは複数のトランスコーディング・サーバ172は、全体として、または部分的に、1つまたは複数のストレージ・システム174と論理的に同じ場所にあり、通信可能に結合されてもよい。限定するものとしてではなく別の例として、トランスコーディング・サーバ172は、ホスト・コンピューティング・サーバ130から分離され、そこから独立して動作してもよい。
【0011】
特定の実施形態では、ユーザ110は、サービス・システム130と、またはサービス・システム130を通じて対話または通信する個人(人間のユーザ)、エンティティ(たとえば、企業体、事業体、またはサードパーティ・アプリケーション)、または(たとえば、個人またはエンティティの)グループであってよい。限定するものとしてではなく例として、サービス・システム130は、ビデオ、音楽、およびピクチャ・データに関連付けられたオンライン・ホスティングおよび共有サービスを含んでもよい。特定の実施形態では、サービス・システム130は、オンライン・ソーシャル・ネットワークによってホストされるネットワーク・アドレス可能なコンピューティング・システムであってもよい。そのような実施形態では、サービス・システム130は、データを生成し、記憶し、受信し、送ることができる。限定するものとしてではなく例として、データは、ユーザプロフィール・データ、ユーザ・マルチメディア・データ、コンセプトプロフィール・データ、ソーシャルグラフ情報、位置情報、オンライン取引、または他の好適なデータであってよい。
【0012】
各サービス・システム130は、ネットワーク環境100の他の構成要素によって、直接、またはネットワーク160を通じてアクセスされてもよい。特定の実施形態では、各サービス・システム130は、ユーザ110がたとえば適切なプライバシ設定を設定することによって、自分達の識別情報をサービス・システム130によってログさせることにオプトインもしくはオプトアウトすること、または他のシステム(たとえば、メディア・システム170)とユーザ・データを共有することを可能にする認可サーバを含むことができる。ユーザのプライバシ設定は、そのユーザに関連付けられたどの情報がログされてもよいか、そのユーザに関連付けられた情報がどのようにログされてもよいか、そのユーザに関連付けられた情報がいつログされてもよいか、そのユーザに関連付けられた情報を誰がログしてもよいか、そのユーザに関連付けられた情報が誰と共有されてもよいか、および何の目的でそのユーザに関連付けられた情報がログまたは共有されてもよいか決定することができる。認可サーバは、ブロッキング、データ・ハッシング、匿名化、または他の好適な技法を適宜通じて、サービス・システム130のユーザの1つまたは複数のプライバシ設定を施行するために使用されてもよい。
【0013】
特定の実施形態では、各メディア・システム170は、1つまたは複数のクライアント・コンピューティング・デバイス120からのマルチメディア・ファイルをアップロードおよびトランスコーディングし、トランスコーディングされたマルチメディア・ファイルを1つまたは複数のストレージ・システム174内で記憶するために1つまたは複数のトランスコーディング・サーバ172を備えるネットワーク・アドレス可能なコンピューティング・システムであってもよい。各トランスコーディング・サーバ172は、ユニフォーム・リソース・ロケータ(URL)、または他の任意の好適なネットワーク・アドレスを適宜備えるアドレスを有してもよい。限定するものとしてではなく一例として、マルチメディア・ファイルという用語は、デジタル・フォーマットで記憶された1つもしくは複数のビデオ・クリップ、1つもしくは複数の画像、または1つもしくは複数のオーディオ・クリップを指すことがある。各メディア・システム170は、たとえばデジタル・ビデオ・クリップ、デジタル画像もしくはデジタル・オーディオ・クリップ、またはデジタル・フォーマットで記憶されたビデオ・クリップ、画像、もしくはオーディオ・クリップなどマルチメディア・ファイルを獲得し、トランスコーディングし、記憶することができる。各メディア・システム170は、ネットワーク環境100の他の構成要素によって、直接、またはネットワーク160を通じてアクセスされてもよい。特定の実施形態では、各ユーザ110は、1つまたは複数のクライアント・コンピューティング・デバイス120を使用し、サービス・システム130またはメディア・システム170にアクセスし、そこへデータを送り、そこからデータを受信することができる。クライアント・コンピューティング・デバイス120は、サービス・システム130またはメディア・システム170に直接、ネットワーク160を通じて、またはサードパーティ・システムを通じてアクセスすることができる。限定するものとしてではなく一例として、クライアント・コンピューティング・デバイス120は、サービス・システム130を通じてメディア・システム170にアクセスすることもできる。クライアント・コンピューティング・デバイス120は、たとえばパーソナル・コンピュータ、ラップトップ・コンピュータ、セルラ電話、スマートフォン、デジタル・カメラ、またはタブレット・コンピュータなど、任意の好適なコンピューティング・デバイスであってよい。
【0014】
この開示は、任意の好適なネットワーク160を企図する。限定するものとしてではなく一例として、ネットワーク160の1または複数の部分は、アドホック・ネットワーク、イントラネット、エクストラネット、仮想プライベート・ネットワーク(VPN)、ローカル・エリア・ネットワーク(LAN)、無線LAN(WLAN)、ワイド・エリア・ネットワーク(WAN)、無線WAN(WWAN)、メトロポリタン・エリア・ネットワーク(MAN)、インターネットの一部分、公衆交換電話網(PSTN)の一部分、携帯電話ネットワーク、またはこれらの2以上の組合せを含んでもよい。ネットワーク160は、1または複数のネットワーク160を含んでもよい。 リンク150は、クライアント・コンピューティング・デバイス120、サービス・システム130、およびメディア・システム170を通信ネットワーク160に、または互いに接続することができる。この開示は、任意の好適なリンク150を企図する。特定の実施形態では、1または複数のリンク150は、1または複数の有線(たとえば、デジタル加入者線(DSL)またはDOCSIS(Data Over Cable Service Interface Specification)など)、無線(たとえば、WiMAX(Wi−FiまたはWorldwide interoperability for Microwave
Access)など)、または光(たとえば、同期光ネットワーク(SONET)または同期デジタル・ハイアラーキ(SDH)など)によるリンクを含む。特定の実施形態では、1または複数のリンク150は、それぞれ、アドホック・ネットワーク、イントラネット、エクストラネット、VPN、LAN、WLAN、WAN、WWAN、MAN、インターネットの一部分、PSTNの一部分、セルラ技術ベースのネットワーク、衛星通信技術ベースのネットワーク、別のリンク150、または2以上のそのようなリンク150の組合せを含む。リンク150は、必ずしもネットワーク環境100全体を通じて同じであることを必要としない。1または複数の第1のリンク150は、1または複数の点で1または複数の第2のリンク150と異なってもよい。
【0015】
図2は、クライアント・コンピューティング・デバイス120からショート・ビデオをアップロードおよびトランスコーディングするための例示的なシステム200を示す。特定の実施形態では、各クライアント・コンピューティング・デバイス120(またはクライアント・デバイス120)は、1つまたは複数の一体化されたカメラ、または1つまたは複数の外部カメラに対するインターフェースを含んでもよい。特定の実施形態では、各クライアント・デバイス120は、1つまたは複数のデジタル・カメラを含んでもよく、デジタル・カメラは、画像またはビデオをデジタル・フォーマットで記録または記憶するデバイスを指すことができる。特定の実施形態では、デジタル・カメラは、たとえば電荷結合素子(CCD)イメージ・センサ、または相補型金属酸化物半導体(CMOS)アクティブピクセル・センサなど、イメージ・センサを含んでもよい。特定の実施形態では、各クライアント・デバイス120は、音声を記録するために1つまたは複数のマイクロフォンを含んでもよい。本明細書では、「カメラ」という用語はデジタル・カメラを指すことができ、「ビデオ」という用語は、デジタル・ビデオ、またはデジタル・フォーマットで記録もしくは記憶されたビデオを指すことができ、デジタル・フォーマットは、限定するものではないが、MOTION PICTURE EXPERTS GROUP 4(MPEG−4)、MPEG−2、MPEG−1、WINDOWS(登録商標)MEDIA
VIDEO(WMV)、H.264、およびAdvanced Video Coding(AVC)を含んでもよい。本開示は、任意の好適な物理形態をとり、任意の好適なカメラおよび任意の好適なマイクロフォンを含む任意の好適なクライアント・デバイス120を企図する。
【0016】
特定の実施形態では、「ビデオ」という用語は、ビデオ記録の離散的なセクションまたは特定の長さを指すことができる。特定の実施形態では、ビデオは、たとえば記録の1回の開始(たとえば、「録画」ボタンを押すこと)と、それに続くその後の記録の1回の終了(たとえば、「停止」ボタンを押すこと)によるなど、1回の記録イベントで生じる記録されたビデオの任意の好適な長さを指すことができる。特定の実施形態では、ビデオは、任意の好適な組合せまたは一連の2以上のビデオ記録イベントを指すことができる。特定の実施形態では、ショート・ビデオ(またはショート・ビデオ・ファイルもしくはショート・マルチメディア・ファイル)は、約1秒、5秒、10秒、15秒、20秒、30秒、もしくは1分の持続時間、または任意の好適な持続時間を有してもよい。
【0017】
特定の実施形態では、画像フレームは、ビデオの1つの静止画像を指すことができ、ビデオは、共に組み合わされてビデオ記録を形成する1つまたは複数の画像フレームを含んでもよい。特定の実施形態では、ビデオは、1秒当たり約24フレーム(FPS)、25FPS、30FPSのフレーム・レート、または任意の好適なフレーム・レートを有してもよく、フレーム・レートは、記録または再生されている間の、ビデオの1秒当たりの静止画像またはビデオ・フレームの数を指すことができる。本開示は、特定の持続時間およびフレーム・レートを有し、1つまたは複数の記録イベントを含む特定のビデオについて述べ例示しているが、本開示は、任意の好適な数の記録イベントを含み、任意の好適な持続時間およびフレーム・レートを有する任意の好適なビデオを企図する。
【0018】
特定の実施形態では、ホスト・コンピューティング・サーバ132は、クライアント・デバイス120からアップロード要求を受信することができ、アップロード要求は、ショート・ビデオに関連付けられ得る。
図2の例では、クライアント・デバイス120は、ステップ250Aを通じて、アップロード要求をホスト・コンピューティング・サーバ132に送ることができ、この要求は、ビデオをアップロード、トランスコーディング、および記憶するための要求を含んでもよい。この要求の内容は、ビデオの説明、要求に関連付けられたサービスのタイプ、ショート・ビデオを符号化するために使用された元の符号化フォーマットの説明、クライアント・デバイスのネットワーク・アドレス、およびアップロードに関連付けられた1つまたは複数のポリシを備えることができる。
図2では、ホスト・コンピューティング・サーバ132は、アップロード要求プロセスを調整、管理、または指揮することができるが、ショート・ビデオのアップロードまたはトランスコーディングを実施しないことがある。
【0019】
特定の実施形態では、ホスト・コンピューティング・サーバ132は、アップロード要求に応答して、アップロード要求の要素を解析し、ショート・ビデオのアップロード要求に最良のサービスを提供し得る1つまたは複数のトランスコーディング・サーバ172の可用性をチェックすることができる。特定の実施形態では、ホスト・コンピューティング・サーバ132は、これらの要素を解析し、ショート・ビデオをアップロードまたはトランスコーディングするために、最適な標的符号化フォーマット、ショート・ビデオの標的符号化フォーマットおよび現在の符号化フォーマットに関連付けられたアルゴリズム・プロセス、ならびに1つまたは複数のタイプのトランスコーディング・サーバ172を決定することができる。この決定は、要求の1つまたは複数のセキュリティ面、アップロードされるビデオのサイズ、ビデオの再現に関連付けられた1つまたは複数の品質面、トランスコーディングのための推定処理時間、トランスコーディングされるビデオの推定サイズ、アップロードおよびトランスコーディングのための「タイムアウト」制限、ならびにストレージ・システム174の記憶容量を備える要素に依存し得る。
【0020】
他の形態の実施形態では、ホスト・コンピューティング・サーバ132は、各ビデオをトランスコーディングするために標準的な標的符号化フォーマット、および関連のアルゴリズム・プロセスを使用してもよい。標準的な標的符号化フォーマットは、クライアント・デバイス120からのビデオのサブセット、またはそれらのすべてを変換するために均一かつ一貫した符号化フォーマットが望ましいものであり得る場合、使用されてもよい。クライアント・デバイス120は標的符号化フォーマットをサポートしないことがあり、または、標的符号化フォーマットが、クライアント・デバイス120上でビデオおよび他のマルチメディア・ファイルを記憶するために使用された元の符号化フォーマットより適切なサポートされたフォーマットであることがある。特定の実施形態では、標的符号化フォーマットは、限定するものではないが圧縮性能、スケーラビリティ、使いやすさ、および費用対効果の点で、クライアント・デバイス120内にビデオおよび他のマルチメディア・ファイルを記憶するために使用された元の符号化フォーマットより優れていてもよい。
【0021】
アップロード要求の要素の解析が完了したら、ホスト・コンピューティング・サーバ132は、その後、アップロード要求を処理するために、複数の使用可能かつ適切なトランスコーディング・サーバ172を識別することができる。特定の実施形態では、ホスト・コンピューティング・サーバ172は、アップロード要求を処理するために、複数の使用可能かつ適切なトランスコーディング・サーバ172を選択するとき、負荷分散を実施することができる。特定の実施形態では、ホスト・コンピューティング・サーバ132は、クライアント・デバイス120がビデオをアップロードするために、識別された複数のトランスコーディング・サーバ172からトランスコーディング・サーバ172のランダムなサブセットをさらに選択することも、アルゴリズムに従ってサブセットを選択することもできる。特定の実施形態では、ホスト・コンピューティング・サーバ132は、トランスコーディング・サーバ172を能動的または受動的に識別および選択することができる。ホスト・コンピューティング・サーバ132は、識別および選択の1つの能動的な実施形態により、選択されたトランスコーディング・サーバのための「タイムアウト」制限が満了した場合、選択されたトランスコーディング・サーバ172の1つを別のものに置き換えることができる。識別および選択の1つの受動的な実施形態では、ホスト・コンピューティング・サーバ132は、クライアント・デバイス120から要求を受信しない限り、識別および選択されたトランスコーディング・サーバ172を変更しないことがある。
【0022】
特定の実施形態では、ホスト・コンピューティング・サーバ132は、アップロード要求に応答して、ステップ205Bを通じて、クライアント・デバイス120に返信を送ることができる。返信は、アップロードのためのジョブ構成情報、およびトランスコーディング・サーバ172に関連付けられたアドレスのリストを備えることができ、各トランスコーディング・サーバ172は、アップロード要求を処理するためにホスト・コンピューティング・サーバ132によって識別および選択されている。特定の実施形態では、ジョブ構成情報は、アップロードのための1つまたは複数のポリシを定義してもよく、これらのポリシは、限定するものではないがネットワークの上でのアップロード要求に対する認証および許可、アップロードされることになるビデオの識別、クライアント・デバイス120の識別、ビデオに関連付けられたユーザの識別、ビデオの持続時間(たとえば、15秒)、ビデオのサイズ(たとえば、10メガバイト)、ビデオについての時間制限、ビデオについてのサイズ制限、ビデオがどのフォーマットにあるかを示す標識、所望の標的符号化フォーマットを示す標識、標的トランスコーディング・プロセスを示す標識、ビデオに関連付けられたアクセス許可に関する条件、制約、および設定の概要を示し得る。
【0023】
特定の実施形態では、ジョブ構成情報は、1つまたは複数のトランスコーディング・サーバ172にアクセスするためにクライアント・デバイス120を識別および検証するための、またクライアント・デバイス120が所定の持続時間後、トランスコーディング・サーバ172にアクセスすることができないように、その後ジョブ構成情報が失効する、または無効になる失効時間を確立するためのアクセス・トークンをさらに備えることができる。限定するものとしてではなく一例として、ジョブ構成情報は、ホスト・コンピューティング・サーバ132からクライアント・デバイス120に送られた1時間後に失効してもよい。特定の実施形態では、返信、または返信のサブセットは、ホスト・コンピューティング・サーバ132とクライアント・デバイス120の間の共有鍵暗号化に基づいて暗号化されてもよい。他の実施形態では、ジョブ構成情報は、ホスト・コンピューティング・サーバ132と、1つまたは複数のトランスコーディング・サーバ172と、クライアント・デバイス120との間の共有鍵暗号化に基づいて暗号化されてもよい。
【0024】
特定の実施形態では、返信は、クライアント・デバイス120からトランスコーディング・サーバ172へのビデオのアップロード中に障害が生じた場合、フェールオーバを許可することができる。フェールオーバは、低レイテンシでユーザ110にとって透過的にアップロードの順調な速い再開を確実にし得る。特定の実施形態では、現在のジョブ構成情報が失効していない場合、クライアント・デバイス120は、所定の最大数の試行まで、アクセス・トークンを用いて、同じトランスコーディング・サーバ172に接触し、最後の状態からアップロードを再開しようと試みることができる。特定の実施形態では、現在のジョブ構成情報が失効した場合、または現在のトランスコーディング・サーバ172がアクセスに使用可能でない場合、クライアント・デバイス120は、同じアクセス・トークンを用いて、ジョブ構成情報からの異なるトランスコーディング・サーバ172に接触し、ビデオの始めからアップロードを再スタートしようと試みてもよい。特定の実施形態では、現在のジョブ構成情報が失効し、ジョブ構成情報からのすべてのトランスコーディング・サーバ172がアクセスに使用可能でない場合、クライアント・デバイス120は、ホスト・コンピューティング・サーバ132に新しいアップロード要求を送ってもよい。
【0025】
特定の実施形態では、クライアント・デバイス120は、アドレスの1つを選択し、ジョブ構成情報を、ステップ250Cを通じて、選択されたアドレスに関連付けられたトランスコーディング・サーバ172に送ることができる。特定の実施形態では、選択されたトランスコーディング・サーバ172は、ジョブ構成情報を受信したとき、含まれているアクセス・トークンが有効であるかどうか決定することができる。アクセス・トークンが有効である場合、続いて、選択されたトランスコーディング・サーバ172は、ジョブ構成情報内に記憶された1つまたは複数のポリシに従って、クライアント・デバイス120へのアクセスを認めてもよい。特定の実施形態では、アップロード・モジュール210が、アップロードをバッファしアップロードをネットワーク切断から再開することに対処する既存の通信プロトコルを使用することができる。他の特定の実施形態では、通信プロトコルは、アップロード要求の1つまたは複数の要素によって予め決定されてもよい。限定するものとしてではなく例として、データのアップロードを管理するために使用される通信プロトコルは、伝送制御プロトコル(TCP)、ユーザ・データグラム・プロトコル(UDP)、ファイル転送プロトコル(FTP)、簡易メール転送プロトコル(SMTP)、およびハイパーテキスト転送プロトコル・セキュア(HTTPS)を含んでもよい。
【0026】
特定の実施形態では、クライアント・デバイス120は、そのサイズが現在のネットワーク・データ転送速度に基づいて自動的に調整されるチャンクでビデオをアップロードしてもよい。クライアント・デバイス120とトランスコーディング・サーバ172の間での、データ・アップロードのためのチャンクのこの自動サイズ決定は、ビデオの高速、確実、かつ順調なアップロード、およびネットワーク切断から回復する間の低オーバーヘッド・トラフィックを可能にする助けとなる。具体的には、限定するものとしてではなく一例として、アップロードに伴うネットワーク処理コストは、ネットワーク・データ転送速度が増大するにつれて、アップロードされたビデオを転送するために必要とされるチャンクの総数が減少するので、低減され得る。特定の実施形態では、各チャンクのサイズは、クライアント・デバイス120またはトランスコーディング・サーバ172によって決定されてもよく、限定するものではないが通信プロトコル、現在のアップロード速度、オーバーヘッド再開トラフィックの所望の持続時間、ネットワーク処理コスト、およびリンク150の通信帯域幅を含む要因に依存し得る。限定するものとしてではなく一例として、アップロードされることになる次のチャンクのサイズは、オーバーヘッド再開トラフィックの所望の持続時間と現在のアップロード速度の積によって決定され得る。限定するものとしてではなく例として、アップロード・モジュール210は、NGINX、Apache HTTP Server、Apache Tomcat、およびTiny−Turbo−Throttling HTTP Server(THTTPD)を含んでもよい。
【0027】
特定の実施形態では、アップロードが完了した後で、トランスコーダ・モジュール220がショート・ビデオをその元の符号化デジタル・フォーマットから、限定するものではないがH.264、高効率ビデオコーディング(HEVC)、およびH.264/MPEG−4 AVCを含んでもよい標的符号化デジタル・フォーマットに変換することができる。トランスコーディングは、セキュリティのために、クライアント側ではなくサーバ側で実施される。さらに、トランスコーダ・モジュール220へのソフトウェア・アップロードは、新しいソフトウェア・バージョンがクライアント・デバイス120にダウンロードされなくてもよいので、サーバ側からより容易に実装することができ、これは、既存のクライアント・デバイス120に対するサポート、およびクライアント・デバイス120の新しいバージョンをサポートするための修正をより容易にする。トランスコーダ・モジュール220をクライアント・デバイス120ではなくトランスコーディング・サーバ172内に実装することにより、サービスもまた、標的符号化フォーマットおよびジョブ構成をより効率的に制御および修正することができる。限定するものとしてではなく例として、トランスコーダ・モジュール220は、FFMPEG、Dr.DivX、およびMEncoderを含んでもよい。
【0028】
特定の実施形態では、トランスコーディング・サーバ172は、トランスコーディング・プロセスが完了したとき、トランスコーディングされたファイルを、ステップ250Dを通じて、1つまたは複数の結合されたストレージ・システム174内で記憶することができる。限定するものとしてではなく例として、ストレージ・システム174は、1つまたは複数の冗長ハード・ドライブ、および1つまたは複数の冗長フラッシュ・ドライブを含んでもよい。
【0029】
特定の実施形態では、トランスコーディング・サーバ172は、ビデオのアップロード、トランスコーディング、およびトランスコーディング済みとしてストレージ・システム174上での記憶が完了したとき、ジョブ応答を、ステップ250Eを通じてクライアント・デバイス120に送ることができる。特定の実施形態では、ジョブ応答は、アップロードの完了を示す1つまたは複数のパラメータを含んでもよく、これらのパラメータは、限定するものではないが、トランスコーディングされたビデオの識別、クライアント・デバイス120の識別、ビデオに関連付けられた1人または複数のユーザの識別、トランスコーディングされたビデオのサイズ(たとえば、10メガバイト)、ビデオがどの最終的な符号化フォーマットにあるかを示す標識、記憶されたビデオの場所の識別、およびビデオに関連付けられた1つまたは複数のセキュリティ・ポリシを含んでもよい。
【0030】
特定の実施形態では、クライアント・デバイス120は、トランスコーディング・サーバ172からジョブ応答を受信したとき、ステップ250Fを通じてジョブ応答をホスト・コンピューティング・サーバ132に転送することができ、ジョブの完了を示し、選択されたトランスコーディング・サーバ172を他のメディア・ジョブのために使用可能にする。
【0031】
図2は、マルチメディア・ファイルの特定の例としてショート・ビデオを示しているが、本開示は、限定するものではないがショート・オーディオ・クリップまたは小さい画像を備える任意の他の好適なタイプのマルチメディア・ファイルを企図する。特定の実施形態では、マルチメディア・ファイルは、マルチメディア・ビデオ・クリップ、マルチメディア画像、デジタル・ビデオ・クリップ、ビデオ・クリップ、またはビデオとも呼ばれることがある。特定の実施形態では、マルチメディア・ファイルは、連続する画像の形態にあるビデオ、オーディオ・ファイルの形態にある音声記録、ビデオとオーディオの組合せ、または任意の好適なメディアの任意の好適な組合せを含んでもよい。デジタル・カメラを含むクライアント・デバイス120を使用し、マルチメディア・ファイルを記録することができる。
図2は、特定のステップ250A〜Fでリンク150を通じて、特定の順序で行われる、クライアント・デバイス120からマルチメディア・ファイルをアップロードおよびトランスコーディングするための例示的なシステムについて述べ例示しているが、本開示は、リンク150を通じて任意の好適な順序で行われる、システムに関連付けられた任意の好適なステップ250A〜Fを企図する。さらに、本開示は、
図2のシステムの特定のステップ250A〜Fを含む、クライアント・デバイス120からショート・ビデオをアップロードおよびトランスコーディングする例示的な方法について述べ例示しているが、本開示は、適宜、
図2のシステムのステップ250A〜Fのすべて、一部を含むことも、どれも含まないこともある任意の好適なステップを含む、クライアント・デバイス120からショート・ビデオをアップロードおよびトランスコーディングするための任意の好適な方法を企図する。さらに、本開示は、
図2のシステムの特定のステップ250A〜Fを実施する特定の構成要素、デバイス、またはシステムについて述べ例示しているが、本開示は、
図2のシステムの任意の好適なステップを実施する任意の好適な構成要素、デバイス、またはシステムの任意の好適な組合せを企図する。限定するものとしてではなく一例として、トランスコーディング・サーバ172は、ビデオをストレージ・システム174内で記憶する前に(ステップ250D)、またファイルをトランスコーディングすることが完了したことに続いて、ジョブ応答をクライアント・デバイス120に送ってもよい(ステップ250E)。
【0032】
図3は、マルチメディア・ファイルをアップロードするためにクライアント・コンピューティング・デバイスと通信するホスト・コンピューティング・サーバの例示的なフローチャートを示す。この方法は、ホスト・コンピューティング・サーバ132が、クライアント・デバイス120からマルチメディア・ファイルをサービスにアップロードするための要求を、クライアント・デバイス120から受信するステップ310で始まることができる。限定するものとしてではなく一例として、マルチメディア・ファイルという用語は、デジタル・フォーマットで記憶された1つもしくは複数のビデオ・クリップ、1つもしくは複数の画像、または1つもしくは複数のオーディオ・クリップを指すことがある。特定の実施形態では、マルチメディア・ファイルは、連続する画像の形態にあるビデオ、オーディオ・ファイルの形態にある音声記録、ビデオとオーディオの組合せ、または任意の好適なメディアの任意の好適な組合せを含んでもよい。デジタル・カメラを含むクライアント・デバイス120を使用し、マルチメディア・ファイルを記録することができる。この要求の内容は、マルチメディア・ファイルのタイプの説明、マルチメディア・ファイルを符号化するために使用された元の符号化フォーマットの説明、要求に関連付けられたサービスのタイプ、クライアント・デバイスのネットワーク・アドレス、およびアップロードに関連付けられた1つまたは複数のポリシを備えることができる。
【0033】
ステップ320では、ホスト・コンピューティング・サーバ132は、その要求のための1つまたは複数のトランスコーディング・サーバを決定することができる。ホスト・コンピューティング・サーバ132は、クライアント・コンピューティング・デバイス120から受信されたアップロード要求を解析し、アップロード要求を最もよく処理するためのトランスコーディング・サーバ172を識別することができる。特定の実施形態では、ホスト・コンピューティング・サーバ132は、マルチメディア・ファイルをアップロードまたはトランスコーディングするために、アップロード要求を解析し、最適な標的符号化フォーマット、マルチメディア・ファイルの標的符号化フォーマットおよび現在の符号化フォーマットに関連付けられたアルゴリズム・プロセス、ならびに1つまたは複数のタイプのトランスコーディング・サーバ172を決定することができる。この決定は、要求の1つまたは複数のセキュリティ面、マルチメディア・コンテンツのタイプ、マルチメディア・ファイルのサイズ、マルチメディア・ファイルの再現に関連付けられた1つまたは複数の品質面、トランスコーディングのための推定処理時間、トランスコーディングされるマルチメディア・ファイルの推定サイズ、アップロードおよびトランスコーディングのための「タイムアウト」制限、ならびにストレージ・システム174の記憶容量を備える要素に依存し得る。
【0034】
他の形態の実施形態では、ホスト・コンピューティング・サーバ132は、各マルチメディアをトランスコーディングするために標準的な標的符号化フォーマット、および関連のアルゴリズム・プロセスを使用してもよい。標準的な標的符号化フォーマットは、クライアント・デバイス120からのマルチメディア・ファイルのサブセット、マルチメディア・ファイル全体、またはあるタイプのマルチメディア・ファイルを変換するために均一かつ一貫した符号化フォーマットが望ましいものであり得る場合、使用されてもよい。クライアント・デバイス120は標的符号化フォーマットをサポートしないことがあり、または、標的符号化フォーマットが、クライアント・デバイス120上でビデオおよび他のマルチメディア・ファイルを記憶するために使用された元の符号化フォーマットより適切なサポートされたフォーマットであることがある。特定の実施形態では、標的符号化フォーマットは、限定するものではないが圧縮性能、スケーラビリティ、使いやすさ、および費用対効果の点で、クライアント・デバイス120内にマルチメディア・ファイルを記憶するために使用された元の符号化フォーマットより優れていてもよい。
【0035】
アップロード要求の要素の解析が完了したら、ホスト・コンピューティング・サーバ132は、その後、アップロード要求を処理するために、複数の使用可能かつ適切なトランスコーディング・サーバ172を識別することができる。特定の実施形態では、ホスト・コンピューティング・サーバ132は、識別された複数のトランスコーディング・サーバ172からトランスコーディング・サーバ172のランダムなサブセットを選択することも、アルゴリズムに従ってサブセットを選択することもできる。ステップ330では、ホスト・コンピューティング・サーバ132は、アップロードのためのジョブ構成情報と、トランスコーディング・サーバ172のアドレスのリストとを備える返信をクライアント・コンピューティング・デバイス120に送る。特定の実施形態では、ジョブ構成情報は、アップロードのための1つまたは複数のポリシを定義してもよく、これらのポリシは、限定するものではないがネットワークの上でのアップロード要求に対する認証および許可、アップロードされることになるマルチメディア・ファイルの識別、クライアント・デバイス120の識別、マルチメディア・ファイルに関連付けられたユーザの識別、マルチメディア・ファイルのサイズ(たとえば、10メガバイト)、マルチメディア・ファイルについてのサイズ限界、マルチメディア・ファイルがどのフォーマットにあるかを示す標識、所望の標的符号化フォーマットを示す標識、標的トランスコーディング・プロセスを示す標識、マルチメディア・ファイルに関連付けられたアクセス許可に関する条件、制約、および設定の概要を示し得る。
【0036】
特定の実施形態では、ジョブ構成情報は、1つまたは複数のトランスコーディング・サーバ172にアクセスするためにクライアント・デバイス120を識別および検証するための、またクライアント・デバイス120が所定の持続時間後、トランスコーディング・サーバ172にアクセスすることができないように、その後ジョブ構成情報が失効する、または無効になる失効時間を確立するためのアクセス・トークンをさらに備えることができる。限定するものとしてではなく一例として、ジョブ構成情報は、ホスト・コンピューティング・サーバ132からクライアント・デバイス120に送られた1時間後に失効してもよい。特定の実施形態では、返信、または返信のサブセットは、ホスト・コンピューティング・サーバ132とクライアント・デバイス120の間の共有鍵暗号化に基づいて暗号化されてもよい。他の実施形態では、ジョブ構成情報は、ホスト・コンピューティング・サーバ132と、1つまたは複数のトランスコーディング・サーバ172と、クライアント・デバイス120との間の共有鍵暗号化に基づいて暗号化されてもよい。
【0037】
特定の実施形態では、返信は、クライアント・デバイス120からトランスコーディング・サーバ172へのマルチメディア・ファイルのアップロード中に障害が生じた場合、フェールオーバを許可することができる。フェールオーバは、低レイテンシでユーザ110にとって透過的にアップロードの順調な速い再開を確実にし得る。特定の実施形態では、現在のジョブ構成情報が失効していない場合、クライアント・デバイス120は、所定の最大数の試行まで、アクセス・トークンを用いて、同じトランスコーディング・サーバ172に接触し、最後の状態からアップロードを再開しようと試みることができる。特定の実施形態では、現在のジョブ構成情報が失効した場合、または現在のトランスコーディング・サーバ172がアクセスに使用可能でない場合、クライアント・デバイス120は、同じアクセス・トークンを用いて、ジョブ構成情報からの異なるトランスコーディング・サーバ172に接触し、マルチメディア・ファイルの始めからアップロードを再スタートしようと試みてもよい。特定の実施形態では、現在のジョブ構成情報が失効し、ジョブ構成情報からのすべてのトランスコーディング・サーバ172がアクセスに使用可能でない場合、クライアント・デバイス120は、ホスト・コンピューティング・サーバ132に新しいアップロード要求を送ってもよい。
【0038】
ステップ340では、ホスト・コンピューティング・サーバ132は、アップロードに成功したことを示すジョブ応答をクライアント・コンピューティング・デバイス120から受信し、この時点で、方法は終了してもよい。特定の実施形態では、ジョブ応答は、アップロードの完了を示す1つまたは複数のパラメータを含んでもよく、これらのパラメータは、限定するものではないが、トランスコーディングされたマルチメディア・ファイルの識別、クライアント・デバイス120の識別、マルチメディア・ファイルに関連付けられた1人または複数のユーザの識別、トランスコーディングされたマルチメディア・ファイルのサイズ(たとえば、10メガバイト)、マルチメディア・ファイルがどの最終的な符号化フォーマットにあるかを示す標識、記憶されたマルチメディア・ファイルの場所の識別、およびマルチメディア・ファイルに関連付けられた1つまたは複数のセキュリティ・ポリシを含んでもよい。特定の実施形態では、また、ジョブ応答は、選択されたトランスコーディング・サーバ172を他のメディア・ジョブのために使用可能にする。
【0039】
特定の実施形態は、適宜、
図3の方法の1つまたは複数のステップを繰り返すことがある。本開示は、
図3の方法の特定のステップを特定の順序で行われるものとして述べ例示しているが、本開示は、任意の好適な順序で行われる
図3の方法の任意の好適なステップを企図する。さらに、本開示は、
図3の方法の特定のステップを含む、マルチメディア・ファイルをアップロードするためにホスト・コンピューティング・サーバ132がクライアント・コンピューティング・デバイス120と通信するための例示的な方法について述べ例示しているが、本開示は、適宜、
図3の方法のステップのすべて、一部を含むことも、どれも含まないこともある任意の好適なステップを含む、マルチメディア・ファイルをアップロードするためにホスト・コンピューティング・サーバ132がクライアント・コンピューティング・デバイス120と通信するための任意の好適な方法を企図する。さらに、本開示は、
図3の方法の特定のステップを実施する特定の構成要素、デバイス、またはシステムについて述べ例示しているが、本開示は、
図3の方法の任意の好適なステップを実施する任意の好適な構成要素、デバイス、またはシステムの任意の好適な組合せを企図する。
【0040】
図4は、マルチメディア・ファイルをアップロード、符号化、および記憶するためにクライアント・コンピューティング・デバイスと通信するトランスコーディング・サーバの例示的なデシジョン・フローチャートを示す。この方法は、トランスコーディング・サーバ172が、マルチメディア・ファイルをアップロードするためのジョブ構成情報をクライアント・コンピューティング・デバイス120から受信するステップ410で始まることができる。ジョブ構成情報は、1つまたは複数のトランスコーディング・サーバ172にアクセスするためにクライアント・デバイス120を識別および検証するための、またクライアント・デバイス120が所定の持続時間後、トランスコーディング・サーバ172にアクセスすることができないように、その後ジョブ構成情報が失効する、または無効になる失効時間を確立するためのアクセス・トークンをさらに備えることができる。
【0041】
ステップ420では、トランスコーディング・サーバ172は、アクセス・トークンが有効であるかを決定することができる。アクセス・トークンが有効でない場合、トランスコーディング・サーバ172は、ステップ470に従って、アップロードに対するエラー応答をクライアント・コンピューティング・デバイス120に送る。特定の実施形態では、エラー応答は、クライアント・コンピューティング・デバイス120がマルチメディア・ファイルをアップロードするために異なるトランスコーディング・サーバ172に接触すること、または新しいアップロード要求をホスト・コンピューティング・サーバ132に送ることを可能にし得る。
【0042】
アクセス・トークンが有効である場合、トランスコーディング・サーバ172は、ステップ430に従って、マルチメディア・ファイルをクライアント・コンピューティング・デバイス120から受信する。特定の実施形態では、トランスコーディング・サーバ172のアップロード・モジュール210が、アップロードをバッファしアップロードをネットワーク切断から再開することに対処する既存の通信プロトコルを使用することができる。他の特定の実施形態では、通信プロトコルは、アップロード要求の1つまたは複数の要素によって予め決定されてもよい。限定するものとしてではなく例として、データのアップロードを管理するために使用される通信プロトコルは、伝送制御プロトコル(TCP)、ユーザ・データグラム・プロトコル(UDP)、ファイル転送プロトコル(FTP)、簡易メール転送プロトコル(SMTP)、およびハイパーテキスト転送プロトコル・セキュア(HTTPS)を含んでもよい。
【0043】
特定の実施形態では、クライアント・デバイス120は、そのサイズが現在のネットワーク・データ転送速度に基づいて自動的に調整されるチャンクでマルチメディア・ファイルをアップロードしてもよい。クライアント・デバイス120とトランスコーディング・サーバ172の間での、データ・アップロードのためのチャンクのこの自動サイズ決定は、マルチメディア・ファイルの高速、確実、かつ順調なアップロード、およびネットワーク切断から回復する間の低オーバーヘッド・トラフィックを可能にする助けとなる。具体的には、限定するものとしてではなく一例として、アップロードに伴うネットワーク処理コストは、ネットワーク・データ転送速度が増大するにつれて、アップロードされたマルチメディア・ファイルを転送するために必要とされるチャンクの総数が減少するので、低減され得る。特定の実施形態では、各チャンクのサイズは、クライアント・デバイス120またはトランスコーディング・サーバ172によって決定されてもよく、限定するものではないが通信プロトコル、現在のアップロード速度、オーバーヘッド再開トラフィックの所望の持続時間、ネットワーク処理コスト、およびリンク150の通信帯域幅を含む要因に依存し得る。限定するものとしてではなく一例として、アップロードされることになる次のチャンクのサイズは、オーバーヘッド再開トラフィックの所望の持続時間と現在のアップロード速度の積によって決定され得る。限定するものとしてではなく例として、アップロード・モジュール210は、NGINX、Apache HTTP Server、Apache Tomcat、およびTiny−Turbo−Throttling HTTP Server(THTTPD)を含んでもよい。
【0044】
ステップ440では、トランスコーディング・サーバ172は、マルチメディア・ファイルをトランスコーディングする。特定の実施形態では、トランスコーディング・サーバ172のトランスコーダ・モジュール220が、マルチメディア・ファイルを、その元の符号化デジタル・フォーマットから、マルチメディア・ファイルのタイプに依存する標的符号化デジタル・フォーマットに変換することができる。ファイルがビデオを備える場合、標的符号化デジタル・フォーマットは、限定するものではないがH.264、高効率ビデオコーディング(HEVC)、H.264/MPEG−4 AVC、および知的所有権のあるフォーマットを含んでもよい。ファイルがオーディオ・ストリームを備える場合、標的符号化デジタル・フォーマットは、限定するものではないがMoving Picture Experts Group(MPEG4)、Real、MP3、Advanced Audio Coding(AAC)、および知的所有権のあるフォーマットを含んでもよい。ファイルが1つまたは複数の画像を備える場合、標的符号化デジタル・フォーマットは、限定するものではないが、Tagged Image File Format(TIFF)、Joint Photographic Expert Group(JPEG)、JPEG2000、および知的所有権のあるフォーマットを含んでもよい。トランスコーディングは、セキュリティのために、クライアント側ではなくサーバ側で実施される。さらに、トランスコーダ・モジュール220へのソフトウェア・アップロードは、新しいソフトウェア・バージョンがクライアント・デバイス120にダウンロードされなくてもよいので、サーバ側からより容易に実装することができ、これは、既存のクライアント・デバイス120に対するサポート、およびクライアント・デバイス120の新しいバージョンをサポートするための修正をより容易にする。トランスコーダ・モジュール220をクライアント・デバイス120ではなくトランスコーディング・サーバ172内に実装することにより、サービスもまた、標的符号化フォーマットおよびジョブ構成をより効率的に制御および修正することができる。限定するものとしてではなく例として、トランスコーダ・モジュール220は、FFMPEG、Dr.DivX、およびMEncoderを含んでもよい。
【0045】
ステップ450では、トランスコーディング・サーバ172は、トランスコーディングされたマルチメディア・ファイルを1つまたは複数のストレージ・システム174内に記憶する。限定するものとしてではなく例として、ストレージ・システム174は、1つまたは複数の冗長ハード・ドライブ、および1つまたは複数の冗長フラッシュ・ドライブを含んでもよい。
【0046】
ステップ460では、トランスコーディング・サーバ172は、アップロードの完了を示すジョブ応答をクライアント・コンピューティング・デバイス120に送り、この時点で、方法は終了してもよい。特定の実施形態では、ジョブ応答、または応答のサブセットは、ホスト・コンピューティング・サーバ132と、クライアント・デバイス120と、トランスコーディング・サーバ172との間の共有鍵暗号化に基づいて暗号化されてもよい。特定の実施形態では、また、ジョブ応答は、それ自体を他のメディア・ジョブのために使用可能にする。
【0047】
特定の実施形態は、適宜、
図4の方法の1つまたは複数のステップを繰り返すことがある。本開示は、
図4の方法の特定のステップを特定の順序で行われるものとして述べ例示しているが、本開示は、任意の好適な順序で行われる
図4の方法の任意の好適なステップを企図する。さらに、本開示は、
図4の方法の特定のステップを含む、マルチメディア・ファイルをアップロード、符号化、および記憶するためにクライアント・コンピューティング・デバイス120と通信するトランスコーディング・サーバ172のための例示的な方法について述べ例示しているが、本開示は、適宜、
図4の方法のステップのすべて、一部を含むことも、どれも含まないこともある任意の好適なステップを含む、マルチメディア・ファイルをアップロード、符号化、および記憶するためにクライアント・コンピューティング・デバイス120と通信するトランスコーディング・サーバ172のための任意の好適な方法を企図する。さらに、本開示は、
図4の方法の特定のステップを実施する特定の構成要素、デバイス、またはシステムについて述べ例示しているが、本開示は、
図4の方法の任意の好適なステップを実施する任意の好適な構成要素、デバイス、またはシステムの任意の好適な組合せを企図する。
【0048】
図5は、例示的なコンピュータ・システム500を示す。特定の実施形態では、1または複数のコンピュータ・システム500は、本明細書に記載され、または示されている1または複数の方法の1または複数のステップを実施する。特定の実施形態では、1または複数のコンピュータ・システム500は、本明細書に記載され、または示されている機能を提供する。特定の実施形態では、1または複数のコンピュータ・システム500上で動作するソフトウェアは、本明細書に記載され、または示されている1または複数の方法の1または複数のステップを実施し、または本明細書に記載され、または示されている機能を提供する。特定の実施形態は、1または複数のコンピュータ・システム500の1または複数の部分を含む。本明細書では、コンピュータ・システムに言及することは、適切な場合、コンピューティング・デバイスを含んでもよく、逆も同様である。さらに、コンピュータ・システムに言及することは、適切な場合、1または複数のコンピュータ・システムを含んでもよい。
【0049】
この開示は、任意の好適な数のコンピュータ・システム500を企図する。この開示は、任意の好適な物理形態をとるコンピュータ・システム500を企図する。限定するものとしてではなく一例として、コンピュータ・システム500は、組込みコンピュータ・システム、システム・オン・チップ(SOC)、シングルボード・コンピュータ・システム(SBC)(たとえば、コンピュータ・オン・モジュール(COM)またはシステム・オン・モジュール(SOM)など)、デスクトップ・コンピュータ・システム、ラップトップもしくはノートブック・コンピュータ・システム、対話キオスク、メインフレーム、コンピュータ・システムのメッシュ、移動電話、携帯情報端末(PDA)、サーバ、タブレット・コンピュータ・システム、またはこれらの2以上の組合せであってよい。適切な場合、コンピュータ・システム500は、1または複数のコンピュータ・システム500を含んでもよく、一元的なものであっても分散型であってもよく、複数のロケーションに跨ってもよく、複数のマシンに跨ってもよく、複数のデータセンタに跨ってもよく、クラウド内にあってもよく、クラウドは、1または複数のネットワーク内で1または複数のクラウド構成要素を含んでもよい。適切な場合、1または複数のコンピュータ・システム500は、実質的な空間的または時間的制限なしに、本明細書に記載され、または示されている1または複数の方法の1または複数のステップを実施してもよい。限定するものとしてではなく一例として、1つまたは複数のコンピュータ・システム500は、リアルタイムで、またはバッチ・モードで、本明細書に記載され、または示されている1または複数の方法の1または複数のステップを実施してもよい。1または複数のコンピュータ・システム500は、適切な場合、異なる時に、または異なるロケーションで、本明細書に記載され、または示されている1または複数の方法の1または複数のステップを実施してもよい。
【0050】
特定の実施形態では、コンピュータ・システム500は、プロセッサ502、メモリ504、ストレージ506、入力/出力(I/O)インターフェース508、通信インターフェース510、およびバス512を含む。この開示は、特定の数の特定の構成要素を特定の構成で有する特定のコンピュータ・システムについて記載し示しているが、この開示は、任意の好適な数の任意の好適な構成要素を任意の好適な構成で有する任意の好適なコンピュータ・システムを企図する。
【0051】
特定の実施形態では、プロセッサ502は、コンピュータ・プログラムを構成するものなど命令を実行するためのハードウェアを含む。限定するものとしてではなく一例として、命令を実行するために、プロセッサ502は、内部レジスタ、内部キャッシュ、メモリ504、またはストレージ506から命令を取り出し(またはフェッチし)、それらをデコードおよび実行し、次いで、1または複数の結果を内部レジスタ、内部キャッシュ、メモリ504、またはストレージ506に書き込むことができる。特定の実施形態では、プロセッサ502は、データ、命令、またはアドレス用に1または複数の内部キャッシュを含んでもよい。この開示は、適切な場合、任意の好適な数の任意の好適な内部キャッシュを含むプロセッサ502を企図する。限定するものとしてではなく一例として、プロセッサ502は、1または複数の命令キャッシュ、1または複数のデータ・キャッシュ、および1または複数の変換索引バッファ(TLB)を含んでもよい。命令キャッシュ内の命令は、メモリ504またはストレージ506内の命令のコピーであってもよく、命令キャッシュは、プロセッサ502によるこれらの命令の取り出しを高速化することができる。データ・キャッシュ内のデータは、プロセッサ502にて実行される命令が操作するための、メモリ504またはストレージ506内のデータのコピー、プロセッサ502で実行される後続の命令によるアクセスための、またはメモリ504もしくはストレージ506に書き込むための、プロセッサ502で実行された以前の命令の結果、あるいは他の好適なデータであってもよい。データ・キャッシュは、プロセッサ502による読出しまたは書込み動作を高速化することができる。TLBは、プロセッサ502のために仮想アドレス変換を高速化することができる。特定の実施形態では、プロセッサ502は、データ、命令、またはアドレス用に1または複数の内部レジスタを含むことができる。この開示は、適切な場合、任意の好適な数の任意の好適な内部レジスタを含むプロセッサ502を企図する。適切な場合、プロセッサ502は、1または複数の算術論理演算ユニット(ALU)を含むことができ、マルチコア・プロセッサであってもよく、1または複数のプロセッサ502を含んでもよい。この開示は、特定のプロセッサについて記載し示しているが、この開示は、任意の好適なプロセッサを企図する。
【0052】
特定の実施形態では、メモリ504は、プロセッサ502が実行するための命令、またはプロセッサ502が操作するためのデータを記憶するための主記憶装置を含む。限定するものとしてではなく一例として、コンピュータ・システム500は、ストレージ506または別のソース(たとえば、別のコンピュータ・システム500など)からメモリ504に命令をロードすることができる。次いで、プロセッサ502は、メモリ504から内部レジスタまたは内部キャッシュに命令をロードすることができる。命令を実行するために、プロセッサ502は、内部レジスタまたは内部キャッシュから命令を取り出し、それらをデコードすることができる。命令の実行中、または実行後、プロセッサ502は、1または複数の結果(中間結果であることも最終結果であることもある)を内部レジスタまたは内部キャッシュに書き込むことができる。次いで、プロセッサ502は、それらの結果の1または複数をメモリ504に書き込むことができる。特定の実施形態では、プロセッサ502は、1もしくは複数の内部レジスタもしくは内部キャッシュ内、または(ストレージ506もしくは他の場所ではなく)メモリ504内の命令だけを実行し、1もしくは複数の内部レジスタもしくは内部キャッシュ内、または(ストレージ506もしくは他の場所ではなく)メモリ504内のデータだけを操作する。1または複数のメモリ・バス(それぞれがアドレス・バスとデータ・バスを含むことがある)がプロセッサ502をメモリ504に結合してもよい。バス512は、下記に記載されているように、1または複数のメモリ・バスを含んでもよい。特定の実施形態では、1または複数のメモリ管理ユニット(MMU)が、プロセッサ502とメモリ504の間にあり、プロセッサ502によって要求されるメモリ504へのアクセスを容易にする。特定の実施形態では、メモリ504は、ランダム・アクセス・メモリ(RAM)を含む。このRAMは、適切な場合、揮発性メモリであり得る。適切な場合、このRAMは、ダイナミックRAM(DRAM)またはスタティックRAM(SRAM)であってよい。さらに、適切な場合、このRAMは、シングルポート型またはマルチポート型RAMであってよい。この開示は、任意の好適なRAMを企図する。メモリ504は、適切な場合、1または複数のメモリ504を含んでもよい。この開示は、特定のメモリについて記載し示しているが、この開示は、任意の好適なメモリを企図する。
【0053】
特定の実施形態では、ストレージ506は、データまたは命令用のマス・ストレージを含む。限定するものとしてではなく一例として、ストレージ506は、ハード・ディスク・ドライブ(HDD)、フロッピー(登録商標)ディスク・ドライブ、フラッシュ・メモリ、光ディスク、光磁気ディスク、磁気テープ、もしくはユニバーサル・シリアル・バス(USB)ドライブ、またはこれらの2以上の組合せを含んでもよい。ストレージ506は、適切な場合、取外し式または非取外し式(または固定)媒体を含んでもよい。ストレージ506は、適切な場合、コンピュータ・システム500に内蔵されていても外部にあってもよい。特定の実施形態では、ストレージ506は、不揮発性のソリッドステート・メモリである。特定の実施形態では、ストレージ506は、読出し専用メモリ(ROM)を含む。適切な場合、このROMは、マスクプログラムされたROM、プログラム可能ROM(PROM)、消去可能PROM(EPROM)、電気的消去可能PROM(EEPROM)、電気的書き換え可能ROM(EAROM)、もしくはフラッシュ・メモリ、またはこれらの2以上の組合せであってよい。この開示は、任意の好適な物理形態をとるマス・ストレージ506を企図する。ストレージ506は、適切な場合、プロセッサ502とストレージ506の間の通信を容易にする1または複数のストレージ制御ユニットを含んでもよい。適切な場合、ストレージ506は、1または複数のストレージ506を含んでもよい。この開示は、特定のストレージについて記載し示しているが、この開示は、任意の好適なストレージを企図する。
【0054】
特定の実施形態では、I/Oインターフェース508は、コンピュータ・システム500と1または複数のI/Oデバイスとの間の通信のために1または複数のインターフェースを提供するハードウェア、ソフトウェア、またはその両方を含む。コンピュータ・システム500は、適切な場合、これらのI/Oデバイスの1または複数を含んでもよい。これらのI/Oデバイスの1または複数は、人とコンピュータ・システム500の間の通信を可能にすることができる。限定するものとしてではなく一例として、I/Oデバイスは、キーボード、キーパッド、マイクロフォン、モニタ、マウス、プリンタ、スキャナ、スピーカ、スチル・カメラ、スタイラス、タブレット、タッチ・スクリーン、トラックボール、ビデオ・カメラ、別の好適なI/Oデバイス、またはこれらの2以上の組合せを含んでもよい。I/Oデバイスは、1または複数のセンサを含んでもよい。この開示は、任意の好適なI/Oデバイス、およびそれらのための任意の好適なI/Oインターフェース508を企図する。適切な場合、I/Oインターフェース508は、プロセッサ502がこれらのI/Oデバイスの1または複数を駆動することを可能にする1または複数のデバイスまたはソフトウェア・ドライバを含むことができる。I/Oインターフェース508は、適切な場合、1または複数のI/Oインターフェース508を含んでもよい。この開示は、特定のI/Oインターフェースについて記載し示しているが、この開示は、任意の好適なI/Oインターフェースを企図する。
【0055】
特定の実施形態では、通信インターフェース510は、コンピュータ・システム500と1もしくは複数の他のコンピュータ・システム500または1もしくは複数のネットワークとの間の通信(たとえば、パケットベースの通信など)のために1または複数のインターフェースを提供するハードウェア、ソフトウェア、またはその両方を含む。限定するものとしてではなく一例として、通信インターフェース510は、イーサーネット(登録商標)もしくは他の有線ベースのネットワークとの通信のためのインターフェース・コントローラ(NIC)もしくはネットワーク・アダプタ、またはWI−FIネットワークなど無線ネットワークとの通信のための無線NIC(WNIC)もしくは無線アダプタを含んでもよい。この開示は、任意の好適なネットワーク、およびそのための任意の好適な通信インターフェース510を企図する。限定するものとしてではなく一例として、コンピュータ・システム500は、アドホック・ネットワーク、パーソナル・エリア・ネットワーク(PAN)、ローカル・エリア・ネットワーク(LAN)、ワイド・エリア・ネットワーク(WAN)、メトロポリタン・エリア・ネットワーク(MAN)、またはインターネットの1もしくは複数の部分、あるいはこれらの2以上の組合せと通信することができる。これらのネットワークの1または複数のうちの1または複数の部分は、有線であっても無線であってもよい。一例として、コンピュータ・システム500は、無線PAN(WPAN)(たとえば、BLUETOOTH(登録商標)WPANなど)、WI−FIネットワーク、WI−MAXネットワーク、携帯電話ネットワーク(たとえば、グローバル移動体通信システム(GSM(登録商標))ネットワークなど)、もしくは他の好適な無線ネットワーク、またはこれらの2以上の組合せと通信することができる。コンピュータ・システム500は、適切な場合、これらのネットワークのいずれかのための任意の好適な通信インターフェース510を含んでもよい。通信インターフェース510は、適切な場合、1または複数の通信インターフェース510を含んでもよい。この開示は、特定の通信インターフェースについて記載し示しているが、この開示は、任意の好適な通信インターフェースを企図する。
【0056】
特定の実施形態では、バス512は、コンピュータ・システム500の構成要素を互いに結合するハードウェア、ソフトウェア、またはその両方を含む。限定するものとしてではなく一例として、バス512は、アクセラレィティッド・グラフィックス・ポート(AGP)もしくは他のグラフィックス・バス、EISA(Enhanced industry Standard Architecture)バス、フロントサイド・バス(FSB)、ハイパートランスポート(HT)相互接続、ISA(Industry Standard Architecture)バス、インフィニバンド相互接続、low−pin−count(LPC)バス、メモリ・バス、マイクロ・チャネル・アーキテクチャ(MCA)バス、PCI(Peripheral Component Interconnect)バス、PCIエクスプレス(PCIe)バス、SATA(serial advanced technology attachment)バス、VLB(Video Electronics Standards Association local)バス、もしくは別の好適なバス、またはこれらの2以上の組合せを含んでもよい。バス512は、適切な場合、1または複数のバス512を含んでもよい。この開示は、特定のバスについて記載し示しているが、この開示は、任意の好適なバスまたは相互接続を企図する。
【0057】
本明細書では、1または複数の非一時的コンピュータ可読記憶媒体は、適切な場合、1または複数の半導体ベースの、もしくは他の集積回路(IC)(たとえば、フィールド・プログラム可能ゲート・アレイ(FPGA)または特定用途向け集積回路(ASIC))、ハード・ディスク・ドライブ(HDD)、ハイブリッド・ハード・ドライブ(HHD)、光ディスク、光ディスク・ドライブ(ODD)、光磁気ディスク、光磁気ドライブ、フロッピー・ディスケット、フロッピー・ディスク・ドライブ(FDD)、磁気テープ、ソリッドステート・ドライブ(SSD)、RAMドライブ、セキュア・デジタル・カードもしくはドライブ、任意の他の好適な非一時的コンピュータ可読記憶媒体、またはこれらの2以上の組合せを含んでもよい。非一時的コンピュータ可読記憶媒体は、適切な場合、揮発性、不揮発性、または揮発性と不揮発性の組合せであってよい。
【0058】
本明細書では、「または(もしくは)」は、別段明確に示されていない限り、または別段文脈によって示されない限り、包括的(inclusive)であり、排他的なものではない。したがって、本明細書では、「AまたはB」は、別段明確に示されていない限り、または別段文脈によって示されない限り、「A、B、またはその両方」を意味する。さらに、「および」は、別段明確に示されていない限り、または別段文脈によって示されない限り、共同であり、個別的でもある。したがって、本明細書では、「AおよびB」は、別段明確に示されていない限り、または別段文脈によって示されない限り、「AおよびBを共同で、または個別的に」意味する。
【0059】
この開示の範囲は、当業者であれば理解されるであろう、本明細書に記載され、または示されている例示的な実施形態に対する変更、置換、変形、代替、および修正すべてを包含する。この開示の範囲は、本明細書に記載され、または示されている例示的な実施形態に限定されない。さらに、この開示は、それぞれの実施形態について、本明細書では、特定の構成要素、要素、特徴、機能、動作、またはステップを含むものとして記載し示しているが、これらの実施形態のいずれも、当業者であれば理解されるであろう、本明細書のどこかに記載され、または示されている構成要素、要素、特徴、機能、動作、またはステップのいずれかの任意の組合せまたは並べ替えを含んでもよい。さらに、添付の特許請求の範囲において、特定の機能を実施するように適合された、するように配置された、することが可能な、するように構成された、することが可能である、するように動作可能である、またはするように動作する装置もしくはシステム、または装置もしくはシステムの構成要素に言及することは、その装置、システム、または構成要素がそのように適合され、配置され、動作可能であり、構成され、可能であり、動作可能であり、動作する限り、それ、またはその特定の機能が作動される、有効にされる、またはロック解除されるか否かにかかわらず、その装置、システム、構成要素を含む。