(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2024-01-19
(45)【発行日】2024-01-29
(54)【発明の名称】プレイリスト生成のためのシステム及び方法
(51)【国際特許分類】
H04N 21/262 20110101AFI20240122BHJP
H04N 21/258 20110101ALI20240122BHJP
【FI】
H04N21/262
H04N21/258
【外国語出願】
(21)【出願番号】P 2023076940
(22)【出願日】2023-05-08
【審査請求日】2023-06-01
【早期審査対象出願】
(73)【特許権者】
【識別番号】517287224
【氏名又は名称】17LIVE株式会社
(74)【代理人】
【識別番号】100199277
【氏名又は名称】西守 有人
(72)【発明者】
【氏名】李昆擇
(72)【発明者】
【氏名】劉哲▲い▼
(72)【発明者】
【氏名】林佑昌
【審査官】鈴木 順三
(56)【参考文献】
【文献】特開2019-110480(JP,A)
【文献】米国特許第09942578(US,B1)
【文献】米国特許第09082174(US,B2)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 21/00 - 21/858
(57)【特許請求の範囲】
【請求項1】
プレイリスト生成装置により実行されるプレイリスト生成方法であって、
第1のストリームセグメントから第1のストリーム部分を生成してクラウドサーバの空間に送信する第1のストリーミングサーバから
前記第1のストリーム部分に付加されたタイムスタンプと前記第1のストリーム部分の数と固有キー
とを取得する工程と、
前記クラウドサーバの
前記空間上に格納された
前記第1のストリーム部
分が、前記第1のストリーム部分
に付加されたタイムスタンプおよび前記第1のストリーム部分の数と整合すると判定し、前記空間が前記固有キーによってアドレス指定可能である工程と、
前記第1のストリーム部分
に付加されたタイムスタンプおよび前記第1のストリーム部分の数に基づき、プレイリストファイルを生成する工程と、
第2のストリームセグメントから第2のストリーム部分を生成して前記クラウドサーバの前記空間に送信する第2のストリーミングサーバから
前記第2のストリーム部分に付加されたタイムスタンプと前記第2のストリーム部分の数と前記固有キー
とを取得する工程と、
前記クラウドサーバの前記空間上に格納された
前記第2のストリーム部
分が、前記第2のストリーム部分
に付加されたタイムスタンプおよび前記第2のストリーム部分の数と整合すると判定する工程と、
前記第2のストリーム部分
に付加されたタイムスタンプおよび前記第2のストリーム部分の数に基づき、前記プレイリストファイルを更新する工程と、
を含むことを特徴とする、プレイリスト生成方法。
【請求項2】
さらに、
前記クラウドサーバ上の前記空間を前記固有キーで特定する工程と、
前記空間に前記プレイリストファイルをアップロードする工程と、
を含むことを特徴とする、請求項1に記載のプレイリスト生成方法。
【請求項3】
さらに、前記空間上の前記プレイリストファイルにアクセス可能なアドレスを送信する工程と、を含むことを特徴とする、請求項2に記載のプレイリスト生成方法。
【請求項4】
前記第1のストリーミングサーバが、
前記第1のストリーム部分の第2の部分を生成しながら、
前記第1のストリーム部分
の第1の部分を前記クラウドサーバの前記空間に送信し、そのうち、前記第1の部分と前記第2の部分が、ユーザ端末から受信した
前記第1のストリームセグメントに基づいて前記第1のストリーミングサーバにより生成され、前記固有キーに対応する、ことを特徴とする、請求項1に記載のプレイリスト生成方法。
【請求項5】
前記第1のストリーミングサーバが、前記第1の部分に対する第1のタイムスタンプと、前記第2の部分に対する第2のタイムスタンプを生成
することを特徴とする、請求項4に記載のプレイリスト生成方法。
【請求項6】
前記第1のストリーム部
分が、第1のタイミングにおける配信者の配信ファイルの
前記第1の
ストリームセグメントに対応し、
前記第2のストリーム部
分が、第2のタイミングにおける前記配信者の前記配信ファイルの
前記第2の
ストリームセグメントに対応し、そのうち、前記配信ファイルと前記配信者が、前記固有キーによって指定される、ことを特徴とする、請求項1に記載のプレイリスト生成方法。
【請求項7】
前記クラウドサーバの前記空間上に格納された
前記第1のストリーム部
分が、前記第1のストリーム部分
に付加されたタイムスタンプおよび前記第1のストリーム部分の数と整合すると判定する工程がさらに、
前記クラウドサーバの前記空間上に格納された
前記第1のストリーム部
分が、前記第1のストリーム部分
に付加されたタイムスタンプおよび前記第1のストリーム部分の数に基づき一部を欠いていると判断する工程と、
前記第1のストリーミングサーバが、前記クラウドサーバの前記空間に前記一部を送信するのを待つ工程と、を含み、
そのうち、前記第1のストリーム部分
に付加されたタイムスタンプおよび前記第1のストリーム部分の数に基づく前記プレイリストファイルの生成が、前記クラウドサーバの前記空間上に格納された
前記第1のストリーム部
分が、前記第1のストリーム部分
に付加されたタイムスタンプおよび前記第1のストリーム部分の数と整合すると判定する工程の後に実行される、ことを特徴とする、請求項1に記載のプレイリスト生成方法。
【請求項8】
プレイリスト生成のためのシステムであって、1以上のプロセッサを備え、そのうち、前記1以上のプロセッサが機械可読命令を実行して、
第1のストリームセグメントから第1のストリーム部分を生成してクラウドサーバの空間に送信する第1のストリーミングサーバから
前記第1のストリーム部分に付加されたタイムスタンプと前記第1のストリーム部分の数と固有キー
とを取得する工程と、
前記クラウドサーバの
前記空間上に格納された
前記第1のストリーム部
分が、前記第1のストリーム部分
に付加されたタイムスタンプおよび前記第1のストリーム部分の数と整合すると判定し、前記空間が前記固有キーによってアドレス指定可能である工程と、
前記第1のストリーム部分
に付加されたタイムスタンプおよび前記第1のストリーム部分の数に基づき、プレイリストファイルを生成する工程と、
第2のストリームセグメントから第2のストリーム部分を生成して前記クラウドサーバの前記空間に送信する第2のストリーミングサーバから
前記第2のストリーム部分に付加されたタイムスタンプと前記第2のストリーム部分の数と前記固有キー
とを取得する工程と、
前記クラウドサーバの前記空間上に格納された
前記第2のストリーム部
分が、前記第2のストリーム部分
に付加されたタイムスタンプおよび前記第2のストリーム部分の数と整合すると判定する工程と、
前記第2のストリーム部分
に付加されたタイムスタンプおよび前記第2のストリーム部分の数に基づき、前記プレイリストファイルを更新する工程と、を実行することを特徴とする、プレイリスト生成のためのシステム。
【請求項9】
プレイリスト生成のためのシステムであって、ストリーミングサーバとプレイリスト生成装置を含み、そのうち、
前記ストリーミングサーバが、
ストリームセグメントを受信し、
前記ストリームセグメントの配信者IDとストリームIDに基づいて固有キーを生成し、
前記ストリームセグメントからストリーム部分を生成し、
前記ストリーム部分にタイムスタンプを付加し、
前記ストリーム部分と前記固有キーをクラウドサーバ上のクラウド空間に送信し、
前記ストリーム部分の数、前記タイムスタンプ、前記固有キーを前記プレイリスト生成装置に送信する、
ように構成され、
前記プレイリスト生成装置が、
前記固有キーで前記クラウドサーバ上の前記クラウド空間を特定し、
前記ストリーミングサーバと前記クラウド空間の間のストリーム部分の整合性を判断し、
前記ストリーム部分の数と前記タイムスタンプに基づいてプレイリストファイルを生成する、
ように構成されたことを特徴とする、プレイリスト生成のためのシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ストリーミング分野におけるプレイリストの生成に関する。
【背景技術】
【0002】
ライブストリーミングサービスに代表されるように、インターネット上におけるリアルタイムの交流が日常生活に浸透している。さまざまなプラットフォームやプロバイダーがライブストリーミングサービスを提供しており、競争も激しい。プラットフォームにとって、ユーザが望むサービスを提供することが重要である。
【0003】
台湾特許出願公開第201445986号は、ビデオデータにアクセスするためのプレイリストサーバを開示している。
【先行技術文献】
【特許文献】
【0004】
【文献】台湾特許出願公開第201445986号明細書
【発明の概要】
【0005】
本発明の一実施態様による方法は、1以上のコンピュータにより実行されるプレイリスト生成のための方法であって、第1のストリーミングサーバから第1のストリーム部分情報と固有キーを取得する工程と、クラウドサーバの空間上に格納されたストリーム部分の第1のセットが当該第1のストリーム部分情報と一致すると判定し、当該空間が当該固有キーによってアドレス指定可能である工程と、当該第1のストリーム部分情報に基づきプレイリストファイルを生成する工程と、第2のストリーミングサーバから第2のストリーム部分情報と当該固有キーを取得する工程と、当該クラウドサーバの当該空間上に格納されたストリーム部分の第2のセットが当該第2のストリーム部分情報と一致すると判定する工程と、当該第2のストリーム部分情報に基づき当該プレイリストファイルを更新する工程と、を含む。
【0006】
本発明の一実施態様によるシステムは、1以上のプロセッサを含むプレイリスト生成のためのシステムであり、当該1以上のコンピュータプロセッサが、機械可読命令を実行して、第1のストリーミングサーバから第1のストリーム部分情報と固有キーを取得する工程と、クラウドサーバの空間上に格納されたストリーム部分の第1のセットが当該第1のストリーム部分情報と一致すると判定し、当該空間が当該固有キーによってアドレス指定可能である工程と、当該第1のストリーム部分情報に基づきプレイリストファイルを生成する工程と、第2のストリーミングサーバから第2のストリーム部分情報と当該固有キーを取得する工程と、当該クラウドサーバの当該空間上に格納されたストリーム部分の第2のセットが当該第2のストリーム部分情報と一致すると判定する工程と、当該第2のストリーム部分情報に基づき当該プレイリストファイルを更新する工程と、を実行する。
【0007】
本発明の一実施態様によるシステムは、ストリーミングサーバと、プレイリスト生成装置とを含み、当該ストリーミングサーバは、ストリームセグメントを受信する;当該ストリームセグメントの配信者IDおよびストリームIDに基づいて固有キーを生成する;当該ストリームセグメントからストリーム部分を生成する;当該ストリーム部分にタイムスタンプを付加する;当該ストリーム部分と当該固有キーをクラウドサーバ上のクラウド空間に送信する;当該ストリーム部分の数、当該タイムスタンプ、当該固有キーを当該プレイリスト生成装置に送信する;ように構成される。当該プレイリスト生成装置は、当該固有キーで当該クラウドサーバ上の当該クラウド空間を特定する;当該ストリーミングサーバと当該クラウド空間との間のストリーム部分の整合性を判断する;当該ストリーム部分の数と当該タイムスタンプに基づきプレイリストファイルを生成する;ように構成される。
【図面の簡単な説明】
【0008】
【
図1】本発明の一部の実施態様に基づくライブストリーミングシステム1の構成を示す概略図である。
【
図2】本発明の一部の実施態様に基づく、
図5のユーザ端末30の機能と構成を示すブロック図である。
【
図3】本発明の一部の実施態様に基づく、
図1のサーバの機能と構成を示すブロック図である。
【
図4】
図3のストリームDB310の例示的データ構造を示す表である。
【
図5】
図3のユーザDB312の例示的データ構造を示す表である。
【
図6】
図3の贈り物DB314の例示的データ構造を示す表である。
【
図7】関連技術に基づく方法を示す例示的なフローチャートである。
【
図8】本発明の一部の実施態様に基づく方法を示す例示的シーケンス図である。
【
図9】本発明の一部の実施態様に基づく方法を示す例示的シーケンス図である。
【
図10】本発明の一部の実施態様に基づく例示的なデータ構造である。
【
図11】本発明の一部の実施態様に基づく方法を示す例示的なフローチャートである。
【
図12】本発明の一部の実施態様に基づく方法を示す例示的なフローチャートである。
【
図13】本発明の一部の実施態様に基づく情報処理装置のハードウェア構成例を示すブロック図である。
【発明を実施するための形態】
【0009】
以下、各図面に示す同一または類似の構成要素、部材、手順または信号には、すべての図面において同様の符号を付し、それによって重複する説明は適宜省略される。また、各図面の説明において重要でない一部部材は省略される。
【0010】
本発明との比較のために本発明者らが独自に生成した関連技術によるストリーミングシステム(またはアーカイブシステム)では、インターネット接続が不安定(または断続的な状態)になると、配信者(またはストリーマー)が行う配信が分断されたセグメントに分割されることになる。あるいは、配信者が自身の配信中に、グループコール配信にジャンプした(あるいはグループコール配信の招待を受け入れた)場合、グループコール前のストリームセグメントとグループコール後のストリームセグメントが別々のセグメントに切り分けられることになる。
【0011】
異なるセグメントを正しい順序で完全な配信に統合することはできない。完全な配信の再生ファイルまたはプレイリストファイルを分割されたセグメントから生成することはできない。異なるセグメントは配信者から異なるストリーミングサーバに送信される。異なるセグメントは、それぞれのストリーミングサーバから送信され、クラウドサーバ内の異なる空間(または異なるファイル)に格納される。各セグメントの対応するクラウド空間へのアップロードは、対応するストリーミングサーバでそのセグメントが完全に受信された後にのみ開始されるため、時間がかかり、非効率的である。
【0012】
図7は、関連技術に基づく方法を示す例示的なフローチャートである。
【0013】
工程S700において、配信者D1は、ストリームセグメントS11をストリーミングサーバ362に送信する。当該ストリームセグメントS11は、配信ファイル(または配信セッション)S1の一部である。
【0014】
工程S702において、当該配信者D1にインターネットの切断が発生する。そのため、当該配信ファイルS1の残りがまだ送信されていない。
【0015】
工程S704において、当該ストリーミングサーバ362は、当該ストリームセグメントS11に基づいて再生ファイルを生成する。当該ストリームセグメントS11に対してトランスコード処理が実行されてもよい。
【0016】
工程S706において、当該ストリーミングサーバ362は、当該再生ファイルをクラウドサーバ上のクラウド空間382に送信する。
【0017】
工程S708において、配信者D1のインターネット接続が回復し、当該配信者D1は、ストリームセグメントS12をストリーミングサーバ364に送信する。当該ストリームセグメントS12は、当該配信ファイルS1の一部である。往々にして、配信は、インターネットの切断後、例えばロードバランサ(図示せず)の割り当て/分配メカニズムにより、異なるストリーミングサーバに送信される可能性が高い。
【0018】
工程S710において、当該配信者D1が配信を終了する。
【0019】
工程S712において、当該ストリーミングサーバ364は、当該ストリームセグメントS12に基づき、再生ファイルを生成する。当該ストリームセグメントS12に対してトランスコード処理が実行されてもよい。
【0020】
工程S714において、当該ストリーミングサーバ364は、当該再生ファイルを当該クラウドサーバ上のクラウド空間384に送信する。当該ストリーミングサーバ364には、ストリームセグメントS11の当該再生ファイルが当該クラウドサーバに格納されている当該空間を特定する方法がないため、当該クラウド空間384は、当該クラウド空間382とは異なる。
【0021】
当該ストリームセグメントS11とS12は、同一の配信ファイル(または同一の配信セッション)S1に属している。しかし、それらの再生ファイルは別々であり、当該クラウドサーバ上の異なる空間に格納されている。上記の方法では、別々のストリームセグメントS11とS12から、完全な配信ファイルS1の統合された再生ファイルを生成することができない。
【0022】
工程S704は、工程S702が起こった後(またはS700が終了した後)にのみ開始される。工程S706は、工程S704が終了した後にのみ開始される。工程S712は、工程S710が発生した後(またはS708が終了した後)にのみ開始される。工程S714は、工程S712が終了した後にのみ開始される。
【0023】
本発明は、完全な配信の再生のためのプレイリストファイル及び(または)再生ファイルを効率的に生成するためのシステムまたは方法を提供する。
【0024】
図1は、本発明の一部の実施態様に基づくライブストリーミングシステム1の構成を示す概略図である。当該ライブストリーミングシステム1は、ストリーミングの配信者(ライバー、アンカー、ストリーマーとも呼ばれる)LVと視聴者(オーディエンスとも呼ばれる)AU(AU1、AU2...)に、リアルタイムで交流または通信するためのライブストリーミングサービスを提供する。
図1に示すように、当該ライブストリーミングシステム1は、サーバ10と、ユーザ端末20と、ユーザ端末30(30a、30b...)を含む。一部の実施態様において、当該ストリーマーと視聴者は、集合的にユーザと呼ばれてもよい。当該サーバ10は、ネットワークNWに接続された、1以上の情報処理装置を含むことができる。当該ユーザ端末20、30は、例えば、スマートフォン、タブレット、ノートPC、レコーダー、携帯ゲーム機、ウェアラブル端末などのモバイル端末装置、あるいはデスクトップPCなどの据え置き型装置であってもよい。当該サーバ10、当該ユーザ端末20及び当該ユーザ端末30は、各種有線または無線ネットワークNWを介して相互に通信可能に接続される。
【0025】
当該ライブストリーミングシステム1には、配信者LV、視聴者AU、及び当該サーバ10を管理する管理者(またはアプリプロバイダー、図示せず)が参加する。当該配信者LVは、自身のユーザ端末20でコンテンツを記録し、当該サーバ10に直接または間接的にアップロードすることにより、リアルタイムで当該コンテンツを配信する者である。当該コンテンツの例としては、当該配信者自身の歌、トーク、パフォーマンス、ゲームプレイ、その他あらゆるコンテンツであってもよい。当該管理者は、当該サーバ10上で当該コンテンツをライブストリーミングするためのプラットフォームを提供するとともに、当該配信者LVと当該視聴者AU間のリアルタイムの交流を仲介または管理する。当該視聴者AUは、自分のユーザ端末30で当該プラットフォームにアクセスし、所望のコンテンツを選択して視聴する。当該視聴者AUは、選択したコンテンツのライブストリーミング中に、当該ユーザ端末30を介してコメントや応援、贈り物の送信などの操作を実行する。当該コンテンツを配信している当該配信者LVは、それらのコメント、応援、または贈り物に対して応答してもよい。当該応答が、映像および(または)音声で当該視聴者AUに送信され、双方向のコミュニケーションが確立される。
【0026】
「ライブストリーミング」という用語は、当該配信者LVのユーザ端末20で記録したコンテンツを、当該視聴者AUのユーザ端末30で実質的にリアルタイムに再生・視聴することを可能にするデータ伝送モードを指しても、そのような伝送モードにより実現されるライブブロードキャストを指してもよい。当該ライブストリーミングは、HTTPライブストリーミング、CMAF(Common Media Application Format)、WebRTC(Web Real―Time Communications)、RTMP(Real―Time Messaging Protocol)、MPEG DASHなどの既存のライブストリーミング技術を利用して実現されてもよい。ライブストリーミングには、当該配信者LVによるコンテンツの記録と同時に、当該視聴者AUが所定の遅延をもって当該コンテンツを視聴でき伝送モードを含む。当該遅延の長さについては、当該配信者LVと当該視聴者AUの交流が成立可能な程度の遅延であってもよい。なお、当該ライブストリーミングは、当該コンテンツの全記録データを一度当該サーバに格納し、その後ユーザの要求に応じて当該サーバから当該ユーザに提供する、いわゆるオンデマンド配信と区別される。
【0027】
ここでいう「映像データ」とは、当該ユーザ端末20または30の撮像機能を用いて生成された画像データ(映像データとも呼ばれる)と、当該ユーザ端末20または30の音声入力機能を用いて生成された音声データとを含むデータを指す。当該映像データは、当該ユーザがコンテンツを視聴できるように、当該ユーザ端末20、30で再生される。一部の実施態様において、当該配信者のユーザ端末における映像データの生成と当該視聴者のユーザ端末における映像データの再生との間に、当該映像データに対して圧縮、展開、符号化、復号化、トランスコーディングなど、その形式、サイズ、またはデータの仕様を変更する処理が行われると想定される。しかし、そのような処理の前後で、当該映像データが表す当該コンテンツ(例えば、映像や音声)は実質的に変化しないため、本明細書においては、そのような処理後の当該映像データを、そのような処理前の当該映像データと同一ものと表現している。すなわち、当該配信者のユーザ端末で映像データが生成された後、当該サーバ10を介して当該視聴者のユーザ端末で再生される場合、当該配信者のユーザ端末で生成された当該映像データ、当該サーバ10を通過する当該映像データ、および当該視聴者のユーザ端末で受信して再生される当該映像データは、いずれも同一の映像データである。
【0028】
図1に示す例において、当該配信者LVは、ライブストリーミングデータを提供する。当該配信者LVのユーザ端末20は、当該配信者LVの映像や音声を記録して当該ストリーミングデータを生成し、生成された当該データは当該ネットワークNWを介して当該サーバ10に送信される。同時に、当該ユーザ端末20は、当該配信者LVの記録された映像VDを当該ユーザ端末20のディスプレイに表示し、当該配信者LVが現在行っているライブストリーミングコンテンツを確認できるようにする。
【0029】
当該プラットフォームに当該配信者LVのライブストリーミングを視聴することを要求した当該視聴者AU1、AU2のそれぞれのユーザ端末30a、30bは、当該ネットワークNWを介して当該ライブストリーミングに関連する映像データ(以下、「ライブストリーミングの映像データ」と呼ばれてもよい)を受信し、受信した当該映像データを再生して当該映像VD1、VD2をディスプレイに表示し、スピーカーから音声を出力する。当該ユーザ端末30a、30bでそれぞれ表示される映像VD1、VD2は、当該配信者LVの当該ユーザ端末20により撮像された映像VDと実質的に同じであり、当該ユーザ端末30a、30bで出力される音声は、当該配信者LVの当該ユーザ端末20で記録された音声と実質的に同じである。
【0030】
当該配信者LVの当該ユーザ端末20での映像・音声の記録と、当該視聴者AU1、AU2の当該ユーザ端末30a、30bでの映像データの再生は、実質的に同時に行われる。当該視聴者AU1が、当該配信者LVにより提供される当該コンテンツに関するコメントを当該ユーザ端末30aに入力すると、当該サーバ10は当該コメントを配信者LVの当該ユーザ端末20にリアルタイムで表示するとともに、当該視聴者AU1とAU2の当該ユーザ端末30aと30bにも当該コメントをそれぞれ表示する。当該配信者LVが当該コメントを読み、当該コメントに対応するトークを展開すると、そのトークの映像と音声が、それぞれ当該視聴者AU1、AU2のユーザ端末30a、30bに表示される。このインタラクティブな動作は、当該配信者LVと当該視聴者AU1間で会話が成立していると認識される。これにより、当該ライブストリーミングシステム1では、一方的なコミュニケーションではなく、双方向のコミュニケーションを可能にするライブストリーミングを実現する。
【0031】
図2は、本発明の一部の実施態様に基づく、
図1のユーザ端末30の機能と構成を示すブロック図である。当該ユーザ端末20は、当該ユーザ端末30と同じまたは類似した機能と構成を有する。
図2の各ブロックと以降のブロック図は、ハードウェアがコンピュータのCPUや機械装置などの要素によって実現されてもよく、ソフトウェアがコンピュータプログラムなどによって実現されてもよい。機能ブロックは、これらの要素間の連携動作により実現されてもよい。したがって、これらの機能ブロックは、ハードウェアとソフトウェアの組み合わせによる多様な形態で実現され得ることが、当業者には理解されよう。
【0032】
当該配信者LV及び当該視聴者AUは、当該ネットワークNWを介してダウンロードサイトからライブストリーミングアプリケーションプログラム(以下、ライブストリーミングアプリケーションという)をダウンロードし、当該ユーザ端末20、30にインストールしてもよい。あるいは、当該ライブストリーミングアプリケーションは、当該ユーザ端末20と30に予めインストールされていてもよい。当該ライブストリーミングアプリケーションが当該ユーザ端末20、30上で実行されると、当該ユーザ端末20、30は、当該ネットワークNWを介して当該サーバ10と通信し、各種機能を実装または実行する。以下、当該ライブストリーミングアプリケーションが実行されるユーザ端末20、30(CPUなどのプロセッサ)によって実装される機能を、当該ユーザ端末20、30の機能として説明する。これらの機能は、実際には、当該ユーザ端末20、30上で当該ライブストリーミングアプリケーションにより実現される。一部の実施態様において、これらの機能は、HTML(HyperText Markup Language)などのプログラミング言語で記述され、当該サーバ10から当該ネットワークNWを介して当該ユーザ端末20、30のウェブブラウザに送信され、当該ウェブブラウザにより実行されるコンピュータプログラムによって実現されてもよい。
【0033】
当該ユーザ端末30は、配信ユニット100と視聴ユニット200を含む。当該配信ユニット100は、当該ユーザ(またはユーザ側)の映像と音声が記録された映像データを生成し、当該映像データを当該サーバ10に提供する。当該視聴ユニット200は、当該サーバ10から映像データを受信し、当該映像データを再生する。当該ユーザは、ライブストリーミングを行う際に、当該配信ユニット100を起動し、当該ユーザが映像を視聴する際に、当該視聴ユニット200を起動する。当該配信ユニット100が起動される当該ユーザ端末は、当該配信者の端末、すなわち、当該映像データを生成する当該ユーザ端末である。当該視聴ユニット200が起動される当該ユーザ端末は、当該視聴者の端末、即ち、当該映像データが再現され、再生される当該ユーザ端末である。
【0034】
当該配信ユニット100は、撮像コントロールユニット102と、オーディオコントロールユニット104と、映像送信ユニット106と、配信者側UIコントロールユニット108を含む。当該撮像コントロールユニット102は、カメラ(
図2に表示せず)に接続され、当該カメラで実行される撮像を制御する。当該撮像コントロールユニット102は、当該カメラからの画像データを取得する。当該オーディオコントロールユニット104は、マイク(
図2に表示せず)に接続され、当該マイクからの音声入力を制御する。当該オーディオコントロールユニット104は、当該マイクから当該オーディオデータを取得する。当該映像送信ユニット106は、当該撮像コントロールユニット102により取得された当該画像データと、当該オーディオコントロールユニット104により取得された当該オーディオデータを含む映像データを、当該ネットワークNWを介して当該サーバ10に送信する。当該映像データは、当該映像送信ユニット106によりリアルタイムに送信される。すなわち、当該撮像コントロールユニット102と当該オーディオコントロールユニット104による当該映像データの生成と、生成された当該映像データの当該映像送信ユニット106による送信とは、実質的に同時に実行される。当該配信者側UIコントロールユニット108は、当該配信者のUI(ユーザインターフェイス)をコントロールする。当該配信者側UIコントロールユニット108は、ディスプレイ(
図2に表示せず)に接続されてもよく、当該映像送信ユニット106により送信される当該映像データを再生することにより、当該ディスプレイに映像を表示する。当該配信者側UIコントロールユニット108は、操作オブジェクトや指示許諾オブジェクトを当該ディスプレイに表示し、当該オブジェクトをタップした当該配信者からの入力を受け付けてもよい。
【0035】
当該視聴ユニット200は、視聴者側UIコントロールユニット202と、重ね合わせ情報生成ユニット204と、入力情報送信ユニット206を含む。当該視聴ユニット200は、当該ネットワークNWを介して当該サーバ10から、当該配信者、当該ユーザ端末30のユーザである視聴者、及び他の視聴者が参加する、ライブストリーミングに関連する映像データを受信する。当該視聴者側UIコントロールユニット202は、当該視聴者のUIを制御する。当該視聴者側UIコントロールユニット202は、ディスプレイとスピーカー(
図2に表示せず)に接続され、受信した映像データを再生して、当該ディスプレイに映像を表示し、当該スピーカーから音声を出力する。当該映像が当該ディスプレイに出力され、当該音声が当該スピーカーから出力されている状態を「映像データが再生されている」状態と呼ぶことができる。当該視聴者側UIコントロールユニット202は、タッチパネル、キーボード、ディスプレイ等の入力手段(
図2に表示せず)にも接続され、当該入力手段を介してユーザの入力を取得する。当該重ね合わせ情報生成ユニット204は、当該サーバ10からの映像データから生成された画像上に、所定のフレーム画像を重ねる。当該フレーム画像には、当該ユーザからの入力を受け付けるためのさまざまなユーザインターフェイスオブジェクト(以下、単に「オブジェクト」という)、当該視聴者により入力されたコメント、及び(または)当該サーバ10から取得した情報などが含まれる。当該入力情報送信ユニット206は、当該ネットワークNWを介して、当該視聴者側UIコントロールユニット202により取得された当該ユーザ入力を当該サーバ10に送信する。
【0036】
図3に、本発明の一部の実施態様に基づく、
図1の当該サーバ10の機能と構成を示すブロック図を示す。当該サーバ10は、配信情報提供ユニット302と、中継ユニット304と、贈り物処理ユニット306と、支払い処理ユニット308と、ストリームDB310と、ユーザDB312と、贈り物DB314と、プレイリスト生成装置330と、再生ファイル生成装置332と、プレイリストDB350と、再生ファイルDB352を含む。当該サーバ10は、ストリーミングサーバ372、ストリーミングサーバ374、クラウドサーバ380と通信を行う。一部の実施態様において、当該ストリーミングサーバ372、374は、当該サーバ10内に実装されてもよい。
【0037】
当該配信者側の当該ユーザ端末20から当該ネットワークNWを介してライブストリーミングの開始通知または要求を受信すると、当該配信情報提供ユニット302は、このライブストリーミングを識別するためのストリームIDと当該ライブストリーミングを行う配信者の配信者IDをストリームDB310に登録する。
【0038】
当該配信情報提供ユニット302が、当該ネットワークNWを介して当該視聴者側の当該ユーザ端末30の当該視聴ユニット200からライブストリームに関する情報の提供要求を受信すると、当該配信情報提供ユニット302は、当該ストリームDB310から現在利用可能なライブストリームを取得または確認し、利用可能なライブストリームのリストを作成する。当該配信情報提供ユニット302は、作成したリストを当該ネットワークNW経由で要求元の当該ユーザ端末30に送信する。要求元の当該ユーザ端末30の当該視聴者側UIコントロールユニット202は、受信したリストに基づいてライブストリーム選択画面を生成し、当該ユーザ端末30のディスプレイ上に表示する。
【0039】
当該ユーザ端末30の当該入力情報送信ユニット206が、当該ライブストリーム選択画面上で当該視聴者の選択結果を受信すると、当該入力情報送信ユニット206は、選択されたライブストリームのストリームIDを含む配信要求を生成し、当該ネットワークNWを介して当該サーバ10に当該要求を送信する。当該配信情報提供ユニット302は、要求元の当該ユーザ端末30に対して、受信した当該配信要求に含まれる当該ストリームIDで指定されるライブストリームの提供を開始する。当該配信情報提供ユニット302は、当該ストリームIDの(または対応する)視聴者IDに、要求元の当該ユーザ端末30の当該視聴者のユーザIDを含めるように当該ストリームDB310を更新する。
【0040】
当該中継ユニット304は、当該配信情報提供ユニット302により開始された当該ライブストリーミングにおいて、配信者側の当該ユーザ端末20から視聴者側の当該ユーザ端末30に当該映像データを中継する。当該中継ユニット304は、当該ライブストリーミング中または当該映像データの再生中に、当該入力情報送信ユニット206から視聴者によるユーザ入力を表す信号を受信する。当該ユーザ入力を表す信号は、当該ユーザ端末30のディスプレイに表示されたオブジェクトを指定するオブジェクト指定信号であってもよい。当該オブジェクト指定信号は、当該視聴者の視聴者ID、当該視聴者が視聴しているライブストリームの配信者の配信者ID、及び当該オブジェクトを特定するオブジェクトIDを含んでもよい。当該オブジェクトが贈り物であるとき、当該オブジェクトIDは贈り物IDである。同様に、当該中継ユニット304は、当該ユーザ端末20の当該配信ユニット100から、当該映像データの再生中(またはライブストリーミング中)に配信者により行われたユーザ入力を表す信号を受信する。当該信号は、オブジェクト指定信号であってもよい。
【0041】
また、当該ユーザ入力を表す信号は、視聴者が当該ユーザ端末30に入力したコメントと当該視聴者の視聴者IDを含むコメント入力信号であってもよい。当該コメント入力信号を受信すると、当該中継ユニット304は、当該コメントと信号に含まれる当該視聴者IDを、当該配信者の当該ユーザ端末20と他の視聴者の当該ユーザ端末30に送信する。これらユーザ端末20、30において、当該視聴者側UIコントロールユニット202と、当該重ね合わせ情報生成ユニット204は、同じく受信した当該視聴者IDと関連付けられたディスプレイ上に受信したコメントを表示する。
【0042】
当該贈り物処理ユニット306は、当該オブジェクト指定信号に含まれる贈り物IDによって特定される贈り物のポイントに基づき、当該配信者のポイントを増加させ、当該ユーザDB312を更新する。具体的には、当該贈り物処理ユニット306は、当該贈り物DB314を参照して、受信した当該オブジェクト指定信号に含まれる当該贈り物IDに対して付与するポイントを特定する。その後、当該贈り物処理ユニット306は、当該ユーザDB312を更新し、当該オブジェクト指定信号に含まれる当該配信者IDの(または当該配信者IDに対応する)ポイントに、特定されたポイントを追加する。
【0043】
当該支払い処理ユニット308は、当該オブジェクト指定信号の受信に応答して、視聴者からの贈り物の代金の支払いを処理する。具体的には、当該支払い処理ユニット308は、当該贈り物DB314を参照して、当該オブジェクト指定信号に含まれる当該贈り物IDにより特定される当該贈り物の価格ポイントを特定する。その後、当該支払い処理ユニット308は、当該ユーザDB312を更新し、当該オブジェクト指定信号に含まれる当該視聴者IDにより特定される当該視聴者のポイントから、特定された当該価格ポイントを差し引く。
【0044】
図4は、
図3のストリームDB310の例示的データ構造を示す表である。当該ストリームDB310は、現在行われているライブストリームに関する情報を保持する。当該ストリームDB310は、ストリームID、配信者ID、視聴者IDを、相互に関連付けて格納する。当該ストリームIDは、当該ライブストリーミングシステム1により提供されるライブストリーミングプラットフォームにおけるライブストリームを識別するためのIDである。当該配信者IDは、当該ライブストリームを提供する配信者を識別するためのユーザIDである。当該視聴者IDは、当該ライブストリームの視聴者を識別するためのユーザIDである。一部の実施態様による当該ライブストリーミングシステム1により提供されるライブストリーミングプラットフォームにおいて、ユーザがライブストリームを開始すると、当該ユーザは配信者となり、同じユーザが別のユーザによりブロードキャストされるライブストリームを視聴すると、当該ユーザは視聴者にもなる。したがって、配信者と視聴者の区別は固定されておらず、あるとき配信者IDとして登録されたユーザIDが、別のときに視聴者IDとして登録されることもあり得る。
【0045】
図5は、
図3のユーザDB312の例示的データ構造を示す表である。当該ユーザDB312は、ユーザに関する情報を保持する。当該ユーザDB312は、当該ユーザIDと当該ポイントを、相互に関連付けて格納する。当該ユーザIDは、ユーザを識別する。当該ポイントは、対応する当該ユーザが保持するポイントに相当する。当該ポイントは、当該ライブストリーミングプラットフォーム内で流通する電子的な価値である。一部の実施態様において、配信者がライブストリーム中に視聴者から贈り物を受け取ると、当該配信者のポイントは当該贈り物に対応する価値だけ増加する。当該ポイントは、例えば、当該配信者が当該ライブストリーミングプラットフォームの管理者から受け取る報酬(金銭など)の量を決定するために使用される。一部の実施態様において、当該配信者が視聴者から贈り物を受け取る際に、当該ポイントに代えて、当該贈り物に対応する金額を付与してもよい。
【0046】
図6は、
図3の贈り物DB314の例示的データ構造を示す表である。当該贈り物DB314は、当該ライブストリーミング中に当該視聴者が利用できる贈り物についての情報を保持する。贈り物は、電子データである。贈り物は、ポイントまたは金銭で購入するか、無償で提供することができてもよい。贈り物は、視聴者が配信者に贈ることができる。配信者に贈り物を贈ることは、贈り物を使う、贈り物を送る、贈り物を投げるなどとも呼ばれる。贈り物の中には、購入と同時に使用できるものと、購入後、購入した視聴者が後から任意のタイミングで使用できるものとがある。視聴者が配信者に贈り物を贈ると、当該贈り物に対応する量のポイントが当該配信者に付与される。贈り物が使用されると、その使用によって当該贈り物に関連するエフェクトが発生してもよい。例えば、ライブストリーミング画面に当該贈り物に対応したエフェクト(視覚的効果や聴覚的効果など)が表示される。
【0047】
当該贈り物DB314は、贈り物ID、付与ポイント、価格ポイントを、相互に関連付けて格納する。当該贈り物IDは、贈り物を識別するためのものである。当該付与ポイントは、配信者に贈り物が贈られたときに当該配信者に付与されるポイントの量である。当該価格ポイントは、贈り物の使用(購入)に対して支払われるポイントの量である。視聴者は、ライブストリームを視聴しているときに、所望の贈り物の当該価格ポイントを支払うことで、配信者に当該所望の贈り物を贈ることができる。当該価格ポイントの支払いは、適宜の電子決済手段により行うことができる。例えば、視聴者が管理者に当該価格ポイントを支払うことにより、支払いが行われてもよい。あるいは、銀行振り込みやクレジットカードによる支払いが利用されてもよい。当該管理者は、当該付与ポイントと当該価格ポイントとの関係を任意に設定することができる。例えば、付与ポイント=価格ポイントとして設定してもよい。あるいは、当該付与ポイントに1.2などの所定の係数を乗じたポイントを当該価格ポイントとして設定しても、当該付与ポイントに所定の手数料ポイントを加算したポイントを当該価格ポイントとして設定してもよい。
【0048】
当該ストリーミングサーバ(372または374)は、ユーザから配信ファイル(映像または音声配信ファイル)を受信するように構成される。当該ストリーミングサーバは、配信者のユーザ端末から配信ファイルを受信してもよい。配信ファイルは、完全な配信(または配信セッション)であり、1つの配信者IDと1つのストリームIDに対応する。当該ストリーミングサーバは、当該配信ファイル(または当該配信ファイルのセグメント)とともに当該配信者ID及び当該ストリームIDを受信してもよい。各配信ファイルについて、当該配信者IDと当該ストリームIDに基づき、固有キーが生成されてもよい。当該固有キーは当該配信ファイルに対応する。一部の実施態様において、当該ストリーミングサーバは、当該配信ファイルとともに当該固有キーを受信する。一部の実施態様において、当該ストリーミングサーバは、配信ファイルを受信する際に当該固有キーを生成する。一部の実施態様において、配信ファイルは、当該配信者からの配信開始動作(または開始信号)と、当該配信者からの配信終了動作(または終了信号)により定義される。
【0049】
当該配信ファイルの受信中、当該ストリーミングサーバ(372または374)は、連続的に(または並列的に)当該配信ファイルの受信した部分をストリーム部分に変換する。一部の実施態様において、当該変換プロセスにはトランスコード処理が関与してもよい。一部の実施態様において、トランスポートストリーム(TS)形式を有してもよい。一部の実施態様において、1つのストリーム部分は当該配信ファイルから分割された部分であってもよい。当該ストリーミングサーバは、各ストリーム部分に対してタイムスタンプを生成して付加する。
【0050】
一部の実施態様において、当該ストリーミングサーバは、当該ストリーミングサーバ内にフォルダー(または空間、あるいはファイル)を生成し、当該フォルダー内に当該ストリーム部分(または変換されたストリーム部分)を格納してもよい。当該フォルダーは、当該固有キーに基づいて生成される。当該フォルダーは、当該固有キーに対応する。同一の配信ファイルに対して、1つのストリーミングサーバ(372または374)で生成されたそのストリーム部分は、当該ストリーミングサーバ上の同一のフォルダーに格納される。
【0051】
当該配信ファイルを当該ストリーム部分に変換している間、当該ストリーミングサーバ(372または374)は、連続的に(または並列的に)当該ストリーム部分(または変換されたストリーム部分)とそれぞれのタイムスタンプを当該クラウドサーバ380上のクラウド空間に伝送する。当該クラウド空間は、当該固有キーによって指定される。当該クラウド空間は、当該固有キーに一意に対応する。同一の固有キーに対応するストリーム部分は、同一のクラウド空間に送信される。ストリーミングサーバは、当該配信ファイルの第2の部分を生成(または変換)しながら、当該配信ファイルの第1の部分(または変換された部分)をクラウド空間に転送してもよい。
【0052】
一部の実施態様において、当該ストリーミングサーバは、(当該ストリーム部分が当該サーバに格納されている)当該フォルダーを当該クラウドサーバの当該クラウド空間に転送または更新する。 したがって、当該クラウド空間は、当該フォルダーに対応する当該固有キーによって指定されてもよい。一部の実施態様において、当該フォルダーは、すべてのストリーム部分が当該クラウドサーバに送信された後に削除される一時フォルダー(temporary folder)であってもよい。
【0053】
当該ストリーミングサーバ(372または374)は、当該ストリーミングサーバに格納された当該ストリーム部分のストリーム部分情報をプレイリスト生成装置330に送信するように構成される。当該ストリーム部分情報は、当該ストリーム部分の数の番号、それぞれのタイムスタンプ、および固有キーを含んでもよい。
【0054】
当該プレイリスト生成装置330は、当該配信ファイルに対するプレイリストファイルを生成するように構成される。当該プレイリスト生成装置330は、当該ストリーミングサーバに保存されたストリーム部分と、当該クラウド空間に転送または更新された(そして格納された)当該ストリーム部分とを比較または同期させる。当該プレイリスト生成装置330は、ストリーミングサーバ上のストリーム部分と当該クラウド空間に更新されたストリーム部分とが一致しているかを判定または確認する。当該プレイリスト生成装置330は、当該ストリーミングサーバから受信したストリーム部分情報に基づいて、当該プレイリストファイルを生成する。生成された当該プレイリストファイルは、当該プレイリストDB350に格納され、かつ当該クラウド空間にアップロードされる。
【0055】
当該再生ファイル生成装置332は、配信ファイルに対する再生ファイルを生成するように更新される。当該再生ファイル生成装置332は、ストリーミングサーバからストリーム部分を受信し、対応するプレイリストファイルと当該ストリーム部分とを利用して、1つの完全な再生ファイルを生成してもよい。当該再生ファイル生成装置332は、当該ストリーム部分に対してトランスコード処理を実行し、関係者(例えば、ストリーミングプラットフォームのユーザまたはクライアント)が要求する形式を有する再生ファイルを生成してもよい。生成された当該再生ファイルは、当該再生ファイルDB352に格納され、かつ当該クラウドサーバ380にアップロードされてもよい。
【0056】
一部の実施態様において、当該クラウドサーバ380は、Google GCSサーバであってもよい。一部の実施態様において、当該クラウドサーバ380は、Amazon S3サーバであってもよい。
【0057】
図8、
図9は、本発明の一部の実施態様に基づく方法を示す例示的シーケンス図である。
【0058】
工程S800において、当該配信者D1はストリームセグメントS11をストリーミングサーバ372に送信する。当該ストリームセグメントS11は、配信ファイル(または配信セッション)S1の一部である。配信者D1のユーザIDと当該配信ファイルS1のストリームIDも当該ストリーミングサーバ372に送信される。
【0059】
工程S802において、当該ストリーミングサーバ372は、当該ユーザIDと当該ストリームIDに基づいて固有キーを生成し、当該固有キーに基づいて当該ストリーミングサーバ372上に一時フォルダー(または空間、あるいはファイル)を生成する。
【0060】
その後、フローはループL1に入り、TSファイル(またはストリーム部分)が生成され、当該クラウドサーバにアップロードされる。
【0061】
工程S804において、当該ストリーミングサーバ372は、TSファイルS111を生成し、それにタイムスタンプを付加する。当該TSファイルS111は、当該ストリームセグメントS11から生成される。トランスコード処理やビデオ分割処理が含まれる可能性がある。当該TSファイルS111は、当該一時フォルダーに格納される。
【0062】
工程S806において、当該ストリーミングサーバ372は、当該TSファイルS111を当該クラウドサーバ380上のクラウド空間382にアップロードする。当該アップロードプロセスは、当該一時フォルダー全体を当該クラウド空間382にアップロード/更新/コピーすることを含んでもよい。当該一時フォルダーは当該固有キーで指定されるため、当該クラウド空間382は当該固有キーで指定される。
【0063】
工程S804及びS806と同様の工程が繰り返される。当該ストリームセグメントS11からTSファイルS112、S113、…、S11Mが生成され、順次タイムスタンプが付与され、当該クラウド空間382にアップロードされる。当該ストリームセグメントS11は、M個のTSファイルに変換される。当該数Mは、当該ストリーミングサーバ372上の当該ストリームセグメントS11のTS数と称されてもよい。
【0064】
工程S808において、当該配信者D1にインターネットの切断が発生する。そのため、当該配信ファイルS1の残りがまだ送信されていない。
【0065】
工程S810において、当該ストリーミングサーバ372は、当該TS数、タイムスタンプ情報、当該固有キーを当該プレイリスト生成装置330に送信する。一部の実施態様において、当該TS数と当該タイムスタンプ情報は、ストリーム部分情報と称されてもよい。
【0066】
その後、フローはループL2に入り、当該ストリーミングサーバ372と当該クラウド空間382との間でTS数の整合性が確認される。インターネット切断のタイミングで、すべてのTSファイルが当該ストリーミングサーバ372から当該クラウド空間382に送信されていない可能性がある。
【0067】
工程S812において、当該プレイリスト生成装置330は、当該固有キーで当該クラウド空間382にアクセスし、当該クラウド空間382に保存されている当該TSファイルの当該TS数とタイムスタンプ情報の取得を要求する。
【0068】
工程S814において、当該プレイリスト生成装置330は、(例えば、タイムスタンプ情報により特定される期間の)当該ストリーミングサーバ372上の当該TS数(つまりM)と、当該クラウド空間382上の当該TS数の間の整合性を確認する。整合性があると判断された場合、フローは工程S818に進み、そうでない場合、フローは工程S816に進む。
【0069】
工程S816において、当該プレイリスト生成装置330は、(当該ストリーミングサーバ372上の)残りのTSファイルが当該クラウド空間382にアップロードされるのを待つ。一部の実施態様において、当該待ち時間は、当該ストリーミングサーバ372から当該クラウド空間382にアップロードされるTSファイルのアップロード期間と同じかそれ以上になるように設定されてもよい。
【0070】
例えば、当該プレイリスト生成装置330は、(工程S814での)TS数とタイムスタンプ情報に基づき、当該クラウド空間382に格納されたTSファイル(またはストリーム部分)が(当該ストリーミングサーバ372のTSファイルと比較して)一部の部分を欠いていると判断すると、当該ストリーミングサーバ372が残りの部分を当該クラウド空間372に送信するまで待機する。一部の実施態様において、当該待機工程は、残りのストリーム部分送信待ちと称されてもよい。
【0071】
ループL2の一部(工程S812、S814および/またはS816)は、当該ループL1の一部(最後のTSファイル(複数可)の生成とアップロードなど)と重なって(または同時に実行されて)もよい。一部の実施態様において、当該工程S810は、当該ループL1の最後のいくつかの工程と重なってもよい。
【0072】
工程S818において、当該プレイリスト生成装置330は、当該ストリーミングサーバ372上のすべてのTSファイルが当該クラウド空間382にアップロードされたと判断する。
【0073】
工程S820において、当該プレイリスト生成装置330は、当該TS数と当該タイムスタンプ情報に基づいてプレイリストファイルを生成する。
【0074】
工程S822において、当該プレイリスト生成装置330は、当該プレイリストファイルを当該クラウド空間382にアップロードする。
【0075】
工程S824において、当該プレイリスト生成装置330は関係者に再生URLを通知する。当該再生URLは、当該プレイリストファイルと当該TSファイルが格納された当該クラウド空間382にアクセスまたはアドレス指定するように構成される。一部の実施態様において、当該再生URLは、当該固有キーに対応する。当該再生URLは、例えば、工程S812で取得されてもよい。当該関係者は、バックエンドサーバや、当該配信の再生を見たいと希望するユーザのユーザ端末であってもよい。当該配信の再生(またはリプレイ)は、当該プレイリストファイルおよび当該TSファイルで実行されてもよい。
【0076】
【0077】
工程S900において、配信者D1のインターネット接続が回復し、当該配信者D1はストリームセグメントS12をストリーミングサーバ374に送信する。当該ストリームセグメントS12は、当該配信ファイルS1の一部である。配信者D1のユーザIDと当該配信ファイルS1のストリームIDも当該ストリーミングサーバ374に送信される。
【0078】
工程S902において、当該ストリーミングサーバ374は、当該ユーザIDと当該ストリームIDに基づいて固有キーを生成し、当該固有キーに基づいて当該ストリーミングサーバ374上に一時フォルダー(または空間、あるいはファイル)を生成する。当該ユーザIDと当該ストリームIDも当該配信ファイルS1に対応するため、当該固有キーは工程S802で生成された当該固有キーと同一である。
【0079】
工程S904において、当該ストリーミングサーバ374は当該固有キーにより当該クラウド空間382を特定する。当該ストリーミングサーバ374は、当該固有キーを使用して当該クラウドサーバ380上で検索プロセスを実行し、当該クラウド空間382をアドレス指定してもよい。一部の実施態様において、当該ストリーミングサーバ374によってfetch―or―create(取得または作成)処理が実行されてもよい。
【0080】
その後、フローはループL3に入り、TSファイルが生成され、当該クラウド空間382にアップロードされる。
【0081】
工程S906において、当該ストリーミングサーバ374は、TSファイルS121を生成し、それにタイムスタンプを付加する。当該TSファイルS121は、当該ストリームセグメントS12から生成される。トランスコード処理やビデオ分割処理が含まれる可能性がある。当該TSファイルS121は、当該一時フォルダーに格納される。
【0082】
工程S908において、当該ストリーミングサーバ374は、当該TSファイルS121を当該クラウドサーバ380上の当該クラウド空間382にアップロードする。当該アップロードプロセスは、当該一時フォルダー全体を当該クラウド空間382にアップロード/更新/コピーすることを含んでもよい。
【0083】
工程S906及びS908と同様の工程が繰り返される。当該ストリームセグメントS12からTSファイルS122、S123、…、S12Nが生成され、順次タイムスタンプが付与され、当該クラウド空間382にアップロードされる。当該ストリームセグメントS12は、N個のTSファイルに変換される。当該数Nは、当該ストリーミングサーバ374上の当該ストリームセグメントS12のTS数と称されてもよい。
【0084】
工程S910において、当該配信者D1が配信を終了する。当該配信者D1は、当該配信ファイルS1の当該ストリームIDとともに配信終了信号を送信してもよい。
【0085】
工程S912において、当該ストリーミングサーバ374は、当該TS数、タイムスタンプ情報、当該固有キーを当該プレイリスト生成装置330に送信する。
【0086】
その後、フローはループL4に入り、当該ストリーミングサーバ374と当該クラウド空間382との間でTS数の整合性が確認される。
【0087】
工程S914において、当該プレイリスト生成装置330は、当該固有キーで当該クラウド空間382にアクセスし、当該クラウド空間382に保存されている当該TSファイルの当該TS数とタイムスタンプ情報の取得を要求する。
【0088】
工程S916において、当該プレイリスト生成装置330は、(例えば、タイムスタンプ情報により特定される期間の)当該ストリーミングサーバ374上の当該TS数(つまりN)と、当該クラウド空間382上の当該TS数の間の整合性を確認する。整合性があると判断された場合、フローは工程S920に進み、そうでない場合、フローは工程S918に進む。
【0089】
工程S918において、当該プレイリスト生成装置330は、(当該ストリーミングサーバ374上の)残りのTSファイルが当該クラウド空間382にアップロードされるのを待つ。一部の実施態様において、当該待ち時間は、当該ストリーミングサーバ374から当該クラウド空間382にアップロードされるTSファイルのアップロード期間と同じかそれ以上になるように設定されてもよい。
【0090】
ループL4の一部(工程S914、S916および/またはS918)は、当該ループL3の一部(最後のTSファイル(複数可)の生成とアップロードなど)と重なって(または同時に実行されて)もよい。一部の実施態様において、当該工程S912は、当該ループL3の最後のいくつかの工程と重なってもよい。
【0091】
工程S920において、当該プレイリスト生成装置330は、当該ストリーミングサーバ374上のすべてのTSファイルが当該クラウド空間382にアップロードされたと判断する。
【0092】
工程S922において、当該プレイリスト生成装置330は、当該TS数と当該タイムスタンプ情報に基づいて当該プレイリストファイルを更新する。当該プレイリスト生成装置330は、当該固有キーで当該プレイリストファイルを指定してもよい。
【0093】
工程S924において、当該プレイリスト生成装置330は、当該プレイリストファイルを当該クラウド空間382にアップロード(または更新)する。
【0094】
工程S926において、当該プレイリスト生成装置330は関係者に当該再生URLを通知する。当該固有キーが同じであるため、当該再生URLは工程S824における当該再生URLと同じである。当該関係者は、バックエンドサーバや、当該配信の再生を見たいと希望するユーザのユーザ端末であってもよい。当該配信の再生は、当該プレイリストファイルおよび当該TSファイルで実行されてもよい。
【0095】
図10は、本発明の一部の実施態様に基づく例示的なデータ構造である。
【0096】
図10に示すように、(例えば当該配信者側での)インターネットの切断により、ストリームセグメントA1、A2、A3が異なるストリーミングサーバST1、ST2、ST3に送信される。当該ストリームセグメントA1、A2、A3は同一の配信セッション(または配信ファイル)に属するため、同一のストリーマーID/配信者ID(ABC)と、同一のストリームID(XYZ)に対応する。各ストリーミングサーバが、当該配信者IDと当該ストリームIDに基づいて固有キー(/streamerABC/streamXYZ)を作成し、当該固有キーに基づいてフォルダーを生成し、各ストリームセグメントをTSファイルに変換し、当該TSファイルにタイムスタンプを付け、当該TS数を計算する。
【0097】
当該フォルダー(と当該TSファイル及び当該固有キー)が当該クラウド空間に送信される。3つの当該ストリームセグメントの当該固有キーが同じであるため、当該TSファイルは当該クラウドサーバ上の同一のクラウド空間に送信される。当該クラウド空間も当該固有キーに対応する。
【0098】
(インターネットの切断や配信終了などにより)ストリームセグメントが終了すると、対応する当該ストリーミングサーバが、当該ストリーミングサーバと当該クラウド空間との間のTSファイル情報(TS数とタイムスタンプ)の整合性をチェックするように当該m3u8生成装置に通知する。
【0099】
当該TSファイル情報の整合性チェックが終了すると、当該m3u8生成装置が当該プレイリストファイルの生成または更新を行う。新しいTSファイル情報が当該m3u8プレイリストファイルに追加されると、タグ「EXT―X―ENDLIST」が常に一番下に更新される。
【0100】
本発明は、配信ファイルの個別のストリームセグメントから完全な当該配信ファイルの再生のためのプレイリストファイルを生成することができる。本発明は、当該配信者がインターネットの切断に遭遇するたびに、当該プレイリストファイルを動的に更新することができる。本発明は、当該クラウド空間上の当該ストリーム部分が正しい順序で再生されることを確約するために、タイムスタンプを利用する。本発明は、プレイリスト生成装置を利用して、ストリーム部分情報のチェックや残りストリーム部分の送信待ちなどの処理を実行し、当該クラウド空間上の当該ストリーム部分の完全性を確約する。本発明は、当該配信者IDと当該ストリームIDに対応する固有キーを利用して、同一の配信ファイルのすべてのストリーム部分を同一のクラウド空間内に格納できるように確約する。配信者からストリームセグメントを受信し、ストリーム部分を生成して、当該ストリーム部分を当該クラウドサーバにアップロードするなどの処理は、当該ストリーミングサーバによって同時または並行して実行されてもよい。当該プレイリストファイルをより動的かつ高速に生成することができる。
【0101】
図11は、本発明の一部の実施態様に基づく方法を示す例示的なフローチャートである。ストリームセグメントS11とストリームセグメントS12は、1つの完全な配信ファイルS1に属し、インターネットの切断により配信者から別々に送信される。
【0102】
工程S1100において、当該ストリーミングサーバ372は、当該配信者から配信セグメントS11を受信する。当該ストリームセグメントS11は、TSまたはFLV形式、あるいは別の形式を有していてもよい。当該ストリーミングサーバ372は、当該配信者IDと当該ストリームIDに基づいて固有キーを生成する。
【0103】
工程S1102において、当該ストリーミングサーバ372は当該ストリームセグメントS11からストリーム部分を生成し、当該ストリーム部分にタイムスタンプを付け、当該ストリーム部分と当該固有キーを再生ファイル生成装置332に送信する。
【0104】
工程S1104において、当該プレイリスト生成装置330は、当該ストリーミングサーバ372上のストリーム部分と、当該再生ファイル生成装置332上のストリーム部分の間のストリーム部分情報(ストリーム部分の数とタイムスタンプなど)の整合性をチェックする。当該固有キーは、比較されるそれぞれのストリーム部分の特定に使用されてもよい。当該プレイリスト生成装置330は、すべてのストリーム部分が当該ストリーミングサーバ372から当該再生ファイル生成装置332に送信されるよう確約する。
【0105】
工程S1106において、当該プレイリスト生成装置330は、当該ストリーム部分情報に基づいてプレイリストファイルを生成し、当該プレイリストファイルを当該再生ファイル生成装置332に送信する。当該プレイリストファイルはm3u8形式を有していてもよい。
【0106】
工程S1108において、当該再生ファイル生成装置332は、当該プレイリストファイルと当該ストリーミングサーバ372から受信した当該ストリーム部分に基づき、再生ファイルを生成する。当該再生ファイルの生成にはトランスコード処理が関与してもよい。当該再生ファイルは、MP4またはMKV形式、あるいは別の形式を有していてもよい。一部の実施態様において、当該再生ファイルの形式は、ユーザまたは当該ストリーミングシステムのオペレーターからの設定信号により設定されてもよい。一部の実施態様において、
図10に示すように、当該再生ファイルは、当該クラウド空間内に格納されたデータと同様の形式を有していてもよい。
【0107】
工程S1110において、当該ストリーミングサーバ374は、当該配信者からストリームセグメントS12を受信する。当該ストリーミングサーバ374は、当該配信者IDと当該ストリームIDに基づいて固有キーを生成する。ストリームセグメントS12とS11は同一の配信ファイルS1に対応しているため、ストリームセグメントS12とS11は同一の配信者IDと同一のストリームIDを有している。このため、工程S1110において生成される当該固有キーは、工程S1100において生成される当該固有キーと同一である。
【0108】
工程S1112において、当該ストリーミングサーバ374は当該ストリームセグメントS12からストリーム部分を生成し、当該ストリーム部分にタイムスタンプを付け、当該ストリーム部分と当該固有キーを再生ファイル生成装置332に送信する。
【0109】
工程S1114において、当該プレイリスト生成装置330は、当該ストリーミングサーバ374上のストリーム部分と、当該再生ファイル生成装置332上のストリーム部分の間のストリーム部分情報(ストリーム部分の数とタイムスタンプなど)の整合性をチェックする。当該固有キーと当該タイムスタンプは、比較されるそれぞれのストリーム部分の特定に使用されてもよい。当該プレイリスト生成装置330は、すべてのストリーム部分が当該ストリーミングサーバ374から当該再生ファイル生成装置332に送信されるよう確約する。
【0110】
工程S1116において、当該プレイリスト生成装置330は、当該ストリーム部分情報(と当該固有キー)に基づいて当該プレイリストファイルを更新し、更新された当該プレイリストファイルを当該再生ファイル生成装置332に送信する。
【0111】
工程S1118において、当該再生ファイル生成装置332は、更新された当該プレイリストファイルと当該ストリーミングサーバ374から受信した当該ストリーム部分に基づき、当該再生ファイルを更新する。当該固有キーは、更新される当該再生ファイルの特定に使用されてもよい。当該再生ファイルの更新にはトランスコード処理が関与してもよい。更新された当該再生ファイルは、完全な当該配信ファイルS1に対応し、当該配信ファイルS1の再生に使用されてもよい。
【0112】
工程S1120において、当該再生ファイル生成装置332は、当該再生ファイルを当該クラウドサーバ380にアップロードし、当該再生ファイルにアクセスするための当該URLを関係者に通知する。
【0113】
本実施態様において、ストリームセグメントの受信、当該セグメントからのストリーム部分の生成、当該再生ファイル生成装置への当該ストリーム部分の送信は、同時に、または並列して実行されてもよい。当該ストリーム部分情報の整合性チェックは、当該再生ファイルの完全性を確約する。本発明は、当該配信ファイルの個別のストリームセグメントから完全な当該配信ファイルの再生のための再生ファイルを迅速に生成することができる。
【0114】
図12は、本発明の一部の実施態様に基づく方法を示す例示的なフローチャートである。ストリームセグメントS11とストリームセグメントS12は、1つの完全な配信ファイルS1に属し、インターネットの切断により配信者から別々に送信される。
【0115】
工程S1200において、当該ストリーミングサーバ372は、当該配信者からストリームセグメントS11を受信する。当該ストリーミングサーバ372は、当該配信者IDと当該ストリームIDに基づいて固有キーを生成する。
【0116】
工程S1202において、当該ストリーミングサーバ372は当該ストリームセグメントS11からストリーム部分を生成し、当該ストリーム部分にタイムスタンプを付け、当該ストリーム部分情報と当該固有キーをプレイリスト生成装置330に送信する。
【0117】
工程S1204において、当該プレイリスト生成装置330は、当該ストリーム部分情報に基づき、プレイリストファイルを生成する。当該プレイリストファイルは、当該固有キーに対応する。
【0118】
工程S1206において、当該ストリーミングサーバ374はストリームセグメントS12と当該配信者からの配信終了信号を(またはストリーム終了信号とともに)受信する。当該ストリーミングサーバ374は、当該配信者IDと当該ストリームIDに基づいて固有キーを生成する。当該固有キーは、工程S1200で生成される当該固有キーと同一である。
【0119】
工程S1208において、当該ストリーミングサーバ374は当該ストリームセグメントS12からストリーム部分を生成し、当該ストリーム部分にタイムスタンプを付け、当該ストリーム部分情報と当該固有キーをプレイリスト生成装置330に送信する。当該ストリーム部分情報は、当該配信終了信号を含む。
【0120】
工程S1210において、当該プレイリスト生成装置330は、当該ストリーム部分情報と当該固有キーに基づいて、当該プレイリストファイルを更新する。当該配信終了信号にトリガーされて、当該プレイリスト生成装置330は、当該プレイリストファイルを当該再生ファイル生成装置332に送信する。
【0121】
工程S1212において、当該再生ファイル生成装置332は、当該プレイリストファイルと、当該ストリーミングサーバ372及び374上のストリーム部分で再生ファイルを生成する。当該プレイリストファイルは、当該ストリーミングサーバ372及び374の情報を含んでいてもよい。当該再生ファイル生成装置332は、当該固有キーを利用して、当該ストリーミングサーバ372及び374上にそれぞれ格納された正しいストリーム部分にアクセスし、当該再生ファイルを生成する。トランスコード処理が実行されてもよい。
【0122】
工程S1214において、当該再生ファイル生成装置332は、当該再生ファイルを当該クラウドサーバ380にアップロードし、当該再生ファイルにアクセスするための当該URLを関係者に通知する。
【0123】
本実施態様において、当該再生ファイルの生成は、ストリーミングが適切に終了した後にのみ行われる。関係者は、通知を受け取ったときに、当該配信ファイルの完全な再生を見ることができるように保証される。
【0124】
図13を参照しながら、当該情報処理装置のハードウェア構成について説明する。
図13は、本発明の一部の実施態様に基づく情報処理装置のハードウェア構成例を示すブロック図である。図に示された情報処理装置900は、例えば、一部の実施態様における、当該サーバ10及び(または)当該ユーザ端末20、30を実現することができる。
【0125】
当該情報処理装置900は、CPU901と、ROM(リードオンリーメモリ)903と、RAM(ランダムアクセスメモリ)905を含む。また、当該情報処理装置900は、ホストバス907、ブリッジ909、外部バス911、インターフェイス913、入力装置915、出力装置917、ストレージ装置919、ドライブ921、接続ポート925、通信装置929を含んでもよい。さらに、当該情報処理装置900は、カメラ(図示せず)などの撮像装置を含む。また、当該情報処理装置900は、当該CPU901に加えて、あるいは当該CPU901の代わりに、DSP(デジタルシグナルプロセッサ)やASIC(特定用途向け集積回路)を含んでもよい。
【0126】
当該CPU901は、演算処理装置および制御装置として機能し、当該ROM903、当該RAM905、当該ストレージ装置919、または当該リムーバブル記録媒体923に格納された各種プログラムに従って、当該情報処理装置900のすべてまたは一部の動作を制御する。例えば、当該CPU901は、一部の実施態様における当該サーバ10及び当該ユーザ端末20、30に含まれる各機能ユニットの動作全般を制御する。当該ROM903は、当該CPU901が使用するプログラムや演算パラメータなどを格納する。当該RAM905は、当該CPU901の実行時に使用されるプログラムや、実行時に適宜変化するパラメータなどを格納する主記憶装置として機能する。当該CPU901、ROM903、RAM905は、ホストバス907によって相互接続され、当該ホストバス907は、CPUバスなどの内部バスであってもよい。さらに、当該ホストバス907は、ブリッジ909を介してPCI(ペリフェラルコンポーネントインターコネクト/インターフェイス)バスなどの外部バス911に接続される。
【0127】
当該入力装置915は、マウス、キーボード、タッチパネル、ボタン、スイッチ、レバーなどのユーザが操作する装置、あるいはマイクに代表される音センサ、加速度センサ、傾斜センサ、赤外線センサ、深度センサ、温度センサ、湿度センサなど物理量を電気信号に変換する装置であってもよい。当該入力装置915は、例えば、赤外線等の電波を利用したリモコン装置や、当該情報処理装置900の操作に対応した携帯電話等の外部接続装置927であってもよい。当該入力装置915は、当該ユーザが入力した情報または検出された物理量に基づいて入力信号を生成し、当該CPU901に出力する入力制御回路を含む。当該ユーザは、当該入力装置915を操作することにより、当該情報処理装置900に各種データを入力し、動作を指示する。
【0128】
当該出力装置917は、取得した情報を視覚的または聴覚的に当該ユーザに通知することができる装置である。当該出力装置917は、例えば、LCD、PDP、OLED等のディスプレイ、スピーカーやヘッドフォン等の音声出力装置、プリンタなどであってもよい。当該出力装置917は、当該情報処理装置900による処理結果を、テキスト、画像などの映像、または音声などのオーディオとして出力する。
【0129】
当該ストレージ装置919は、データストレージ用装置であり、当該情報処理装置900のストレージユニットの一例として構成される。当該ストレージ装置919は、例えば、ハードディスクドライブ(HDD)などの磁気記憶装置、半導体記憶装置、光記憶装置、または光磁気記憶装置である。このストレージ装置919は、当該CPU901が実行するプログラム、各種データ、外部から取得した各種データなどを格納する。
【0130】
当該ドライブ921は、磁気ディスク、光ディスク、光磁気ディスク、半導体メモリなどのリムーバブル記録媒体923のリーダー/ライターであり、当該情報処理装置900に内蔵または外付けされる。当該ドライブ921は、装着されたリムーバブル記録媒体923に記録された情報を読み出し、当該RAM905にそれを出力する。さらに、当該ドライブ921は、装着された当該リムーバブル記録媒体923に記録を書き込む。
【0131】
当該接続ポート925は、当該情報処理装置900に機器を直接接続するためのポートである。当該接続ポート925は、例えば、USB(ユニバーサルシリアルバス)ポート、IEEE1394ポート、またはSCSI(小型計算機システムインターフェイス)ポートなどであってもよい。さらに、当該接続ポート925は、RS-232Cポート、光オーディオ端子、HDMI(登録商標)(高精細度マルチメディアインターフェイス)ポートなどであってもよい。当該接続ポート925に当該外部接続装置927を接続することにより、当該情報処理装置900と当該外部接続装置927との間で様々なデータのやり取りを行うことができる。
【0132】
当該通信装置929は、例えば、当該ネットワークNWに接続するための通信装置で形成された通信インターフェイスである。当該通信装置929は、例えば、有線または無線のローカルエリアネットワーク(LAN)、Bluetooth(商標)、または、無線USB(WUSB)用の通信カードであってもよい。さらに、当該通信装置929は、光通信用のルータ、ADSL(非対称デジタル加入者線)用のルータ、または、各種通信用のモデムなどであってもよい。当該通信装置929は、TCP/IPなどの所定のプロトコルを用いて、インターネット上や他の通信装置との間で信号等の送受信を行う。当該通信装置929に接続される当該通信ネットワークNWは、有線または無線で接続されるネットワークであり、例えば、インターネット、家庭内LAN、赤外線通信、電波通信、衛星通信などである。当該通信装置929は、通信装置としての機能を実現する。
【0133】
当該撮像装置(図示せず)は、CCD(電荷結合デバイス)やCMOS(相補型金属酸化膜半導体)などの撮像素子と、当該撮像素子上の被写体像の結像を制御するためのレンズなど各種部材を用いて現実空間の画像を撮像し、撮像画像を生成する装置である。当該撮像装置は、静止画を撮像しても、動画を撮像してもよい。
【0134】
以上、本実施態様に係る当該ライブストリーミングシステム1の構成及び動作について説明した。本実施態様は単なる一例であり、各構成要素や各処理の組み合わせについてさまざまな変更が可能であり、それらの変更も本発明の範囲内であることは当業者には理解されるところである。
【0135】
本発明で説明した処理及び手順は、明示的に説明したものに加えて、ソフトウェア、ハードウェア、またはそれらの任意の組み合わせにより実現することができる。例えば、本明細書で説明した処理および手順は、その処理および手順に対応するロジックを集積回路、揮発性メモリ、不揮発性メモリ、非一時的なコンピュータ可読媒体、磁気ディスクなどの媒体に実装することにより実現することができる。さらに、本明細書に記載された処理および手順は、その処理および手順に対応するコンピュータプログラムとして実現することができ、各種のコンピュータにより実行することができる。
【0136】
さらに、上記実施態様で説明したシステムまたは方法は、固体記憶装置、光ディスク記憶装置、磁気ディスク記憶装置などの非一時的なコンピュータ可読媒体に格納されたプログラムに統合されてもよい。あるいは、プログラムは、インターネットを介してサーバからダウンロードされ、プロセッサにより実行されるものとしてもよい。
【0137】
以上、本発明の技術的内容及び特徴を説明したが、本発明の属する技術分野において通常の知識を有する者であれば、本発明の教示及び開示から逸脱することなく、なお多くの変形及び修正を行うことができる。したがって、本発明の範囲は、既に開示された実施態様に限定されず、本発明から逸脱しない別の変形や修正を含む、特許請求の範囲に含まれる範囲である。
【符号の説明】
【0138】
1 通信システム
10 サーバ
20 ユーザ端末
30、30a、30b ユーザ端末
LV 配信者
AU1、AU2 視聴者
VD、VD1、VD2 映像
NW ネットワーク
30 ユーザ端末
100 配信ユニット
102 撮像コントロールユニット
104 オーディオコントロールユニット
106 映像送信ユニット
108 配信者側UIコントロールユニット
200 視聴ユニット
202 視聴者側UIコントロールユニット
204 重ね合わせ情報生成ユニット
206 入力情報送信ユニット
302 配信情報提供ユニット
304 中継ユニット
306 贈り物処理ユニット
308 支払い処理ユニット
310 ストリームDB
312 ユーザDB
314 贈り物DB
330 プレイリスト生成装置
332 再生ファイル生成装置
350 プレイリストDB
352 再生ファイルDB
362、364、372、374 ストリーミングサーバ
380 クラウドサーバ
382、384 クラウド空間
S700、S702、S704、S706、S708、S710、S712、S714 工程
S800、S802、S804、S806、S808、S810、S812、S814、S816、S818、S820、S822、S824 工程
S900、S902、S904、S906、S908、S910、S912、S914、S916、S918、S920、S922、S924、S926 工程
S1100、S1102、S1104、S1106、S1108、S1110、S1112、S1114、S1116、S1118、S1120 工程
S1200、S1202、S1204、S1206、S1208、S1210、S1212、S1214 工程
900 情報処理装置
901 CPU
903 ROM
905 RAM
907 ホストバス
909 ブリッジ
911 外部バス
913 インターフェイス
915 入力装置
917 出力装置
919 ストレージ装置
921 ドライブ
923 リムーバブル記録媒体
925 接続ポート
927 外部接続装置
929 通信装置
【要約】 (修正有)
【課題】プレイリスト生成のためのシステム及び方法を提供する。
【解決手段】方法は、第1のストリーミングサーバからストリーム部分の第1の情報と固有キーを取得する工程と、クラウドサーバの空間上に格納されたストリーム部分の第1のセットが当該第1のストリーム部分情報と一致すると判定し、当該空間が当該固有キーによってアドレス指定可能である工程と、当該第1のストリーム部分情報に基づきプレイリストファイルを生成する工程と、第2のストリーミングサーバから第2のストリーム部分情報と当該固有キーを取得する工程と、当該クラウドサーバの当該空間上に格納されたストリーム部分の第2のセットが当該第2のストリーム部分情報と一致すると判定する工程と、当該第2のストリーム部分情報に基づき当該プレイリストファイルを更新する工程と、を含む。
【選択図】
図11