(57)【要約】      （修正有）【課題】対話型リアルタイムのメディアアプリケーション用のストリーミングビデオクリップとして、マルチメディア情報の生産と再生を提供する。【解決手段】ネットワークに接続された２台以上のコンピューターで構成される、対話型マツチメディアアプリケーションを実行する方法であって、ビデオまたはオーディオの応答を要求するユーザー入力のモニタリング、ビデオまたはオーディオの応答を要求する最初のユーザー入力が行われた場合、最初のユーザー入力に関連する最初に保存されたストリーミングビデオが再生され、最初に保存されたストリーミングビデオクリップに関連するメタデータの最初のセットを読み込む。ここで、メタデータの最初のセットは、２回目のユーザー入力を構成する再生イベントから成る、２回目のユーザー入力が行われると、メタデータの最初のセットで決定されたように、２回目に保存されたストリーミングビデオが再生される。【選択図】図１
2017103760.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークに接続された１台以上のコンピューターで構成される、対話型マツチメディアアプリケーションを実行する方法であって
ビデオまたはオーディオの応答を要求するユーザー入力のモニタリング、
ビデオまたはオーディオの応答を要求する最初のユーザー入力が行われた場合、最初のユーザー入力に関連する最初に保存されたストリーミングビデオが再生される、
最初に保存されたストリーミングビデオクリップに関連するメタデータの最初のセットを読み込むが、ここでメタデータの最初のセットは２回目のユーザー入力を構成する再生イベントから成る、
２回目のユーザー入力が行われると、メタデータの最初のセットで決定されたように、２回目に保存されたストリーミングビデオが再生される。
【請求項２】
請求項１に記載の方法であって、最初と２回目のストリーミングビデオクリップがネットワークに接続されたユーザーデバイスにストリーミングされる。
【請求項３】
請求１の方法では、最初と２回目のストリーミングビデオクリップは、コンテンツデリバリーネットワーク（ＣＤＮ）に接続されたインターネットデータセンター（ＩＤＣ）のサーバーによって、ストリーミングされる。
【請求項４】
請求項１に記載の方法であって、さらに以下を含む：
３回目のユーザー入力が行われる、
３回目のユーザー入力が事前に保存されたビデオクリップに対応しない、
３回目のユーザー入力に基づき、ユーザーにビデオセグメントをストリーミングする、
３回目に保存されたビデオクリップとして、少なくとも３回目のユーザー入力の一部に基づいて、ビデオセグメントを保存する。
【請求項５】
請求項１に記載の方法であって、最初と２回目のユーザー入力がリモートユーザー入力に由来する。
【請求項６】
請求項１に記載の方法であって、最初と２回目のユーザー入力がシミュレートされた（「ロボット」）エンティティに由来する。
【請求項７】
請求項１に記載の方法であって、最初と２回目のストリーミングビデオクリップが実質上ＭＰＥＧ２−ＴＳに従ってフォーマットされます。
【請求項８】
請求項４に記載の方法であって、さらに以下を含む：
３回目に保存されたストリーミングビデオクリップがそれぞれのユーザーによって提供されたユーザー入力に基づき、数え消えないほど様々なユーザーに再生されます。
【請求項９】
対話型マルチメディアアプリケーションで使用するための、ビデオを製造する方法は、以下で構成される：
サーバーに対話型マルチメディアアプリケーションプログラムを起動する、
ユーザー入力のモニタリング、
最初のユーザーから最初のユーザー入力を削除するときに、最初のユーザー入力に対応するメタデータを持つ、事前に保存されたストリーミングビデオを検索する。
【請求項１０】
請求項９に記載の方法であって、さらに以下を含む：
最初のユーザー入力に対応するメタデータを持つ、事前に保存されたストリーミングビデオクリップを識別する、
最初のユーザーに識別されたストリーミングビデオをストリーミングする。
【請求項１１】
請求項９に記載の方法であって、さらに以下を含む：
最初のユーザーに対応するメタデータを持つ事前に保存されたストリーミングビデオクリップが存在しないことを検出する、
マルチメディアアプリケーションプログラムの出力から、最初のユーザーにビデオをストリーミングする、
マルチメディアアプリケーションプログラムの出力からストリーミングビデオクリップに、ビデオをカプセル化する、
関連したメタデータに連動してカプセル化されたビデオを保存する。
【請求項１２】
請求項１１に記載の方法であって、ストリーミングビデオクリップがマルチメディアコンテナ形式に従ってカプセル化される。
【請求項１３】
請求項１２に記載の方法であって、マルチメディアコンテナ形式はＭＰＥＧ２−ＴＳである。
【請求項１４】
請求項９に記載の方法であって、最初のユーザー入力がリモートユーザーデバイスに由来する。
【請求項１５】
請求項９に記載の方法であって、最初のユーザー入力がシミュレートされた（「ロボット」）エンティティに由来する。
【請求項１６】
請求項１１に記載の方法であって、保存されたストリーミングビデオクリップが回復され、少なくとも２人の異なるユーザーにビデオを配信する。
【請求項１７】
対話型マルチメディアアプリケーションで使用するためのビデオやオーディオを生成するための装置であって、
コンピュータープログラムのビデオ処理プラットフォームに接続されたアプリケーション対話型コンテナであって、、前記アプリケーション対話型コンテナは次を含む：
コンピュータープログラムのためのリアルタイム環境、
プログラム入力遮断モジュール、
プログラム出力遮断モジュールでは、
リアルタイム環境で作動するコンピュータープログラムとして、プログラム入力遮断モジュールによって検出されたプログラム入力に基づき、プログラム出力遮断モジュールがビデオとオーディオ出力を遮り、ビデオとオーディオ出力を分割するが、ここでは分割されたビデオとオーディオ出力をコンピュータープログラムビデオ処理プラットフォームに配信し、分割されたビデオとオーディオ出力がストリーミング形式に変換され、少なくともプログラム入力の一部に基づいて関連するメタデータと連動して、ストリーミングビデオクリップとして保存される。
【請求項１８】
請求項１７に記載の装置であって、ストリーミング形式が実質的にＭＰＥＧ２−ＴＳに遵守している。
【請求項１９】
請求項１７に記載の装置であって、メタデータにクリップＩＤが含まれる。
【請求項２０】
コンピュータープロセッサーによって実行される装置を含む持続性コンピューター可読メディアのコンピュータープログラム製品であって、
ビデオまたはオーディオ応答を必要とする、ユーザー入力のモニター、
ビデオまたはオーディオ応答を必要とする最初のユーザー入力が行われたら、最初のユーザー入力に関連する最初に保存されたストリーミングビデオクリップを再生する、
最初に保存されたストリーミングビデオクリップに関連する、メタデータの最初のセットを読み込むが、ここで、メタデータの最初のセットは２回目のユーザー入力から成る再生イベントを構成する、
２回目のユーザー入力が行われると、メタデータの最初のセットによって決定されたように、２回目に保存されたストリーミングビデオクリップを再生する。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ビデオストリームで実行される対話型アプリケーションに関する。
【０００２】
関連出願の相互参照
この出願は２０１５年１１月４日に提出された、米国出願シリアル番号１４／９３２，２５２の一部継続出願で、全体として参照することにより本書に組み込まれる。
【背景技術】
【０００３】
ゲームなどの対話型アプリケーションは、コンピューターを大量に使用する。特に、対話型マルチメディアアプリケーションなどのある種の対話型アプリケーションの場合、この計算負荷の高い主要コンポーネントはユーザー入力に応えてビデオやオーディオを生成するための必需品である。さらに、同じビデオとオーディオは定められたアプリケーションのマルチユーザーのそれぞれに対して個別に生成される必要があるため、負荷はユーザー数によって増加する。
【０００４】
それぞれのアプリケーションが、例えば、クラウドベースのサーバーのようなサーバーでホストされるとき、多くのサーバーで１つの結果を必要とするため、取得、アップデート、メンテナンスにコストがかかる。
【０００５】
ゲームなどの、コンピューターを大量に使用する対話型アプリケーションをホストするには、さらに優れたソリューションが必要となる。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明の実施例はマルチメディアコンピュータープログラムの出力を一連のストリーミングビデオクリップに変換し、その後インターネットデータセンター（ＩＤＣ）やコンテンツデリバリネットワーク（ＣＤＮ）で構成されるビデオストリーミングインフラストラクチャを通して全世界に配信できる。
【０００７】
さらに、実施例によっては、ビデオクリップが再生を容易にするためにメタデータにタグ付けされるものもある。メタデータは、例えば、識別子やトリガー情報を含むことができる。識別子は、それぞれのビデオクリップに対して一意の識別子となることができる。トリガー情報は、おそらくは現在のユーザー入力またはその他の条件に応じて、再生される次のクリップの識別子を指定できる。
【課題を解決するための手段】
【０００８】
一般に、本発明の実施例にはビデオクリップの生産プロセスや対話型再生プロセスが含まれる。
【０００９】
生産プロセスでは、ユーザー（または、一部のバリエーションでは、シミュレートされた「ロボット」ユーザー）が従来の対話型コンピュータープログラムと対話を行う。ユーザーの介入に応えて、コンピュータープログラムは生のビデオやサウンドデータを作り出す。特定のビデオやサウンドデータの生産をもたらすユーザー入力や、その他のイベントが保存される。トリガー条件に関連する特定のビデオやサウンドは、その後ストリーミングビデオクリップに変換される。クリップは、例えばＩＤ、トリガー条件や再生イベント、長さを含め、メタデータにタグ付けされる。実施例によっては、クリップがコンテンツデリバリーネットワークを介して、１つ以上の対話型アプリケーションをサポートするために、選択されたインターネットデータセンターに送られるものもある。
【００１０】
再生プロセスにおいて、最初のビデオクリップは、例えば、対話型ゲームの再生をサポートする具象化など、特定の実施例で再生される。最初のビデオクリップの再生の最後で（または、実施例によっては、最初のビデオクリップの再生の間いつでも）、メタデータが次のビデオクリップの再生をトリガーする１つまたは複数のトリガー条件を識別するように求められるものもある。トリガー条件を検出すると（例えば、ユーザーがある特定のボタンを押すと）、次のビデオクリップが再生される。最後のトリガー条件に基づいて最後のビデオクリップが再生されるまで、再生はこのように続く。
【００１１】
実施例によっては、再生はクラウドベースのストリーミングサーバーなどのサーバーで起こり、コンテンツはサーバーからユーザーにストリーミング配信されるものもある。他の実施例の場合、再生中、コンテンツはＣＤＮとＩＤＣを介してユーザーにストリーミング再生される。
【発明を実施するための形態】
【００１２】
本発明の実施例は、対話型リアルタイムのメディアアプリケーション用のストリーミングビデオクリップとして、マルチメディア情報の生産と再生を提供する。
【００１３】
図１は、本発明の１つの実施例に従って、対話型リアルタイムマルチメディアアプリケーションをサポートする、分散型クライアント−サーバーコンピューターシステム１０００のブロック図である。コンピューターシステム１０００には、１つ以上のサーバーコンピューター１０１およびコンピュータープログラム製品１３１によって構成される１つ以上のユーザーデバイス１０３が含まれる。コンピュータープログラム製品１３１は一時的または持続性コンピューター可読メディアで提供されるが、特定の実施例では、持続性コンピューター可読メディア、例えば、永続的（つまり、非揮発性）ストレージ、揮発性メモリ（例えば、ランダムアクセスメモリ）、またはさまざまなその他のよく知られた持続性コンピューター可読メディアの形で提供される。
【００１４】
ユーザーデバイス１０３には、中央処理装置（ＣＰＵ）１２０、メモリ１２２、ストレージ１２１が含まれる。ユーザーデバイス１０３には入出力（Ｉ／Ｏ）サブシステム（図では別々に表示されていない）（例えば、ディスプレイまたはタッチ対応ディスプレイ、キーボード、ｄパッド、トラックボール、タッチパッド、ジョイスティック、マイク、その他のユーザーインターフェイスデバイス、関連するコントローラー回路、ソフトウェアなど）が含まれる。ユーザーデバイス１０３には、メディアコンテンツを提供できる電子デバイスのタイプが含まれる。一部には、デスクトップコンピューターおよび携帯電話、スマートフォン、マルチメディアプレーヤー、電子リーダー、タブレット／タッチパッド、ノートＰＣ、またはラップトップＰＣ、スマートテレビ、スマートウォッチ、頭部装着型ディスプレイ、その他のコミュニケーションデバイスなどのポータブル電子デバイスの例が含まれる。
【００１５】
サーバーコンピューター１０１には中央処理装置ＣＰＵ１１０、ストレージ１１１およびメモリ１１２Ｉ／Ｏサブシステムは個別に表示されていない）が含まれる。サーバーコンピューター１０１は、例えば、ネットワーク１０２（例えば、インターネット）などのネットワークを介して、例えば、ユーザーデバイス１０３など、１台以上のクライアントコンピューターと通信するために、コンピューター製品１３１をホストできるコンピューターデバイスである。サーバーコンピューター１０１は、インターネットを介して１台以上のクライアントコンピューターと通信を行い、インターネットプロトコルスイート（ＴＣＰ／ＩＰ）、ハイパーテキスト転送プロトコル（ＨＴＴＰ）またはＨＴＴＰＳ、インスタントメッセージングプロトコル、またはその他のプロトコルなどのプロトコルを使用する。
【００１６】
メモリ１１２と１２２には、既知のコンピューターメモリデバイスが含まれる。ストレージ１１１と１２１には、既知のコンピューターストレージデバイスが含まれる。
【００１７】
図にはありませんが、メモリ１１２と１２２および／またはストレージ１１１と１２１にはサーバーコンピューター１０１とユーザーデバイス１０３によりそれぞれアクセス可能なデータストレージ機器［取外し可能またはポータブルな（例えば、フラッシュメモリまたは外部ハードディスクドライブ）メモリ、またはサードパーティ（例えば、クラウドストレージ）によりホストされるデータストレージなど］も含まれるが、これに限定されない。
【００１８】
ユーザーデバイス１０３とサーバーコンピューター１０１は、ネットワーク１０２を介してアクセスし、通信を行う。ネットワーク１０２には、広域エリアネットワーク（ＷＡＮ）およびデバイス間での通信用に使用される移動体通信ネットワークまたはその他のタイプのコンピューターネットワークを含め、有線またはワイヤレス接続が含まれる。
【００１９】
図の実施例で、コンピュータープログラム製品１３１は実際に、サーバー１０１とユーザーデバイス１０３でそれぞれ実行するために設定されたコンピューター製品プログラム、またはコンピュータープログラムの製品部分を表している。メモリ１１２にロードされたコンピュータープログラム製品１３１の部分は、後述する発明要件に適合する対話型ストリーミングビデオクリップを録画し再生するためにサーバー１０１を設定する。ストリーミングビデオクリップは、例えば、ＨＴＭＬ５機能を搭載したブラウザなどを介して受信ストリーミングビデオをサポートする、ユーザーデバイス１０３に再生される。
【００２０】
図２では、ビデオクリップを配布するために本発明の一部の実施例で利用されている、ビデオストリーミングインフラストラクチャ２０００の例を図示す。図のように、ビデオストリーミングインフラストラクチャ２０００は、コンテンツデリバリーネットワーク（ＣＤＮ）２００とインターネットデータセンター（ＩＤＣ）２１０−２６０で構成される。
【００２１】
メディアファイル２０１は、最初ファイルストレージ２０２に保存される。メディアファイル２０１は、その後ＣＤＮ２００からＩＤＣ２１０−２６０までを介して配布される。ファイルが配布されると、個々のＩＤＣには配布されたメディアファイルのローカルコピーができる。それぞれのローカルコピーは、メディアファイルのコピー２１１−２６１として保存される。それぞれのＩＤＣ２１０−２６０はビデオなどのストリーミングメディアをユーザーの要求に応じて、それぞれのＩＤＣの地理的近傍にいるユーザーに供給する。メディアファイルのコピー２１１−２６１は、定期的に更新される。
【００２２】
本発明の実施例によっては、ビデオストリーミングインフラストラクチャ２０００が、ここに開示される発明プロセスにより生成されるビデオクリップの配布に使用されるものもある。つまり、例えば、発明ビデオクリップがファイルストレージ２０２のメディアファイル２０１として保存されてから、ＣＤＮ２００を介してＩＤＣ２１０−２６０に配布され、ストリーミングビデオとしてユーザーが使用できるようになるということであある。
【００２３】
他の実施例では、発明ビデオクリップが、例えば、クラウドベースのサーバーなど、１つまたは複数のサーバーから、ビデオストリーミングインフラストラクチャ２０００を使用することなしに直接配布されるものもある。
【００２４】
図３はメタデータにタグ付けされた対話型ビデオクリップを制作し保存するための、また本発明の実施例に従って、ユーザーデバイスに対話型ビデオを配布するための、システム３０００の高レベルブロック図である。システム３０００はハードウェアモジュール、ソフトウェアモジュール、またはハードウェアとソフトウェアの組み合わせとして実現される。実施例によっては、少なくともシステム３０００の一部がサーバー１０１などのサーバーで作動するソフトウェアを構成するものもある。
【００２５】
図に示した実施例で、メタデータにタグ付けされた対話型ビデオクリップを生成し保存することに加えて、システム３０００は追加の関連機能を実施する。例えば、この実施例のシステム３０００は事前に格納されたビデオクリップも再生可能であるだけでなく、ビデオクリップとしてビデオを最初に保存することなしに、ユーザーの介入に応じて、ユーザーに追加でビデオをストリーミングすることができる。代わりの実施例で、これらの機能の１つ以上を単独のシステムまたは複数のシステムにより提供できる。
【００２６】
図３で、例えば、コンピュータープログラム３１０を対話型マルチメディアアプリケーションプログラムにすることができる。例えば、コンピュータープログラム３１０は、ゲーム用アプリケーションプログラムになり得るのである。コンピュータープログラム３１０は、プログラム入力３３０に応じてプログラム出力３２０を生成する。
【００２７】
実施例によっては、プログラム出力３２０が生のビデオやサウンドシステムを構成するものもある。実施例によっては、プログラム出力３２０がビデオレンダリング結果を構成するものもある。
【００２８】
実施例によっては、プログラム入力３３０がユーザー入力相互作用に基づいて、ユーザーがボタンを押した、リストのアイテムを選択した、コマンドを入力したなど、制御メッセージを構成するものもある。かかるユーザー入力相互作用は入力周辺機器３５０に由来することがあり、ユーザーデバイス１０３などの、ユーザーデバイスに関連する周辺機器の場合もある。特定のユーザーデバイス関連の周辺機器はジョイスティック、マウス、タッチセンサー式画面などを含むことがある。実施例によっては、入力周辺機器３５０がリモートユーザーデバイス１０３に併置され、ネットワークを介してシステムの他の要素と通信を行うことがある。「周辺機器」とラベルされているが、技術的に優れているために、周辺機器３５０などの入力デバイス／要素が、特に実施例では、ユーザーデバイス１０３から分離したり差し込まれたりする代わりに、ユーザーデバイス１０３（例えば、タッチスクリーン、ボタンなど）の一部に組み込まれている入力要素を含むことがある。
【００２９】
実施例によっては、入力周辺機器３５０が実際のユーザーの動作をシミュレートする入力のシーケンスを生成する「ロボット」エンティティである場合もある。そのようなロボットエンティティは、システムを「使用」するために使用でき、プログラム出力３２０の可能な多くの（またはすべての）インスタンスを生成する原因となる。このように、「使用する」システム３０００の目的は、例えば、プログラム出力３２０に関連する各ビデオクリップの１つ以上のコピーを生成し保存できるようにすることである。
【００３０】
アプリケーション相互作用コンテナ３４０は、コンピュータープログラム３１０を実行するために、ランタイム環境を用意している。本発明の実施例において、アプリケーション相互作用コンテナ３４０は入力周辺機器３５０で生成されたユーザー入力を検出して遮り、遮ったユーザー入力をプログラム入力３３０の形でコンピュータープログラム３１０に配信する。
【００３１】
アプリケーション相互作用コンテナ３４０はプログラム出力３２０として生成された生のビデオとサウンドも遮り、コンピュータープログラムビデオ処理プラットフォーム３６０のサービスを利用して、生のビデオとサウンドをストリーミングビデオ形式に変換し、データベース３９０の１つ以上のビデオセグメントまたはクリップ３７０として変換されたビデオとサウンドを保存する。各クリップは特定のトリガー条件（または再生イベント）に応じて生成されたオーディオとビデオプログラム出力を表す。ここで、可能なトリガー条件のセットが、例えば、プログラム入力３３０の特定のアイテムを構成する。実施例によっては、生のビデオとサウンドがマルチメディアコンテナ形式に変換されるものもある。実施例によっては、生のビデオとサウンドがＭＰＥＧ２トランスポートストリーム（ＭＰＥＧ２−ＴＳ）として知られている形式に変換されるものもある。
【００３２】
ビデオクリップ３７０が生成されると、属性３８０（ここでは「メタデータ」とも呼ばれる）のセットでもタグ付けされ、例えば、クリップＩＤ、再生イベント、長さを構成する。メタデータ３８０の属性は、データベース３９０の対応するビデオクリップ３９０と関連して保存される。保存された３７０は、将来の再生のために使用できる。保存され、タグ付けされたビデオクリップ３７０は、同じユーザーまたは異なるユーザーによって再使用されることがある。与えられたクリップ３７０は１台の共有サーバーまたはサーバーのセット上のコンピュータープログラム３１０と相互作用する数千のユーザーにより再使用される可能性がある。
【００３３】
例えば、次に（例えば、同じユーザーであれ異なるユーザーであれ、特定のユーザー入力の検出に基づいて）与えられた再生イベントが発生すると、そのイベントにタグ付けされた保存済みビデオクリップ３７０は再生できるようになり、対応する生のビデオとサウンドを再生成する必要がなくなる。アプリケーションによっては、コンピューターの処理能力の大幅な節約につながることがある。詳細については、再生プロセスの説明を参照のこと。
【００３４】
上で述べたように、図に示した実施例で、システム３０００も事前に格納されたビデオクリップを再生できる。例えば、プログラム入力３３０をもたらす入力周辺機器３５０を介したユーザーの介入に基づき、コンピュータープログラム３１０はユーザーの介入に対応するメタデータ３８０を持つ特定の事前に格納されたクリップ３７０が使用可能で、ユーザーの介入に適切に応答していると判断することがある。一致するクリップ３７０が、ストレージから取得され、例えば、ＭＰＥＧ２−ＴＳなどのマルチメディアコンテナ形式に従って、ユーザーデバイス１０３にストリーミングされる。
【００３５】
上でさらに詳しく述べたように、図に示した実施例で、たとえビデオがストリーミングビデオクリップシ３７０として現在保存されていなくても、システム３０００はユーザーの介入に応じてユーザーにビデオをストリーミングすることもできる。例えば、プログラム入力３３０をもたらす入力周辺機器３５０を介したユーザー入力に基づき、コンピュータープログラム３１０は特定のビデオ出力がユーザーの介入に適切に対応しているが、対応するクリップ３７０を使用できないと判断することがある。要求されたビデオは、生のビデオクリップ３２０としてコンピュータープログラム３１０により生成されることがある。アプリケーション相互作用コンテナ３４０はプログラム出力３２０を遮り、コンピュータープログラムのビデオ処理プラットフォーム３６０を利用して、例えば、ＭＰＥＧ２−ＴＳなどのマルチメディアコンテナ形式に従って、生のビデオをストリーミング形式に変換し、ストリーミングビデオをユーザーデバイス１０３に送信する。都合のよいことに、ストリーミングビデオはビデオクリップ３７０としてカプセル化して同時に録画し、適切なメタデータ３８０と連動して将来の使用に備えて保存することができる。
【００３６】
図４は本発明の実施例に従って、対話型ビデオクリップと関連するメタデータを制作し、保存し、再生するプロセス４０００を図で示す。実施例によっては、プロセス４０００は、例えば、ビデオクリップとして最初に保存することなく、ユーザーにビデオをストリーミングするなどの、その他の関連する機能もサポートできる。
【００３７】
ステップ４１０で、コンピュータープログラムはサーバー１０１などの、サーバーで起動する。例えば、サーバーはクラウドベースのサーバーになりえる。例えば、サーバーはゲームサーバーになりえる。例えば、コンピュータープログラムは、例えば、ゲームアプリケーションなどの、対話型マルチメディアアプリケーションプログラムになりえる。
【００３８】
ステップ４２０で、プロセスはユーザー入力をモニターする。
【００３９】
デシジョンボックス４３０で、ユーザー入力が検出されない場合、プロセスはステップ４２０に戻り、ユーザー入力を引き続きモニターする。ユーザー入力が検出されると、制御はデシジョンボックス４４０に移る。
【００４０】
デシジョンボックス４４０で、一致するメタデータ（つまり、ユーザー入力に対応するメタデータ）のあるビデオクリップが存在する場合、制御はステップ４５０に移り、事前に格納されたビデオクリップがユーザーにストリーミングされる。制御はステップ４２０に戻り、プロセスはユーザー入力を引き続きモニターする。
【００４１】
デシジョンボックス４４０で、一致するメタデータのある事前に格納されたクリップが見つからない場合、制御は４６０に移る。ステップ４６０で、ユーザーに応答するプログラム出力からのビデオセグメントは、ユーザーにストリーミングされる。同時に、ビデオセグメントは対応するビデオクリップの作成に備えて録画される。ステップ４７０で、録画されたビデオはストリーミング形式でビデオクリップにカプセル化される。例えば、ストリーミング形式はＭＰＥＧ２−ＴＳなどのマルチメディアコンテナ形式になりえる。
【００４２】
ステップ４８０で、ビデオクリップと関連するメタデータ（例えば、クリップＩＤ、再生イベントまたはトリガー、長さ）が生成される。
【００４３】
ステップ４９０で、ビデオクリップとそれに関連するメタデータが将来使用できるように保存される。例えば、クリップの保存されたメタデータに対応してトリガーが発生した場合、再生プロセスによりビデオクリップを将来使用できる。保存されたビデオクリップを使用することで、再生プロセスはコンピュータープログラムがビデオクリップに対応するビデオセグメントを再再生する必要性を避けることができる。
【００４４】
ビデオセグメントは引き続き録画され、ストリーミング形式でクリップにカプセル化され、例えばゲームが終了するまで関連するメタデータに保存される。
【００４５】
プロセス４０００が例えばクラウドベースのサーバーなどのサーバーで作動している場合、複数のユーザー、それもおそらくは多くのユーザーを同時に処理しているかもしれないことに留意すること。そのような場合、定められたビデオセグメントがすでに録画され、プロセス４０００で前のユーザーの介入の間に対応するメタデータ３８０を持つビデオクリップ３７０として、カプセル化され保存されている可能性は大いにありえる。そのような場合、対応するセグメントを再び録画する必要はない。むしろ、一意のＩＤを含むことができるメタデータに基づき、以前保存されたクリップのセットから、ビデオクリップを復旧することができる。
【００４６】
図５では、本発明の実施例に従い、再生プロセスで使用されたビデオクリップと関連するメタデータのグラフ構造セット５０００を一例として示している。これらのクリップは、例えば、図３のシステム３０００により、および／または図４のプロセス４０００により生成されたビデオクリップ３７０と関連するメタデータ３８０の可能性がある。再生プロセスで、ビデオクリップ３７０はサーバーコンピューター１０１などのサーバー、またはＩＤＣ２１０など、インターネットデータセンターに関連するサーバーからストリーミングされる。ビデオクリップ３７０は、ＨＴＭＬ５をサポートするブラウザなど、適切な機能が装備された、ユーザーデバイス１０３などのユーザーデバイスで受け取られ表示される。
【００４７】
それぞれの対話型マルチメディアアプリケーションまたはアプリケーションの部分は、ビデオクリップセット５０００に似た再生ビデオクリップセット（「メタデータ再生リスト」とも呼ばれる）に関連付けられていることもある。例えば、マルチメディアレベルの各レベルが独自のメタデータ再生リストを持っている場合もある。上で説明したように、アプリケーションが実際のまたは「ロボット」ユーザー入力に応えて実行されるときに、各ビデオクリップ３７０に関連するメタデータが記憶される。それ故、メタデータ５０００も同時に記憶される。その理由は、特定のアプリケーションまたはアプリケーションの部分の場合、メタデータ再生リストがメタデータ３８０に従ってリンクされたビデオクリップ３７０のコレクションだからである。
【００４８】
図５の例で、ビデオクリップはそれぞれＩＤを持つ円によって表されている。例えば、ビデオクリップ５１０にはＩＤ＝Ａというラベルが付いています。矢印は「再生イベント」または再生プロセス５０００が矢印の方向に移動する原因となるトリガー条件を表している。例えば、ビデオクリップ５２０の再生中にボタンＸを押すと、ビデオクリップ５２０の再生が停止し、ビデオクリップ５３０の再生が始まる。他方、ビデオクリップ５２０の再生中に「アイテム２」が押されると、プロセスは代わりにビデオクリップ５４０に移行する。ビデオクリップ５３０の再生中にボタンＹを押すと、プロセスはビデオクリップ５５０に移行しそのクリップを再生する。また、ビデオクリップ５４０の再生中にボタンＹを押すと、プロセスはビデオクリップ５５０に移行しそのクリップを再生する。ビデオクリップ５４０の再生中にユーザーが「ターゲットＺ」にスワイプすると、プロセスは最後に移動し、ビデオクリップ５６０の再生を開始する。ビデオクリップ５６０と５５０のいずれかを再生中にマイク（「ＭＩＣ」）からオーディオコマンド“ｓｕｂｍｉｔ”を受け取ると、プロセスはビデオクリップ５７０に移動してそのビデオクリップの再生を開始する。図のトリガーは少し違っているが、ビデオ５１０が再生を終えると、プロセスはＡ’というラベルの付いたビデオクリップ、つまりビデオクリップ５２０に自動的に進める。
【００４９】
ビデオクリップの再生がスムーズになるように、オプションでキャッシュメカニズムを使用できる。
【００５０】
本発明の実施例によっては、サーバーからユーザーデバイスに配信されるビデオに事前に計算されたビデオ（保存され再生されたビデオクリップ）とリアルタイムで生成されたビデオストリーム（メタデータのあるビデオクリップとしてまた保存されていないビデオ）が入り混じっていることがある。
【００５１】
上の説明では、ＭＰＥＧ２−ＴＳなどのストリーミングマルチメディアコンテナ形式が参照される。本発明の実施例はＭＰＥＧ２−ＴＳに限定されず、３ＧＰ、ＡＳＦ、ＡＶＩ、ＤＶＲ−ＭＳ、Ｆｌａｓｈ  Ｖｉｄｅｏ（ＦＬＶ、Ｆ４Ｖ）、ＩＦＦ、Ｍａｔｒｏｓｋａ（ＭＫＶ）、ＭＪ２、ＱｕｉｃｋＴｉｍｅ  Ｆｉｌｅ  Ｆｏｒｍａｔ、ＭＰＥＧプログラムストリーム、ＭＰ４、Ｏｇｇ、ＲＭ（ＲｅａｌＭｅｄｉａコンテナ）などを含め、幅広いストリーミングコンテナ形式を使用できることを理解する必要がある。標準化されたコンテナ形式なしに作動する実施例も、考慮される。
【００５２】
上でいくつかの実施例を説明してきましたが、技術的に優れている人は、本発明のスクリプトと範囲から離れることなしに、多くの修正とバリエーションが可能であることを理解できるはずである。従って、そのような修正とバリエーションは、請求項に係る発明の範囲内に含めることを目的としている。
【図面の簡単な説明】
【００５３】
【図１】本発明の１つの実施例に従って対話型リアルタイムマルチメディアアプリケーションをサポートする、分散型クライアント−サーバーコンピューターシステムのブロック図である。
【図２】ビデオクリップを配信するために本発明の実施例により利用されている、コンテンツデリバリネットワーク（ＣＤＮ）と複数のインターネットデータセンター（ＩＤＣ）から成る、ビデオストリーミングインフラストラクチャのブロック図である。
【図３】本発明の実施例に従って、対話型ビデオクリップ生産と再生システムを描く図である。
【図４】本発明の実施例に従った、ビデオクリップ生産と再生プロセスのフロー図である。
【図５】本発明の実施例に従って、ビデオクリップのグラフ構造化されたセットを描く。
【符号の説明】
【００５４】
１０００分散型クライアント−サーバーコンピューターシステム
１０１サーバーコンピューター
１０２ネットワーク
１０３ユーザーデバイス
１１０中央処理装置ＣＰＵ
１１１ストレージ
１１２メモリ
１２０中央処理装置（ＣＰＵ）
１２１ストレージ
１２２メモリ
１３１コンピュータープログラム製品
２０００ビデオストリーミングインフラストラクチャ
２００コンテンツデリバリーネットワーク（ＣＤＮ）
２０１メディアファイル
２０２ファイルストレージ
２１０−２６０ＩＤＣ
２１１−２６１メディアファイルのコピー
３０００システム
３１０コンピュータープログラム
３２０プログラム出力
３３０プログラム入力
３４０アプリケーション相互作用コンテナ
３５０入力周辺機器
３６０コンピュータープログラムビデオ処理プラットフォーム
３７０ビデオセグメントまたはクリップ
３８０メタデータ
３９０データベース
４１０−４９０ステップ
５０００ビデオクリップセット
５１０ビデオクリップ
５２０ビデオクリップ
５３０ビデオクリップ
５４０ビデオクリップ
５５０ビデオクリップ
５６０ビデオクリップ
５７０ビデオクリップ
【図１】
2017103760.tif 000003
【図２】
2017103760.tif 000004
【図３】
2017103760.tif 000005
【図４】
2017103760.tif 000006
【図５】
2017103760.tif 000007
【外国語明細書】
2017103760000001.pdf