(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-07-31
(45)【発行日】2023-08-08
(54)【発明の名称】複数のメディアプレイヤーに対するメディアコンテンツの配信調整
(51)【国際特許分類】
H04N 21/242 20110101AFI20230801BHJP
H04N 21/258 20110101ALI20230801BHJP
【FI】
H04N21/242
H04N21/258
(21)【出願番号】P 2021531672
(86)(22)【出願日】2019-12-16
(86)【国際出願番号】 US2019066624
(87)【国際公開番号】W WO2020163018
(87)【国際公開日】2020-08-13
【審査請求日】2021-06-02
(32)【優先日】2019-02-07
(33)【優先権主張国・地域又は機関】US
【前置審査】
(73)【特許権者】
【識別番号】504399716
【氏名又は名称】ディズニー エンタープライゼス インコーポレイテッド
(74)【代理人】
【識別番号】100147485
【氏名又は名称】杉村 憲司
(74)【代理人】
【識別番号】230118913
【氏名又は名称】杉村 光嗣
(74)【代理人】
【識別番号】100211395
【氏名又は名称】鈴木 裕貴
(72)【発明者】
【氏名】コミート キース
(72)【発明者】
【氏名】レフラー ネイサン
(72)【発明者】
【氏名】ジェームズ コリガン-コルヴィル
【審査官】富樫 明
(56)【参考文献】
【文献】米国特許出願公開第2013/0067116(US,A1)
【文献】特表2015-527760(JP,A)
【文献】特開2005-198243(JP,A)
【文献】特開2009-284055(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 21/00-21/858
(57)【特許請求の範囲】
【請求項1】
メディアコンテンツのプレイアウト同期システムであって、このシステムが、
ハードウェアプロセッサと、ソフトウェアコードを記憶しているシステムメモリとを含んでいるコンピューティングプラットフォームを具えており、
前記ハードウェアプロセッサは、前記ソフトウェアコードを実行して、
第1のメディアコンテンツをプレイしている第1のメディアプレイヤーから第1の状態メッセージを受信し、
前記第1の状態メッセージを受信した後、第1のタイム間隔でタイマーを始動させ、
前記第1のタイム間隔で始動された前記タイマーの終了前に、前記第1のメディアコンテンツと同じメディアコンテンツである第2のメディアコンテンツをプレイしている第2のメディアプレイヤーから第2の状態メッセージを受信し、
前記第2の状態メッセージを受信した後、第2のタイム間隔で前記タイマーを始動させ、
前記第2のタイム間隔で始動された前記タイマーの終了に応答して、前記第1の状態メッセージ又は前記第2の状態メッセージの少なくとも一方に基づいて、前記第1のメディアプレイヤーによる前記第1のメディアコンテンツ及び前記第2のメディアプレイヤーによる前記第2のメディアコンテンツのプレイアウトに対する調整状態を決定し、且つ
前記第2のタイム間隔で始動された前記タイマーの終了に応答して、前記調整状態を含む第1のコンテンツ調整メッセージを前記第1のメディアプレイヤーに送信するとともに、前記調整状態を含む第2のコンテンツ調整メッセージを前記第2のメディアプレイヤーに送信して、前記調整状態を用い、それぞれ前記第1のメディアプレイヤー及び前記第2のメディアプレイヤーによる前記第1のメディアコンテンツ及び前記第2のメディアコンテンツのプレイアウトを同期させる
ように構成されているメディアコンテンツのプレイアウト同期システム。
【請求項2】
請求項1に記載のメディアコンテンツのプレイアウト同期システムにおいて、前記第1の状態メッセージ又は前記第2の状態メッセージの少なくとも一方が、前記第1のメディアプレイヤー又は前記第2のメディアプレイヤーのそれぞれのメディアプレイヤーのユーザーによるアクションに対応するユーザーアクティビティデータを含んでいるようにしたメディアコンテンツのプレイアウト同期システム。
【請求項3】
請求項1に記載のメディアコンテンツのプレイアウト同期システムにおいて、前記第1のコンテンツ調整メッセージにより前記第1のメディアプレイヤーが前記第1のメディアコンテンツのプレイアウトを変更させるようにしたメディアコンテンツのプレイアウト同期システム。
【請求項4】
請求項1に記載のメディアコンテンツのプレイアウト同期システムにおいて、前記第1のコンテンツ調整メッセージにより、前記第1のメディアプレイヤーが前記第1のコンテンツのタイムコード及びフレームナンバーの一方に対して前記第1のメディアプレイヤーのプレイヘッド位置を変更させるようにしたメディアコンテンツのプレイアウト同期システム。
【請求項5】
請求項1に記載のメディアコンテンツのプレイアウト同期システムにおいて、前記第1のコンテンツ調整メッセージが更に、前記コンピューティングプラットフォームと前記第1のメディアプレイヤーとの間の通信用の第1の待ち時間の推定値を有しているメディアコンテンツのプレイアウト同期システム。
【請求項6】
請求項5に記載のメディアコンテンツのプレイアウト同期システムにおいて、前記第1の待ち時間の推定値を、前記第1のメディアプレイヤーに対し測定した複数のテスト待ち時間値の重み付けしたローリング平均に基づいて決定するようにしたメディアコンテンツのプレイアウト同期システム。
【請求項7】
請求項6に記載のメディアコンテンツのプレイアウト同期システムにおいて、前記複数のテスト待ち時間値の各々に適用される重みは、各テスト待ち時間値がどの程度最近に測定されたかに基づかせるようにしたメディアコンテンツのプレイアウト同期システム。
【請求項8】
請求項6に記載のメディアコンテンツのプレイアウト同期システムにおいて、前記複数のテスト待ち時間値の各々に適用される重みは、前記複数のテスト待ち時間値の標準の平均からのこれらテスト待ち時間値の各々の偏差に基づかせるようにしたメディアコンテンツのプレイアウト同期システム。
【請求項9】
請求項1に記載のメディアコンテンツのプレイアウト同期システムにおいて、前記第1の状態メッセージを受信すること、前記第2の状態メッセージを受信すること、前記調整状態を決定すること、並びに前記調整状態を前記第1のメディアプレイヤー及び前記第2のメディアプレイヤーに送信することは、全て周期的に繰り返されるメディアコンテンツのプレイアウト同期システム。
【請求項10】
ハードウェアプロセッサと、ソフトウェアコードを記憶しているシステムメモリとを有するコンピューティングプラットフォームを含むメディアコンテンツのプレイアウト同期システムによる使用方法であって、この使用方法が、
前記ハードウェアプロセッサにより実行された前記ソフトウェアコードにより、第1のメディアコンテンツをプレイしている第1のメディアプレイヤーから第1の状態メッセージを受信するステップと、
前記ハードウェアプロセッサにより実行された前記ソフトウェアコードにより、前記第1の状態メッセージを受信した後、第1のタイム間隔でタイマーを始動させるステップと、
前記第1のタイム間隔で始動された前記タイマーの終了前に、前記ハードウェアプロセッサにより実行された前記ソフトウェアコードにより、前記第1のメディアコンテンツと同じメディアコンテンツである第2のメディアコンテンツをプレイしている第2のメディアプレイヤーから第2の状態メッセージを受信するステップと、
前記ハードウェアプロセッサにより実行された前記ソフトウェアコードにより、前記第2の状態メッセージを受信した後、第2のタイム間隔で前記タイマーを始動させるステップと、
前記第2のタイム間隔で始動された前記タイマーの終了に応答して、前記ハードウェアプロセッサにより実行された前記ソフトウェアコードにより、前記第1の状態メッセージ又は前記第2の状態メッセージの少なくとも一方に基づいて、前記第1のメディアプレイヤーによる前記第1のメディアコンテンツ及び前記第2のメディアプレイヤーによる前記第2のメディアコンテンツのプレイアウトに対する調整状態を決定するステップと、
前記第2のタイム間隔で始動された前記タイマーの終了に応答して、前記ハードウェアプロセッサにより実行された前記ソフトウェアコードにより、前記調整状態を含む第1のコンテンツ調整メッセージを前記第1のメディアプレイヤーに送信するとともに、前記調整状態を含む第2のコンテンツ調整メッセージを前記第2のメディアプレイヤーに送信して、前記調整状態を用い、それぞれ前記第1のメディアプレイヤー及び前記第2のメディアプレイヤーによる前記第1のメディアコンテンツ及び前記第2のメディアコンテンツのプレイアウトを同期させるステップと
を具えている使用方法。
【請求項11】
請求項10に記載の使用方法において、前記第1の状態メッセージ又は前記第2の状態メッセージの少なくとも一方が、前記第1のメディアプレイヤー又は前記第2のメディアプレイヤーのそれぞれのメディアプレイヤーのユーザーによるアクションに対応するユーザーアクティビティデータを含んでいるようにした使用方法。
【請求項12】
請求項10に記載の使用方法において、前記第1のコンテンツ調整メッセージが、前記第1のメディアプレイヤーにより前記第1のメディアコンテンツのプレイアウトレートを変更するようにする使用方法。
【請求項13】
請求項10に記載の使用方法において、前記第1のコンテンツ調整メッセージが、前記第1のメディアプレイヤーにより前記第1のメディアコンテンツのタイムコード及びフレームナンバーの一方に対して前記第1のメディアプレイヤーのプレイヘッド位置を変更するようにする使用方法。
【請求項14】
請求項10に記載の使用方法が更に、前記コンピューティングプラットフォームと前記第1のメディアプレイヤーとの間の通信用の第1の待ち時間の推定値を決定するステップを具えている使用方法。
【請求項15】
請求項14に記載の使用方法において、前記第1の待ち時間の推定値を、前記第1のメディアプレイヤーに対し測定した複数のテスト待ち時間値の重み付けしたローリング平均に基づいて決定するようにする使用方法。
【請求項16】
請求項15に記載の使用方法において、前記複数のテスト待ち時間値の各々に適用される重みは、各テスト待ち時間値がどの程度最近に測定されたかに基づかせるようにする使用方法。
【請求項17】
請求項15に記載の使用方法において、前記複数のテスト待ち時間値の各々に適用される重みは、前記複数のテスト待ち時間値の標準の平均からのこれらテスト待ち時間値の各々の偏差に基づかせるようにする使用方法。
【請求項18】
請求項10に記載の使用方法において、前記第1の状態メッセージを受信するステップ、前記第2の状態メッセージを受信するステップ、前記調整状態を決定するステップ、並びに前記調整状態を前記第1のメディアプレイヤー及び前記第2のメディアプレイヤーに送信するステップは、全て周期的に繰り返される使用方法。
【請求項19】
第1のメディアプレイヤーによる第1のメディアコンテンツのプレイアウトを、前記第1のメディアコンテンツと同じメディアコンテンツである第2のメディアプレイヤーによる第2のメディアコンテンツのプレイアウトと同期させる使用方法であって、この使用方法が、
前記第1のメディアコンテンツをプレイすることを開始するステップと、
前記第1のメディアプレイヤーが前記第1のメディアコンテンツをプレイしている間に、前記第1のメディアプレイヤーのプレイヘッド位置、メディアコンテンツのプレイアウトレート及びネットワーク接続状態を含む第1の状態メッセージを調整用デバイスに送信するステップと、
前記第1の状態メッセージを前記調整用デバイスに送信するステップに応答して、前記第1のメディアプレイヤーによる前記第1のメディアコンテンツのプレイアウトに対する調整状態であって、前記第1の状態メッセージに基づいているこの調整状態を含んでいる第1のコンテンツ調整メッセージを前記調整用デバイスから受信するステップと、
前記第1のコンテンツ調整メッセージを用いる前記第1のメディアプレイヤーにより、前記第1のメディアプレイヤーのプレイアウトを前記第2のメディアプレイヤーによる前記第2のメディアコンテンツのプレイアウトと同期させるステップと、
この同期中及びその後に前記第1のメディアコンテンツをプレイアウトすることに続けるステップと
を具えている使用方法。
【請求項20】
請求項19に記載の使用方法において、前記第1の状態メッセージが、前記第1のメディアプレイヤーのユーザーによるアクションに対応するユーザーアクティビティデータを含むようにする使用方法。
【請求項21】
請求項19に記載の使用方法において、前記第1のコンテンツ調整メッセージにより前記第1のメディアプレイヤーが前記第1のメディアコンテンツのプレイアウトレートを変更させるようにする使用方法。
【請求項22】
請求項19に記載の使用方法において、前記第1のコンテンツ調整メッセージにより前記第1のメディアプレイヤーが前記第1のメディアコンテンツのタイムコード及びフレームナンバーの一方に対して前記第1のメディアプレイヤーのプレイヘッド位置を変更させるようにする使用方法。
【請求項23】
請求項19に記載の使用方法において、この使用方法が更に、
前記調整用デバイスと通信するための第1の待ち時間の推定値を決定するステップと、
この第1の待ち時間の推定値を前記第1の状態メッセージの一部として前記調整用デバイスに送信するステップと
を具えている使用方法。
【請求項24】
請求項23に記載の使用方法において、前記第1の待ち時間の推定値が前記第1のメディアプレイヤーにより測定された複数のテスト待ち時間値の重み付けしたローリング平均に基づいて決定されるようにした使用方法。
【請求項25】
請求項24に記載の使用方法において、前記複数のテスト待ち時間値の各々に適用される重みは、各テスト待ち時間値がどの程度最近に測定されたかに基づかせるようにする使用方法。
【請求項26】
請求項24に記載の使用方法において、前記複数のテスト待ち時間値の各々に適用される重みは、前記複数のテスト待ち時間値の標準の平均からのこれらテスト待ち時間値の各々の偏差に基づかせるようにする使用方法。
【請求項27】
請求項19に記載の使用方法であって、前記第1の状態メッセージを送信するステップ、前記第1のコンテンツ調整メッセージを受信するステップ、及び同期させるステップは、全て周期的に繰り返される使用方法。
【請求項28】
請求項19に記載の使用方法において、この使用方法が更に、
前記調整用デバイスから第1の待ち時間の推定値を受信するステップ
を具えている使用方法。
【請求項29】
請求項1に記載のメディアコンテンツのプレイアウト同期システムにおいて、前記第1の状態メッセージは、前記第1のメディアプレイヤーのプレイヘッド位置、メディアコンテンツのプレイアウトレート及びネットワーク接続状態を含む、メディアコンテンツのプレイアウト同期システム。
【請求項30】
メディアコンテンツのプレイアウトを同期するためのコンピューターサーバーであって、このコンピューターサーバーが、
ソフトウェアコードを記憶しているシステムメモリと、
ハードウェアプロセッサであって、前記ソフトウェアコードを実行して、
第1のメディアコンテンツをプレイしている第1のメディアプレイヤーから第1の状態メッセージを受信し、
前記第1のメディアコンテンツと同じメディアコンテンツである第2のメディアコンテンツをプレイしている第2のメディアプレイヤーから第2の状態メッセージを受信し、
前記第1の状態メッセージ又は前記第2の状態メッセージの少なくとも一方に基づいて、前記第1のメディアプレイヤーによる前記第1のメディアコンテンツのプレイアウト及び前記第2のメディアプレイヤーによる前記第2のメディアコンテンツのプレイアウトに対する調整状態を決定し、且つ
前記調整状態を含む第1のコンテンツ調整メッセージを前記第1のメディアプレイヤーに送信するとともに、前記調整状態を含む第2のコンテンツ調整メッセージを前記第2のメディアプレイヤーに送信して、前記調整状態を用い、それぞれ前記第1のメディアプレイヤー及び前記第2のメディアプレイヤーによる前記第1のメディアコンテンツ及び前記第2のメディアコンテンツのプレイアウトを同期させるように構成されている、ハードウェアプロセッサと、
を具え、
前記第1のコンテンツ調整メッセージは、前記第1のメディアコンテンツが継続して前記第1のメディアプレイヤーによってプレイアウトされている間に、前記第1のメディアプレイヤーに、前記調整状態を用い、前記第1のメディアコンテンツのプレイアウトレートを変更するか、或いは前記第1のメディアプレイヤーのプレイヘッド位置を変更するように命令し、
前記第2のコンテンツ調整メッセージは、前記第2のメディアコンテンツが継続して前記第2のメディアプレイヤーによってプレイアウトされている間に、前記第2のメディアプレイヤーに、前記調整状態を用い、前記第2のメディアコンテンツのプレイアウトレートを変更するか、或いは前記第2のメディアプレイヤーのプレイヘッド位置を変更するように命令
し、
前記第1のコンテンツ調整メッセージは、前記コンピューターサーバーと前記第1のメディアプレイヤーとの間の通信用の第1の待ち時間の推定値を更に含み、
前記第1の待ち時間の推定値は、前記第1のメディアプレイヤーに対し測定した複数のテスト待ち時間値の重み付けしたローリング平均に基づいて決定され、
前記第1の状態メッセージは、前記第1のメディアプレイヤーのプレイヘッド位置、メディアコンテンツのプレイアウトレート及びネットワーク接続状態を含む、コンピューターサーバー。
【請求項31】
請求項30に記載のコンピューターサーバーにおいて、前記第1のコンテンツ調整メッセージは、前記第1のメディアプレイヤーに、前記調整状態を用い、前記第1のメディアコンテンツのタイムコード又はフレームナンバーの一方に対して前記第1のメディアプレイヤーの前記プレイヘッド位置を変更するように命令する、コンピューターサーバー。
【請求項32】
請求項
30に記載のコンピューターサーバーにおいて、前記複数のテスト待ち時間値の各々に適用される重みは、各テスト待ち時間値がどの程度最近に測定されたか、或いは、前記複数のテスト待ち時間値の標準の平均からのこれらテスト待ち時間値の各々の偏差に基づく、コンピューターサーバー。
【請求項33】
請求項30に記載のコンピューターサーバーにおいて、前記第1の状態メッセージを受信すること、前記第2の状態メッセージを受信すること、前記調整状態を決定すること、並びに前記調整状態を前記第1のメディアプレイヤー及び前記第2のメディアプレイヤーに送信することは、全て周期的に繰り返される、コンピューターサーバー。
【請求項34】
請求項10に記載の使用方法において、前記第1の状態メッセージは、前記第1のメディアプレイヤーのプレイヘッド位置、メディアコンテンツのプレイアウトレート及びネットワーク接続状態を含む、使用方法。
【請求項35】
ハードウェアプロセッサと、ソフトウェアコードを記憶しているシステムメモリとを含むコンピューターサーバーによる、メディアコンテンツのプレイアウトを同期させるための使用方法であって、この使用方法が、
前記ハードウェアプロセッサにより実行された前記ソフトウェアコードにより、第1のメディアコンテンツをプレイしている第1のメディアプレイヤーから第1の状態メッセージを受信するステップと、
前記ハードウェアプロセッサにより実行された前記ソフトウェアコードにより、前記第1のメディアコンテンツと同じメディアコンテンツである第2のメディアコンテンツをプレイしている第2のメディアプレイヤーから第2の状態メッセージを受信するステップと、
前記ハードウェアプロセッサにより実行された前記ソフトウェアコードにより、前記第1の状態メッセージ又は前記第2の状態メッセージの少なくとも一方に基づいて、前記第1のメディアプレイヤーによる前記第1のメディアコンテンツ及び前記第2のメディアプレイヤーによる前記第2のメディアコンテンツのプレイアウトに対する調整状態を決定するステップと、
前記ハードウェアプロセッサにより実行された前記ソフトウェアコードにより、前記調整状態を含む第1のコンテンツ調整メッセージを前記第1のメディアプレイヤーに送信するとともに、前記調整状態を含む第2のコンテンツ調整メッセージを前記第2のメディアプレイヤーに送信して、前記調整状態を用い、それぞれ前記第1のメディアプレイヤー及び前記第2のメディアプレイヤーによる前記第1のメディアコンテンツ及び前記第2のメディアコンテンツのプレイアウトを同期させるステップと
を具え、
前記第1のコンテンツ調整メッセージは、前記第1のメディアコンテンツが継続して前記第1のメディアプレイヤーによってプレイアウトされている間に、前記第1のメディアプレイヤーに、前記調整状態を用い、前記第1のメディアコンテンツのプレイアウトレートを変更するか、或いは前記第1のメディアプレイヤーのプレイヘッド位置を変更するように命令し、
前記第2のコンテンツ調整メッセージは、前記第2のメディアコンテンツが継続して前記第2のメディアプレイヤーによってプレイアウトされている間に、前記第2のメディアプレイヤーに、前記調整状態を用い、前記第2のメディアコンテンツのプレイアウトレートを変更するか、或いは前記第2のメディアプレイヤーのプレイヘッド位置を変更するように命令
し、
前記第1のコンテンツ調整メッセージは、前記コンピューターサーバーと前記第1のメディアプレイヤーとの間の通信用の第1の待ち時間の推定値を更に含み、
前記第1の待ち時間の推定値は、前記第1のメディアプレイヤーに対し測定した複数のテスト待ち時間値の重み付けしたローリング平均に基づいて決定され、
前記第1の状態メッセージは、前記第1のメディアプレイヤーのプレイヘッド位置、メディアコンテンツのプレイアウトレート及びネットワーク接続状態を含む、使用方法。
【請求項36】
請求項
35に記載の使用方法において、前記第1のコンテンツ調整メッセージは、前記第1のメディアプレイヤーに、前記調整状態を用い、前記第1のメディアコンテンツのタイムコード又はフレームナンバーの一方に対して前記第1のメディアプレイヤーの前記プレイヘッド位置を変更するように命令する、使用方法。
【請求項37】
請求項
35に記載の使用方法において、前記複数のテスト待ち時間値の各々に適用される重みは、各テスト待ち時間値がどの程度最近に測定されたか、或いは、前記複数のテスト待ち時間値の標準の平均からのこれらテスト待ち時間値の各々の偏差に基づく、使用方法。
【請求項38】
請求項
35に記載の使用方法において、前記第1の状態メッセージを受信するステップ、前記第2の状態メッセージを受信するステップ、前記調整状態を決定するステップ、並びに前記調整状態を前記第1のメディアプレイヤー及び前記第2のメディアプレイヤーに送信するステップは、全て周期的に繰り返される、使用方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数のメディアプレイヤーに対するメディアコンテンツの配信調整に関するものである。
【背景技術】
【0002】
仕事及び学校教育の要求や、非現実的な愛着は全て、若者が大人になる際に、幼なじみや核家族に広まる傾向にある。その結果、しかも少なくとも部分的に長距離移動時の費用及び不便さが原因となって、外出することなくグループによる娯楽体験を家族や友人と共有しうるようにすることが望ましものとなる。例えば、幼児のいる夫婦は自宅で休日に映画を視聴するとともに、この視聴体験を他の州に住んでいる子供達の祖父母と共有することを望む場合があり、又は大学の友人のグループが彼らの母校に関係するスポーツイベントを一緒に視聴することを望む場合がある。
【0003】
共有するメディア消費経験において遠隔グループの参加を可能にするための通常の解決策に当っては、音声(オーディオ)/映像(ビデオ)の品質が悪いことや同期が悪いことを含む欠点が問題となっている。これらの従来の解決策は、幾つかのカテゴリーのうちの1つに該当する傾向にある。これらの解決策の1つの従来のカテゴリーでは、例えば“プレイ(play)”を同時に押すことにより遠隔の視聴者が互いに自分たちの入力を自分たちのメディアプレイヤーに調整することを必要としている。しかし、これらの解決策は、一般的に、人的誤差によるプレイアウト同期の欠如、或いはフレームレート及びバッファリング問題による同期のオーバータイムを経験するものである。
【0004】
これらの解決策の他の一般的なカテゴリーは、メディアコンテンツを捕捉して遠隔グループのメンバーに中継放送(リブロードキャスト)する第三者のサービスに依存するものである。しかし、これらの一般的な解決策は、一般的に、メディアコンテンツが各々の視聴者のデバイスにより独立してフェッチ(読み出し)されずにホストシステムから中継放送される為に比較的劣悪な音声及び映像を生ぜしめる。更に、遠隔グループの一員が一般的に放送を制御するホストとして作用する必要がある為、その結果のグループの経験は正確にインターラクティブ(対話的)とはならない。
【0005】
デジタルエンターテインメントの同期の問題はマルチプレーヤーオンラインゲームにおいても生じる。これらの環境においては、遠隔ゲーミングデバイスはゲーム環境を局所的にするとともに、(例えば、キャラクターの移動及びアクションに関する)ユーザー入力を中央のサーバーと通信し、同時に他のユーザーのキャラクターの移動及びアクションに関する入力を中央のサーバーから受信するものである。待ち時間(レイテンシー)問題は、遠隔デバイスがキャラクターの移動及びアクションを局所的に予測することにより対処するものであり、その後これらの予測は必要に際してのみサーバーの命令により無効にされる。待ち時間減少及び同期に対するこれらの解決策は音声/映像放送、ストリーミング及び再生の環境に対しては適用しうるものではない。
【図面の簡単な説明】
【0006】
【
図1】
図1は、複数のメディアプレイヤーに対するメディアコンテンツの配信を調整するための模範的なシステムを示す本発明の一実施例による線図である。
【
図2】
図2は、
図1の複数のメディアプレイヤーに対するメディアコンテンツの配信を調整するための模範的なシステムをより詳細に示す本発明の一実施例による線図である。
【
図3】
図3は、複数のメディアプレイヤーに対するメディアコンテンツの配信を調整するための模範的なシステムを示す本発明の他の実施例による線図である。
【
図4】
図4は、
図3の複数のメディアプレイヤーに対するメディアコンテンツの配信を調整するための模範的なシステムをより詳細に示す本発明の一実施例による線図である。
【
図5】
図5は、メディアコンテンツのプレイアウトを同期させるためのシステムにより用いるための模範的な方法を示す本発明の一実施例による流れ図である。
【
図6】
図6は、複数のメディアプレイヤーに対するメディアコンテンツの配信を調整するためのシステムにより用いるためのユーザー状態データを含む例示的な状態メッセージのリストを示す本発明の一実施例による説明図である。
【
図7】
図7は、メディアコンテンツの配信の調整に関するデバウンスタイム間隔(インターバル)の影響を表すメッセージの模範的な表を示す本発明の一実施例による説明図である。
【
図8】
図8は、待ち時間推定装置に入力すべき待ち時間データの収集を表す線図である。
【
図9】
図9は、メディアプレイヤーと、複数のメディアプレイヤーに対するメディアコンテンツの配信を調整するためのシステムとの間の通信に関する待ち時間の影響を示す本発明の模範的な一実施例による線図である。
【
図10】
図10は、第1のメディアプレイヤーによるメディアコンテンツのプレイアウトを、第2のメディアプレイヤーによる同じメディアコンテンツの他のインスタンス化のプレイアウトと同期させるために用いるための模範的な方法を表す本発明の一実施例による流れ図である。
【発明を実施するための形態】
【0007】
以下の説明は、本明細書の開示における実施例に関する特定の情報を包含するものである。当業者は、本明細書の開示をここに明示した方法とは異なる方法で実施しうることを認識しうるであろう。本出願における図面及びこれらに付随する詳細な説明は、単に模範的な実施例に向けたものである。特に断らない限り、図面中の同様な又は対応する要素を同様な又は対応する参照符号により表すことができる。更に、本出願における図面及びイラストは一般的に実際のものに正比例するものではなく、且つ実際の相対寸法に対応することを意図するものでもない。
【0008】
本出願は、従来技術における欠点及び欠陥を克服するメディアコンテンツの配信を調整するためのシステム及び方法を開示するものである。ここに開示するシステム及び方法によれば、複数のユーザーがライブコンテンツ及び記録したメディアコンテンツに適用しうる同期コンテンツを同時に楽しむための強い解決策を提供するものである。本発明の原理の種々の実施例によれば、各ユーザーはコンテンツ調整サービスに対する双方向及び継続的な接続を有するメディアプレイヤーを用いる。各ユーザーは、各ユーザーにミラーリングされる単一のストリーミングセッションを共有するのではなく、個々にストリーミングするか、さもなければ同じコンテンツの異なるインスタンス化をアクセスするようにしうる。
【0009】
例えば、幾つかの実施例では、ユーザーはメディアプレイヤーメモリ又はその他のローカルメモリ(例えば、DVR、DVD等)に局部的に記憶された同じコンテンツのインスタンス化を有することができる。これらの実施例では、ユーザーが同じメディアコンテンツをメモリから直接アクセスすることができる。他の実施例では、一人のユーザーがケーブル、サテライト又は無線通信のような予定の放送を通じてコンテンツを見ているその間に、他のユーザーが同じコンテンツを、インターネットストリーミング接続を介して見ているか又はローカルメモリからアクセスしているようにしうる。更に他の実施例では、全てのユーザーが同じコンテンツ(例えば、ライブ放送のスポーツイベント)のライブ放送又はインターネットストリームをアクセスしているようにしうる。
【0010】
更に、一人のユーザーが制御用のホストとして作用するようにする必要があるのではなく、各ユーザーがコンテンツ同期を決定する要素に影響を及ぼす能力を有するようにしうる。それにもかかわらず、一人以上のユーザーが特定の共有メディアコンテンツ消費セッションに亘ってより優れた制御を行使することが有利となる又は望ましくなるようにした実施例では、この又はこれらのユーザーがこのセッション中にメディアコンテンツの提示制御において一人又は複数人のホストとして作用するようにしうる。
【0011】
本出願の目的に対して規定したように、“メディアコンテンツ”及び“同じメディアコンテンツ”なる表現は、実質上同じタイムコードシーケンス又はタイムラインを有する同じ一次コンテンツを含んでいるコンテンツを相互に交換可能に参照するものであるが、補足コンテンツ又は補助コンテンツにおける変化を含むことができることに注意されたい。例えば、本明細書で使用する場合、コンテンツをプログラミングする映画又はテレビジョン(TV)の形態での同じメディアコンテンツは、同じ配列の映像フレームを含むようにすることができるが、種々に異なる言語で表される対話を伴うように、又はユーザーの嗜好に依存する種々に異なる音声トラックを伴うようにすることができ。
【0012】
他の例としては、スポーツコンテンツの形態における同じメディアコンテンツは、種々に異なるカメラ又は種々に異なる視点により捕捉される、或いはまた種々に異なる放送ネットワークにより配布(分散)される映像から見た同じスポーツイベントを参照するようにすることができる。更に他の例としては、シンクロダンスパーティーの同じメディアコンテンツには、種々に異なるダンサーの場面を同じ音楽に対して見せる種々に異なるカメラアングルを含めることができる。
【0013】
他の例では、二人のユーザーが一次コンテンツを見うるようにすることができ、この場合一方のユーザーの一次コンテンツは二次コンテンツにより補足されているが他方のユーザーの一次コンテンツは二次コンテンツにより補足されていない。このことは、例えば、第2のユーザーが映像ストリーミングサービスに対するコマーシャルのないサブスクリプションを有する場合であって他のユーザーが有しない場合に生じる可能性がある。この場合、第1のユーザーのストリームにおけるコマーシャルが二次コンテンツを構成するが、読者は二人のユーザーが本発明の目的のための“同じコンテンツ”を見ていることを理解するであろう。
【0014】
更に、幾つかの実施例では、“メディアコンテンツ”及び“同じメディアコンテンツ”が、共有するコンテンツ消費経験に反応する個々のユーザーのイメージを含むようにしうる。例えば、インターネットに基づくチャットルームの個人のユーザーに対しローカルなカメラが、このチャットルームの他のユーザーとのチャットルーム相互作用に応答して、この個人のユーザーの顔の表情、体の動作又は発言をとらえ且つ送信することができる。或いはまた、同じ娯楽(エンターテインメント)コンテンツを見ているグループの個人メンバーに対しローカルなカメラが、この娯楽コンテンツを見ていることに対するこのグループのメンバーの反応をとらえ且つ送信することができる。
【0015】
更に、本出願中で定義するように、用語“インスタンス化”とは上述したようにメディアコンテンツの明確な単位を参照するものであることに注意されたい。すなわち、同じメディアコンテンツの種々に異なるインスタンス化は、同じメディアコンテンツの種々に異なるデータストリーム、或いは同じメディアコンテンツの種々に異なるコピー又はバージョンを含む種々に異なるデジタルメディアファイル、或いは同じメディアコンテンツの種々に異なるコピー又はバージョンが記憶されている物理的なメディアの種々に異なる単位を参照するものである。
【0016】
図1は、複数のメディアプレイヤーに対するメディアコンテンツの配信を調整するための模範的なシステム100を示す本発明の一実施例による線図である。この
図1に示すように、このシステム100は、ハードウェアプロセッサ104とシステムメモリ106とを有するコンピューティングプラットフォーム102を具えており、システムメモリ106はユーザーデータベース108とソフトウェアコード110とを記憶する非一過性の記憶装置として構成されている。模範的な本実施例によれば、ソフトウェアコード110はメディアプレイアウト調整モジュール112と、待ち時間補償モジュール114と、メディアプレイアウトレート及び位置制御モジュール116と、ユーザーアプリケーション118とを具えている。
【0017】
更に
図1に示すように、システム100は、通信ネットワーク120と、コンテンツサーバー124と、それぞれディスプレイ138a及び138bを有するとともにそれぞれユーザー128a及び128bにより用いられるメディアプレイヤー130a及び130bとを含む使用環境内に設けられている。更に、
図1はコンピューティングプラットフォーム102及びコンテンツサーバー124をメディアプレイヤー130a及び130bとインターラクティブ(対話的)に接続するネットワーク通信リンク122を示している。又
図1には、第1のメディアコンテンツ126a及び第2のメディアコンテンツ126bと、メディアプレイヤー130aによりにより提供される状態メッセージ132aと、メディアプレイヤー130bによりにより提供される状態メッセージ132bと、ソフトウェアコード110によりそれぞれのメディアプレイヤー130a及び130bに出力されるコンテンツ調整メッセージ134a及び134bとが示されている。第1のメディアコンテンツ126a及び第2のメディアコンテンツ126bは同じメディアコンテンツの互いに異なるインスタンス化126a及び126bであることに注意されたい。
【0018】
本出願は、概念上の明瞭化のためにシステムメモリ106内に記憶されているものとしてソフトウェアコード110を参照しているが、より一般的には、システムメモリ106は任意のコンピューター可読式の非一過性の記憶媒体の形態をとるようにしうることに注意されたい。本出願で用いる表現“コンピューター可読式の非一過性の記憶媒体”は、命令をコンピューティングプラットフォーム102のハードウェアプロセッサ104に供給する搬送波又はその他の一時的な信号を除く如何なる媒体をも参照するものである。従って、コンピューター可読式の非一過性の記憶媒体は、例えば、揮発性メディア及び不揮発性メディアのような種々の型のメディアに対応しうる。揮発性メディアにはダイナミックランダムアクセスメモリ(ダイナミックRAM)のようなダイナミックメモリを含めることができ、一方不揮発性メモリには光記憶装置、又は磁気記憶装置、又は静電記憶装置を含めることができる。コンピューター可読式の非一過性のメディアの一般的な形態には、例えば、光ディスク、RAM、プログラマブル読み取り専用メモリ(PROM)、消去可能なPROM(EPROM)及びフラッシュメモリが含まれる。
【0019】
図1は、ユーザーデータベース108と、メディアプレイアウト調整モジュール112、待ち時間補償モジュール114、メディアプレイアウトレート及び位置制御モジュール116、ユーザーアプリケーション118を具えているソフトウェアコード110とをシステムメモリ106内に一緒に記憶しているものとして示しているが、この表現は単に概念上の明瞭化に対する補助としても提供していることにも注意されたい。より一般的には、システム100にはコンピューターサーバーのような1つ以上のコンピューティングプラットフォーム102を設けることができ、例えば、複数のコンピューティングプラットフォーム102が同一個所に共同設置されているか、又は例えばクラウド型システムのような、インターラクティブにリンクされているが配布するシステムを構成するようにしうる。
【0020】
その結果として、ハードウェアプロセッサ104及びシステムメモリ106はシステム100内の配布プロセッサ及びメモリリソースに対応しうる。従って、ユーザーデータベース108と、ソフトウェアコード110のメディアプレイアウト調整モジュール112、待ち時間補償モジュール114、メディアプレイアウトレート及び位置制御モジュール116及びユーザーアプリケーション118とは、互いに遠隔的に記憶させるとともにシステム100の配布プロセッサリソースを用いて実行させることができる。
【0021】
幾つかの実施例によれば、ユーザー128a及び128bは、それぞれのメディアプレイヤー130a及び130bを用いて第1のメディアコンテンツ126a及び第2のメディアコンテンツ126bの共有する且つほぼ同期するメディア消費経験に参加するようにしうる。幾つかの実施例では、第1のメディアコンテンツ126a及び第2のメディアコンテンツ126bはコンテンツサーバー124により提供されるメディアコンテンツの互いに異なるデータストリームとすることができる。他の実施例では、第1のメディアコンテンツ126a及び第2のメディアコンテンツ126bはコンテンツサーバー124により提供されるデジタルメディアファイルの互いに異なるコピーとすることができる。更に他の実施例では、第1のメディアコンテンツ126a及び第2のメディアコンテンツ126bはそれぞれのメディアプレイヤー130a及び130b上に局部的に記憶させることができる。これらの後者の実施例では、第1のメディアコンテンツ126a及び第2のメディアコンテンツ126bの1つ以上をメディアプレイヤー130a及び130bの一方又は双方のコンピューター可読式の非一過性の媒体に記憶させることができる。
【0022】
コンピューティングプラットフォーム102を含むシステム100は、ユーザー128a及び128bがそれぞれのメディアプレイヤー130a及び130bを用いて第1のメディアコンテンツ126a及び第2のメディアコンテンツ126bの共有するメディア消費経験においてインターラクティブに参加することを可能にするメディアコンテンツ調整サービスを提供する。このような1つの実施例では、コンピューティングプラットフォーム102が、例えば、インターネットのようなパケット交換ネットワークを通じてアクセスしうる1つ以上のウエブサービスに対応するようにしうる。或いはまた、コンピューティングプラットフォーム102が、ローカルエリアネットワーク(LAN)を支持している、或いは他の型のプライベート又は制限されている配布ネットワークに含まれている1つ以上のコンテンツサーバーに対応するようにしうる。
【0023】
図1では、メディアプレイヤー130aをデスクトップコンピューターとして示しており、一方メディアプレイヤー130bはスマートテレビジョン(スマートTV)として示しているが、これらの表示は単に模範的なものであることに注意されたい。より一般的には、メディアプレイヤー130a及び130bは、コンピューティングプラットフォーム102から遠く離れているとともに、ユーザーインターフェースを提供し、通信ネットワーク120に対する接続を支援し、且つこれらのメディアプレイヤー130a及び130bに帰属する機能を実行するのに充分なデータ処理を実施しうる何らかの適切なモバイル或いは固定のコンピューティングデバイス又はシステムを用いることにより実行することができる。例えば、他の実施例では、メディアプレイヤー130a及び130bの一方又は双方を、例えば、ラップトップコンピューター、又はタブレットコンピューター、又はスマートフォン又はゲーム機の形態にすることができる。
【0024】
更に、メディアプレイヤー130a及び130bのそれぞれのディスプレイ138a及び138bは、液晶ディスプレイ(LCD)、又は発光ダイオード(LED)ディスプレイ、又は有機発光ダイオード(OLED)ディスプレイ、又は光への信号の物理的変換を行いうる他の適切なディスプレイスクリーンとして実現することができることに注意されたい。又、幾つかの実施例では、ディスプレイ138a及び138bの一方又は双方を、拡張現実(AR)、又は仮想現実(VR)、又はホログラフィックディスプレイとして実現するか、或いはオーディオデバイス、又は点字デバイス、又は無効(ディスエーブル)状態のユーザーにアクセス可能性を提供するその他の出力デバイスの形態にすることができることにも注意されたい。
【0025】
幾つかの実施例では、システム100にコンピューティングプラットフォーム102を含めることができるが、コンテンツプレイアウト調整サービスを提供するための如何なるメディアプレイヤーをも含めることができない。すなわち、幾つかの実施例では、システム100にコンピューティングプラットフォーム102を含めることができるが、メディアプレイヤー130a及び130bを含めることができない。しかし、他の実施例では、システム100に、コンピューティングプラットフォーム102に加えてメディアプレイヤー130a及び130bを含めるようにすることができる。
【0026】
更に、ソフトウェアコード110は、メディアプレイアウト調整モジュール112及びユーザーアプリケーション118に加えて待ち時間補償モジュール114とメディアプレイアウトレート及び位置制御モジュール116とを含めるように示してあるが、この表示は単に模範的なものである。幾つかの他の実施例では、ソフトウェアコード110から、待ち時間補償モジュール114とメディアプレイアウトレート及び位置制御モジュール116とを随意省略するようにすることができる。これらの実施例では、待ち時間補償モジュール114とメディアプレイアウトレート及び位置制御モジュール116とのバージョンをメディアプレイヤー130a及び130bに存在させることができる。
【0027】
図2は、
図1の複数のメディアプレイヤーに対するメディアコンテンツの配信を調整するための模範的なシステムをより詳細に示す本発明の一実施例による線図である。この
図2に示すように、システム200は、ネットワーク通信リンク222を通じてメディアプレイヤー230a及び230bにインターラクティブに接続されているコンピューティングプラットフォーム202を含んでいる。更に
図2に示すように、コンピューティングプラットフォーム202はハードウェアプロセッサ204と、ユーザーデータベース208及びソフトウェアコード210を記憶している非一過性の記憶装置として構成されているシステムメモリ206とを含んでいる。この
図2に示す模範的な実施例によれば、ソフトウェアコード210は、メディアプレイアウト調整モジュール212と、待ち時間補償モジュール214と、メディアプレイアウトレート及び位置制御モジュール216と、ユーザーアプリケーション218とを含んでいる。
【0028】
又
図2に示すように、メディアプレイヤー230aはディスプレイ238aと、ハードウェアプロセッサ234aと、ユーザーアプリケーション218aを記憶しているメモリ236aとを含んでおり、一方メディアプレイヤー230bはディスプレイ238bと、ハードウェアプロセッサ234bと、ユーザーアプリケーション218bを記憶しているメモリ236bとを含んでいる。メディアプレイヤー230a及び230bのそれぞれのメモリ236a及び236bは非一過性の記憶装置であることに注意されたい。この模範的な実施例によれば、ユーザーアプリケーション218aは待ち時間補償モジュール214a及びメディアプレイアウトレート及び位置制御モジュール216aを含んでおり、一方ユーザーアプリケーション218bは待ち時間補償モジュール214b及びメディアプレイアウトレート及び位置制御モジュール216bを含んでいる。
図2には、第1のメディアコンテンツ226a及び第2のメディアコンテンツ226bをも示してある。
【0029】
ネットワーク通信リンク222と、第1のメディアコンテンツ226a及び第2のメディアコンテンツ226bと、ハードウェアプロセッサ204及びシステムメモリ206を含むコンピューティングプラットフォーム202とは、一般的に、
図1におけるネットワーク通信リンク122と、第1のメディアコンテンツ126a及び第2のメディアコンテンツ126bと、ハードウェアプロセッサ104及びシステムメモリ106を含むコンピューティングプラットフォーム102とに対応する。更に、
図2における、ユーザーデータベース208と、メディアプレイアウト調整モジュール212、待ち時間補償モジュール214、メディアプレイアウトレート及び位置制御モジュール216、及びユーザーアプリケーション218を含むソフトウェアコード210とは、一般的に、
図1における、ユーザーデータベース108と、メディアプレイアウト調整モジュール112、待ち時間補償モジュール114、メディアプレイアウトレート及び位置制御モジュール116及びユーザーアプリケーション118を含むソフトウェアコード110とに対応する。換言すると、ソフトウェア210は本明細書の開示により対応するソフトウェアコード110に起因する特徴の何れをも共有することができ、その逆も可能である。
【0030】
ディスプレイ238a及び238bをそれぞれ有するメディアプレイヤー230a及び230bは、一般的に、
図1においてディスプレイ138a及び138bをそれぞれ有するメディアプレイヤー130a及び130bにそれぞれ対応する。換言すると、メディアプレイヤー230a及び230bと、ディスプレイ238a及び238bとは、本明細書の開示により対応する、メディアプレイヤー130a及び130bと、ディスプレイ138a及び138bとに起因する特徴の何れをも共有することができ、その逆も可能である。従って、
図1には示されていないが、メディアプレイヤー130aは、ハードウェアプロセッサ234aと、ユーザーアプリケーション218a及び第1のメディアコンテンツ226aを記憶しているメモリ236aとに対応する特徴を含むことができ、一方メディアプレイヤー130bは、ハードウェアプロセッサ234bと、ユーザーアプリケーション218b及び第2のメディアコンテンツ226bを記憶しているメモリ236bとに対応する特徴を含むことができる。
【0031】
幾つかの実施例では、ユーザーアプリケーション218a及び218bには、それぞれ待ち時間補償モジュール214a及び214bの一方又は双方とメディアプレイアウトレート及び位置制御モジュール216a及び216bの一方又は双方とを含めることができることに注意されたい。しかし、他の実施例では、ユーザーアプリケーション218a及び218bでは待ち時間補償モジュール214a及び214bの一方又は双方とメディアプレイアウトレート及び位置制御モジュール216a及び216bの一方又は双方とを随意省略するようにすることができる。
【0032】
図2に示す模範的な実施例によれば、メディアプレイヤー130a/230aのメモリ236a内にユーザーアプリケーション218aを位置させ、メディアプレイヤー130b/230bのメモリ236b内にユーザーアプリケーション218bを位置させ、これらユーザーアプリケーション218a及び218bはコンピュータープラットフォーム102/202から通信ネットワーク120及びネットワーク通信リンク122/222を介して受信するものとする。一実施例では、ネットワーク通信リンク122/222は、例えば、パケット交換ネットワークを通じるユーザーアプリケーション118a/218a及び118b/218bの転送に対応するものである。例えば、ネットワーク通信リンク122/222を通じてダウンロードされることにより一旦転送されると、ユーザーアプリケーション118a/218a及び118b/218bはそれぞれメモリ236a及び236b内に持続的に記憶されとともに、それぞれハードウェアプロセッサ234a及び234bによりそれぞれメディアプレイヤー130a/230a及び130b/230b上で局部的に実行されるようにしうる。
【0033】
ハードウェアプロセッサ234a及び234bは、例えば、それぞれメディアプレイヤー130a/230a及び130b/230bに対する中央処理装置(CPU)とすることができ、その役割においてハードウェアプロセッサ234a及び234bはそれぞれメディアプレイヤー130a/230a及び130b/230bに対するオペレーティングシステムを実行するとともに、それぞれユーザーアプリケーション218a及び218bを実行する。上述したように、ディスプレイ238a及び238bは、液晶のLCD、LEDディスプレイ、OLEDディスプレイか又は光への信号の物理的変換を実行する何らかの適切なディスプレイスクリーンの形態をとることができる。
【0034】
図3は、複数のメディアプレイヤーに対するメディアコンテンツの配信を調整するための模範的なシステム300の本発明の他の実施例による線図を示している。この
図3に示すように、システム300は、ピアツーピア(P2P)ネットワーク350及びネットワーク通信リンク352を通じてインターラクティブに接続されるリモートメディアプレーヤー330a、330b及び330cを含んでいる。更に、
図3は、ユーザー328a、328b及び328cと、メディアプレイヤー330a、330b及び330cのそれぞれのディスプレイ338a、338b及び338cとを示している。又
図3には、メディアプレイヤー330aにより提供される状態メッセージ332aと、メディアプレイヤー330bにより提供される状態メッセージ332bと、メディアプレイヤー330cによりメディアプレイヤー330a及び330bにそれぞれ出力されるコンテンツ調整メッセージ334a及び334bとが示されている。
【0035】
図3に示す実施例によれば、ユーザー328a、328b及び328cが、それぞれメディアプレイヤー330a、330b及び330cを利用して同じメディアコンテンツの異なるインスタンス化の共有する且つ実質的に同期するコンテンツ消費経験に参加することができる。しかし、
図1及び2に示す実施例とは対照的に、メディアプレイヤー330cはユーザー328a、328b及び328cがそれぞれメディアプレイヤー330a、330b及び330cを用いて共有するメディア消費経験にインターラクティブに参加することを可能にするプレイアウト調整サービスを提供する。
【0036】
メディアプレイヤー330aはデスクトップコンピューターとして示しており、一方メディアプレイヤー330bはスマートTVとして示しているとともにメディアプレイヤー330cはスマートフォンとして示しているが、これらの表示は単に模範的なものであることに注意されたい。より一般的には、メディアプレイヤー330a、330b及び330cは、ユーザーインターフェースを提供し、P2Pネットワーク350に対する接続を支援し、これらのメディアプレイヤー330a、330b及び330cに対して帰属する機能を実行するのに充分なデータ処理を実施しうる何らかの適切なモバイル或いは固定のコンピューティングデバイス又はシステムを用いることにより実行することができる。例えば、他の実施例では、メディアプレイヤー330a、330b及び330cの1つ以上を、例えば、ラップトップコンピューター、又はタブレットコンピューター、又はゲーム機の形態にすることができる。
【0037】
更に、メディアプレイヤー330a、330b及び330cのそれぞれのディスプレイ338a、338b及び338cは、LCD、又はLEDディスプレイ、又はOLEDディスプレイ、又は光への信号の物理的変換を行いうる他の適切なディスプレイスクリーンとして実現することができることに注意されたい。又、幾つかの実施例では、ディスプレイ338a、338b及び338cの1つ以上を、AR、又はVR、又はホログラフィックディスプレイとして実現するか、或いはオーディオデバイス、又は点字デバイス、又は無効状態のユーザーにアクセス可能性を提供するその他の出力デバイスの形態にすることができることにも注意されたい。
【0038】
図4は、
図3の複数のメディアプレイヤーに対するメディアコンテンツの配信を調整するための模範的なシステムをより詳細に示す本発明の一実施例による線図である。この
図4に示すように、システム400はネットワーク通信リンク452を通じてメディアプレイヤー430a及び430bにインターラクティブに接続されているメディアプレイヤー430cを含んでいる。更に
図4に示すように、メディアプレイヤー430cはディスプレイ438cと、ハードウェアプロセッサ434cと、ユーザーアプリケーション418cを記憶している非一過性の記憶装置として構成されているメモリ436cとを含んでいる。この
図4に示す模範的な実施例によれば、ユーザーアプリケーション418cは、ユーザーデータベース408cと、メディアプレイアウト調整モジュール412cと、待ち時間補償モジュール414cと、メディアプレイアウトレート及び位置制御モジュール416cとを含んでいる。
【0039】
又
図4に示すように、メディアプレイヤー430aは、ディスプレイ438aと、ハードウェアプロセッサ434aと、ユーザーアプリケーション418aを記憶しているメモリ436aとを含んでおり、一方メディアプレイヤー430bはディスプレイ438bと、ハードウェアプロセッサ434bと、ユーザーアプリケーション418bを記憶しているメモリ436bとを含んでいる。メディアプレイヤー430a及び430bのそれぞれのメモリ436a及び436bは非一過性の記憶装置であることに注意されたい。この模範的な実施例によれば、ユーザーアプリケーション418aはユーザーデータベース408aと、メディアプレイアウト調整モジュール412aと、待ち時間補償モジュール414aと、メディアプレイアウトレート及び位置制御モジュール416aとを含んでおり、一方ユーザーアプリケーション418bはユーザーデータベース408bと、メディアプレイアウト調整モジュール412bと、待ち時間補償モジュール414bと、メディアプレイアウトレート及び位置制御モジュール416bとを含んでいる。
図4には、それぞれ同じコンテンツである第1のメディアコンテンツ426aと、第2のメディアコンテンツ426bと、第3のメディアコンテンツ426cとをも示してある。
【0040】
ネットワーク通信リンク452と、それぞれディスプレイ438a、438b及び438cを有するメディアプレイヤー430a、430b及び430cとは、それぞれ一般的に、
図3におけるネットワーク通信リンク352と、それぞれディスプレイ338a、338b及び338cを有するメディアプレイヤー330a、330b及び330cと対応する。換言すれば、メディアプレイヤー330a、330b及び330c並びにディスプレイ338a、338b及び338cは本明細書の開示により対応するメディアプレイヤー430a、430b及び430c並びにディスプレイ438a、438b及び438cに起因する特徴の何れをも共有することができ、その逆も可能である。従って、
図3には示されていないが、メディアプレイヤー330cは、ハードウェアプロセッサ434cと、ユーザーアプリケーション418c及び第3のメディアコンテンツ426cを記憶しているメモリ436cとに対応する特徴を含むことができる。更に、メディアプレイヤー330aは、ハードウェアプロセッサ434aと、ユーザーアプリケーション418a及び第1のメディアコンテンツ426aを記憶しているメモリ436aとに対応する特徴を含むことができ、一方メディアプレイヤー330bは、ハードウェアプロセッサ434bと、ユーザーアプリケーション418b及び第2のメディアコンテンツ426bを記憶しているメモリ436bとに対応する特徴を含むことができる。
【0041】
図4に示す模範的な実施例によれば、ユーザーアプリケーション418a、418b及び418cの各々に、それぞれユーザーデータベース408a、408b及び408cと、メディアプレイアウト調整モジュール412a、412b及び412cと、待ち時間補償モジュール414a、414b及び414cと、メディアプレイアウトレート及び位置制御モジュール416a、416b及び416cとを含めることができる。しかし、メディアプレイヤー330a/430a、330b/430b及び330c/430cのうちの1つのみ(すなわち、メディアプレイヤー330c/430c)がユーザー328a、338b及び328cにより楽しんでいる調整済みのコンテンツ消費経験に対する制御用のホストとして作用する。
【0042】
図3を参照して上述したように、
図1及び2により示している実施例とは対照的に、メディアプレイヤー330c/430cは、ユーザー328a、338b及び328cがそれぞれのメディアプレイヤー330a/430a、330b/430b及び330c/430cを用いる共有のメディア消費経験においてインターラクティブに参加することを可能にするプレイアウト調整サービスを提供する。従って、
図3及び4に示す実施例において、第1のメディアコンテンツ426a、第2のメディアコンテンツ426b及び第3のメディアコンテンツ426cに対するコンテンツ消費サービスを提供するコンピューティングプラットフォーム102/202が第3のメディアコンテンツ426cを実行するメディアプレイヤー330c/430cと一体化されるものである。
【0043】
更に、
図3及び4に示す実施例においては、ソフトウェアコード110/210がユーザーアプリケーション418a、418b及び418cの何れか1つの形態をとる。すなわち、メディアプレイヤー330c/430cがメディアプレイヤー330a/430a及び330b/430bに対してプレイアウト調整サービスを提供する模範的な使用事例によれば、メディアプレイヤー330c/430cに存在するユーザーアプリケーション418cは可能になったソフトウェアコード110/210の特徴及び機能の全てを有するようにしうる。更に、この模範的な使用事例においては、ユーザーアプリケーション418a及び418bは、メディアプレイヤー330c/430cと通信するとともにそれぞれのコンテンツ調整メッセージ334a及び334b内に含まれるコンテンツ調整状態を実施するためのクライアントアプリケーションとして機能しうる。
【0044】
システム100/200/300/400の機能を
図1、2、3及び4(以後“
図1~4”と称する)と組み合わせた
図5を参照することにより更に説明する。
図5は、メディアコンテンツのプレイアウトを同期させるためのシステムにより用いるための模範的な方法を示す本発明の一実施例による流れ
図560を示す。この
図5において概説する方法に関しては、本出願における発明上の特徴の説明を不明瞭としないためにある種の細部及び特徴を流れ
図560から省略していることに注意されたい。
【0045】
図1~4と一緒に
図5を参照するに、流れ
図560はメディアプレイヤー130a/230a/330a/430a又は130b/230b/330b/430bのうちの1つから第1の状態メッセージ132a/332a又は132b/332bを受信することから開始する(アクション561)。概念上の明瞭化のために、状態メッセージ132a/332aを“第1の状態メッセージ132a/332a”と称し、一方メディアプレイヤー130a/230a/330a/430aを以後“第1のメディアプレイヤー130a/230a/330a/430a”と称することに注意されたい。従って、アクション561は第1のメディアコンテンツ126a/226a/426aをプレイしている第1のメディアプレイヤー130a/230a/330a/430aから第1の状態メッセージ132a/332aを受信することに対応する。更に、メディアプレイヤー130b/230b/330b/430bを以後“第2のメディアプレイヤー130b/230b/330b/430b”と称し、状態メッセージ132b/332bを“第2の状態メッセージ132b/332b”と称する。しかし、メディアプレイヤー130a/230a/330a/430aを“第1のメディアプレイヤー”と表示し、メディアプレイヤー130b/230b/330b/430bを“第2のメディアプレイヤー”と表示するのは単に任意的なものであり、他の実施例ではこれらの役割を逆にすることができる。
【0046】
幾つかの実施例では、第1のメディアコンテンツ126a/226a/426aと第2のメディアコンテンツ126b/226b/426bとをライブコンテンツとすることができる。例えば、第1のメディアコンテンツ126a/226a/426aを、コンテンツサーバー124から第1のメディアプレイヤー130a/230a/330a/430aにストリーミングされたライブビデオフィードとすることができる。
【0047】
他の実施例では、第1のメディアコンテンツ126a/226a/426aと第2のメディアコンテンツ126b/226b/426bとは記録されているメディアコンテンツとすることができる。例えば、第1のメディアコンテンツ126a/226a/426aは、例えば、第1のメディアプレイヤー130a/230a/330a/430aによりコンテンツサーバー124から受信した動画コンテンツ又はテレビジョンプログラミングコンテンツのデータストリームとすることができる。或いはまた、幾つかの実施例では、第1のメディアコンテンツ126a/226a/426aを、例えば、第1のメディアプレイヤー130a/230a/330a/430aに局部的に記憶した動画コンテンツ又はテレビジョンプログラミングコンテンツのデジタルメディアファイルとすることができる。
【0048】
第1の状態メッセージ132a/332aは、複数のユーザーの再生セッションに対する第1のメディアプレイヤー130a/230a/330a/430aの状態(state)又は第1のメディアプレイヤー130a/230a/330a/430aの状況(condition)、或いは映像の再生に対するユーザーによるアクションに関する情報を含んでいる。第1の状態メッセージ132a/332aや、第2の状態メッセージ132b/332bに包含されるデータの例には、“ユーザーがセッションを作成する”又は“ユーザーがセッションに参加する”のようなセッション関連のユーザーアクションや、“ユーザーがメディアプレイをトリガする”又は“ユーザーがメディアポーズをトリガする”又は“ユーザーがプレイヘッド位置Xに対するメディアを探す”のようなユーザーの再生アクションを記述しているユーザーアクティビティデータが含まれる。ユーザーアクティビティデータの他の例や、付随するメタデータを
図6に示してある。ユーザーアクティビティデータは関連するメタデータと一緒に、第1のメディアプレイヤー130a/230a/330a/430aにより生ぜしめられる第1の状態メッセージ132a/332a内に含めることができる。種々の実施例では、第1の状態メッセージ132a/332a及び第2の状態メッセージ132b/332bを単一のユーザーアクションに、又は進行中で累積するユーザーアクションに対応させることができる。
【0049】
例えば、単一のユーザーアクションに対応させる場合、第1の状態メッセージ132a/332a及び第2の状態メッセージ132b/332bが、例えば、開始のプレイアウト、ポーズのプレイアウト、再開のプレイアウトのような種々のユーザーアクションのうちの何れか1つを説明するか、或いは第1のメディアプレイヤー130a/230a/330a/430a及び第2のメディアプレイヤー130b/230b/330b/430bのオペレーティング状態又は接続性状態に対して説明するようにしうる。進行中のユーザーアクションに対応させる場合、第1の状態メッセージ132a/332a及び第2の状態メッセージ132b/332bが、第1のメディアコンテンツ126a/226a/426a及び第2のメディアコンテンツの消費に関するユーザーアクションの全て、又はそのサブセット(部分集合)を説明するようにしうる。
図6はユーザーアクティビティデータ及びメタデータを含む模範的な状態メッセージのリスト600を示している。第1の状態メッセージ132a/332a及び第2の状態メッセージ132b/332bには、
図6に与えているメタデータの説明に加えて、使用しているネットワーク接続の種類、例えば、Wi-Fi又はセルラーや、メディアプレイヤーを含むデバイスの種類、例えば、スマートフォン、タブレット型コンピューター又はスマートTVを含めることができる。
【0050】
第1の状態メッセージ132a/332aは、
図6に含まれる模範的な状態メッセージにより示されるようなユーザー128a/328aにより取られるアクションに応答して第1のメディアプレイヤー130a/230a/330a/430aから受信されるようにしうる。更に、幾つかの実施例では、ユーザー128a/328aによるアクションが存在しない場合でも、第1の状態メッセージ132a/332aをスケジュールに基づいて第1のメディアプレイヤー130a/230a/330a/430aから受信するようにしうる。すなわち、幾つかの実施例では、第1の状態メッセージ132a/332aを、第1のメディアプレイヤー130a/230a/330a/430aにより周期的に提供される“状態メッセージのハートビート”の形態で第1のメディアプレイヤー130a/230a/330a/430aから受信するようにしうる。本明細書で用いる場合、用語“状態メッセージのハートビート”は、例えば、肯定的なユーザーアクションのような、他のトリガ事象が存在しない際に自動的に生じる周期的な状態メッセージを意味するものであることに注意されたい。
【0051】
図1及び2に示す実施例では、コンピューティングプラットフォーム102/202のハードウェアプロセッサ104/204により且つメディアプレイアウト調整モジュール112/212を用いて実行されるソフトウェアコード110/210により第1の状態メッセージ132aを受信することができる。しかし、
図3及び4に示す実施例によれば、メディアプレイヤー330c/430cのハードウェアプロセッサ434cにより且つメディアプレイアウト調整モジュール412cを用いて実行されるユーザーアプリケーション418cにより第1の状態メッセージ332aを受信することができる。
【0052】
ユーザー328a、328b及び328cにより楽しんでいる調整済みのコンテンツ消費経験に対する制御用のホストとしてメディアプレイヤー330c/430cを指定することは単に任意的なものであることを強調する。システム300/400の他の実施例では、アクション561や、以下に説明するアクション562、563及び564を、それぞれのハードウェアプロセッサ434a及び434bにより遂行されるユーザーアプリケーション418a又は418bの何れかにより実行することができる。
【0053】
流れ
図560は、第2のメディアコンテンツ126b/226b/426bをプレイしている第2のメディアプレイヤー130b/230b/330b/430bから第2の状態メッセージ132b/332bを受信する段階に進み、この場合第1のメディアコンテンツ126a/226a/426aと第2のメディアコンテンツ126b/226b/426bとは同じメディアコンテンツとする(アクション562)。第2の状態メッセージ132b/332b内に含まれているユーザーアクティビティデータ及びメタデータを有するデータの種類の例を、第1の状態メッセージ132a/332a及び
図6を参照することにより上述したものである。
【0054】
図1及び2に示す実施例では、コンピューティングプラットフォーム102/202のハードウェアプロセッサ104/204により且つメディアプレイアウト調整モジュール112/212を用いて実行されるソフトウェアコード110/210により第2の状態メッセージ132bを受信することができる。しかし、
図3及び4に示す実施例によれば、メディアプレイヤー330c/430cのハードウェアプロセッサ434cにより且つメディアプレイアウト調整モジュール412cを用いて実行されるユーザーアプリケーション418cにより第2の状態メッセージ332bを受信することができる。
【0055】
流れ
図560は、第1の状態メッセージ132a/332a及び第2の状態メッセージ132b/332bのうちの1つ以上に基づいて、第1のメディアプレイヤー130a/230a/330a/430aにより第1のメディアコンテンツ126a/226a/426aの且つ第2のメディアプレイヤー130b/230b/330b/430bにより第2のメディアコンテンツ126b/226b/426bのプレイアウトに対し調整状態(以後“所望の調整状態”とも称する)を決定する段階に進む(アクション563)。幾つかの実施例では、第1のメディアプレイヤー130a/230a/330a/430a及び第2のメディアプレイヤー130b/230b/330b/430bに対する所望の調整状態を、第1のメディアプレイヤー130a/230a/330a/430a又は第2のメディアプレイヤー130b/230b/330b/430bの何れかから受信されるごく最近の状態メッセージに基づいて決定することができる。しかし、他の実施例では、所望の調整状態を決定するのに他の基準を用いることができる。
【0056】
例えば、
図3及び4を参照するに、投票システムを用いて第1の330a/430a、第2のメディアプレイヤー330b/430b及び330c/430cのうちの1つ以上から受信される状態メッセージに基づいて所望の調整状態を決定することができる。特定の例としては、第1のメディアプレイヤー330a/430a、第2のメディアプレイヤー330b/430b及び330c/430cのうちの1つがプレイヘッド位置を新たなプレイヘッド位置に変更させるのを開始すると、コンピューティングプラットフォーム102/202により提供されるコンテンツ調整サービスが全ての他のメディアプレイヤーに変更及び探求(シーキング)の承認又は不承認を表すメッセージを送信するようにしうる。他のメディアプレイヤーのユーザーの大部分が又は他の予め決定された複数のユーザーが同意する場合には、新たなプレイヘッド位置が所望の調整状態となる。他のメディアプレイヤーのユーザーの大部分が又は他の予め決定された複数のユーザーが同意しない場合には、調整状態における変更は存在しない。
【0057】
他の例としては、第1のメディアプレイヤー330a/430a、第2のメディアプレイヤー330b/430b及びメディアプレイヤー330c/430cのうちの1つ以上には、同じコンテンツの配信又はプレイアウトを調整する際に、例えば、それぞれのユーザー328a、328b及び328cの予め決定された階層(例えば、リーダー/主権者、ロイヤリティ状態、等)に基づいてより高い優先度を割り当てることができる。これらの実施例のうちのあるものでは、状態メッセージを第1のメディアプレイヤー330a/430a、第2のメディアプレイヤー330b/430b及びメディアプレイヤー330c/430cから受信する順序にかかわらず、より高い優先度を有するものとして(例えば、ユーザーIDに基づいて)識別したメディアプレイヤーから受信した状態メッセージを選択することにより所望の調整状態を決定することができる。
【0058】
更に他の例としては、幾つかのユースケース(使用事例)において、一人以上のユーザーから受信した状態メッセージを、ユーザー特定の又はセッション特定の何れかの根拠で無視することができる。例えば、共有するメディアコンテンツ消費セッション中に破壊的な行動に携わっているユーザーは、このセッションの残りに対する所望の調整状態を決定する際に、自身の状態メッセージを考慮から除外することができる。このような悪い行動に一貫して携わっているユーザーは、将来の全てのセッション中に所望の調整状態を決定する際に自身の状態メッセージを永続的に考慮から除外することができる。
【0059】
図1及び2に示す実施例では、コンピューティングプラットフォーム102/202のハードウェアプロセッサ104/204により実行されるとともにメディアプレイアウトレート及び位置制御モジュール116/216を用いるソフトウェアコード110/210により所望の調整状態を決定することができる。しかし、
図3及び4に示す実施例によれば、メディアプレイヤー430cのハードウェアプロセッサ434cにより実行されるとともにメディアプレイアウトレート及び位置制御モジュール416cを用いるユーザーアプリケーション418cにより所望の調整状態を決定することができる。
【0060】
流れ
図560は、所望の調整状態を含む第1のコンテンツ調整メッセージ134a/334aを第1のメディアプレイヤー130a/230a/330a/430aに送信するとともに、所望の調整状態を含む第2のコンテンツ調整メッセージ134b/334bをも第2のメディアプレイヤー130b/230b/330b/430bに送信し、所望の調整状態を用いて第1のメディアプレイヤー130a/230a/330a/430a及び第2のメディアプレイヤー130b/230b/330b/430bによりそれぞれ第1のメディアコンテンツ126a/226a/426a及び第2のメディアコンテンツ126b/226b/426bのプレイアウトを実質的に同期させるようにする(アクション564)ことで終わらせることができる。
【0061】
第1のコンテンツ調整メッセージ134a/334a及び第2のコンテンツ調整メッセージ134b/334bは、第1のメディアプレイヤー130a/230a/330a/430a及び第2のメディアプレイヤー130b/230b/330b/430bに情報を提供するようにフォーマットされているデータを含んでおり、このデータがこれらメディアプレイヤーにより用いられてコンテンツの再生を調節するアクションを講じ、これにより再生を複数のメディアプレイヤーのユーザーに対して同期しうるようにする。幾つかの実施例では、第1のコンテンツ調整メッセージ134a/334a及び第2のコンテンツ調整メッセージ134b/334bによれば、メディアプレイヤーにより局所的に解釈される基本的なデータを再生命令内に含めるようにすることができ、一方他の実施例では、第1のコンテンツ調整メッセージ134a/334a及び第2のコンテンツ調整メッセージ134b/334bがコンピューティングプラットフォーム102/202によりメディアプレイヤーの命令内に組織化されるとともに、メディアプレイヤーに配信されるようにする。
【0062】
上述したように、第1のコンテンツ調整メッセージ134a/334a及び第2のコンテンツ調整メッセージ134b/334bはシステム100/200/300/400により提供されて、第1のメディアプレイヤー130a/230a/330a/430a及び第2のメディアプレイヤー130b/230b/330b/430bによりそれぞれ第1のメディアコンテンツ126a/226a/426a及び第2のメディアコンテンツ126b/226b/426bのプレイアウトを実質的に同期させるようにする。従って、且つ第1のメディアプレイヤー130a/230a/330a/430a及び第2のメディアプレイヤー130b/230b/330b/430bのコンテンツプレイアウト状態が互いに依存することにより、第1のコンテンツ調整メッセージ134a/334a及び第2のコンテンツ調整メッセージ134b/334bにより、第1のメディアプレイヤー130a/230a/330a/430a及び第2のメディアプレイヤー130b/230b/330b/430bの一方又は双方がメディアコンテンツのプレイアウトレートを増大又は減少させるか又はそのプレイヘッド位置を完全に変更させるようにしうる。第1のコンテンツ調整メッセージ134a/334a及び第2のコンテンツ調整メッセージ134b/334bの1つ以上がプレイヘッド位置の変更をもたらすユースケースにおいては、このようなプレイヘッド位置の変更はコンテンツのタイムコード又はフレームナンバーに対するようにしうる。
【0063】
図1及び2に示す実施例では、コンテンツ調整メッセージ134a及び134bは、コンピューティングプラットフォーム102/202のハードウェアプロセッサ104/204により実行され且つ通信ネットワーク120を用いるソフトウェアコード110/210により第1のメディアプレイヤー130a/230a及び第2のメディアプレイヤー130b/230bにそれぞれ出力させることができる。しかし、
図3及び4に示す実施例によれば、コンテンツ調整メッセージ334a及び334bを、メディアプレイヤー430cのハードウェアプロセッサ434cにより実行され且つP2Pネットワーク350を用いるユーザーアプリケーション418cにより、第1のメディアプレイヤー330a/430a及び第2のメディアプレイヤー330b/430bにそれぞれ出力させることができる。
【0064】
更に、
図1及び2に示す実施例によれば、幾つかのユースケースにおいて、ハードウェアプロセッサ104/204によりソフトウェアコード110/210を実行して、第1の状態メッセージ132a及び第2の状態メッセージ132bを周期的に受信し、所望の調整状態を決定し、この所望の調整状態を第1のメディアプレイヤー130a/230a及び第2のメディアプレイヤー130b/230bに送信して、第1のメディアプレイヤー130a/230a及び第2のメディアプレイヤー130b/230bによりそれぞれ第1のメディアコンテンツ126a/226a及び第2のメディアコンテンツ126b/226bのプレイアウトの同期を保つようにすることができる。同様に、
図3及び4に示す実施例によれば、幾つかのユースケースにおいて、ハードウェアプロセッサ434cによりユーザーアプリケーション418cを実行して、第1の状態メッセージ332a及び第2の状態メッセージ332bを周期的に受信し、所望の調整状態を決定し、この所望の調整状態を第1のメディアプレイヤー330a/430a及び第2のメディアプレイヤー330b/430bに送信して、第1のメディアプレイヤー330a/430a及び第2のメディアプレイヤー330b/430bによりそれぞれ第1のメディアコンテンツ426a及び第2のメディアコンテンツ426bのプレイアウトの同期を保つようにすることができる。
【0065】
ほぼ13パーセントよりも少ないプレイアウトレートにおける変更、すなわちプレイアウトレートの増大又は減少はユーザーにとって殆ど感知できない可能性がある。従って、第1のメディアプレイヤー130a/230a/330a/430a及び第2のメディアプレイヤー130b/230b/330b/430b間の非同期化を、第1のメディアプレイヤー130a/230a/330a/430a及び第2のメディアプレイヤー130b/230b/330b/430bの何れか又は双方の13パーセントよりも少ないプレイアウトレートにおける変更によって改善しうる場合、第1のメディアプレイヤー130a/230a/330a/430a及び第2のメディアプレイヤー130b/230b/330b/430bのプレイアウトレートを変更することを好ましい選択肢とすることができる。しかし、第1のメディアプレイヤー130a/230a/330a/430a及び第2のメディアプレイヤー130b/230b/330b/430bの同期にプレイアウトレートにおけるより大きい変更を必要とするユースケースでは、第1のメディアプレイヤー130a/230a/330a/430a及び第2のメディアプレイヤー130b/230b/330b/430bの一方又は双方のプレイヘッド位置を変更させることが有利となりうる。
【0066】
又、当該技術分野で周知のように、個々のメディアプレイヤーは、代表的に、本明細書に記載したシステムのようなメディア配布システムによりアクセスしうるプレイアウトレートレート制御用の自身のプロトコルを有する。従って、プレイアウトレートを調整するのに用いる特定の技術はメディアプレイヤーのそれぞれ異なる種類に応じて変更しうる。例えば、ある場合に、特定のメディアプレイヤーはプレイアウトレートをフレームドロッピングにより増大させるか、又はフレームダブリングにより減少させることができる。すなわち、第1のメディアプレイヤー130a/230a/330a/430a及び第2のメディアプレイヤー130b/230b/330b/430bの各々は、第1のコンテンツ調整メッセージ134a/334a及び第2のコンテンツ調整メッセージ134b/334bに含まれる所望の調整状態に応答して、この所望の調整状態と比べた際のそれ自体の現在の局所状態に基づいてそれ自体のプレイアウトレートを調節することができる。
【0067】
流れ
図560には含まれていないが、幾つかの実施例では、第1の状態メッセージ132a/332aが受信されるのに応答してタイマーを始動させることをこの方法に含めることができる。例としては、アクション561において第1の状態メッセージ132a/332aが受信されると、コンピューティングプラットフォーム102/202又はメディアプレイヤー330c/430cによりデバウンスタイマーを開始させて、第1の状態メッセージ132a/332a及び第2の状態メッセージ132b/332bのうちの複数が矢継ぎ早に受信されている状態を適切に対処するようにしうる。第1の状態メッセージ132a/332aが受信される、コンピューティングプラットフォーム102/202又はメディアプレイヤー330c/430cによりタイマーを始動させ、これのトラックを以下のようにして保つようにしうる。タイマーが予め決定されたデバウンスタイム間隔に達する前に、第1の状態メッセージ132a/332a又は第2の状態メッセージ132b/332bとは別のメッセージが第1のメディアプレイヤー130a/230a/330a/430a又は第2のメディアプレイヤー130b/230b/330b/430bの1つから受信されると、タイマーをリセットさせることができる。
【0068】
図1及び2に示す実施例では、コンピューティングプラットフォーム102/202のハードウェアプロセッサ104/204により実行され且つメディアプレイアウト調整モジュール112/212を用いるソフトウェアコード110/210により、タイマーを始動させるとともにリセットさせることができる。しかし、
図3及び4に示す実施例によれば、メディアプレイヤー330c/430cのハードウェアプロセッサ434cにより実行され且つメディアプレイアウト調整モジュール412cを用いるユーザーアプリケーション418cにより、タイマーを始動させるとともにリセットさせることができる。
【0069】
図7は、コンピューティングプラットフォーム102/202又はメディアプレイヤー330c/430cと、第1のメディアプレイヤー130a/230a/330a/430a及び第2のメディアプレイヤー130b/230b/330b/430bとの間で交換されるとともに、上述したデバウンスタイム間隔の影響を表すメッセージの模範的な表700を示している。パターン化していない(白抜き)ボタン770は、コンピューティングプラットフォーム102/202又はメディアプレイヤー330c/430cから第1のメディアプレイヤー130a/230a/330a/430a及び第2のメディアプレイヤー130b/230b/330b/430bに送信されるメッセージを表している。パターン化した(ラインを付した)ボタン772は、コンピューティングプラットフォーム102/202又はメディアプレイヤー330c/430cによる第1の状態メッセージ132a/332a又は第2の状態メッセージ132b/332bの矢継ぎ早の受信を表している、すなわち、第1の状態メッセージ132a/332a又は第2の状態メッセージ132b/332bの幾つかの例がデバウンスタイム間隔中に受信されることを表している。デバウンスタイム間隔の終了後には、ハードウェアプロセッサ104/204によりソフトウェアコード110/210を実行するか、又はハードウェアプロセッサ424cによりユーザーアプリケーション418cを実行して、第1のメディアプレイヤー130a/230a/330a/430aによる第1のメディアコンテンツ126a/226a/426aのプレイアウトレートを、第2のメディアプレイヤー130b/230b/330b/430bによる第2のメディアコンテンツ126b/226b/426bのプレイアウトレートと同期させるための所望の調整状態を決定するようにしうる。
【0070】
特定の例として、且つ
図7を参照することに続けるに、コンピューティングプラットフォーム102/202又はメディアプレイヤー330c/430cにより提供されるコンテンツ調整サービスが表700のステップ10、12及び14により示されているようにデバウンス待ちモード内にある場合には、ステップ9、11及び13のメッセージにおいて受信される第1の状態メッセージ132a/332a又は第2の状態メッセージ132b/332bが組み合わさって前の状態から前進させるための所望の調整状態を決定する(ステップ8)。この機能は、デバウンス間隔が経過する前に第1の状態メッセージ132a/332a又は第2の状態メッセージ132b/332bのうちの幾つの例が受信されたかにかかわらず適用しうるものである(例えば、ステップ6、7及び8を参照されたい)。
【0071】
更に流れ
図560に含まれていないが、幾つかの実施例では、コンピューティングプラットフォーム102/202と第1のメディアプレイヤー130a/230a及び第2のメディアプレイヤー130b/230bの各々との間の通信と関連する待ち時間、又はメディアプレイヤー330c/430cと第1のメディアプレイヤー330a/430a及び第2のメディアプレイヤー330b/430bの各々との間の通信と関連する待ち時間を決定するのが有利又は望ましい場合がある。
【0072】
図1及び2に示す実施例に関しては、コンピューティングプラットフォーム102/202と第1のメディアプレイヤー130a/230a及び第2のメディアプレイヤー130b/230bの各々との間の待ち時間は、例えば、ソフトウェアコード110/210の待ち時間補償モジュール114/214を用いるコンピューティングプラットフォーム102/202により、又はユーザーアプリケーション218a及び218bのそれぞれの待ち時間補償モジュール114a及び214bをそれぞれ用いる第1のメディアプレイヤー130a/230a及び第2のメディアプレイヤー130b/230bの各々により推定又は決定することができる。すなわち、幾つかの実施例では、ハードウェアプロセッサ104/204によりソフトウェアコード110/210を実行して第1のメディアプレイヤー130a/230aから第1の待ち時間の推定値を且つ第2のメディアプレイヤー130b/230bから第2の待ち時間の推定値を受信するようにしうる。
【0073】
類推するに、メディアプレイヤー330c/430cと第1のメディアプレイヤー330a/430a及び第2のメディアプレイヤー330b/430bの各々との間の待ち時間の決定は、例えば、ユーザーアプリケーション418cの待ち時間補償モジュール414cを用いるメディアプレイヤー330c/430cにより、又はユーザーアプリケーション418a及び418bのそれぞれの待ち時間補償モジュール414a及び414bをそれぞれ用いる第1のメディアプレイヤー330a/430a及び第2のメディアプレイヤー330b/430bの各々により推定又は決定することができる。従って、幾つかの実施例では、ハードウェアプロセッサ434cによりユーザーアプリケーション418cを実行して、第1のメディアプレイヤー330a/430aから第1の待ち時間の推定値を且つ第2のメディアプレイヤー330b/430bから第2の待ち時間の推定値を受信するようにしうる。
【0074】
如何にして待ち時間を決定しうるかの例としては、第1のメディアプレイヤー130a/230aがそのコンピューティングプラットフォーム102/202との通信の待ち時間を決定する特定の実施例が考えられるであろう。しかし、以下に説明する処理が、コンピューティングプラットフォーム102/202により又はメディアプレイヤー130b/230bと、330a/430aと、330b/430bと、330c/430cとの何れかにより用いるのに容易に適合されることに注意されたい。
図8は待ち時間推定装置に入力すべき待ち時間データの収集を表す線
図800を示す。
【0075】
一実施例において、第1のメディアプレイヤー130a/230a、通信ネットワーク120及びコンピューティングプラットフォーム102/202を特に参照するに、コンピューティングプラットフォーム102/202がメッセージを第1のメディアプレイヤー130a/230aに送信するか又は第1のメディアプレイヤー130a/230aがメッセージをコンピューティングプラットフォーム102/202に送信するたびに、メッセージを送信する時とメッセージを受信する時との間に待ち時間の時間差が生じる。実質的なプレイヘッドの同期を達成するための現在の解決策の精度を改善するには、各メッセージに対するこの待ち時間の予想量を決定するとともに、同期補正を以下に説明するように適用することが好ましい。
【0076】
図8に示すように、第1のメディアプレイヤー130a/230aは、通信のラウンドトリップに対して経過する時間を決定するために、コンピューティングプラットフォーム102/202に対するピング(ping)要求を周期的に行うことができる。各ピングのラウンドトリップの持続時間に基づく待ち時間値(以後“テスト待ち時間値”とも称する)は、“N”個のごく最近に記憶されるテスト待ち時間値のトラックを保つサーキュラー(循環)ドリフトバッファ内に記憶することができるものであり、ここでNはこの場合の模範的な待ち時間決定処理の構成パラメータである。従って、ドリフトバッファ内のテスト待ち時間値を用いて、例えば、重み付けローリング平均又は指数関数のローリング平均としうるローリング平均を計算することができる。
【0077】
例えば、一実施例には、ドリフトバッファ内のテスト待ち時間値のローリング平均を計算し、ドリフトバッファ内の各テスト待ち時間値をどのくらい最近であるかによって重み付けし、より最近の値にはより大きい重みが与えられるようにする。加えて又は代わりに、ドリフトバッファ内の各待ち時間値に適用される重み付けは、そのドリフトバッファ値の現在の標準平均、すなわちドリフトバッファ内のテスト待ち時間値の平均又は中間値からの偏差に基づくようにしうる。すなわち、待ち時間の決定に関する外れ値の影響を減少させるためには、標準の平均又は中間値からの偏差がより大きいテスト待ち時間値には、より低い重みを与えることができる。
【0078】
上述した場合の特定の例として、最も古い値を最初に記載するとともに最も新しい値を最後に記載した10要素(10エレメント)のドリフトバッファ内の以下のテスト待ち時間値、すなわち0.053、0.048、0,017、0.012、0.047、0.049、0.044、0.028、0.61、0.034を仮定する。本例において用いた模範的なテスト待ち時間値は
図8に示した模範的なテスト待ち時間とは異なっていることに注意されたい。この場合のテスト待ち時間の各々に対しては、テスト待ち時間値が如何に最近であるかのリニアマッピング(線形写像)に基づくリーセンシーの重みを、[0,要素の総数-1]のドメインから[0.5,1.0]の範囲までで計算し、最も新しいテスト待ち時間値を1.0にマッピングし、最も古いテスト待ち時間値を0.5にマッピングするようにする。例えば、上述した設定では、“0.61”のテスト待ち時間値に1.0に近いリーセンシーの重みが割り当てられるであろう。その理由は、この値が2番目に最も新しいテスト待ち時間値である為である。
【0079】
又、これらのテスト待ち時間値の各々に対し、[0.0,最大偏差]から[0.0,1.0]の範囲までで各テスト待ち時間値が標準平均からどのくらい逸脱しているかの指数関数のマッピングに基づいて偏差の重みを計算し、最大に逸脱しているテスト待ち時間値を0.0にマッピングするようにすることができる。本明細書で使用する場合、表現“指数関数のマッピング”は二乗にしたリニアマッピング、すなわち(リニアマッピング)2を参照できることに注意されたい。更に、指数関数のマッピングをこの例で用いることにより、大きな外れ値を重みにおいて著しく減少させることに注意されたい。例えば、上述した設定では、“0.61”のテスト待ち時間値に0.0に近い極めて低い偏差の重みが割り当てられるであろう。その理由は、このテスト待ち時間値が、ドリフトバッファにおける他の如何なるテスト待ち時間値よりも、全てのテスト待ち時間値の標準の平均、すなわち0.0952からはるかに多く逸脱している為である。
【0080】
この場合、ドリフトバッフアの各要素に対し、2つの重みを乗法により“合成重み”として識別される各要素に対する複合重み値に合成することができる。例えば、上述した設定では、“0.61”のテスト待ち時間値が0.0に近い極めて低い合成重みを有するであろう。その理由は、そのリーセンシーの重みは高い(上記を参照されたい)一方、その偏差の重みは極めて低い(上記を参照されたい)為である。
【0081】
上記に基づくに、ドリフトバッフアの要素の重み付けローリング平均は次のように計算しうる。
[数1]
(SUM(ドリフト値・ドリフト値の合成重み))/(SUM(ドリフト値の合成重み))
注意:上述したサンプル設定の場合、この重み付けした平均はほぼ0.0372であり標準の平均、すなわち、0.0952とは対照的である。
【0082】
この場合、ローリング平均を第1のメディアプレイヤー130a/230aとコンピューティングプラットフォーム102/202との間の送信及び通信処理中に考慮して、プレイヘッドの同期を改善するようにしうる。例えば、第1のメディアプレイヤー130a/230aのプレイヘッドがプレイしている状態にあり、且つ第1のメディアプレイヤー130a/230aが新たなプレイヘッドタイム“X”を探す場合、第1のメディアプレイヤー130a/230aによりコンピューティングプラットフォーム102/202に送信される第1の状態メッセージ132a/332aが上記の計算結果のローリング平均から得られたXにオフセットを加えるであろう。更に、第1のメディアプレイヤー130a/230aはこのオフセットを用いて、コンピューティングプラットフォーム102/202のソフトウェアコード110/210により第1のメディアプレイヤー130a/230aに出力された第1のコンテンツ調整メッセージ134a/334aの待ち時間を決定するようにしうる。
【0083】
殆ど途切れないコンテンツ同期経験を更に促進させるために、例えば、コンピューティングプラットフォーム102/202と第1のメディアプレイヤー130a/230aとの間の通信と関連する待ち時間を、第1のコンテンツ調整メッセージ134aがアクション565に応答して第1のメディアプレイヤー130a/230aにより如何に適用されるかにおいて考慮することができる。例えば、一実施例では、第1のメディアプレイヤー130a/230aのプレイヘッド位置が、待ち時間に対し調節された第1のコンテンツ調整メッセージ134a内に特定された所望の調整状態からの予め決定されたしきい値差内にある場合には、メディアプレイヤー130a/230aのプレイヘッド位置に対し変更が行われない。
【0084】
第1のコンテンツ調整メッセージ134a内に特定され、上述した予め決定されたしきい値距離よりも大きいが他の予め決定されたしきい値距離よりも小さいことにより待ち時間に対し調節された所望の調整状態とは第1のメディアプレイヤー130a/230aのプレイヘッド位置が相違するユースケースでは、他の同期戦略を採用しうる。例えば、第1のメディアプレイヤー130a/230aのプレイアウトレートを、上述したように、計算したタイム間隔に対して僅かな割合だけ変更して、第1のメディアプレイヤー130a/230aのプレイヘッドが、例えば、ハートビート間隔としうるタイム間隔の終了時に適切な同期に達するようにすることができる。
【0085】
特定の例としては、すなわち、第1のメディアプレイヤー130a/230aのプレイヘッド位置がより遅いプレーヤーよりも0.3秒だけ前である場合には、第1のメディアプレイヤー130a/230aのプレイアウトレートを0.3秒の持続時間に対し10パーセントだけ下方調節することができる。第1のメディアプレイヤー130a/230aのプレイアウトレートは、この持続時間の最後に、又は次のコンテンツ調整メッセージ134aが受信される際に、デフォルトプレイアウトレートに戻される。上述したように、プレイアウトレートを変更する割合は、この変更が第1のメディアプレイヤー130a/230aのユーザー128aにとって殆ど感知できないように選択することができる。
【0086】
第1のメディアプレイヤー130a/230aにおいて特定され、待ち時間に対し2つよりも多い上述した予め決定されたしきい値差だけ調節した所望の調整状態とは第1のメディアプレイヤー130a/230aのプレイヘッド位置が相違するユースケースにおいては、第1のメディアプレイヤー130a/230aのプレイアウトレートが変更されない場合がある。その代わり、第1のメディアプレイヤー130a/230aのプレイヘッドを、(例えば、第1のコンテンツ調整メッセージ134内に含まれる“スキッピング”又は“シーキング”命令を介して)所望の調整状態のプレイヘッド位置に直接移動させることができる。
【0087】
上述した予め決定されたしきい値差は、この手法の設定可能なパラメータであることに注意されたい。待ち時間がコンピューティングプラットフォーム102/202と第1のメディアプレイヤー130a/230aとの間のメッセージの交換及び処理に如何に影響するかの例を
図9により示している。更に、コンピューティングプラットフォーム102/202と第1のメディアプレイヤー130a/230aとの間の待ち時間がコンピューティングプラットフォーム102/202により決定される実施例では、第1のコンテンツ調整メッセージ134aにコンピューティングプラットフォーム102/202と第1のメディアプレイヤー130a/230aとの間の通信に対する第1の待ち時間の推定値を含めることができることに注意されたい。
【0088】
図10は、第1のメディアプレイヤー130a/230a/330a/430aにより第1のメディアコンテンツ126a/226a/426aのプレイアウトを、第2のメディアプレイヤー130b/230b/330b/430bによる第2のメディアコンテンツ126b/226b/426bのプレイアウトと同期させるために用いるための模範的な方法を表す本発明の一実施例による流れ
図1080を示す。概念上の明瞭化のために、流れ
図1080により概説する方法を、
図1及び2により示す模範的な実施例を参照して説明することに注意されたい。それにもかかわらず、この方法は
図3及び4に示す実施例にも同様に適用しうることを強調しておく。更に、コンピューティングプラットフォーム102/202は以下の説明において“調整用デバイス”と称することに注意されたい。
【0089】
流れ
図1080は、各々が同じメディアコンテンツをプレイしている複数のメディアプレイヤーのうちの第1のメディアプレイヤーによりメディアコンテンツをプレイすることを開始することから始まる(アクション1081)。例えば、
図1及び2を参加するに、第1のメディアプレイヤー130a/230aは第1のメディアコンテンツ126a/226aをプレイすることから開始しうる。流れ
図1080は、複数のメディアプレイヤーによるメディアコンテンツのプレイアウトのために調整用デバイスに状態メッセージを送信する段階に進む(アクション1082)。
図1及び2を参加することに続いて、第1のメディアプレイヤー130a/230aが第1のメディアコンテンツ126a/226aをプレイしている間に、第1のメディアプレイヤー130a/230aにより第1の状態メッセージ132aを調整用デバイスに送信することができる。第1の状態メッセージ132aには、プレイヘッド位置の1つ以上と、メディアコンテンツのプレイアウトレートと、第1のメディアプレイヤー130a/230aのネットワーク接続状態とを含めることができる。
【0090】
流れ
図1080は、調整用デバイスからコンテンツ調整メッセージを受信する段階に進み、この場合このコンテンツ調整メッセージは、アクション1082において送信された状態メッセージと、メディアコンテンツをプレイしている他のメディアプレイヤーにより調整用デバイスに送信された他の状態メッセージとの一方又は双方により決定されたメディアコンテンツのプレイアウトに対する調整状態を含んでいる(アクション1083)。例えば、第1のメディアプレイヤー130a/230aは調整用デバイス102/202から第1のコンテンツ調整メッセージ134aを受信することができ、この第1のコンテンツ調整メッセージ134aは第1のメディアプレイヤー130a/230aによる第1のメディアコンテンツ126a/226aのプレイアウトに対する所望の調整状態を含んでおり、この調整状態は、第1の状態メッセージ132aと第2のメディアプレイヤー130b/230bにより調整用デバイス102/202に送信された第2の状態メッセージ132bとの一方又は双方に基づいている。
【0091】
流れ
図1080は更に、第1のメディアプレイヤーによるメディアコンテンツのプレイアウトを、コンテンツ調整状態を用いている他のメディアプレイヤーによるメディアコンテンツのプレイアウトと同期させる段階に進む(アクション1084)。すなわち、第1のメディアプレイヤー130a/230aによる第1のメディアコンテンツ126a/226aのプレイアウトを、コンテンツ調整メッセージ134a内に含まれるコンテンツ調整状態を用いている第2のメディアプレイヤー130b/230bによる第2のメディアコンテンツ126b/226bのプレイアウトと同期させることができる。
図10において概説する模範的な方法によれば、流れ
図1080は、同期中及びその後にメディアコンテンツをプレイアウトすることに続けることにより終わらせることができる(アクション1085)。従って、第1のメディアコンテンツ126a/226aは、アクション1085中及びその後に第1のメディアプレイヤー130a/230aによりプレイアウトすることに続くものである。
【0092】
流れ
図1080には含まれていないが、幾つかの実施例では、この方法に、第1のメディアプレイヤー130a/230aにより調整用デバイス102/202と通信するための第1の待ち時間の推定値を決定する段階を含めることができる。これらの実施例では、更にこの方法に、第1のメディアプレイヤー130a/230aにより第1の待ち時間の推定値を第1の状態メッセージ132aの一部として調整用デバイス102/202に送信する段階を含めることができる。これに代わって又は加えて、この方法には更に、第1のメディアプレイヤー130a/230aにより調整用デバイス102/202から第1の待ち時間の推定値を受信する段階を含めることができる。更に、幾つかの実施例では、第1のメディアプレイヤー130a/230aにより、第1の状態メッセージ132aを周期的に送信し、第2の状態メッセージ132bを受信し、且つ第1のコンテンツ調整メッセージ134aを用いて第2のメディアプレイヤー130b/230bにより第1のメディアコンテンツ126a/226aのプレイアウトを第2のメディアコンテンツ126b/226bのプレイアウトと同期させるようにすることができる。
【0093】
従って、本出願には、複数のメディアプレイヤーに対するメディアコンテンツの配信を調整するためのシステム及び方法を開示するものである。ここに開示するシステム及び方法は、複数のメディアプレイヤーがライブコンテンツ及び記録したメディアコンテンツに適用しうるコンテンツを同時にほぼ同期状態にする強力な解決策を提供するものである。本発明の原理の種々の実施例によれば、各メディアプレイヤーはコンテンツ調整サービスに対する双方向の且つ持続的な接続を有する。各メディアプレイヤーは、各メディアプレイヤーにミラーリングされる単一のストリーミングセッションを共有するのではなく、同じメディアコンテンツの異なるインスタンス化を個別にストリームするか、さもなければアクセスする。
【0094】
上述した記載から明らかなように、本出願において記載した概念をその範囲から逸脱することなく実施するのに種々の技術を用いることができる。更に、これらの概念はある実施例を具体的に言及して説明したが、当業者は、これらの概念の範囲から逸脱することなく形態及び細部において変更を行いうることを認識するであろう。従って、上述した実施例は、あらゆる点で実例的なものであり、限定的なものではない。又、本出願はここに記載した特定の実施例に限定されず、多くの再配列、変形及び置換が本開示の範囲を逸脱することなく可能であることを理解すべきである。