(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-09-27
(54)【発明の名称】ライブグループビデオストリーミング
(51)【国際特許分類】
H04N 21/2365 20110101AFI20230920BHJP
H04N 21/2665 20110101ALI20230920BHJP
H04N 21/258 20110101ALI20230920BHJP
H04L 67/50 20220101ALI20230920BHJP
【FI】
H04N21/2365
H04N21/2665
H04N21/258
H04L67/50
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023514070
(86)(22)【出願日】2021-08-17
(85)【翻訳文提出日】2023-03-28
(86)【国際出願番号】 US2021046264
(87)【国際公開番号】W WO2022051083
(87)【国際公開日】2022-03-10
(32)【優先日】2020-09-03
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】508178054
【氏名又は名称】メタ プラットフォームズ, インク.
(74)【代理人】
【識別番号】100163979
【氏名又は名称】濱名 哲也
(72)【発明者】
【氏名】ジョージ、クリスティン リンジー
(72)【発明者】
【氏名】パルタサラティ、アビシェーク
(72)【発明者】
【氏名】カトリ、ヘマル
(72)【発明者】
【氏名】ハートネット、アリソン
(72)【発明者】
【氏名】バール、トメル
【テーマコード(参考)】
5C164
【Fターム(参考)】
5C164FA06
5C164SA25S
5C164SB13P
5C164SC04P
5C164SC11P
5C164SD12S
5C164YA08
5C164YA11
(57)【要約】
本開示は、ライブブロードキャストの過程で変化する複数の参加者デバイスからのパブリック合成ライブビデオストリームを正確に、柔軟に、かつ効率的にブロードキャストするとともに、パブリック合成ライブビデオストリームに参加者デバイスを追加し、除去し、および入れ替えることを合理化する動的ユーザインタフェースを生成するためのシステム、非一時的コンピュータ可読媒体、および方法に関する。特に、ライブビデオストリーミングシステムは、パブリック合成ライブビデオストリームを視聴者デバイスにブロードキャストする前に、デジタルルーム内で複数の参加者デバイスからのライブビデオストリームを合成することによりパブリック合成ライブビデオストリームを生成することを容易にする。加えて、ライブビデオストリームは、参加者デバイスのライブビデオストリームを維持しながら、新しい参加者デバイスをデジタル待機ルームからパブリック合成ライブビデオストリームにスムーズかつ効率的に移行させるとともに、現在の参加者デバイスをパブリック合成ライブビデオストリームからデジタル待機ルームに切り替える。
【特許請求の範囲】
【請求項1】
コンピュータにより実行される方法であって、
サーバデバイスにおいて、複数の参加者デバイスから複数のライブビデオストリームを受信すること、
前記サーバデバイスにおいて、前記複数の参加者デバイスのためのデジタル準備ルームを、
前記複数の参加者デバイスからの前記複数のライブビデオストリームを合成して合成ライブビデオストリームにすること、
前記合成ライブビデオストリームをデジタル準備ルームインタフェース内の前記複数の参加者デバイスに提供すること
により生成すること、
前記複数の参加者デバイスのうちの第1の参加者デバイスから、前記デジタル準備ルームインタフェースのブロードキャスト要素とのユーザインタラクションを受信すること、
前記ブロードキャスト要素との前記ユーザインタラクションに基づいて、前記合成ライブビデオストリームを複数の視聴者デバイスにブロードキャストすること
を含む、コンピュータにより実行される方法。
【請求項2】
前記サーバデバイスにおいて、保留中の参加者デバイスから追加のライブビデオストリームを受信すること、
前記サーバデバイスにおいて、デジタル待機ルームを、
前記保留中の参加者デバイスからの前記追加のライブビデオストリームを備えるデジタル待機ルームライブビデオストリームを生成すること、
前記保留中の参加者デバイスにおける表示のために、前記合成ライブビデオストリームと前記デジタル待機ルームライブビデオストリームとを備えるデジタル待機ルームインタフェースを提供すること
により生成すること
をさらに含む、請求項1に記載のコンピュータにより実行される方法。
【請求項3】
前記複数の視聴者デバイスへの前記合成ライブビデオストリームのブロードキャストを終了すること、
前記サーバデバイスにおいて、前記複数の参加者デバイスのうちの1つまたは複数の参加者デバイスのためのブロードキャスト後ルームを、
前記1つまたは複数の参加者デバイスからの前記複数のライブビデオストリームのうちの1つまたは複数を合成してブロードキャスト後ルームライブビデオストリームにすること、
前記ブロードキャスト後ルームライブビデオストリームを前記1つまたは複数の参加者デバイスに提供すること
により生成すること
をさらに含む、請求項1または2に記載のコンピュータにより実行される方法。
【請求項4】
前記複数の視聴者デバイスに関連付けられた1つまたは複数のアクティビティメトリックに基づいて、前記複数の視聴者デバイスから視聴者デバイスのサブセットを特定すること、
前記視聴者デバイスの前記サブセットに、前記ブロードキャスト後ルームライブビデオストリームへのアクセスを提供すること
をさらに含む、請求項3に記載のコンピュータにより実行される方法。
【請求項5】
前記合成ライブビデオストリーム中に前記複数の参加者デバイスのうちの1つまたは複数の参加者デバイスの1つまたは複数のライブビデオストリームを前記合成ライブビデオストリームから除去すること、
前記サーバデバイスにおいて、前記合成ライブビデオストリームから除去された前記1つまたは複数の参加者デバイスのためのデジタル参加後ルームを、
前記1つまたは複数の参加者デバイスの前記1つまたは複数のライブビデオストリームを合成して参加後ルームライブビデオストリームにすること、
前記1つまたは複数の参加者デバイスにおける表示のために、前記合成ライブビデオストリームと前記参加後ルームライブビデオストリームとを備える参加後ルームユーザインタフェースを提供すること
により生成すること
をさらに含む、請求項1~4のいずれか一項に記載のコンピュータにより実行される方法。
【請求項6】
前記合成ライブビデオストリームを前記複数の視聴者デバイスにブロードキャストする前に、前記第1の参加者デバイスにおける表示のために、参加者デバイスが前記合成ライブビデオストリームに参加するための1つまたは複数の参加トリガを示すブロードキャスト参加要素を備えるライブブロードキャストユーザインタフェースを提供すること、
前記第1の参加者デバイスからブロードキャスト参加要素の選択を受信することに基づいて、参加トリガを識別すること、
前記参加トリガに従って前記複数の視聴者デバイスに前記合成ライブビデオストリームをブロードキャストすること
をさらに含む、請求項1~5のいずれか一項に記載のコンピュータにより実行される方法。
【請求項7】
前記参加トリガは、
前記合成ライブビデオストリームに参加者デバイスを追加するためのトリガ、前記合成ライブビデオストリームから参加者デバイスを除去するためのトリガ、参加者デバイスをデジタル準備ルームから前記合成ライブビデオストリームに移行させるためのトリガ、参加者デバイスをデジタル待機ルームから前記合成ライブビデオストリームに移行させるためのトリガ、または参加者デバイスを前記合成ライブビデオストリームから参加後ルームに移行させるためのトリガ
のうちの少なくとも1つを含む、請求項6に記載のコンピュータにより実行される方法。
【請求項8】
前記サーバデバイスにおいて、前記第1の参加者デバイスからのライブビデオストリームが前記合成ライブビデオストリームから除去されたことを検出すること、
前記第1の参加者デバイスからの前記ライブビデオストリームが前記合成ライブビデオストリームから除去された所定の時間内に、前記第1の参加者デバイスが新しいライブビデオストリームを開始していると判定すること、
前記第1の参加者デバイスが前記所定の時間内に前記新しいライブビデオストリームを開始していると判定することに基づいて、前記第1の参加者デバイスが前記合成ライブビデオストリームを再開するためのライブビデオストリーム再開オプションを提供すること、
前記ライブビデオストリーム再開オプションとのユーザインタラクションに基づいて、前記複数の視聴者デバイスへの前記合成ライブビデオストリームのブロードキャストを再開すること
をさらに含む、請求項1~7のいずれか一項に記載のコンピュータにより実行される方法。
【請求項9】
前記合成ライブビデオストリームの第1のバージョンを前記複数の参加者デバイスに提供すること、
前記合成ライブビデオストリームの第2のバッファリングされたバージョンを前記複数の視聴者デバイスにブロードキャストすること
をさらに含む、請求項1~8のいずれか一項に記載のコンピュータにより実行される方法。
【請求項10】
システムであって、
少なくとも1つのプロセッサと、
命令を格納する少なくとも1つの非一時的コンピュータ可読記憶媒体と
を備え、前記命令は、前記少なくとも1つのプロセッサによって実行されると、前記システムに、
サーバデバイスから、第1の参加者デバイスからの第1のライブビデオストリームと、第2の参加者デバイスからの第2のライブビデオストリームとを含む合成ライブビデオストリームを複数の視聴者デバイスにブロードキャストさせ、
前記サーバデバイスにおいて、デジタル待機ルームを、
保留中の参加者デバイスから受信された第3のライブビデオストリームを備えるデジタル待機ルームライブビデオストリームを生成すること、
前記保留中の参加者デバイスにおける表示のために、前記合成ライブビデオストリームと前記デジタル待機ルームライブビデオストリームとを備えるデジタル待機ルームインタフェースを提供すること
により生成させ、
前記複数の視聴者デバイスにブロードキャストされている前記合成ライブビデオストリーム内の前記第1のライブビデオストリームおよび前記第2のライブビデオストリームに前記第3のライブビデオストリームを追加させる、システム。
【請求項11】
前記少なくとも1つのプロセッサによって実行されると、前記システムに、
前記保留中の参加者デバイスから前記第3のライブビデオストリームを受信することに基づいて、前記保留中の参加者デバイスが前記合成ライブビデオストリームに追加される準備ができているという標示を前記第1の参加者デバイスに提供させ、
前記第3のライブビデオストリームを前記デジタル待機ルームライブビデオストリームから前記合成ライブビデオストリームに移動させるためのユーザインタラクションを前記第1の参加者デバイスから受信させる
命令をさらに備え、
前記少なくとも1つのプロセッサによって実行されると、前記システムに、前記デジタル待機ルームライブビデオストリームを前記標示として前記第1の参加者デバイスに提供させる命令を好ましくはさらに備え、前記デジタル待機ルームライブビデオストリームは、前記デジタル待機ルームライブビデオストリームが前記合成ライブビデオストリームに追加されるまで、前記複数の視聴者デバイスによって視聴可能でない、請求項10に記載のシステム。
【請求項12】
前記少なくとも1つのプロセッサによって実行されると、前記システムに、
前記合成ライブビデオストリームを前記複数の視聴者デバイスにブロードキャストする前に、前記第1の参加者デバイスから、1つまたは複数の参加トリガが満たされると前記第3のライブビデオストリームを前記合成ライブビデオストリームに移動することを示すユーザインタラクションを受信させ、
前記1つまたは複数の参加トリガに従って前記第3のライブビデオストリームを前記デジタル待機ルームから前記合成ライブビデオストリームに移動させることによって、前記第3のライブビデオストリームを前記合成ライブビデオストリームに追加させる
命令をさらに備える、請求項10または11に記載のシステム。
【請求項13】
前記少なくとも1つのプロセッサによって実行されると、前記システムに、
前記サーバデバイスにおいて、追加の保留中の参加者デバイスから第4のライブビデオストリームを受信させ、
前記サーバデバイスにおいて、前記デジタル待機ルームを、
前記保留中の参加者デバイスからの前記第3のライブビデオストリームと前記追加の保留中の参加者デバイスからの前記第4のライブビデオストリームとを合成して前記デジタル待機ルームライブビデオストリームにすること、
前記保留中の参加者デバイスおよび前記追加の保留中の参加者デバイスにおける表示のために、前記合成ライブビデオストリームと前記デジタル待機ルームライブビデオストリームとを備える前記デジタル待機ルームインタフェースを提供すること
により生成させる
命令をさらに備え、
前記少なくとも1つのプロセッサによって実行されると、前記システムに、前記複数の視聴者デバイスにブロードキャストされている前記合成ライブビデオストリーム内の前記第1のライブビデオストリームおよび前記第2のライブビデオストリームに前記第3のライブビデオストリームおよび前記第4のライブビデオストリームを追加させる命令を好ましくはさらに備える、請求項10~12のいずれか一項に記載のシステム。
【請求項14】
少なくとも1つのプロセッサによって実行されると、前記少なくとも1つのプロセッサに請求項1~9のいずれか一項に記載の方法を実行させる命令を格納しているコンピュータ可読媒体。
【請求項15】
命令を備えるコンピュータプログラムであって、前記命令は、前記プログラムがコンピュータによって実行されると、前記コンピュータに請求項1~9のいずれか一項に記載の方法を実行させる、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、概して、ライブグループビデオストリーミングに関し、限定的ではないが、複数のデバイスからのパブリック合成ライブビデオストリームをブロードキャストすることに特に有用性を見出す。
【背景技術】
【0002】
近年、ユーザが生成したデジタルメディアを共有するためのハードウェアおよびソフトウェアプラットフォームにおいて、大きな技術的改善が見られている。例えば、従来のビデオ共有システムは、クライアントデバイスがビデオ通信をキャプチャするとともに、コンピュータネットワークを介して他のクライアントデバイスと共有することを容易にすることができる。しばしば、これらの従来のシステムは、複数のクライアントデバイスにわたるライブビデオ共有を容易にする。多くの進歩にもかかわらず、従来のビデオ共有システムは、特に、複数のクライアントデバイスからのパブリック合成ライブビデオストリームを提供および促進する際にコンピュータシステムを実装する効率、柔軟性、および精度に関して、いくつかの技術的欠点に悩まされ続けている。
【発明の概要】
【0003】
本明細書で説明する1つまたは複数の実装形態は、ライブブロードキャスト全体にわたって変化する複数のデバイスからのパブリック合成ライブビデオストリームを正確に、柔軟に、かつ効率的にブロードキャストするとともに、パブリック合成ライブビデオストリームに対して参加者デバイスを追加し、除去し、および入れ替えることを合理化する動的ユーザインタフェースを生成する方法、非一時的または他のコンピュータ可読媒体、およびシステムを用いて、利益を提供し、および/または当技術分野における前述のまたは他の問題のうちの1つまたは複数を解決する。
【0004】
本開示の第1の態様によれば、サーバデバイスにおいて、複数の参加者デバイスから複数のライブビデオストリームを受信すること、サーバデバイスにおいて、複数の参加者デバイスのためのデジタル準備ルームを、複数の参加者デバイスからの複数のライブビデオストリームを合成して合成ライブビデオストリームにすること、および合成ライブビデオストリームをデジタル準備ルームインタフェース内の複数の参加者デバイスに提供することにより生成すること、複数の参加者デバイスのうちの第1の参加者デバイスから、デジタル準備ルームインタフェースのブロードキャスト要素とのユーザインタラクションを受信すること、ブロードキャスト要素とのユーザインタラクションに基づいて、合成ライブビデオストリームを複数の視聴者デバイスにブロードキャストすることを含む、コンピュータにより実行される方法が提供される。
【0005】
方法は、サーバデバイスにおいて、保留中の参加者デバイスから追加のライブビデオストリームを受信すること、サーバデバイスにおいて、デジタル待機ルームを、保留中の参加者デバイスからの追加のライブビデオストリームを備えるデジタル待機ルームライブビデオストリームを生成すること、および保留中の参加者デバイスにおける表示のために、合成ライブビデオストリームとデジタル待機ルームライブビデオストリームとを備えるデジタル待機ルームインタフェースを提供することにより生成することをさらに含んでいてよい。
【0006】
方法は、複数の視聴者デバイスへの合成ライブビデオストリームのブロードキャストを終了すること、サーバデバイスにおいて、複数の参加者デバイスのうちの1つまたは複数の参加者デバイスのためのブロードキャスト後ルームを、1つまたは複数の参加者デバイスからの複数のライブビデオストリームのうちの1つまたは複数を合成してブロードキャスト後ルームライブビデオストリームにすること、およびブロードキャスト後ルームライブビデオストリームを1つまたは複数の参加者デバイスに提供することにより生成することをさらに含んでいてよい。
【0007】
方法は、複数の視聴者デバイスに関連付けられた1つまたは複数のアクティビティメトリックに基づいて、複数の視聴者デバイスから視聴者デバイスのサブセットを特定すること、視聴者デバイスのサブセットに、ブロードキャスト後ルームライブビデオストリームへのアクセスを提供することをさらに含んでいてよい。
【0008】
方法は、合成ライブビデオストリーム中に複数の参加者デバイスのうちの1つまたは複数の参加者デバイスの1つまたは複数のライブビデオストリームを合成ライブビデオストリームから除去すること、サーバデバイスにおいて、合成ライブビデオストリームから除去された1つまたは複数の参加者デバイスのためのデジタル参加後ルームを、1つまたは複数の参加者デバイスの1つまたは複数のライブビデオストリームを合成して参加後ルームライブビデオストリームにすること、および1つまたは複数の参加者デバイスにおける表示のために、合成ライブビデオストリームと参加後ルームライブビデオストリームとを備える参加後ルームユーザインタフェースを提供することにより生成することをさらに含んでいてよい。
【0009】
方法は、合成ライブビデオストリームを複数の視聴者デバイスにブロードキャストする前に、第1の参加者デバイスにおける表示のために、参加者デバイスが合成ライブビデオストリームに参加するための1つまたは複数の参加トリガを示すブロードキャスト参加要素を備えるライブブロードキャストユーザインタフェースを提供すること、第1の参加者デバイスからブロードキャスト参加要素の選択を受信することに基づいて、参加トリガを識別すること、参加トリガに従って複数の視聴者デバイスに合成ライブビデオストリームをブロードキャストすることをさらに含んでいてよい。
【0010】
参加トリガは、合成ライブビデオストリームに参加者デバイスを追加するためのトリガ、合成ライブビデオストリームから参加者デバイスを除去するためのトリガ、参加者デバイスをデジタル準備ルームから合成ライブビデオストリームに移行させるためのトリガ、参加者デバイスをデジタル待機ルームから合成ライブビデオストリームに移行させるためのトリガ、または参加者デバイスを合成ライブビデオストリームから参加後ルームに移行させるためのトリガのうちの少なくとも1つを含んでいてよい。
【0011】
方法は、サーバデバイスにおいて、第1の参加者デバイスからのライブビデオストリームが合成ライブビデオストリームから除去されたことを検出すること、第1の参加者デバイスからのライブビデオストリームが合成ライブビデオストリームから除去された所定の時間内に、第1の参加者デバイスが新しいライブビデオストリームを開始していると判定すること、第1の参加者デバイスが所定の時間内に新しいライブビデオストリームを開始していると判定することに基づいて、第1の参加者デバイスが合成ライブビデオストリームを再開するためのライブビデオストリーム再開オプションを提供すること、ライブビデオストリーム再開オプションとのユーザインタラクションに基づいて、複数の視聴者デバイスへの合成ライブビデオストリームのブロードキャストを再開することをさらに含んでいてよい。
【0012】
方法は、合成ライブビデオストリームの第1のバージョンを複数の参加者デバイスに提供すること、合成ライブビデオストリームの第2のバッファリングされたバージョンを複数の視聴者デバイスにブロードキャストすることをさらに含んでいてよい。
【0013】
本開示の第2の態様によれば、少なくとも1つのプロセッサと、命令を格納している少なくとも1つのコンピュータ可読記憶媒体とを備えるシステムが提供され、命令は、少なくとも1つのプロセッサにより実行されると、システムに、サーバデバイスから、第1の参加者デバイスからの第1のライブビデオストリームと、第2の参加者デバイスからの第2のライブビデオストリームとを含む合成ライブビデオストリームを複数の視聴者デバイスにブロードキャストさせ、サーバデバイスにおいて、デジタル待機ルームを、保留中の参加者デバイスから受信された第3のライブビデオストリームを備えるデジタル待機ルームライブビデオストリームを生成すること、および保留中の参加者デバイスにおける表示のために、合成ライブビデオストリームとデジタル待機ルームライブビデオストリームとを備えるデジタル待機ルームインタフェースを提供することにより生成させ、複数の視聴者デバイスにブロードキャストされている合成ライブビデオストリーム内の第1のライブビデオストリームおよび第2のライブビデオストリームに第3のライブビデオストリームを追加させる。
【0014】
システムは、少なくとも1つのプロセッサによって実行されると、システムに、保留中の参加者デバイスから第3のライブストリームを受信することに基づいて、保留中の参加者デバイスが合成ライブストリームに追加される準備ができているという標示を第1の参加者デバイスに提供させ、第3のライブビデオストリームをデジタル待機ルームライブビデオストリームから合成ライブビデオストリームに移動させるためのユーザインタラクションを第1の参加者デバイスから受信させる命令をさらに備えていてよい。
【0015】
システムは、少なくとも1つのプロセッサによって実行されると、システムに、デジタル待機ルームライブビデオストリームを標示として第1の参加者デバイスに提供させる命令をさらに備えていてよく、デジタル待機ルームライブビデオストリームは、デジタル待機ルームライブビデオストリームが合成ライブビデオストリームに追加されるまで、複数の視聴デバイスによって視聴可能でない。
【0016】
システムは、少なくとも1つのプロセッサによって実行されると、システムに、合成ライブビデオストリームを複数の視聴者デバイスにブロードキャストする前に、第1の参加者デバイスから、1つまたは複数の参加トリガが満たされると第3のライブビデオストリームを合成ライブビデオストリームに移動することを示すユーザインタラクションを受信させ、1つまたは複数の参加トリガに従って第3のライブビデオストリームをデジタル待機ルームから合成ライブビデオストリームに移動させることによって、第3のライブビデオストリームを合成ライブビデオストリームに追加させる命令をさらに備えていてよい。
【0017】
システムは、少なくとも1つのプロセッサによって実行されると、システムに、サーバデバイスにおいて、追加の保留中の参加者デバイスから第4のライブビデオストリームを受信させ、サーバデバイスにおいて、デジタル待機ルームを、保留中の参加者デバイスからの第3のライブビデオストリームと追加の保留中の参加者デバイスからの第4のライブビデオストリームとを合成してデジタル待機ルームライブビデオストリームにすること、および保留中の参加者デバイスおよび追加の保留中の参加者デバイスにおける表示のために、合成ライブビデオストリームとデジタル待機ルームライブビデオストリームとを備えるデジタル待機ルームインタフェースを提供することにより生成させる命令をさらに備えていてよい。
【0018】
システムは、少なくとも1つのプロセッサによって実行されると、システムに、複数の視聴者デバイスにブロードキャストされている合成ライブビデオストリーム内の第1のライブビデオストリームおよび第2のライブビデオストリームに第3のライブビデオストリームおよび第4のライブビデオストリームを追加させる命令をさらに備えていてよい。
【0019】
システムは、少なくとも1つのプロセッサによって実行されると、システムに、本開示の第1の態様の任意の他の1つまたは複数のステップを実行させる命令をさらに備えていてよい。
【0020】
本開示の第3の態様によれば、命令を格納しているコンピュータ可読媒体が提供され、命令は、少なくとも1つのプロセッサによって実行されると、少なくとも1つのプロセッサに、サーバデバイスにおいて、複数の参加者デバイスから複数のライブビデオストリームを受信させ、サーバデバイスにおいて、複数の参加者デバイスのためのデジタル準備ルームを、複数の参加者デバイスからの複数のライブビデオストリームを合成して合成ライブビデオストリームにすること、および合成ライブビデオストリームをデジタル準備ルームインタフェース内の複数の参加者デバイスに提供することにより生成させ、複数の参加者デバイスのうちの第1の参加者デバイスから、デジタル準備ルームインタフェースのブロードキャスト要素とのユーザインタラクションを受信させ、ブロードキャスト要素とのユーザインタラクションに基づいて、合成ライブビデオストリームを複数の視聴者デバイスにブロードキャストさせる。
【0021】
コンピュータ可読媒体は、少なくとも1つのプロセッサにより実行されると、コンピュータシステムに、サーバデバイスにおいて、保留中の参加者デバイスから追加のライブビデオストリームを受信させ、サーバデバイスにおいて、デジタル待機ルームを、保留中の参加者デバイスからの追加のライブビデオストリームを備えるデジタル待機ルームライブビデオストリームを生成すること、および保留中の参加者デバイスにおける表示のために、合成ライブビデオストリームとデジタル待機ルームライブビデオストリームとを備えるデジタル待機ルームインタフェースを提供することにより生成させる命令をさらに備えていてよい。
【0022】
コンピュータ可読媒体は、少なくとも1つのプロセッサにより実行されると、コンピュータシステムに、複数の視聴者デバイスへの合成ライブビデオストリームのブロードキャストを終了させ、サーバデバイスにおいて、複数の参加者デバイスのうちの1つまたは複数の参加者デバイスのためのブロードキャスト後ルームを、1つまたは複数の参加者デバイスからの複数のライブビデオストリームのうちの1つまたは複数を合成してブロードキャスト後ルームライブビデオストリームにすること、およびブロードキャスト後ルームライブビデオストリームを1つまたは複数の参加者デバイスに提供することにより生成させる命令をさらに備えていてよい。
【0023】
コンピュータ可読媒体は、少なくとも1つのプロセッサによって実行されると、コンピュータシステムに、複数の視聴者デバイスに関連付けられた1つまたは複数のアクティビティメトリックに基づいて、複数の視聴者デバイスから視聴者デバイスのサブセットを特定させ、視聴者デバイスのサブセットに、ブロードキャスト後ルームライブビデオストリームへのアクセスを提供させる命令をさらに備えていてよい。
【0024】
コンピュータ可読媒体は、少なくとも1つのプロセッサによって実行されると、コンピュータシステムに、合成ライブビデオストリーム中に複数の参加者デバイスのうちの1つまたは複数の参加者デバイスの1つまたは複数のライブビデオストリームを合成ライブビデオストリームから除去させ、サーバデバイスにおいて、合成ライブビデオストリームから除去された1つまたは複数の参加者デバイスのためのデジタル参加後ルームを、1つまたは複数の参加者デバイスの1つまたは複数のライブビデオストリームを合成して参加後ルームライブビデオストリームにすること、および1つまたは複数の参加者デバイスにおける表示のために、合成ライブビデオストリームと参加後ルームライブビデオストリームとを備える参加後ルームユーザインタフェースを提供することにより生成させる命令をさらに備えていてよい。
【0025】
コンピュータ可読媒体は、非一時的であってよい。
本開示の第4の態様によれば、プログラムがコンピュータによって実行されると、コンピュータに本開示の第1の態様の方法を実行させる命令を備えるコンピュータプログラムが提供される。
【0026】
追加の実装形態では、開示されるシステムは、パブリック合成ライブビデオストリーム中にデジタル待機ルームを生成することができ、ここで、保留中の参加者デバイスは、パブリック合成ライブビデオストリームに参加する準備をすることができる。例えば、開示されるシステムは、保留中の参加者デバイスからの追加のビデオストリームを含むデジタル待機ルームを生成することができる。加えて、開示されるシステムは、デジタル待機ルームのライブビデオストリームならびにパブリック合成ライブビデオストリームを含むデジタル待機ルームユーザインタフェースを保留中の参加者デバイスに提供することができる。同様に、開示されるシステムは、デジタル待機ルームのライブビデオストリームとパブリック合成ライブビデオストリームとの両方を含むユーザインタフェースを参加者デバイスのうちの1つまたは複数に提供することができる。さらに、開示されるシステムは、対応するルームインタフェースとともに、参加後待機ルームおよびブロードキャスト後ルームなどの他のデジタルルームを生成および提供することができる。
【0027】
さらに、開示されるシステムは、パブリック合成ライブビデオストリームに視聴者デバイスを動的に追加することができる。例えば、1つまたは複数の実装形態では、パブリック合成ライブビデオストリームを複数の視聴者デバイスにブロードキャストしている間に、開示されるシステムは、視聴者デバイスに関連付けられたアクティビティメトリックを識別することができる。アクティビティメトリックを分析することに基づいて、開示されるシステムは、パブリック合成ライブビデオストリームに参加するターゲット視聴者デバイスを特定することができる。実際、開示されるシステムは、ターゲット視聴者デバイスを、参加者デバイスとしてパブリック合成ライブビデオストリームに追加することができる。追加的に、開示されるシステムは、以下でさらに説明されるように、アクティビティメトリックに基づいて、パブリック合成ライブビデオストリームの参加者デバイスを除去するか、または他の視聴者デバイスと入れ替えることができる。
【0028】
本開示の1つまたは複数の実装形態の追加の特徴および利点は、以下の説明において概説され、その説明から部分的に明らかになるか、またはそのような例示的な実装形態の実施によって知ることができる。
【図面の簡単な説明】
【0029】
詳細な説明は、以下で簡潔に説明されるように、添付の図面を使用することによって、1つまたは複数の実装形態を追加の詳細とともに提供する。
【
図1】
図1は、1つまたは複数の実装形態による、ライブビデオストリーミングシステムを実装するためのシステム環境のブロック図である。
【
図2】
図2は、1つまたは複数の実装形態による、パブリック合成ライブビデオストリームを生成するとともに、視聴者デバイスにブロードキャストするシーケンス図である。
【
図3A】
図3A~
図3Bは、1つまたは複数の実装形態による、パブリック合成ライブビデオストリームを起動およびブロードキャストするためのグラフィカルユーザインタフェースを示す。
【
図3B】
図3A~
図3Bは、1つまたは複数の実装形態による、パブリック合成ライブビデオストリームを起動およびブロードキャストするためのグラフィカルユーザインタフェースを示す。
【
図4】
図4は、1つまたは複数の実装形態による、パブリック合成ライブビデオストリームを改善するために複数のデジタルルームを利用する概要図である。
【
図5】
図5は、1つまたは複数の実装形態による、パブリック合成ライブビデオストリームに関連してデジタル準備ルームを生成および利用するシーケンス図である。
【
図6A】
図6A~
図6Bは、1つまたは複数の実装形態による、様々なクライアントデバイス上のデジタル準備ルームのグラフィカルユーザインタフェースを示す。
【
図6B】
図6A~
図6Bは、1つまたは複数の実装形態による、様々なクライアントデバイス上のデジタル準備ルームのグラフィカルユーザインタフェースを示す。
【
図7A】
図7A~
図7Cは、1つまたは複数の実装形態による、様々なクライアントデバイス上のパブリック合成ライブビデオストリームのグラフィカルユーザインタフェースを示す。
【
図7B】
図7A~
図7Cは、1つまたは複数の実装形態による、様々なクライアントデバイス上のパブリック合成ライブビデオストリームのグラフィカルユーザインタフェースを示す。
【
図7C】
図7A~
図7Cは、1つまたは複数の実装形態による、様々なクライアントデバイス上のパブリック合成ライブビデオストリームのグラフィカルユーザインタフェースを示す。
【
図8】
図8は、1つまたは複数の実装形態による、パブリック合成ライブビデオストリームに関連してデジタル待機ルームを生成および利用するシーケンス図である。
【
図9A】
図9A~
図9Cは、1つまたは複数の実装形態による、様々なクライアントデバイス上のデジタル待機ルームおよび/またはパブリック合成ライブビデオストリームを含むグラフィカルユーザインタフェースを示す。
【
図9B】
図9A~
図9Cは、1つまたは複数の実装形態による、様々なクライアントデバイス上のデジタル待機ルームおよび/またはパブリック合成ライブビデオストリームを含むグラフィカルユーザインタフェースを示す。
【
図9C】
図9A~
図9Cは、1つまたは複数の実装形態による、様々なクライアントデバイス上のデジタル待機ルームおよび/またはパブリック合成ライブビデオストリームを含むグラフィカルユーザインタフェースを示す。
【
図10】
図10は、1つまたは複数の実装形態による、パブリック合成ライブビデオストリームに関連してデジタル参加後ルームを生成および利用するシーケンス図である。
【
図11A】
図11A~
図11Cは、1つまたは複数の実装形態による、様々なクライアントデバイス上のパブリック合成ライブビデオストリームに関連するデジタル参加後ルームのグラフィカルユーザインタフェースを示す。
【
図11B】
図11A~
図11Cは、1つまたは複数の実装形態による、様々なクライアントデバイス上のパブリック合成ライブビデオストリームに関連するデジタル参加後ルームのグラフィカルユーザインタフェースを示す。
【
図11C】
図11A~
図11Cは、1つまたは複数の実装形態による、様々なクライアントデバイス上のパブリック合成ライブビデオストリームに関連するデジタル参加後ルームのグラフィカルユーザインタフェースを示す。
【
図12】
図12は、1つまたは複数の実装形態による、パブリック合成ライブビデオストリームに続くブロードキャスト後ルームを生成および利用するシーケンス図である。
【
図13A】
図13A~
図13Cは、1つまたは複数の実装形態による、様々なクライアントデバイス上のパブリック合成ライブビデオストリームに続くブロードキャスト後ルームのグラフィカルユーザインタフェースを示す。
【
図13B】
図13A~
図13Cは、1つまたは複数の実装形態による、様々なクライアントデバイス上のパブリック合成ライブビデオストリームに続くブロードキャスト後ルームのグラフィカルユーザインタフェースを示す。
【
図13C】
図13A~
図13Cは、1つまたは複数の実装形態による、様々なクライアントデバイス上のパブリック合成ライブビデオストリームに続くブロードキャスト後ルームのグラフィカルユーザインタフェースを示す。
【
図14】
図14は、1つまたは複数の実装形態による、パブリック合成ライブビデオストリームに関連してデジタル準備ルームを生成し、提供し、ブロードキャストするための一連の動作のフロー図である。
【
図15】
図15は、1つまたは複数の実装形態による、パブリック合成ライブビデオストリームに関連してデジタル待機ルームを生成し、提供し、ブロードキャストするための一連の動作のフロー図である。
【
図16】
図16は、1つまたは複数の実装形態による、アクティビティメトリックに基づいてパブリック合成ライブビデオストリームに視聴者デバイスを追加し、パブリック合成ライブビデオストリームから視聴者デバイスを除去する概要図である。
【
図17】
図17は、1つまたは複数の実装形態による、アクティビティメトリックを分析することに基づいてパブリック合成ライブビデオストリームに追加するターゲット視聴者デバイスを特定するシーケンス図である。
【
図18A】
図18A~
図18Bは、1つまたは複数の実装形態による、パブリック合成ライブビデオストリームに視聴者デバイスを追加し、パブリック合成ライブビデオストリームから視聴者デバイスを除去するためのパラメータを設定するためのグラフィカルユーザインタフェースを示す。
【
図18B】
図18A~
図18Bは、1つまたは複数の実装形態による、パブリック合成ライブビデオストリームに視聴者デバイスを追加し、パブリック合成ライブビデオストリームから視聴者デバイスを除去するためのパラメータを設定するためのグラフィカルユーザインタフェースを示す。
【
図19】
図19は、1つまたは複数の実装形態による、パブリック合成ライブビデオストリームに参加するターゲット視聴者デバイスを特定するために視聴者デバイスのアクティビティメトリックを分析するブロック図である。
【
図20】
図20は、1つまたは複数の実装形態による、パブリック合成ライブビデオストリームに参加するターゲット視聴者デバイスを特定するための一連の動作のフロー図である。
【
図21】
図21は、1つまたは複数の実装形態による、切断されたパブリック合成ライブビデオストリームを再開するシーケンス図である。
【
図22】
図22は、1つまたは複数の実装形態による、ネットワーキングシステム内のライブビデオストリーミングシステムのブロック図である。
【
図23】
図23は、本開示の1つまたは複数の実装形態を実装するための例示的なコンピューティングデバイスのブロック図である。
【
図24】
図24は、1つまたは複数の実装形態による、ネットワーキングシステムの例示的なネットワーク環境を示す。
【
図25】
図25は、1つまたは複数の実装形態によるソーシャルグラフを示す。
【発明を実施するための形態】
【0030】
本開示は、複数の参加者デバイスから生成されたパブリック合成ライブビデオストリームを視聴者デバイスの視聴者にブロードキャストすることを容易にするライブビデオストリーミングシステムについて説明する。1つまたは複数の実装形態では、ライブビデオストリーミングシステムは、合成ライブビデオストリームをパブリック合成ライブビデオストリームとして視聴者デバイスにブロードキャストする前に、デジタルルーム内で、複数の参加者デバイスからのライブビデオストリームを合成することにより合成ライブビデオストリームを生成する。加えて、ライブビデオストリーミングシステムは、参加者デバイスのライブビデオストリームを維持しながら、新しい参加者デバイスをデジタル待機ルームからパブリック合成ライブビデオストリームにスムーズかつ効率的に移行させるとともに、現在の参加者デバイスをパブリック合成ライブビデオストリームから同じまたは異なるデジタル待機ルームに切り替える。
【0031】
加えて、ライブビデオストリーミングシステムは、保留中(pending)、現在、および過去の参加者デバイスに動的ユーザインタフェースを提供することができる。例えば、パブリック合成ライブビデオストリームに参加する前にデジタル待機ルームで待機している保留中の参加者デバイスに対して、ライブビデオストリーミングシステムは、デジタル待機ルームのデバイスのライブビデオストリームを含むとともにパブリック合成ライブビデオストリームを含むユーザインタフェースを当該保留中の参加者デバイスに提供することができる。加えて、ライブビデオストリーミングシステムは、パブリック合成ライブビデオストリームに現在参加している参加者デバイス(例えば、ホストデバイス)に同様のユーザインタフェースを提供することができ、それにより、参加者デバイスは、パブリック合成ライブビデオストリームから退出する必要なしに、どの保留中の参加者デバイスがデジタル待機ルームにいるかを見ることができる。このようにして、参加者デバイスは、ライブビデオストリーミングシステムがパブリック合成ライブビデオストリームに保留中の参加者デバイスを追加する前に、デジタル待機ルームの保留中の参加者デバイスが準備され、かつ準備ができていることを視覚的に確認することができる。
【0032】
さらに、ライブビデオストリーミングシステムは、パブリック合成ライブビデオストリームへの視聴者デバイスの追加、パブリック合成ライブビデオストリームからの視聴者デバイスの除去、および視聴者デバイスの入れ替えを容易にすることができる。例えば、ライブビデオストリーミングシステムは、ターゲット視聴者デバイスを自動的に決定して、参加者デバイスになるとともにパブリック合成ライブビデオストリームに参加するように招待することができる。いくつかの実装形態では、ライブビデオストリーミングシステムは、以下でさらに説明するように、視聴者デバイスまたは他の視聴者デバイスの監視されたアクティビティに基づいてターゲット視聴者デバイスを識別する。
【0033】
上述したように、ライブビデオストリーミングシステムは、複数のデジタルルームを利用して、視聴者デバイスの視聴者へのパブリック合成ライブビデオストリームのブロードキャストを改善することができる。追加のコンテキストを提供するために、参加者デバイスは、パブリック合成ライブビデオストリームに合成されるべきライブビデオストリームをキャプチャしてライブビデオストリーミングシステムに提供するクライアントデバイスを含むことができる。参加者デバイスは、パブリック合成ライブビデオストリームを制御することができるホストデバイスまたは別の参加者デバイスを含むことができる。参加者デバイスは、ストリーム中にパブリック合成ライブビデオストリームに参加する保留中の参加者デバイスも含むことができる。加えて、参加者デバイスは、パブリック合成ライブビデオストリームに以前参加したが、もはや参加していない以前の参加者デバイスを含むことができる。加えて、視聴者デバイスは、パブリック合成ライブビデオストリームを受信および表示するクライアントデバイスを含むことができる。
【0034】
1つまたは複数の実装形態では、ライブビデオストリーミングシステムは、デジタル準備ルーム(例えば、仮想グリーンルーム)を生成する。例えば、ライブビデオストリーミングシステムは、参加者デバイスのグループからのライブビデオストリームを合成して合成ストリームを生成し、合成ライブビデオストリームをデジタル準備ルームインタフェース内の参加者デバイスのグループに提供することによって、デジタル準備ルームを生成する。例えば、デジタル準備ルームインタフェースは、以下でさらに説明するように、参加者デバイスが、より多くのパブリック視聴者に対してライブを行う前に準備することを可能にする。
【0035】
いくつかの例では、デジタル準備ルームインタフェースは、合成ライブビデオストリームを視聴者デバイスと共有するためのブロードキャスト要素を含む。これらの例では、ブロードキャスト要素の選択を検出したことに応答して、ライブビデオストリーミングシステムは、合成ライブビデオストリームをパブリック合成ライブビデオストリームとして視聴者デバイスにブロードキャストし始めるとともに、更新されたライブブロードキャストインタフェースを参加者デバイスのグループに提供する。加えて、以下でさらに説明するように、デジタル準備ルームインタフェースは、パブリック合成ライブビデオストリームのフレームワークまたはアジェンダを設定するための追加の要素を含むことができる。
【0036】
追加の実装形態では、ライブビデオストリーミングシステムは、デジタル待機ルームを生成することができる。例えば、様々な実装形態では、ライブビデオストリーミングシステムは、パブリック合成ライブビデオストリームに参加するのを待っている1つまたは複数の保留中の参加者デバイスのためのデジタル待機ルーム(例えば、保留中参加者ルーム)を生成する。いくつかの例では、ライブビデオストリーミングシステムは、デジタル待機ルームインタフェースをデジタル待機ルーム内の保留中の参加者デバイスに提供し、デジタル待機ルームインタフェースは、デジタル待機ルームのライブビデオストリームならびにパブリック合成ライブビデオストリームなどの複数のストリームを含む。加えて、ライブビデオストリーミングシステムは、デジタル待機ルームのライブビデオストリームをホストデバイスに送るなど、保留中の参加者デバイスがパブリック合成ライブビデオストリームに参加する準備ができているという標示(indication)を参加者デバイスに提供することができる。さらに、ライブビデオストリーミングシステムは、以下でさらに説明するように、保留中の参加者デバイスをデジタル待機ルームからパブリック合成ライブビデオストリームに移行させることができる。
【0037】
同様に、ライブビデオストリーミングシステムは、パブリック合成ライブビデオストリームの参加デバイスが、パブリック合成ライブビデオストリームが終了するまで「オフカメラ」で待機することができるデジタル参加後ルーム(post-participation room)(例えば、先行参加者ルーム)を生成することができる。いくつかの実装形態では、ライブビデオストリーミングシステムは、デジタル参加後ルームのライブビデオストリームおよびパブリック合成ライブビデオストリームを含むデジタル参加後ルームインタフェースを、デジタル参加後ルームの以前の参加者デバイスに提供する。以下で説明されるように、デジタル参加後ルームの以前の参加者デバイスは、パブリック合成ライブビデオストリームの終了時または終了時付近に、パブリック合成ライブビデオストリームに再参加するか、またはブロードキャスト後ルーム(after broadcast room)に移動することができる。
【0038】
さらに、ライブビデオストリーミングシステムは、ブロードキャスト後ルームを生成することができる。様々な実装形態では、ブロードキャスト後ルームは、パブリック合成ライブビデオストリームに参加した参加者デバイスを含む。例えば、ライブビデオストリーミングシステムは、ストリームの終了時にパブリック合成ライブビデオストリームに参加している参加者デバイスをブロードキャスト後ルームに移動させることによってブロードキャスト後ルームを生成する。ライブビデオストリーミングシステムは、以前の参加者デバイスをデジタル参加後ルームからブロードキャスト後ルームに移動させ、および/またはデジタル参加後ルームをブロードキャスト後ルームに変換することもできる。いくつかの例では、ブロードキャスト後ルームはプライベートであり、視聴者デバイスに対して公開されていない。他の例では、視聴者デバイスの選択されたグループが、以下でさらに詳述されるように、ブロードキャスト後ルームのライブビデオストリームにアクセスすることを許可される。
【0039】
様々な実装形態では、ホストデバイスまたは非参加者デバイス(すなわち、非ビデオ参加者デバイス)は、デジタルルームに関連して参加トリガをセットアップすることができる。様々な実装形態では、参加トリガは、パブリック合成ライブビデオストリームのフレームワーク、構造、またはアジェンダを提供する。例えば、いくつかの実装形態では、参加トリガは、異なる時間にパブリック合成ライブビデオストリームに参加する参加者のラインアップを指定する。これらの実装形態では、参加トリガは、パブリック合成ライブビデオストリームに視聴者デバイスを追加するための参加トリガ、パブリック合成ライブビデオストリームから参加者デバイスを除去するための参加トリガ、参加者デバイスを準備ルームからパブリック合成ライブビデオストリームに移行させるための参加トリガ、および参加者デバイスをパブリック合成ライブビデオストリームからデジタル待機ルームに移行させるための参加トリガを含むことができる。
【0040】
上述したように、ライブビデオストリーミングシステムは、ビデオストリーム中にパブリック合成ライブビデオストリームに視聴者デバイスを追加することができる。例えば、様々な実装形態では、ライブビデオストリーミングシステムは、パブリック合成ライブビデオストリームを視聴者デバイスのセットにブロードキャストする。ライブブロードキャスト中、ライブビデオストリーミングシステムは、視聴者デバイスのセットに関連付けられたアクティビティメトリックを識別する。次いで、アクティビティメトリックを分析することに基づいて、ライブビデオストリーミングシステムは、視聴者デバイスから、パブリック合成ライブビデオストリームに参加するターゲット視聴者デバイスを特定する(identify)ことができる。実際に、ライブビデオストリーミングシステムは、識別されたターゲット視聴者デバイスをパブリック合成ライブビデオストリームに追加することができる。加えて、ライブビデオストリーミングシステムは、アクティビティメトリックに基づいて、パブリック合成ライブビデオストリームから除去する参加者デバイスを決定することもできる。
【0041】
ライブビデオストリーミングシステムは、ターゲット視聴者デバイスを特定するために様々なアクティビティメトリックを分析することができる。アクティビティメトリックの例は、アクティブプレゼンスメトリック、視聴時間メトリック、デジタル投票メトリック、デジタル入札メトリック、デジタル購入メトリック、ホスト入力メトリック、ターンまたはインターバルベースのメトリック、およびランダム選択メトリックを含むが、これらに限定されない。これらのアクティビティメトリックの各々について、以下でさらに説明する。
【0042】
様々な実装形態では、ライブビデオストリーミングシステムは、1つまたは複数の選択された参加トリガに基づいて、どのアクティビティメトリックを分析すべきかを識別する。上述したように、ホストデバイス(または別の参加者デバイス)は、パブリック合成ライブビデオストリームのためのフレームワークとして機能する1つまたは複数の参加トリガを選択することができる。1つまたは複数の実装形態では、参加トリガは、パブリック合成ライブビデオストリームに関して視聴者デバイスを追加すること、除去すること、および入れ替える(swapping out)ことに対応し得る。例えば、1つまたは複数の参加トリガは、視聴者デバイスをどのようにいつパブリック合成ライブビデオストリームに追加またはパブリック合成ライブビデオストリームから除去するかに対応する。実際、これらの実装形態では、ライブビデオストリーミングシステムは、1つまたは複数の選択された参加トリガからの参加トリガを満たすターゲット視聴者デバイスからの特定のアクティビティメトリックを識別することに基づいて、ターゲット視聴者デバイスを特定することができる。
【0043】
視聴者デバイスをパブリック合成ライブビデオストリームに追加およびパブリック合成ライブビデオストリームから除去するための参加トリガは、様々なルール、設定、およびテーマに対応することができる。例えば、参加トリガは、視聴者デバイスがプレイすることを伴うデジタルゲームに対応することができる。別の例として、参加トリガは、視聴者デバイスがパブリック合成ライブビデオストリームの参加者になるために競争する(例えば、スキルを示す、投票する、入札するなど)コンペティションに対応することができる。いくつかの例では、参加トリガは、デジタル購入に基づく。さらに、他の例では、参加トリガは、ランダム選択を優先することができる。以下で説明するように、選択された参加トリガは、以下でさらに詳述するように、どのアクティビティメトリックを監視および分析すべきかをライブビデオストリーミングシステムに示すことができる。
【0044】
1つまたは複数の実装形態では、ライブビデオストリーミングシステムは、視聴者デバイスに均一なレイアウトを提供および容易にすることができる。例えば、ライブビデオストリーミングシステムは、各ライブビデオストリームが時間的に正確に同期されているパブリック合成ライブビデオストリームの均一な視覚的配置(例えば、レイアウト)を生成することができる。ライブビデオストリーミングシステムは、この均一なレイアウトを視聴者デバイスに提供することができる。このようにして、各視聴者デバイスは、パブリック合成ライブビデオストリームの同じ体験を共有する。しかしながら、いくつかの実装形態では、ライブビデオストリーミングシステムは、同様に時間的に正確に同期される1つまたは複数の代替的な視覚的配置を生成し、要求された視覚的配置を視聴者デバイスに提供する。いずれにしても、ライブビデオストリーミングシステムは、各視聴者デバイスが別個のレイアウトを生成しようとするのではなく、パブリック合成ライブビデオストリームの少数のレイアウトを生成して提供する。
【0045】
いくつかの実装形態では、ライブビデオストリーミングシステムは、失われたパブリック合成ライブビデオストリームの回復を容易にすることができる。例えば、ライブビデオストリーミングシステムは、ホストデバイスがパブリック合成ライブビデオストリームからいつドロップするかを検出することができる。ここで、ライブビデオストリーミングシステムは、以下でさらに説明するように、パブリック合成ライブビデオストリームを再開するためのオプションをホストデバイスに提供することができる。いくつかの実装形態では、ライブビデオストリーミングシステムは、パブリック合成ライブビデオストリームを、異なる通信プロトコルを利用する参加者デバイスおよび視聴者デバイスに提供し、これにより、ライブビデオストリーミングシステムは、以下で説明するように、失われたパブリック合成ライブビデオストリームをより良好に回復することができる。
【0046】
上述したように、従来のビデオ共有システムは、動作の効率、柔軟性、および精度に関していくつかの技術的欠点を抱えている。例示すると、従来のビデオ共有システムは、しばしば非効率的である。例えば、多くの従来のシステムは、他のユーザによって提供される複数のライブビデオストリームを表示することに関して、機能の大部分を実行するためにクライアントデバイスに非効率的に依存している。最初の問題として、多くのクライアントデバイス、特にモバイルクライアントデバイスは、制限されたハードウェア能力を有する。したがって、これらのクライアントデバイスは、ライブビデオストリームの数が増加するにつれて、またはライブビデオストリームの品質が向上するにつれて、容易に過負荷になる可能性がある。全体として、これらの非効率性は、クライアントデバイスでのパフォーマンスの低下、およびユーザエクスペリエンスの低下を招く。
【0047】
加えて、多くの場合、従来のシステムは、クライアントデバイスに、重複するタスクを非効率的に実行させる。例示すると、複数のライブビデオストリームのブロードキャストの場合、ライブビデオストリームを表示する各クライアントデバイスには、ライブビデオストリームの各々が提供される。次に、各クライアントデバイスは、ストリームをレイアウトに個別にコンパイルし、複数のライブビデオストリームのレイアウトを表示する。各クライアントデバイスに、互いに類似および冗長な機能を実行させることは、非効率的であり、大量の計算浪費をもたらす。さらに、各クライアントデバイスに各ライブビデオストリームを受信させる従来のシステムは、帯域幅を非効率的に浪費する。
【0048】
加えて、従来のシステムは、コンピューティングデバイス動作に関して柔軟性がない。上述したように、動作の大部分を実行するためにクライアントデバイスに依存する従来のシステムは、それらが提供することができる技術的特徴の数を含め、それらの動作能力に限界がある。実際、従来のシステムは、限られたハードウェア能力を有するクライアントデバイスに依存する場合、しばしばいくつかの動作を実行することができない。例示すると、前述した理由のために、従来のシステムは、しばしば、より低い解像度で複数のライブビデオストリームを表示することに制限される。加えて、従来のシステムは、同時に少数の複数のライブビデオストリームに限定される。
【0049】
さらに、従来のシステムは、追加の技術的特徴を提供することができないことが多い。例えば、従来のシステムは、ビデオ参加者がライブビデオストリームを視聴しながら待機することができる複数のデジタルルームを提供しない。同様に、従来のシステムは、他の参加者デバイスがライブビデオストリームに参加する準備ができている(例えば、デジタル待機ルームで待っている)場合の標示をホストデバイスに提供しない。代わりに、従来のシステムは、限られたセットのオプションに硬直的に固定されている。
【0050】
さらに、従来のシステムは、動作が不正確になることが頻繁にある。例えば、各クライアントデバイスは、個別に、複数のライブビデオストリームをまとめてコンパイルするので、1つのクライアントデバイス上の複数のライブビデオストリームの表示は、別のクライアントデバイス上のものと同期しない。実際に、同時にキャプチャされた2つのライブビデオストリームについて、第1のクライアントデバイスは、第1のライブビデオストリームをコンパイルして、第2のライブビデオストリームよりも時間的に先行して表示し得る。さらに、第2のクライアントデバイスは、第1のライブビデオストリームの前に第2のライブビデオストリームを表示し得る。追加のライブビデオストリームが導入されるにつれて、エラーおよび不正確さの可能性が増大する。これらの不正確さは、キャプチャされているものが、視聴者がそれぞれのクライアントデバイス上で体験しているものではないので、視聴者の混乱およびフラストレーションをもたらす可能性がある。
【0051】
対照的に、ライブビデオストリーミングシステムは、従来のシステムに勝るいくつかの技術的利点および利益を提供することができる。より詳細には、多くの実装形態では、ライブビデオストリーミングシステムは、効率、柔軟性、および精度の向上をもたらすサーバデバイスに存在する。改善された効率の一例として、ライブビデオストリーミングシステムは、ライブビデオストリームの数が増加するにつれて、および/またはライブビデオストリームの品質が向上するにつれて、過負荷になることなく容易に拡張することができる。実際、ライブビデオストリーミングシステムは、ほとんどのクライアントデバイスにわたって追加のハードウェア能力を提供するサーバデバイスを利用することができ、これにより、ライブビデオストリーミングシステムは、多数のライブビデオストリームをパブリック合成ライブビデオストリームに効率的に結合することができる。
【0052】
加えて、ライブビデオストリーミングシステムは、パブリック合成ライブビデオストリームを表示する視聴者デバイスの各々と共有されるパブリック合成ライブビデオストリームを生成することができる。例えば、各クライアントデバイスに、各参加者デバイスからのライブビデオストリームの全てを受信させ、個別に処理させるのではなく、ライブビデオストリーミングシステムは、パブリック合成ライブビデオストリームを中央位置で均一なレイアウトに生成する。次いで、ライブビデオストリーミングシステムは、同じレイアウトで配置された単一のパブリック合成ライブビデオストリームを視聴者デバイスの各々に提供することができる。これにより、各クライアントデバイスが重複タスクを非効率的に実行することを低減できるだけでなく、視聴者デバイスに提供されているライブビデオストリームの数がパブリック合成ライブビデオストリームに減少するため、帯域幅を削減することもできる。
【0053】
さらに、ライブビデオストリーミングシステムは、従来のビデオ共有システムに対して柔軟性の改善を提供することができる。限られた能力を有するクライアントデバイスを利用する従来のシステムとは異なり、ライブビデオストリーミングシステムは、多数の動作および技術的特徴を実装するために1つまたは複数のサーバデバイスを利用することができる。実際、上述したように、ライブビデオストリーミングシステムは、各々がライブビデオストリームを提供する多数の参加者デバイスに対応するように柔軟に拡張することができる。さらに、ライブビデオストリーミングシステムは、パブリック合成ライブビデオストリームをより高い解像度で視聴者デバイスにブロードキャストすることを含めて、各参加者デバイスに提供されているビデオ品質を動的に調整することができる。
【0054】
別の例として、ライブビデオストリーミングシステムは、従来のシステムでは利用できない特徴を提供することができる。例えば、ライブビデオストリーミングシステムは、ビデオ参加者がパブリック合成ライブビデオストリームを視聴している間も待機することができるデジタルルームを提供することができる。同様に、ライブビデオストリーミングシステムは、ホストデバイスまたは参加者デバイスに1つまたは複数のデジタルルームのビデオストリームを提供することができ、同時に、パブリック合成ライブビデオストリームをそれらの同じデバイスに表示することもできる。実際、以下でさらに説明するように、ライブビデオストリーミングシステムは、パブリック合成ライブビデオストリームセッションの前、間、および後に、1つまたは複数の同時ライブビデオストリーム(例えば、多くの場合、1つまたは複数のパブリック合成ライブビデオストリーム)を参加者デバイスに柔軟かつ動的に提供することができる。さらに、以下で説明するように、ライブビデオストリーミングシステムは、厳格に制約された従来のシステムではしばしば達成できないライブビデオストリームに関する追加の動作、オプション、および特徴を提供することができる。
【0055】
さらに、ライブビデオストリーミングシステムは、従来のビデオ共有システムよりも改善された精度を提供することができる。例示すると、ライブビデオストリーミングシステムは、パブリック合成ライブビデオストリームを生成する前に、ライブビデオストリームの各々を同期させることができる。さらに、ライブビデオストリーミングシステムは、パブリック合成ライブビデオストリームのための統一されたレイアウトを生成することができる。このようにして、各視聴者デバイスは、潜在的に別個の体験を生成する各視聴者デバイスではなく、ホストデバイスおよび/または他の参加者デバイスによって意図されるのと同じ体験を提供される。
【0056】
加えて、上述したように、ライブビデオストリーミングシステムは、参加者デバイスのユーザによるインタラクションおよび時間(ホストデバイスにおけるものを含む)を低減する合理化されたユーザインタフェースを提供することができる。説明したように、ライブビデオストリーミングシステムは、パブリック合成ライブビデオストリームに参加しようとしている保留中の参加者または過去の参加者を示すように自動的に更新する動的ユーザインタフェースをホストデバイスまたは他の参加者デバイスに提供することができる。実際、ライブビデオストリーミングシステムは、パブリック合成ライブビデオストリームと、保留中または過去の参加者を含むデジタルルームのライブビデオストリームとの両方を示す動的ユーザインタフェースを生成および提供することができる。さらに、ライブビデオストリーミングシステムは、ホストデバイス(または別の参加者デバイス)が、パブリック合成ライブビデオストリームから離れてナビゲートする必要なく、またはパブリック合成ライブビデオストリームから退出する必要なく、デジタルルームからのライブビデオストリームをパブリック合成ライブビデオストリームに追加することを可能にする要素をこれらの動的ユーザインタフェース内に提供する。
【0057】
前述の説明によって示されるように、本開示は、ライブビデオストリーミングシステムの特徴および利点を説明するために様々な用語を利用する。例えば、本明細書で使用される場合、「ライブビデオ」という用語は、リアルタイム(タイムシフトされていない)またはほぼリアルタイムでキャプチャおよび共有されるデジタルオーディオビジュアルデータを指す。一般に、ライブビデオは、キャプチャされるとともに、同時にブロードキャストされるビデオである。ライブビデオの例は、デジタルビデオファイル、デジタル写真と組み合わされたデジタルオーディオファイル、および/またはストリーミングコンテンツを含むが、これらに限定されない。したがって、ライブビデオは、ライブビデオストリームの形態で通信ネットワークを介して送信され得る画像、ビデオ、オーディオ、テキスト、アニメーション、または任意の他のオーディオ/ビジュアルコンテンツなどのメディアを含み得る。さらに、本明細書で使用される「ライブビデオストリーム」という用語は、ライブビデオの送信またはブロードキャストを指す。概して、ライブビデオストリームは、メディアのライブまたはライブに近い送信を含む。
【0058】
複数の参加者デバイスが協調作業の一部としてライブビデオストリームを共有する場合、ライブビデオストリーミングシステムは、各参加者デバイスからのライブビデオストリームを含む合成ライブビデオストリームを生成することができる。本明細書で使用される場合、「合成ライブビデオストリーム(combined live video stream)」という用語は、複数の参加者デバイスからの複数のライブビデオストリームの合成物である単一のライブビデオストリームを指す。さらに、合成ライブビデオストリームが視聴者デバイス(例えば、非参加者デバイスの視聴者)と共有される場合、合成ライブビデオストリームは、パブリック合成ライブビデオストリームになることができる。実際、ライブビデオストリーミングシステムは、パブリック合成ライブビデオストリームを単一のパブリック合成ライブビデオストリームとして視聴者デバイスと共有することができる。
【0059】
一般に、パブリック合成ライブビデオストリームは、視聴者デバイスの視聴者と共有されるライブビデオストリームを含むことができる。しかしながら、ライブビデオストリーミングシステムは、デジタルルームに関連付けられた合成ライブビデオストリームを生成することもできる。例えば、2つ以上の保留中の参加者デバイスがデジタル待機ルームにいる場合、ライブビデオストリーミングシステムは、保留中の参加者デバイスからのライブビデオストリームを含むデジタル待機ルームの合成ライブビデオストリームを生成することができる。いくつかの実装形態では、ライブビデオストリーミングシステムは、デジタル待機ルームのライブビデオストリームを視聴者デバイスにブロードキャストすることなく、デジタル待機ルームのライブビデオストリームを、保留中の参加者デバイス、および/またはパブリック合成ライブビデオストリームに現在参加している1つまたは複数の参加者デバイス(例えば、ホストデバイス)に提供することができる。
【0060】
本明細書で使用される場合、「参加者デバイス(participant device)」という用語は、合成ライブビデオストリームに参加しているクライアントデバイスを指す。例えば、参加者デバイスは、ライブビデオストリーミングシステムがライブビデオストリームを合成ライブビデオストリーム(パブリック合成ライブビデオストリームを含む)に含めるために、ライブビデオストリーミングシステムにライブビデオストリームを提供する(適切な許可が与えられた場合)。いくつかの実装形態では、参加者デバイスは、パブリック合成ライブビデオストリームを開始および制御するホストデバイスを含むことができる。一般に、ホストデバイスは、パブリック合成ライブビデオストリームの追加の設定および権限へのアクセスを有する参加者デバイスである。例えば、ホストデバイスは、パブリック合成ライブビデオストリームのフレームワークまたはアジェンダとして機能する参加トリガを選択することができる。追加の実装形態では、参加者デバイスのうちの1つまたは複数も、ホストデバイスと同じまたは類似の追加の設定および権限を与えられる。さらに、以下で詳述されるように、非参加者デバイス(例えば、ステージマネージャデバイス)は、ライブビデオストリームをライブビデオストリーミングシステムに提供することなく、ホストデバイスの機能を実行することもできる。
【0061】
上述したように、参加者デバイスは、保留中の参加者デバイス(例えば、パブリック合成ライブビデオストリームへの参加を待っている参加者デバイス)と、以前の参加者デバイス(例えば、パブリック合成ライブビデオストリームに以前参加しており、もはや参加していない参加者デバイス)とを含むことができる。概して、保留中の参加者デバイスおよび以前の参加者デバイスは、パブリック合成ライブビデオストリームに現在参加していないが、それらは、ライブビデオストリームをライブビデオストリーミングシステムに依然として提供することができ、ライブビデオストリーミングシステムは、ライブビデオストリームをアクティブに保ち、および/またはデジタルルームに追加する。そうでなければ、それらは視聴者デバイスになり得る。
【0062】
本明細書で使用される「視聴者デバイス(viewer device)」という用語は、パブリック合成ライブビデオストリームを受信して消費するコンピューティングデバイスを指す。様々な実装形態では、視聴者デバイスは、パブリック合成ライブビデオストリーム内に書かれたフィードバックまたはグラフィカルフィードバックを提供することができる。概して、視聴者デバイスは、パブリック合成ライブビデオストリームに含めるためにライブビデオストリームをライブビデオストリーミングシステムに送信することによってパブリック合成ライブビデオストリームに参加しない。しかしながら、いくつかの実装形態では、ライブビデオストリーミングシステムは、パブリック合成ライブビデオストリームに参加する視聴者デバイス(例えば、ターゲット視聴者デバイス)を特定することができる。これらの実装形態では、ライブビデオストリーミングシステムは、視聴者デバイスのライブビデオストリームがパブリック合成ライブビデオストリームに追加される場合に、視聴者デバイスを参加者デバイスに変換する。
【0063】
本明細書で使用される場合、「デジタルルーム」という用語は、ライブビデオストリームを共有するための参加者デバイスの仮想ロケーションまたは集合体を指す。例えば、デジタルルームは、(パブリック視聴者デバイスにブロードキャストされるパブリック合成ライブビデオストリームに現在参加することなく)ライブビデオストリームを描写する1つまたは複数の参加者デバイスの集合を含むことができる。特に、デジタルルームは、各々がライブビデオストリームを送信するとともに、ライブビデオストリーミングシステムから合成ライブビデオストリームを受信する参加者デバイスの集合を含むことができる。例えば、デジタルルームという用語は、他の視聴者デバイスにブロードキャストされているパブリック合成ライブビデオストリームに現在追加されていない、ライブビデオストリーミングシステムに提供される1つまたは複数のライブビデオストリームを指す。
【0064】
デジタルルームの一例は、パブリック合成ライブビデオストリームを視聴者デバイスにブロードキャストする前に1つまたは複数の参加者デバイスが集まるデジタル準備ルームを含む。別の例は、1つまたは複数の参加者デバイス(例えば、保留中の参加者デバイス)が、他の視聴者デバイスへのパブリック合成ライブビデオストリームブロードキャストに加わる前に待機するデジタル待機ルームを含む。デジタルルームの他の例は、デジタル参加後ルームおよびブロードキャスト後ルームを含む。さらに、ライブビデオストリーミングシステムは、デジタルルームの複数のインスタンスを生成するとともに、異なるデジタルルームインタフェースを生成して、異なるデジタルルーム内の参加者デバイスに提供することができる。
【0065】
本明細書で使用される場合、「アクティビティメトリック(activity metric)」という用語は、パブリック合成ライブビデオストリームに関連付けられた視聴者デバイスおよび/または参加者デバイスのデジタル参加、デジタルイベント、またはデジタルインタラクションの尺度を指す。例えば、アクティビティメトリックという用語は、パブリック合成ライブビデオストリームを表示する視聴者デバイスおよび/または参加者デバイスによって提供される、またはそれらから検出される暗黙的または明示的なアクティビティデータを指す。ライブビデオストリーミングシステムは、1つまたは複数のアクティビティメトリックを分析して、視聴者デバイスおよび/または参加者デバイスの参加レベルまたは参加意欲を判定することができる。以下でさらに説明するように、アクティビティメトリックは、アクティブプレゼンスメトリック、視聴時間メトリック、デジタル投票メトリック、デジタル入札メトリック、デジタル購入メトリック、ホスト入力メトリック、ターンまたはインターバルベースのメトリック、およびランダム選択メトリックを含むことができる。
【0066】
本明細書で使用される「参加トリガ」という用語は、パブリック合成ライブビデオストリームに関連付けられた条件を指す。例えば、参加トリガは、パブリック合成ライブビデオストリームのフレームワーク、構造、および/またはアジェンダを提供することができる。様々な実装形態では、1つまたは複数の参加トリガは、パブリック合成ライブビデオストリームを実行するためのアルゴリズムまたはルールのセットを形成する。例えば、参加トリガは、パブリック合成ライブビデオストリームの開始および終了、誰がパブリック合成ライブビデオストリームに参加できるかの判定(例えば、適格性要件)、およびデジタルルームへの参加デバイスの出入りの移行に関するルールを含むことができる。別の例として、参加トリガは、どのようにパブリック合成ライブビデオストリームに追加するターゲット視聴者デバイスを特定するか、パブリック合成ライブビデオストリームから参加者デバイスを除去するか、および/または参加者デバイスを視聴者デバイスと交換するかを示すことができる。参加トリガは、以下でさらに説明される。
【0067】
ここで、示された図面に関連して、ライブビデオストリーミングシステムの1つまたは複数の実装形態に関してさらなる詳細が提供される。概要として、
図1~
図3は、パブリック合成ライブビデオストリームを生成およびブロードキャストするライブビデオストリーミングシステムに対応し、
図4~
図15は、パブリック合成ライブビデオストリームに関連してデジタルルームを生成および利用するライブビデオストリーミングシステムに対応し、
図16~
図20は、パブリック合成ライブビデオストリーム内の参加者デバイスを動的に追加、除去、および切り替えすることに対応し、
図21は、パブリック合成ライブビデオストリームのドロップされたインスタンスを復元するライブビデオストリーミングシステムに対応する。
【0068】
例えば、
図1は、1つまたは複数の実装形態による、ライブビデオストリーミングシステム106を実装するためのシステム環境100(または「システム100」)のブロック図である。示されるように、システム100は、ネットワーキングシステム104およびライブビデオストリーミングシステム106をホストするサーバデバイス102を含む。システム100は、ネットワーク120を介してライブビデオストリーミングシステム106と通信することができる、ホストデバイス108、参加者デバイス110、および視聴者デバイス112などのクライアントデバイスをさらに含む。
【0069】
サーバデバイス102は、ネットワーキングシステム104および/またはライブビデオストリーミングシステム106を実装するための1つまたは複数のコンピューティングデバイスを含むことができる。1つまたは複数の実装形態では、サーバデバイス102は、ネットワーキングシステム104および/またはライブビデオストリーミングシステム106の全部または一部を実装することができる。例えば、いくつかの例では、サーバデバイス102は、コンテンツサーバおよび/またはデータ収集サーバを含む。サーバデバイス102は、アプリケーションサーバ、通信サーバ、ウェブホスティングサーバ、ソーシャルネットワーキングサーバ、またはデジタルコンテンツ管理サーバを備えることもできる。加えて、ホストデバイス108、参加者デバイス110、および視聴者デバイス112は、モバイルコンピューティングデバイスなどの様々なタイプのコンピューティングデバイスを含むことができる。図示されるデバイス(102、108、110、および112)、ならびにネットワーク120に関する追加の説明は、以下の
図23および
図24に関して提供される。
【0070】
上述のように、サーバデバイス102は、ネットワーキングシステム104を含む。1つまたは複数の実装形態では、ネットワーキングシステム104は、ネットワーキングシステム104のユーザによって共有されるネットワーキングデータおよびコンテンツアイテム(例えば、ライブストリーム、画像、ビデオ、オーディオ、テキストなど)を含む様々なタイプのデータを生成、格納、受信、および送信することができる。したがって、ネットワーキングシステム104は、ユーザを一緒に接続し、ユーザがコンテンツアイテムを互いに共有することを可能にすることができる。様々な実装形態では、ネットワーキングシステム104は、ソーシャルネットワーキングシステム、電子メッセージングシステム、またはユーザが互いに通信することを可能にする別のタイプのネットワーキングシステムを含むことができる。ネットワーキングシステム104に関するさらなる詳細は、
図24および
図25に関連して以下に提供される。
【0071】
ネットワーキングシステム104は、ライブビデオストリーミングシステム106を含むことができる。代替的な実装形態では、ライブビデオストリーミングシステム106は、サーバデバイス102または別のコンピューティングデバイス上でネットワーキングシステム104とは別個に実装される。様々な実装形態において、ライブビデオストリーミングシステム106は、ライブビデオストリームの受信、生成、結合、合成、同期、配置、変換、ブロードキャスト、共有、編集、および/または他の方法での管理を容易にする。例えば、ライブビデオストリーミングシステム106は、複数の参加者デバイス110からのライブビデオストリームを合成して合成ライブビデオストリームを生成し、それをパブリック合成ライブビデオストリームとして視聴者デバイス112にブロードキャストすることができる。ライブビデオストリーミングシステム106の実装形態に関するさらなる詳細は、後続の図において提供される。
【0072】
さらに、ネットワーキングシステム104および/またはライブビデオストリーミングシステム106は、サーバデバイス102上で実行される1つまたは複数のアプリケーションを含むことができ、あるいは一部をサーバデバイス102からダウンロードすることができる。例えば、ライブビデオストリーミングシステム106は、クライアントデバイスがサーバデバイス102においてホストされたコンテンツとインタラクションする(interact)ことを可能にするウェブホスティングアプリケーションを含むことができる。
【0073】
上述したように、システム100は、ホストデバイス108、参加者デバイス110、および視聴者デバイス112などのクライアントデバイスを含む。概して、ホストデバイス108は、参加者デバイス110も含む合成ライブビデオストリームを開始する。実際に、合成ライブビデオストリームは、ホストデバイス108および参加者デバイス110の両方からのライブビデオストリームを含む。1つまたは複数の実装形態では、ライブビデオストリーミングシステム106は、ホストデバイス108に、合成ライブビデオストリームのための設定、許可、権限などへの追加のアクセスを提供する。いくつかの実装形態では、ライブビデオストリーミングシステム106は、1つまたは複数の参加者デバイス110に同じまたは類似のアクセスを許可する。上述したように、ホストデバイス108は、ホストデバイス108から参加者デバイス110への実線の一方向の線によって表されるように、合成ライブビデオストリーム中に参加者デバイス110のうちの1つとなり得る。
【0074】
視聴者デバイス112は、ライブビデオストリーミングシステム106から合成ライブビデオストリームを受信することができる。例えば、ライブビデオストリーミングシステム106は、参加者デバイス110(ホストデバイス108を含む)から視聴者デバイス112に合成ライブビデオストリームを提供する。いくつかの実装形態では、視聴者デバイス112と参加者デバイス110との間の破線の双方向の線によって示されるように、視聴者デバイスは参加者デバイスになることができる。例えば、ライブビデオストリーミングシステム106は、以下でさらに説明されるように、視聴者デバイス112から、パブリック合成ライブビデオストリームに参加するターゲット視聴者デバイスを識別する。さらに、ライブビデオストリーミングシステム106は、以下でさらに説明するように、参加者デバイス(例えば、以前の視聴者デバイス)を、パブリック合成ライブビデオストリーム中に視聴者デバイスに戻るように移行させることができる。
【0075】
図示されるように、ホストデバイス108、参加者デバイス110、および視聴者デバイス112は、各々、ライブビデオストリーミングシステム106に対応するネットワーキングシステムアプリケーション114を含む。様々な実装形態では、ネットワーキングシステムアプリケーション114は、クライアントデバイスによって実行されると、クライアントデバイスに、本明細書で説明するような特定の機能を実行させるコンピュータ実行可能命令を任意選択で含むことができる。多くの実装形態では、ネットワーキングシステムアプリケーション114は、サーバデバイス102上のライブビデオストリーミングシステム106および/またはネットワーキングシステム104から(直接的または間接的に)ダウンロード、受信、アクセス、および/または提供される。
【0076】
概して、ネットワーキングシステムアプリケーション114は、クライアントデバイスのユーザが、ライブビデオストリームに参加し、ライブビデオストリームを視聴し、他の方法でライブビデオストリーミングシステム106および/またはネットワーキングシステム104とインタラクションすることを可能にする。例えば、ネットワーキングシステムアプリケーション114は、クライアントデバイスが、サーバデバイス102においてホストされるウェブページまたはウェブサイトにアクセスし、それを閲覧し、および/またはそれとインタラクションすることを可能にするウェブアプリケーション(例えば、ウェブブラウザ)を含む。別の例では、ネットワーキングシステムアプリケーション114は、ライブビデオストリーミングシステム106に関連する、および/またはサーバデバイス102から(例えば、部分的または完全に)ダウンロードされるスタンドアロンモバイルアプリケーションである。
【0077】
図1のシステム100は、特定の構成で示されているが、様々な追加の構成が可能である。例えば、ライブビデオストリーミングシステム106は、別のデバイス上で全体的または部分的に実装され得る(例えば、クライアントデバイスのうちの1つまたは複数が、ライブビデオストリーミングシステム106の機能の一部または全部を実行する)。同様に、システム100は、様々な構成要素を有するものとして示されているが、システム100は、追加のまたは代替的な構成要素を有してもよい。例えば、システム100は、複数のホストデバイス(例えば、共同ホスト)を含むことができる。別の例では、システム100は、サーバデバイス102およびネットワーキングシステム104と通信する別個のコンピューティングデバイス上にソーシャルネットワーキングシステムを含むことができる。
【0078】
次に
図2を参照すると、パブリック合成ライブビデオストリームを視聴者デバイス112に提供するライブビデオストリーミングシステム106に関する追加の詳細が提供される。特に、
図2は、1つまたは複数の実装形態による、パブリック合成ライブビデオストリームを生成し、視聴者デバイス112にブロードキャストするライブビデオストリーミングシステム106の一連の動作200のシーケンス図である。示されるように、一連の動作200は、ライブビデオストリーミングシステム106が、参加者デバイス110(ホストデバイスを含むことができる)および視聴者デバイス112と通信することを含む。
【0079】
示されるように、一連の動作200は、ライブビデオストリーミングシステム106が第1の通信プロトコルを介してホストデバイスからライブビデオストリームを受信する動作202を含む。例えば、ホストデバイス108は、上記で開示されたネットワーキングシステムアプリケーションを利用してライブビデオストリームを開始する。多くの実装形態では、ライブビデオストリームは、ホストデバイスによって、またはホストデバイスに取り付けられたハードウェアデバイス(例えば、外部カメラまたはマイクロフォン)を介してキャプチャされた、音声を有するビデオを含む。
【0080】
動作202に示すように、ホストデバイスは、第1の通信プロトコルを利用してライブビデオストリームをライブビデオストリーミングシステム106に送信することができる。例えば、ライブビデオストリームは、リアルタイムメッセージングプロトコル(RTMP)またはレイテンシ速度よりも高品質の接続を優先する別のプロトコル(例えば、フェイスブックビデオプロトコル(Facebook Video Protocol,FBVP))を介して送信される。実際、この例ではホストデバイスのみがライブビデオストリームをライブビデオストリーミングシステム106に提供しているので、ライブビデオストリームを遅延させて、より高品質のストリームを保証することができる。
【0081】
一連の動作200は、ライブビデオストリーミングシステム106がライブビデオストリームを第1の通信プロトコルを介して視聴者デバイス112に提供する動作204を含む。例えば、ライブビデオストリームをホストデバイスから受信すると、ライブビデオストリーミングシステム106は、(例えば、ホストをフォローするネットワーキングシステムのユーザに関連付けられた)視聴者デバイス112に、ホストデバイスが現在ライブストリーミングしていることを通知する。それに応答して、視聴者デバイス112は、(例えば、ネットワーキングシステムアプリケーションを介して)ライブビデオストリームにアクセスすることができる。さらに、ライブビデオストリーミングシステム106は、速度よりもビデオ品質を優先する第1の通信プロトコルを介してライブビデオストリームを視聴者デバイス112に提供することができる。
【0082】
いくつかの実装形態では、ライブビデオストリーミングシステム106は、ライブビデオストリームを視聴者デバイス112にブロードキャストする前に、サーバデバイス102においてライブビデオストリームをバッファリングする。例えば、ライブビデオストリーミングシステム106は、最大30秒のバッファを構築し、これは、ライブビデオストリーミングシステム106が、第1の通信プロトコルを介して、パブリック合成ライブビデオストリームの複数のフレームを視聴者デバイス112に提供することを可能にする。バッファは、視聴者デバイス112がパブリック合成ライブビデオストリームの対応する部分を再生する前に、ライブビデオストリーミングシステム106がドロップされた、または欠落したデータパケットを再送することを可能にもする。
【0083】
図示のように、一連の動作200は、ライブビデオストリーミングシステム106が、ライブビデオストリームに参加するための追加の参加者デバイスの要求を受信する動作206を含む。例えば、様々な実装形態では、ホストデバイスが視聴者デバイス112にライブストリーミングしている間に、追加の参加者デバイスがライブビデオストリームに参加することを要求することができる。いくつかの実装形態では、ホストデバイスは、ライブビデオストリームに参加するように追加の参加者デバイスを招待する。
【0084】
ライブビデオストリームにおいてホストデバイスに参加するための追加の参加者デバイスからの要求を検出したことに応答して、ライブビデオストリーミングシステム106は、通信プロトコルを変更することを決定することができる。例示のために、一連の動作200は、ライブビデオストリーミングシステム106が第2の通信プロトコルへの切り替えを参加者デバイス110に示す動作208を含む。例えば、複数の参加者デバイス110を準備するために、ライブビデオストリーミングシステム106は、リアルタイム通信(RTC)プロトコルなどの、ビデオ品質よりも低遅延を優先する通信プロトコルを介してライブビデオストリームを提供するように参加者デバイス110に命令する。いくつかの例では、第2の通信プロトコルは、約200ミリ秒のレイテンシを有する。
【0085】
示されるように、一連の動作200は、ライブビデオストリーミングシステム106が、第2の通信プロトコルを介してホストデバイスおよび追加の参加者デバイスからライブビデオストリームを受信する動作210を含む。上述したように、第2の通信プロトコルは、ビデオ品質よりもビデオパケット配信速度を優先することができる。したがって、複数の参加者デバイス110が参加を開始する場合、ライブビデオストリーミングシステム106は、第1の通信プロトコルを介してホストデバイスから単一のライブビデオストリームを受信することから、第2の通信プロトコルを介して複数のライブビデオストリームを受信することに切り替えることができる。
【0086】
一連の動作200は、ライブビデオストリーミングシステム106がパブリック合成ライブビデオストリームを生成する動作212を含むことができる。例えば、様々な実装形態では、ライブビデオストリーミングシステム106は、サーバデバイス102において参加者デバイス110から受信されたライブビデオストリームの各々を、参加者デバイス110からのライブビデオストリームを統合されたビデオストリームとして表示する単一のパブリック合成ライブビデオストリームに合成する。
【0087】
上述したように、パブリック合成ライブビデオストリームを生成するためにサーバデバイス102(または複数のサーバデバイス)を利用することによって、ライブビデオストリーミングシステム106は、効率、柔軟性、および精度の領域における改善を提供することができる。例えば、個々のクライアントデバイスではなくサーバデバイス102を利用することにより、ライブビデオストリーミングシステム106は、容易に拡張するとともに、多数の参加者デバイス110をパブリック合成ライブビデオストリームに追加することが可能になる。さらに、上記で開示したように、ライブビデオストリーミングシステム106は、パブリック合成ライブビデオストリームについての同期およびレイアウトに関して均一性を得ることができる。加えて、ライブビデオストリーミングシステム106は、パブリック合成ライブビデオストリームをより高い解像度で視聴者デバイス112に提供することができる。さらに、サーバデバイス102を利用することによって、サーバデバイスがクライアントデバイスよりも追加のコンピューティングリソースを大いに提供するので、ライブビデオストリーミングシステム106は、より多くのカスタマイズおよびアニメーションを提供することができる。
【0088】
様々な実装形態では、パブリック合成ライブビデオストリームを生成することの一部として、ライブビデオストリーミングシステム106は、ライブビデオストリームを同期させることができる。例えば、ライブビデオストリーミングシステム106は、参加者デバイス110からのライブビデオストリームの各々からのタイムスタンプを互いに一致させて、パブリック合成ライブビデオストリーム内のストリームを適切に整列させることができる。このようにして、ライブビデオストリーミングシステム106は、参加者デバイス110によってキャプチャされることを意図されたとおりに、パブリック合成ライブビデオストリームを生成する。
【0089】
加えて、ライブビデオストリーミングシステム106は、受信したライブビデオストリームを配置に並べるとともに、参加者デバイス110に関連付けられたアクティビティメトリック(例えば、話者が変わるときを検出する)に基づいて、参加者デバイス110がパブリック合成ライブビデオストリームに出入りするときに、および/または参加者デバイス(例えば、ホストデバイス)によって提供される入力に基づいて、レイアウトを動的に更新することができる。
【0090】
示されるように、一連の動作200は、ライブビデオストリーミングシステム106が第2の通信プロトコルを介してパブリック合成ライブビデオストリームを参加者デバイス110に提供する動作214を含む。上述したように、第2の通信プロトコルは、参加者デバイス110の各々の間などのリアルタイム通信により適したレイテンシを優先する。したがって、ライブビデオストリーミングシステム106は、参加者デバイス110が互いに自然にリアルタイムでインタラクションすることができるように、パブリック合成ライブビデオストリームを参加者デバイス110に戻す。
【0091】
図示されるように、一連の動作200は、ライブビデオストリーミングシステム106が第1の通信プロトコルを介してパブリック合成ライブビデオストリームを視聴者デバイス112に提供する動作216を含む。例えば、上述したように、ライブビデオストリーミングシステム106は、品質優先通信プロトコルを介して、パブリック合成ライブビデオストリームを視聴者デバイス112にブロードキャストする。実際に、いくつかの実装形態では、ライブビデオストリーミングシステム106は、15~30秒のバッファを利用して、パブリック合成ライブビデオストリームがより高い品質レベルで視聴者デバイス112に送信されることを可能にする。
【0092】
したがって、一連の動作200に示すように、ライブビデオストリーミングシステム106は、パブリック合成ライブビデオストリームを参加者デバイス110にリアルタイム(~約200ms)で送信することができ、同時にパブリック合成ライブビデオストリームのバッファリングされたバージョンを視聴者デバイス112に送信することもできる。実際に、異なる通信プロトコルを利用することは、参加者デバイス110がリアルタイムで自然に互いにインタラクションすることを可能にすると同時に、視聴者デバイス112がパブリック合成ライブビデオストリームのリッチな高品質バージョンを(例えば、パブリック合成ライブビデオストリームのバッファリングされたバージョンを介して)楽しむことも可能にする。
【0093】
図示および説明されるように、
図2は、最初に単一のライブビデオストリームを視聴者デバイス112にブロードキャストし、次いで、追加の参加者デバイス110が追加されると、それをパブリック合成ライブビデオストリームに変換するための一連の動作200を示す。しかしながら、いくつかの実装形態では、ライブビデオストリーミングシステム106は、パブリック合成ライブビデオストリームを視聴者デバイス112に提供する前に、パブリック合成ライブビデオストリームの生成を開始することができる。実際、
図4~
図15に関して以下で説明されるように、ライブビデオストリーミングシステム106は、デジタルルーム(例えば、デジタル準備ルーム)を利用して、最初にパブリック合成ライブビデオストリームを生成し、次いで、それを視聴者デバイス112に提供することができる。これらの実装形態では、ライブビデオストリーミングシステム106は、上述したように、異なる通信プロトコルを依然として利用することができる。
【0094】
次に
図3A~
図3Bを参照すると、パブリック合成ライブビデオストリームを視聴者デバイス112に提供するライブビデオストリーミングシステム106に関する視覚的な例および追加の詳細が示されている。特に、
図3A~
図3Bは、1つまたは複数の実装形態による、パブリック合成ライブビデオストリームを起動およびブロードキャストするためのグラフィカルユーザインタフェースを示す。実際、
図3A~
図3Bは、ライブビデオストリーミングシステム106が、パブリック合成ライブビデオストリームのブロードキャストに関して、ホストデバイス(例えば、
図3A)および視聴者デバイス(
図3B)にどのように更新させることができるかを示している。様々な実装形態では、ライブビデオストリーミングシステム106に対応するネットワーキングシステムアプリケーションは、
図3A~
図3Bに示すユーザインタフェースを表示することができる。
【0095】
図示されるように、
図3Aは、ホストデバイス108(例えば、参加者デバイス)を含む。ホストデバイス108は、ライブビデオストリームを要求および開始するための要素、特徴、グラフィックス、およびオプションを含むホストグラフィカルユーザインタフェース302(または単に「ホストユーザインタフェース302」)を含む。示されるように、ホストユーザインタフェース302は、ライブビデオストリームを開始する準備をしているホストデバイス108に対応する。実際、ホストユーザインタフェース302の下部は、メディア共有モードのセット304から選択された「ライブ(Live)」モードを示す。
【0096】
上述したように、ホストデバイス108は、例えば、内蔵カメラおよびマイクロフォンを利用して、ビデオ(およびオーディオ)をキャプチャすることができる。したがって、図示された実装形態などのいくつかの実装形態では、ホストユーザインタフェース302は、ホストデバイス108によって取り込まれた画像306を表示する。加えて、ホストユーザインタフェース302は、ライブビデオストリームを開始するためのライブブロードキャスト開始要素308を含む。
【0097】
さらに、示されるように、ホストユーザインタフェース302は、ホストデバイス108および/またはネットワーキングシステムアプリケーションに関する種々のプリファレンスおよび設定(例えば、アカウント設定、ハードウェア設定、プライバシー設定など)に対応することができる、アプリケーション設定要素310を含む。加えて、ホストユーザインタフェース302は、パブリック合成ライブビデオストリームのセットアップおよび促進に対応するライブストリーム設定要素312を含むことができる。例えば、図示のように、ライブストリーム設定要素312は、パブリック合成ライブビデオストリームにタイトルを追加すること、様々なデジタルルームをセットアップすること、パブリック合成ライブビデオストリームのセットアップまたは方式を変更すること、およびパブリック合成ライブビデオストリームにアクティビティを追加することに対応する要素を含む。ライブストリーム設定要素の多くは、以下でさらに説明される。
【0098】
さらに、図示のように、ホストデバイス108は、アクティブフォロワー標示314などの様々な通知要素を含むことができる。示されるように、アクティブフォロワー標示314は、ネットワーキングシステム上で現在ログオンしているか、またはアクティブであるネットワーキングシステムのユーザの数を示す。多くの実装形態では、これらのフォロワーは、パブリック合成ライブビデオストリームを視聴するであろう視聴者デバイス112の多くに対応し得る。
【0099】
上述したように、ホストユーザインタフェース302は、ライブブロードキャスト開始要素308を含む。ライブブロードキャスト開始要素308の選択を検出すると、ホストデバイス108は、ホストデバイス108においてキャプチャされたビデオのライブビデオストリームをライブビデオストリーミングシステム106に提供することができる。加えて、他の参加者デバイスが対応するライブビデオストリームを提供すると、ライブビデオストリーミングシステム106は、前述のように、合成ライブビデオストリームを生成することができる。さらに、ライブビデオストリーミングシステム106は、合成ライブビデオストリームをパブリック合成ライブビデオストリームとして(単一のライブビデオストリームとして)視聴者デバイス112にブロードキャストすることができる。
【0100】
例示のために、
図3Bは、視聴者ユーザインタフェース322を有する視聴者デバイス112(または単に「視聴者ユーザインタフェース322」)を示す。図示のように、視聴者ユーザインタフェース322は、4人の参加者を示すパブリック合成ライブビデオストリーム324を含む。加えて、視聴者ユーザインタフェース322は、ライブブロードキャストインジケータ326(例えば、ライブインジケータおよびパブリック合成ライブビデオストリームを視聴している視聴者デバイスの現在の数)などの様々な通知要素を含む。さらに、視聴者ユーザインタフェース322は、コミュニケーション要素328を含むことができ、ここで、視聴者デバイス112は、参加者デバイスおよび/または他の視聴者デバイスに全体的または直接的なメッセージを提供することができ、ならびにパブリック合成ライブビデオストリームの一部に「いいね(like)」を表明することができる。
【0101】
視聴者デバイス122は、様々な場所からパブリック合成ライブビデオストリームにアクセスすることができる。例えば、1つまたは複数の実装形態では、視聴者デバイス122は、参加者デバイスのうちの1つを(例えば、ソーシャルメディアを介して)フォローし、参加者デバイスを含むパブリック合成ライブビデオストリームの存在を示す通知(例えば、投稿、ストーリー、電子メッセージ、プッシュ通知、招待など)を受信する。例えば、ライブビデオストリーミングシステム106は、各参加者デバイスについて視聴者デバイスのリストを維持することができる。次いで、参加者デバイスがパブリック合成ライブビデオストリームに参加する場合、ライブビデオストリーミングシステム106は、そのフォロワーに通知を提供することができる。いくつかの実装形態では、通知自体がパブリック合成ライブビデオストリームである。いくつかの例では、ライブビデオストリーミングシステム106は、視聴者デバイスのソーシャルネットワーキングフィードの一部としてパブリック合成ライブビデオストリームを提供する。
【0102】
いくつかの実装形態では、ライブビデオストリーミングシステム106は、ライブビデオストリーミングシステム106がパブリック非参加者デバイスをブロードキャストしている間に、ライブビデオストリーミングシステム106を、ウェブサイト上またはネットワーキングシステムアプリケーション内のリンク(例えば、テキストリンクまたはグラフィックスリンク)を介して視聴者デバイス122にアクセス可能にする。様々な実装形態では、ライブビデオストリーミングシステム106は、パブリック合成ライブビデオストリームを、ウェブサイト内の要素として、または視聴者デバイス122のネットワーキングシステムアプリケーション内の要素として(例えば、埋め込みビデオとして)再生する。
【0103】
上述したように、
図4~
図15は、パブリック合成ライブビデオストリームに関連付けられたデジタルルームを生成および利用するライブビデオストリーミングシステムに関するさらなる詳細を提供する。例示のために、
図4は、1つまたは複数の実装形態による、パブリック合成ライブビデオストリームを改善するために複数のデジタルルームを利用する概要図を示す。図示されるように、
図4は、パブリック合成ライブビデオストリーム402および複数のデジタルルーム404~410(破線で示される)を含む。以下で説明するように、ライブビデオストリーミングシステム106は、デジタルルームを利用して、複数の参加者デバイスを有するパブリック合成ライブビデオストリームをシームレスに開始するとともに、現在のパブリック合成ライブビデオストリームに参加者デバイスを追加し、かつ現在のパブリック合成ライブビデオストリームから参加者デバイスを除去することができる。
【0104】
加えて、
図4は、ライブビデオストリーミングシステム106に、対応するライブビデオストリーム(参加者デバイスに付けられた矢印として示される)を提供する複数の参加デバイス412~418(アイコンによって示される)を示す。前述したように、ライブビデオストリーミングシステム106は、複数のライブビデオストリームを合成してパブリック合成ライブビデオストリーム402とすることができる。さらに、上述したように、ライブビデオストリーミングシステム106は、パブリック合成ライブビデオストリーム402を視聴者デバイスに提供することができる。上述したように、合成ライブビデオストリームの視覚的な例が
図3Bに示されている。合成ライブビデオストリームの追加の視覚的な例は、
図7A~
図7Bに関して以下に提供される。
【0105】
図4に示すように、デジタルルーム404~410は、デジタル準備ルーム404、デジタル待機ルーム406、デジタル参加後ルーム408、およびブロードキャスト後ルーム410を含む。加えて、各デジタルルームは、参加者デバイス412~418のうちの1つまたは複数を含む。多くの実装形態では、ライブビデオストリーミングシステム106は、以下で説明するように、デジタルルームからのライブビデオストリームを他の参加者デバイスに提供することができるが、ライブビデオストリーミングシステム106は、デジタルルームからのライブビデオストリームを視聴者デバイスにブロードキャストしない。
【0106】
図4において、デジタルルームおよび
図4のパブリック合成ライブビデオストリーム402は、時間が左から右に進む時系列方式で配置されている。したがって、デジタル準備ルーム404は、パブリック合成ライブビデオストリーム402(すなわち、他のパブリックビューイングデバイスにブロードキャストされるストリーム)の作成の前に作成され、デジタル待機ルーム406およびデジタル参加後ルーム408は、パブリック合成ライブビデオストリーム402と同時であり、ブロードキャスト後ルーム410は、パブリック合成ライブビデオストリーム402の後に生じる。
【0107】
図示されるように、
図4はデジタル準備ルーム404を含む。概して、デジタル準備ルームは、参加者デバイスが非公開で会話し、より一般的な視聴者に向けてライブでブロードキャストする前に準備することを可能にする。また図示するように、デジタル準備ルーム404は、第1の参加者デバイス412(例えば、ホストデバイス)、第2の参加者デバイス414、および第3の参加者デバイス416を含む。例えば、ホストデバイス(すなわち、第1の参加者デバイス412)は、デジタル準備ルーム404を作成し、参加する。次に、第2の参加デバイス414がデジタル準備ルーム404に参加し、続いて第3の参加デバイス416が参加する。
【0108】
様々な実施態様において、ライブビデオストリーミングシステム106は、第1の参加デバイス412、第2の参加デバイス414、および第3の参加デバイス416のライブビデオストリームから、デジタル準備ルーム404の単一のライブビデオストリームとして、合成された(例えば、非公開の(non-public))ライブビデオストリームを、生成することができる。さらに、ライブビデオストリーミングシステム106は、デジタル準備ルーム404のライブビデオストリームをルーム中の参加者デバイスに戻して提供することができる。例えば、ライブビデオストリーミングシステム106は、参加者デバイスにデジタル準備ルーム404のライブビデオストリームを含むデジタル準備ルームインタフェースを提供する。デジタル準備ルーム404を生成および利用することに関するさらなる詳細は、
図5~
図6Bに関して以下で提供される。
【0109】
多くの実装形態では、ライブビデオストリーミングシステム106は、デジタル準備ルーム404を利用して、パブリック合成ライブビデオストリーム402を生成する。例えば、デジタル準備ルーム404内の参加者デバイスからのユーザ入力の検出に基づいて、ライブビデオストリーミングシステム106は、デジタル準備ルーム404の参加者デバイスのライブビデオストリーム(例えば、合成ライブビデオストリーム)をパブリック合成ライブビデオストリーム402に転送することができる。結果として、ライブビデオストリーミングシステム106は、参加する準備ができている複数の参加者デバイスを含む合成ライブビデオストリームを効率的かつシームレスにブロードキャストすることを開始できる。
【0110】
上述したように、ライブビデオストリーミングシステム106は、デジタルルームを利用して、パブリック合成ライブビデオストリーム402に関連する参加者デバイスを追加し、除去し、および入れ替えることもできる。例えば、ライブビデオストリーミングシステム106は、パブリック合成ライブビデオストリーム402が開始した後に、1つまたは複数のデジタル待機ルームを利用して、パブリック合成ライブビデオストリーム402に参加デバイスを追加することができる。実際、ライブビデオストリーミングシステム106は、デジタル待機ルームを利用して、保留中の参加者デバイスからのライブビデオストリームを受信および最適化してから、パブリック合成ライブビデオストリーム402にシームレスに結合させることができる。
【0111】
説明のために、
図4は、デジタル待機ルーム406を含む。様々な実装形態では、ライブビデオストリーミングシステム106は、矢印422によって示されるように、デジタル待機ルーム406を利用して、保留中の参加者デバイスを合成ライブビデオストリーム402に移行させることができる。図示のように、デジタル待機ルーム406は、パブリック合成ライブビデオストリーム402に参加するのを待っている第4の参加者デバイス418(例えば、保留中の参加者デバイス)を含む。デジタル待機ルーム406は、複数の保留中の参加者デバイスを含むことができ、場合によっては、非参加者デバイス(例えば、第4の参加者デバイス418がパブリック合成ライブビデオストリーム402を準備し、それに参加するのを支援するプロダクションマネージャデバイス)を含むことができる。
【0112】
1つまたは複数の実装形態では、ライブビデオストリーミングシステム106は、デジタル待機ルーム406のライブビデオストリームを生成し、それをルーム内の保留中の参加者デバイスに提供する。例えば、ライブビデオストリーミングシステム106は、デジタル待機ルームグラフィカルユーザインタフェース(または単にデジタル待機ルームインタフェース)を生成し、それをデジタル待機ルーム406内の保留中の参加者デバイスに提供することができる。以下で説明するように、デジタル待機ルームインタフェースは、デジタル待機ルーム406のライブビデオストリームとパブリック合成ライブビデオストリーム402との両方を含むことができる。
【0113】
さらに、ライブビデオストリーミングシステム106は、デジタル待機ルーム406のライブビデオストリームをパブリック合成ライブビデオストリーム402内の参加者デバイス(例えば、ホストデバイス)に提供することができるとともに、参加者デバイスが、デジタル待機ルーム406内の1つまたは複数の保留中の参加者デバイスをパブリック合成ライブビデオストリーム402に追加するよう要求することを可能にすることができる。例示すると、ライブビデオストリーミングシステム106は、第4の参加者デバイス418(例えば、保留中の参加者デバイス)をパブリック合成ライブビデオストリーム402に追加する要求を受信する。それに応答して、ライブビデオストリーミングシステム106は、
図4に矢印422で示すように、第4の参加者デバイス418のライブビデオストリームを、デジタル待機ルーム406のライブビデオストリームからパブリック合成ライブビデオストリーム402に移行させる。デジタル待機ルーム406に関するさらなる詳細は、
図8~
図9Cに関連して以下に提供される。
【0114】
図示されるように、
図4は、デジタル参加後ルーム408を含む。様々な実施態様において、ライブビデオストリーミングシステム106は、参加者デバイスをパブリック合成ライブビデオストリーム402からデジタル参加後ルーム408に移行させることができる。概して、ライブビデオストリーミングシステム106は、パブリック合成ライブビデオストリームに後で再参加することができる、またはパブリック合成ライブビデオストリームが終了した後に参加デバイスと参加することができる以前の参加デバイスが「オフカメラ」で待機するためのデジタル参加後ルームを提供する。デジタル参加後ルームは、複数の以前の参加者デバイスを含むことができる。さらに、ライブビデオストリーミングシステム106は、複数のデジタル参加後ルームを作成することができる。加えて、ライブビデオストリーミングシステムは、デジタル参加後ルームをデジタル待機ルームと組み合わせて単一のオフカメラデジタル待機ルームにする。
【0115】
図4に示すように、ライブビデオストリーミングシステム106は、第3の参加者デバイス416のライブビデオストリームをパブリック合成ライブビデオストリーム402から除去し、矢印424で示すように、デジタル参加後ルーム408に追加する。上述したように、いくつかの実装形態では、ライブビデオストリーミングシステム106は、参加者デバイスのライブビデオストリームをデジタルルームに追加することなく、参加者デバイスをパブリック合成ライブビデオストリームからドロップする。例えば、参加者デバイスのライブビデオストリームをもはや受信しなくなると、ライブビデオストリーミングシステム106は、参加者デバイスを視聴者デバイスに変更する。
【0116】
デジタル参加後ルーム408にいる間、ライブビデオストリーミングシステム106は、デジタル参加後ルームインタフェースを第3の参加者デバイス416(例えば、ここでは以前の参加者デバイス)に提供することができる。例えば、ライブビデオストリーミングシステム106は、デジタル参加後ルーム408のライブストリームを、デジタル参加後ルーム408内の各以前の参加者デバイスに提供する。様々な実装形態では、ライブビデオストリーミングシステム106は、デジタル参加後ルーム408のライブビデオストリームを、パブリック合成ライブビデオストリーム402内の1つまたは複数の参加者デバイス(例えば、ホストデバイス)に提供することもできる。デジタル参加後ルーム408に関するさらなる詳細は、
図10~
図11Cに関連して以下に提供される。
【0117】
上述したように、
図4は、ブロードキャスト後ルーム410を含む。概して、ブロードキャスト後ルームは、パブリック合成ライブビデオストリームの後に続く。1つまたは複数の実装形態では、ブロードキャスト後ルームは、以前の参加者デバイスを含む、パブリック合成ライブビデオストリームの参加者デバイスの一部または全部を含む。いくつかの実装形態では、参加者デバイスのみが、ブロードキャスト後ルームにアクセス、参加、および/または視聴することが可能である。代替的な実装形態では、限定された数の視聴者デバイス112が、ブロードキャスト後ルームを視聴するためのアクセスを提供される。
【0118】
示されるように、
図4のブロードキャスト後ルーム410は、矢印426によって示されるように、パブリック合成ライブビデオストリーム402からの第1の参加者デバイス412および第4の参加者デバイス418を含む。例えば、ライブビデオストリーミングシステム106は、第1の参加者デバイス412および第4の参加者デバイス418からのライブビデオストリームをブロードキャスト後ルーム410に転送する。加えて、ブロードキャスト後ルーム410は、デジタル参加後ルーム408で待機していた第3の参加者デバイス416を含む。同様に、ライブビデオストリーミングシステム106は、矢印428によって示されるように、第3の参加デバイス416のライブビデオストリームをデジタル参加後ルーム408からブロードキャスト後ルーム410に転送する。
【0119】
様々な実装形態では、ライブビデオストリーミングシステム106は、デジタルルーム内の参加者デバイスに、ブロードキャスト後ルームグラフィカルユーザインタフェース(または単にブロードキャスト後ルームインタフェース)を提供する。例えば、ブロードキャスト後ルームインタフェースは、ブロードキャスト後ルームがプライベートデジタルルームであること、または視聴者デバイスの限られた視聴者がブロードキャスト後ルームにアクセスできることを参加者デバイスに示す1つまたは複数の視覚的要素を含む。ブロードキャスト後ルーム410に関するさらなる詳細は、
図12~
図13Cに関連して以下に提供される。
【0120】
上述したように、
図5~
図6Bは、デジタル準備ルーム404の生成および利用に関するさらなる詳細を提供する。例えば、
図5は、1つまたは複数の実装形態による、パブリック合成ライブビデオストリームに関連してデジタル準備ルームを生成および利用するライブビデオストリーミングシステム106の一連の動作500のシーケンス図である。示されるように、一連の動作500は、ライブビデオストリーミングシステム106が、参加者デバイス110(ホストデバイスを含むことができる)および視聴者デバイス112と通信することを含む。
【0121】
示されるように、一連の動作500は、ライブビデオストリーミングシステム106が、参加者デバイス110のうちの1つからパブリック合成ライブビデオストリームを作成することに関連してデジタル準備ルーム作成要求を受信する動作502を含む。例えば、ホストデバイスにおいてライブビデオストリームをセットアップする際に、ライブビデオストリーミングシステム106は、合成ライブビデオストリームをパブリック合成ライブビデオストリームとして視聴者デバイスにブロードキャストする前に、複数の参加者デバイスをデジタル準備ルームに集合させる要求を検出する。
【0122】
いくつかの実装形態では、デジタル準備ルーム作成要求は、どの参加者デバイスをデジタル準備ルームに含めるべきかを含む。例えば、ホストデバイスは、ライブビデオストリーミングシステム106に参加者デバイスのリストを提供し、次いで、ライブビデオストリーミングシステム106は、デジタル準備ルームに参加するための招待を送信する。代替的な実装形態では、ライブビデオストリーミングシステム106は、デジタル準備ルームを作成し、デジタルルームへの共有可能なリンクをホストデバイスに提供することができる。さらに、ライブビデオストリーミングシステム106は、リンクを介してデジタル準備ルームにアクセスする任意の参加者デバイスにアクセスを許可することができる。
【0123】
さらに、1つまたは複数の実装形態では、デジタル準備ルーム作成要求は、デジタルルームのパラメータを設定することができる。例えば、要求は、デジタル準備ルームの開始時間および/または終了時間を示す。いくつかの例では、終了時間は、パブリック合成ライブビデオストリームの開始時間に対応する。さらに、パラメータは、参加者デバイスのための最小帯域幅および/または接続要件(例えば、ビデオ品質メトリック)を含むことができる。
【0124】
示されるように、一連の動作500は、ライブビデオストリーミングシステム106が複数の参加者デバイス110からライブビデオストリームを受信する動作504を含む。例えば、1つまたは複数の実装形態では、ライブビデオストリーミングシステム106は、ホストデバイスならびに1つまたは複数の追加の参加者デバイス110からライブビデオストリームを受信する。上述したように、様々な実装形態では、ライブビデオストリーミングシステム106は、サーバデバイス102においてライブビデオストリームを受信する。
【0125】
加えて、示されるように、一連の動作500は、ライブビデオストリーミングシステム106がライブビデオストリームを合成することによってデジタル準備ルームを生成する(例えば、非公開の合成ライブビデオストリームを生成する)動作506を含む。例えば、様々な実装形態では、ライブビデオストリーミングシステム106は、(例えば、サーバデバイス102において)受信されたライブビデオストリームをデジタル準備ルームライブビデオストリーム(すなわち、デジタル準備ルームのためのライブビデオストリーム)に合成するかまたは組み合わせる。
【0126】
多くの実装形態では、デジタル準備ルームは、参加者デバイス110がパブリック合成ライブビデオストリームを開始する前に存在するとともに準備することを可能にする。例えば、視聴者デバイス112に対してライブを行う前に、デジタル準備ルームは、各参加者デバイスがパブリック合成ライブビデオストリームに参加することの技術的ハードル(例えば、ビデオおよびオーディオ問題)に対処し、克服する機会を提供する。例えば、デジタル準備ルームは、参加デバイスがライブビデオストリームをライブビデオストリーミングシステム106にコミットする(例えば、2方向または3方向コミットメントハンドシェイクを実行する)時間を提供する。加えて、デジタル準備ルームは、参加者デバイスが、参加者デバイスのライブビデオストリームを共有するための許可および権限をライブビデオストリーミングシステム106に与えることを可能にする。
【0127】
さらに、デジタル準備ルームは、参加者デバイス110に、機器をテストおよび検証することができるが、「オフカメラ」である安全性を有する現実世界の場所を提供する。さらに、デジタル準備ルームは、参加者デバイス(例えば、参加者デバイスに関連付けられたユーザ)が互いに会話し、パブリック合成ライブビデオストリームがまだ配置されていない場合にパブリック合成ライブビデオストリームのための計画またはアジェンダを確立することを可能にもする。
【0128】
さらに、示されるように、一連の動作500は、ライブビデオストリーミングシステム106がデジタル準備ルームのライブビデオストリームを参加者デバイス110に提供する動作508を含む。例えば、ライブビデオストリーミングシステム106は、デジタル準備ルームグラフィカルユーザインタフェース(または単にデジタル準備ルームインタフェース)内でデジタル準備ルームのライブビデオストリームを提供することができる。いくつかの実装形態では、デジタル準備ルームインタフェースは、デジタル準備ルームのライブビデオストリームがデジタル準備ルーム内の参加者デバイス110にのみ示されていることを示す。
【0129】
1つまたは複数の実装形態では、デジタル準備ルームインタフェースは、参加者デバイス110のうちの1つまたは複数が保留中のパブリック合成ライブビデオストリームのフレームワークをセットアップまたは修正することを可能にする要素を提供する。例えば、デジタル準備ルームインタフェースは、ホストデバイス(または別の参加者デバイス)に、参加者デバイスラインアップ(例えば、どの参加者デバイスがパブリック合成ライブビデオストリームにいつ参加するか)を修正するためのオプション、または保留中のパブリック合成ライブビデオストリームにアクティビティを追加するためのオプションを提供する。さらに、デジタル準備ルームインタフェースは、他の参加者デバイスをモデレータまたは共同ホストデバイスとして追加するなど、パブリック合成ライブビデオストリームの制御、許可、および/または権限を管理するための要素を提供することができる。
【0130】
いくつかの実装形態では、デジタル準備ルームインタフェースは、デジタル準備ルームをパブリック合成ライブビデオストリームに移行させるための選択可能なブロードキャスト要素を含む。例えば、参加者デバイスにおけるデジタル準備ルームインタフェースは、「ブロードキャストルームライブ(Broadcast Room Live)」または「ライブブロードキャストを開始(Start Live Broadcast)」グラフィカルボタンまたは別の仮想要素を含む。要素の選択を検出すると、ライブビデオストリーミングシステム106は、デジタル準備ルームのライブビデオストリームをパブリック合成ライブビデオストリームとしてブロードキャストし始めることができる。いくつかの実装形態では、ライブビデオストリーミングシステム106は、デジタル準備ルームインタフェースをパブリック合成ライブビデオストリームグラフィカルユーザインタフェース(または単にライブビデオストリームインタフェース)に更新する。
【0131】
例示のために、一連の動作500は、ライブビデオストリーミングシステム106が、パブリック合成ライブビデオストリームを視聴者デバイス112にブロードキャストするための入力を受信する動作510を含む。1つまたは複数の実装形態では、ライブビデオストリーミングシステム106は、デジタル準備ルームが視聴者デバイス112にブロードキャストされることを要求するホストデバイスにおけるユーザ入力を検出する。代替的な実装形態では、ライブビデオストリーミングシステム106は、以前に受信された入力によって示される所定の時間に、パブリック合成ライブビデオストリームを視聴者デバイス112にブロードキャストすることを開始する。これらの実装形態では、デジタル準備ルームインタフェースは、デジタル準備ルームが視聴者デバイス112に対してライブを行うまでの時間を示すカウントダウンを含むことができる。
【0132】
いくつかの実装形態では、ライブビデオストリーミングシステム106は、参加者デバイス110のサブセット(例えば、すべてよりも少ない)をデジタル準備ルームからパブリック合成ライブビデオストリームに移行させることができる。例えば、非ビデオ参加者デバイス(例えば、マネージャデバイス)は、他の参加者デバイスがパブリック合成ライブビデオストリームの準備をするのを助け、および/またはパブリック合成ライブビデオストリームを開始し、パブリック合成ライブビデオストリームに参加しない。別の例として、デジタル準備ルームの参加者デバイスのうちの1つまたは複数は、パブリック合成ライブビデオストリームの開始時にデジタル準備ルームに留まる。ここで、ライブビデオストリーミングシステム106は、パブリック合成ライブビデオストリームの開始時にデジタル準備ルームをデジタル待機ルームに移行させることができる。
【0133】
示されるように、一連の動作500は、ライブビデオストリーミングシステム106がパブリック合成ライブビデオストリームを視聴者デバイス112にブロードキャストする動作512を含む。上記で説明したように、いくつかの実装形態では、ライブビデオストリーミングシステム106は、デジタル準備ルームのライブビデオストリームをパブリック合成ライブビデオストリームとして視聴者デバイス112に提供する。いくつかの実装形態では、ライブビデオストリーミングシステム106は、デジタル準備ルーム内の参加者デバイス110によって提供されたライブビデオストリームを利用して、新しいおよび/または別個のパブリック合成ライブビデオストリームを作成し、次いで、それが視聴者デバイス112に提供される。
【0134】
1つまたは複数の実装形態では、動作512は、ライブビデオストリーミングシステム106が、まず、(例えば、参加者デバイス110の)ホストデバイスのライブビデオストリームを視聴者デバイス112にブロードキャストすることを含む。次いで、ライブビデオストリーミングシステム106は、残りの参加者デバイス110をライブビデオストリームに追加する。例えば、パブリック合成ライブビデオストリームは、最初にホストデバイスのライブビデオストリームを含み、ホストデバイスは、追加の参加者デバイスを紹介するために最初に登場する。次いで、ライブビデオストリーミングシステム106は、残りの参加者デバイスを(例えば、1つずつ、グループとして、または複数のグループで)追加する。例えば、ホストデバイスは、誰が、および/またはいつ参加者デバイスの各々をパブリック合成ライブビデオストリームに追加するかに関する入力をライブビデオストリーミングシステム106に提供する。
【0135】
図6A~
図6Bは、1つまたは複数の実装形態による、様々なクライアントデバイス上のデジタル準備ルームのグラフィカルユーザインタフェースを示す。特に、
図6Aは、ホストデバイス108上のデジタル準備ルームインタフェースを示し、
図6Bは、参加者デバイス110上のデジタル準備ルームインタフェースを示す。実際、
図6A~
図6Bは、ライブビデオストリーミングシステム106がホストデバイス108および他の参加者デバイス110に異なるデジタル準備ルームインタフェースを提供する実装形態に対応する。
【0136】
上述したように、
図6Aは、デジタル準備ルームインタフェース602a(すなわち、デジタル準備ルームグラフィカルユーザインタフェース)を表示するホストデバイス108を示す。示されるように、デジタル準備ルームインタフェース602aは、ルームタイトル604およびアクティブフォロワー標示314などの種々の通知要素を含む。加えて、デジタル準備ルームインタフェース602aは、上記で紹介されたライブストリーム設定要素312を含む。例えば、ライブストリーム設定要素312は、パブリック合成ライブビデオストリーム(またはデジタルルーム)のタイトルを追加または変更すること、パブリック合成ライブビデオストリームのセットアップまたは方式を変更すること、1つまたは複数のライブビデオストリームのレイアウトを修正すること、パブリック合成ライブビデオストリームへアクティビティを追加すること、ならびにデジタル準備ルームおよび/またはパブリック合成ライブビデオストリームに参加するように参加者デバイスを招待することに対応する要素を含む。ライブストリーム設定要素312は、追加の、より少ない、または異なる要素を含んでいてよい。
【0137】
デジタル準備ルームインタフェース602aは、デジタル準備ルームライブビデオストリーム606も含む。上述したように、ライブビデオストリーミングシステム106(例えば、サーバデバイスにおける)は、各参加者デバイスからのライブビデオストリームを合成して、デジタル準備ルームライブビデオストリーム606を生成することができる。さらに、ライブビデオストリーミングシステム106は、デフォルトレイアウト方式またはホストデバイス108によって選択されたレイアウト方式に基づいてライブビデオストリームを動的レイアウトに配置することができる。次いで、ライブビデオストリーミングシステム106は、デジタル準備ルームライブビデオストリーム606を参加デバイスの各々に(例えば、ホストデバイス108および参加デバイス110の両方に)提供することができる。
【0138】
上部フレームに示されるように、デジタル準備ルームライブビデオストリーム606は、ホストデバイス108のライブビデオストリームからのコンテンツ(例えば、音声および画像)を含む。さらに、デジタル準備ルームライブビデオストリーム606は、下部の左右のフレームに示される2つの参加者デバイスからのコンテンツを含む。実際、デジタル準備ルームライブビデオストリーム606は、ホストデバイス108において別個のライブビデオストリームとして現れるが、ライブビデオストリーミングシステム106は、デジタル準備ルームライブビデオストリーム606を単一の統一されたライブビデオストリームとしてホストデバイス108に提供することができる。
【0139】
加えて、デジタル準備ルームインタフェース602aは、ホストデバイス108が参加者デバイスを除去するための参加者デバイス除去要素608を含む。ターゲット参加者デバイスに対応する参加者デバイス除去要素608の選択を検出することに基づいて、ライブビデオストリーミングシステム106は、ターゲット参加者デバイスをドロップすることができる。いくつかの実装形態では、ライブビデオストリーミングシステム106は、各要素が異なる参加者デバイスに対応するように、参加者デバイス除去要素608の各々をデジタル準備ルームライブビデオストリーム606上のどこに配置すべきかに関する命令をホストデバイス108に提供することができる。代替的な実装形態では、ライブビデオストリーミングシステム106は、ホストデバイス108が、ドロップダウンリストから、またはライブストリーム設定要素からなど、他の手法を使用して参加者デバイスを除去することを可能にする。
【0140】
上述したように、デジタル準備ルームインタフェース602aは、デジタル準備ルームをパブリック合成ライブビデオストリームに移行させるための選択可能な要素を含むことができる。例示すると、デジタル準備ルームインタフェース602aは、ルームインタフェースの上部にライブブロードキャスト要素610(例えば、「ブロードキャストルームライブ(Broadcast Room Live)」と書かれたボタン)を含む。ライブブロードキャストエレメント610上の選択を検出すると、ライブビデオストリーミングシステム106は、前述したように、デジタル準備ルームライブビデオストリーム606をパブリック合成ライブビデオストリームに変換することができる。例えば、ライブビデオストリーミングシステム106は、参加者デバイスの合成ライブビデオストリーム(例えば、デジタル準備ルームライブビデオストリーム)をパブリック合成ライブビデオストリームに瞬時に移行させることができ、変更がいつ行われるかを示すカウントダウンをデジタル準備ルームインタフェース602a内に提供することができ、および/または将来の時間(例えば、1分以内または7:00PM)にパブリック合成ライブビデオストリームに移行するオプションを提供することができる。
【0141】
図6Bは、デジタル準備ルームインタフェース602bを含む参加者デバイス110を示す。ここで、参加者デバイスは、右下のセクションに表示される参加者に対応することができる。示されるように、デジタル準備ルームインタフェース602bは、
図6Aのクライアントデバイス上に示されるデジタル準備ルームインタフェース602aとは異なる。実際、様々な実装形態では、ライブビデオストリーミングシステム106は、他の参加者デバイスに提供するものとは異なるバージョンのデジタル準備ルームインタフェースをホストデバイスに提供することができる。しかしながら、いくつかの実装形態では、ライブビデオストリーミングシステム106は、ホストデバイスと、参加者デバイスのうちの1つまたは複数とに、同じデジタル準備ルームインタフェースを提供することができる。
【0142】
図6Bに示すように、デジタル準備ルームインタフェース602bは、ルームタイトル604および非ブロードキャスト通知612などの様々な通知要素を含む。様々な実装形態では、非ブロードキャスト通知612は、デジタル準備ルームライブビデオストリーム606が視聴者デバイスに送信されておらず、デジタル準備ルーム内の参加者デバイスにのみ送信されているという追加情報を参加者デバイス110に提供する。
【0143】
加えて、デジタル準備ルームインタフェース602bは、デジタル準備ルームライブビデオストリーム606を含む。多くの実装形態では、ライブビデオストリーミングシステム106は、ホストデバイス108に提供されるのと同じデジタル準備ルームライブビデオストリーム606を参加者デバイス110に提供する。代替的な実装形態では、ライブビデオストリーミングシステム106は、異なるデジタル準備ルームライブビデオストリーム(例えば、代替配置で並べられた)を参加者デバイスに送信する。
【0144】
さらに、デジタル準備ルームインタフェース602bは、ライブビデオストリーム退出要素614を含む。例えば、参加者デバイス110は、ライブビデオストリーム退出エレメント614を選択することによって、デジタル準備ルーム(および/または対応する合成ライブビデオストリーム)から退出することができる。いくつかの実装形態では、ライブビデオストリーム退出要素614を選択すると、ライブビデオストリーミングシステム106は、以下で説明するように、別のデジタルルームに転送するなど、様々なオプションを参加者デバイス110に提供する。
【0145】
次に
図7A~
図7Cを参照すると、様々なクライアントデバイスにわたるパブリック合成ライブビデオストリームを容易にするライブビデオストリーミングシステム106に関する追加の説明が提供される。例えば、
図7A~
図7Cは、1つまたは複数の実装形態による、様々なクライアントデバイス上のパブリック合成ライブビデオストリームのグラフィカルユーザインタフェースを示す。特に、
図7Aは、ホストデバイス108上に表示されたパブリック合成ライブビデオストリームに対応する。
図7Bは、参加者デバイス110上に表示されたパブリック合成ライブビデオストリームに対応する。
図7Cは、視聴者デバイス112上に表示されたパブリック合成ライブビデオストリームに対応する。
【0146】
図7Aに示されるように、ホストデバイス108は、パブリック合成ライブビデオストリームインタフェース702a(すなわち、パブリック合成ライブビデオストリームグラフィカルユーザインタフェース)を含む。パブリック合成ライブビデオストリームインタフェース702aは、パブリック合成ライブビデオストリーム704を含む。上記で説明したように、ライブビデオストリーミングシステム106は、参加者デバイスから受信されたライブビデオストリームを合成することからパブリック合成ライブビデオストリーム704を生成することができる。実際、パブリック合成ライブビデオストリーム704は、パブリック合成ライブビデオストリームインタフェース702a内で複数のライブビデオストリームとして現れることができるが、パブリック合成ライブビデオストリーム704は、上述したように、ライブビデオストリーミングシステム106によって提供される単一のライブビデオストリームである。
【0147】
また、示されるように、パブリック合成ライブビデオストリームインタフェース702aは、ライブブロードキャスト通知706、アクティブ視聴者数708、および/または参加者デバイスの数(図示せず)などの通知要素を含む。パブリック合成ライブビデオストリームインタフェース702aは、参加者デバイス除去要素710も含む。ターゲット参加者デバイスに対応する参加者デバイス除去要素710の選択を検出することに基づいて、ライブビデオストリーミングシステム106は、ターゲット参加者デバイスのライブビデオストリームをドロップし、および/またはターゲット参加者デバイスのライブビデオストリームをパブリック合成ライブビデオストリーム704からデジタル参加後ルームなどのデジタルルームに移動させることができる。
【0148】
さらに、パブリック合成ライブビデオストリームインタフェース702aは、ブロードキャスト終了要素712を含む。様々な実装形態では、ブロードキャスト終了要素712を選択すると、ライブビデオストリーミングシステム106は、参加者デバイスおよび視聴者デバイス112へのパブリック合成ライブビデオストリームのブロードキャストを終了する。いくつかの実装形態では、ブロードキャスト終了要素712を選択すると、ライブビデオストリーミングシステム106は、パブリック合成ライブビデオストリームのブロードキャストを終了するかどうか、および/または1つまたは複数の参加者デバイスのライブビデオストリームをブロードキャスト後ルームなどのデジタルルームに移動させるかどうかをホストデバイス108にプロンプトで尋ねる。
【0149】
1つまたは複数の実装形態では、パブリック合成ライブビデオストリームインタフェース702aは、デジタルルーム要素714を含む。上述したように、ライブビデオストリーミングシステム106は、様々なデジタルルームを生成および利用して、参加者デバイスをパブリック合成ライブビデオストリーム704の内外に移行させることを容易にすることができる。したがって、1つまたは複数の参加者デバイスがデジタルルーム内に存在する場合、パブリック合成ライブビデオストリームインタフェース702aは、デジタルルーム要素714を表面化する(例えば、デジタルルーム要素714を出現させ、強調し、またはその外観を変更する)ことができる。デジタルルーム要素714を選択すると、ライブビデオストリーミングシステム106は、ターゲットデジタルルームに関する追加情報を提供することができる。例えば、ライブビデオストリーミングシステム106は、占有されたデジタルルーム内の各参加者デバイスの数および/または名前を示す。別の例として、ライブビデオストリーミングシステム106は、ターゲットデジタルルームの選択を検出すると、ターゲットデジタルルームのライブビデオストリームを表示することができる。
【0150】
パブリック合成ライブビデオストリームインタフェース702aは、追加の要素を含むことができる。例えば、パブリック合成ライブビデオストリームインタフェース702aは、パブリック合成ライブビデオストリーム704上にオーバーレイされた視聴者デバイス112からのコメントを表示することができる。いくつかの実装形態では、パブリック合成ライブビデオストリームインタフェース702aは、追加の通知または標示を提供する。例えば、ライブビデオストリーミングシステム106は、ラインアップ変更が行われるようにスケジュールされた場合、または参加者デバイスがパブリック合成ライブビデオストリーム704に追加またはそこから除去された場合の標示を提供する。
【0151】
図7Bは、パブリック合成ライブビデオストリームインタフェース702bを含む参加者デバイス110を示す。ここで、参加者デバイス110は、右下のセクションに表示される参加者に対応することができる。示されるように、パブリック合成ライブビデオストリームインタフェース702bは、
図7Aに関して前に説明されたように、様々な通知要素およびパブリック合成ライブビデオストリーム704も含む。加えて、パブリック合成ライブビデオストリームインタフェース702bは、上述したライブビデオストリーム退出要素614を含む。
【0152】
示されるように、ライブビデオストリーミングシステム106は、同じパブリック合成ライブビデオストリーム704をホストデバイス108および参加者デバイス110に提供する。いくつかの実装形態では、ライブビデオストリーミングシステム106は、パブリック合成ライブビデオストリームの異なるバージョンを提供することができる。しかしながら、両方の場合において、ライブビデオストリーミングシステム106は、サーバデバイスにおいてパブリック合成ライブビデオストリームの1つまたは複数のバージョンを作成し、パブリック合成ライブビデオストリームを単一のライブビデオストリームとしてホストデバイス108および参加者デバイス110に送信する。
【0153】
上述したように、ライブビデオストリーミングシステム106は、パブリック合成ライブビデオストリーム704を視聴者デバイス112に提供する。例示のために、
図7Cは、パブリック合成ライブビデオストリームインタフェース702cを含む視聴者デバイス112を示す。示されるように、パブリック合成ライブビデオストリームインタフェース702bは、パブリック合成ライブビデオストリーム704を含む。パブリック合成ライブビデオストリームインタフェース702bは、ホストデバイス108および/または参加者デバイス110と同じまたは異なる通知要素であり得る1つまたは複数の通知要素を含むことができる。さらに、パブリック合成ライブビデオストリームインタフェース702bは、コミュニケーション要素716を含むことができ、ここで、視聴者デバイス112は、参加者デバイスおよび/または他の視聴者デバイスに全体的または直接的なメッセージを提供することができ、ならびにパブリック合成ライブビデオストリームの一部に「いいね」を表明することができる。
【0154】
様々な実装形態において、視聴者デバイス112に提供されるパブリック合成ライブビデオストリームは、パブリック合成ライブビデオストリームの遅延またはバッファリングされたバージョンであり得る。上記で説明したように、ライブビデオストリーミングシステム106は、レイテンシよりもビデオ品質を優先する通信プロトコルを使用して、パブリック合成ライブビデオストリームを視聴者デバイス112に提供することができる。したがって、ライブビデオストリーミングシステム106は、速度に関して優先される第1の通信プロトコルを介して、パブリック合成ライブビデオストリームのリアルタイムまたはほぼリアルタイムのバージョンをホストデバイス108および参加者デバイス110に提供することができるが、ライブビデオストリーミングシステム106は、上述したように、ビデオ品質に関して優先される第2の通信プロトコルを介して、パブリック合成ライブビデオストリームのバッファリングされたバージョンを視聴者デバイス112に提供することもできる。
【0155】
上述のように、
図8~
図9Cは、デジタル待機ルームに関する追加の詳細を提供する。例えば、
図8は、1つまたは複数の実装形態による、パブリック合成ライブビデオストリームに関連してデジタル待機ルームを生成および利用するライブビデオストリーミングシステム106の一連の動作800のシーケンス図である。示されるように、一連の動作800は、ライブビデオストリーミングシステム106が、参加者デバイス110(ホストデバイスならびに保留中の参加者デバイスを含むことができる)および視聴者デバイス112と通信することを含む。
【0156】
示されるように、一連の動作800は、ライブビデオストリーミングシステム106がパブリック合成ライブビデオストリームを視聴者デバイス112にブロードキャストする動作802を含み、これについては前述している。加えて、一連の動作800は、ライブビデオストリーミングシステム106が保留中の参加者デバイスからライブビデオストリームを受信する動作804を含む。例えば、保留中の参加者デバイスは、パブリック合成ライブビデオストリームに参加することを望んでいる。したがって、保留中の参加者デバイスは、ライブビデオストリームをライブビデオストリーミングシステム106に提供する。
【0157】
これに応答して、ライブビデオストリーミングシステム106は、パブリック合成ライブビデオストリームに参加する前に、保留中の参加者デバイスが待機するためのデジタル待機ルームを作成することができる。例示のために、一連の動作800は、ライブビデオストリーミングシステム106が、保留中の参加者デバイスからのライブビデオストリームを利用してデジタル待機ルームを生成する動作806を含む。例えば、様々な実施態様において、ライブビデオストリーミングシステム106は、保留中の参加者デバイスのライブビデオストリームからデジタル待機ルームライブビデオストリームを生成する。ライブビデオストリーミングシステム106が、1つまたは複数の追加の保留中の参加者デバイスのいるデジタル待機ルームを以前に作成している場合、ライブビデオストリーミングシステム106は、保留中の参加者デバイスのライブビデオストリームを、1つまたは複数の追加の保留中の参加者デバイスのライブビデオストリームを含む、以前に生成されたデジタル待機ルームライブビデオストリームに追加することができる。
【0158】
様々な実装形態では、ライブビデオストリーミングシステム106は、複数の保留中の参加者デバイスを1つのデジタル待機ルームに追加することができる。代替的な実装形態では、ライブビデオストリーミングシステム106は、各保留中の参加者デバイスまたは保留中の参加者デバイスのグループに対して複数のデジタル待機ルームを生成することができる。例えば、ライブビデオストリーミングシステム106は、第1の時間にパブリック合成ライブビデオストリームに参加することになる第1の保留中の参加者デバイスのための第1のデジタル待機ルームを生成する。加えて、ライブビデオストリーミングシステム106は、第2の時間にパブリック合成ライブビデオストリームに参加することになる保留中の参加者デバイスのグループのための第2のデジタル待機ルームを生成する。
【0159】
示されるように、一連の動作800は、ライブビデオストリーミングシステム106が、デジタル待機ルームライブビデオストリームを保留中の参加者デバイスに提供する動作808を含む。例えば、ライブビデオストリーミングシステム106は、デジタル待機ルームライブビデオストリームを保留中の参加者デバイスならびに任意の追加の保留中の参加者デバイスに提供することができる。いくつかの実装形態では、保留中の参加者デバイスがデジタル待機ルーム内の唯一の保留中の参加者デバイスである場合、ライブビデオストリーミングシステム106は、ライブビデオストリーミングシステム106が保留中の参加者デバイスにデジタル待機ルームライブビデオストリームの複製コピーを送信するのではなく、ルームインタフェース内の保留中の参加者デバイス上にそのライブビデオストリームを表示させる命令を保留中の参加者デバイスに送信することができる。
【0160】
様々な実施態様において、ライブビデオストリーミングシステム106は、デジタル待機ルームインタフェース内にデジタル待機ルームライブビデオストリームを提供する。例えば、デジタル待機ルームインタフェースは、デジタル待機ルームライブビデオストリームおよびパブリック合成ライブビデオストリームを含む。参加者デバイス上に示されるデジタル待機ルームインタフェースの例および追加の説明は、
図9Bに関連して以下に提供される。
【0161】
加えて、一連の動作800は、ライブビデオストリーミングシステム106が、パブリック合成ライブビデオストリームを、デジタル待機ルームインタフェースを有する保留中の参加者デバイスに提供する動作810を含む。例えば、ライブビデオストリーミングシステム106がデジタル待機ルームインタフェース内にデジタル待機ルームライブビデオストリームを提供することができるように、ライブビデオストリーミングシステム106は、デジタル待機ルームインタフェース内にパブリック合成ライブビデオストリームを含むこともできる。いくつかの実装形態では、ライブビデオストリーミングシステム106は、第1の通信プロトコルを介して、パブリック合成ライブビデオストリームを保留中の参加者デバイスにリアルタイムまたはほぼリアルタイムで提供する。
【0162】
デジタル待機ルームライブビデオストリームおよびパブリック合成ライブビデオストリームの両方をデジタル待機ルームインタフェース内に提供することによって、ライブビデオストリーミングシステム106は、保留中の参加者デバイスがパブリック合成ライブビデオストリームに参加するために「オフカメラ」で準備することを可能にすると同時に、パブリック合成ライブビデオストリームの状態に関して最新の状態に保たれる。例えば、デジタル待機ルームにいる間、保留中の参加者デバイスは、それらの機器をテストおよび検証し(例えば、保留中の参加者デバイスがライブビデオストリームを適切にキャプチャしていることを確認し)、許可および権限を付与し、および/またはパブリック合成ライブビデオストリームに参加するための適切な時間を待機することができる。
【0163】
様々な実装形態では、保留中の参加者デバイスがデジタル待機ルームで待機している間、ライブビデオストリーミングシステム106は、保留中の参加者デバイスのライブビデオストリームならびに現在の参加者デバイスのライブビデオストリームを含む、更新されたパブリック合成ライブビデオストリームを生成する。しかしながら、ライブビデオストリーミングシステム106は、更新されたパブリック合成ライブビデオストリームをサーバデバイス102に保持する。次に、ライブビデオストリーミングシステム106は、パブリック合成ライブビデオストリームに保留中の参加者デバイスを追加する入力を受信すると、以下で説明するように、更新されたパブリック合成ライブビデオストリームを視聴者デバイス112および/または参加者デバイス110に提供し始める(例えば、提供するように切り替える)。このようにして、ライブビデオストリーミングシステム106は、追加の参加者デバイスをパブリック合成ライブビデオストリームに瞬時かつシームレスに追加することができる。
【0164】
示されるように、一連の動作800は、ライブビデオストリーミングシステム106が、パブリック合成ライブビデオストリームに保留中の参加者デバイスを追加するための入力を受信する動作812を含む。1つまたは複数の実装形態では、保留中の参加者デバイスは、パブリック合成ライブビデオストリームに参加するための入力を提供する。例えば、保留中の参加者デバイスは、参加する準備ができていることを確認し、それに応答して、ライブビデオストリーミングシステム106は、保留中の参加者デバイスのライブビデオストリームをパブリック合成ライブビデオストリームに追加する。例えば、保留中の参加者デバイスは、パブリック合成ライブビデオストリームに参加することを事前に許可される。
【0165】
いくつかの実装形態では、ホストデバイスは、ライブビデオストリーミングシステム106に入力を提供して、デジタル待機ルームからの保留中の参加者デバイスをパブリック合成ライブビデオストリームに追加する。例えば、保留中の参加者デバイスがデジタル待機ルームに参加し、および/またはパブリック合成ライブビデオストリームに参加する準備ができると、ライブビデオストリーミングシステム106は、対応する標示をホストデバイスに提供することができる。それに応答して、ホストデバイスは、ライブビデオストリーミングシステム106が、パブリック合成ライブビデオストリームに保留中の参加者デバイスを追加することを要求することができる。
【0166】
1つまたは複数の実装形態では、ホストデバイスに提供される標示は、デジタル待機ルーム内の保留中の参加者デバイスが合成ライブビデオに参加する準備ができていることを伝えるテキストまたはグラフィックを含むことができる。例えば、保留中の参加者デバイスがデジタル待機ルームに入ると、ライブビデオストリーミングシステム106は、保留中の参加者デバイスがパブリック合成ライブビデオストリームに参加する準備ができたときをホストデバイスが確認できるように、デジタル待機ルームライブビデオストリーム(またはホストデバイスに対しデジタル待機ルームライブビデオストリームの画像)を提供する。
【0167】
示されるように、一連の動作800は、ライブビデオストリーミングシステム106が保留中の参加者デバイスからのライブビデオストリームをパブリック合成ライブビデオストリームに追加する動作814を含む。例えば、サーバデバイス102におけるライブビデオストリーミングシステム106は、一連の動作800の動作816に示されるように、保留中の参加者デバイス(例えば、ここでは参加者デバイス)のライブビデオストリームを含むようにパブリック合成ライブビデオストリームを更新するとともに、更新されたパブリック合成ライブビデオストリームを視聴者デバイス112に提供する。また、図示されていないが、一連の動作800は、ライブビデオストリーミングシステム106が、更新されたパブリック合成ライブビデオストリームを参加者デバイス110に提供する動作を含むことができる。
【0168】
いくつかの実装形態では、ライブビデオストリーミングシステム106は、保留中の参加者デバイス、ホストデバイス、または別の参加者デバイスから入力を受信すると、保留中の参加者デバイスのライブビデオストリームをパブリック合成ライブビデオストリームに追加する。代替的な実装形態では、ライブビデオストリーミングシステム106は、保留中の参加者デバイスのライブビデオストリームをパブリック合成ライブビデオストリームに追加することを遅延させることができる。例えば、ライブビデオストリーミングシステム106は、所定の時間が到来するまで、またはカウントダウンタイマが経過するまでなど、保留中の参加者デバイスの追加を遅延させる。
【0169】
次に
図9A~
図9Cを参照すると、合成ライブビデオ中にデジタル待機ルームを提供するライブビデオストリーミングシステム106に関する追加の説明が提供される。特に、
図9A~
図9Cは、1つまたは複数の実装形態による、様々なクライアントデバイス上のデジタル待機ルームおよび/またはパブリック合成ライブビデオストリームを含むグラフィカルユーザインタフェースを示す。特に、
図9Aは、保留中の参加者デバイスがデジタル待機ルームにいる場合にホストデバイス108上に表示されたパブリック合成ライブビデオストリームに対応する。
図9Bは、デジタル待機ルームで待機している保留中の参加者デバイス910に対応する。
図9Cは、視聴者デバイス112上に表示されたパブリック合成ライブビデオストリームに対応する。
【0170】
図9Aに示されるように、ホストデバイス108は、パブリック合成ライブビデオストリームインタフェース902aを含む。パブリック合成ライブビデオストリームインタフェース902aは、
図7Aのパブリック合成ライブビデオストリームインタフェース702aに関連して上述したものと同様の要素を含むことができる。例えば、パブリック合成ライブビデオストリームインタフェース902aは、パブリック合成ライブビデオストリーム704、通知要素、参加者デバイス除去要素、ブロードキャスト終了要素、およびデジタルルーム要素714(デジタルルームが占有されたときに出現または変化し得る)を含むことができる。
【0171】
加えて、パブリック合成ライブビデオストリームインタフェース902aは、デジタル待機ルーム内の保留中の参加者デバイス910および任意の追加の保留中の参加者デバイスを示すデジタル待機ルームライブビデオストリーム904も含むことができる。示されるように、パブリック合成ライブビデオストリームインタフェース902aは、パブリック合成ライブビデオストリーム704上にデジタル待機ルームライブビデオストリーム904をオーバーレイすることができる。上記で説明したように、デジタル待機ルームが保留中の参加者デバイスによって占有されるようになる場合、および/または保留中の参加者デバイスがパブリック合成ライブビデオストリームに参加する準備ができていることを示す場合、ライブビデオストリーミングシステム106は、ホストデバイス108に標示を提供することができる。例えば、ライブビデオストリーミングシステム106は、デジタルルーム要素714を点滅させるか、または他の方法で強調する。代替的に、ライブビデオストリーミングシステム106は、パブリック合成ライブビデオストリーム704の一部の上にデジタル待機ルームライブビデオストリーム904を自動的に表示することができる。いくつかの実装形態では、ライブビデオストリーミングシステム106は、ポップアップまたはオンスクリーンテキスト通知など他の方法でホストデバイス108に通知する。
【0172】
デジタル待機ルームライブビデオストリーム904はオーバーレイとして示されているが、いくつかの実装形態では、ライブビデオストリーミングシステム106は、パブリック合成ライブビデオストリーム704のサイズを縮小して、パブリック合成ライブビデオストリーム704に隣接してデジタル待機ルームライブビデオストリーム904を示す。1つまたは複数の実装形態では、ライブビデオストリーミングシステム106は、ホストデバイス108がデジタル待機ルームライブビデオストリーム904を移動させる、閉じる、または最小化することを可能にする。
【0173】
示されるように、デジタル待機ルームライブビデオストリーム904に関連して、パブリック合成ライブビデオストリームインタフェース902aは、参加者デバイス取り込み要素906(例えば、「ライブに追加(Add To Live)」グラフィカルボタン)を含む。例えば、参加者デバイス取り込み要素906の選択を検出すると、ライブビデオストリーミングシステム106は、デジタル待機ルーム内の保留中の参加者デバイスをパブリック合成ライブビデオストリームに加わらせる。このようにして、ホストデバイス108は、パブリック合成ライブビデオストリーム704が保留中の参加者デバイス910を含むように更新するために、視聴者デバイス112を導入し準備することができる。加えて、デジタル待機ルームライブビデオストリーム904がデジタル待機ルームにおける複数の保留中の参加者デバイスを示す場合、ライブビデオストリーミングシステム106は、デジタル待機ルームの保留中の参加者デバイスのすべてまたはサブセット(例えば、すべてよりも少ない)をパブリック合成ライブビデオストリーム704に追加するかどうかをホストデバイス108にプロンプトでさらに尋ねることができる。
【0174】
様々な実装形態では、ライブビデオストリーミングシステム106は、デジタル待機ルームライブビデオストリーム904を、パブリック合成ライブビデオストリーム704に現在参加している他の参加者デバイスに提供することができる。例えば、ライブビデオストリーミングシステム106は、保留中の参加者デバイス910をパブリック合成ライブビデオストリーム704に追加する権限を有する共同ホストまたは保留中の参加者デバイスに、デジタル待機ルームライブビデオストリーム904を送信する。実際、ライブビデオストリーミングシステム106は、参加者デバイス取り込み要素906の有無にかかわらず、デジタル待機ルームライブビデオストリーム904を1つまたは複数の参加者デバイスに提供することができる。
【0175】
上述したように、ライブビデオストリーミングシステム106は、非参加者デバイスがパブリック合成ライブビデオストリームの一部または全部を管理することを可能にすることができる。例えば、プロダクションマネージャデバイスは、ホストデバイス108がパブリック合成ライブビデオストリームに保留中の参加者デバイスを追加するのを支援することができる。いくつかの実装形態では、図示されていないが、ライブビデオストリーミングシステム106は、ホストデバイス108に提供されたパブリック合成ライブビデオストリームインタフェース902aと同じまたは類似のユーザインタフェースを非参加者デバイスに提供することができ、これにより、非参加者デバイスは、パブリック合成ライブビデオストリーム中にホストデバイス108と同じ制作機能の多くまたはすべてを実行することができる。例えば、様々な実装形態において、ライブビデオストリーミングシステム106は、保留中の参加デバイス910がパブリック合成ライブビデオストリームに参加する前に、非参加デバイスが(パブリック合成ライブビデオストリームインタフェースを介して)デジタル待機ルーム内の保留中の参加デバイス910と(例えば、テキスト、オーディオ、ビデオを介して)通信することを可能にすることができる。
【0176】
図9Bは、デジタル待機ルームインタフェース902b(すなわち、デジタル待機ルームグラフィカルユーザインタフェース)を含む保留中の参加者デバイス910を示す。示されるように、デジタル待機ルームインタフェース902bは、デジタル待機ルームライブビデオストリーム904ならびにパブリック合成ライブビデオストリーム704を含む。実際、上述したように、デジタル待機ルームインタフェース902bは、保留中の参加者デバイスが、パブリック合成ライブビデオストリーム704に参加する前に準備を完了すること、ならびにデジタル待機ルームで待機している他の保留中の参加者デバイス(および/または非ビデオ参加者デバイス)に連絡することを可能にする。
【0177】
1つまたは複数の実装形態では、保留中の参加者デバイス910がデジタル待機ルーム内の唯一の保留中の参加者デバイスである場合、ライブビデオストリーミングシステム106は、保留中の参加者デバイス910がライブビデオストリーミングシステム106に送信したものを複製するので、デジタル待機ルームライブビデオストリームを保留中の参加者デバイス910に送り返すことをスキップすることができる。しかしながら、ライブビデオストリーミングシステム106は、ホストデバイス(および/または他の参加者デバイス)に提供することができるライブデジタル待機ルームビデオストリームを生成するとともに、接続属性を検証するために、保留中の参加者デバイス910からライブビデオストリームを依然として受信することができる。
【0178】
複数の保留中の参加者デバイスがデジタル待機ルームにいる実装形態では、ライブビデオストリーミングシステム106は、保留中の参加者デバイスの各々からのライブビデオストリームを含むデジタル待機ルームライブビデオストリーム904を生成することができる。次いで、ライブビデオストリーミングシステム106は、示されるように、デジタル待機ルームライブビデオストリーム904をデジタル待機ルームインタフェース902b内の保留中の参加者デバイス910に提供することができる。
【0179】
さらに、デジタル待機ルームインタフェース902bは、デジタル待機ルームライブビデオストリーム904およびパブリック合成ライブビデオストリーム704を様々な配置で表示することができる。例えば、デジタル待機ルームライブビデオストリーム904は、パブリック合成ライブビデオストリーム704をオーバーレイすることができる。代替例では、パブリック合成ライブビデオストリーム704は、デジタル待機ルームライブビデオストリーム904をオーバーレイすることができる。加えて、デジタル待機ルームライブビデオストリーム904は、保留中の参加者デバイス910が、デジタル待機ルームライブビデオストリーム904および/またはパブリック合成ライブビデオストリーム704を移動、閉鎖、または最小化することを可能にすることができる。
【0180】
図9Cは、
図7Cに関連して上述したパブリック合成ライブビデオストリームインタフェース702cと同様のパブリック合成ライブビデオストリームインタフェース902cを含む視聴者デバイス112を示す。例えば、パブリック合成ライブビデオストリームインタフェース902cは、パブリック合成ライブビデオストリーム704を含む。特に、パブリック合成ライブビデオストリームインタフェース902cは、デジタル待機ルームを表示しないか、または保留中の参加者デバイスがデジタル待機ルームにいるといういかなる標示も提供しない。さらに、保留中の参加者デバイス910がパブリック合成ライブビデオストリーム704に追加される場合、ライブビデオストリーミングシステム106は、前述のように(例えば、サーバデバイスにおいて)パブリック合成ライブビデオストリーム704のレイアウトを更新し、更新されたパブリック合成ライブビデオストリームを視聴者デバイス112にシームレスに提供することができる。
【0181】
上述したように、
図10~
図11Cは、デジタル参加後ルームに関する追加の詳細を提供する。例えば、
図10は、1つまたは複数の実装形態による、パブリック合成ライブビデオストリームに関連してデジタル参加後ルームを生成および利用するライブビデオストリーミングシステム106の一連の動作1000のシーケンス図である。示されるように、一連の動作1000は、ライブビデオストリーミングシステム106が、参加者デバイス110(ホストデバイスならびに以前の参加者デバイスを含むことができる)および視聴者デバイス112と通信することを含む。
【0182】
示されるように、一連の動作1000は、ライブビデオストリーミングシステム106がパブリック合成ライブビデオストリームを視聴者デバイス112にブロードキャストする動作1002を含む。前述したように、パブリック合成ライブビデオストリームを視聴者デバイス112にブロードキャストする。例えば、ライブビデオストリーミングシステム106は、保留中の参加者デバイス110のライブビデオストリームを合成する単一のライブビデオストリームを提供する。
【0183】
加えて、一連の動作1000は、ライブビデオストリーミングシステム106が、参加者デバイスから、パブリック合成ライブビデオストリームから退出する要求を受信する動作1004を含む。1つまたは複数の実装形態では、参加者デバイス110からの所与の参加者デバイスが、パブリック合成ライブビデオストリームから退出することを要求する。例えば、ライブビデオストリーミングシステム106は、所与の参加者デバイスにおけるライブビデオストリーム終了要素の選択を検出する。
【0184】
1つまたは複数の実装形態では、ライブビデオストリーミングシステム106は、ホストデバイスが、パブリック合成ライブビデオストリームから所与の参加者デバイスを除去することを要求するのを検出する。例えば、ライブビデオストリーミングシステム106は、所与の参加デバイスに関する参加デバイス除去要素の選択を検出する。いくつかの実装形態では、所与の参加者デバイスは、設定された時間に(例えば、参加者のラインアップに基づいて)、または設定された継続時間にわたってパブリック合成ライブビデオストリーム上にあった後(例えば、15分後)などに、パブリック合成ライブビデオストリームから退出するようにスケジュールされる。
【0185】
示されるように、一連の動作1000は、ライブビデオストリーミングシステム106が退出する参加者デバイスのためのデジタル参加後ルームを生成する動作1006を含む。例えば、ライブビデオストリーミングシステム106は、所与の参加者デバイスのライブビデオストリームを、パブリック合成ライブビデオストリームからデジタル参加後ルームに移動させることができる。実際、ライブビデオストリーミングシステム106は、離脱する参加者デバイスのライブビデオストリームを利用して、デジタル参加後ルームライブビデオストリームを作成することができる。
【0186】
1つまたは複数の実装形態では、ライブビデオストリーミングシステム106が、パブリック合成ライブビデオストリームを以前に去った参加者デバイス(例えば、以前の参加者デバイス)のためのデジタル参加後ルームを以前に作成していた場合、ライブビデオストリーミングシステム106は、それらのライブビデオストリームを一緒に結合して、デジタル参加後ルームライブビデオストリームを形成する(例えば、合成ライブビデオストリームを生成する)ことができる。代替的な実装形態では、ライブビデオストリーミングシステム106は、パブリック合成ライブビデオストリームから退出する各参加者デバイス(または参加者デバイスのグループ)のために新しいデジタル参加後ルームを作成することができる。
【0187】
様々な実装形態では、動作1006は、ライブビデオストリーミングシステム106が、所与の参加デバイスのライブビデオストリームをデジタル参加後ルームに移動させることに関連してパブリック合成ライブビデオストリームを更新することを含むことができる。実際に、ライブビデオストリーミングシステム106は、サーバデバイス102において、所与の参加者デバイスを除去すると、パブリック合成ライブビデオストリームのレイアウトおよび配置を更新することができる。
【0188】
示されるように、一連の動作1000は、ライブビデオストリーミングシステム106が、デジタル参加後ルームライブビデオストリームおよび更新されたパブリック合成ライブビデオストリームを、デジタル参加後ルームインタフェース内の以前の参加者デバイスに提供する動作1008を含む。例えば、上述したデジタル待機ルームと同様に、ライブビデオストリーミングシステム106は、デジタル参加後ルームのライブビデオストリームと、更新されたパブリック合成ライブビデオストリームとの両方を含むデジタル参加後ルームグラフィカルユーザインタフェース(または参加後ルームインタフェース)を、参加後ルームインタフェース内の以前の参加者デバイス(例えば、所与の参加者デバイス)に提供することができる。以前の参加者デバイス上の待機後ルームインタフェースの例が
図11Bに示されており、これについては以下で説明する。
【0189】
加えて、示されるように、一連の動作1000は、ライブビデオストリーミングシステム106が、更新されたパブリック合成ライブビデオストリームを視聴者デバイス112に提供する動作1010を含む。追加の実装形態では、ライブビデオストリーミングシステム106は、パブリック合成ライブビデオストリームに参加しているホストデバイスおよび/または残りの参加者デバイスにデジタル参加後ルームライブビデオストリームを提供することもできる。さらに、ライブビデオストリーミングシステム106は、ホストデバイスがデジタル参加後ルームライブビデオストリームを、それが1つまたは複数の以前の参加者デバイスによって占有されている場合に、表示または隠すことを可能にすることができる。
【0190】
いくつかの実装形態では、ライブビデオストリーミングシステム106は、デジタル待機ルームをデジタル参加後ルームと結合させる。例えば、ライブビデオストリーミングシステム106は、保留中の参加者デバイスならびに保留中の参加者デバイスを含む、結合されたデジタル待機ルーム(例えば、「オフカメラ」デジタル待機ルーム)を生成する。これらの実装形態では、保留中の参加者デバイスおよび以前の参加者デバイスの両方が、パブリック合成ライブビデオストリームを依然として監視しながら、互いにオフカメラでインタラクションすることができる。さらに、ライブビデオストリーミングシステム106は、結合されたデジタル待機ルームのライブビデオストリームを、パブリック合成ライブビデオストリームに参加しているホストデバイスおよび/または別の参加者デバイスに提供することができる。
【0191】
ここで
図11A~
図11Cを参照すると、合成ライブビデオ中にデジタル参加後ルームを提供するライブビデオストリーミングシステム106に関する追加の説明が提供される。特に、
図11A~
図11Cは、1つまたは複数の実装形態による、様々なクライアントデバイス上のデジタル参加後ルームおよび/またはパブリック合成ライブビデオストリームを含むグラフィカルユーザインタフェースを示す。特に、
図11Aは、以前の参加者デバイスがデジタル参加後ルーム内にいる場合にホストデバイス108上に表示されるパブリック合成ライブビデオストリームに対応する。
図11Bは、デジタル参加後ルームで待機している以前の参加者デバイス1110に対応する。
図11Cは、視聴者デバイス112上に表示されたパブリック合成ライブビデオストリームに対応する。
【0192】
図11Aに示されるように、ホストデバイス108は、パブリック合成ライブビデオストリームインタフェース1102aを含む。パブリック合成ライブビデオストリームインタフェースは、
図7Aのパブリック合成ライブビデオストリームインタフェース702aに関連して上述したものと同様の要素を含むことができる。例えば、パブリック合成ライブビデオストリームインタフェース1102aは、パブリック合成ライブビデオストリーム704、通知要素、参加者デバイス除去要素、ブロードキャスト終了要素、およびデジタルルーム要素714(デジタルルームが占有されたときに出現または変化し得る)を含むことができる。
【0193】
加えて、パブリック合成ライブビデオストリームインタフェース1102aは、デジタル参加後ルームにいる以前の参加者デバイス1110および任意の追加の保留中の参加者デバイスを表示するデジタル参加後ルームライブビデオストリーム1104も含むことができる。示されるように、パブリック合成ライブビデオストリームインタフェース1102aは、パブリック合成ライブビデオストリーム704上にデジタル参加後ルームライブビデオストリーム1104をオーバーレイすることができる。上述したように、デジタル参加後ルームが以前の参加者デバイスによって占有される場合、ライブビデオストリーミングシステム106は、対応する標示をホストデバイス108に提供することができる。例えば、ライブビデオストリーミングシステム106は、デジタルルーム要素714を強調する。代替的に、ライブビデオストリーミングシステム106は、パブリック合成ライブビデオストリーム704の一部の上にデジタル参加後ルームライブビデオストリーム1104を自動的に表示することができる。
【0194】
デジタル参加後ルームライブビデオストリーム1104はオーバーレイとして示されているが、いくつかの実装形態では、ライブビデオストリーミングシステム106は、パブリック合成ライブビデオストリーム704のサイズを縮小して、パブリック合成ライブビデオストリーム704に隣接してデジタル参加後ルームライブビデオストリーム1104を示す。1つまたは複数の実装形態では、ライブビデオストリーミングシステム106は、ホストデバイス108がデジタル参加後ルームライブビデオストリーム1104を移動させる、閉じる、隠す、または最小化することを可能にする。
【0195】
示されるように、デジタル参加後ルームライブビデオストリーム1104に関連して、パブリック合成ライブビデオストリームインタフェース1102aは、参加者デバイス再招待要素1106(例えば、「再招待(Invite Back)」グラフィカルボタン)を含む。例えば、参加者デバイス再招待要素1106の選択を検出すると、ライブビデオストリーミングシステム106は、デジタル参加後ルーム内の以前の参加者デバイスをパブリック合成ライブビデオストリームに追加する。加えて、デジタル参加後ルームライブビデオストリーム1104が、デジタル参加後ルームにおける複数の以前の参加者デバイスを示す場合、ライブビデオストリーミングシステム106は、デジタル参加後ルームの以前の参加者デバイスのすべてまたはサブセット(例えば、すべてよりも少ない)をパブリック合成ライブビデオストリーム704に追加するかどうかをホストデバイス108にプロンプトでさらに尋ねることができる。さらに、デジタル待機ルームと同様に、ライブビデオストリーミングシステム106は、デジタル参加後ルームライブビデオストリーム1104を、パブリック合成ライブビデオストリーム704に現在参加している他の参加者デバイスに提供することができる。
【0196】
図11Bは、デジタル参加後ルームインタフェース1102b(すなわち、デジタル参加後ルームグラフィカルユーザインタフェース)を含む以前の参加者デバイス1110を示す。示されるように、デジタル参加後ルームインタフェース1102bは、デジタル参加後ルームライブビデオストリーム1104ならびにパブリック合成ライブビデオストリーム704(例えば、更新されたパブリック合成ライブビデオストリーム)を含む。デジタル参加後ルームインタフェース1102bは、以前の参加者デバイスが、パブリック合成ライブビデオストリーム704に再参加するための適切な時間まで、またはパブリック合成ライブビデオストリームが終了するまで、オフカメラで待機することを可能にする。
【0197】
示されるように、デジタル参加後ルームインタフェース1102bは、再参加要求要素1108を含む。存在する場合、再参加要求要素1108は、以前の参加者デバイス1110がパブリック合成ライブビデオストリーム704に再参加することを可能にする。例えば、1つまたは複数の実装形態では、再参加要求要素1108の選択を検出すると、ライブビデオストリーミングシステム106は、以前の参加者デバイス1110をパブリック合成ライブビデオストリーム704に戻して追加する。代替的な実装形態では、再参加要求要素1108の選択を検出すると、ライブビデオストリーミングシステム106は、以前の参加者デバイス1110がパブリック合成ライブビデオストリーム704に再参加するための要求を参加者デバイス(例えば、ホストデバイス)に送信する。
【0198】
複数の以前の参加者デバイスがデジタル参加後ルームにいる実装形態では、ライブビデオストリーミングシステム106は、以前の参加者デバイスの各々からのライブビデオストリームを含むデジタル参加後ルームライブビデオストリーム1104を生成することができる。次いで、ライブビデオストリーミングシステム106は、デジタル参加後ルームライブビデオストリーム1104を、デジタル参加後ルームインタフェース1102b内の以前の参加者デバイス1110に提供することができる。
【0199】
さらに、デジタル待機ルームと同様に、デジタル参加後ルームインタフェース1102bは、デジタル参加後ルームライブビデオストリーム1104およびパブリック合成ライブビデオストリーム704を様々な配置で表示することができる。例えば、いくつかの例では、ライブビデオストリーミングシステム106は、以前の参加者デバイス1110がデジタル参加後ルームライブビデオストリーム1104を移動させる、オーバーレイする、隠す、または最小化することを可能にする。
【0200】
図11Cは、
図7Cに関連して上述したパブリック合成ライブビデオストリームインタフェース702aと同様のパブリック合成ライブビデオストリームインタフェース1102cを含む視聴者デバイス112を示す。例えば、パブリック合成ライブビデオストリームインタフェース1102cは、パブリック合成ライブビデオストリーム704を含む。特に、パブリック合成ライブビデオストリームインタフェース1102cは、デジタル参加後ルームを表示しないか、または以前の参加者デバイスがデジタル参加後ルームにいるといういかなる標示も提供しない。さらに、以前の参加者デバイス1110がパブリック合成ライブビデオストリーム704から除去される場合、ライブビデオストリーミングシステム106は、前述のように(例えば、サーバデバイスにおいて)パブリック合成ライブビデオストリーム704のレイアウトを更新し、更新されたパブリック合成ライブビデオストリームを視聴者デバイス112にシームレスに提供することができる。
【0201】
上述のように、
図12~
図13Cは、デジタルブロードキャスト後ルーム(または単にブロードキャスト後ルーム)に関する追加の詳細を提供する。例えば、
図12は、1つまたは複数の実装形態による、パブリック合成ライブビデオストリームに続くブロードキャスト後ルームを生成および利用するライブビデオストリーミングシステム106の一連の動作1200のシーケンス図である。示されるように、一連の動作1200は、ライブビデオストリーミングシステム106が、参加者デバイス110(ホストデバイスを含むことができる)および視聴者デバイス112と通信することを含む。
【0202】
示されるように、一連の動作1200は、ライブビデオストリーミングシステム106がパブリック合成ライブビデオストリームを視聴者デバイス112にブロードキャストする動作1202を含む。例えば、ライブビデオストリーミングシステム106は、サーバデバイス102において配置されるように保留中の参加者デバイス110のライブビデオストリームを合成する単一のライブビデオストリームを提供する。
【0203】
加えて、一連の動作1200は、ライブビデオストリーミングシステム106が、参加者デバイスからパブリック合成ライブビデオストリームを終了する要求を受信する動作1204を含む。例えば、ライブビデオストリーミングシステム106は、上記で説明したように、ホストデバイスにおけるブロードキャスト終了要素の選択を検出する。1つまたは複数の実装形態では、ライブビデオストリーミングシステム106は、パブリック合成ライブビデオストリームを終了し、参加者デバイスならびに視聴者デバイス112とのすべての接続をドロップすることができる。
【0204】
いくつかの実装形態では、ライブビデオストリーミングシステム106は、以前の参加者デバイスを含む参加者デバイス110にブロードキャスト後ルームを提供することができる。例えば、ホストデバイスは、ライブビデオストリーミングシステム106が、パブリック合成ライブビデオストリームをセットアップしている間、パブリック合成ライブビデオストリーム中、またはパブリック合成ライブビデオストリームの終了に関連して、ブロードキャスト後ルームを提供することを要求することができる。
【0205】
示されるように、一連の動作1200は、ライブビデオストリーミングシステム106が、参加者デバイスからブロードキャスト後ルームに1つまたは複数のライブビデオストリームを移動させることによってブロードキャスト後ルームを生成する動作1206を含む。例えば、ライブビデオストリーミングシステム106は、パブリック合成ライブビデオストリームからの参加者デバイスのライブビデオストリームおよび/または以前の参加者デバイス(例えば、デジタル参加後ルームで待機している以前の参加者デバイス)のライブビデオストリームを合成することによって、ブロードキャスト後ルームライブビデオストリーム(例えば、合成ライブビデオストリーム)を生成することができる。視聴者デバイスがデジタル参加後ルームへのアクセスを有するいくつかの実装形態では、ライブビデオストリーミングシステム106は、以下で説明するように、視聴者デバイスにブロードキャスト後ルームへのアクセスを提供することもできる。
【0206】
示されるように、一連の動作1200は、ライブビデオストリーミングシステム106が、視聴者デバイス112へのパブリック合成ライブビデオストリームのブロードキャストを終了する動作1208を含む。例えば、様々な実装形態において、ライブビデオストリーミングシステム106は、パブリック合成ライブビデオストリームが終了したという通知を視聴者デバイス112に提供する。いくつかの実装形態では、ライブビデオストリーミングシステム106は、視聴者デバイス112がパブリック合成ライブビデオストリームの録画を視聴することを可能にする。
【0207】
加えて、一連の動作1200は、ライブビデオストリーミングシステム106がブロードキャスト後ルームライブビデオストリームを参加者デバイス110に提供する動作1210を含む。例えば、パブリック合成ライブビデオストリームがパブリック合成ライブビデオストリームを視聴者デバイス112にブロードキャストすることを停止した後、ライブビデオストリーミングシステム106は、ブロードキャスト後ルームに参加している参加者デバイス110にブロードキャスト後ルームライブビデオストリームを提供し続けることができる。実際、多くの実装形態では、ブロードキャスト後ルームライブビデオストリームは、パブリック合成ライブビデオストリームの参加者デバイスにのみ提供されるプライベートライブビデオストリームである。
【0208】
いくつかの実装形態では、ライブビデオストリーミングシステム106は、ブロードキャスト後ルームグラフィカルユーザインタフェース(またはブロードキャスト後ルームインタフェース)において、参加者デバイス110にブロードキャスト後ルームライブビデオストリームを提供する。このようにして、参加者デバイスは、パブリック合成ライブビデオストリームについてプライベートに議論および/または感想を言うことができる。以下で説明するように、ブロードキャスト後ルームインタフェースは、パブリック合成ライブビデオストリームインタフェースおよび/またはデジタル準備ルームインタフェースと同様の外観であってよい。
【0209】
示されるように、一連の動作1200は、ライブビデオストリーミングシステム106がブロードキャスト後ルームライブビデオストリームを視聴者デバイス112のサブセットに提供する任意選択の動作1212を含む。例えば、ライブビデオストリーミングシステム106は、ブロードキャスト後ルームライブビデオストリームを視聴する視聴者デバイス112のサブセットを識別する。
【0210】
実際、ライブビデオストリーミングシステム106は、視聴者デバイス112のうちのいくつかに、VIP体験として、ブロードキャスト後ルームライブビデオストリームを提示することができる。いくつかの実装形態では、ライブビデオストリーミングシステム106は、視聴者デバイス112に関連付けられたデジタル購入、デジタル入札、または他のアクティビティメトリックに基づいて、視聴者デバイスのサブセットを識別する。いくつかの実装形態では、ライブビデオストリーミングシステム106は、以下でさらに説明するように、視聴者デバイス112のアクティビティメトリックを分析することに基づいて、どの視聴者デバイス112をサブセットに含めるべきかを決定する。
【0211】
1つまたは複数の実装形態では、ライブビデオストリーミングシステム106は、(選択されたサブセットがもしあればそれを除いて)視聴者デバイス112へのパブリック合成ライブビデオストリームのブロードキャストを停止することによって、ブロードキャスト後のルームライブビデオストリームを生成することができる。さらに、保留中の参加者デバイスがデジタル参加後ルームに存在する場合、ライブビデオストリーミングシステム106は、以前の参加者デバイスのライブビデオストリームを、ブロードキャスト後ルームライブビデオストリームに追加することもできる。さらに、いくつかの実装形態では、以下でさらに説明するように、1つまたは複数の視聴者デバイス112をターゲット視聴者デバイスとして選択することができ、これらのターゲット視聴者デバイスは、ブロードキャスト後ルームに参加することができる。
【0212】
ここで
図13A~
図13Cを参照すると、合成ライブビデオに続いてブロードキャスト後ルームを提供するライブビデオストリーミングシステム106に関する追加の説明が提供される。特に、
図13A~
図13Cは、1つまたは複数の実装形態による、様々なクライアントデバイス上のブロードキャスト後ルームを含むグラフィカルユーザインタフェースを示す。特に、
図13Aは、ホストデバイス108上に表示されたブロードキャスト後ルームに対応する。
図13Bは、参加者デバイス110上に表示されたブロードキャスト後ルームに対応する。
図13Cは、視聴者デバイス112(例えば、選択された視聴者デバイスのサブセット内の視聴者デバイス)上に表示されるブロードキャスト後ルームに対応する。
【0213】
図13Aに示されるように、ホストデバイス108は、ブロードキャスト後ルームインタフェース1302aを含む。ブロードキャスト後ルームインタフェース1302aは、ルームタイトル、プライベート通知要素1306およびアクティブ視聴者数1308を含む通知要素、ブロードキャスト後ルームライブビデオストリーム1304、参加者デバイス除去要素、ならびにルーム終了要素1310など、上述したものと同様の1つまたは複数の要素を含むことができる。
【0214】
1つまたは複数の実装形態では、プライベート通知要素1306は、ライブビデオストリーミングシステム106がブロードキャスト後ルームライブビデオストリームを視聴者デバイスのオープングループにブロードキャストしていないことを示す。いくつかの実装形態では、プライベート通知要素1306は、ブロードキャスト後ルームが、参加者デバイス、参加者デバイスの選択グループ、または視聴者デバイスのサブセットに限定されるかどうかを伝え得る。例えば、アクティブ視聴者数1308に関連して表示される場合、プライベート通知要素1306は、視聴者デバイスの選択されたセットがブロードキャスト後ルームへのアクセスを許可されていることを示す。
【0215】
示されるように、ブロードキャスト後ルームインタフェース1302aは、ルーム終了要素1310を含む。1つまたは複数の実装形態では、ルーム終了要素1310を選択することは、ライブビデオストリーミングシステム106に、ブロードキャスト後ルームを終了させ、参加者デバイスのライブビデオストリームの受信を停止させる。いくつかの実装形態では、ルーム終了要素1310を選択することによって、ライブビデオストリーミングシステム106は、ブロードキャスト後ルームを終了させるか、または視聴者デバイスのサブセットを切断するためにホストデバイスに提供するなど、様々なオプションをホストデバイス108に提供する。
【0216】
様々な実装形態では、ブロードキャスト後ルームインタフェース1302aは、1つまたは複数のルーム構成オプションを含むことができる。例えば、ライブビデオストリーミングシステム106は、ホストデバイス108が、ブロードキャスト後ルームライブビデオストリームのレイアウト、サイズ、または配置を修正することを可能にする。別の例として、ライブビデオストリーミングシステム106は、ホストデバイス108が、ブロードキャスト後ルーム内の参加者デバイスとの新しいパブリック合成ライブビデオストリームを再開または開始することを可能にする。
【0217】
図13Bは、ブロードキャスト後ルームインタフェース1302bを含む参加者デバイス110を示す。ここで、参加者デバイスは、右下のセクションに表示される参加者に対応することができる。示されるように、ブロードキャスト後ルームインタフェース1302bは、ブロードキャスト後ルームライブビデオストリーム1304を含む。加えて、ブロードキャスト後ルームインタフェース1302bは、通知要素およびライブビデオストリーム終了要素などの前述した他の要素を含む。
【0218】
図13Cは、視聴者デバイスのサブセット内の視聴者デバイスに対応する視聴者デバイス112を示す。上記で説明したように、いくつかの実装形態では、ライブビデオストリーミングシステム106は、ブロードキャスト後ルームを視聴する視聴者デバイスのサブセットを決定し、視聴者デバイスのサブセットにブロードキャスト後ルームライブビデオストリームへのアクセスを提供することができる。
図13Cに示すように、視聴者デバイス112は、ブロードキャスト後ルームライブビデオストリーム1304を有するブロードキャスト後ルームインタフェース1302cを含む。
【0219】
図1~
図13C、対応するテキスト、および例は、1つまたは複数の実装形態によるライブビデオストリーミングシステム106のいくつかの異なるシステム、方法、技法、構成要素、および/またはデバイスを提供する。本明細書の説明に加えて、1つまたは複数の実装形態は、特定の結果を達成するための動作を含むフローチャートに関して説明することもできる。例えば、
図14および
図15は、様々な実装形態による例示的な一連の動作のフローチャートを示す。加えて、
図14および
図15は、より多くの、またはより少ない動作で実行されてもよい。さらに、動作は、異なる順序で実行されてもよい。加えて、本明細書で説明される動作は、互いに並行して、または同じもしくは類似の動作の異なるインスタンスと並行して、繰り返されるか、または実行され得る。
【0220】
図14および
図15はそれぞれ、特定の実装形態による一連の動作を示すが、代替的な実装形態は、示された動作のいずれかを省略、追加、順序変更、および/または修正することができる。
図14および
図15の一連の動作は、方法の一部として実行することができる。代替的に、非一時的コンピュータ可読媒体は、1つまたは複数のプロセッサによって実行されると、コンピューティングデバイス(例えば、サーバデバイスおよび/またはクライアントデバイス)に
図14および
図15の一連の動作を実行させる命令を備えることができる。さらなる実装形態では、システムは、
図14および
図15の動作を実行する。
【0221】
例示のために、
図14は、1つまたは複数の実装形態による、合成ライブビデオストリーム(例えば、パブリック合成ライブビデオストリーム)に関連するデジタル準備ルームを生成し、提供し、ブロードキャストする一連の動作1400のフローチャートを示す。示されるように、一連の動作1400は、参加者デバイスからライブビデオストリームを受信する動作1410を含む。例えば、動作1410は、サーバデバイスにおいて、複数の参加者デバイスから複数のライブビデオストリームを受信することを含むことができる。様々な実装形態では、サーバデバイスは、ビデオ品質よりも低遅延を優先する第1の通信プロトコルを介して複数のライブビデオストリームを受信する。
【0222】
示されるように、一連の動作1400は、参加者デバイスのためのデジタル準備ルームを生成する動作1420を含む。例えば、動作1420は、サーバデバイスにおいて、複数の参加者デバイスのためのデジタル準備ルームを生成することを含むことができる。動作1420は、以下で説明するように、複数のサブ動作を含むことができる。
【0223】
示されるように、動作1420は、ライブビデオストリームを合成して合成ライブビデオストリームにするサブ動作1422を含む。例えば、サブ動作1422は、複数の参加デバイスからの複数のライブビデオストリームを合成して合成ライブビデオストリーム(例えば、非パブリック合成ライブビデオストリーム)にすることを含むことができる。様々な実装形態では、サブ動作1422は、複数のライブビデオストリームを、参加者デバイス(例えば、ホストデバイス)によって指定されたレイアウトおよび/または配置に並べることを含む。
【0224】
示されるように、動作1420は、合成ライブビデオストリームを準備ルームインタフェース内の参加者デバイスに提供するサブ動作1424を含む。例えば、サブ動作1424は、合成ライブビデオストリームをデジタル準備ルームインタフェース内の複数の参加者デバイスに提供することを含むことができる。1つまたは複数の実装形態では、デジタル準備ルームインタフェースは、合成ライブビデオストリーム(例えば、デジタル準備ルームのライブビデオストリーム)が視聴者デバイス112にまだブロードキャストしていないことを複数の参加者デバイスに伝える1つまたは複数の通知要素を含む。
【0225】
示されるように、一連の動作1400は、準備ルームインタフェースのブロードキャスト要素とのユーザインタラクションを受信する動作1430を含む。例えば、動作1430は、複数の参加者デバイスのうちの第1の参加者デバイスから、デジタル準備ルームインタフェースのブロードキャスト要素とのユーザインタラクションを受信することを含むことができる。1つまたは複数の実装形態では、動作1430は、デジタル準備ルームを視聴者デバイスにブロードキャストすることを要求する参加者デバイス(例えば、ホストデバイス)のデジタル準備ルームインタフェース内のブロードキャスト要素の選択を検出することを含む。
【0226】
示されるように、一連の動作1400は、合成ライブビデオストリームを視聴者デバイスにブロードキャストする動作1440を含む。例えば、動作1440は、ブロードキャスト要素とのユーザインタラクションに基づいて、合成ライブビデオストリーム(例えば、パブリック合成ライブビデオストリーム)を複数の視聴者デバイスにブロードキャストすることを含むことができる。1つまたは複数の実装形態では、動作1440は、ネットワーキングシステム(例えば、ソーシャルネットワーキングシステムまたはメディア共有ネットワーキングシステム)内の複数の視聴者デバイスに合成ライブビデオストリームを提供することを含む。
【0227】
1つまたは複数の実装形態では、動作1440は、合成ライブビデオストリーム(例えば、パブリック合成ライブビデオストリーム)を複数の視聴者デバイスにブロードキャストする前に第1の参加者デバイスにおいて表示するために、参加者デバイスが合成ライブビデオストリームに参加するための1つまたは複数の参加トリガを示すブロードキャスト参加要素を含むライブブロードキャストユーザインタフェースを提供することを含む。さらに、第1の参加者デバイスからブロードキャスト参加要素の選択を受信することに基づいて、動作1440は、参加トリガを識別すること、参加トリガに従って複数の視聴者デバイスに合成ライブビデオストリームをブロードキャストすることも含むことができる。いくつかの実装形態では、参加トリガは、参加者デバイスを合成ライブビデオストリームに追加するためのトリガ、参加者デバイスを合成ライブビデオストリームから除去するためのトリガ、参加者デバイスをデジタル準備ルームから合成ライブビデオストリームに移行させるためのトリガ、参加者デバイスをデジタル待機ルームから合成ライブビデオストリームに移行させるためのトリガ、または参加者デバイスを合成ライブビデオストリームから参加後ルームに移行させるためのトリガのうちの少なくとも1つを含む。
【0228】
一連の動作1400は、様々な追加の動作を含むことができる。例えば、1つまたは複数の実装形態では、一連の動作1400は、サーバデバイスにおいて、保留中の参加者デバイスから追加のライブビデオストリームを受信する動作と、サーバデバイスにおいて、保留中の参加者デバイスからの追加のライブビデオストリームを含むデジタル待機ルームライブビデオストリームを生成し、保留中の参加者デバイスにおける表示のために、合成ライブビデオストリームとデジタル待機ルームライブビデオストリームとを含むデジタル待機ルームインタフェースを提供することによって、デジタル待機ルームを生成する動作とを含むことができる。
【0229】
いくつかの実装形態では、一連の動作1400は、複数の視聴者デバイスへの合成ライブビデオストリームブロードキャストを終了する動作と、サーバデバイスにおいて、1つまたは複数の参加者デバイスからの複数のライブビデオストリームのうちの1つまたは複数を合成してブロードキャスト後ルームライブビデオストリームにし、ブロードキャスト後ルームライブビデオストリームを1つまたは複数の参加者デバイスに提供することによって、複数の参加者デバイスのうちの1つまたは複数の参加者デバイスのためのブロードキャスト後ルームを生成する動作とを含むことができる。追加の実装形態では、一連の動作1400は、複数の視聴者デバイスに関連付けられた1つまたは複数のアクティビティメトリックに基づいて、複数の視聴者デバイスから視聴者デバイスのサブセットを特定する動作と、ブロードキャスト後ルームライブビデオストリームへのアクセスを視聴者デバイスのサブセットに提供する動作とを含むことができる。
【0230】
様々な実装形態では、一連の動作1400は、合成ライブビデオストリーム中に複数の参加デバイスのうちの1つまたは複数の参加デバイスの1つまたは複数のライブビデオストリームを合成ライブビデオストリームから除去する動作と、1つまたは複数の参加デバイスの1つまたは複数のライブビデオストリームを合成して参加後ルームライブビデオストリームにし、合成ライブビデオストリームと参加後ルームライブビデオストリームとを含む参加後ルームユーザインタフェースを1つまたは複数の参加デバイスでの表示のために提供することによって、合成ライブビデオストリームから除去された1つまたは複数の参加デバイスのためのデジタル参加後ルームをサーバデバイスで生成する動作とを含むことができる。
【0231】
いくつかの実装形態では、一連の動作1400は、サーバデバイスにおいて、第1の参加者デバイスからのライブビデオストリームが合成ライブビデオストリームから除去されたことを検出する動作と、第1の参加者デバイスからのライブビデオストリームが合成ライブビデオストリームから除去された所定の時間内に第1の参加者デバイスが新しいライブビデオストリームを開始していると判定する動作と、第1の参加者デバイスが所定の時間内に新しいライブビデオストリームを開始していると判定することに基づいて、第1の参加者デバイスが合成ライブビデオストリームを再開するためのライブビデオストリーム再開オプションを提供する動作と、ライブビデオストリーム再開オプションとのユーザインタラクションに基づいて、複数の視聴者デバイスへの合成ライブビデオストリームのブロードキャストを再開する動作とを含むことができる。様々な実装形態では、一連の動作1400は、合成ライブビデオストリームの第1のバージョンを複数の参加者デバイスに提供する動作と、合成ライブビデオストリームの第2のバッファリングされたバージョンを複数の視聴者デバイスにブロードキャストする動作とを含むことができる。
【0232】
さらなる例示として、
図15は、1つまたは複数の実装形態による、合成ライブビデオストリーム(例えば、パブリック合成ライブビデオストリーム)に関連してデジタル待機ルームを生成し、提供し、ブロードキャストする一連の動作1500のフローチャートを示す。示されるように、一連の動作1500は、第1の参加者デバイスおよび第2の参加者デバイスからのライブビデオストリームを含む、合成ライブビデオストリームを視聴者デバイスにブロードキャストする動作1510を含む。例えば、動作1510は、サーバデバイスから、合成ライブビデオストリームを複数の視聴者デバイスにブロードキャストすることを含むことができ、合成ライブビデオストリームは、第1の参加者デバイスからの第1のライブビデオストリームと、第2の参加者デバイスからの第2のライブビデオストリームとを含む。
【0233】
示されるように、一連の動作1500は、デジタル待機ルームを生成する動作1520を含む。例えば、動作1520は、サーバデバイスにおいて、デジタル待機ルームを生成することを含むことができる。いくつかの実装形態では、動作1520は、デジタル待機ルームの作成を要求する参加者デバイス(例えば、ホストデバイス)からの入力を受信することに基づく。動作1520は、以下で説明するように、複数のサブ動作を含むことができる。
【0234】
示されるように、動作1520は、保留中の参加者デバイスから受信された第3のライブビデオストリームを含むデジタル待機ルームライブビデオストリームを生成するサブ動作1522を含む。例えば、サブ動作1522は、保留中の参加者デバイスから受信された第3のライブビデオストリームを含むデジタル待機ルームライブビデオストリームを生成することを含むことができる。いくつかの実装形態では、サブ動作1522は、追加の保留中の参加者デバイスから受信された追加のライブビデオストリームのためのデジタル待機ルームライブビデオストリームを生成することを含むことができる。
【0235】
1つまたは複数の実装形態では、サブ動作1522は、保留中の参加者デバイスから第3のライブストリームを受信することに基づいて、保留中の参加者デバイスが合成ライブストリームに追加される準備ができているという標示(indication)を第1の参加者デバイスに提供すること、第3のライブビデオストリームをデジタル待機ルームライブビデオストリームから合成ライブビデオストリームに移動させるためのユーザインタラクションを第1の参加者デバイスから受信することを含むことができる。追加の実装形態では、サブ動作1522は、合成ライブビデオストリームを複数の視聴者デバイスにブロードキャストする前に、第1の参加者デバイスから、1つまたは複数の参加トリガが満たされると第3のライブビデオストリームを合成ライブビデオストリームに移動させることを示すユーザインタラクションを受信すること、1つまたは複数の参加トリガに従って第3のライブビデオストリームをデジタル待機ルームから合成ライブビデオストリームに移動させることによって第3のライブビデオストリームを合成ライブビデオストリームに追加することを含んでいてよい。
【0236】
示されるように、動作1520は、合成ライブビデオストリームおよびデジタル待機ルームライブビデオストリームを含むデジタル待機ルームインタフェースを提供するサブ動作1524を含む。例えば、サブ動作1524は、保留中の参加者デバイスにおける表示のために、合成ライブビデオストリーム(例えば、パブリック合成ライブビデオストリーム)とデジタル待機ルームライブビデオストリームとを含むデジタル待機ルームインタフェースを提供することを含むことができる。いくつかの実装形態では、サブ動作1524は、デジタル待機ルームライブビデオストリームを標示として第1の参加者デバイスに提供することを含む。様々な実施態様において、デジタル待機ルームライブビデオストリームは、デジタル待機ルームライブビデオストリームが合成ライブビデオストリームに追加されるまで、複数の視聴デバイスによって視聴可能ではない。
【0237】
示されるように、一連の動作1500は、第3のライブビデオストリームを、視聴者デバイスにブロードキャストされている合成ライブビデオストリームに追加する動作1530を含む。例えば、動作1530は、複数の視聴者デバイスにブロードキャストされている合成ライブビデオストリーム内の第1のライブビデオストリームおよび第2のライブビデオストリームに第3のライブビデオストリームを追加することを含むことができる。複数の保留中の参加者デバイスがデジタル待機ルームにある実装形態では、動作1530は、保留中の参加者デバイスのライブビデオストリームのすべてまたはサブセット(例えば、すべてよりも少ない)を、合成ライブビデオストリームに追加することを含むことができる。
【0238】
一連の動作1500は、様々な追加の動作を含むことができる。例えば、1つまたは複数の実装形態では、一連の動作1500は、サーバデバイスにおいて、追加の保留中の参加者デバイスから第4のライブビデオストリームを受信する動作と、サーバデバイスにおいて、保留中の参加者デバイスからの第3のライブビデオストリームと追加の保留中の参加者デバイスからの第4のライブビデオストリームとを合成してデジタル待機ルームライブビデオストリームにし、保留中の参加者デバイスおよび追加の保留中の参加者デバイスにおける表示のために、合成ライブビデオストリームとデジタル待機ルームライブビデオストリームとを含むデジタル待機ルームインタフェースを提供することによって、デジタル待機ルームを生成する動作とを含むことができる。追加の実装形態では、一連の動作1500は、第3のライブビデオストリームおよび第4のライブビデオストリームを、複数の視聴者デバイスにブロードキャストされている合成ライブビデオストリーム内の第1のライブビデオストリームおよび第2のライブビデオストリームに追加する動作を含むことができる。
【0239】
次に
図16~
図20を参照すると、パブリック合成ライブビデオストリームに参加するターゲット視聴者デバイスを特定すること、ならびにパブリック合成ライブビデオストリームにターゲット視聴者デバイスを追加し、パブリック合成ライブビデオストリームからターゲット視聴者デバイスを除去することに関する追加の詳細が提供されている。例えば、
図16は、1つまたは複数の実装形態による、アクティビティメトリックに基づいてパブリック合成ライブビデオストリームに視聴者デバイスを追加し、パブリック合成ライブビデオストリームから視聴者デバイスを除去するための一連の動作1600の概略図である。様々な実装形態において、ライブビデオストリーミングシステム106および/またはネットワーキングシステム104は、一連の動作1600に示されるアクションを実行する。
【0240】
示されるように、一連の動作1600は、ライブビデオストリーミングシステム106がパブリック合成ライブビデオストリームを視聴者デバイス112にブロードキャストする動作1602を含む。上記で説明したように、ライブビデオストリーミングシステム106は、ホストデバイスならびに他の参加者デバイスからライブビデオストリームを受信し、合成してパブリック合成ライブビデオストリームにすることができる。いくつかの実装形態では、ライブビデオストリーミングシステム106は、ライブビデオストリームをそれらのタイムスタンプに従って同期させ、および/またはライブビデオストリームを、パブリック合成ライブビデオストリームを生成することの一部として所与の配列に並べる。さらに、ライブビデオストリーミングシステム106は、上で説明したように、パブリック合成ライブビデオストリームのリアルタイムバージョンまたはバッファリングバージョンを視聴者デバイス112にブロードキャストすることができる。
【0241】
また図示するように、一連の動作1600は、ライブビデオストリーミングシステム106が、パブリック合成ライブビデオストリームに関して視聴者デバイスに関連付けられたアクティビティメトリックを分析する動作1604を含む。上記で開示したように、アクティビティメトリックは、パブリック合成ライブビデオストリームを表示する視聴者デバイスおよび/または参加者デバイスによって提供される、またはそれらから検出される暗黙的または明示的なアクティビティデータを含むことができる。例えば、1つまたは複数の実装形態では、ライブビデオストリーミングシステム106は、パブリック合成ライブビデオストリームに関して視聴者デバイス112からアクティビティメトリックを能動的に受信する。代替的な実装形態では、ライブビデオストリーミングシステム106は、視聴者デバイス112のアクティビティメトリックを受動的に監視する。
【0242】
以下でさらに説明するように、ライブビデオストリーミングシステム106は、どの参加トリガがパブリック合成ライブビデオストリームに関連付けられているかに基づいて、1つまたは複数のアクティビティメトリックを分析することができる。例えば、パブリック合成ライブビデオストリームのために選択された特定の参加トリガに基づいて、ライブビデオストリーミングシステム106は、視聴者デバイス112の各々から分析すべきターゲットアクティビティメトリック(またはアクティビティメトリックのセット)を決定することができる。
【0243】
アクティビティメトリックを分析することに基づいて、ライブビデオストリーミングシステム106は、一連の動作1600の動作1606に示されるように、パブリック合成ライブビデオストリームに参加するターゲット視聴者デバイスを特定することができる。例えば、ライブビデオストリーミングシステム106は、視聴者デバイス112間でアクティビティメトリックを比較して、パブリック合成ライブビデオストリームに関連付けられた参加トリガを満たすターゲット視聴者デバイスを決定する。様々な実装形態では、ライブビデオストリーミングシステム106は、複数のアクティビティメトリックの組み合わせに基づいてターゲット視聴者デバイスを決定する。いくつかの実装形態では、ライブビデオストリーミングシステム106は、複数のターゲット視聴者デバイスを特定する。
【0244】
示されるように、一連の動作1600は、ライブビデオストリーミングシステム106が、ターゲット視聴者デバイスのライブビデオストリームをパブリック合成ライブビデオストリームに追加する動作1608を含む。1つまたは複数の実装形態では、ライブビデオストリーミングシステム106は、ターゲット視聴者デバイスのライブビデオストリームを要求し、受信する。さらに、上記で説明したように、ライブビデオストリーミングシステム106は、ターゲット視聴者デバイスのライブビデオストリームを、パブリック合成ライブビデオストリーム内のホストデバイスおよび他の参加者デバイスのライブビデオストリーミングシステムに追加することができる。追加的に、動作1608に関連して示されるように、ライブビデオストリーミングシステム106は、更新されたパブリック合成ライブビデオストリームを視聴者デバイス112に提供することができる。
【0245】
1つまたは複数の実装形態では、ライブビデオストリーミングシステム106は、デジタルルームを視聴および/またはデジタルルームに参加するターゲット視聴者デバイスを選択することができる。例えば、いくつかの実装形態では、ライブビデオストリーミングシステム106は、デジタル待機ルームまたはデジタルポスト参加者ルームなどのデジタルルームに参加するターゲット視聴者デバイスを決定する。様々な実装形態では、ライブビデオストリーミングシステム106は、デジタルルーム(例えば、デジタル待機ルームまたはブロードキャスト後ルーム)を視聴するターゲット視聴者デバイスを選択することもできる。
【0246】
示されるように、一連の動作1600は、ライブビデオストリーミングシステム106が、アクティビティメトリックに基づいてパブリック合成ライブビデオストリームから参加者デバイスのライブビデオストリームを除去する動作1610を含む。例えば、様々な実装形態では、ライブビデオストリーミングシステム106は、視聴者デバイス112からのアクティビティメトリックを分析して、所与の時間にパブリック合成ライブビデオストリームからどの参加者デバイスを除去すべきかを決定する。いくつかの実装形態では、ライブビデオストリーミングシステム106は、参加者デバイスからのアクティビティメトリックを分析して、どの参加者デバイスを除去すべきかを決定する。実際に、ライブビデオストリーミングシステム106は、以下でさらに説明されるように、アクティビティメトリックに基づいてパブリック合成ライブビデオストリームに参加者デバイスを追加し、パブリック合成ライブビデオストリームから参加者デバイスを除去することができる。
【0247】
図17は、1つまたは複数の実装形態による、アクティビティメトリックを分析することに基づいてパブリック合成ライブビデオストリームに追加するターゲット視聴者デバイスを特定する一連の動作1700のシーケンス図である。示されるように、一連の動作1700は、ライブビデオストリーミングシステム106が、参加者デバイス110(ホストデバイスを含むことができる)および視聴者デバイス112と通信することを含む。
【0248】
示されるように、一連の動作1700は、ライブビデオストリーミングシステム106が、参加者デバイスを追加および除去するための参加トリガを受信する動作1702を含む。1つまたは複数の実装形態では、動作1702は、ライブビデオストリーミングシステム106が、ブロードキャスト参加要素の選択を含むユーザインタフェースを提供することを含む。追加的に、ブロードキャスト参加要素の各々は、1つまたは複数の参加トリガに関連付けられ得る。したがって、これらの実装形態では、ライブビデオストリーミングシステム106は、ブロードキャスト参加要素の選択を検出し、パブリック合成ライブビデオストリームに関連付ける1つまたは複数の対応する参加トリガを決定することができる。選択されたブロードキャスト参加要素に基づいて参加トリガを受信することに関するさらなる詳細は、
図18A~
図18Bに関連して以下で提供される。
【0249】
示されるように、一連の動作1700は、ライブビデオストリーミングシステム106がパブリック合成ライブビデオストリームを視聴者デバイス112にブロードキャストする動作1704を含む。実際、前述したように、ライブビデオストリーミングシステム106は、参加者デバイス110からライブビデオストリームを受信して合成する。様々な実装形態では、ライブビデオストリーミングシステム106は、
図18A~
図18Bに関連して以下でさらに説明するように、以前に受信された参加トリガに従ってパブリック合成ライブビデオストリームを生成する。
【0250】
一連の動作1700は、ライブビデオストリーミングシステム106がパブリック合成ライブビデオストリーム中に視聴者デバイス112のアクティビティメトリックを分析する動作1706を含む。例えば、ライブビデオストリーミングシステム106は、視聴者デバイス112からアクティビティメトリックを能動的または受動的に受信する。多くの場合、各アクティビティメトリックについて、ライブビデオストリーミングシステム106は、視聴者デバイス112を数値的にランク付けし、順序付けし、優先し、並べ、および/またはスコア付けすることができる。視聴者デバイス112のアクティビティメトリックを分析することに関するさらなる詳細は、
図19に関連して以下に提供される。
【0251】
示されるように、一連の動作1700は、ライブビデオストリーミングシステム106が、アクティビティメトリックおよび参加トリガに基づいて、パブリック合成ライブビデオストリームに参加するターゲット視聴者デバイスを特定する動作1708を含む。様々な実装形態では、ライブビデオストリーミングシステム106は、受信された参加トリガに関連して分析されたアクティビティメトリックを利用して、1つまたは複数のターゲット視聴者デバイスを特定することができる。実際に、ライブビデオストリーミングシステム106は、参加トリガを利用して、1つまたは複数のターゲットアクティビティメトリックを特定し、視聴者デバイス112間でターゲットアクティビティメトリックを比較することに基づいてターゲット視聴者デバイスを特定することができる。ターゲット視聴者デバイスを特定することに関するさらなる詳細は、
図19に関連して以下で提供される。
【0252】
また示されるように、一連の動作1700は、ライブビデオストリーミングシステム106がターゲット視聴者デバイスを参加者デバイスになるように招待する動作1710を含む。例えば、1つまたは複数の実装形態では、ライブビデオストリーミングシステム106は、パブリック合成ライブビデオストリームへの参加を確認する通知をターゲット視聴者デバイスに送信する。代替的な実装形態では、ライブビデオストリーミングシステム106は、パブリック合成ライブビデオストリームにまもなく参加することになるという通知(例えば、カウントダウン)をターゲット視聴者デバイスに送信する。いくつかの実装形態では、ライブビデオストリーミングシステム106は、明示的な招待なしにターゲット視聴者デバイスをパブリック合成ライブビデオストリームに追加し始めるための招待を提供しない。
【0253】
様々な実装形態では、ライブビデオストリーミングシステム106は、ターゲット視聴者デバイスに、(例えば、パブリック合成ライブビデオストリーム内の)それらのライブビデオストリームをパブリックにおよび/またはプライベートに共有する許可を求めるプロンプトを送信する。いくつかの実装形態では、ライブビデオストリーミングシステム106は、視聴者デバイスが最初にパブリック合成ライブビデオストリームにアクセスする場合に、ターゲット視聴者デバイスから許可を受信する。様々な実装形態では、ターゲット視聴者デバイスは、それらのライブビデオストリームを利用およびブロードキャストする許可をライブビデオストリーミングシステム106に以前に付与している。
【0254】
示されるように、一連の動作1700は、ライブビデオストリーミングシステム106がターゲット視聴者デバイスを視聴者デバイスから参加者デバイスに移行させる動作1712を含む。示されるように、動作1712は、ライブビデオストリーミングシステム106がターゲット視聴者デバイスを視聴者デバイス112から参加者デバイス110に移動させることを示す。なお、本開示では、簡略化のため、ターゲット視聴者デバイスが参加者デバイスになった後であっても、ターゲット視聴者デバイスをターゲット視聴者デバイスと呼び続ける。いくつかの実装形態では、ターゲット視聴者デバイスは、パブリック合成ライブビデオストリーム内の他の参加者デバイスから異なるブロードキャスト許可およびオプションを受信する。例えば、ターゲット視聴者デバイスは、パブリック合成ライブビデオストリームにのみ参加するように制限され、ホストデバイスなどの他の参加者デバイスは、ブロードキャスト設定、参加トリガ、および/または参加者を修正することができる。
【0255】
ターゲット視聴者デバイスをパブリック合成ライブビデオストリームに移行させることの一部として、ライブビデオストリーミングシステム106は、いくつかの追加の動作(例えば、動作1714~1720)を実行することができる。例示すると、示されるように、一連の動作1700は、ライブビデオストリーミングシステム106がターゲット視聴者デバイスからライブビデオストリームを受信する動作1714を含む。例えば、ライブビデオストリーミングシステム106は、サーバデバイス102においてターゲット視聴者デバイスからライブビデオストリームを受信し始める。いくつかの実装形態では、ライブビデオストリーミングシステム106は、ターゲット視聴者デバイスからのライブビデオストリームを、パブリック合成ライブビデオストリームに参加させる前に、デジタルルーム(例えば、デジタル待機ルーム)に追加する。
【0256】
加えて、一連の動作1700は、ライブビデオストリーミングシステム106が、ターゲット視聴者デバイスからのライブビデオストリームをパブリック合成ライブビデオストリームに追加する動作1716を含む。例えば、様々な実装形態では、ライブビデオストリーミングシステム106は、ターゲット視聴者デバイスからのライブビデオストリームを他の参加者デバイス110のライブビデオストリームと(例えば、タイムスタンプに基づいて)整列させること、および/またはターゲット視聴者デバイスのライブビデオストリームを収容するようにビデオストリームのレイアウト配置を修正することによって、更新されたパブリック合成ライブビデオストリームを生成する。いくつかの実装形態では、ライブビデオストリーミングシステム106は、ターゲット視聴者デバイスからのライブビデオストリームを追加することに関連して、(例えば、以前のターゲット視聴者デバイスからの)現在のライブビデオストリームを除去する。
【0257】
更新されたパブリック合成ライブビデオストリームを生成すると、ライブビデオストリーミングシステム106は、一連の動作1700の動作1718によって示されるように、更新されたパブリック合成ライブビデオストリームを参加者デバイス110に提供することができる。例えば、上述したように、ライブビデオストリーミングシステム106は、リアルタイム通信プロトコルを使用して、ターゲット視聴者デバイスを含む参加者デバイス110に更新されたパブリック合成ライブビデオストリームを提供することができる。ライブビデオストリーミングシステム106は、一連の動作1700の動作1720によって示されるように、更新されたパブリック合成ライブビデオストリームを視聴者デバイス112に提供することもできる。例えば、上述したように、ライブビデオストリーミングシステム106は、異なる通信プロトコルを利用して、更新されたパブリック合成ライブビデオストリームのバッファリングされたバージョンを視聴者デバイス112に提供することができる。
【0258】
上述したように、
図18A~
図18Bは、パブリック合成ライブビデオストリームに関連してグラフィカルユーザインタフェース(例えば、ホストユーザインタフェース)内でブロードキャスト参加要素を参加者デバイス(例えば、ホストデバイス)に提供することに対応している。例示のために、
図18Aおよび
図18Bは、1つまたは複数の実装形態による、パブリック合成ライブビデオストリームに視聴者デバイスを追加し、パブリック合成ライブビデオストリームから視聴者デバイスを除去するためのパラメータを設定するためのグラフィカルユーザインタフェースを示す。特に、
図18A~
図18Bは、パブリック合成ライブビデオストリームを開始するための要素、特徴、グラフィックス、およびオプションを含む、ホストデバイス108上のホストグラフィカルユーザインタフェース1802(または単に「ホストユーザインタフェース1802」)のバージョンを示す。
【0259】
図3Aに関連して上述したホストユーザインタフェース302と同様に、ホストユーザインタフェース1802は、ライブビデオストリームを開始する準備をしているホストデバイス108に対応する。
図3Aと同様に、ホストユーザインタフェース1802は、上述したように、アプリケーション設定要素310、ライブストリーム設定要素312、およびアクティブフォロワー標示314を含むことができる。加えて、ホストユーザインタフェース1802は、先に開示したように、ホストデバイス108によってキャプチャされたホスト(例えば、ユーザ)のライブ画像306を含むことができる。
【0260】
図3Aに関連して上述したように、ライブストリーム設定要素312は、パブリック合成ライブビデオストリームにタイトルを追加すること、パブリック合成ライブビデオストリームのセットアップまたは方式を変更すること、およびパブリック合成ライブビデオストリームにアクティビティを追加することに対応する要素を含む。
図18Aに示されるように、ライブビデオストリーミングシステム106は、「セットアップ(Setup)」ライブストリーム設定要素の選択を検出し、それに応答して、ライブストリームセットアップメニュー1804を表示するようにホストユーザインタフェース1802を更新することができる。
【0261】
示されるように、ライブストリームセットアップメニュー1804は、図示されない他のライブストリームセットアップオプション1806のうち、参加者ラインアップ、適格性要件、デジタル購入オプション、デジタルオークション設定、ホスト権限、ルームアクセス、およびコメントを有効にし、修正し、および/または指定するオプションを含む様々なライブストリームセットアップオプション1806を含む。上述したように、これらのライブストリームセットアップオプション1806は、パブリック合成ライブビデオストリームのフレームワークを設定するためのブロードキャスト参加要素に対応することができる。さらに、ブロードキャスト参加要素の各々は、パブリック合成ライブビデオストリームに参加するための参加トリガに関連付けられ得る。
【0262】
例示のために、ホストユーザインタフェース1802は、ライブストリームセットアップオプション1806内に参加者ラインアップを含む。1つまたは複数の実装形態では、参加者ラインアップは、パブリック合成ライブビデオストリームに参加するようにスケジュールされた1つまたは複数の参加者デバイスに対応する。例えば、参加者ラインアップは、参加者デバイスがパブリック合成ライブビデオストリームに参加する時間および/または継続時間のフレームワークまたはアジェンダを含むことができる。例えば、参加者ラインアップは、参加者デバイスAおよびBが午後1:00に30分間参加し、参加者デバイスCが午後1:30に15分間参加し、参加者デバイスCおよびDが午後2:00にパブリック合成ライブビデオストリームに参加することを示す。代替的な実装形態では、参加者ラインアップは、パブリック合成ライブビデオストリーム中のある時に参加することが予想される参加者デバイスをリストアップする。
【0263】
追加の実装形態では、参加者ラインアップを設定することの一部として、ライブビデオストリーミングシステム106は、パブリック合成ライブビデオストリームに参加者デバイスを追加し、パブリック合成ライブビデオストリームから参加者デバイスを除去する際にデジタルルームを利用するためのオプションをホストデバイス108に提供することができる。例えば、ライブビデオストリーミングシステム106は、上述したように、パブリック合成ライブビデオストリーム中に参加する参加者デバイスのための1つまたは複数のデジタル待機ルームを作成することができる。実際、ライブビデオストリーミングシステム106は、ホストデバイス108が、参加者ラインアップ内の参加者デバイスを、デジタル準備ルーム、1つまたは複数のデジタル待機ルーム、1つまたは複数のデジタル参加後ルーム、および/またはブロードキャスト後ルームに割り当てる入力を提供することを可能にすることができる。
【0264】
追加の実装形態では、ライブビデオストリーミングシステム106は、デジタルルームに関連して参加トリガを生成することができる。例えば、ライブビデオストリーミングシステム106は、参加者デバイスをデジタルルームからパブリック合成ライブビデオストリームに移行させる(およびその逆の)ための参加トリガを生成する。例えば、保留中の参加者デバイスをパブリック合成ライブビデオストリームに転送するための1つまたは複数の参加トリガは、保留中の参加者デバイスを追加するためにホストデバイスおよび/もしくは保留中の参加者デバイスから入力を受信すること、デジタルルーム内のタイマの満了、ならびに/またはデジタルルーム内の保留中の参加者デバイスが最小ビデオ品質ブロードキャスト要件を満たすことを含むことができる。
【0265】
いくつかの実装形態では、ライブビデオストリーミングシステム106は、パブリック合成ライブビデオストリーム中に視聴者デバイス112に参加者ラインアップを表示する。例えば、ライブビデオストリーミングシステム106は、参加者デバイスがパブリック合成ライブビデオストリームに参加する時間を告知するデジタルステッカーを追加するか、または新しい参加者デバイスがパブリック合成ライブビデオストリームに参加(または退出)することを示す。様々な実装形態では、ライブビデオストリーミングシステム106は、パブリック合成ライブビデオストリームの前、間、または後に、参加者ラインアップまたはその一部を視聴者デバイス112に利用可能にする。
【0266】
上述したように、ライブストリームセットアップオプション1806は、適格性要件を含む。例えば、1つまたは複数の実装形態では、ホストデバイス108は、パブリック合成ライブビデオストリームへの参加のための基準のリストを提供することができる。例えば、ホストデバイス108は、ライブビデオストリーミングシステム106が、認証済みアカウントに関連付けられている参加者デバイス、閾値数のフォロワーを有する参加者デバイス、ホストデバイス108に社会的につながっている参加者デバイス、ホストデバイス108によって事前承認されている参加者デバイスなどを自動的に追加できることを示す。適格性要件の他の例は、参加者デバイスが、ビデオ品質レベルおよび最小遅延時間などの最小品質メトリックを満たすライブビデオストリームを提供することを要求することを含むことができる。さらに、適格性要件は、潜在的な参加者デバイスが、パブリック合成ライブビデオストリームに参加する前に、参加およびそのライブビデオストリームを共有する(例えば、許可を与える)ことに同意することを含むことができる。
【0267】
いくつかの実装形態では、適格性要件の一部として、ライブビデオストリーミングシステム106は、選択された適格性要件に基づいて参加トリガを適用する。例えば、ライブビデオストリーミングシステム106は、パブリック合成ライブビデオストリームに参加者デバイスを追加するための参加トリガ、および/またはパブリック合成ライブビデオストリームから参加者デバイスを除去するための参加トリガを実装する。このようにして、ライブビデオストリーミングシステム106は、参加トリガが満たされていることに従って、パブリック合成ライブビデオストリームをブロードキャストすることができる。
【0268】
ライブストリームセットアップオプション1806は、デジタル購入オプションも含む。1つまたは複数の実装形態では、ライブビデオストリーミングシステム106は、ホストデバイス108がパブリック合成ライブビデオストリームに関連してデジタル購入オプションをセットアップすることを可能にする。例えば、ホストデバイス108は、パブリック合成ライブビデオストリームを資金調達活動(例えば、チップおよび/または寄付を受け入れる)または宣伝ビデオストリーム(例えば、広告収入を受け取る)として指定することができる。追加的に、または代替として、ホストデバイス108は、視聴者デバイスが仮想または物理的な商品および/またはスポンサーシップを購入することに対応するデジタル購入オプションを選択する。
【0269】
追加の実装形態では、デジタル購入オプションは、視聴者デバイス112がデジタルチケットを購入することに対応する。例えば、ライブビデオストリーミングシステム106は、ホストデバイス108が、パブリック合成ライブビデオストリーム(例えば、VIP digアクセス)の前、間、または後にデジタルルームへのアクセスを購入するためのフレームワークをセットアップすることを可能にする。別の例として、ライブビデオストリーミングシステム106は、視聴者デバイスがパブリック合成ライブビデオストリームを視聴するか、またはパブリック合成ライブビデオストリームに参加するためのデジタル購入をホストデバイス108が確立することを可能にする。いくつかの実装形態では、デジタルチケットは、パブリック合成ライブビデオストリームの限られた部分へのアクセスを提供する(例えば、設定された継続時間の間、または特定の参加者デバイスがパブリック合成ライブビデオストリームに参加している間の購入)。
【0270】
いくつかの実装形態では、デジタル購入はデジタルサポートバッジに対応することができる。例えば、ライブビデオストリーミングシステム106は、ホストデバイス108がデジタルサポートの1つまたは複数のレベルを選択することを可能にする。いくつかの例では、デジタルサポートバッジは、パブリック合成ライブビデオストリーム内の視聴者デバイスのアイデンティティおよび/または視聴者デバイスのコメントの隣に現れる。ライブビデオストリーミングシステム106は、ホストデバイス108が、パブリック合成ライブビデオストリーム中に様々なデジタルサポートバッジを視聴者デバイス112に提供することを可能にすることができ、これは、ライブビデオストリーミングシステム106からの異なる応答をトリガすることができる(例えば、パブリック合成ライブビデオストリーム中に視聴者デバイスに関連する特別なまたは目立つグラフィックまたは絵文字の表示、ホストからの感謝メッセージ、またはサポーターのリストへの包含)。
【0271】
示されるように、ライブストリームセットアップオプション1806は、デジタルオークション設定のためのオプションを含む。1つまたは複数の実装形態では、ライブビデオストリーミングシステム106は、パブリック合成ライブビデオストリーム中にデジタルオークションを行うためのパラメータを設定するために、デジタルオークション設定をホストデバイス108に提供する。例えば、ライブビデオストリーミングシステム106は、ホストデバイス108が、パブリック合成ライブビデオストリーム中に1つまたは複数のオークションを行うことを可能にし、ここで、視聴者デバイスは、パブリック合成ライブビデオストリームに参加するためにデジタル方式で入札する。いくつかの実装形態では、デジタルオークションは、デジタルルームへのアクセスに対応する。例えば、ライブビデオストリーミングシステム106は、パブリック合成ライブビデオストリーム中に上位5人の入札者に、ブロードキャスト後ルームへのアクセス(例えば、VIPアクセス)を提供する。
【0272】
1つまたは複数の実装形態では、ライブビデオストリーミングシステム106は、金銭に対応するデジタル入札を視聴者デバイスから受信することができる。いくつかの実装形態では、デジタル入札は他の因子に対応する。例えば、視聴者デバイスは、様々なアクションを実行することに基づいてファンポイントまたはフォロワーポイントを蓄積する。例えば、視聴者デバイスは、パブリック合成ライブビデオストリームを所定の長さの時間にわたって視聴すること、パブリック合成ライブビデオストリームにコメントすること、パブリック合成ライブビデオストリームを他者に共有すること、ホストデバイスの他のライブビデオストリームを視聴することなどによってポイントを取得する。次いで、視聴者デバイスは、それらのデジタルファンポイントを使用して入札を行う。様々な実装形態において、ライブビデオストリーミングシステム106は、金銭的デジタル入札およびファンポイント入札などの因子の組み合わせに基づいて、デジタルオークションの1人または複数の勝者を決定する。
【0273】
追加的に、ライブストリームセットアップオプション1806は、ホスト権限のためのオプションを含む。1つまたは複数の実装形態では、ホストデバイス108は、ホストデバイス108がパブリック合成ライブビデオストリームを早期に終了する場合に、別の参加者デバイスが共同ホストとして機能すること、または別の参加者デバイスに制御を渡すことを許可する入力をライブビデオストリーミングシステム106に提供することができる。いくつかの実装形態では、ホストデバイス108は、1つまたは複数の参加者デバイスに許可のサブセットを付与する。例えば、ホストデバイス108は、参加者デバイスが、他の参加者デバイスを追加および除去すること、デジタルルームのライブビデオストリームへのアクセスを有すること、および/または他のライブストリームセットアップオプション1806を修正することを可能にする。
【0274】
1つまたは複数の実装形態では、ライブビデオストリーミングシステム106は、ホストデバイス108が非参加者デバイスを承認することを可能にすることができる。例えば、ホストデバイス108は、パブリック合成ライブビデオストリームに参加していないデバイス(例えば、マネージャデバイス)に完全なまたは部分的な許可および権限を与える。このようにして、非参加者デバイスは、パブリック合成ライブビデオストリームの前、間、または後に、パブリック合成ライブビデオストリームのビデオ参加者になることなく(例えば、ライブビデオストリームをライブビデオストリーミングシステム106に提供することなく)、ホストデバイス108と同じ機能の一部または全部を実行することができる。
【0275】
さらに、示されるように、ライブストリームセットアップオプション1806は、デジタルルームアクセスのためのオプションを含む。1つまたは複数の実装形態では、ホストデバイス108は、パブリック合成ライブビデオストリームのためにどのデジタルルームを作成するか、どの参加者デバイスをどのデジタルルームに追加するか、参加者デバイスをデジタルルームに追加するための条件、デジタルルームに対する参加トリガ、参加者デバイスのグループがデジタルルームを共有するか別個のデジタルルーム内に配置されるか、および/またはデジタルルームへのアクセス権を指定することができる。実際、ライブビデオストリーミングシステム106は、ホストデバイス108(または別の承認されたデバイス)が、上記で開示したように、デジタルルームのための条件およびパラメータを指定することを可能にする。
【0276】
上述したように、デジタルルームアクセスのオプションは、デジタルルームの参加者トリガを設定することを含むことができる。1つまたは複数の実装形態では、ライブビデオストリーミングシステム106は、参加者デバイスを、デジタル準備ルームまたはデジタル待機ルームなどのデジタルルームから、パブリック合成ライブビデオストリームに移行させるための参加者トリガを適用する。いくつかの実装形態では、ライブビデオストリーミングシステム106は、参加者デバイスをパブリック合成ライブビデオストリームから参加後待機ルームに移行させるための参加者トリガを適用する。
【0277】
追加的に、ライブストリームセットアップオプション1806は、コメントのためのオプションを含む。いくつかの実装形態では、ライブビデオストリーミングシステム106は、ホストデバイス108が、コメントを有効化または無効化すること、コメントがパブリック合成ライブビデオストリーム内で表示される場所を特定すること、誰がコメントできるかまたはコンテンツにコメントできるかを制限すること、いくつかのデバイスからのコメントを優先すること、および/またはパブリック合成ライブビデオストリーム中にコメントがアニメーションまたはグラフィックスをトリガできるようにすることを可能にする。コメントのオプションは、追加または異なるオプションを含むことができる。
【0278】
さらに、ライブストリームセットアップオプション1806は、ホストデバイス108が、他のオプションの中でもとりわけ、どの参加者デバイスがパブリック合成ライブビデオストリームに参加するか、および参加者デバイスがパブリック合成ライブビデオストリームの内外にどのように移行するか(例えば、参加トリガが満たされたことに基づいて)を含む、パブリック合成ライブビデオストリームのフレームワークおよび/またはアジェンダを提供することを可能にすることができる。さらに、ライブストリームセットアップオプション1806は、パブリック合成ライブビデオストリームの長さ、参加者デバイスの最大数、視聴者デバイスの最大数、または視聴者制限に対応するオプションなど、ここで示されている追加のライブストリームセットアップオプションを含むことができる。
【0279】
上述したように、ライブストリーム設定要素312は、アクティビティ要素を含むことができる。ホストデバイス108は、パブリック合成ライブビデオストリームに関連付けられた1つまたは複数のアクティビティを選択することができる。例示のために、
図18Bは、ホストユーザインタフェース1802内で選択されたアクティビティ要素1810を示す。示されるように、ホストユーザインタフェース1802は、ライブビデオストリーミングシステム106がパブリック合成ライブビデオストリーム中に促進することができる例示的なアクティビティのアクティビティリスト1812とともにアクティビティ要素1810を示す。
【0280】
様々な実装形態では、アクティビティは、ホストデバイス108および/または他の参加者デバイスとともにパブリック合成ライブビデオストリームに参加するように視聴者デバイス112を招待することに対応する。実際に、上述したように、ライブビデオストリーミングシステム106は、視聴者デバイス112のアクティビティメトリックを分析することに基づいて、パブリック合成ライブビデオストリームに参加するターゲット視聴者デバイスを追加することができる。同様に、ライブビデオストリーミングシステム106は、パブリック合成ライブビデオストリームの参加者デバイスのアクティビティメトリックを分析することに基づいて、除去または置換すべき参加者デバイスを決定することができる。
【0281】
図示のように、アクティビティリスト1812は、ゲームを含む。多くの実装形態では、ゲームは、参加者デバイスおよび/または視聴者デバイス間のインタラクションを容易にするためのルールのセットに対応する。いくつかの例では、ゲームは、参加者デバイスがゲームを順番にプレイするターンベースである。他の例では、ゲームは、チームベースのゲームなど、複数の参加者デバイスが同時に参加することを可能にすることができる。様々な例において、ゲームは、視聴者デバイスがゲームに参加することを可能にする(例えば、コメントまたは他のデジタル入力要素を通じて回答を提供することによって)。ゲームは、ターンベースのゲーム、ロールプレイングゲーム、個人またはチームチャレンジなどを含むことができる。
【0282】
選択されたゲームのタイプに基づいて、ライブビデオストリーミングシステム106は、パブリック合成ライブビデオストリームに参加する視聴者デバイスを決定するための1つまたは複数のアクティビティメトリックを決定することができる。例えば、ゲーム関与メトリックまたは回答メトリックに基づいて、ライブビデオストリーミングシステム106は、パブリック合成ライブビデオストリームの参加者デバイスになるターゲット視聴者デバイスを決定する。追加的に、ライブビデオストリーミングシステム106は、ゲームの構造またはルールに従って、どの参加者デバイスをパブリック合成ライブビデオストリームから除去するか、および/または一時的に(例えば、再び順番になるまで、またはゲームが終わるまで)デジタルルームに入れるかを決定することができる。
【0283】
図示されるように、アクティビティリスト1812は、椅子取りゲームを含む。様々な実装形態では、椅子取りゲームのアクティビティは、規則的な間隔、ランダムな間隔、または半ランダムな間隔で視聴者デバイスを入れ替えることを含む。これらの実装形態では、ライブビデオストリーミングシステム106は、プレゼンスアクティビティメトリックを分析して、パブリック合成ライブビデオストリーム中にどの視聴者デバイスが現在存在しているかを決定することができる(例えば、関連する参加トリガは、パブリック合成ライブビデオストリームをアクティブに視聴することを含む)。例えば、プレゼンスアクティビティメトリックは、視聴者デバイスがパブリック合成ライブビデオストリームをアクティブに視聴していること、および/またはパブリック合成ライブビデオストリームに寄与していることを示す、視聴者デバイスから受信されたデータに基づく。このようにして、パブリック合成ライブビデオストリームに参加するターゲット視聴者デバイスを選択する場合、ターゲット視聴者デバイスは、ターゲット視聴者デバイスとして選択されると、参加可能かつ準備完了な状態になる。
【0284】
いくつかの実装形態では、椅子取りゲームのアクティビティは、ターゲット視聴者デバイスのパフォーマンスに基づいてターゲット視聴者デバイスを除去することを含む。例えば、ライブビデオストリーミングシステム106は、様々な視聴者デバイスを参加者としてパブリック合成ライブビデオストリームに追加し、次いで、それらがパブリック合成ライブビデオストリーム上に留まるために競争することを可能にする。いくつかの実装形態では、ライブビデオストリーミングシステム106は、他の視聴者デバイスが既存の参加者デバイスを置き換えるために競合することを可能にすることができる。代替的な実装形態では、ライブビデオストリーミングシステム106は、視聴者デバイス112の中からターゲット視聴者デバイスをランダムに選ぶこと、および/または別のタイプのアクティビティメトリックを利用してターゲット視聴者デバイスを選択することができる。
【0285】
示されるように、アクティビティリスト1812は、ポップコーンを含む。ポップコーンのアクティビティは、パブリック合成ライブビデオストリームに視聴者デバイスをランダムに入れ替えることを含むことができる。例えば、ライブビデオストリーミングシステム106は、ランダムな時間における視聴者デバイス112のアクティビティメトリックに基づいてターゲット視聴者デバイスを選択し、次いで、ターゲット視聴者デバイスをパブリック合成ライブビデオストリームに追加する。いくつかの例では、ライブビデオストリーミングシステム106は、ターゲット視聴者デバイスに、パブリック合成ライブビデオストリームへの参加を受け入れるかまたはパスするように促す。同様に、ポップコーンアクティビティの下で、ライブビデオストリーミングシステム106は、パブリック合成ライブビデオストリームから参加者としてのターゲット視聴者デバイスをランダムに除去または交換することができる。
【0286】
図示のように、アクティビティリスト1812は、スクランブルを含む。1つまたは複数の実装形態では、スクランブルアクティビティは、複数の参加者デバイスを同時に入れ替えることを含むことができる。例えば、ライブビデオストリーミングシステム106は、アクティビティメトリックに基づいて、複数の視聴者デバイスから、パブリック合成ライブビデオストリームに参加する複数のターゲット視聴者デバイスを決定し、それらのターゲット視聴者デバイスをパブリック合成ライブビデオストリームに追加する。ターゲット視聴者デバイスを追加する際に、ライブビデオストリーミングシステム106は、パブリック合成ライブビデオストリームから他の参加者デバイス(例えば、1つまたは複数の以前に特定されたターゲット視聴者デバイス)を除去することができる。ライブビデオストリーミングシステム106は、パブリック合成ライブビデオストリームに参加しているターゲット視聴者デバイスを、ターゲット視聴者デバイスの新しいセットで置き換え続けることができる。
【0287】
図示のように、アクティビティリスト1812は、投票を含む。様々な実装形態では、投票のアクティビティは、ホストデバイス108および/または参加者デバイスが視聴者デバイスを含めるために投票することを含むことができる。これらの実装形態では、ライブビデオストリーミングシステム106は、デジタル投票または投票メトリックを分析して、ターゲット視聴者デバイスを特定する。様々な実装形態では、視聴者デバイスは、ライブビデオストリーミングシステム106が、パブリック合成ライブビデオストリームに追加するターゲット視聴者デバイスを選択することを可能にするデジタル投票を提供する。いくつかの実装形態では、視聴者デバイスは、投票を勧誘する試みのために様々なアクションを実行することができる。投票アクティビティと同様に、いくつかの実装形態では、アクティビティリスト1812は、ポーリングを利用してターゲット視聴者デバイスを選択することができる。
【0288】
示されるように、アクティビティリスト1812は、質問および回答(「Q and A」として示される)を含む。1つまたは複数の実装形態では、質問および回答アクティビティは、視聴者デバイスが、パブリック合成ライブビデオストリーム中のホストデバイス108および/または他の参加者デバイスに質問を提供する、および/または質問を提供することを要求することを含むことができる。質問要求の検出に基づいて、ライブビデオストリーミングシステム106は、パブリック合成ライブビデオストリームに参加するターゲット視聴者デバイスを決定することができる(例えば、ターゲット視聴者デバイスがそれらの質問をすることを可能にする)。
【0289】
いくつかの実装形態では、質問および回答アクティビティは、ホストデバイス108および/または他の参加者デバイスが視聴者デバイスに質問すること、ライブビデオストリーミングシステム106が、回答を提供するために参加する様々な視聴者デバイスを選択することを含むことができる。例えば、ライブビデオストリーミングシステム106は、視聴者デバイスからの応答または回答メトリックを分析して、ターゲット視聴者デバイスを決定する。
【0290】
示されるように、アクティビティリスト1812は、トリビアを含む。いくつかの実装形態では、トリビアのアクティビティは、ライブビデオストリーミングシステム106が視聴者デバイスに質問を提供すること、ライブビデオストリーミングシステム106が参加メトリックを分析してターゲット視聴者デバイスを決定することを含むことができる。例えば、勝者の視聴者デバイスは、ターゲット視聴者デバイスとして選択される。別の例として、ライブビデオストリーミングシステム106は、視聴者デバイスがパブリック合成ライブビデオストリームの参加者として彼らの回答を提供することができるように、視聴者デバイスがトリビア質問に答えることを素早く要求することに基づいてターゲット視聴者デバイスを選択する。
【0291】
示されるように、アクティビティリスト1812は、他のアクティビティテンプレートを含む。実際、ライブビデオストリーミングシステム106は、パブリック合成ライブビデオストリームに対して追加のまたは異なるアクティビティを提供することができる。これらのアクティビティの各々について、ライブビデオストリーミングシステム106は、特定のアクティビティメトリックを監視および分析して、パブリック合成ライブビデオストリームに追加するターゲット視聴者デバイスを決定することができる。さらに、選択されたアクティビティに基づいて、ライブビデオストリーミングシステム106は、パブリック合成ライブビデオストリームからどのデバイスを除去するか、およびこれらのデバイスをいつ除去するか(例えば、デバイスを視聴者デバイスにするか、またはデバイスをデジタルルームに移行させるか)を決定することができる。
【0292】
上述したように、ライブビデオストリーミングシステム106は、視聴者デバイスのアクティビティメトリックを分析して、パブリック合成ライブビデオストリームに参加するターゲット視聴者デバイスを決定することができる。さらに説明するために、
図19は、1つまたは複数の実装形態による、パブリック合成ライブビデオストリームに参加するターゲット視聴者デバイスを特定するために視聴者デバイスのアクティビティメトリックを分析するブロック図を示す。示されるように、
図19は、サーバデバイス102上のライブビデオストリーミングシステム106と、第1の視聴者デバイス1912aと、第2の視聴者デバイス1912bとを含む。
図1に関連して上述したように、これらのコンピューティングデバイスは、ネットワークを介して通信することができる。さらに、
図19は、視聴者デバイスのアクティビティメトリックを分析することを説明したが、ライブビデオストリーミングシステム106は、参加者デバイスのアクティビティメトリックを分析するために同様の手法を適用することができる。
【0293】
図示されるように、第1の視聴者デバイス1912aおよび第2の視聴者デバイス1912bは、アクティビティメトリック1914を含む。示されるように、アクティビティメトリック1914は、アクティブプレゼンスメトリック1916、視聴時間メトリック1918、デジタル投票1920、デジタル購入1922、デジタル入札1924、適格性メトリック1926、ソーシャルメトリック1928、参加メトリック1930を含む。加えて、第1の視聴者デバイス1912aおよび第2の視聴者デバイス1912bは、履歴アクティビティメトリック1932を含む。アクティビティメトリックの各々は、以下でさらに説明される。
【0294】
また示されるように、ライブビデオストリーミングシステム106は、パブリック合成ライブビデオストリームブロードキャスタ1902と、ターゲット視聴者デバイス選択モデル1904と、参加トリガマネージャ1908とを含む。1つまたは複数の実装形態では、パブリック合成ライブビデオストリームブロードキャスタ1902は、前述したように、パブリック合成ライブビデオストリームを生成して視聴者デバイスに提供することができる。例えば、いくつかの実装形態では、パブリック合成ライブビデオストリームブロードキャスタ1902は、参加者デバイスからのライブビデオストリームを合成し、パブリック合成ライブビデオストリームを第1の視聴者デバイス1912aおよび第2の視聴者デバイス1912b、ならびに図示されていない他の視聴者デバイスに提供する。加えて、パブリック合成ライブビデオストリームブロードキャスタ1902は、上述したように、パブリック合成ライブビデオストリームを参加者デバイスに提供することができる。
【0295】
1つまたは複数の実装形態では、ターゲット視聴者デバイス選択モデル1904は、パブリック合成ライブビデオストリームを視聴している視聴者デバイスの中からターゲット視聴者デバイス1906を決定する。上述したように、ターゲット視聴者デバイス選択モデル1904は、視聴者デバイスのアクティビティメトリック1914を分析して、ターゲット視聴者デバイス1906を決定することができる。
【0296】
様々な実装形態では、ターゲット視聴者デバイス選択モデル1904は、参加トリガマネージャ1908と通信して、ターゲット視聴者デバイス1906を決定する場合にアクティビティメトリック1914のうちのどれを分析または優先すべきかを決定する。例えば、ライブビデオストリーミングシステム106が(
図18Bに関連して上述したように)パブリック合成ライブビデオストリームに対する特定のアクティビティの選択を検出することに基づいて、参加トリガマネージャ1908は、関連付けられた参加トリガを満たすためにアクティビティメトリック1914のうちのどれが必要とされるかを決定することができる。
【0297】
例示すると、1つまたは複数の実装形態では、ターゲット視聴者デバイス選択モデル1904は、アクティブプレゼンスメトリック1916を分析することに基づいてターゲット視聴者デバイス1906を特定することができる。多くの実装形態では、アクティブプレゼンスメトリック1916は、視聴者デバイスにおける現在のアクティビティに対応する。例えば、第1の視聴者デバイス1912aにおけるアクティブプレゼンスメトリック1916は、第1の視聴者デバイス1912aが、動きまたはユーザ入力を最近検出したかどうかを示すことができる。例えば、第1の視聴者デバイス1916が、パブリック合成ライブビデオストリームを表示するグラフィカルユーザインタフェース内のナビゲーション入力または音量の変化を検出した場合、第1の視聴者デバイス1912aは、ユーザが第1の視聴者デバイス1912aにおいてアクティブであるかどうかを示すアクティブプレゼンスメトリック1916の一部として、この情報をライブビデオストリーミングシステム106に提供することができる。同様に、アクティブプレゼンスメトリック1916は、パブリック合成ライブビデオストリームにおいて反応またはコメントを提供するなど、アクティブユーザのプレゼンスを示す他のタイプの情報を示すことができる。
【0298】
1つまたは複数の実装形態では、アクティブプレゼンスメトリック1916は、第1の視聴者デバイス1912aからの暗黙的または明示的なフィードバックに基づいて、パブリック合成ライブビデオストリームに参加するユーザが存在するとともに準備できていることを示すことができる。例えば、ライブビデオストリーミングシステム106は、パブリック合成ライブビデオストリームに参加する許可または受諾を第1の視聴者デバイス1912aに促し、それに応答して、第1の視聴者デバイス1912aは、アクティブプレゼンスメトリック1916としてエンコードされた肯定応答または否定応答を提供する。いくつかの実装形態では、(例えば、サーバデバイスまたは第1の視聴者デバイス1912aにおける)ライブビデオストリーミングシステム106は、顔検出ソフトウェアを利用して、ユーザが現在パブリック合成ライブビデオストリームを視聴していると判断する。
【0299】
複数の視聴者デバイスからアクティブプレゼンスメトリックを受信すると、ターゲット視聴者デバイス選択モデル1904は、アクティブプレゼンスメトリックを分析および比較することができる。例えば、ターゲット視聴者デバイス選択モデル1904は、各視聴者デバイスについて、ユーザがパブリック合成ライブビデオストリームを視聴しているスコアまたは確率を生成する。スコアまたは確率を使用して、ターゲット視聴者デバイス選択モデル1904は、1つまたは複数のターゲット視聴者デバイスを特定および/または選択する。例えば、ターゲット視聴者デバイス選択モデル1904は、視聴者デバイスのグループの中から閾値レベルを上回るスコアを有するターゲット視聴者デバイスを選択する。別の例として、ターゲット視聴者デバイス選択モデル1904は、最も高いスコアを有する視聴者デバイスをターゲット視聴者デバイス1906として選択する。
【0300】
1つまたは複数の実装形態では、ターゲット視聴者デバイス選択モデル1904は、視聴時間メトリック1918を分析することに基づいて(例えば、視聴時間メトリック1918が視聴長さ参加トリガまたは関心レベルトリガを満たす場合)、ターゲット視聴者デバイス1906を特定することができる。概して、視聴時間メトリック1918は、視聴者デバイスが、ホストデバイスを参加者として含むライブビデオストリームを視聴した時間の長さに対応することができる。例えば、いくつかの例では、視聴時間メトリック1918は、視聴者デバイスが現在のパブリック合成ライブビデオストリームを視聴している時間の長さに対応する。他の例では、視聴時間メトリック1918は、視聴者デバイスが、ホストデバイスを含むライブビデオストリームを視聴した累積時間長(例えば、前の週、月、年内の)に対応する。
【0301】
ターゲット視聴者デバイス選択モデル1904は、複数の視聴者デバイスにわたって視聴時間メトリックを分析して、ターゲット視聴者デバイス1906を特定することができる。例えば、ターゲット視聴者デバイス選択モデル1904は、第2の視聴者デバイス1912bの視聴時間メトリック1918が第1の視聴者デバイス1912aの視聴時間メトリック1918よりも大きい場合、第2の視聴者デバイス1912bをターゲット視聴者デバイス1906として選択する。別の例として、ターゲット視聴者デバイス選択モデル1904は、ターゲット視聴者デバイスを選択する前に、最小視聴時間閾値を満たさない視聴者デバイスをフィルタで除外する(例えば、パブリック合成ライブビデオストリームの20%または5分未満しか視聴していない視聴者デバイスは、ターゲット視聴者デバイス1906として選択される適格性がない)。
【0302】
様々な実装形態では、ターゲット視聴者デバイス選択モデル1904は、デジタル投票1920を分析することに基づいてターゲット視聴者デバイス1906を特定することができる。例えば、ターゲット視聴者デバイス選択モデル1904が、投票(例えば、ゲーム、椅子取りゲーム、世論調査、投票、質問および回答)を含む活動を検出した場合、ターゲット視聴者デバイス選択モデル1904は、視聴者デバイス112および/または参加者デバイスからデジタル投票を受信することができる。いくつかの実装形態では、ターゲット視聴者デバイス選択モデル1904は、デジタル投票を比較して、1つまたは複数の視聴者デバイスをターゲット視聴者デバイスの候補として除去するかどうかを決定することができる。様々な実装形態では、ターゲット視聴者デバイス選択モデル1904は、デジタル投票を比較して、投票数が最も多い視聴者デバイスをターゲット視聴者デバイス1906として特定することができる。
【0303】
1つまたは複数の実装形態では、ターゲット視聴者デバイス選択モデル1904は、デジタル購入1922を分析することに基づいてターゲット視聴者デバイス1906を特定することができる。デジタル購入1922は、仮想チケット、サポートバッジ、寄付、チップ、およびギフトを含むことができるが、これらに限定されない。例えば、いくつかの実装形態では、仮想チケットは、パブリック合成ライブビデオストリームに参加するための購入アクセスを含むことができる。実際、有名人または他の注目すべき人物をフィーチャーするパブリック合成ライブビデオストリームの場合、ライブビデオストリーミングシステム106は、有名人とともにパブリック合成ライブビデオストリームに参加するための仮想チケットを提供することができる。様々な実装形態では、仮想チケットは、パブリック合成ライブビデオストリームが終了した後のブロードキャスト後ルームなどのデジタルルームへの視聴アクセスを提供する。ライブビデオストリーミングシステム106は、ホストデバイスおよび/または参加者デバイスへの異なるレベルのアクセスを許可する異なる階層の仮想チケットを提供することができる。
【0304】
上述したように、デジタル購入は、サポートバッジを含むことができる。1つまたは複数の実装形態では、サポートバッジは、参加者デバイスおよび他の視聴者デバイスによって閲覧可能である、視聴者デバイスに関連するグラフィック、アニメーション、またはテキストを表示することに対応する。例えば、デジタルバッジは、視聴者デバイスの識別子に付けられる1回限りのまたは繰り返し使用されるインジケータに対応することができる。別の例として、デジタルバッジは、視聴者デバイスが、通常のコメントとは異なるように見えるコメントを残すこと、または非サポーターには利用できないリアクションを提供することを可能にすることができる。
【0305】
また上述したように、デジタル購入は、寄付またはチップを含むことができる。例えば、視聴者デバイスは、パブリック合成ライブビデオストリーム中にホストデバイスに寄付を提供することができ、および/またはチップを仮想通貨の形態で残すことができる。追加的に、視聴者デバイスは、ギフトとして別のユーザのためにデジタル購入を購入することができる。例えば、第1の視聴者デバイス1912aは、第2の視聴者デバイス1912bがパブリック合成ライブビデオストリームに参加することを可能にする仮想チケットを第2の視聴者デバイス1912bのためのギフトとして購入する。
【0306】
様々な実装形態では、ターゲット視聴者デバイス選択モデル1904は、デジタル購入1922に基づいてターゲット視聴者デバイスを特定することができる。例えば、ターゲット視聴者デバイス選択モデル1904は、視聴者デバイスに関連付けられた寄付、チップ、購入されたデジタルチケット、および/またはサポートバッジを検出することに基づいて、視聴者デバイスをターゲット視聴者デバイス1906として選択する。いくつかの実装形態では、ターゲット視聴者デバイス選択モデル1904は、デジタル購入1922に関連付けられた視聴者デバイス112に追加の重み付けを与える。
【0307】
いくつかの実装形態では、ターゲット視聴者デバイス選択モデル1904は、デジタル入札1924を分析することに基づいてターゲット視聴者デバイス1906を特定することができる。上述したように、ホストデバイス(または非参加者デバイスを含む別の参加者デバイス)は、パブリック合成ライブビデオストリーム内にデジタルオークションを含めることができる。例えば、パブリック合成ライブビデオストリームは、視聴者デバイス112がパブリック合成ライブビデオストリームの参加者になるために互いに競り合うデジタルオークションを含む。いくつかの実装形態では、視聴者デバイスは、デジタル入札を提供する。それに応答して、ターゲット視聴者デバイス選択モデル1904は、デジタル入札を分析および比較して、ターゲット視聴者デバイス1906を特定する。いくつかの実装形態では、パブリック合成ライブビデオストリームに参加するための複数のスロットが利用可能である場合、ターゲット視聴者デバイス選択モデル1904は、最高n個の入札を受け入れることができ、ここで、nは、利用可能なスロットの数に対応する。
【0308】
いくつかの実装形態では、ターゲット視聴者デバイス選択モデル1904は、適格性メトリック1926を分析することに基づいて、ターゲット視聴者デバイス1906を特定することができる。上述したように、ライブビデオストリーミングシステム106は、ホストデバイスが、パブリック合成ライブビデオストリームに参加するための適格性要件(例えば、認証済みアカウント、最小デバイスストリーミング品質、それらのライブビデオストリームを利用するために付与された権限など)を設定することを可能にすることができる。したがって、ターゲット視聴者デバイス選択モデル1904は、適格性要件を満たす視聴者デバイスの中からターゲット視聴者デバイス1906を選択することができる。
【0309】
追加的に、いくつかの実装形態では、ターゲット視聴者デバイス選択モデル1904は、ソーシャルメトリック1928を分析することに基づいてターゲット視聴者デバイス1906を特定することができる。例えば、ターゲット視聴者デバイス選択モデル1904は、ホストデバイスと視聴者デバイスの各々との間のソーシャルアフィニティ(social affinity)を判定する。例えば、ターゲット視聴者デバイス選択モデル1904は、ホストデバイスへのいくつかのソーシャルホップ内にある視聴者デバイスのサブセット(例えば、すべてよりも少ない)の中からターゲット視聴者デバイス1906を選択する。
【0310】
別の例として、ターゲット視聴者デバイス選択モデル1904は、各視聴者デバイスのソーシャルなつながり(social connectedness)を分析することができる。ソーシャルなつながりのアクティビティメトリックは、つながりの数、投稿の数、シェアの数、メンションの数、および/または視聴者デバイスの影響レベルを含むことができる。いくつかの実装形態では、ターゲット視聴者デバイス選択モデル1904は、視聴者デバイスが閾値ソーシャル影響力レベルを満たすことに基づいて、視聴者デバイスをターゲット視聴者デバイス1906として特定し得る。
【0311】
1つまたは複数の実装形態では、ターゲット視聴者デバイス選択モデル1904は、参加メトリック1930を分析することに基づいて、ターゲット視聴者デバイス1906を特定することができる。参加メトリックは、視聴者デバイスにおいて検出される参加アクティビティの範囲を含むことができる。実際、参加メトリック1930は、パブリック合成ライブビデオストリームを視聴すること、反応を投稿すること、コメントすること、ゲームまたは投票に参加すること、質問を尋ねることまたは回答すること、投票することなどに対応する参加メトリックなど、より粒度の細かいレベルの参加に分類され得る。
【0312】
様々な実装形態では、ターゲット視聴者デバイス選択モデル1904は、参加メトリック1930を利用してターゲット視聴者デバイスを特定する。例えば、ホストデバイスが特定のアクティビティを選択することに基づいて、ターゲット視聴者デバイス選択モデル1904は、監視および分析する1つまたは複数の対応する参加メトリック1930を特定する。例えば、ターゲット視聴者デバイス選択モデル1904は、複数の視聴者デバイスにわたって参加メトリック1930の特定のセットを比較して、選択されたアクティビティに関連付けられた参加トリガを最も良く満足するターゲット視聴者デバイスを選択する。
【0313】
いくつかの実装形態では、ターゲット視聴者デバイス選択モデル1904は、履歴アクティビティメトリック1932を分析することに基づいて、ターゲット視聴者デバイス1906を特定することができる。履歴アクティビティメトリック1932の例は、以前の視聴時間メトリック、以前の参加メトリック、および以前のデジタル購入を含むが、これらに限定されない。実際、ターゲット視聴者デバイス選択モデル1904は、視聴者デバイスから観測された以前のアクティビティメトリックに部分的に基づいて、ターゲット視聴者デバイス1906を決定することができる。このようにして、パブリック合成ライブビデオストリームを視聴し続け、および/またはホストデバイスとインタラクションし続ける視聴者デバイスは、ターゲット視聴者デバイス1906として特定される可能性を高めることができる。
【0314】
さらに、様々な実装形態では、ターゲット視聴者デバイス選択モデル1904は、アクティビティメトリック1914および/または参加トリガの組み合わせに基づいて、ターゲット視聴者デバイス1906を特定することができる。例えば、参加トリガマネージャ1908は、ターゲット視聴者デバイス1906として選択され得る前に視聴者デバイスによって満足されるべき参加トリガの数を示す。それに応答して、ターゲット視聴者デバイス選択モデル1904は、第1の視聴者デバイス1912aの視聴時間メトリック1918が長さの参加トリガを満たすこと、第1の視聴者デバイス1912aのアクティブプレゼンスメトリック1916がアクティブ視聴参加トリガを満たすこと、および第1の視聴者デバイス1912aの参加メトリック(例えば、応答メトリック)が応答参加トリガを満たすことを特定する。したがって、第1の視聴者デバイス1912aのアクティビティメトリックが参加トリガの各々を満たすと判定することに基づいて、ターゲット視聴者デバイス選択モデル1904は、第1の視聴者デバイス1912aをターゲット視聴者デバイス1906として選択する。
【0315】
いくつかの実装形態では、ターゲット視聴者デバイス選択モデル1904は、ユーザ入力に基づいてターゲット視聴者デバイス1906を選択する。例えば、ホストデバイスまたは別の参加者デバイスは、視聴者デバイスをターゲット視聴者デバイス1906として特定する(例えば、彼らは、最も奇抜な衣装などの主観的基準に基づいてターゲット視聴者デバイス1906を選択する)。いくつかの実装形態では、ターゲット視聴者デバイス選択モデル1904は、ホストデバイスにプレゼンスリスト(例えば、アクティビティを視聴している、または貢献している視聴者デバイスのリスト)を提供し、ホストデバイスがプレゼンスリストからターゲット視聴者デバイスを選択することを可能にする。多くの実装形態では、プレゼンスリストは、上記で説明した順序またはランク付けされた視聴者デバイスに一致するか、またはそれに類似し得る。
【0316】
図1~
図13Cおよび
図16~
図19に加えて、対応するテキスト、および例は、1つまたは複数の実装形態によるライブビデオストリーミングシステム106のいくつかの異なるシステム、方法、技法、構成要素、および/またはデバイスを提供する。本明細書の説明に加えて、1つまたは複数の実装形態は、特定の結果を達成するための動作を含むフローチャートに関して説明することもできる。例えば、
図20は、様々な実装形態による例示的な一連の動作2000のフローチャートを示す。加えて、
図20は、より多くのまたはより少ない動作で実行されてもよい。さらに、動作は、異なる順序で実行されてもよい。加えて、本明細書で説明される動作は、互いに並行して、または同じもしくは類似の動作の異なるインスタンスと並行して、繰り返されるか、または実行され得る。
【0317】
図20は、特定の実装形態による一連の動作2000を示すが、代替的な実装形態は、示された動作のいずれかを省略、追加、順序変更、および/または修正することができる。一連の動作2000は、方法の一部として実行することができる。代替的に、非一時的コンピュータ可読媒体は、1つまたは複数のプロセッサによって実行されると、コンピューティングデバイス(例えば、サーバデバイスおよび/またはクライアントデバイス)に一連の動作2000を実行させる命令を備えることができる。さらなる実装形態では、システムは、一連の動作2000を実行する。
【0318】
例示のために、
図20は、1つまたは複数の実装形態による、合成ライブビデオストリーム(例えば、パブリック合成ライブビデオストリーム)に参加するターゲット視聴者デバイスを特定する一連の動作2000のフローチャートを示す。示されるように、一連の動作2000は、参加者デバイスから受信されたライブビデオストリームを合成して合成ライブビデオストリームにする動作2010を含む。例えば、動作2010は、複数の参加者デバイスから受信された複数のライブビデオストリームを合成して合成ライブビデオストリーム(例えば、パブリック合成ライブビデオストリーム)にすることを含むことができる。様々な実装形態では、動作2010は、参加者デバイスからライブビデオストリームを受信するサーバデバイスにおいて実行される。
【0319】
示されるように、一連の動作2000は、合成ライブビデオストリームを視聴者デバイスにブロードキャストする動作2020を含む。例えば、動作2020は、サーバデバイスによって、合成ライブビデオストリーム(例えば、パブリック合成ライブビデオストリーム)を複数の視聴者デバイスにブロードキャストすることを含むことができる。1つまたは複数の実装形態では、動作2020は、合成ライブビデオストリームをブロードキャストする前に、複数の参加者デバイスのうちの第1のデバイスに参加トリガを示すブロードキャスト参加要素を含むユーザインタフェースを提供すること、参加者デバイスを合成ライブビデオストリームに追加するための1つまたは複数の参加トリガの選択を第1のデバイスから受信することを含む。
【0320】
示されるように、一連の動作2000は、視聴者デバイスに関連付けられたアクティビティメトリックを識別する動作2030を含む。例えば、動作2030は、複数の視聴者デバイスに関連付けられた1つまたは複数のアクティビティメトリックを識別することを含むことができる。1つまたは複数の実装形態では、動作2030は、サーバデバイスにおいて1つまたは複数のアクティビティメトリックを受信することを含む。いくつかの実装形態では、アクティビティメトリックは、合成ライブビデオストリームに関連付けられた1つまたは複数の参加トリガに基づいている。
【0321】
示されるように、一連の動作2000は、合成ライブビデオストリームに参加するターゲット視聴者デバイスを特定する動作2040を含む。例えば、動作2040は、1つまたは複数のアクティビティメトリックを分析することに基づいて、複数の視聴者デバイスのうち、合成ライブビデオストリームに参加するターゲット視聴者デバイスを特定することを含むことができる。例示的な実装形態では、動作2040は、1つまたは複数の参加トリガのうちのある参加トリガを満たすターゲット視聴者デバイスからのアクティビティメトリックを識別することに基づいて、参加トリガに従って合成ライブビデオストリームに参加するターゲット視聴者デバイスを特定することを含む。
【0322】
1つまたは複数の実装形態では、動作2040は、複数の視聴者デバイスから、合成ライブビデオストリームに参加する1つまたは複数の視聴者デバイスを選択するデジタル投票を受信すること、デジタル投票を比較して、合成ライブビデオストリームに参加するターゲット視聴者デバイスを特定することを含む。いくつかの実装形態では、動作2040は、複数の視聴者デバイスから複数のデジタル入札を受信すること、複数の視聴者デバイスからの複数のデジタル入札を比較して、合成ライブビデオストリームに参加するターゲット視聴者デバイスを特定することを含む。様々な実装形態では、動作2040は、ターゲット視聴者デバイスからのアクティブプレゼンスメトリックを分析して、ターゲット視聴者デバイスが合成ライブビデオストリームをアクティブに視聴していると判定すること、アクティブプレゼンスメトリックを利用してターゲット視聴者デバイスを特定することを含む。
【0323】
いくつかの実装形態では、動作2040は、ターゲット視聴者デバイスに対応するデジタル購入を特定すること、デジタル購入に基づいて、合成ライブビデオストリームに参加するターゲット視聴者デバイスを選択することを含む。1つまたは複数の実装形態では、動作2040は、複数の視聴者デバイスの視聴時間メトリックを判定すること、複数の視聴者デバイスの視聴時間メトリックを比較して、合成ライブビデオストリームに参加するターゲット視聴者デバイスを特定することを含む。
【0324】
示されるように、一連の動作2000は、ターゲット視聴者デバイスを合成ライブビデオストリーム(例えば、パブリック合成ライブビデオストリーム)に追加する動作2050を含む。例えば、動作2050は、ターゲット視聴者デバイスから受信されたライブビデオストリームを、サーバデバイスにおいて複数の視聴者デバイスにブロードキャストされている合成ライブビデオストリームに追加することを含むことができる。
【0325】
1つまたは複数の実装形態では、動作2050は、ライブビデオストリームのタイムスタンプを比較する動作と、タイムスタンプを比較することに基づいて、ターゲット視聴者デバイスのライブビデオストリームと複数の参加者デバイスからの複数のライブビデオストリームとの同期された組み合わせを生成する動作と、ターゲット視聴者デバイスのライブビデオストリームと複数の参加者デバイスからの複数のライブビデオストリームのうちの1つまたは複数のライブビデオストリームとの視覚的配置を決定する動作と、視覚的配置に従ってターゲット視聴者デバイスのライブビデオストリームと複数の参加者デバイスからの複数のライブビデオストリームとの同期された組み合わせを並べることによって、合成ライブビデオストリームを生成する動作と、視覚的配置に従って表示された合成ライブビデオストリームを複数の視聴者デバイスにブロードキャストする動作とを含む。
【0326】
様々な実装形態では、動作2050は、サーバデバイスにおいて合成ライブビデオストリーム内の参加者デバイスを切り替えることも含む。例えば、動作2050は、1つまたは複数の参加トリガのうちの少なくとも1つの参加トリガに従って、ターゲット視聴者デバイスのライブビデオストリームを合成ライブビデオストリームから除去するとともに追加のターゲット視聴者デバイスのライブビデオストリームを合成ライブビデオストリームに追加することによって、参加者デバイスを切り替えることを含む。
【0327】
一連の動作2000は、様々な追加の動作を含むことができる。例えば、1つまたは複数の実装形態では、一連の動作2000は、さらに、複数の参加者デバイスに関連付けられた第1のデバイスから受信されたユーザ入力に基づいて追加のターゲット視聴者デバイスを特定する動作と、第1のデバイスから提供された受信されたユーザ入力に基づいて、追加のターゲット視聴者デバイスのライブビデオストリームを合成ライブビデオストリームに追加する動作とを含む。いくつかの実装形態では、一連の動作2000は、サーバデバイスにおいて、ターゲット視聴者デバイスからのライブビデオストリームを、複数の視聴者デバイスにブロードキャストされている合成ライブビデオストリームから除去する動作も含む。
【0328】
前述したように、パブリック合成ライブビデオストリームが中断または切断される可能性がある。
図21は、1つまたは複数の実装形態による、切断されたパブリック合成ライブビデオストリームを再開する一連の動作2100のシーケンス図である。一連の動作2100は、ライブビデオストリーミングシステム106が参加者デバイス110(ホストデバイスを含むことができる)および視聴者デバイス112と通信することを含む。さらに、一連の動作2100は、ホストデバイスを参照して説明されるが、別の参加者デバイスおよび/または非参加者デバイスが同様の機能を実行してもよい。
【0329】
追加のコンテキストとして、ホストデバイス108がパブリック合成ライブビデオストリームへの接続を失う場合、パブリック合成ライブビデオストリームは早期に(prematurely)終了される。実際、視聴者デバイス112は、ホストデバイスがストリームを終了したかのように、パブリック合成ライブビデオストリームから切り離される。しかしながら、
図21の一連の動作2100に関連して説明されるように、ライブビデオストリーミングシステム106は、ホストデバイスが切断された場合にパブリック合成ライブビデオストリームが突然終了することを防止する様々な解決策を提供する。
【0330】
例示のために、一連の動作2100は、ライブビデオストリーミングシステム106がパブリック合成ライブビデオストリームを視聴者デバイス112にブロードキャストする動作2102を含む。前述したように、パブリック合成ライブビデオストリームを視聴者デバイス112にブロードキャストする。例えば、ライブビデオストリーミングシステム106は、サーバデバイス102において配置されるように、保留中の参加者デバイス110のライブビデオストリームを合成する単一のライブビデオストリームを提供する。
【0331】
加えて、一連の動作2100は、ライブビデオストリーミングシステム106がホストデバイスとの接続喪失を検出する動作2104を含む。例えば、1つまたは複数の実装形態では、ライブビデオストリーミングシステム106は、パブリック合成ライブビデオストリームを終了させる要求をホストデバイスから受信することなく、ライブビデオストリーミングシステム106にライブビデオストリームを提供することをホストデバイスが停止したと判定する(例えば、上述したように、ライブビデオストリーミングシステム106は、ホストデバイスにおいてブロードキャスト終了要素の選択を検出しなかった)。別の例として、ライブビデオストリーミングシステム106は、パブリック合成ライブビデオストリームを終了するために適切な通信プロトコルに従わなかったと判定する。
【0332】
いくつかの実装形態では、ライブビデオストリーミングシステム106が、ホストデバイス108がパブリック合成ライブビデオストリームから切断されたと判定する前に、ライブビデオストリーミングシステム106は、接続レイテンシまたはドロップされたデータパケットを考慮するために所定の時間待機する。追加の実装形態では、ライブビデオストリーミングシステム106は、データパケットをホストデバイス108に送信することができる。応答に基づいて、ライブビデオストリーミングシステム106は、ホストデバイス108がライブビデオストリーミングシステム106に依然として接続されているかどうかを判定することができる。
【0333】
示されるように、一連の動作2100は、ライブビデオストリーミングシステム106がライブビデオストリームを開始するための要求をホストデバイスから受信する動作2106を含む。例えば、ホストデバイスは、ライブビデオストリーミングシステム106に関連付けられたネットワーキングシステムアプリケーションを介して、他の参加者デバイスとのライブビデオストリームまたはパブリック合成ライブビデオストリームを開始することを再び要求する。実際、ホストデバイスがクラッシュした場合、ホストデバイスは、新しいライブビデオストリームを開始するプロセスを繰り返すことになる。したがって、ライブビデオストリーミングシステム106は、動作2106によって示されるように、ホストデバイスにおいてこれらのアクションを検出する。
【0334】
加えて、一連の動作2100は、ライブビデオストリーミングシステム106が、要求がストリーミング連続性閾値を満たすことを判定する動作2108を含む。例えば、1つまたは複数の実装形態では、ライブビデオストリーミングシステム106は、新しいライブビデオストリームを開始する要求が、切断されている時間の閾値(例えば、10秒、15秒、30秒、1分など)内にあることに基づいて、ストリーミング連続性閾値が満たされていると判定する。
【0335】
いくつかの実装形態では、ライブビデオストリーミングシステム106は、ホストデバイスからのセッション情報および/またはクライアントデバイス情報を利用して、要求がストリーミング連続性閾値を満たすと判定する。例えば、ライブビデオストリーミングシステム106は、ホストデバイスからの要求を同じホストデバイスによって行われた最後の要求と照合して、新しい要求が切断されたパブリック合成ライブビデオストリームに対応していることを判定する。
【0336】
示されるように、一連の動作2100は、ライブビデオストリーミングシステム106が、ホストデバイスに、前のパブリック合成ライブビデオストリームを再開するように促す動作2110を含む。例えば、新しい要求がストリーミング連続性閾値を満たすと判定すると、ライブビデオストリーミングシステム106は、ホストデバイスに、前のパブリック合成ライブビデオストリームを再開するか、または新しいパブリック合成ライブビデオストリームを開始するかのプロンプトを表示させる。例えば、ホストデバイスは、ホストユーザインタフェース内に、「あなたのライブストリームが切断されたようです」および「あなたのライブストリームを再開しますか?」というメッセージを表示する。
【0337】
さらに示されるように、一連の動作2100は、ライブビデオストリーミングシステム106が、前のパブリック合成ライブビデオストリームを再開するために確認をホストデバイスから受信する動作2112を含む。例えば、ライブビデオストリーミングシステム106は、ホストデバイスが前のパブリック合成ライブビデオストリームを再開するオプションを選択することを検出する。代替的な実装形態では、ライブビデオストリーミングシステム106は、ホストデバイスがパブリック合成ライブビデオストリームを再開するオプションを辞退することを判定する。
【0338】
示されるように、一連の動作2100は、ライブビデオストリーミングシステム106がパブリック合成ライブビデオストリームを視聴者デバイス112にブロードキャストし続ける動作2114を含む。例えば、切断されたパブリック合成ライブビデオストリームを再開するホストデバイスからの要求を検出することに基づいて、ライブビデオストリーミングシステム106は、ホストデバイスおよび参加者デバイスからパブリック合成ライブビデオストリームを生成することによってブロードキャストを再開し、それを視聴者デバイス112に提供することができる。
【0339】
いくつかの実装形態では、ライブビデオストリーミングシステム106は、視聴者デバイス112がいかなる中断も認識することなく、動作2114を実行することができる。例えば、ライブビデオストリーミングシステム106が、バッファリングされたバージョンを視聴者デバイス112に提供する場合、ライブビデオストリーミングシステム106は、バッファリングされたコンテンツが尽きるかまたは消える前に、パブリック合成ライブビデオストリームを再開することが可能であり得る。
【0340】
例示するために、いくつかの事例では、ライブビデオストリームは、15~20秒だけ遅延されたパブリック合成ライブビデオストリームのバッファリングされたバージョンを提供する。ここで、ホストデバイスが10秒以内に新しいライブビデオストリームを要求することができるとともに、ライブビデオストリーミングシステム106が、上記で説明したように、要求がストリーミング連続性閾値を満たすと迅速に判断することができる場合、ライブビデオストリーミングシステム106は、バッファリングされたコンテンツが尽きる前に、再開されたパブリック合成ライブビデオストリームをビデオバッファに提供することができる。さらなる実装形態では、ライブビデオストリーミングシステム106は、次いで、パブリック合成ライブビデオストリームをわずかに減速させるか、または次の数秒もしくは数分にわたって目立たない休止を加えることにより、ビデオバッファを15~20秒に戻してゆっくりと構築し始める。
【0341】
様々な実装形態では、ライブビデオストリーミングシステム106は、ホストデバイスがパブリック合成ライブビデオストリームから突然切断されたことを検出した後、短い持続時間の間、視聴者デバイス112を保持しておくことができる。例えば、ライブビデオストリーミングシステム106は、アニメーションを再生するか、さもなければ、ホストが一時的に切断されているように見えることを示す。いくつかの実装形態では、ライブビデオストリーミングシステム106は、ライブビデオストリームをホストデバイスから一時的に除去し、別の参加者デバイスのライブビデオストリームを示す(および/またはホストデバイスが戻るまで他の参加者デバイスに制御を渡す)。様々な実装形態では、ライブビデオストリーミングシステム106は、上記で説明したように、視聴者デバイス112がホストデバイスの欠落に気付くことができる前にホストを再接続することができる。
【0342】
上述したように、ライブビデオストリーミングシステム106は、新たなライブビデオストリームに対する要求が1つまたは複数のストリーミング連続性閾値を満たすかどうかを判定する。いくつかの実装形態では、ライブビデオストリーミングシステム106は、切断の検出と、新しいパブリック合成ライブビデオストリームを開始する要求との間に経過した時間に基づいて、異なるストリーミング連続性閾値を利用することができる。例えば、新たな要求が上述の時間閾値(例えば、ビデオバッファに蓄積されたコンテンツの量にほぼ等しい)内にある場合、ライブビデオストリーミングシステム106は、中断なしにパブリック合成ライブビデオストリームブロードキャスト(例えば、動作2114)を継続することができる。
【0343】
一方、新たな要求が上述の時間閾値を超える場合、ライブビデオストリーミングシステム106は、上述したように、別のストリーミング連続性閾値を利用して、中断されたパブリック合成ライブビデオストリームと新たに要求されたライブビデオストリームとの間の接続を確認することができる。さらに、ライブビデオストリーミングシステム106は、切断されたパブリック合成ライブビデオストリームが終了したところで再開する(例えば、同じ設定を利用し、最後の既知のタイムスタンプから継続する)新しいパブリック合成ライブビデオストリームを生成することができる。
【0344】
ライブビデオストリーミングシステム106が視聴者デバイス112を一時的に保持しない実装形態では、ライブビデオストリーミングシステム106は、最初に視聴者デバイス112を解散するが、それらの識別情報を(例えば、パブリック合成ライブビデオストリームに関連付けられたデータを記録するログまたはテーブルにおいて)追跡することができる。次いで、ライブビデオストリーミングシステム106は、ホストデバイスがパブリック合成ライブビデオストリームを再開する場合に、視聴者デバイス112に通知を提供することができる。例えば、ライブビデオストリーミングシステム106は、パブリック合成ライブビデオストリームが再開したことを示す電子メッセージ(例えば、テキスト、電子メール、プッシュ通知など)を視聴者デバイス112に送信する。ライブビデオストリーミングシステム106は、2つのリンクされたパブリック合成ライブビデオストリームにわたって、ホストデバイス、参加者デバイス110、および視聴者デバイス112の設定およびプリファレンスを引き継ぐことができる。
【0345】
いくつかの実装形態では、ライブビデオストリーミングシステム106は、ホストデバイスが再開のプロンプトを確認することを必要とせずに、パブリック合成ライブビデオストリームを自動的に再開させる。実際、ライブビデオストリーミングシステム106が、ホストデバイスが切断されたときを自動的に検出することができるのと同様に、ライブビデオストリーミングシステム106は、(例えば、ホストデバイスがライブビデオストリーミングシステム106との接続を再確立することに基づいて)ホストデバイスが再接続しようとしていることを検出するとともに、パブリック合成ライブビデオストリームを自動的に再開することができる。
【0346】
様々な実装形態では、ライブビデオストリーミングシステム106は、後で再生されるようにパブリック合成ライブビデオストリームを保存した。これらの実装形態では、パブリック合成ライブビデオストリームが中断されて再開する場合、ライブビデオストリーミングシステム106は、後で再生されるときに2つのパブリック合成ライブビデオストリームを単一のパブリック合成ライブビデオストリームとして一緒につなぎ合わせることができる。
【0347】
次に
図22を参照すると、1つまたは複数の実装形態によるライブビデオストリーミングシステム106の構成要素および機能に関する追加の詳細が提供される。示されるように、ライブビデオストリーミングシステム106は、コンピューティングデバイス2200によって実装される。いくつかの実装形態では、コンピューティングデバイス2200は、サーバデバイス102の一例である。他の実装形態では、コンピューティングデバイス2200は、サーバデバイス102、ホストデバイス、参加者デバイス、および/または視聴者デバイスなど、ライブビデオストリーミングシステム106を実装することができる複数のコンピューティングデバイスを表す。
【0348】
図22に関連して示されるように、コンピューティングデバイス2200は、ライブビデオストリーミングシステム106を有するネットワーキングシステム104を含み、その両方は、
図1に関連して上記で紹介されている。また示されるように、ライブビデオストリーミングシステム106は、合成ライブビデオストリーム2204を有するライブビデオストリームマネージャ2202と、デジタルルーム2208を有するデジタルルームマネージャ2206と、ライブビデオストリームブロードキャスタ1902と、ターゲット視聴者デバイス選択モデル1904および参加トリガマネージャ1908を有するアクティビティメトリックマネージャ2210と、ユーザインタフェースマネージャ2212と、ストレージマネージャ2214とを含む。ストレージマネージャ2214は、参加トリガ2216およびアクティビティメトリック2218を含むことができる。これらの構成要素の各々に関するさらなる詳細が、順に提供される。
【0349】
示されるように、ライブビデオストリーミングシステム106は、ライブビデオストリームマネージャ2202を含む。ライブビデオストリームマネージャ2202は、合成ライブビデオストリーム2204(パブリック合成ライブビデオストリームだけでなく、非パブリック合成ライブビデオストリームも含む)を識別し、生成し、監視し、修正し、および/または管理することができる。例えば、ライブビデオストリームマネージャ2202は、上述したように、複数の参加者デバイスからライブビデオストリームを受信し、合成ライブビデオストリーム2204を生成することができる。実際、ライブビデオストリームマネージャ2202は、ライブビデオストリームを同期させ、次いで、先に開示したように、1つまたは複数の動的配置に並べることができる。
【0350】
示されるように、ライブビデオストリーミングシステム106は、デジタルルームマネージャ2206を含む。デジタルルームマネージャ2206は、デジタルルーム2208を識別し、生成し、監視し、修正し、および/または管理することができる。上述したように、デジタルルーム2208は、デジタル準備ルーム、デジタル待機ルーム、デジタル参加後ルーム、およびブロードキャスト後ルームを含むことができる。様々な実施態様において、デジタルルームマネージャ2206は、デジタルルーム2208をセットアップし、参加者デバイスをデジタルルームに出入りさせることを容易にする。さらに、いくつかの実装形態では、デジタルルームマネージャ2206は、ユーザインタフェースマネージャ2212と通信して、上記で説明したように、ルーム内の参加者デバイスおよび/または合成ライブビデオストリーム内の参加者デバイス(例えば、ホストデバイス)にルーム固有インタフェースを提供する。
【0351】
示されるように、ライブビデオストリーミングシステム106は、ライブビデオストリームブロードキャスタ1902を含む。ライブビデオストリームブロードキャスタ1902は、参加者デバイスおよび/または視聴者デバイス112に対して、合成ライブビデオストリームを容易にし、共有し、および/または配信することができる。例えば、いくつかの実施態様では、ライブビデオストリームブロードキャスタ1902は、ライブビデオストリームマネージャ2202と通信して、上述したように、第1のプロトコルを介して第1の構成で編成された視聴者デバイスに合成ライブビデオストリーム2204(例えば、パブリック合成ライブビデオストリーム)を提供し、第2のより高速なプロトコルを介して第2の構成で編成された参加者デバイスに合成ライブビデオストリーム2204を提供する。
【0352】
示されるように、ライブビデオストリーミングシステム106は、アクティビティメトリックマネージャ2210を含む。概して、アクティビティメトリックマネージャ2210は、アクティビティメトリック2218を受信し、監視し、分析し、検出し、追跡し、検査し、識別し、生成し、修正し、および/または他の方法で管理することができる。例えば、アクティビティメトリックマネージャ2210は、合成ライブビデオストリーム(例えば、パブリック合成ライブビデオストリーム)を視聴している視聴者デバイスからアクティビティメトリック2218を受信する。上記で説明したように、アクティビティメトリックマネージャ2210は、視聴者デバイスから受信された1つまたは複数のアクティビティメトリック2218を分析して、合成ライブビデオストリームに参加するターゲット視聴者デバイスを決定することができる。
【0353】
より詳細には、アクティビティメトリックマネージャ2210は、
図19に関連して上述したターゲット視聴者デバイス選択モデル1904と、参加トリガマネージャ1908とを含む。例えば、ターゲット視聴者デバイス選択モデル1904は、合成ライブビデオストリームに関連付けられた参加トリガ2216を満たすアクティビティメトリック2218を分析することによってターゲット視聴者デバイスを決定する。さらに、上述のように、参加トリガマネージャ1908は、先に開示したように、合成ライブビデオストリームのフレームワークに対応する合成ライブビデオストリームに関連付けられた1つまたは複数の参加トリガ2216をターゲット視聴者デバイス選択モデル1904に提供することができる。
【0354】
示されるように、ライブビデオストリームは、ユーザインタフェースマネージャ2212を含む。様々な実装形態では、ユーザインタフェースマネージャ2212は、ライブビデオストリーミングシステム106および/またはネットワーキングシステム104に関連付けられたユーザインタフェースを生成し、作成し、更新し、変更し、置換し、削除し、除去し、リフレッシュし、レンダリングし、公開し、表示し、提示し、および/またはクライアントデバイス(例えば、ホストデバイス、参加者デバイス、または視聴者デバイス)に提供することができる。概して、クライアントデバイス上のネットワーキングシステムアプリケーションは、ユーザインタフェースを生成および提供することによって、ユーザインタフェースマネージャ2212によって提供されるユーザインタフェースを実装する。ユーザインタフェースの例は、デジタル準備ルームインタフェース、更新されたライブブロードキャストインタフェース、デジタル待機ルームユーザインタフェース、デジタル参加後ルームインタフェース、ブロードキャスト後ルームユーザインタフェース、ホストユーザインタフェース、参加者デバイスユーザインタフェース、視聴者デバイスユーザインタフェース、およびライブビデオストリーミングシステム106/ネットワーキングシステム104に関連付けられた他のインタフェースを含む。
【0355】
示されるように、ライブビデオストリームは、ストレージマネージャ2214を含む。ストレージマネージャ2214は、コンピューティングデバイス2200および/またはクライアントデバイスにおいてライブビデオストリーミングシステム106のためのデータを保持する。ストレージマネージャ2214は、ライブビデオストリーミングシステム106の機能を実行するために必要に応じて、任意のタイプ、サイズ、または種類のデータを保持することができる。例えば、図示のように、ストレージマネージャ2214は、参加トリガ2216およびアクティビティメトリック2218を含むデータを保持する。いくつかの実装形態では、ストレージマネージャ2214は、ライブビデオストリームの録画も含む。
【0356】
図19に示されるライブビデオストリームの構成要素は、ソフトウェア、ハードウェア、またはその両方を含むことができる。例えば、構成要素は、コンピュータ可読記憶媒体上に格納され、クライアントデバイスまたはサーバデバイスなどの1つまたは複数のコンピューティングデバイスのプロセッサによって実行可能な1つまたは複数の命令を含む。1つまたは複数のプロセッサによって実行されると、サーバデバイス102、ホストデバイス108、参加者デバイス110、または視聴者デバイス112のコンピュータ実行可能命令は、コンピューティングデバイス(複数可)に、本明細書で説明する特徴学習方法を実行させることができる。代替的に、構成要素は、特定の機能または機能のグループを実行するための専用処理デバイスなどのハードウェアを含むことができる。代替的に、構成要素は、コンピュータ実行可能命令およびハードウェアの組み合わせを含むことができる。
【0357】
さらに、
図19に示されるライブビデオストリームの構成要素は、例えば、1つまたは複数のオペレーティングシステムとして、1つまたは複数のスタンドアロンアプリケーションとして、アプリケーションの1つまたは複数のモジュールとして、1つまたは複数のプラグインとして、1つまたは複数のライブラリ関数または他のアプリケーションによって呼び出される関数として、および/またはクラウドコンピューティングモデルとして実装される。したがって、構成要素は、デスクトップアプリケーションまたはモバイルアプリケーションなどのスタンドアロンアプリケーションとして実装され得る。さらに、構成要素は、リモートサーバ上でホストされる1つまたは複数のウェブベースのアプリケーションとして実装され得る。構成要素は、一連のモバイルデバイスアプリケーションまたは「アプリ」に実装され得る。
【0358】
本開示の実装形態は、以下でより詳細に説明するように、例えば、1つまたは複数のプロセッサおよびシステムメモリなどのコンピュータハードウェアを含む専用または汎用コンピュータを備えるかまたは利用することができる。本開示の範囲内の実装形態は、コンピュータ実行可能命令および/またはデータ構造を搬送または格納するための物理的および他のコンピュータ可読媒体も含む。特に、本明細書で説明されるプロセスのうちの1つまたは複数は、非一時的コンピュータ可読媒体において具現化されるとともに、1つまたは複数のコンピューティングデバイス(例えば、本明細書で説明されるメディアコンテンツアクセスデバイスのうちのいずれか)によって実行可能な命令として少なくとも部分的に実装されてよい。概して、プロセッサ(例えば、マイクロプロセッサ)は、非一時的コンピュータ可読媒体(例えば、メモリなど)から命令を受信するとともに、それらの命令を実行し、それによって、本明細書で説明するプロセスのうちの1つまたは複数を含む1つまたは複数のプロセスを実行する。
【0359】
コンピュータ可読媒体は、汎用コンピュータシステムまたは専用コンピュータシステムによってアクセスされ得る任意の利用可能な媒体であり得る。コンピュータ実行可能命令を格納するコンピュータ可読媒体は、非一時的コンピュータ可読記憶媒体(デバイス)である。コンピュータ実行可能命令を搬送するコンピュータ可読媒体は、伝送媒体である。したがって、限定ではなく例として、本開示の実装形態は、非一時的コンピュータ可読記憶媒体(デバイス)および伝送媒体という少なくとも2つの明確に異なる種類のコンピュータ可読媒体を備えることができる。
【0360】
非一時的コンピュータ可読記憶媒体(デバイス)は、RAM、ROM、EEPROM、CD-ROM、ソリッドステートドライブ(「SSD」)(例えば、RAMに基づく)、フラッシュメモリ、相変化メモリ(「PCM」)、他のタイプのメモリ、他の光ディスクストレージ、磁気ディスクストレージもしくは他の磁気ストレージデバイス、またはコンピュータ実行可能命令もしくはデータ構造の形態で所望のプログラムコード手段を格納するために使用することができ、汎用もしくは専用コンピュータによってアクセスすることができる任意の他の媒体を含む。
【0361】
「ネットワーク」は、コンピュータシステムおよび/またはモジュールおよび/または他の電子デバイス間の電子データの移送を可能にする1つまたは複数のデータリンクとして定義される。ネットワークまたは別の通信接続(有線、無線、または有線もしくは無線の組み合わせのいずれか)を介してコンピュータに情報が転送または提供される場合、コンピュータは、その接続を伝送媒体と適切に捉える。伝送媒体は、コンピュータ実行可能命令またはデータ構造の形態で所望のプログラムコード手段を搬送するために使用することができるとともに、汎用または専用コンピュータによってアクセスすることができるネットワークおよび/またはデータリンクを含むことができる。上記の組み合わせも、コンピュータ可読媒体の範囲内に含まれるべきである。
【0362】
さらに、様々なコンピュータシステム構成要素に到達すると、コンピュータ実行可能命令またはデータ構造の形態のプログラムコード手段は、伝送媒体から非一時的コンピュータ可読記憶媒体(デバイス)に(またはその逆に)自動的に転送され得る。例えば、ネットワークまたはデータリンクを介して受信されたコンピュータ実行可能命令またはデータ構造は、ネットワークインタフェースモジュール(例えば、「NIC」)内のRAMにバッファリングされ、次いで、最終的に、コンピュータシステムにおけるコンピュータシステムRAMおよび/または揮発性の低いコンピュータ記憶媒体(デバイス)に転送され得る。したがって、非一時的コンピュータ可読記憶媒体(デバイス)は、伝送媒体も利用する(または主に利用する)コンピュータシステム構成要素に含まれ得ることを理解されたい。
【0363】
コンピュータ実行可能命令は、例えば、プロセッサで実行されると、汎用コンピュータ、専用コンピュータ、または専用処理デバイスに特定の機能または機能群を実行させる命令およびデータを含む。いくつかの実装形態では、コンピュータ実行可能命令は、汎用コンピュータを本開示の要素を実装する専用コンピュータに変えるために、汎用コンピュータ上で実行される。コンピュータ実行可能命令は、例えば、バイナリ、アセンブリ言語などの中間フォーマット命令、またはソースコードであってもよい。主題は、構造的特徴および/または方法論的動作に特有の言語で説明されてきたが、添付の特許請求の範囲において定義される主題は、説明された特徴または上述の動作に必ずしも限定されないことを理解されたい。むしろ、説明された特徴および動作は、特許請求の範囲を実装する例示的な形態として開示される。
【0364】
当業者は、本開示が、パーソナルコンピュータ、デスクトップコンピュータ、ラップトップコンピュータ、メッセージプロセッサ、ハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサベースまたはプログラム可能な家庭用電化製品、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、携帯電話、PDA、タブレット、ページャ、ルータ、スイッチなどを含む、多くのタイプのコンピュータシステム構成を有するネットワークコンピューティング環境で実施され得ることを理解するであろう。本開示は、ネットワークを介して(有線データリンク、無線データリンク、または有線および無線データリンクの組み合わせのいずれかによって)リンクされているローカルおよびリモートコンピュータシステムがともにタスクを実行する分散システム環境においても実施され得る。分散システム環境では、プログラムモジュールは、ローカルメモリストレージデバイスとリモートメモリストレージデバイスとの両方に配置することができる。
【0365】
本開示の実装形態は、クラウドコンピューティング環境で実装することもできる。この説明では、「クラウドコンピューティング」は、構成可能なコンピューティングリソースの共有プールへのオンデマンドネットワークアクセスを可能にするためのモデルとして定義される。例えば、クラウドコンピューティングは、構成可能なコンピューティングリソースの共有プールへのユビキタスかつ便利なオンデマンドアクセスを提供するために、市場で使用され得る。構成可能なコンピューティングリソースの共有プールは、仮想化を介して迅速にプロビジョニングされ、低い管理労力またはサービスプロバイダインタラクションでリリースされ、次いで、それに応じてスケーリングされ得る。
【0366】
クラウドコンピューティングモデルは、例えば、オンデマンドセルフサービス、幅広いネットワークアクセス、リソースプーリング、迅速な弾力性、測定されたサービスなどの種々の特徴で構成され得る。クラウドコンピューティングモデルは、例えば、Software as a Service(「SaaS」)、Platform as a Service(「PaaS」)、およびInfrastructure as a Service(「IaaS」)などの様々なサービスモデルも公開することができる。クラウドコンピューティングモデルは、プライベートクラウド、コミュニティクラウド、パブリッククラウド、ハイブリッドクラウドなどの異なる展開モデルを使用して展開することもできる。この説明および特許請求の範囲において、「クラウドコンピューティング環境」は、クラウドコンピューティングが採用される環境である。
【0367】
図23は、上記で説明したプロセスのうちの1つまたは複数を実行するように構成することができる例示的なコンピューティングデバイス2300のブロック図である。コンピューティングデバイス2300などの1つまたは複数のコンピューティングデバイスが、ライブビデオストリーミングシステム106を実装し得ることが理解されよう。
図23によって示されるように、コンピューティングデバイス2300は、プロセッサ2302、メモリ2304、ストレージデバイス2306、I/Oインタフェース2308、および通信インタフェース2310を備えることができ、これらは、通信インフラストラクチャ2312によって通信可能に結合され得る。例示的なコンピューティングデバイス2300が
図23に示されているが、
図23に示される構成要素は、限定することを意図していない。他の実装形態では、追加または代替的な構成要素を使用することができる。さらに、いくつかの実装形態では、コンピューティングデバイス2300は、
図23に示す構成要素よりも少ない構成要素を含むことができる。次に、
図23に示すコンピューティングデバイス2300の構成要素についてさらに詳細に説明する。
【0368】
1つまたは複数の実装形態では、プロセッサ2302は、コンピュータプログラムを構成する命令などの命令を実行するためのハードウェアを含む。例えば、命令を実行するために、プロセッサ2302は、内部レジスタ、内部キャッシュ、メモリ2304、またはストレージデバイス2306から命令を取り出し(またはフェッチし)、それらをデコードして実行することができる。1つまたは複数の実装形態では、プロセッサ2302は、データ、命令、またはアドレスのための1つまたは複数の内部キャッシュを含み得る。例えば、プロセッサ2302は、1つまたは複数の命令キャッシュ、1つまたは複数のデータキャッシュ、および1つまたは複数のトランスレーションルックアサイドバッファ(TLB)を含んでもよい。命令キャッシュ内の命令は、メモリ2304またはストレージデバイス2306内の命令のコピーであってもよい。
【0369】
メモリ2304は、データ、メタデータ、および(1つまたは複数の)プロセッサによる実行のためのプログラムを格納するために使用され得る。メモリ2304は、ランダムアクセスメモリ(「RAM」)、読み取り専用メモリ(「ROM」)、ソリッドステートディスク(「SSD」)、フラッシュ、相変化メモリ(「PCM」)、または他のタイプのデータストレージなどの揮発性メモリおよび不揮発性メモリのうちの1つまたは複数を含み得る。メモリ2304は、内部メモリであっても分散メモリであってもよい。
【0370】
ストレージデバイス2306は、データまたは命令を格納するためのストレージを含む。例えば、ストレージデバイス2306は、上述の非一時的記憶媒体を含むことができる。ストレージデバイス2306は、ハードディスクドライブ(HDD)、フロッピー(登録商標)ディスクドライブ、フラッシュメモリ、光ディスク、光磁気ディスク、磁気テープ、ユニバーサルシリアルバス(USB)ドライブ、またはこれらのうちの2つ以上の組み合わせを含み得る。ストレージデバイス2306は、適切な場合、リムーバブルまたは非リムーバブル(または固定)媒体を含むことができる。ストレージデバイス2306は、コンピューティングデバイス2300の内部または外部にあってもよい。1つまたは複数の実装形態では、ストレージデバイス2306は、不揮発性ソリッドステートメモリである。他の実装形態では、ストレージデバイス2306は、読み取り専用メモリ(ROM)を含む。適切な場合、このROMは、マスクプログラムROM、プログラマブルROM(PROM)、消去可能PROM(EPROM)、電気的消去可能PROM(EEPROM)、電気的変更可能ROM(EAROM)、フラッシュメモリ、またはこれらの2つ以上の組合せであってよい。
【0371】
I/Oインタフェース2308は、ユーザが、コンピューティングデバイス2300に入力を提供し、コンピューティングデバイス2300から出力を受信し、他の方法でコンピューティングデバイス2300にデータを転送し、コンピューティングデバイス2300からデータを受信することを可能にする。I/Oインタフェース2308は、マウス、キーパッドもしくはキーボード、タッチスクリーン、カメラ、光学スキャナ、ネットワークインタフェース、モデム、別の既知のI/Oデバイス、またはそのようなI/Oインタフェースの組み合わせを含んでいてよい。I/Oインタフェース2308は、グラフィックスエンジン、ディスプレイ(例えば、表示画面)、1つまたは複数の出力ドライバ(例えば、ディスプレイドライバ)、1つまたは複数のオーディオスピーカー、および1つまたは複数のオーディオドライバを含むが、これらに限定されない、ユーザに出力を提示するための1つまたは複数のデバイスを含み得る。いくつかの実装形態では、I/Oインタフェース2308は、グラフィカルデータをユーザに提示するためにディスプレイに提供するように構成される。グラフィカルデータは、1つまたは複数のグラフィカルユーザインタフェースおよび/または特定の実装に役立ち得る任意の他のグラフィカルコンテンツを表してもよい。
【0372】
通信インタフェース2310は、ハードウェア、ソフトウェア、またはその両方を含むことができる。いずれにしても、通信インタフェース2310は、コンピューティングデバイス2300と1つまたは複数の他のコンピューティングデバイスまたはネットワークとの間の通信(例えば、パケットベースの通信)のための1つまたは複数のインタフェースを提供することができる。例えば、通信インタフェース2310は、イーサネット(登録商標)もしくは他の有線ベースのネットワークと通信するためのネットワークインタフェースコントローラ(NIC)もしくはネットワークアダプタ、またはWI-FIなどの無線ネットワークと通信するための無線NIC(WNIC)もしくは無線アダプタを含み得る。
【0373】
追加的または代替的に、通信インタフェース2310は、アドホックネットワーク、パーソナルエリアネットワーク(PAN)、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、メトロポリタンエリアネットワーク(MAN)、インターネットの1つまたは複数の部分、またはこれらのうちの2つ以上の組み合わせとの通信を容易にすることができる。これらのネットワークのうちの1つまたは複数のうちの1つまたは複数の部分は、有線または無線であってよい。一例として、通信インタフェース2310は、無線PAN(WPAN)(例えば、Bluetooth(登録商標)WPAN)、WI-FIネットワーク、WI-MAXネットワーク、携帯電話ネットワーク(例えば、GSM(登録商標)(Global System for Mobile Communications)ネットワーク)、他の適切な無線ネットワーク、またはそれらの組み合わせとの通信を容易にし得る。
【0374】
追加的に、通信インタフェース2310は、様々な通信プロトコルにわたる通信を容易にすることができる。使用され得る通信プロトコルの例は、データ伝送媒体、通信デバイス、伝送制御プロトコル(「TCP」)、インターネットプロトコル(「IP」)、ファイル転送プロトコル(「FTP」)、テルネット、ハイパーテキスト転送プロトコル(「HTTP」)、ハイパーテキスト転送プロトコルセキュア(「HTTPS」)、セッション開始プロトコル(「SIP」)、簡易オブジェクトアクセスプロトコル(「SOAP」)、拡張マークアップ言語(「XML」)およびそれらの変形、簡易メール転送プロトコル(「SMTP」)、リアルタイムトランスポートプロトコル(「RTP」)、ユーザデータグラムプロトコル(「UDP」)、モバイル通信用グローバルシステム(「GSM」)技術、符号分割多元接続(「CDMA」)技術、時分割多元接続(「TDMA」)技術、ショートメッセージサービス(「SMS」)、マルチメディアメッセージサービス(「MMS」)、無線周波数(「RF」)シグナリング技術、ロングタームエボリューション(「LTE」)技術、無線通信技術、帯域内および帯域外シグナリング技術、ならびに他の適切な通信ネットワークおよび技術を含むが、それらに限定されない。
【0375】
通信インフラストラクチャ2312は、コンピューティングデバイス2300の構成要素を互いに接続するハードウェア、ソフトウェア、またはその両方を含むことができる。例えば、通信インフラストラクチャ2312は、加速グラフィックスポート(Accelerated Graphics Port,AGP)または他のグラフィックスバス、EISA(Enhanced Industry Standard Architecture)バス、フロントサイドバス(front-side bus,FSB)、ハイパートランスポート(HYPERTRANSPORT,HT)インターコネクト、ISA(Industry Standard Architecture)バス、インフィニバンド(INFINIBAND)インターコネクト、LPC(low-pin-count)バス、メモリバス、マイクロチャネルアーキテクチャ(Micro Channel Architecture,MCA)バス、周辺機器相互接続(Peripheral Component Interconnect,PCI)バス、PCI-エクスプレス(PCI-Express,PCIe)バス、SATA(serial advanced technology attachment)バス、VLB(Video Electronics Standards Association local)バス、もしくは他の適切なバス、またはそれらの組合せを含んでいてよい。
【0376】
上述のように、ライブビデオストリーミングシステム106は、ネットワーキングシステム104内で動作することができ、これは、様々な実装形態ではソーシャルネットワーキングシステムとすることができる。上で与えられた説明に加えて、ソーシャルネットワーキングシステムは、そのユーザ(人または組織など)がシステムと、および互いにインタラクションすることを可能にし得る。ソーシャルネットワーキングシステムは、ユーザからの入力を用いて、ユーザに関連付けられたユーザプロファイルを作成し、ソーシャルネットワーキングシステムに格納することができる。ユーザプロファイルは、デモグラフィック情報、通信チャネル情報、およびユーザの個人的関心に関する情報を含んでもよい。ソーシャルネットワーキングシステムは、ユーザからの入力を用いて、ソーシャルネットワーキングシステムの他のユーザとのユーザの関係の記録を作成および格納し、ならびにサービス(例えば、ウォールポスト、写真共有、オンラインカレンダおよびイベント編成、メッセージング、ゲーム、または広告)を提供して、ユーザ間のソーシャルインタラクションを容易にすることができる。
【0377】
また、ソーシャルネットワーキングシステムは、ユーザが写真および他のマルチメディアコンテンツアイテムをユーザのプロフィールページ(通常、「ウォールポスト」または「タイムラインポスト」として知られている)に、またはフォトアルバムに投稿することを可能にすることができ、その両方が、ユーザの構成されたプライバシー設定に応じてソーシャルネットワーキングシステムの他のユーザからアクセス可能であり得る。
【0378】
図24は、ネットワーキングシステムの例示的なネットワーク環境2400を示す。ネットワーク環境2400は、ネットワーク2404によって互いに接続されたネットワーキングシステム104、クライアントデバイス2406、およびサードパーティシステム2408を含む。
図24は、ネットワーキングシステム104、クライアントデバイス2406、サードパーティシステム2408、およびネットワーク2404の特定の構成を示すが、本開示は、デバイス、システム、およびネットワークの任意の適切な構成を企図する。例えば、クライアントデバイス2406およびネットワーキングシステム104は、全体的にまたは部分的に互いに、物理的または論理的に同じ場所に配置され得る。さらに、
図24は、単一のクライアントデバイス2406、ネットワーキングシステム104、サードパーティシステム2408、およびネットワーク2404を示すが、本開示は、任意の適切な数のデバイス、システム、およびネットワークを企図する。いくつかの実装形態では、
図24のネットワーキングシステム104は、
図1に関連して上記で紹介したネットワーキングシステム104を表す。
【0379】
本開示は、任意の適切なネットワークを企図する。例えば、ネットワーク2404の1つまたは複数の部分は、アドホックネットワーク、イントラネット、エクストラネット、仮想プライベートネットワーク(VPN)、ローカルエリアネットワーク(LAN)、無線LAN(WLAN)、ワイドエリアネットワーク(WAN)、無線WAN(WWAN)、メトロポリタンエリアネットワーク(MAN)、インターネットの一部、公衆交換電話網(PSTN)の一部、セルラー電話ネットワーク、またはこれらのうちの2つ以上の組み合わせを含み得る。ネットワーク2404は、1つまたは複数のネットワークを含み得る。
【0380】
リンクは、ネットワーキングシステム104、クライアントデバイス2406、およびサードパーティシステム2408をネットワーク2404に接続し、または互いに接続することができる。特定の実装形態では、1つまたは複数のリンクは、1つまたは複数の有線リンク(例えば、デジタル加入者線(DSL)またはDOCSIS(Data Over Cable Service Interface Specification))、無線リンク(例えば、Wi-Fi(登録商標)またはWiMAX(Worldwide Interoperability for Microwave Access))、または光リンク(例えば、同期光ネットワーク(SONET)または同期デジタル階層(SDH))を含む。特定の実装形態では、1つまたは複数のリンクは各々、アドホックネットワーク、イントラネット、エクストラネット、VPN、LAN、WLAN、WAN、WWAN、MAN、インターネットの一部、PSTNの一部、セルラー技術ベースのネットワーク、衛星通信技術ベースのネットワーク、別のリンク、または2つ以上のそのようなリンクの組み合わせを含む。リンクは、ネットワーク環境2400全体にわたって必ずしも同じである必要はない。1つまたは複数の第1のリンクは、1つまたは複数の第2のリンクと1つまたは複数の点で異なっていてよい。
【0381】
特定の実装形態では、クライアントデバイス2406は、ハードウェア、ソフトウェア、もしくは埋め込みロジック構成要素、または2つ以上のそのような構成要素の組み合わせを含むとともに、クライアントデバイス2406によって実装またはサポートされる適切な機能を実行することが可能な電子デバイスであってよい。例えば、クライアントデバイス2406は、
図23に関連して上述したコンピューティングデバイスのうちの任意のものを含むことができる。クライアントデバイス2406は、ネットワークユーザがネットワーク2404にアクセスすることを可能にし得る。クライアントデバイス2406は、そのユーザが、他のクライアントデバイスに関連付けられた他のユーザと通信することを可能にし得る。
【0382】
特定の実装形態では、クライアントデバイス2406は、MICROSOFT INTERNET EXPLORER、GOOGLE CHROME、MOZILLA FIREFOX、APPLEサファリなどのウェブブラウザを含んでもよく、1つまたは複数のアドオン、プラグイン、または他の拡張(例えば、ツールバー)を有してもよい。クライアントデバイス2406におけるユーザは、ウェブブラウザを特定のサーバ(サーバ、またはサードパーティシステム2408に関連付けられたサーバなど)に向けるユニフォームリソースロケータ(URL)または他のアドレスを入力することができ、ウェブブラウザは、ハイパーテキスト転送プロトコル(HTTP)要求を生成し、HTTP要求をサーバに通信することができる。サーバは、HTTP要求を受け入れ、HTTP要求に応答してクライアントデバイス2406に1つまたは複数のハイパーテキストマークアップ言語(HTML)ファイルを通信することができる。
【0383】
クライアントデバイス2406は、ユーザに提示するために、サーバからのHTMLファイルに基づいてウェブページをレンダリングすることができる。例えば、ウェブページは、特定のニーズに従って、HTMLファイル、拡張可能ハイパーテキストマークアップ言語(XHTML)ファイル、または拡張可能マークアップ言語(XML)ファイルからレンダリングすることができる。そのようなページは、JAVASCRIPT(登録商標)、JAVA(登録商標)、MICROSOFT SILVERLIGHTで書かれたものなどのスクリプト、AJAX(非同期JAVASCRIPTおよびXML)などのマークアップ言語とスクリプトとの組み合わせなどを実行することもできる。本明細書では、ウェブページへの言及は、1つまたは複数の対応するウェブページファイル(ブラウザがウェブページをレンダリングするために使用することができる)を包含し、適切な場合、逆も同様である。
【0384】
特定の実装形態では、ネットワーキングシステム104は、ユーザのオンラインネットワークをホストすることができるネットワークアドレス指定可能コンピューティングシステム(例えば、ソーシャルネットワーキングシステムまたは電子メッセージングシステム)であり得る。図示された形態などのいくつかの実装形態では、ネットワーキングシステム104は、ライブビデオストリーミングシステム106を実装する。
【0385】
ネットワーキングシステム104は、ユーザプロファイルデータ、コンセプトプロファイルデータ、グラフ情報(例えば、ソーシャルグラフ情報)、またはユーザのオンラインネットワークに関係する他の適切なデータなどのネットワーキングデータを生成し、格納し、受信し、および送信することができる。ネットワーキングシステム104は、ネットワーク環境2400の他の構成要素によって、直接またはネットワーク2404を介してアクセスされ得る。特定の実装形態では、ネットワーキングシステム104は、1つまたは複数のサーバを含み得る。各サーバは、単一のサーバであってもよいし、複数のコンピュータまたは複数のデータセンタにまたがる分散サーバであってもよい。サーバは、ウェブサーバ、ニュースサーバ、メールサーバ、メッセージサーバ、広告サーバ、ファイルサーバ、アプリケーションサーバ、交換サーバ、データベースサーバ、プロキシサーバ、本明細書で説明される機能もしくはプロセスを実行するのに適した別のサーバ、またはそれらの任意の組み合わせなど、様々なタイプのものであり得る。
【0386】
1つまたは複数の実装形態では、各サーバは、サーバによって実装またはサポートされる適切な機能を実行するためのハードウェア、ソフトウェア、埋め込みロジック構成要素、または2つ以上のそのような構成要素の組み合わせを含み得る。特定の実装形態では、ネットワーキングシステム104は、1つまたは複数のデータストアを含み得る。データストアは、様々なタイプの情報を格納するために使用され得る。特定の実装形態では、データストアに格納された情報は、特定のデータ構造に従って編成され得る。特定の実装形態では、各データストアは、リレーショナルデータベース、カラム型データベース、相関データベース、または別の適切なデータベースであり得る。本開示は、特定のタイプのデータベースを説明または示しているが、本開示は、任意の適切なタイプのデータベースを企図する。特定の実装形態は、ネットワーキングシステム104、クライアントデバイス2406、またはサードパーティシステム2408が、データストアに格納された情報を管理し、取り出し、修正し、追加し、または削除することを可能にするインタフェースを提供し得る。
【0387】
特定の実装形態では、ネットワーキングシステム104は、1つまたは複数のソーシャルグラフを1つまたは複数のデータストアに格納することができる。特定の実装形態では、ソーシャルグラフは、(各々が特定のユーザに対応する)複数のユーザノードまたは(各々が特定のコンセプトに対応する)複数のコンセプトノードを含み得る複数のノードと、ノードをつなぐ複数のエッジとを含み得る。ネットワーキングシステム104は、ユーザのオンラインネットワークのユーザに、他のユーザと通信およびインタラクションする能力を提供することができる。特定の実装形態では、ユーザは、ネットワーキングシステム104を介してユーザのオンラインネットワークに参加し、次いで、つながることを望むネットワーキングシステム104の複数の他のユーザにつながり(例えば、関係)を追加することができる。本明細書では、「友人」という用語は、ユーザがネットワーキングシステム104を介してコネクション、関連付け、または関係を形成したネットワーキングシステム104の任意の他のユーザを指すことができる。
【0388】
特定の実装形態では、ネットワーキングシステム104は、ユーザに、ネットワーキングシステム104によってサポートされる様々なタイプのアイテムまたはオブジェクトに対してアクションをとる能力を提供し得る。例えば、アイテムおよびオブジェクトは、ネットワーキングシステム104のユーザが属し得るグループもしくはソーシャルネットワーク、ユーザが関心を持ち得るイベントもしくはカレンダーエントリ、ユーザが使用し得るコンピュータベースのアプリケーション、ユーザがサービスを介してアイテムを購入もしくは販売することを可能にするトランザクション、ユーザが実行し得る広告とのインタラクション、または他の適切なアイテムもしくはオブジェクトを含み得る。ユーザは、ネットワーキングシステム104において、またはネットワーキングシステム104とは別個でありネットワーク2404を介してネットワーキングシステム104に結合されたサードパーティシステム2408の外部システムによって表されることが可能な任意のものとインタラクションすることができる。
【0389】
特定の実装形態では、ネットワーキングシステム104は、様々なエンティティをリンクすることが可能であり得る。例えば、ネットワーキングシステム104は、ユーザが互いにインタラクションすること、ならびにサードパーティシステム2408もしくは他のエンティティからコンテンツを受信することを可能にし得るか、またはユーザがアプリケーションプログラミングインタフェース(API)もしくは他の通信チャネルを通してこれらのエンティティとインタラクションすることを可能にし得る。
【0390】
特定の実装形態では、サードパーティシステム2408は、1つまたは複数のタイプのサーバ、1つまたは複数のデータストア、限定されるものではないが、APIを含む1つまたは複数のインタフェース、1つまたは複数のウェブサービス、1つまたは複数のコンテンツソース、1つまたは複数のネットワーク、または例えばサーバが通信することができる任意の他の適切な構成要素を含むことができる。サードパーティシステム2408は、ネットワーキングシステム104を運用するエンティティとは異なるエンティティによって運用され得る。しかしながら、特定の実装形態では、ネットワーキングシステム104およびサードパーティシステム2408は、ネットワーキングシステム104またはサードパーティシステム2408のユーザにソーシャルネットワーキングサービスを提供するために、互いに連携して動作し得る。この意味で、ネットワーキングシステム104は、サードパーティシステム2408などの他のシステムがインターネットを介してソーシャルネットワーキングサービスおよび機能をユーザに提供するために使用することができるプラットフォームまたはバックボーンを提供することができる。
【0391】
特定の実装形態では、サードパーティシステム2408は、サードパーティコンテンツオブジェクトプロバイダを含み得る。サードパーティコンテンツオブジェクトプロバイダは、クライアントデバイス2406に通信され得るコンテンツオブジェクトの1つまたは複数のソースを含み得る。例えば、コンテンツオブジェクトは、映画の上映時間、映画のレビュー、レストランのレビュー、レストランのメニュー、製品情報およびレビュー、または他の適切な情報などの、ユーザにとって関心のある事柄またはアクティビティに関する情報を含んでいてよい。限定ではなく別の例として、コンテンツオブジェクトは、クーポン、割引チケット、商品券、または他の適切なインセンティブオブジェクトなどのインセンティブコンテンツオブジェクトを含んでいてよい。
【0392】
特定の実装形態では、ネットワーキングシステム104は、ネットワーキングシステム104とのユーザのインタラクションを強化することができるユーザ生成コンテンツオブジェクトも含む。ユーザ生成コンテンツは、ユーザがネットワーキングシステム104に追加し、アップロードし、送信し、または「投稿」することができる任意のものを含み得る。例えば、ユーザは、クライアントデバイス2406からネットワーキングシステム104に投稿を通信する。投稿は、ステータス更新または他のテキストデータ、ロケーション情報、写真、ビデオ、リンク、音楽、または他の同様のデータもしくはメディアなどのデータを含み得る。コンテンツは、ニュースフィードまたはストリームなどの「通信チャネル」を通じてサードパーティによってネットワーキングシステム104に追加されてもよい。
【0393】
特定の実装形態では、ネットワーキングシステム104は、様々なサーバ、サブシステム、プログラム、モジュール、ログ、およびデータストアを含み得る。特定の実装形態では、ネットワーキングシステム104は、ウェブサーバ、アクションロガー、API要求サーバ、関連性およびランク付けエンジン、コンテンツオブジェクト分類器、通知コントローラ、アクションログ、サードパーティコンテンツオブジェクト接触ログ、推論モジュール、認可/プライバシーサーバ、検索モジュール、広告ターゲティングモジュール、ユーザインタフェースモジュール、ユーザプロファイルストア、コネクションストア、サードパーティコンテンツストア、またはロケーションストアのうちの1つまたは複数を含み得る。ネットワーキングシステム104は、ネットワークインタフェース、セキュリティメカニズム、ロードバランサ、フェイルオーバサーバ、管理およびネットワークオペレーションコンソール、他の適切な構成要素、またはそれらの任意の適切な組み合わせなどの適切な構成要素も含むことができる。特定の実装形態では、ネットワーキングシステム104は、ユーザプロファイルを格納するための1つまたは複数のユーザプロファイルストアを含み得る。ユーザプロファイルは、例えば、経歴情報、デモグラフィック情報、行動情報、ソーシャル情報、または、仕事経験、学歴、趣味もしくは嗜好、関心、アフィニティ、もしくはロケーションなどの他のタイプの記述情報を含んでもよい。関心情報は、1つまたは複数のカテゴリに関連する関心を含んでもよい。カテゴリは、一般的なものであってもよいし、特定のものであってもよい。例えば、ユーザが靴のブランドに関する記事に「いいね」する場合、カテゴリは、ブランドであってもよいし、あるいは「靴」もしくは「衣類」の一般カテゴリであってもよい。コネクションストアは、ユーザに関するコネクション情報を格納するために使用され得る。コネクション情報は、類似または共通の仕事経験、グループメンバーシップ、趣味、学歴を有するユーザ、または何らかの形で関連または共通の属性を共有するユーザを示すことができる。コネクション情報は、異なるユーザとコンテンツ(内部および外部の両方)との間のユーザ定義のコネクションも含み得る。ウェブサーバは、ネットワーク2404を介して、ネットワーキングシステム104を1つまたは複数のクライアントデバイス2406または1つまたは複数のサードパーティシステム2408にリンクするために使用され得る。ウェブサーバは、ネットワーキングシステム104と1つまたは複数のクライアントデバイス2406との間でメッセージを受信およびルーティングするためのメールサーバまたは他のメッセージング機能を含み得る。API要求サーバは、サードパーティシステム2408が、1つまたは複数のAPIを呼び出すことによってネットワーキングシステム104からの情報にアクセスすることを可能にすることができる。アクションロガーは、ネットワーキングシステム104上または外でのユーザのアクションに関するウェブサーバからの通信を受信するために使用され得る。アクションログと併せて、サードパーティコンテンツオブジェクトに対するユーザ接触のサードパーティコンテンツオブジェクトログが維持されてもよい。通知コントローラは、コンテンツオブジェクトに関する情報をクライアントデバイス2406に提供することができる。情報は、通知としてクライアントデバイス2406にプッシュされ得るか、または情報は、クライアントデバイス2406から受信された要求に応答してクライアントデバイス2406からプルされ得る。認可サーバは、ネットワーキングシステム104のユーザの1つまたは複数のプライバシー設定を施行するために使用され得る。ユーザのプライバシー設定は、ユーザに関連付けられた特定の情報がどのように共有され得るかを決定する。認可サーバは、ユーザが、適切なプライバシー設定を設定することなどによって、自分のアクションをネットワーキングシステム104によって記録させること、または他のシステム(例えば、サードパーティシステム2408)と共有させることについてオプトインまたはオプトアウトを行うことを可能にすることができる。サードパーティコンテンツオブジェクトストアは、サードパーティシステム2408などのサードパーティから受信されたコンテンツオブジェクトを格納するために使用され得る。ロケーションストアは、ユーザに関連付けられたクライアントデバイス2406から受信されたロケーション情報を格納するために使用され得る。広告価格設定モジュールは、ソーシャル情報、現在時刻、ロケーション情報、または他の適切な情報を組み合わせて、関連する広告を通知の形でユーザに提供することができる。
【0394】
図25は、例示的なソーシャルグラフ2500を示す。特定の実装形態では、ネットワーキングシステム104は、1つまたは複数のソーシャルグラフ2500を1つまたは複数のデータストアに格納することができる。特定の実装形態では、ソーシャルグラフ2500は、複数のユーザノード2502または複数のコンセプトノード2504を含み得る複数のノードと、ノードをつなぐ複数のエッジ2506とを含んでいてよい。
図25に示される例示的なソーシャルグラフ2500は、教示目的のために、2次元ビジュアルマップ表現で示されている。特定の実装形態では、ネットワーキングシステム104、クライアントデバイス2406、またはサードパーティシステム2408は、適切なアプリケーションについてソーシャルグラフ2500および関連するソーシャルグラフ情報にアクセスすることができる。ソーシャルグラフ2500のノードおよびエッジは、例えば、データストア(ソーシャルグラフデータベースなど)内にデータオブジェクトとして格納され得る。そのようなデータストアは、ソーシャルグラフ2500のノードまたはエッジの1つまたは複数の検索可能または探索可能なインデックスを含むことができる。
【0395】
特定の実装形態では、ユーザノード2502は、ネットワーキングシステム104のユーザに対応し得る。例えば、ユーザは、ネットワーキングシステム104と、またはそれを介してインタラクションまたは通信する個人(人間のユーザ)、エンティティ(例えば、企業、ビジネス、またはサードパーティアプリケーション)、または(例えば、個人またはエンティティの)グループであり得る。特定の実装形態では、ユーザがネットワーキングシステム104にアカウントを登録する場合、ネットワーキングシステム104は、ユーザに対応するユーザノード2502を作成し、ユーザノード2502を1つまたは複数のデータストアに格納することができる。本明細書で説明されるユーザおよびユーザノード2502は、適切な場合、登録されたユーザおよび登録されたユーザに関連付けられたユーザノード2502を指し得る。加えて、または代替として、本明細書で説明されるユーザおよびユーザノード2502は、適切な場合、ネットワーキングシステム104に登録されていないユーザを指し得る。特定の実装形態では、ユーザノード2502は、ユーザによって提供された情報、またはネットワーキングシステム104を含む様々なシステムによって収集された情報に関連付けられ得る。例えば、ユーザは、自分の名前、プロフィール写真、連絡先情報、誕生日、性別、結婚歴、家族状况、職業、学歴、好み、関心、または他のデモグラフィック情報を提供することができる。ソーシャルグラフの各ユーザノードは、対応するウェブページ(通常、プロフィールページとして知られる)を有することができる。ユーザ名を含む要求に応答して、ソーシャルネットワーキングシステムは、ユーザ名に対応するユーザノードにアクセスし、名前、プロフィール写真、およびユーザに関連する他の情報を含むプロフィールページを構築することができる。第1のユーザのプロフィールページは、第1のユーザによる1つまたは複数のプライバシー設定、および第1のユーザと第2のユーザとの間の関係に基づいて、第1のユーザの情報のすべてまたは一部を第2のユーザに表示することができる。
【0396】
特定の実装形態では、コンセプトノード2504は、コンセプトに対応し得る。例えば、コンセプトは、場所(例えば、映画館、レストラン、ランドマーク、または都市)、ウェブサイト(例えば、ネットワーキングシステム104に関連付けられたウェブサイト、またはウェブアプリケーションサーバに関連付けられたサードパーティウェブサイト)、エンティティ(例えば、人物、企業、グループ、スポーツチーム、または有名人)、ネットワーキングシステム104内またはウェブアプリケーションサーバなどの外部サーバ上に位置し得るリソース(例えば、オーディオファイル、ビデオファイル、デジタル写真、テキストファイル、構造化文書、またはアプリケーション)、実財産または知的財産(例えば、彫刻、絵画、映画、ゲーム、歌、アイデア、写真、または著書)、ゲーム、アクティビティ、アイデアまたは理論、別の適切なコンセプト、あるいは2つ以上のそのようなコンセプトに対応し得る。コンセプトノード2504は、ユーザによって提供されたコンセプトの情報、またはネットワーキングシステム104を含む様々なシステムによって集められた情報に関連付けられ得る。例えば、コンセプトの情報は、名前またはタイトル、1つまたは複数の画像(例えば、本のカバーページの画像)、ロケーション(例えば、アドレスまたは地理的場所)、ウェブサイト(URLに関連付けられ得る)、連絡先情報(例えば、電話番号または電子メールアドレス)、他の適切なコンセプト情報、またはそのような情報の任意の適切な組み合わせを含んでもよい。特定の実装形態では、コンセプトノード2504は、コンセプトノード2504に関連付けられた情報に対応する1つまたは複数のデータオブジェクトに関連付けられ得る。特定の実装形態では、コンセプトノード2504は、1つまたは複数のウェブページに対応し得る。
【0397】
特定の実装形態では、ソーシャルグラフ2500内のノードは、ウェブページ(「プロフィールページ」と呼ばれることがある)を表すか、またはウェブページによって表され得る。プロフィールページは、ネットワーキングシステム104によってホストされてもよく、またはネットワーキングシステム104にアクセス可能であってもよい。また、プロフィールページは、サードパーティシステム2408に関連付けられたサードパーティウェブサイト上でホストされてもよい。例えば、特定の外部ウェブページに対応するプロフィールページは、特定の外部ウェブページであってもよく、プロフィールページは、特定のコンセプトノード2504に対応してもよい。プロフィールページは、他のユーザのすべてまたは選択されたサブセットによって閲覧可能であってよい。例えば、ユーザノード2502は、対応するユーザがコンテンツを追加し、宣言を行い、または他の方法で自分自身を表現することができる対応するユーザプロフィールページを有することができる。限定ではなく、別の例として、コンセプトノード2504は、1人または複数のユーザが、特にコンセプトノード2504に対応するコンセプトに関して、コンテンツを追加し、宣言を行い、または自分自身を表現することができる、対応するコンセプトプロフィールページを有することができる。
【0398】
特定の実装形態では、コンセプトノード2504は、サードパーティシステム2408によってホストされるサードパーティウェブページまたはリソースを表すことができる。サードパーティウェブページまたはリソースは、他の要素の中でも、コンテンツ、選択可能アイコンもしくは別のアイコン、またはアクションもしくはアクティビティを表す別のインタラクション可能オブジェクト(例えば、JavaScript(登録商標)、AJAX、またはPHPコードで実装され得る)を含んでいてよい。例えば、サードパーティウェブページは、「いいね」、「チェックイン」、「食べる」、「推奨する」、または別の適切なアクションもしくはアクティビティなどの選択可能なアイコンを含み得る。サードパーティウェブページを閲覧しているユーザは、アイコンのうちの1つ(例えば、「食べる」)を選択することによってアクションを実行し、クライアントデバイス2406に、ユーザのアクションを示すメッセージをネットワーキングシステム104に送信させ得る。メッセージに応答して、ネットワーキングシステム104は、ユーザに対応するユーザノード2502と、サードパーティウェブページまたはリソースに対応するコンセプトノード2504との間にエッジ(例えば、「食べる」エッジ)を作成し、エッジ2506を1つまたは複数のデータストアに格納することができる。
【0399】
特定の実装形態では、ソーシャルグラフ2500内のノードのペアは、1つまたは複数のエッジ2506によって互いにつながり得る。ノードのペアをつなぐエッジ2506は、ノードのペア間の関係を表すことができる。特定の実装形態では、エッジ2506は、ノードのペア間の関係に対応する1つまたは複数のデータオブジェクトまたは属性を含むか、または表すことができる。例えば、第1のユーザは、第2のユーザが第1のユーザの「友人」であることを示すことができる。この標示に応答して、ネットワーキングシステム104は、第2のユーザに「友人リクエスト」を送信することができる。
【0400】
第2のユーザが「友人リクエスト」を確認した場合、ネットワーキングシステム104は、ソーシャルグラフ2500内で第1のユーザのユーザノード2502を第2のユーザのユーザノード2502につなぐエッジ2506を作成し、エッジ2506をソーシャルグラフ情報としてデータストアのうちの1つまたは複数に格納することができる。
図25の例では、ソーシャルグラフ2500は、ユーザ「A」およびユーザ「B」のユーザノード2502間の友人関係を示すエッジ2506と、ユーザ「C」およびユーザ「B」のユーザノード2502間の友人関係を示すエッジとを含む。本開示は、特定のユーザノード2502をつなぐ特定の属性を有する特定のエッジ2506を説明または示しているが、本開示は、ユーザノード2502をつなぐ任意の適切な属性を有する任意の適切なエッジ2506を企図する。例えば、エッジ2506は、友人関係、続柄、ビジネスもしくは雇用関係、ファン関係、フォロワー関係、ビジター関係、サブスクライバー関係、上下関係、相互関係、非相互関係、別の適切なタイプの関係、または2つ以上のそのような関係を表し得る。さらに、本開示は、概して、ノードをつながっているものとして説明するが、本開示は、ユーザまたはコンセプトをつながっているものとしても説明する。本明細書では、つながっているユーザまたはコンセプトへの言及は、適切な場合、1つまたは複数のエッジ2506によってソーシャルグラフ2500内でつながっているそれらのユーザまたはコンセプトに対応するノードを指すことがある。
【0401】
特定の実装形態では、ユーザノード2502とコンセプトノード2504との間のエッジ2506は、コンセプトノード2504に関連付けられたコンセプトに向かってユーザノード2502に関連付けられたユーザによって実行される特定のアクションまたはアクティビティを表し得る。例えば、
図25に示されるように、ユーザは、コンセプトに対し、「いいね」を表明し、「通学した」、「再生した」、「聴いた」、「調理した」、「働いた」、または「視聴した」ことがあってよく、その各々は、エッジタイプまたはサブタイプに対応し得る。コンセプトノード2504に対応するコンセプトプロフィールページは、例えば、選択可能な「チェックイン」アイコン(例えば、クリック可能な「チェックイン」アイコン)または選択可能な「お気に入りに追加」アイコンを含むことができる。同様に、ユーザがこれらのアイコンをクリックした後、ネットワーキングシステム104は、それぞれのアクションに対応するユーザのアクションに応答して「お気に入り」エッジまたは「チェックイン」エッジを作成することができる。
【0402】
限定ではなく、別の例として、ユーザ(ユーザ「C」)は、特定のアプリケーション(オンライン音楽アプリケーションであるSPOTIFY)を使用して特定の歌(「Ramble On」)を聴くことができる。この場合、ネットワーキングシステム104は、ユーザがその歌を聴いてアプリケーションを使用したことを示すために、ユーザに対応するユーザノード2502と、歌およびアプリケーションに対応するコンセプトノード2504との間に「聴いた」エッジ2506および「使用した」エッジ(
図25に示す)を作成することができる。
【0403】
さらに、ネットワーキングシステム104は、特定の歌が特定のアプリケーションによって再生されたことを示すために、歌およびアプリケーションに対応するコンセプトノード2504の間に「再生した」エッジ2506(
図25に示されるような)を作成し得る。この場合、「再生した」エッジ2506は、外部オーディオファイル(歌「Imagine」)に対して外部アプリケーション(SPOTIFY)によって実行されたアクションに対応する。本開示は、ユーザノード2502とコンセプトノード2504とをつなぐ特定の属性を有する特定のエッジ2506について説明するが、本開示は、ユーザノード2502とコンセプトノード2504とをつなぐ任意の適切な属性を有する任意の適切なエッジ2506を企図する。
【0404】
さらに、本開示は、単一の関係を表すユーザノード2502とコンセプトノード2504との間のエッジを説明するが、本開示は、1つまたは複数の関係を表すユーザノード2502とコンセプトノード2504との間のエッジを企図する。例えば、エッジ2506は、ユーザが特定のコンセプトに「いいね」を表明すること、および特定のコンセプトで使用したことの両方を表すことができる。代替的に、別のエッジ2506は、ユーザノード2502とコンセプトノード2504との間の関係の各タイプ(または単一の関係の複数)を表してもよい(
図25では、ユーザ「E」のユーザノード2502と「SPOTIFY」のコンセプトノード2504との間に示される)。
【0405】
特定の実装形態では、ネットワーキングシステム104は、ソーシャルグラフ2500内のユーザノード2502とコンセプトノード2504との間にエッジ2506を作成することができる。例えば、(例えば、ユーザのクライアントデバイス2406によってホストされるウェブブラウザまたは専用アプリケーションを使用することによって)コンセプトプロフィールページを閲覧しているユーザは、「いいね」アイコンをクリックまたは選択することによって、コンセプトノード2504によって表されるコンセプトが好きであることを示すことができ、これにより、ユーザのクライアントデバイス2406は、コンセプトプロフィールページに関連付けられたコンセプトをユーザが「いいね」したことを示すメッセージをネットワーキングシステム104に送信するようにされ得る。
【0406】
メッセージに応答して、ネットワーキングシステム104は、ユーザとコンセプトノード2504との間の「いいね」エッジ2506によって示されるように、ユーザに関連付けられたユーザノード2502とコンセプトノード2504との間にエッジ2506を作成することができる。特定の実装形態では、ネットワーキングシステム104は、エッジ2506を1つまたは複数のデータストアに格納することができる。特定の実装形態では、エッジ2506は、特定のユーザアクションに応答してネットワーキングシステム104によって自動的に形成され得る。例えば、第1のユーザが写真をアップロードする、映画を視聴する、または歌を聴く場合、エッジ2506は、第1のユーザに対応するユーザノード2502と、それらのコンセプトに対応するコンセプトノード2504との間に形成され得る。本開示は、特定のエッジ2506を特定の方法で形成することを説明するが、本開示は、任意の適切なエッジ2506を任意の適切な方法で形成することを企図する。
【0407】
特定の実装形態では、広告は、テキスト(HTMLリンクされ得る)、1つまたは複数の画像(HTMLリンクされ得る)、1つまたは複数のビデオ、オーディオ、1つまたは複数のADOBE FLASHファイル、これらの適切な組み合わせ、または1つまたは複数のウェブページ上に、1つまたは複数の電子メール内に、もしくはユーザによって要求された検索結果に関連して提示される任意の適切なデジタルフォーマットの任意の他の適切な広告であってよい。加えて、または代替として、広告は、1つまたは複数のスポンサー付きストーリー(例えば、ネットワーキングシステム104上のニュースフィードまたはティッカーアイテム)であってもよい。
【0408】
スポンサー付きストーリーは、ユーザによるソーシャルアクション(ページの「いいね」、ページ上の投稿に対する「いいね」もしくはコメント、ページに関連付けられたイベントへの出欠表明、ページ上に投稿された質問に対する投票、場所へのチェックイン、アプリケーションの使用もしくはゲームのプレイ、またはウェブサイトの「いいね」もしくは共有など)であってもよく、広告主は、例えば、ソーシャルアクションをユーザのプロフィールページまたは他のページの所定の領域内に提示させること、広告主に関連付けられた追加情報を提示させること、他のユーザのニュースフィードもしくはティッカー内でバンプアップもしくは強調させること、または他の方法でプロモーションすることによって、ユーザによるソーシャルアクションをプロモーションする。広告主は、ソーシャルアクションをプロモーションしてもらうためにお金を払うことができる。例えば、広告は、検索結果ページの検索結果の中に含めることができ、この場合、スポンサー付きコンテンツは、スポンサー付きでないコンテンツよりもプロモーションされる。
【0409】
特定の実装形態では、広告は、ソーシャルネットワーキングシステムウェブページ、サードパーティウェブページ、または他のページ内に表示するために要求され得る。広告は、ページの上部のバナー領域内、ページの側部のカラム内、ページのGUI内、ポップアップウィンドウ内、ドロップダウンメニュー内、ページの入力フィールド内、ページのコンテンツの上部の上、またはページに関する他の場所など、ページの専用部分に表示することができる。加えて、または代替として、広告は、アプリケーション内に表示されてもよい。広告は、専用ページ内に表示されてよく、ユーザがページにアクセスするか、またはアプリケーションを利用する前に、ユーザが広告とインタラクションするか、または広告を視聴することを要求する。例えば、ユーザは、ウェブブラウザを介して広告を見ることができる。
【0410】
ユーザは、任意の適切な方法で広告とインタラクションすることができる。ユーザは、広告をクリックまたは他の方法で選択することができる。広告を選択することによって、ユーザは、広告に関連付けられたページ(またはユーザによって使用されているブラウザもしくは他のアプリケーション)に誘導され得る。広告に関連付けられたページにおいて、ユーザは、広告に関連付けられた製品またはサービスを購入すること、広告に関連付けられた情報を受信すること、または広告に関連付けられたニュースレターを購読することなど、追加のアクションを取ることができる。オーディオまたはビデオを伴う広告は、広告の構成要素(「再生ボタン」など)を選択することによって再生されてもよい。代替的に、広告を選択することによって、ネットワーキングシステム104は、ユーザの特定のアクションを実行または修正し得る。
【0411】
広告は、ユーザがインタラクションすることができるソーシャルネットワーキングシステム機能を含むこともできる。例えば、広告は、ユーザが、支持に関連付けられたアイコンまたはリンクを選択することによって、広告に「いいね」を表明するか、または他の方法で支持することを可能にし得る。限定としてではなく別の例として、広告は、ユーザが広告主に関係するコンテンツを(例えば、クエリを実行することによって)検索することを可能にし得る。同様に、ユーザは、広告を別のユーザと(例えば、ネットワーキングシステム104を介して)共有するか、または広告に関連付けられたイベントに(例えば、ネットワーキングシステム104を介して)出欠表明することができる。加えて、または代替として、広告は、ユーザに向けられたソーシャルネットワーキングシステムコンテキストを含むことができる。例えば、広告は、広告の主題に関連付けられたアクションを取ったネットワーキングシステム104内のユーザの友人に関する情報を表示することができる。
【0412】
特定の実装形態では、ネットワーキングシステム104は、互いに対する様々なソーシャルグラフエンティティのソーシャルグラフアフィニティ(本明細書では「アフィニティ」と呼ばれることがある)を決定することができる。アフィニティは、ユーザ、コンセプト、コンテンツ、アクション、広告、ユーザのオンラインネットワークに関連付けられた他のオブジェクト、またはそれらの任意の適切な組み合わせなど、ユーザのオンラインネットワークに関連付けられた特定のオブジェクト間の関係の強さまたは関心のレベルを表すことができる。アフィニティは、サードパーティシステム2408または他の適切なシステムに関連付けられたオブジェクトに関して決定されてもよい。各ユーザ、主題、またはコンテンツのタイプについてのソーシャルグラフエンティティに対する全体的なアフィニティが確立され得る。全体的なアフィニティは、ソーシャルグラフエンティティに関連付けられたアクションまたは関係の継続的な監視に基づいて変化し得る。本開示は、特定の方法で特定のアフィニティを決定することを説明するが、本開示は、任意の適切な方法で任意の適切なアフィニティを決定することを企図する。
【0413】
特定の実装形態では、ネットワーキングシステム104は、アフィニティ係数(本明細書では「係数」と呼ばれることがある)を使用してソーシャルグラフアフィニティを測定または定量化することができる。係数は、ユーザのオンラインネットワークに関連付けられた特定のオブジェクト間の関係の強さを表すか、または定量化することができる。係数は、アクションに対するユーザの関心に基づいてユーザが特定のアクションを実行する予測された確率を測る確率または関数を表してもよい。このようにして、ユーザの将来のアクションは、ユーザの以前のアクションに基づいて予測することができ、係数は、ユーザのアクションの履歴に少なくとも部分的に基づいて計算することができる。係数は、ユーザのオンラインネットワークの内部または外部での任意の数のアクションを予測するために使用され得る。例えば、これらのアクションは、メッセージの送信、コンテンツの投稿、もしくはコンテンツへのコメントなどの様々なタイプのコミュニケーション、プロフィールページ、メディア、もしくは他の適切なコンテンツへのアクセスもしくは閲覧などの様々なタイプの観察アクション、同じグループ内にいる、同じ写真内にタグ付けされている、同じロケーションにチェックインしている、もしくは同じイベントに出席しているなどの2つ以上のソーシャルグラフエンティティに関する様々なタイプの一致情報、または他の適切なアクションを含むことができる。本開示は、特定の様式でアフィニティを測定することを記載するが、本開示は、任意の適切な様式でアフィニティを測定することを企図する。
【0414】
特定の実装形態では、ネットワーキングシステム104は、係数を計算するために様々な因子を使用し得る。これらの因子は、例えば、ユーザアクション、オブジェクト間の関係のタイプ、ロケーション情報、他の適切な因子、またはそれらの任意の組み合わせを含んでいてよい。特定の実装形態では、係数を計算する場合、異なる因子が異なるように重み付けされ得る。各因子に対する重みは静的であってもよく、または重みは、例えば、ユーザ、関係のタイプ、アクションのタイプ、ユーザのロケーションなどに従って変化してもよい。因子に対するレーティングは、ユーザに対する全体的な係数を決定するために、それらの重みに従って組み合わされてもよい。例えば、特定のユーザアクションは、レーティングおよび重みの両方を割り当てられ得るが、特定のユーザアクションに関連付けられた関係は、レーティングおよび相関する重みを割り当てられる(例えば、重みは合計100%になる)。特定のオブジェクトに対するユーザの係数を計算するために、ユーザのアクションに割り当てられたレーティングは、例えば、全体的な係数の60%を備えることができ、ユーザとオブジェクトとの間の関係は、全体的な係数の40%を備えることができる。特定の実装形態では、ネットワーキングシステム104は、例えば、情報がアクセスされてからの時間、減衰因子、アクセスの頻度、情報に対する関係または情報がアクセスされたオブジェクトに対する関係、オブジェクトにつながったソーシャルグラフエンティティに対する関係、ユーザアクションの短期または長期平均、ユーザフィードバック、他の適切な変数、あるいはそれらの任意の組み合わせなど、係数を計算するために使用される様々な因子に対する重みを決定する場合に、様々な変数を考慮することができる。例えば、係数は、特定のアクションによって提供される信号の強度を時間とともに減衰させる減衰係数を含むことができ、その結果、係数を計算する場合に、より最近のアクションの関連度がより高くなるようになる。レーティングおよび重みは、係数が基づくアクションの継続的なトラッキングに基づいて、連続的に更新され得る。任意のタイプのプロセスまたはアルゴリズムが、各因子および因子に割り当てられた重みに対するレーティングを割り当てること、組み合わせること、平均化することなどのために使用され得る。特定の実装形態では、ネットワーキングシステム104は、履歴アクションおよび過去のユーザ応答、またはユーザを様々なオプションにさらし、応答を測定することによってユーザから得られたデータに対して訓練された機械学習アルゴリズムを使用して係数を決定することができる。本開示は、特定の方法で係数を計算することについて説明するが、本開示は、任意の適切な方法で係数を計算することを企図する。
【0415】
特定の実装形態では、ネットワーキングシステム104は、ユーザのアクションに基づいて係数を計算し得る。ネットワーキングシステム104は、ユーザのオンラインネットワーク上、サードパーティシステム2408上、他の適切なシステム上、またはそれらの任意の組み合わせで、そのようなアクションを監視し得る。任意の適切なタイプのユーザアクションを追跡または監視することができる。典型的なユーザアクションは、プロフィールページの閲覧、コンテンツの作成または投稿、コンテンツとのインタラクション、グループへの参加、イベントへの参加のリストアップおよび確認、ロケーションへのチェックイン、特定のページへの「いいね」、ページの作成、およびソーシャルアクションを容易にする他のタスクの実行を含む。特定の実装形態では、ネットワーキングシステム104は、特定のタイプのコンテンツとのユーザのアクションに基づいて係数を計算することができる。コンテンツは、ユーザのオンラインネットワーク、サードパーティシステム2408、または別の適切なシステムに関連付けられ得る。コンテンツは、ユーザ、プロフィールページ、投稿、ニュース記事、ヘッドライン、インスタントメッセージ、チャットルーム会話、電子メール、広告、写真、ビデオ、音楽、他の適切なオブジェクト、またはそれらの任意の組み合わせを含むことができる。ネットワーキングシステム104は、ユーザのアクションを分析して、アクションのうちの1つまたは複数が、主題、コンテンツ、他のユーザなどに対するアフィニティを示すかどうかを判定することができる。例えば、ユーザが「コーヒー」またはその変形に関連するコンテンツを頻繁に投稿し得る場合、ネットワーキングシステム104は、ユーザがコンセプト「コーヒー」に関して高い係数を有すると決定し得る。特定のアクションまたはアクションのタイプは、他のアクションよりも高い重みおよび/またはレーティングを割り当てられる場合があり、これは、全体的な計算された係数に影響を及ぼし得る。例えば、第1のユーザが第2のユーザに電子メールを送信する場合、アクションの重みまたはレーティングは、第1のユーザが第2のユーザのユーザプロフィールページを閲覧する場合よりも高くてもよい。
【0416】
特定の実装形態では、ネットワーキングシステム104は、特定のオブジェクト間の関係のタイプに基づいて係数を計算し得る。ソーシャルグラフ2500を参照すると、ネットワーキングシステム104は、係数を計算する場合に、特定のユーザノード2502とコンセプトノード2504とをつなぐエッジ2506の数および/またはタイプを分析することができる。例えば、配偶者タイプのエッジ(2人のユーザが結婚していることを表す)によってつながっているユーザノード2502は、友人タイプのエッジによってつながっているユーザノード2502よりも高い係数が割り当てられ得る。換言すると、特定のユーザについてのアクションおよび関係に割り当てられた重みに応じて、全体的なアフィニティは、ユーザの友人についてのコンテンツよりもユーザの配偶者についてのコンテンツに対して高くなるように決定され得る。
【0417】
特定の実装形態では、ユーザが別のオブジェクトと有している関係は、そのオブジェクトの係数を計算することに関するユーザのアクションの重みおよび/またはレーティングに影響を及ぼし得る。コンテンツとタグ付けタイプの関係を有することは、コンテンツと「いいね」タイプの関係を有することよりも高い重みおよび/またはレーティングを割り当てられ得るので、例えば、ユーザが第1の写真においてタグ付けされているが、単に第2の写真に「いいね」を表明する場合、ネットワーキングシステム104は、ユーザが第2の写真よりも第1の写真に対して高い係数を有すると判定し得る。
【0418】
いくつかの実装形態では、ネットワーキングシステム104は、1人または複数の第2のユーザが特定のオブジェクトと有している関係に基づいて、第1のユーザの係数を計算することができる。換言すると、他のユーザがオブジェクトと有しているコネクションおよび係数は、オブジェクトに対する第1のユーザの係数に影響を及ぼす可能性がある。例えば、第1のユーザが、1人または複数の第2のユーザにつながっているか、または1人または複数の第2のユーザについて高い係数を有し、それらの第2のユーザが、特定のオブジェクトにつながっているか、または特定のオブジェクトについて高い係数を有する場合、ネットワーキングシステム104は、第1のユーザも、特定のオブジェクトについて比較的高い係数を有するべきであると決定し得る。
【0419】
1つまたは複数の実装形態では、係数は、特定のオブジェクト間の隔たりの程度に基づき得る。任意の2つのノード間の隔たり度は、一方のノードから他方のノードへソーシャルグラフをたどるのに必要とされるホップの最小数として定義される。2つのノード間の隔たり度は、ソーシャルグラフ内の2つのノードによって表されるユーザまたはコンセプト間の関連性の尺度と見なすことができる。例えば、エッジによって直接つながっている(すなわち、1次ノードである)ユーザノードを有する2人のユーザは、「接続されたユーザ」または「友人」として説明され得る。
【0420】
同様に、別のユーザノードを介してのみつながっている接続される(すなわち、2次ノードである)ユーザノードを有する2人のユーザは、「友人の友人」として説明され得る。より低い係数は、第1のユーザが、ソーシャルグラフ2500内の第1のユーザに間接的につながっているユーザのコンテンツオブジェクトへの関心を共有する可能性の減少を表し得る。例えば、ソーシャルグラフ2500内でより近い(すなわち、隔たり度がより小さい)ソーシャルグラフエンティティは、ソーシャルグラフ2500内でさらに隔てられているエンティティよりも高い係数を有し得る。
【0421】
特定の実装形態では、ネットワーキングシステム104は、ロケーション情報に基づいて係数を計算し得る。互いに地理的により近くにあるオブジェクトは、より離れたオブジェクトよりも互いにより関連している、またはより関心があると考えられ得る。いくつかの実装形態では、特定のオブジェクトに対するユーザの係数は、ユーザに関連付けられた現在のロケーション(またはユーザのクライアントデバイス2406のロケーション)に対するオブジェクトのロケーションの近接度に基づき得る。第1のユーザは、第1のユーザにより近い他のユーザまたはコンセプトにより関心があり得る。例えば、ユーザが空港から1マイルであり、かつガソリンスタンドから2マイルである場合、ネットワーキングシステム104は、ユーザに対する空港の近接度に基づいて、ユーザがガソリンスタンドよりも空港に対して高い係数を有すると決定し得る。
【0422】
特定の実装形態では、ネットワーキングシステム104は、係数情報に基づいてユーザに関する特定のアクションを実行することができる。係数を使用して、ユーザが特定のアクションを実行するかどうかを、そのアクションに対するユーザの関心に基づいて予測することができる。係数は、広告、検索結果、ニュース記事、メディア、メッセージ、通知、または他の適切なオブジェクトなどの任意のタイプのオブジェクトを生成またはユーザに提示する場合に使用され得る。係数は、そのようなオブジェクトをランク付けし、順序付けるために適宜利用され得る。このようにして、ネットワーキングシステム104は、ユーザの関心および現在の状況に関連する情報を提供することができ、ユーザがそのような関心のある情報を見つける可能性を高める。
【0423】
いくつかの実装形態では、ネットワーキングシステム104は、係数情報に基づいてコンテンツを生成し得る。コンテンツオブジェクトは、ユーザに固有の係数に基づいて提供または選択され得る。例えば、係数は、ユーザのためのメディアを生成するために使用されてもよく、ユーザは、ユーザがメディアオブジェクトに関して高い全体的係数を有するメディアを提示されてもよい。限定としてではなく、別の例として、係数は、ユーザのための広告を生成するために使用されてよく、ユーザは、広告されたオブジェクトに関してユーザが高い全体的な係数を有する広告を提示され得る。
【0424】
1つまたは複数の実装形態では、ネットワーキングシステム104は、係数情報に基づいて検索結果を生成し得る。特定のユーザについての検索結果は、クエリを行っているユーザに関する検索結果に関連付けられた係数に基づいてスコア付けまたはランク付けされ得る。例えば、より高い係数を有するオブジェクトに対応する検索結果は、検索結果ページ上で、より低い係数を有するオブジェクトに対応する結果よりも高くランク付けされ得る。
【0425】
特定の実装形態では、ネットワーキングシステム104は、特定のシステムまたはプロセスからの係数についての要求に応答して係数を計算し得る。所与の状況においてユーザがとり得る(またはその対象であり得る)可能性の高いアクションを予測するために、任意のプロセスは、ユーザのための計算された係数を要求し得る。要求は、係数を計算するために使用される様々な因子のために使用する重みのセットも含み得る。この要求は、ユーザのオンラインネットワーク上で実行されるプロセスから、サードパーティシステム2408から(例えば、APIまたは別の通信チャネルを介して)、または別の適切なシステムから来ることがある。要求に応答して、ネットワーキングシステム104は、係数を計算する(または係数情報が以前に計算され格納されている場合、係数情報にアクセスする)ことができる。
【0426】
様々な実装形態において、ネットワーキングシステム104は、特定のプロセスに関するアフィニティを測定し得る。異なるプロセス(ユーザのオンラインネットワークの内部および外部の両方の)は、特定のオブジェクトまたはオブジェクトのセットに対する係数を要求することができる。ネットワーキングシステム104は、アフィニティの尺度を要求した特定のプロセスに関連するアフィニティの尺度を提供することができる。このようにして、各プロセスは、プロセスがアフィニティの尺度を使用する異なるコンテキストに合わせて調整されたアフィニティの尺度を受け取る。
【0427】
ソーシャルグラフアフィニティおよびアフィニティ係数に関連して、特定の実装形態は、2006年8月11日に出願された米国特許出願第11/503093号、2010年12月22日に出願された米国特許出願第12/977027号、2010年12月23日に出願された米国特許出願第12/978265号、および2012年10月1日に出願された米国特許出願第23/632869号に開示されている1つまたは複数のシステム、構成要素、素子、機能、方法、動作、またはステップを利用することができ、これらの各々は、参照によりその全体が組み込まれる。
【0428】
特定の実装形態では、ユーザのオンラインネットワークのコンテンツオブジェクトのうちの1つまたは複数は、プライバシー設定に関連付けられ得る。オブジェクトのためのプライバシー設定(または「アクセス設定」)は、例えば、オブジェクトに関連して、認可サーバ上のインデックスに、別の適切な方法で、またはそれらの任意の組み合わせなど、任意の適切な方法で格納され得る。オブジェクトのプライバシー設定は、ユーザのオンラインネットワークを使用してオブジェクト(またはオブジェクトに関連付けられた特定の情報)がどのようにアクセスされ得るか(例えば、閲覧または共有され得るか)を指定し得る。オブジェクトについてのプライバシー設定が、特定のユーザがそのオブジェクトにアクセスすることを可能にする場合、オブジェクトは、そのユーザに関して「利用できる(visible)」ものとして記述され得る。例えば、ユーザのオンラインネットワークのユーザは、ユーザプロフィールページのプライバシー設定を指定し、ユーザプロフィールページ上の職歴情報にアクセスし得るユーザのセットを特定し、したがって、他のユーザがその情報にアクセスすることを排除できる。
【0429】
特定の実装形態では、プライバシー設定は、オブジェクトに関連付けられた特定の情報にアクセスすることを許可されるべきでないユーザの「ブロックリスト」を指定し得る。換言すると、ブロックリストは、オブジェクトを利用できない(not visible)1人または複数のユーザまたはエンティティを指定することができる。例えば、ユーザは、そのユーザに関連付けられた写真アルバムにアクセスすることができないユーザのセットを指定することができ、したがって、それらのユーザが写真アルバムにアクセスすることを排除する(一方で、場合によっては、ユーザのセット内にない特定のユーザが写真アルバムにアクセスすることを可能にする)。特定の実装形態では、プライバシー設定は、特定のソーシャルグラフ要素に関連付けられ得る。ノードまたはエッジなどのソーシャルグラフ要素のプライバシー設定は、ソーシャルグラフ要素、ソーシャルグラフ要素に関連付けられた情報、またはソーシャルグラフ要素に関連付けられたコンテンツオブジェクトが、ユーザのオンラインネットワークを使用してどのようにアクセスされ得るかを指定することができる。例えば、特定の写真に対応する特定のコンセプトノード2504は、写真にタグ付けされたユーザおよびその友人のみが写真にアクセスできることを指定するプライバシー設定を有することができる。
【0430】
特定の実装形態では、プライバシー設定は、ユーザが、自分のアクションをネットワーキングシステム104によって記録させること、または他のシステム(例えば、サードパーティシステム2408)と共有させることのオプトインまたはオプトアウトを行うことを可能にし得る。特定の実装形態では、オブジェクトに関連付けられたプライバシー設定は、許可されたアクセスまたはアクセスの拒否の任意の適切な粒度を指定することができる。例えば、アクセスまたはアクセスの拒否は、特定のユーザ(例えば、自分のみ、自分のルームメイト、および自分の上司)、特定の隔たり度以内のユーザ(例えば、友人、または友人の友人)、ユーザグループ(例えば、ゲームクラブ、自分の家族)、ユーザネットワーク(例えば、特定の雇用者の従業員、特定の大学の学生または卒業生)、すべてのユーザ(「パブリック」)、ユーザなし(「プライベート」)、サードパーティシステム2408のユーザ、特定のアプリケーション(例えば、サードパーティアプリケーション、外部ウェブサイト)、他の適切なユーザもしくはエンティティ、またはそれらの任意の組み合わせに対して指定されてよい。本開示は、特定のプライバシー設定を特定の方法で使用することについて説明するが、本開示は、任意の適切なプライバシー設定を任意の適切な方法で使用することを企図する。
【0431】
特定の実装形態では、1つまたは複数のサーバは、プライバシー設定を施行するための認可/プライバシーサーバであってよい。データストアに格納された特定のオブジェクトに対するユーザ(または他のエンティティ)からの要求に応答して、ネットワーキングシステム104は、オブジェクトに対する要求をデータストアに送信し得る。要求は、要求に関連付けられたユーザを特定することができ、オブジェクトに関連付けられたプライバシー設定に基づいてユーザがオブジェクトにアクセスすることを許可されていると認可サーバが判定した場合にのみ、ユーザ(またはユーザのクライアントデバイス2406)に送信され得る。要求側ユーザがオブジェクトにアクセスすることを許可されていない場合、認可サーバは、要求されたオブジェクトがデータストアから取り出されるのを防止することができ、または要求されたオブジェクトがユーザに送信されるのを防止することができる。
【0432】
検索クエリコンテキストでは、クエリを行っているユーザがオブジェクトへのアクセスを許可されている場合にのみ、オブジェクトを検索結果として生成することができる。換言すると、オブジェクトは、クエリを行っているユーザが利用可能であるという可視性(visibility)を有していなければならない。ユーザが利用可能ではないという可視性をオブジェクトが有する場合、オブジェクトは検索結果から除外され得る。本開示は、特定の方法でプライバシー設定を施行することについて説明するが、本開示は、任意の適切な方法でプライバシー設定を施行することを企図する。
【0433】
前述の明細書は、その特定の例示的な実装形態を参照して説明されている。本開示の様々な実装形態および態様は、本明細書で説明する詳細を参照しながら説明され、添付の図面は、様々な実装形態を示す。上記の説明および図面は例示的なものであり、限定するものとして解釈されるべきではない。様々な実装形態の完全な理解を提供するために、多数の特定の詳細が説明される。
【0434】
追加または代替の実装形態は、その本質的な特性から逸脱することなく、他の特定の形態で具現化され得る。説明された実装形態は、すべての点において、限定ではなく例示としてのみ考慮されるべきである。したがって、本発明の範囲は、前述の説明ではなく、添付の特許請求の範囲によって示される。特許請求の範囲の意味および均等物の範囲内に入るすべての変更は、その範囲内に包含されるべきである。
【国際調査報告】