以下、各図面に示す同一または類似の構成要素、部材、手順または信号には、すべての図面において同様の符号を付し、それによって重複する説明は適宜省略される。また、各図面の説明において重要でない一部部材は省略される。
本発明の一部の実施態様に基づくライブストリーミングシステム1は、ユーザ間のコミュニケーションと交流を円滑にする強化機能を提供する。より具体的には、技術的な方法で視聴者やストリーマーを楽しませるものである。
図1に本発明の一部の実施態様に基づくライブストリーミングシステム1の構成を示す概略図を示す。当該ライブストリーミングシステム1は、ストリーミング配信者(ライブ配信者またはストリーマーとも呼ばれる)LVと視聴者(観衆とも呼ばれる)AU(AU1、AU2...)に、リアルタイムで相互交流するためのライブストリーミングサービスを提供する。図1に示すように、当該ライブストリーミングシステム1は、サーバ10と、ユーザ端末20と、ユーザ端末30(30a、30b...)を含むことができる。当該ユーザ端末20はストリーマー、当該ユーザ端末30は視聴者であってもよい。一部の実施態様において、当該ストリーマーと視聴者はユーザと呼ばれてもよい。当該サーバ10は、ネットワークNWを介して接続された、1または複数の情報処理装置を含むことができる。当該ユーザ端末20、30は、例えば、スマートフォン、タブレット、ノートPC、レコーダー、携帯ゲーム機、ウェアラブル端末などの携帯端末や、デスクトップPCなどの据置型コンピュータであってもよい。当該サーバ10、ユーザ端末20、ユーザ端末30は、任意の種類の有線または無線ネットワークNWにより通信可能に接続されてもよい。
当該ライブストリーミングシステム1には、当該ストリーマーLV、当該視聴者AU、当該サーバ10を提供するアプリプロバイダー(図示せず)が関与する。当該ストリーマーLVは、 自身の歌、トーク、パフォーマンス、ゲームストリーミングなどのコンテンツを自身のユーザ端末20で収録して当該サーバ10にアップロードし、リアルタイムでコンテンツを配信する者であってもよい。一部の実施態様において、当該ストリーマーLVは、当該ライブストリーミングを介して当該視聴者AUと交流することができる。
当該アプリプロバイダーは、当該サーバ10においてライブストリーミングされるコンテンツのためのプラットフォームを提供することができる。一部の実施態様において、当該アプリプロバイダーは、当該ストリーマーLVと当該視聴者AU間のリアルタイム通信を管理するメディアまたはマネージャであってもよい。当該視聴者AUは、当該ユーザ端末30により当該プラットフォームにアクセスし、自身が視聴したいコンテンツを選択して視聴することができる。当該視聴者AUは、当該ユーザ端末30により当該ストリーマーに対してコメントしたり、応援したりする操作を行うことができる。コンテンツを提供する当該ストリーマーは、当該コメントや応援に応答することができる。当該ストリーマーの応答は、映像及び(または)音声などにより当該視聴者AUに送信することができる。従って、当該ストリーマーと視聴者間の相互通信を達成することができる。
本明細書でいう「ライブストリーミング」とは、当該ストリーマーLVが当該ユーザ端末20により記録したコンテンツを、当該視聴者AUが当該ユーザ端末30を介して実質的に再生・視聴することを可能にする、データ伝送を指すことができる。一部の実施態様において、「ライブストリーミング」は、上述のデータ伝送により実現されるストリーミングを指してもよい。当該ライブストリーミングは、HTTPライブストリーミング、CMAF(Common Media Application Format)、WebRTC(Web Real-Time Communications)、RTMP(Real-Time Messaging Protocol)、MPEG DASHなど、公知の技術によって実現することができる。当該ライブストリーミングは、さらに、当該ストリーマーがコンテンツを記録している間、当該視聴者AUが特定の遅延をもって当該コンテンツを再生または視聴することができる、実施形態を含んでもよい。当該遅延の程度については、少なくとも当該ストリーマーLVと当該視聴者AUがコミュニケーションを行うことができる程度に小さいことが望ましい。ただし、ライブストリーミングは、いわゆるオンデマンド配信とは異なる。より具体的に、当該オンデマンド配信とは、当該コンテンツを記録したすべてのデータをサーバに格納し、ユーザの要求に応じてランダムなタイミングで当該サーバから当該ユーザにデータを提供することを指してもよい。
本明細書における「ストリーミングデータ」とは、画像データや音声データを含むデータを指してもよい。より具体的に、当該画像データ(ビデオデータと呼んでもよい)は、当該ユーザ端末20と30の画像キャプチャ機能によって生成されてもよい。当該音声データ(オーディオデータと呼んでもよい)は、当該ユーザ端末20と30の音声入力機能により生成されてもよい。当該ストリーミングデータを当該ユーザ端末20、30で再生し、ユーザに関するコンテンツを視聴できるようにしてもよい。一部の実施態様において、当該ストリーマーの当該ユーザ端末でストリーミングデータが生成されてから、当該視聴者の当該ユーザ端末で再生されるまでの間、圧縮、拡張、エンコード、デコード、トランスコードなど、データの形式、サイズ、規格を変更する処理が想定される。このような処理の前と後、当該コンテンツ(映像や音声)は実質的に変更されず、このため、本発明の現在の実施態様においては、処理される前のストリーミングデータと処理された後のストリーミングデータは同じであると説明される。つまり、当該ストリーマーの当該ユーザ端末により生成された当該ストリーミングデータが、当該サーバ10を介して当該視聴者の当該ユーザ端末で再生される場合、当該ストリーマーの当該ユーザ端末で生成された当該ストリーミングデータ、当該サーバ10を通過した当該ストリーミングデータ、そして当該視聴者の当該ユーザ端末が受信して再生する当該ストリーミングデータは、すべて同じストリーミングデータである。
図1に示すように、ストリーマーLVはライブストリーミングを提供する。当該ストリーマーのユーザ端末20は、当該ストリーマーの映像及び(または)音声を記録することにより、ストリーミングデータを生成し、ネットワークNWを介してサーバ10に送信する。同時に、当該ユーザ端末20は映像VDを当該ユーザ端末20のディスプレイ上に表示し、当該ストリーマーLVのストリーミングコンテンツをチェックすることができる。
当該ストリーマーのライブストリーミングの提供をプラットフォームに要求するユーザ端末30a、30bの視聴者AU1、AU2は、当該ネットワークNWを介して当該ライブストリーミングに対応するストリーミングデータを受信し、受信したストリーミングデータを再生してディスプレイ上に映像VD1、VD2を表示し、スピーカーなどから音声を出力することができる。当該ユーザ端末30a、30b上にそれぞれ表示される当該映像VD1、VD2は、当該ストリーマーLVの当該ユーザ端末により記録された当該映像と実質的に同じであり、当該ユーザ端末30a、30bから出力される当該音声は、当該ストリーマーLVの当該ユーザ端末により記録された当該音声と実質的に同じである。
当該ストリーマーの当該ユーザ端末20での記録は、当該視聴者AU1、AU2の当該ユーザ端末30a、30bでのストリーミングデータの再生と同時であってもよい。当該視聴者AU1が当該ストリーマーLVのコンテンツに関するコメントを当該ユーザ端末30aに入力すると、当該サーバ10は、当該コメントを当該ストリーマーの当該ユーザ端末20にリアルタイムで表示するとともに、当該視聴者AU1、AU2の当該ユーザ端末30a、30bにもそれぞれ表示する。当該ストリーマーLVが当該コメントに応答した場合、当該応答を当該視聴者AU1、AU2の当該ユーザ端末30a、30bからテキスト、画像、映像または音声として出力し、当該ストリーマーLVと当該視聴者AU1、AU2のコミュニケーションを実現することができる。従って、当該ライブストリーミングシステムは、双方向通信のライブストリーミングを実現することができる。
図2は、本発明の実施態様に基づく、図1に示すユーザ端末20の機能と構成を示すブロック図である。当該ユーザ端末30は、当該ユーザ端末20と同様の機能と構成を有する。本明細書のブロック図に描かれているブロックは、コンピュータのCPUなどのデバイスや機械部品などのハードウェア、およびこれらの要素の連携によって実施される機能ブロックを表現する、コンピュータプログラムなどのソフトウェアで実施される。したがって、機能ブロックは、ハードウェアとソフトウェアの組み合わせによる多様な態様で実装され得ることが、当業者には理解されよう。
当該ストリーマーLVと視聴者AUは、ネットワークNWを介して、ダウンロードサイトから本発明のライブストリーミングアプリケーション(ライブストリーミングアプリ)を当該ユーザ端末20と30にダウンロードしてインストールすることができる。または、当該ライブストリーミングアプリは、当該ユーザ端末20と30に予めインストールされていてもよい。当該ユーザ端末20と30によるライブストリーミングの実行により、当該ユーザ端末20と30は、当該ネットワークNWを介して当該サーバ10と通信し、複数の機能を実現することができる。当該ユーザ端末20と30(より具体的に、CPUなどのプロセッサ)による当該ライブストリーミングアプリの実行により実現される当該機能は、当該ユーザ端末20と30の機能として以下で説明される。当該機能は基本的に、当該ライブストリーミングアプリが当該ユーザ端末20と30に実現させる機能である。一部の実施態様において、これらの機能は、ネットワークNWを介して当該サーバ10から当該ユーザ端末20と30のウェブブラウザに送信し、当該ウェブブラウザのコンピュータプログラムにより実行されることにより実現されてもよい。当該コンピュータプログラムは、HTML(Hyper Text Markup Language)などのプログラミング言語で書かれていてもよい。
当該ユーザ端末20は、ストリーミングユニット100と視聴ユニット200を含む。一部の実施態様において、当該ストリーミングユニット100は、ユーザのオーディオ及び(または)ビデオデータを記録し、当該サーバ10に送信するストリーミングデータを生成するように構成される。当該視聴ユニット200は、サーバ10からストリーミングデータを受信し、再生するように構成される。一部の実施態様において、ユーザは、ブロードキャスト時に当該ストリーミングユニット100を作動させる、またはストリーミングを視聴するときに当該視聴ユニット200を作動させることができる。一部の実施態様において、当該ストリーミングユニット100を作動させる当該ユーザ端末は、ストリーマーと呼ぶことができ、またはストリーミングデータを生成する当該ユーザ端末と呼ぶことができる。当該視聴ユニット200を作動させる当該ユーザ端末は、視聴者と呼ぶことができ、または当該ストリーミングデータを再生する当該ユーザ端末と呼ぶことができる。
当該ストリーミングユニット100は、ビデオコントロールユニット102と、オーディオコントロールユニット104と、配信ユニット106と、UIコントロールユニット108を含むことができる。当該ビデオコントロールユニット102は、カメラ(図示せず)に接続されてもよく、当該映像は当該カメラにより制御される。当該ビデオコントロールユニット102は、当該カメラから当該ビデオデータを取得することができる。当該オーディオコントロールユニット104は、マイク(図示せず)に接続されてもよく、音声は当該マイクにより制御される。当該オーディオコントロールユニット104は、当該マイクから当該オーディオデータを取得することができる。
当該配信ユニット106は、当該ビデオコントロールユニット102からのビデオデータと、当該オーディオコントロールユニット104からのオーディオデータを含むストリーミングデータを受信し、ネットワークNWを介して当該サーバ10に送信する。一部の実施態様において、当該配信ユニット106は当該ストリーミングデータをリアルタイムで送信する。つまり、当該ビデオコントロールユニット102と当該オーディオコントロールユニット104からの当該ストリーミングデータの生成と、当該配信ユニット106の配信は同時に実行される。
当該UIコントロールユニット108は、当該ストリーマーのUIを制御する。当該UIコントロールユニット108はディスプレイ(図示しない)に接続され、当該配信ユニット106が当該ストリーミングデータを送信し、再生して当該ディスプレイ上に表示する相手に対して当該ストリーミングデータを生成するように構成される。当該UIコントロールユニット108は、操作するオブジェクトまたは指示を受けるオブジェクトをディスプレイ上に表示し、ストリーマーからのタップ入力を受け付けるように構成される。
当該視聴ユニット200は、UIコントロールユニット202と、レンダリングユニット204と、入力ユニット206を含んでもよい。当該視聴ユニット200は、ネットワークNWを介してサーバ10からストリーミングデータを受信するように構成される。当該UIコントロールユニット202は、当該視聴者のUIを制御する。当該UIコントロールユニット202は、ディスプレイ(図示せず)及び(または)スピーカー(図示せず)に接続され、当該ストリーミングデータを再生することにより、当該ディスプレイ上に映像を表示し、当該スピーカーから音声を出力するように構成される。一部の実施態様において、当該ディスプレイ上に映像を出力し、当該スピーカーから音声を出力することを「ストリーミングデータを再生する」ことと呼ぶことができる。
当該UIコントロールユニット202は、タッチパネルやキーボード、ディスプレイなどの入力ユニットに接続され、ユーザからの入力を取得することができる。当該レンダリングユニット204は、当該サーバ10からのストリーミングデータと、フレーム画像とをレンダリングするように構成されてもよい。当該フレーム画像は、ユーザからの入力、視聴者により入力されたコメント、当該サーバ10から受信したデータを受け付けるためのユーザインターフェイスオブジェクトを含んでもよい。当該入力ユニット206は、当該UIコントロールユニット202から当該ユーザ入力を受信し、当該ネットワークNWを介して当該サーバ10に送信するように構成される。
図3は、本発明の一部の実施態様に基づくサーバ10のブロック図である。当該サーバ10は、ストリーミング情報ユニット302、中継ユニット304、記録ユニット306、処理ユニット308、コンテキストユニット310、ストリームDB320、アーカイブDB322、コンテキストDB324を含んでもよい。
当該ストリーミング情報ユニット302は、当該ネットワークNWを介して当該ストリーマーの当該ユーザ端末20からライブストリーミングの要求を受信する。要求を受信すると、当該ストリーミング情報ユニット302は、当該ライブストリーミングの情報を当該ストリームDB320に登録する。一部の実施態様において、当該ライブストリーミングの情報は、当該ライブストリーミングのストリームID及び(または)当該ライブストリーミングに対応する当該ストリーマーのストリーマーIDであってもよい。
当該視聴者から当該ネットワークNWを介して当該ユーザ端末30の当該視聴ユニット200から当該ライブストリーミングの当該情報の提供要求を受信すると、当該ストリーミング情報ユニット302は当該ストリームDB320を参照し、利用可能なライブストリーミングのリストを生成する。
その後、当該ストリーミング情報ユニット302は、当該ネットワークNWを介して当該ユーザ端末30に当該リストを送信する。当該ユーザ端末30の当該UIコントロールユニット202は、当該リストに基づいてライブストリーミング選択画面を生成し、当該ユーザ端末30のディスプレイ上に当該リストを表示する。
当該ユーザ端末30の当該入力ユニット206は、当該ライブストリーミング選択画面上での当該視聴者によるライブストリーミングの選択を受信すると、選択された当該ライブストリーミングの当該ストリームIDを含む配信要求を生成し、当該ネットワークを介して当該サーバ10に送信する。当該ストリーミング情報ユニット302は、当該配信要求で当該ストリームIDにより指定された当該ライブストリーミングの当該ユーザ端末30に対する提供を開始することができる。当該ストリーミング情報ユニット302は、当該ストリームDB320を更新し、当該ユーザ端末30の当該視聴者の視聴者IDを当該ストリームIDの当該ストリーマーIDに追加することができる。
当該中継ユニット304は、当該ストリーミング情報ユニット302により開始された当該ライブストリーミングにおいて、当該ストリーマーの当該ユーザ端末20から、当該視聴者の当該ユーザ端末30へのライブストリーミングの送信を中継することができる。当該中継ユニット304は、ストリーミングデータの再生中に、当該視聴者からのユーザ入力を示す信号を当該入力ユニット206から受信することができる。当該ユーザ入力を示す当該信号は、当該ユーザ端末30のディスプレイに表示されるオブジェクトの指定を示すオブジェクト指定信号であってもよい。当該オブジェクト指定信号は、当該視聴者の視聴者ID、当該視聴者が視聴しているライブストリーミングを配信するストリーマーのストリーマーID、及び当該オブジェクトにより指定されるオブジェクトIDを含んでもよい。当該オブジェクトが贈り物などである場合、当該オブジェクトIDは、贈り物IDなどであってもよい。同様に、当該中継ユニット304は、ストリーミングデータの再生中に、当該ユーザ端末20の当該ストリーミングユニット100から、例えば当該オブジェクト指定信号など、当該ストリーマーのユーザ入力を示す信号を受信することができる。
当該記録ユニット306は、当該ライブストリーミングを記録するように構成されてもよい。一部の実施態様において、当該記録ユニット306は、当該ストリーマーの当該ユーザ端末20による設定に基づき、自動でまたは手動で当該ライブストリーミングを記録してもよい。例えば、当該ストリーマーは当該ライブストリーミングを開始する前に、当該ライブストリーミングを自動的に記録してアーカイブするために、自動アーカイブ機能をオンにしてもよい。当該記録ユニット306は、当該ストリーマーが配信を開始したとき当該ライブストリーミングの記録を開始し、当該ライブストリーミングが終了したら記録を停止してもよい。また一部の実施態様において、当該ストリーマーまたは当該視聴者は、当該ライブストリーミング中、手動で当該ライブストリーミングをクリップしてもよい。
一部の実施態様において、当該記録ユニット306は、当該アーカイブコンテンツの最大期間、例えば8時間など、当該ライブストリーミングを記録してもよい。例えば、当該記録ユニット306は、最大8時間などの期間、当該ライブストリーミングを記録してもよい。当該ライブストリーミングの持続期間が8時間未満の場合、当該記録ユニット306は、当該ライブストリーミングを記録してアーカイブしてもよい。しかし、当該ライブストリーミングが8時間より長い場合、当該記録ユニット306は当該ライブストリーミングを8時間記録し、さらに次の8時間またはそれ以下の別の記録を開始してもよい。
一部の実施態様において、当該ライブストリーミングの当該アーカイブコンテンツは、Google Cloudなどのストレージに格納され、当該アーカイブコンテンツのデータが参照とさらなる処理のために当該アーカイブDB322に登録されてもよい。一部の実施態様において、HTTPライブストリーミング(HLS)などの任意の可能な伝送プロトコルが、当該サーバと当該ユーザ端末との間で適用されてもよい。一部の実施態様において、当該記録ユニット306は、ストリーミングソースからライブストリーミングを受信し、当該ライブストリーミングをアーカイブコンテンツとして記録してもよい。
ライブストリーミングの通信時には、異なる伝送プロトコルが使用されてもよい。ここでは、HTTPライブストリーミング(HLS)を例に挙げて説明する。HTTPライブストリーミング(HLS)は、Apple社が提唱するHTTPベースのストリーミングメディアネットワーク伝送プロトコルである。HLSは、M3U8セグメントインデックスファイルとトランスポートストリーム(TS)セグメントとで構成される。
M3U8ファイルは、tsセグメントのインデックスファイルと呼ばれてもよく、tsセグメントのダウンロードアドレスをサーバに格納するために使用されてもよい。ユーザ端末は、M3U8ファイルに基づき、tsセグメントを順番に読み出すことができる。tsセグメントは、ビデオファイル全体やビデオストリームを分割して得られるビデオクリップと呼んでもよい。各tsセグメントは、映像の複数のフレームを含んでもよい。1つのtsセグメントは、1~2秒程度などであってもよい。各tsセグメントは、映像の複数のフレームを含む1つ以上のGOP(Group Of Picture)構造を含んでもよい。1つのGOPは、Iフレーム、Pフレーム、Bフレームなどの異なるフレームタイプを含んでもよい。SEIメッセージは、Iフレームに挿入して保存することができる。
HLSは、オーディオおよびビデオストリーム全体をダウンロード用にHTTPベースの小さなファイルに分割し、毎回ファイルの一部のみがダウンロードされてもよい。メディアストリームの再生時、視聴者は、多くの異なる代替ソースから異なるレートで同じリソースをダウンロードすることを選択し、ストリーミングメディアセッションが異なるデータレートに適応するようにしてもよい。
異なるストリーミングソースは、FLVまたはM3U8などのストリーミングデータの異なる形式を提供してもよい。当該記録ユニット306は、ストリーミングソースからストリーミングデータを受信し、当該ストリーミングデータの形式を任意の種類の形式に変換して処理してもよい。当該記録ユニット306は、当該アーカイブコンテンツを任意の可能な形式のストリーミングデータとして記録し、格納してもよい。ここでは、tsセグメントを用いたM3U8プレイリストを例に挙げて説明する。当該記録ユニット306は、当該処理ユニット308が確認し、ストレージに格納するために、当該ライブストリーミングのストリーミングデータをtsセグメントとして記録してもよい。
当該処理ユニット308は、当該アーカイブコンテンツを処理するように構成されてもよい。一部の実施態様において、当該処理ユニット308は、当該アーカイブコンテンツをチェックし、トランスポートストリーム(TS)セグメントとして格納してもよい。当該処理ユニット308は、当該TSセグメントに対してM3U8再生リストをさらに生成してもよい。一部の実施態様において、当該処理ユニット308は、7日、14日などの特定の期間、ストレージおよびデータベースに当該アーカイブコンテンツを保持してもよい。これにより、メモリが効率的に使用される。
当該コンテキストユニット310は、インタラクション情報のコンテキストを取り扱うように構成されてもよい。ここで、当該コンテキストとは、レンダリングコンテキストを指してもよい。当該コンテキストは、視聴者からのインタラクション情報を含んでもよい。例えば、視聴者は、ストリーマーにメッセージを送信したり、贈り物を送信したりしてもよく、当該コンテキストは、メッセージ、贈り物メッセージ、アニメーション、贈り物アニメーション等の情報を含んでもよい。当該コンテキストユニット310は、視聴者からのインタラクション情報を受信し、当該インタラクション情報を当該コンテキストDB324に格納してもよい。一部の実施態様において、当該コンテキストユニット310は、異なるユーザからのコンテキストを処理するための複数の作業ユニットを含んでもよい。
一部の実施態様において、当該コンテキストユニット310は、バックエンドサーバを介して視聴者からインタラクション情報を受信してもよい。一部の実施態様において、当該コンテキストユニット310は、バックエンドサーバを介してストリーマー端末からのインタラクション情報を受信してもよい。例えば、ストリーマーは、視聴者にメッセージを送信するなどしてもよい。一部の実施態様において、当該コンテキストユニット310は、当該バックエンドサーバからインタラクション情報を直接受信してもよい。例えば、バックエンドサーバは、VIPユーザがオンラインであり、ライブストリーミングに参加することを通知するメッセージを送信してもよく、コンテキストは、VIPオンライン通知のインタラクション情報を含んでもよい。一部の実施態様において、当該バックエンドサーバは、UTC時刻情報などの識別子を含むインタラクション情報を送信してもよい。一部の実施態様において、当該コンテキストユニット310は、ライブストリーミング中に、テキスト、画像、アニメーション、通知などの任意の種類のインタラクション情報を受信してもよい。
図4に、図3のストリームDB320の例示的データ構造を示す表を示す。当該ストリームDB320は、ライブストリーミングを識別するストリームIDと、それぞれのライブストリーミングを行うストリーマーを識別するストリーマーIDと、それぞれのライブストリーミングを視聴する視聴者を識別する視聴者IDとを関連付けて記憶する。
図5に、図3のアーカイブDB322の例示的データ構造を示す表を示す。当該アーカイブDB322は、アーカイブコンテンツを識別するアーカイブIDと、当該アーカイブコンテンツの時刻情報を識別するタイムスタンプと、当該アーカイブコンテンツの持続時間を識別する持続時間と、当該アーカイブコンテンツの場所を識別するアーカイブURLとを関連付けて記憶する。
図6に、図3のコンテキストDB324の例示的データ構造を示す。当該コンテキストDB324は、コンテキストを識別するコンテキストIDと、コンテキストの種類を識別するタイプと、コンテキストの時刻情報を識別するタイムスタンプとを関連付けて格納する。
図7は、本発明の一部の実施態様に基づくアーカイブサービスのブロック図である。図7に示すように、当該ストリーマーは、アプリにおいてアーカイブ機能をオンにしてもよい。一部の実施態様において、当該ストリーマーはアーカイブ機能のアイコンを切り替え、ライブストリーミングをアーカイブしたいことを示してもよい。バックエンドは、アーカイブ制御マネージャに、当該ストリーマーのためのアーカイブタスクを登録するように通知してもよい。一部の実施態様において、当該バックエンドは、メッセージングなどによって、アーカイブ機能のセットアップが成功したことを当該ストリーマーにさらに通知してもよい。
当該ストリーマーは、ストリーミングデータを当該ストリーミングサーバにプッシュすることにより、ライブストリーミングをさらに開始してもよい。一部の実施態様において、当該ストリーマーは、スマートフォンなどの携帯端末によってライブストリーミングを開始してもよい。一部の実施態様において、当該ストリーマーは、OBS(Open Broadcaster Software)等のコンピュータ上のソフトウェアによって当該ライブストリーミングを開始してもよい。当該アーカイブサービスは、当該ストリーマーからの任意の種類のストリーミング方式に適用されてもよい。当該記録ユニット306は、記録のために当該ライブストリーミングを引き出してもよい。一部の実施態様において、当該記録ユニット306は、ライブストリーミングを記録しながら、アーカイブ映像のフレームに識別子を挿入してもよい。例えば、当該識別子は、当該アーカイブ映像のフレームのSEI(Supplemental Enhancement Information、補助拡張情報)内にそれぞれ挿入されてもよい。したがって、アーカイブ映像の当該フレームは、識別子情報を含んでもよい。
一部の実施態様において、当該tsセグメントの持続時間は1秒であってもよく、当該tsセグメントは1つのGOP構造を含んでもよい。1つのGOP構造は、1つのIフレーム及びいくつかのPフレームを含んでもよい。Iフレームは主フレームであってもよく、Pフレームは補助フレームであってもよい。例えば、Iフレームは、ライブストリーミングのオリジナルフレームの主フレーム情報を含んでもよく、Pフレームは、現在のIフレームと以前のIフレームとの差分などのいくつかの補助的な情報を含んでもよい。本実施態様によれば、伝送量を低減することができる。
一部の実施態様において、1つのtsセグメントは、1つのIフレームを有する1つのGOPを含んでもよく、これは識別子を有するSEIメッセージを挿入するために使用されてもよい。つまり、1つのtsセグメントは、UTC時刻情報など1つの識別子を含んでもよい。一部の実施態様において、1つのtsセグメントは、記録または接続により、より多くのIフレームを有するより多くのGOPを含んでもよいため、1つのtsセグメントは、複数のUTC時刻情報などを含んでもよい。
SEIは、オーディオおよび映像のビットストリームに挿入され、追加情報を伝えるためのテキストデータと呼ぶことができる。SEIは、H.264ビデオコーディングにおける標準的なNAL(ネットワーク抽象化レイヤ)であり、映像のさまざまな特性を記述するさまざまなタイプのデータを含むことができる。また、SEIメッセージには、任意のユーザ定義データを含めることができる。さらに、SEIメッセージは、コアデコーディングプロセスに影響を与えることなく、映像をどのように後処理または表示することが推奨されるかを示すことができる。
一部の実施態様において、当該識別子は、当該SEIメッセージに含まれてもよい。一部の実施態様において、当該識別子は、アーカイブビデオ専用のUUID(Universal Unique Identifier、個体識別番号)を含んでもよい。当該識別子は、当該アーカイブ映像のフレームに保存されてもよい。一部の実施態様において、当該識別子は、一意の一連の数字、文字、テキスト、記号、上記の組み合わせなどであってもよい。一部の実施態様において、当該識別子は、映像のフレームまたは映像のtsセグメントを互いに識別してもよい。つまり、当該映像のフレームまたは当該映像の各tsセグメントの識別子は、一意であり、他とは異なっていてもよい。
一部の実施態様において、当該識別子は、当該アーカイブ映像のフレームの時間情報であってもよい。一部の実施態様において、当該時間情報は、相対時間であってもよい。例えば、当該時間情報は、当該アーカイブ映像の先頭を基準としたフレームの時間長さ、または当該アーカイブ映像の前のフレームを基準としたフレームの時間長さなどを示していてもよい。
一部の実施態様において、当該時間情報は、ライブストリーミングの絶対時間情報であってもよい。例えば、当該記録ユニット306は、ライブストリーミングをアーカイブ映像として記録しながら、各フレームの絶対時間を保存してもよい。一部の実施態様において、当該絶対時間は、グリニッジ標準時(GMT)、協定世界時(UTC)等の標準時刻であってもよい。例えば、ストリーマーが2022-08-05T06:00:00Zから2022-08-05T07:00:00Zまでのライブストリーミングを開始する場合、当該記録ユニット306は、アーカイブ映像のフレームのSEIメッセージにUTCタイムスタンプを書き込み、当該アーカイブ映像の対応するフレームにSEIメッセージを保存してもよい。
一部の実施態様において、当該識別子は、記録中に当該記録ユニット306によってタグ付けされるタグであってもよい。例えば、当該記録ユニット306は、アーカイブ映像のフレームにタグを追加してもよい。当該バックエンドサーバは、さらに、対応するタグを有するコンテキストを当該コンテキストユニット310に送信してもよい。したがって、当該コンテキストユニット310は、アーカイブ視聴者が当該タグを有するコンテキストをクエリしたとき、対応するタグを有するコンテキストを当該アーカイブ視聴者に送信してもよい。一部の実施態様において、当該識別子は、アーカイブコンテンツのフレームを互いに識別し、フレームを対応するコンテキストとそれぞれ接続する一意のコードであってもよい。一部の実施態様において、当該コードは、サーバ10または別のサードパーティのサーバ等によって生成されてもよい。
一部の実施態様において、当該アーカイブ映像の各フレームにタグを挿入するために、AIタギング技術が適用されてもよい。ここで、AIタギングとは、人工知能を用いてメディアファイルにメタデータのタグ付けを行う処理を指してもよい。例えば、当該記録ユニット306が特定の機能を持つタグを自動的に追加し、当該バックエンドサーバが対応するタグを持つコンテキストを生成するようにしてもよい。当該AIタギングは、ストリーマーや視聴者からの音声、映像、テキスト、画像、アニメーションなどを検出し、当該アーカイブ映像の対応するフレームに挿入されるタグを生成してもよい。例えば、ストリーマーが車について話し、その会話中にAIタグが挿入されてもよい。当該バックエンドサーバはさらに、「車について会話が進行中」または車の広告映像などの情報を生成し、対応するタグを挿入して、当該コンテキストユニット310に送信してもよい。これにより、当該アーカイブ映像は、ストリーマーが話していた話題をより理解することができる。また、視聴者がストリーマーの話の重点を聞き取れなかった場合、当該視聴者は、画面上に表示されたより多くの情報を有するアーカイブ映像にアクセスしてもよい。
一部の実施態様において、当該AIタギングは、ストリーマーまたは視聴者の位置情報や時間情報に基づいて、適用されてもよい。例えば、ストリーマーがカフェで放送していた場合、当該記録ユニット306は、カフェの場所を示すタグを挿入してもよい。当該アーカイブ視聴者は、アーカイブコンテンツを確認しながら、当該カフェの情報を受信してもよい。さらに、当該記録ユニット306は、1時間など定期的にタグを挿入し、アーカイブ視聴者が視聴した時間を示す、またはアーカイブ視聴者に休憩を取るよう通知するために、対応するタグを有するメッセージのコンテキストを生成してもよい。
一部の実施態様において、当該視聴者は、ライブストリーミングを視聴するために、ストリーミングサーバからライブストリーミングを引き出してもよい。当該視聴者は、コメント、贈り物などでストリーマーと交流(インタラクション)してもよく、インタラクション情報がバックエンドサーバを介して当該ストリーマーまたは他の視聴者に送信されてもよい。一部の実施態様において、当該バックエンドサーバはさらに当該コンテキストユニット310に当該インタラクション情報を送信してもよい。当該コンテキストユニット310は、当該インタラクション情報を処理するための1つまたは複数の作業ユニットを含んでもよい。例えば、当該作業ユニットは、当該インタラクション情報を当該コンテキストDB324に書き込んでもよい。
一部の実施態様において、当該バックエンドサーバが当該インタラクション情報を当該コンテキストユニット310に送信するとき、当該インタラクション情報は、識別子も含んでいてもよい。より具体的に、当該識別子は、当該バックエンドサーバが当該インタラクション情報を受信するための当該時間情報であってもよい。一部の実施態様において、当該時間情報は、相対時間あるいは、GMT時刻、UTC時刻などの絶対時間であってもよい。例えば、視聴者は、当該バックエンドサーバを介してストリーマーにメッセージを送信してもよく、当該バックエンドサーバは、当該時間情報を当該インタラクション情報内の識別子として保存してもよい。一部の実施態様において、当該コンテキストユニット310はさらに、識別子を有する当該インタラクション情報を受信し、当該コンテキストDB324に書き込んでもよい。
一部の実施態様において、別の視聴者のユーザ端末(アーカイブ視聴者と称してもよい)は、当該アーカイブサービスからアーカイブコンテンツを要求してもよい。当該処理ユニット308は、当該tsセグメントに対してM3U8再生リストを生成してもよい。当該M3U8再生リストは、tsセグメントのリストと、各フレームまたはtsセグメントの識別子情報とを含んでもよい。当該識別子情報は、例えば、各フレームまたはtsセグメントそれぞれのUTC情報を含んでもよい。
当該アーカイブ視聴者が当該アーカイブコンテンツを再生するとき、当該アーカイブ視聴者のユーザ端末は、当該アーカイブ映像のフレーム内のSEIメッセージを解析し、当該UTC情報を含む当該識別子情報を取得してもよい。一部の実施態様において、当該アーカイブ視聴者のユーザ端末は、当該UTC情報に基づき、対応するコンテキストについて当該コンテキストユニット310にさらにクエリしてもよい。一部の実施態様において、当該アーカイブ視聴者のユーザ端末は、当該アーカイブ視聴者が再生したいと思う時間点に基づき、コンテキストをクエリしてもよい。例えば、当該アーカイブ視聴者は、当該アーカイブ映像の先頭から、または当該アーカイブ映像の特定の時間点から、当該アーカイブ映像を再生してもよい。当該アーカイブ視聴者のユーザ端末は、当該アーカイブ視聴者が再生したい当該アーカイブコンテンツのフレーム内のSEIメッセージを解析し、当該識別子情報を取得してもよい。例えば、当該アーカイブ視聴者が当該アーカイブ映像の先頭から再生し、UTC情報が2022-08-05T06:00:00Zである場合、当該アーカイブ視聴者のユーザ端末は、当該UTC情報のタイムスタンプを有するコンテキストをクエリしてもよい。
一部の実施態様において、当該アーカイブ視聴者は、当該UTC情報の時間点から特定の数のコンテキストをクエリしてもよい。例えば、当該アーカイブ視聴者のユーザ端末は、当該UTC情報の時間点から一度に50のコンテキストまたは100のコンテキストをクエリしてもよい。一部の実施態様において、当該アーカイブ視聴者は、当該UTC情報の時間点から特定の時間帯のコンテキストをクエリしてもよい。 例えば、当該アーカイブ視聴者のユーザ端末は、当該UTC情報の時間点から10分または30分のコンテキストを一度にクエリしてもよい。
一部の実施態様において、当該レンダリングユニット204は、当該識別子情報に基づき、インタラクション情報のコンテキストとアーカイブコンテンツをレンダリングしてもよい。例えば、当該レンダリングユニット204は、UTC情報に基づいたインタラクション情報のコンテキストで当該アーカイブ映像のフレームをレンダリングしてもよい。したがって、当該アーカイブ視聴者は、すべてのインタラクション情報が含まれたアーカイブ映像を視聴してもよい。一部の実施態様において、当該インタラクション情報は、映像及び音声ストリーミングデータを除いたライブストリーミングルーム内の情報であってもよい。例えば、当該インタラクション情報は、視聴者が「いいね」ボタンをクリックしたことのメッセージであってもよいし、ストリーミングルームのタイトルをストリーマーが変更したことのメッセージであってもよい。当該インタラクション情報は、視聴者がタイトルを取得するアニメーションや、ドラゴンがストリーミングルームを飛び交うアニメーション等であってもよい。
本実施形態によれば、当該コンテキストユニット310は、任意の形式のインタラクション情報を受信・送信し、ただ当該UTC情報に基づいて当該インタラクション情報を視聴者の端末に送信してもよい。したがって、任意の形式のインタラクション情報をアーカイブコンテンツに表示及び同期させることができ、ユーザエクスペリエンスを向上させることができる。
一部の実施態様において、当該アーカイブ視聴者が当該アーカイブ映像を早戻しまたは早送りしても、当該アーカイブ視聴者のユーザ端末は、ただ当該識別子情報を解析し、当該UTC情報に基づいて、対応するコンテキストについて当該コンテキストユニット310にクエリしてもよい。したがって、当該アーカイブサービスは、異なるシナリオに適用することができ、当該アーカイブサービスの柔軟性を向上させることができる。
図8と図9は、当該アーカイブサービスの例示的な機能構成図である。図8と図9において、矢印の線は、ストリーマー、視聴者、サーバのタイムラインを示している。矩形バーは、ライブストリーミングやアーカイブ映像などのストリーミングデータを含む部分を指してもよい。矩形バーは、複数のフレーム、またはtsセグメントを含んでもよい。視聴者は、メッセージや贈り物を送ることによって、ストリーマーと交流してもよい。また、ストリーマーは、メッセージ送信等によって他の視聴者と交流する視聴者であってもよい。
図8に示すように、タイムラインは、UTC時刻情報に対応していてもよい。当該ストリーマーは、一定期間、ストリーミングを開始し、ストリーミングを終了してもよい。当該記録ユニット306は、当該ライブストリーミングをアーカイブコンテンツとして記録し、当該アーカイブ映像を当該アーカイブDB322に格納してもよい。記録中、当該記録ユニット306は、ライブストリーミングを複数のtsセグメントとして記録し、UTCタイムスタンプ情報を当該アーカイブ映像の対応するフレームに保存してもよい。例えば、フレームF2のUTCタイムスタンプ情報はT2、フレームF5のUTCタイムスタンプ情報はT5などであってもよい。
ライブストリーミング中、視聴者は、メッセージ、コメント、贈り物、フォロー、ゲーム等によってストリーマーと交流してもよい。例えば、視聴者は、ストリーマーを応援するために、ストリーマーにメッセージや贈り物を送信してもよい。視聴者は、当該バックエンドサーバを介して当該インタラクション情報を送信してもよく、当該バックエンドサーバは、当該インタラクション情報をストリーマー、他の視聴者、及び当該コンテキストユニット310に送信してもよい。当該インタラクション情報は、当該バックエンドサーバが当該インタラクション情報を受信するための当該時間情報を含んでもよい。当該コンテキストユニット310はさらに、当該時間情報を含む当該インタラクション情報を当該コンテキストDB324に保存してもよい。一部の実施態様において、当該時間情報は、UTCタイムスタンプ情報などであってもよい。
図8に示すように、当該視聴者は、T2において当該ストリーマーにメッセージを送信し、T15において当該ストリーマーに贈り物を送信してもよい。一部の実施態様において、当該サーバは、当該ストリーマーおよび視聴者にいくつかのインタラクション情報を自動的に送信し、VIP視聴者がオンラインであるなど、特定の情報を通知してもよい。例えば、当該サーバは、T8において、通知を送信してもよい。当該コンテキストユニット310は、当該時間情報を含む当該インタラクション情報を当該コンテキストDB324に書き込んでもよい。
当該アーカイブコンテンツが公開された後、アーカイブ視聴者は、例えば、当該ストリーマーのプロフィールページ等で当該アーカイブコンテンツを確認してもよい。当該アーカイブ視聴者のユーザ端末は、当該アーカイブ視聴者が視聴したい当該アーカイブコンテンツをタップすることにより、当該アーカイブコンテンツを要求してもよい。当該処理ユニット308は、M3U8再生リストを生成し、当該アーカイブ視聴者のユーザ端末に送信してもよい。当該M3U8再生リストは、複数のtsセグメントと、それに対応するUTCタイムスタンプ情報とを含んでもよい。
当該アーカイブ視聴者のユーザ端末は、UTCタイムスタンプ情報に基づき、当該インタラクション情報のコンテキストについて当該コンテキストユニット310にクエリしてもよい。当該アーカイブ視聴者のユーザ端末内の当該レンダリングユニット204は、UTCタイムスタンプ情報に基づき、当該インタラクション情報を有するアーカイブコンテンツをさらにレンダリングしてもよい。例えば、tsセグメントTS2のフレームF2は、UTCタイムスタンプT2の情報を含んでもよい。当該アーカイブ視聴者のユーザ端末は、T2におけるコンテキストについて、当該コンテキストユニット310にクエリしてもよい。当該アーカイブ視聴者のユーザ端末はさらに、T2におけるコンテキストとフレームF2をレンダリングしてもよい。したがって、当該アーカイブ視聴者は、より没入的な方法でアーカイブコンテンツを視聴することができる。
一部の実施態様において、メッセージ、コメント、贈り物、フォロー、ゲーム、VIPオンライン通知など、ストリーマー端末、視聴者端末、またはバックエンドサーバからの任意の種類のインタラクション情報が、当該コンテキストユニット310からクエリされてもよい。当該アーカイブコンテンツは、フレーム及びコンテキストのレンダリングに影響を与えることなく、早戻しまたは早送りされてもよい。
一部の実施態様において、当該処理ユニット308は、当該アーカイブコンテンツに対して変更を実行してもよい。例えば、当該処理ユニット308は、当該アーカイブコンテンツにおいて、トランジションセグメントを追加してもよい。より具体的に、当該処理ユニット308は、当該アーカイブコンテンツにトランジションセグメントを挿入しても、当該アーカイブコンテンツの一部をトランジションセグメントと置き換えてもよい。一部の実施態様において、当該処理ユニット308は、当該アーカイブコンテンツの一部を削除してもよい。
図9に示すように、当該アーカイブコンテンツにトランジションセグメントが追加される。当該トランジションセグメントは記録完了後に追加されるため、当該トランジションセグメントにUTCタイムスタンプ情報が含まれなくてもよい。また、フレームF8とフレームF15との間に当該トランジションセグメントが挿入されるため、フレームF15が後方に移動されてもよい。当該レンダリングユニット204は、UTCタイムスタンプ情報に基づき、当該アーカイブコンテンツのレンダリングを行うため、フレームF15及びT15におけるコンテキストのレンダリングは影響を受けずに済む。したがって、当該アーカイブコンテンツに対する変更の自由度が高く、レンダリング精度を向上させることができる。さらに、当該トランジションセグメントの持続時間は柔軟に決定されてもよい。当該アーカイブスコンテンツの一部が置換または削除されても、当該レンダリングユニット204は、当該アーカイブコンテンツをより正確にレンダリングすることができる。
一部の実施態様において、当該トランジションセグメントは、テキスト、画像、動画、音声などを含んでもよい。一部の実施態様において、当該トランジションセグメントは、当該トランジションセグメントの前または後に、当該アーカイブコンテンツに関連する情報を含んでいてもよい。例えば、当該ストリーマーが車について話している場合、当該トランジションセグメントはその車の広告などの情報を含んでいてもよい。当該ストリーマーがパフォーマンスを行う場合、当該トランジションセグメントはそのパフォーマンスを紹介する情報を含んでいてもよい。一部の実施態様において、当該トランジションセグメントは、当該トランジションセグメント中に、当該アーカイブコンテンツに関連する情報を含んでいてもよい。より具体的には、当該アーカイブコンテンツの一部分にグループ通話やPKモードなどの複数ユーザの交流が含まれる場合、その複数ユーザの交流の部分をトランジションセグメントに置き換えてもよく、当該トランジションセグメントは、当該部分に関する情報、例えば、「グループ通話またはPKが進行中」などを含んでもよい。一部の実施態様において、当該トランジションセグメントは、当該アーカイブコンテンツが中断していることを視聴者に知らせるための任意の情報を含んでいてもよい。例えば、当該トランジションセグメントは、「しばらくして」、「この部分は省略されています」等の情報を含んでもよい。一部の実施態様において、当該トランジションセグメントは、推奨ストリーマー、広告、販売、ニュース、アンケートなど、その他の情報を含んでいてもよい。一部の実施態様において、当該トランジションセグメントは、当該ストリーマーの紹介、当該ストリーマーのライブ配信スケジュールなど、当該ストリーマーの情報を含んでいてもよい。
図10と図11は、本発明の一部の実施態様に基づく当該アーカイブコンテンツの例示的画面600である。図10はフレームF2での当該アーカイブコンテンツを示し、図11はフレームF15での当該アーカイブコンテンツを示す。当該フレームF2は、UTCタイムスタンプT2の情報を含み、当該フレームF15は、UTCタイムスタンプT15の情報を含んでもよい。当該アーカイブ視聴者のユーザ端末は、当該UTC情報に基づき、対応するコンテキストについて当該コンテキストユニット310にクエリしてもよい。メッセージなどのインタラクション情報は、UTCタイムスタンプT2で保存され、贈り物などの別のインタラクション情報は、UTCタイムスタンプT15で保存されてもよい。当該アーカイブ視聴者のユーザ端末は、当該インタラクション情報のコンテキストをクエリしてもよい。図10に示すように、メッセージ612のインタラクション情報は、当該フレームF2でレンダリングされ、当該アーカイブ視聴者のユーザ端末に表示されてもよい。さらに、メッセージ614とアニメーション616を含む贈り物のインタラクション情報は、tsセグメントTS15でレンダリングされて、当該アーカイブ視聴者のユーザ端末に表示されてもよい。
一部の実施態様において、当該インタラクション情報は、情報の種類に基づき異なる情報を含んでもよい。例えば、メッセージのインタラクション情報には、ユーザのアイコンやメッセージの内容などが含まれてもよい。贈り物のインタラクション情報には、当該贈り物のメッセージ614、当該贈り物のアニメーション616等が含まれてもよい。
一部の実施態様において、当該アーカイブ視聴者が当該アーカイブコンテンツを視聴している間に、コメント、贈り物、いいね!などの機能が提供されてもよい。例えば、図10のアイコン618、620、622のようなコメント、贈り物、いいね!などの機能を提供し、当該アーカイブ視聴者が当該アーカイブコンテンツを介して当該ストリーマーと交流できるようにしてもよい。一部の実施態様において、当該アーカイブコンテンツは、実際の必要性に基づいてその他の機能を含んでもよい。
一部の実施態様において、当該インタラクション情報は、当該アーカイブコンテンツ上にレンダリングされてもよい。一部の実施態様において、当該インタラクション情報は、当該アーカイブコンテンツとは別にレンダリングされてもよい。一部の実施態様において、当該インタラクション情報は、一部が当該アーカイブコンテンツ上にレンダリングされ、一部が当該アーカイブコンテンツとは別にレンダリングされてもよい。例えば、メッセージ612は、図10に示すように、当該画面600上にレンダリングされてもよい。一部の実施態様において、当該画面600は、アーカイブコンテンツゾーンとメッセージゾーン(図示せず)等を含んでもよい。当該アーカイブコンテンツは、当該アーカイブコンテンツゾーン上に表示されてもよく、当該メッセージ612は、当該メッセージゾーンに表示されてもよい。一部の実施態様において、当該贈り物の当該アニメーション616が当該アーカイブコンテンツゾーンに表示され、当該贈り物の当該メッセージ614が当該メッセージゾーンに表示されてもよい。一部の実施態様において、当該アーカイブコンテンツと当該インタラクション情報のレイアウトは柔軟に決定されてもよい。
図12は、本発明の一部の実施態様に基づくアーカイブサービスの構成の動作を示す例示的なシーケンス図である。一部の実施態様において、ストリーマーは、ストリーミングデータをストリーミングソースにプッシュすることにより、ライブストリーミングを開始してもよい(S302)。視聴者は、視聴者が視聴したいストリーマーをタップすることにより、ストリーミングデータを引き出してもよい(S304)。アーカイブ機能がオンである場合、当該記録ユニット306は、ライブストリーミングを記録するためにストリーミングデータを引き出してもよい(S306)。一部の実施態様において、当該記録ユニット306は、ライブストリーミングをアーカイブコンテンツとして記録し、当該アーカイブコンテンツをUTCタイムスタンプ情報とともに保存してもよい(S308)。
ライブストリーミング中、視聴者は、コメント、贈り物、アニメーションなどのインタラクション情報を送信することにより、ストリーマーと交流してもよい(S310)。当該インタラクション情報は、アプリまたはプラットフォームにおけるバックエンドサーバなどのコンテキストソースを介して、当該ストリーマーまたは他の視聴者に送信されてもよい。一部の実施態様において、当該ストリーミングソースはストリーミングサーバであってもよく、当該コンテキストソースはアプリまたはプラットフォームのプロバイダーのバックエンドサーバであってもよい。当該コンテキストソースは、当該インタラクション情報を当該コンテキストユニット310に送信し(S312)、当該コンテキストユニット310は、UTCタイムスタンプ情報とともに当該インタラクション情報を当該コンテキストDB324などのデータベースに保存してもよい(S314)。
アーカイブコンテンツが記録・公開された後、アーカイブ視聴者は、当該アーカイブコンテンツの視聴要求を行ってもよい(S316)。当該処理ユニット308は、ストレージから当該アーカイブコンテンツを取得し(S318)、 TSセグメントとそれに対応するUTCタイムスタンプ情報を含むM3U8再生リストを生成してもよい(S320)。アーカイブ視聴者が当該アーカイブコンテンツを再生する場合、当該アーカイブ視聴者のユーザ端末は、当該コンテキストユニット310にインタラクション情報のコンテキストをクエリしてもよい(S322)。当該コンテキストユニット310は、UTCタイムスタンプ情報を有する当該コンテキストを取得し(S324)、当該アーカイブ視聴者のユーザ端末に送信してもよい(S326)。当該アーカイブ視聴者のユーザ端末はさらに、UTCタイムスタンプ情報に基づき、当該アーカイブコンテンツを有する当該コンテキストをレンダリングしてもよい(S328)。
図13は、 本発明の一部の実施態様に基づくサーバ10の構成の動作を示す例示的なフローチャートである。図13に示すように、当該記録ユニット306は、ライブストリーミングのストリーミングデータを記録してもよい(S352)。当該処理ユニット308は、当該ストリーミングデータを第1の識別子を有するアーカイブコンテンツとして格納してもよい(S354)。一部の実施態様において、当該第1の識別子は、UTCタイムスタンプなどであってもよい。当該コンテキストユニット310は、ライブストリーミング中、インタラクション情報を受信してもよい(S356)。当該コンテキストユニット310は、第2の識別子を有するコンテキストとして当該インタラクション情報を格納してもよい(S358)。一部の実施態様において、当該第2の識別子も、UTCタイムスタンプなどであってもよい。一部の実施態様において、当該処理ユニット308は、第1のユーザ端末からの要求に応じて、当該第1の識別子を有する当該アーカイブコンテンツを当該第1のユーザ端末に送信してもよい。当該第1のユーザ端末はさらに、当該第1の識別子に基づいて、当該コンテキストユニット310にコンテキストについてクエリしてもよい。当該コンテキストユニット310は、当該第1の識別子及び当該第2の識別子に基づき、当該第1のユーザ端末に当該コンテキストを送信してもよい(S360)。本実施形態によれば、当該アーカイブサービスは、より効率的かつ正確である。
図14は、本発明の一部の実施態様に基づくユーザ端末30の構成の動作を示す例示的なフローチャートである。図14に示すように、当該レンダリングユニット204は、当該第1の識別子を有するアーカイブコンテンツを受信してもよい(S372)。当該レンダリングユニット204は、当該第1の識別子に基づいて、第2の識別子を有するコンテキストをクエリしてもよい(S374)。当該レンダリングユニット204はさらに、当該第1の識別子及び当該第2の識別子に基づき、当該コンテキストとアーカイブコンテンツをさらにレンダリングしてもよい(S376)。レンダリング後、インタラクション情報を有するアーカイブコンテンツが、アーカイブ視聴者のユーザ端末に表示されてもよい。本実施形態によれば、当該アーカイブ視聴者は、より没入的な方法でアーカイブコンテンツを視聴することができる。
当該ライブストリーミングには、メッセージ、贈り物、アニメーションなどのインタラクション情報が表示されており、当該アーカイブサービスでは、当該インタラクション情報をアーカイブコンテンツと同期させてもよい。当該アーカイブサービスでは、アーカイブコンテンツとインタラクション情報は別々に保存かつ格納される。記録中、SEIメッセージにUTC時刻情報が挿入される。メッセージや贈り物など当該ユーザ端末から操作があった場合、その操作に応じた当該インタラクション情報も当該UTC時刻情報とともに保存・挿入されてもよい。当該アーカイブコンテンツの再生時に、当該SEIメッセージが解析され、当該UTC時刻情報が受信されてもよい。当該インタラクション情報は、当該UTC時刻情報に基づいて指定されてもよい。当該アーカイブ視聴者のユーザ端末は、当該インタラクション情報をレンダリングし、画面上に表示してもよい。 したがって、当該アーカイブ視聴者は、ライブストリーミングを視聴している視聴者と同様の感覚を持つことができる。
また、広告や幕間アニメーションなどのトランジションセグメントが挿入されても、当該インタラクション情報とアーカイブコンテンツとの同期に影響を与えないようにすることができる。当該インタラクション情報は、例えば、メッセージ、コメント、贈り物、アニメーション、VIPオンライン通知など、どのような種類の情報であってもよい。一部の実施態様において、当該当該メッセージは、視聴者またはストリーマーからのメッセージであってもよく、また、当該バックエンドサーバからのメッセージであってもよい。
図15は、本発明の一部の実施態様に基づくシステム構成および処理を実行するためのコンピュータハードウェアの概略ブロック図である。図18に示す当該情報処理装置900は、例えば、本発明の一部の実施態様に基づく当該サーバ10と当該ユーザ端末20、30及び当該アーカイブサービスをそれぞれ実現するように構成される。
当該情報処理装置900は、CPU 901と、リードオンリーメモリ(ROM)903、ランダムアクセスメモリ(RAM)905を含む。さらに、当該情報処理装置900は、ホストバス907、ブリッジ909、外部バス911、インターフェイス913、入力ユニット915、出力ユニット917、ストレージユニット919、ドライブ921、接続ポート925、通信ユニット929を含んでもよい。当該情報処理装置900は、カメラなどの撮像装置(図示せず)を含んでもよい。当該情報処理装置900は、CPU901に代えて、または加えて、デジタルシグナルプロセッサ(DSP)、特定用途向け集積回路(ASIC)等の処理回路を含んでもよい。
当該CPU901は、演算処理装置および制御装置として機能し、ROM903、RAM905、ストレージユニット919、またはリムーバブル記録媒体923に記録された各種プログラムに従って、当該情報処理装置900の全体動作またはその一部の動作を制御する。例えば、当該CPU901は、上述した実施態様の当該サーバ10および当該ユーザ端末20、30に含まれる各機能ユニットの動作全般を制御する。当該ROM903は、当該CPU901が使用するプログラム、動作パラメータなどを記憶する。当該RAM905は、当該CPU901が実行する際に使用するプログラムや、当該プログラムを実行する際に適宜変化するパラメータを過渡的に記憶する。当該CPU901、当該ROM903、当該RAM905は、CPUバスなどの内部バスから構成されるホストバス907を介して互いに接続されている。当該ホストバス907は、当該ブリッジ909を介してペリフェラルコンポーネントインターコネクト/インターフェイス(PCI)バスなどの外部バス911に接続される。
当該入力ユニット915は、マウス、キーボード、タッチパネル、ボタン、スイッチ、レバーなど、ユーザによって操作される装置である。当該入力ユニット915は、オーディオセンサ(マイクなど)、加速度センサ、傾斜センサ、赤外線センサ、深度センサ、温度センサ、湿度センサなど、物理量を電気信号に変換する装置であってもよい。当該入力ユニット915は、例えば、赤外線や別の種類の電波を利用するリモートコントロール装置であってもよい。あるいは、当該入力ユニット915は、当該情報処理装置900の動作に対応する携帯電話などの外部接続端末927であってもよい。当該入力ユニット915は、ユーザから入力される情報に基づいて入力信号を生成し、生成した入力信号を当該CPU901に出力する入力制御回路を含む。ユーザは当該入力ユニット915を操作することにより、各種データを入力し、当該情報処理装置900に対する処理動作の指示を行う。
当該出力ユニット917は、取得した情報をユーザに対して視覚的または聴覚的に報知することができる装置を含む。当該出力ユニット917は、例えば、LCD、PDP、OLEDなどのディスプレイ装置、スピーカー、ヘッドホンなどの音声出力装置、プリンタなどであってもよい。当該出力ユニット917は、当該情報処理装置900が実行する処理によって得られた結果を、テキスト、画像などの映像、音声などのサウンドの形で出力する。
当該ストレージユニット919はデータストレージ用装置であり、当該情報処理装置900のストレージユニットの一例である。当該ストレージユニット919は、例えば、ハードディスクドライブ(HDD)などの磁気記憶装置、半導体記憶装置、光記憶装置、光磁気記憶装置などを含む。当該ストレージユニット919は、当該CPU901が実行するプログラムや各種データ、及び外部から取得された各種データを格納する。
当該ドライブ921は、磁気ディスク、光ディスク、光磁気ディスク、半導体メモリなどのリムーバブル記録媒体923のリーダー/ライターであり、当該情報処理装置900に内蔵または外付けされる。当該ドライブ921は、装着された当該リムーバブル記録媒体923に記録された情報を読み出し、当該RAM905に出力する。当該ドライブ921は、装着された当該リムーバブル記録媒体923に記録を書き込む。
当該接続ポート925は、当該情報処理装置900に機器を直接接続するために用いられるポートである。当該接続ポート925は、例えば、USB(ユニバーサルシリアルバス)ポート、IEEE1394ポート、またはSCSI(小型計算機システムインターフェイス)ポートであってもよい。当該接続ポート925は、RS―232Cポート、光オーディオ端子、HDMI(高精細度マルチメディアインターフェース(登録商標))ポートなどであってもよい。当該接続ポート925に外部接続端末927が接続されることにより、当該情報処理装置900と当該外部接続端末927間の各種データのやり取りが可能になる。
当該通信ユニット929は、例えば、通信ネットワークNWに接続するための通信装置を含む通信インターフェイスである。当該通信ユニット929は、例えば、有線または無線のローカルエリアネットワーク(LAN)、Bluetooth(登録商標)、または、無線USB(WUSB)用の通信カードであってもよい。
当該通信ユニット929は、例えば、光通信用のルータ、ADSL(非対称デジタル加入者線)用のルータ、または、各種通信用のモデムであってもよい。例えば、当該通信ユニット929は、TCP/IP等の所定のプロトコルを用いて、インターネットにおける信号の送受信や、他の通信装置との信号の送受信を行う。当該通信ユニット929が接続する当該通信ネットワークNWは、有線接続または無線接続により確立されたネットワークである。当該通信ネットワークNWは、例えば、インターネット、家庭内LAN、赤外線通信、電波通信、または衛星通信である。
撮像装置(図示せず)は、例えば、CCD(電荷結合デバイス)やCMOS(相補型金属酸化膜半導体)などの撮像素子と、当該撮像素子上の被写体像の結像を制御するためのレンズなど各種部材を用いて現実空間を撮像し、撮像画像を生成する装置である。当該撮像装置は、静止画を撮像しても、動画を撮像してもよい。
以上、本発明のライブストリーミングシステム1とアーカイブサービスについて、実施形態を参照しながら説明した。上述の実施態様は、単に説明のために記載されたものである。むしろ、実施態様の上述した構成要素や処理を多様に組み合わせ、さまざまな変更がなされ得ることは、当業者であれば容易に想到し得ることであり、これらも本発明の技術的範囲に包含される。
本明細書に記載された工程、特にフローチャートやフローチャートを用いて説明された工程は、工程を構成する工程の一部の省略、工程を構成する工程に明示的に含まれない工程の追加、及び(または)工程順序の並べ替えが可能である。このような省略、追加、並べ替えの対象となった工程も、本発明の要旨を逸脱しない限り、本発明の範囲に含まれる。
一部の実施態様において、当該サーバ10またはアーカイブサービスが実行する機能の少なくとも一部は、当該サーバ10またはアーカイブサービス以外が実行してもよく、例えば当該ユーザ端末20または30が実行するようにしてもよい。一部の実施態様において、当該ユーザ端末20または30が実行する機能の少なくとも一部を、当該ユーザ端末20または30以外が実行してもよく、例えば、当該サーバ10またはアーカイブサービスが実行するようにしてもよい。一部の実施態様において、フレーム画像のレンダリングは、視聴者、サーバ、ストリーマー等の当該ユーザ端末が実行するようにしてもよい。
さらに、上記実施態様で説明したシステムまたは方法は、固体記憶装置、光ディスク記憶装置、磁気ディスク記憶装置などの非一時的なコンピュータ可読ストレージ装置、またはコンピュータプログラム製品などで提供されてもよい。あるいは、プログラムは、インターネットを介してサーバからダウンロードされるものとしてもよい。
以上、本発明の技術的内容及び特徴を説明したが、本発明の属する技術分野において通常の知識を有する者であれば、本発明の教示及び開示から逸脱することなく、なお多くの変形及び修正を行うことができる。したがって、本発明の範囲は、既に開示された実施態様に限定されず、本発明から逸脱しない別の変形や修正を含む、後付の特許請求の範囲に含まれる範囲である。