JP2022042997A - Method, server, and computer-readable recording medium for minimizing delay in real time live streaming - Google Patents
Method, server, and computer-readable recording medium for minimizing delay in real time live streaming Download PDFInfo
- Publication number
- JP2022042997A JP2022042997A JP2021142379A JP2021142379A JP2022042997A JP 2022042997 A JP2022042997 A JP 2022042997A JP 2021142379 A JP2021142379 A JP 2021142379A JP 2021142379 A JP2021142379 A JP 2021142379A JP 2022042997 A JP2022042997 A JP 2022042997A
- Authority
- JP
- Japan
- Prior art keywords
- server
- client
- gop
- processor
- frame
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 68
- 230000005540 biological transmission Effects 0.000 claims abstract description 26
- 230000004044 response Effects 0.000 claims abstract description 4
- 230000015654 memory Effects 0.000 claims description 25
- 230000008569 process Effects 0.000 claims description 22
- 101000598987 Homo sapiens Medium-wave-sensitive opsin 1 Proteins 0.000 description 24
- 101000598981 Homo sapiens Medium-wave-sensitive opsin 2 Proteins 0.000 description 24
- 101000598986 Homo sapiens Medium-wave-sensitive opsin 3 Proteins 0.000 description 24
- 102100037812 Medium-wave-sensitive opsin 1 Human genes 0.000 description 24
- 238000004891 communication Methods 0.000 description 13
- 238000012545 processing Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 6
- 238000004590 computer program Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 5
- 238000012544 monitoring process Methods 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000002457 bidirectional effect Effects 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 2
- 238000009434 installation Methods 0.000 description 2
- 230000007257 malfunction Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 208000006930 Pseudomyxoma Peritonei Diseases 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 229920000306 polymethylpentene Polymers 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/21—Server components or server architectures
- H04N21/218—Source of audio or video content, e.g. local disk arrays
- H04N21/2187—Live feed
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/231—Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
- H04N21/23106—Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion involving caching operations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/233—Processing of audio elementary streams
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/23406—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving management of server-side video buffer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/23418—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving operations for analysing video streams, e.g. detecting features or characteristics
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/24—Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
- H04N21/2402—Monitoring of the downstream path of the transmission network, e.g. bandwidth available
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/262—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
- H04N21/26208—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints
- H04N21/26216—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints involving the channel capacity, e.g. network bandwidth
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
Description
以下の説明は、リアルタイムライブストリーミング環境でユーザが体感する品質を改善する技術に関する。 The following description relates to technologies that improve the quality experienced by users in a real-time livestreaming environment.
リアルタイムライブストリーミングサービスとは、送信される各種マルチメディアデータを途切れのない水の流れのように処理する技術を意味する。 Real-time livestreaming service means a technology that processes various transmitted multimedia data like a continuous stream of water.
リアルタイムライブストリーミング技術は、インターネットの成長とともにその重要性が高まっているが、その理由の1つとして、ユーザのほとんどが、大容量コンテンツを即時にダウンロードできる程に迅速な接続回線を所持しているためである。 Real-time livestreaming technology is becoming more important as the Internet grows, partly because most users have fast enough connections to instantly download large volumes of content. Because.
このような状況でストリーミング技術を利用する場合は、すべてのファイルが送信される前であっても、クライアントプレイヤがデータの表示を開始することができる。 When the streaming technology is used in such a situation, the client player can start displaying the data even before all the files have been transmitted.
例えば、特許文献1(公開日2006年6月21日)には、ストリーミングサーバとクライアント間の送信率を考慮したリアルタイムストリーミングサービスを提供する技術が開示されている。 For example, Patent Document 1 (publication date: June 21, 2006) discloses a technique for providing a real-time streaming service in consideration of a transmission rate between a streaming server and a client.
リアルタイムライブストリーミングプラットフォームでユーザが体感する品質の1つとして、プラットフォーム上のコンテンツを選択した時点からプレイヤの実際の画面に出力されるまでの遅延時間を最小化するための方法とシステムを提供する。 As one of the qualities that users experience in a real-time live streaming platform, we provide a method and system for minimizing the delay time from the time when content on the platform is selected to the time when it is output to the actual screen of the player.
コンピュータで実現されるサーバが実行する方法であって、前記サーバは、メモリに含まれるコンピュータ読み取り可能な命令を実行するように構成された少なくとも1つのプロセッサを含み、前記方法は、前記少なくとも1つのプロセッサにより、リアルタイムライブストリーミング環境においてストリーマから受信したコンテンツに対し、少なくとも2つ以上のGOP(group of pictures)をキャッシュする段階、および前記少なくとも1つのプロセッサにより、クライアントの要請に対し、I-フレームから始まるパケットとしてキャッシュによって完成したGOPから前記クライアントに伝達する段階を含む方法を提供する。 A method implemented by a computer-implemented server, said server comprising at least one processor configured to execute a computer-readable instruction contained in memory, said method is said to be at least one. A stage in which at least two or more GOPs (group of computers) are cached for content received from a streamer in a real-time live streaming environment by a processor, and an I-frame at a request of a client by the at least one processor. Provided is a method including a step of transmitting from a GOP completed by a cache to the client as a packet to be started.
コンピュータで実現されるサーバであって、メモリに含まれるコンピュータ読み取り可能な命令を実行するように構成された少なくとも1つのプロセッサを含み、前記少なくとも1つのプロセッサは、リアルタイムライブストリーミング環境においてストリーマから受信したコンテンツに対し、少なくとも2つ以上のGOPをキャッシュする過程、およびクライアントの要請に対し、I-フレームから始まるパケットとしてキャッシュによって完成されたGOPから前記クライアントに伝達する過程を処理するサーバを提供する。 A computer-implemented server that includes at least one processor configured to execute computer-readable instructions contained in memory, said at least one processor receiving from a streamer in a real-time live streaming environment. Provided is a server that processes a process of caching at least two or more GOPs for content, and a process of transmitting a GOP completed by caching as a packet starting from an I-frame to the client in response to a client request.
<発明の概要>
コンピュータで実現されるサーバが実行する方法であって、前記サーバは、メモリに含まれるコンピュータ読み取り可能な命令を実行するように構成された少なくとも1つのプロセッサを含み、前記方法は、前記少なくとも1つのプロセッサにより、リアルタイムライブストリーミング環境においてストリーマから受信したコンテンツに対し、少なくとも2つ以上のGOP(group of pictures)をキャッシュする段階、および前記少なくとも1つのプロセッサにより、クライアントの要請に対し、I-フレームから始まるパケットとしてキャッシュによって完成したGOPから前記クライアントに伝達する段階を含む方法を提供する。
<Outline of the invention>
A method performed by a computer-implemented server, wherein the server comprises at least one processor configured to execute a computer-readable instruction contained in memory, said method. A stage in which at least two or more GOPs (group of computers) are cached for content received from a streamer in a real-time live streaming environment by a processor, and an I-frame at a request of a client by the at least one processor. Provided is a method including a step of transmitting from a GOP completed by a cache to the client as a packet to be started.
一側面によると、前記サーバと関連する管理者の設定または前記サーバと前記クライアント間のネットワーク状態を基づいてGOPキャッシュのサイズが決定されてよい。 According to one aspect, the size of the GOP cache may be determined based on the settings of the administrator associated with the server or the network state between the server and the client.
他の側面によると、前記サーバと関連する管理者の設定または前記サーバと前記クライアント間のネットワーク状態を基づいて伝達対象GOPが決定されてよい。 According to another aspect, the transmission target GOP may be determined based on the settings of the administrator associated with the server or the network state between the server and the client.
また他の側面によると、前記伝達する段階は、前記キャッシュによって完成したGOPが複数個である場合、前記クライアントの接続時点を基準にもっとも最近完成したGOPから前記クライアントに伝達してよい。 Further, according to another aspect, in the transmission step, when there are a plurality of GOPs completed by the cache, the most recently completed GOP may be transmitted to the client based on the connection time point of the client.
また他の側面によると、前記伝達する段階は、前記キャッシュによって完成しGOPが複数個である場合、前記サーバと前記クライアント間のネットワーク状態により、前記複数個のGOPのうちのいずれか1つのGOPから前記クライアントに伝達してよい。 According to another aspect, when the transmission stage is completed by the cache and there are a plurality of GOPs, the GOP of any one of the plurality of GOPs depends on the network state between the server and the client. May be transmitted to the client.
また他の側面によると、前記伝達する段階は、前記クライアントのGOP受信状態によって一部のフレームを消去するかスキップした後、残りのフレームを伝達する段階を含んでよい。 Further, according to another aspect, the transmission step may include a step of erasing or skipping some frames depending on the GOP reception state of the client and then transmitting the remaining frames.
また他の側面によると、前記キャッシュする段階は、前記コンテンツのビデオストリームとオーディオストリームの分析によってGOPに対応するオーディオ区間を検索し、ビデオデータとオーディオデータをタイムラインに合わせて整列する段階を含んでよい。 According to another aspect, the caching step includes searching for the audio section corresponding to the GOP by analyzing the video stream and the audio stream of the content, and aligning the video data and the audio data with the timeline. It's fine.
また他の側面によると、前記キャッシュする段階は、ビデオのフレームごとにデータタイプを分析し、I-フレームそれぞれと該当のI-フレームに対応するオーディオのタイムスタンプとを合わせてビデオデータとオーディオデータをグループ化する段階を含んでよい。 According to another aspect, the caching step analyzes the data type for each frame of the video and combines the video data and the audio data with each I-frame and the time stamp of the audio corresponding to the corresponding I-frame. May include a step of grouping.
また他の側面によると、前記伝達する段階は、ビデオデータとオーディオデータをパケット単位のデータが交互になる形態に再構成して伝達してよい。 Further, according to another aspect, in the transmission step, video data and audio data may be reconstructed and transmitted in a form in which data in packet units alternate.
さらに他の側面によると、前記ビデオデータと前記オーディオデータのサイズに基づいてパケットの交互個数が決定されてよい。 According to yet another aspect, the alternating number of packets may be determined based on the size of the video data and the audio data.
前記方法をコンピュータに実行させるためのプログラムが記録されている、コンピュータ読み取り可能な記録媒体を提供する。 Provided is a computer-readable recording medium in which a program for causing a computer to execute the above method is recorded.
コンピュータで実現されるサーバであって、メモリに含まれるコンピュータ読み取り可能な命令を実行するように構成された少なくとも1つのプロセッサを含み、前記少なくとも1つのプロセッサは、リアルタイムライブストリーミング環境においてストリーマから受信したコンテンツに対し、少なくとも2つ以上のGOPをキャッシュする過程、およびクライアントの要請に対し、I-フレームから始まるパケットとしてキャッシュによって完成されたGOPから前記クライアントに伝達する過程を処理するサーバを提供する。 A computer-implemented server that includes at least one processor configured to execute computer-readable instructions contained in memory, said at least one processor receiving from a streamer in a real-time live streaming environment. Provided is a server that processes a process of caching at least two or more GOPs for content, and a process of transmitting a GOP completed by caching as a packet starting from an I-frame to the client in response to a client request.
<発明の詳細>
以下、本発明の実施形態について、添付の図面を参照しながら詳しく説明する。
<Details of the invention>
Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings.
本発明の実施形態は、リアルタイムライブストリーミング環境において最適なQoE(Quality of Experience)とQoS(Quality of Service)を支援する技術に関する。 An embodiment of the present invention relates to a technique for supporting optimum QoE (Quality of Service) and QoS (Quality of Service) in a real-time live streaming environment.
本明細書で具体的に開示される事項を含む実施形態は、リアルタイムライブストリーミングプラットフォームでユーザが感じる重要な品質の1つとして、プラットフォーム上のコンテンツを選択した時点からプレイヤの実際の画面に出力されるまでの遅延時間を最小化することができる。 The embodiments including the matters specifically disclosed herein are output to the player's actual screen from the time the content on the platform is selected as one of the important qualities that the user feels on the real-time livestreaming platform. The delay time until the end can be minimized.
図1は、本発明の一実施形態における、ネットワーク環境の例を示した図である。図1のネットワーク環境は、複数の電子機器110、120、130、140、複数のサーバ150、160、およびネットワーク170を含む例を示している。このような図1は、発明の説明のための一例に過ぎず、電子機器の数やサーバの数が図1のように限定されることはない。
FIG. 1 is a diagram showing an example of a network environment according to an embodiment of the present invention. The network environment of FIG. 1 shows an example including a plurality of
複数の電子機器110、120、130、140は、コンピュータシステムによって実現される固定端末や移動端末であってよい。複数の電子機器110、120、130、140の例としては、スマートフォン、携帯電話、ナビゲーション、PC(personal computer)、ノート型PC、デジタル放送用端末、PDA(Personal Digital Assistant)、PMP(Portable Multimedia Player)、タブレット、ゲームコンソール、ウェアラブルデバイス、IoT(Internet of Things)デバイス、VR(Virtual Reality)デバイス、AR(Augmented Reality)デバイスなどがある。一例として、図1では、電子機器110の例としてスマートフォンを示しているが、本発明の実施形態において、電子機器110は、実質的に無線または有線通信方式を利用し、ネットワーク170を介して他の電子機器120、130、140および/またはサーバ150、160と通信することのできる多様な物理的なコンピュータシステムのうちの1つを意味してよい。
The plurality of
通信方式が限定されることはなく、ネットワーク170が含むことのできる通信網(一例として、移動通信網、有線インターネット、無線インターネット、放送網、衛星網など)を利用する通信方式だけではなく、機器間の近距離無線通信が含まれてもよい。例えば、ネットワーク170は、PAN(personal area network)、LAN(local area network)、CAN(campus area network)、MAN(metropolitan area network)、WAN(wide area network)、BBN(broadband network)、インターネットなどのネットワークのうちの1つ以上の任意のネットワークを含んでよい。さらに、ネットワーク170は、バスネットワーク、スターネットワーク、リングネットワーク、メッシュネットワーク、スター-バスネットワーク、ツリーまたは階層的ネットワークなどを含むネットワークトポロジのうちの任意の1つ以上を含んでもよいが、これらに限定されることはない。
The communication method is not limited, and not only a communication method using a communication network that can be included in the network 170 (for example, a mobile communication network, a wired Internet, a wireless Internet, a broadcasting network, a satellite network, etc.), but also a device. Short-range wireless communication between them may be included. For example, the
サーバ150、160それぞれは、複数の電子機器110、120、130、140とネットワーク170を介して通信して命令、コード、ファイル、コンテンツ、サービスなどを提供する1つ以上のコンピュータ装置によって実現されてよい。例えば、サーバ150は、ネットワーク170を介して接続した複数の電子機器110、120、130、140に第1サービスを提供するシステムであってよく、サーバ160もネットワーク170を介して接続した複数の電子機器110、120、130、140に第2サービスを提供するシステムであってよい。より具体的な例として、サーバ150は、複数の電子機器110、120、130、140においてインストールされて実行されるコンピュータプログラムであるアプリケーションを通じ、該当のアプリケーションが目的とするサービス(一例として、リアルタイムライブストリーミングサービスなど)を第1サービスとして複数の電子機器110、120、130、140に提供してよい。他の例として、サーバ160は、上述したアプリケーションのインストールおよび実行のためのファイルを複数の電子機器110、120、130、140に配布するサービスを第2サービスとして提供してよい。
Each of the
図2は、本発明の一実施形態における、電子機器およびサーバの内部構成を説明するためのブロック図である。図2では、電子機器に対する例として、電子機器110の内部構成およびサーバ150の内部構成について説明する。また、他の電子機器120、130、140やサーバ160も、上述した電子機器110またはサーバ150と同一または類似の内部構成を有してよい。
FIG. 2 is a block diagram for explaining an internal configuration of an electronic device and a server according to an embodiment of the present invention. FIG. 2 describes the internal configuration of the
電子機器110およびサーバ150は、メモリ211、221、プロセッサ212、222、通信モジュール213、223、および入力/出力インタフェース214、224を含んでよい。メモリ211、221は、コンピュータ読み取り可能な記録媒体であって、RAM(random access memory)、ROM(read only memory)、ディスクドライブ、SSD(solid state drive)、フラッシュメモリなどのような永続的大容量記録装置を含んでよい。ここで、ROM、SSD、フラッシュメモリ、ディスクドライブのような永続的大容量記録装置は、メモリ211、221とは区分される別の永続的記録装置として電子機器110やサーバ150に含まれてもよい。また、メモリ211、221には、オペレーティングシステムと、少なくとも1つのプログラムコード(一例として、電子機器110においてインストールされて実行されるブラウザや、特定のサービスの提供のために電子機器110にインストールされたアプリケーションなどのためのコード)が記録されてよい。このようなソフトウェア構成要素は、メモリ211、221とは別のコンピュータ読み取り可能な記録媒体からロードされてよい。このような別のコンピュータ読み取り可能な記録媒体は、フロッピー(登録商標)ドライブ、ディスク、テープ、DVD/CD-ROMドライブ、メモリカードなどのコンピュータ読み取り可能な記録媒体を含んでよい。他の実施形態において、ソフトウェア構成要素は、コンピュータ読み取り可能な記録媒体ではない通信モジュール213、223を通じてメモリ211、221にロードされてもよい。例えば、少なくとも1つのプログラムは、開発者またはアプリケーションのインストールファイルを配布するファイル配布システム(一例として、上述したサーバ160)がネットワーク170を介して提供するファイルによってインストールされるコンピュータプログラム(一例として、上述したアプリケーション)に基づいてメモリ211、221にロードされてよい。
The
プロセッサ212、222は、基本的な算術、ロジック、および入出力演算を実行することにより、コンピュータプログラムの命令を処理するように構成されてよい。命令は、メモリ211、221または通信モジュール213、223によって、プロセッサ212、222に提供されてよい。例えば、プロセッサ212、222は、メモリ211、221のような記録装置に記録されたプログラムコードにしたがって受信される命令を実行するように構成されてよい。
通信モジュール213、223は、ネットワーク170を介して電子機器110とサーバ150とが互いに通信するための機能を提供してもよいし、電子機器110および/またはサーバ150が他の電子機器(一例として、電子機器120)または他のサーバ(一例として、サーバ160)と通信するための機能を提供してもよい。一例として、電子機器110のプロセッサ212がメモリ211のような記録装置に記録されたプログラムコードにしたがって生成した要求が、通信モジュール213の制御にしたがってネットワーク170を介してサーバ150に伝達されてよい。これとは逆に、サーバ150のプロセッサ222の制御にしたがって提供される制御信号や命令、コンテンツ、ファイルなどが、通信モジュール223とネットワーク170を経て電子機器110の通信モジュール213を通じて電子機器110に受信されてよい。例えば、通信モジュール213を通じて受信されたサーバ150の制御信号や命令、コンテンツ、ファイルなどは、プロセッサ212やメモリ211に伝達されてよく、コンテンツやファイルなどは、電子機器110がさらに含むことのできる記録媒体(上述した永続的記録装置)に記録されてよい。
The
入力/出力インタフェース214は、入力/出力装置215とのインタフェースのための手段であってよい。例えば、入力装置は、キーボード、マウス、マイクロフォン、カメラなどの装置を、出力装置は、ディスプレイ、スピーカ、触覚フィードバックデバイスなどのような装置を含んでよい。他の例として、入力/出力インタフェース214は、タッチスクリーンのように入力と出力のための機能が1つに統合された装置とのインタフェースのための手段であってもよい。入力/出力装置215は、電子機器110と1つの装置で構成されてもよい。また、サーバ150の入力/出力インタフェース224は、サーバ150に接続するかサーバ150が含むことのできる入力または出力のための装置(図示せず)とのインタフェースのための手段であってよい。より具体的な例として、電子機器110のプロセッサ212がメモリ211にロードされたコンピュータプログラムの命令を処理するにあたり、サーバ150や電子機器120が提供するデータを利用して構成されるサービス画面やコンテンツが、入力/出力インタフェース214を通じてディスプレイに表示されてよい。
The input /
また、他の実施形態において、電子機器110およびサーバ150は、図2の構成要素よりも多くの構成要素を含んでもよい。しかし、大部分の従来技術的構成要素を明確に図に示す必要はない。例えば、電子機器110は、上述した入力/出力装置215のうちの少なくとも一部を含むように実現されてもよいし、トランシーバ、GPS(Global Positioning System)モジュール、カメラ、各種センサ、データベースなどのような他の構成要素をさらに含んでもよい。より具体的な例として、電子機器110がスマートフォンである場合、一般的にスマートフォンが含んでいる加速度センサやジャイロセンサ、カメラモジュール、物理的な各種ボタン、タッチパネルを利用したボタン、入力/出力ポート、振動のための振動器などのような多様な構成要素が、電子機器110にさらに含まれるように実現されてよい。
Also, in other embodiments, the
以下では、リアルタイムライブストリーミング環境でユーザが体感する遅延時間を最小化するための方法およびシステムの具体的な実施形態について説明する。 In the following, a method for minimizing the delay time experienced by the user in a real-time live streaming environment and a specific embodiment of the system will be described.
図3は、本発明の一実施形態における、リアルタイムライブストリーミング環境の例を示した図である。 FIG. 3 is a diagram showing an example of a real-time livestreaming environment according to an embodiment of the present invention.
図3は、リアルタイムライブストリーミング環境の一例であって、クライアント310、CP(Contents Provider)320、およびサーバ350を含むコンテンツデリバリネットワーク(CDN:Contents Delivery Network)サービス環境を示している。サーバ350は、図1と図2を参照しながら説明したサーバ150に対応してよく、クライアント310とCP320は、図1と図2を参照しながら説明した電子機器110、120、130、140のうちのいずれか1つに対応してよい。
FIG. 3 is an example of a real-time live streaming environment, and shows a content delivery network (CDN) service environment including a
CDNサービスは、リアルタイムライブストリーミング環境のサービスであって、ISP(Internet Service Provider)のネットワークの下にインストールされた多数のサーバ350に配信者(streamer)に該当するCP320が提供するコンテンツを予め保存した後、視聴者(viewer)に該当するクライアント310から要請があるときに、該当のコンテンツをクライアント310に伝達する体系で運営される。
The CDN service is a service in a real-time live streaming environment, and the content provided by the CP320 corresponding to the distributor is stored in advance on a large number of
クライアント310側のプレイヤは、ユーザがプラットフォーム上で選択したコンテンツをサーバ350から受信した後、受信したコンテンツを出力装置(ディスプレイやスピーカなど)から出力して再生してよい。
The player on the
上述したようなリアルタイムライブストリーミング環境でユーザが感じる品質の1つとして、プラットフォーム上のコンテンツを選択した時点からプレイヤの画面に実際に出力されるまでの遅延時間が挙げられる。 One of the qualities that the user feels in the real-time live streaming environment as described above is the delay time from the time when the content on the platform is selected to the time when the content is actually output to the player's screen.
本発明の実施形態は、上述した遅延時間を最小化するための技術を含んでよく、さらに、遅延時間を最小化するために適用される技術による副作用を取り除くための技術を含んでよい。 Embodiments of the present invention may include techniques for minimizing the delay times described above, and may further include techniques for eliminating side effects due to techniques applied to minimize the delay times.
図4は、本発明の一実施形態における、サーバのプロセッサが含むことのできる構成要素の例を示したブロック図であり、図5は、本発明の一実施形態における、サーバが実行することのできる方法の例を示したフローチャートである。 FIG. 4 is a block diagram showing an example of components that can be included in the processor of the server according to the embodiment of the present invention, and FIG. 5 is a block diagram showing the execution by the server according to the embodiment of the present invention. It is a flowchart which showed the example of the possible method.
本実施形態に係るサーバ350は、リアルタイムライブストリーミング環境でCP320が提供するコンテンツをクライアント310に伝達するキャッシュサーバの役割を担う。サーバ350には、コンピュータで実現されたリアルタイムライブストリーミングシステムが構成されてよい。サーバ350は、クライアント310を対象に、クライアント310上にインストールされた専用アプリケーションやサーバ350と関連するウェブ/モバイルサイトへの接続によってリアルタイムライブストリーミングサービスを提供してよい。
The
サーバ350のプロセッサ222は、図5に係るリアルタイムライブストリーミング方法を実行するための構成要素として、図4に示すように、ストリーム受信部410、ストリームキャッシュ部420、オーディオビデオ分析部430、およびストリーム送信部440を含んでよい。実施形態によって、プロセッサ222の構成要素は、選択的にプロセッサ222に含まれても除外されてもよい。また、実施形態によって、プロセッサ222の構成要素は、プロセッサ222の機能の表現のために分離されても併合されてもよい。
As shown in FIG. 4, the
このようなプロセッサ222およびプロセッサ222の構成要素は、図4のリアルタイムライブストリーミング方法が含む段階510~540を実行するようにサーバ350を制御してよい。例えば、プロセッサ222およびプロセッサ222の構成要素は、メモリ221が含むオペレーティングシステムのコードと、少なくとも1つのプログラムのコードとによる命令を実行するように実現されてよい。
ここで、プロセッサ222の構成要素は、サーバ350に記録されたプログラムコードが提供する命令にしたがってプロセッサ222によって実行される、互いに異なる機能の表現であってよい。例えば、サーバ350がCP320からコンテンツのストリームを受信するように上述した命令にしたがってサーバ350を制御するプロセッサ222の機能的表現として、ストリーム受信部410が利用されてよい。
Here, the components of the
プロセッサ222は、サーバ350の制御と関連する命令がロードされたメモリ221から必要な命令を読み取ってよい。この場合、前記読み取られた命令は、プロセッサ222が以下で説明する段階510~540を実行するように制御するための命令を含んでよい。
The
以下で説明する段階510~540は、図5に示した順序とは異なるように実行されてもよく、段階510~540のうちの一部が省略されても、追加の過程がさらに含まれてもよい。 The steps 510-540 described below may be performed in a different order than shown in FIG. 5, and even if some of the steps 510-540 are omitted, additional steps may be included. May be good.
図5を参照すると、段階510で、ストリーム受信部410は、リアルタイムライブストリーミングプラットフォームで、ストリーマであるCP320が提供するコンテンツのストリームを受信してよい。
Referring to FIG. 5, at step 510, the
段階520で、ストリームキャッシュ部420は、段階510で受信したコンテンツに対し、ビデオストリームをGOP(group of pictures)単位でキャッシュしてよい。ビデオは、I-フレーム(intra frame)、P-フレーム(predicted frame)、B-フレーム(bidirectional frame)で構成されており、再生を開始するためには最小で1つのI-フレームが必要となる。ストリームキャッシュ部420は、クライアント310の要請に対応し、I-フレームから始まるパケットを伝達するために、ビデオストリームをGOP単位でキャッシュしてよい。
In step 520, the
段階530で、オーディオビデオ分析部430は、ビデオストリームとオーディオストリームの分析によってGOP単位に対応するオーディオ区間を検索し、該当のビデオとともに保存してよい。クライアント310を対象にしてI-フレームから始まるビデオストリームをGOP単位で伝達するときに発生し得る副作用を解決するために、オーディオビデオ分析部430は、GOP単位のビデオと該当のビデオに対応するオーディオ区間を検索し、ビデオとオーディオを合わせて整列および保管してよい。
At step 530, the audio-
段階540で、ストリーム送信部440は、クライアント310の要請にしたがい、GOP単位のビデオストリームをオーディオとともにクライアント310のプレイヤに送信してよい。ストリーム送信部440は、キャッシュされたGOP単位のビデオと該当のビデオに対応する区間のオーディオをクライアント310のプレイヤに伝達するにあたり、ビデオとオーディオをデータ送信最小単位であるパケット単位で交互に編集された形態で伝達してよい。ビデオストリームをGOP単位で伝達するときに発生し得る副作用を解決するために、ビデオとオーディオがパケット単位で交互になるように再構成してクライアント310のプレイヤに伝達してよい。
At step 540, the
以下では、具体的な例を参照しながら、リアルタイムライブストリーミング過程について説明する。 In the following, the real-time livestreaming process will be described with reference to specific examples.
一般的に、ビデオは、I-フレーム、P-フレーム、B-フレームが一定のパターンで繰り返される形態を有し、1つのイメージフレームグループ、すなわち、GOP単位でエンコードされてよい。図6を参照すると、1つのGOPは、I-フレーム、P-フレーム、B-フレームを含み、I-フレームとI-フレームの間にB-フレームとP-フレームが配置される。言い換えれば、I-フレームから始まる連続的なフレームの集合がGOPと呼ばれるのである。場合によっては、B-フレームがなく、I-フレームとP-フレームだけでGOPが構成されてもよい。 In general, a video has a form in which I-frames, P-frames, and B-frames are repeated in a fixed pattern, and may be encoded in one image frame group, that is, in units of GOP. Referring to FIG. 6, one GOP includes an I-frame, a P-frame, a B-frame, and a B-frame and a P-frame are arranged between the I-frame and the I-frame. In other words, a set of continuous frames starting with an I-frame is called a GOP. In some cases, the GOP may be composed of only the I-frame and the P-frame without the B-frame.
I-フレームは、キーフレームを意味しており、GOPの基準となる核心フレームに該当する。すべてのGOPのフレームは、必ずI-フレームから始まる。I-フレームは、前に位置する他のフレームを参照せずに原本そのままで保存されたフレームである。また、P-フレームは、順方向予測フレームであって、すぐ前に位置するI-フレームと比べて差がある部分データを予測して保存したフレームである。最後に、B-フレームは、双方向予測フレームであって、I-フレームとP-フレームの間に位置し、両側のフレームを参照し、2つのフレームの動きを推測データとして保存したフレームである。 The I-frame means a key frame and corresponds to the core frame that is the standard of GOP. All GOP frames always start with an I-frame. An I-frame is a frame that is preserved in its original form without reference to other frames located in front of it. Further, the P-frame is a forward prediction frame, which is a frame in which partial data having a difference from the I-frame located immediately in front is predicted and stored. Finally, the B-frame is a bidirectional prediction frame, which is located between the I-frame and the P-frame, refers to the frames on both sides, and stores the movements of the two frames as guess data. ..
図7に示すように、コンテンツ視聴のためにクライアント310がサーバ350に接続した時点(@)のほとんどは、クライアント310の接続時に生成されているGOPの中間に位置するようになり、該当の地点からストリームが伝達されるようになる可能性が高い。例えば、GOP1が生成されている途中に接続した場合、クライアント310は、接続時点(@)の直後からのストリームを受信するようになるが、以後、新なGOP(GOP2)のビデオ開始パケット、すなわちI-フレーム(I_2)を受信するまで、視聴者はプレイヤ画面で何も視聴することができずに遅延を感じるようになる。
As shown in FIG. 7, most of the time points (@) when the
このような遅延時間を最小化するために、サーバ350では、GOP単位のキャッシュを実行する。本実施形態では、クライアント310の接続時点直後のストリームから伝達するのではなく、ビデオストリームキャッシュによってI-フレームから始まるGOPとしてもっとも最近キャッシュされた完全なGOPを伝達することにより、遅延時間の最小化を図ることができる。クライアント310は、GOP単位のビデオストリームとしてI-フレームから受信することにより、プレイヤで直ぐにビデオを再生することができる。
In order to minimize such a delay time, the
本実施形態では、サーバ管理者の設定やクライアント310とサーバ350間のネットワーク状態などを考慮しながら、ビデオストリームに対するキャッシュのサイズを指定してよい。
In the present embodiment, the size of the cache for the video stream may be specified in consideration of the settings of the server administrator, the network state between the
ビデオストリームキャッシュ過程で新たなGOPをアップデートするときには、キャッシュされたGOPのうちで最初に完成した1つのGOPは捨てる方式が採択される。 When updating a new GOP in the video stream cache process, the method of discarding the first completed GOP among the cached GOPs is adopted.
図8を参照すると、サイズが1であるキャッシュ701の場合、1つのGOPが完成する前にクライアント310が接続した場合、すなわち、GOPキャッシュの途中に接続した場合は、GOPが完成するまでストリームが伝達されず、視聴者は遅延を感じるようになる。これは、1つのI-フレームがGOPとして完成する前に接続した場合には、接続時点からGOPが完成され、ネットワークを介してクライアント310に伝達されるまでの遅延がそのまま表示されるためである。
Referring to FIG. 8, in the case of
このような問題を防ぐために、本実施形態では、少なくとも2つ以上のGOPをキャッシュすることができるように、サイズが2以上であるキャッシュ702を適用してよい。言い換えれば、GOPキャッシュのサイズを少なくとも2以上に指定してよく、クライアント310の接続時点を基準としてどちらのGOPを伝達するかに対しても設定可能である。
In order to prevent such a problem, in the present embodiment, a
例えば、GOPキャッシュのサイズを2に指定し、最後に完成したGOPから接近するように指定されてよい。図9に示すように、キャッシュ702にGOP1が完成され、GOP2はキャッシュ進行中であると仮定すれば、クライアント310がb時点に接近したとしても、完成したGOPであるGOP1から受信して直ぐに再生が可能となるため、キャッシュ進行中のGOP2が完成して伝達されるまでの遅延時間を除去することができる。
For example, the size of the GOP cache may be specified as 2, and it may be specified to approach from the last completed GOP. As shown in FIG. 9, assuming that the GOP1 is completed in the
クライアント310の接続時点を基準にもっとも最近完成したGOPを伝達するものと説明しているが、場合によっては、伝達対象のGOPが相違するように決定されてもよい。例えば、図10を参照すると、GOPキャッシュのサイズが3である場合、時間順にGOP1とGOP2が先に完成し、GOP3がキャッシュ進行中である状況でクライアント310がc時点に接続したとき、クライアント310とのネットワーク状態を考慮しながら、GOP1とGOP2のうちのどちらのGOPから伝達するかが決定されてよい。一例として、クライアント310の接続時点cを基準として現在のネットワーク帯域幅が閾値以上であれば、もっとも最近完成したGOP2から伝達する反面、現在のネットワーク帯域幅が閾値未満であれば、GOP2以前に完成したGOP1から伝達してよい。
Although it is explained that the most recently completed GOP is transmitted based on the connection time point of the
他の例として、ネットワーク帯域幅に合わせてデータを送信するABP(Adaptive Bitrate Publish)技術を適用してよい。リアルタイムライブプロトコル(例えば、RTMP(real time messaging protocol)など)環境では、ネットワーク帯域幅を測定し、測定された帯域幅に適応するようにビットレートやfps(frame per second)などを直ぐに変更する適応型データ送信技術が活用されてよい。これと同じように、ストリームキャッシュを利用したリアルタイムライブストリーミング環境では、クライアント310の接続時点を基準にもっとも最近完成したGOPから伝達するが、クライアント310のモニタリング結果としてクライアント310側の受信状況が良好でなくGOPが滞る場合には、GOPから一部のパケット(B-フレームおよび/またはP-フレーム)を消去する(drop)方式、あるいはコンテンツの配信時間に合わせて一部のGOPをスキップするかジャンプする方式などを適用してよい。クライアント310に対するモニタリング周期により、消去(スキップまたはジャンプ)するフレームの長さが可変的であってよい。例えば、クライアント310が特定のプログラムを視聴するために接続した場合、接続時点を基準にもっとも最近完成したGOPからクライアント310側に伝達した後、1次モニタリング結果としてクライアント310側がGOPを正常に受信できずに滞るようになれば、第1長さだけのフレームを消去する。2次モニタリング結果でも同じようにGOPが継続して滞る場合には、第1長さよりも長い第2長さだけのフレームを消去する。言い換えれば、クライアント310側で途切れなく視聴できるようにするために、クライアント310の受信状態に基づいて一部のフレームを消去した後に残りのフレームを伝達するようになるが、このとき、モニタリング周期によって消去するフレームの長さを調整してよい。
As another example, ABP (Adaptive Bitrate Public) technology for transmitting data according to the network bandwidth may be applied. In a real-time live protocol (eg, RTMP (real time measuring protocol)) environment, the network bandwidth is measured and the bit rate, fps (frame per second), etc. are changed immediately to adapt to the measured bandwidth. Type data transmission technology may be utilized. Similarly, in a real-time live streaming environment using a stream cache, transmission is performed from the most recently completed GOP based on the connection time of the
ビデオストリームをI-フレームから始まるGOP単位でキャッシュして伝達することによって遅延時間を最小化することはできるが、クライアント310側のプレイヤの誤作動の可能性を高める場合もある。GOPはビデオ情報のみを含んでいるため、プレイヤに内蔵されているオーディオビデオ同期化メカニズムに誤作動が生じる場合がある。例えば、ビデオデータである1つのGOPを先に伝達してからオーディオを伝達する方式の場合、ビデオデータのサイズによっては受信過程からオーディオデータがないものと見なされて再生が始まる場合がある。
Although the delay time can be minimized by caching and transmitting the video stream in GOP units starting from the I-frame, it may increase the possibility of malfunction of the player on the
このような問題を防ぐために、プロセッサ222は、CP320から伝達された映像情報(ビデオストリームとオーディオストリーム)を分析し、GOPだけでなく、1つのGOPが再生されるときに再生されるべきオーディオもタイムラインに合わせて整列して保管してよい。
To prevent such problems, the
図11を参照すると、ストリームキャッシュ過程においてビデオのフレームごとにデータタイプ(I-フレーム、B-フレーム、P-フレーム)を分析し、I-フレーム(I_1、I_2、・・・)それぞれと該当のI-フレームに対応するオーディオ(audio_1、audio_2、・・・)のタイムスタンプとを合わせてビデオとオーディオをグループ化してよい。 Referring to FIG. 11, the data type (I-frame, B-frame, P-frame) is analyzed for each frame of the video in the stream cache process, and each of the I-frames (I_1, I_2, ...) Corresponds to each. The video and audio may be grouped together with the time stamp of the audio (audio_1, audio_2, ...) Corresponding to the I-frame.
また、プロセッサ222は、上述したグループ化によってビデオとオーディオをともにキャッシュしてプレイヤに伝達するときに、プレイヤのオーディオビデオ同期化メカニズムを考慮しながら伝達してよい。
Further, when the video and audio are both cached and transmitted to the player by the above-mentioned grouping, the
ビデオデータに該当する1つのGOPをすべて伝達してからオーディオを伝達するか、オーディオを先に伝達してから1つのGOPを伝達する場合、伝達されるビデオあるいはオーディオのデータのサイズによっては、プレイヤのオーディオビデオ同期化メカニズムに問題が生じる可能性がある。 When transmitting all one GOP corresponding to video data and then transmitting audio, or transmitting audio first and then transmitting one GOP, depending on the size of the transmitted video or audio data, the player There may be problems with the audio-video synchronization mechanism.
このような問題を解決するために、プロセッサ222は、ビデオとオーディオをパケット単位で交互に編集された形態に再構成して伝達してよい。図12を参照すると、プロセッサ222は、1つのGOP(GOP1)に該当するビデオデータとオーディオデータ(audio_1)をクライアント310のプレイヤに伝達するときに、タイムラインに合わせてパケット単位のビデオ(V)とオーディオ(A)が交互になる形態に再構成して伝達してよい。
In order to solve such a problem, the
パケット交互方法は、ビデオ(V)とオーディオ(A)のパケットが1対1で交互に配列されてよい。他の例としては、ビデオ(V)とオーディオ(A)のデータのサイズによってパケットの交互個数が決定され、1対1、1対多、多対1、多対多のうちのいずれか1つで交互に配列されることも可能である。 In the packet alternating method, video (V) and audio (A) packets may be arranged alternately on a one-to-one basis. As another example, the size of the video (V) and audio (A) data determines the alternating number of packets, which is one of one-to-one, one-to-many, many-to-one, and many-to-many. It is also possible to arrange them alternately with.
ビデオデータとオーディオデータをパケット単位で交互に編集された形態に再構成して伝達することにより、プレイヤのオーディオビデオ同期化メカニズムが問題なく作動するようになる。 By reconstructing and transmitting the video data and the audio data in a form edited alternately in packet units, the player's audio-video synchronization mechanism works without any problem.
プレイヤは、I-フレームを受信して画面再生が可能となる。ユーザが接続した時点がI-フレーム位置に該当する可能性は低いため、接続時点を基準にもっとも最近完成したGOPを伝達することにより、プレイヤは常にI-フレームから受信することができるようになり、可能な限り迅速な再生がなされるように保障することができる。 The player can receive the I-frame and play the screen. Since it is unlikely that the point at which the user connects corresponds to the I-frame position, the player will always be able to receive from the I-frame by transmitting the most recently completed GOP based on the point of connection. , It can be guaranteed that the reproduction is as quick as possible.
RTMPのようなリアルタイムライブプロトコルは、TCP上で動作する。TCPで送信速度を十分に高めるためには、スロースタート過程を経て十分な帯域幅を確保しなければならない。サーバ350からストリームキャッシュによるGOPをプレイヤに送信することにより、スロースタート過程を迅速に実行する効果(warm-up)を得ることができる。
Real-time live protocols like RTMP run on TCP. In order to sufficiently increase the transmission speed with TCP, it is necessary to secure sufficient bandwidth through a slow start process. By transmitting the GOP by the stream cache from the
これだけでなく、プレイヤは、一般的に安定した再生のために、内部バッファに一定のサイズ以上のデータが満たされてから再生を始める。サーバ350からストリームキャッシュによるGOPをプレイヤに送信することによってバッファを迅速に満たすことができるため、I-フレームによる最初の画面を表示できるだけでなく、以後の実際の映像再生も迅速に処理することができる。
Not only this, the player generally starts playback after the internal buffer is filled with data of a certain size or more for stable playback. Since the buffer can be quickly filled by transmitting the GOP by the stream cache from the
このように、本発明の実施形態によると、リアルタイムライブストリーミング環境において、GOP単位のキャッシュによって直ぐに再生可能な形態のビデオとオーディオをプレイヤに伝達することにより、遅延時間を最小化し、ユーザが体感する品質を高めることができる。さらに、本発明の実施形態によると、遅延時間を最小化するためのキャッシュ過程において、ストリーマから伝達された映像情報を分析してビデオが再生されるときにともに再生されるべきオーディオを検索してともに保管した後、送信過程でビデオとオーディオをパケット単位で交互に編集された形態で伝達することにより、キャッシュレイヤの副作用として発生し得るプレイヤの同期化問題を効果的に解決することができる。 As described above, according to the embodiment of the present invention, in the real-time live streaming environment, the delay time is minimized and the user experiences it by transmitting the video and audio in a form that can be immediately reproduced by the cache in units of GOP to the player. The quality can be improved. Further, according to the embodiment of the present invention, in the cache process for minimizing the delay time, the video information transmitted from the streamer is analyzed to search for the audio to be played together when the video is played. By transmitting video and audio in a form that is alternately edited in packet units during the transmission process after storing both, it is possible to effectively solve the player synchronization problem that may occur as a side effect of the cache layer.
上述した装置は、ハードウェア構成要素、ソフトウェア構成要素、および/またはハードウェア構成要素とソフトウェア構成要素との組み合わせによって実現されてよい。例えば、実施形態で説明された装置および構成要素は、プロセッサ、コントローラ、ALU(arithmetic logic unit)、デジタル信号プロセッサ、マイクロコンピュータ、FPGA(field programmable gate array)、PLU(programmable logic unit)、マイクロプロセッサ、または命令を実行して応答することができる様々な装置のように、1つ以上の汎用コンピュータまたは特殊目的コンピュータを利用して実現されてよい。処理装置は、オペレーティングシステム(OS)およびOS上で実行される1つ以上のソフトウェアアプリケーションを実行してよい。また、処理装置は、ソフトウェアの実行に応答し、データにアクセスし、データを記録、操作、処理、および生成してもよい。理解の便宜のために、1つの処理装置が使用されるとして説明される場合もあるが、当業者は、処理装置が複数個の処理要素および/または複数種類の処理要素を含んでもよいことが理解できるであろう。例えば、処理装置は、複数個のプロセッサまたは1つのプロセッサおよび1つのコントローラを含んでよい。また、並列プロセッサのような、他の処理構成も可能である。 The devices described above may be implemented by hardware components, software components, and / or combinations of hardware components and software components. For example, the apparatus and components described in the embodiments include a processor, a controller, an ALU (arithmetic logic unit), a digital signal processor, a microcomputer, an FPGA (field programgable gate array), a PLU (programmable log unit), a microprocessor, and the like. Alternatively, it may be implemented using one or more general purpose computers or special purpose computers, such as various devices capable of executing and responding to instructions. The processing device may execute an operating system (OS) and one or more software applications running on the OS. The processing device may also respond to the execution of the software, access the data, and record, manipulate, process, and generate the data. For convenience of understanding, one processing device may be described as being used, but one of ordinary skill in the art may include a plurality of processing elements and / or a plurality of types of processing elements. You can understand. For example, the processing device may include multiple processors or one processor and one controller. Also, other processing configurations such as parallel processors are possible.
ソフトウェアは、コンピュータプログラム、コード、命令、またはこれらのうちの1つ以上の組み合わせを含んでもよく、思うままに動作するように処理装置を構成したり、独立的または集合的に処理装置に命令したりしてよい。ソフトウェアおよび/またはデータは、処理装置に基づいて解釈されたり、処理装置に命令またはデータを提供したりするために、いかなる種類の機械、コンポーネント、物理装置、コンピュータ記録媒体または装置に具現化されてよい。ソフトウェアは、ネットワークによって接続されたコンピュータシステム上に分散され、分散された状態で記録されても実行されてもよい。ソフトウェアおよびデータは、1つ以上のコンピュータ読み取り可能な記録媒体に記録されてよい。 The software may include computer programs, codes, instructions, or a combination of one or more of these, configuring the processing equipment to operate at will, or instructing the processing equipment independently or collectively. You may do it. The software and / or data is embodied in any type of machine, component, physical device, computer recording medium or device to be interpreted based on the processing device or to provide instructions or data to the processing device. good. The software is distributed on a computer system connected by a network and may be recorded or executed in a distributed state. The software and data may be recorded on one or more computer-readable recording media.
実施形態に係る方法は、多様なコンピュータ手段によって実行可能なプログラム命令の形態で実現されてコンピュータ読み取り可能な媒体に記録されてよい。ここで、媒体は、コンピュータ実行可能なプログラムを継続して記録するものであっても、実行またはダウンロードのために一時記録するものであってもよい。また、媒体は、単一または複数のハードウェアが結合した形態の多様な記録手段または格納手段であってよく、あるコンピュータシステムに直接接続する媒体に限定されることはなく、ネットワーク上に分散して存在するものであってもよい。媒体の例としては、ハードディスク、フロッピー(登録商標)ディスク、および磁気テープのような磁気媒体、CD-ROMおよびDVDのような光媒体、フロプティカルディスクのような光磁気媒体、およびROM、RAM、フラッシュメモリなどを含み、プログラム命令が記録されるように構成されたものであってよい。また、媒体の他の例として、アプリケーションを配布するアプリケーションストアやその他の多様なソフトウェアを供給または配布するサイト、サーバなどで管理する記録媒体または格納媒体が挙げられる。 The method according to the embodiment may be realized in the form of program instructions that can be executed by various computer means and recorded on a computer-readable medium. Here, the medium may be a continuous recording of a computer-executable program or a temporary recording for execution or download. Further, the medium may be various recording means or storage means in the form of a combination of a single piece of hardware or a plurality of pieces of hardware, and is not limited to a medium directly connected to a certain computer system, but is distributed over a network. It may exist. Examples of media include hard disks, floppy (registered trademark) disks, magnetic media such as magnetic tapes, optical media such as CD-ROMs and DVDs, optomagnetic media such as floptic disks, and ROMs, RAMs. , Flash memory, etc., and may be configured to record program instructions. Other examples of media include recording media or storage media managed by application stores that distribute applications, sites that supply or distribute various other software, servers, and the like.
以上のように、実施形態を、限定された実施形態および図面に基づいて説明したが、当業者であれば、上述した記載から多様な修正および変形が可能であろう。例えば、説明された技術が、説明された方法とは異なる順序で実行されたり、かつ/あるいは、説明されたシステム、構造、装置、回路などの構成要素が、説明された方法とは異なる形態で結合されたりまたは組み合わされたり、他の構成要素または均等物によって対置されたり置換されたとしても、適切な結果を達成することができる。 As described above, the embodiments have been described based on the limited embodiments and drawings, but those skilled in the art will be able to make various modifications and modifications from the above description. For example, the techniques described may be performed in a different order than the methods described, and / or components such as the systems, structures, devices, circuits described may be in a different form than the methods described. Appropriate results can be achieved even if they are combined or combined, and confronted or replaced by other components or equivalents.
したがって、異なる実施形態であっても、特許請求の範囲と均等なものであれば、添付される特許請求の範囲に属する。 Therefore, even if it is a different embodiment, if it is equivalent to the claims, it belongs to the attached claims.
本発明の実施形態は、更に以下の課題を解決する。 The embodiment of the present invention further solves the following problems.
遅延時間を最小化するためのキャッシュ過程において、ストリーマから伝達された映像情報を分析することでビデオが再生されるときにともに再生されるべきオーディオを検索し、該当のビデオとオーディオをともに保存するための方法とシステムを提供する。 In the cache process to minimize the delay time, by analyzing the video information transmitted from the streamer, the audio that should be played together when the video is played is searched, and the corresponding video and audio are saved together. Provides methods and systems for.
ユーザが選択したコンテンツをキャッシュして遅延時間を最小化することで直ぐに再生可能なビデオとオーディオを伝達し、プレイヤで同期化問題が発生しないように処理して伝達するための方法とシステムを提供する。 Provides a method and system for delivering ready-to-play video and audio by caching user-selected content and minimizing latency, and processing and delivering to prevent synchronization issues in the player. do.
222:プロセッサ
410:ストリーム受信部
420:ストリームキャッシュ部
430:オーディオビデオ分析部
440:ストリーム送信部
222: Processor 410: Stream receiving unit 420: Stream cache unit 430: Audio-video analysis unit 440: Stream transmitting unit
Claims (20)
前記サーバは、メモリに含まれるコンピュータ読み取り可能な命令を実行するように構成された少なくとも1つのプロセッサを含み、
前記方法は、
前記少なくとも1つのプロセッサにより、リアルタイムライブストリーミング環境においてストリーマから受信したコンテンツに対し、少なくとも2つ以上のGOP(group of pictures)をキャッシュする段階、および
前記少なくとも1つのプロセッサにより、クライアントの要請に対し、I-フレームから始まるパケットとしてキャッシュによって完成したGOPから前記クライアントに伝達する段階
を含む、方法。 It is a method that a server realized by a computer executes.
The server includes at least one processor configured to execute computer-readable instructions contained in memory.
The method is
A step of caching at least two or more GOPs (group of pictures) for content received from a streamer in a real-time live streaming environment by the at least one processor, and a client request by the at least one processor. A method comprising the step of transmitting from a cache-completed GOP to the client as a packet starting from an I-frame.
を特徴とする、請求項1に記載の方法。 The method of claim 1, wherein the size of the GOP cache is determined based on the settings of the administrator associated with the server or the network condition between the server and the client.
を特徴とする、請求項1または2に記載の方法。 The method according to claim 1 or 2, wherein the transmission target GOP is determined based on the setting of the administrator associated with the server or the network state between the server and the client.
前記キャッシュによって完成したGOPが複数個である場合、前記クライアントの接続時点を基準にもっとも最近完成したGOPから前記クライアントに伝達すること
を特徴とする、請求項1~3のいずれか一項に記載の方法。 The stage of transmission is
The invention according to any one of claims 1 to 3, wherein when there are a plurality of GOPs completed by the cache, the most recently completed GOP is transmitted to the client based on the connection time point of the client. the method of.
前記キャッシュによって完成したGOPが複数個である場合、前記サーバと前記クライアント間のネットワーク状態により、前記複数個のGOPのうちのいずれか1つのGOPから前記クライアントに伝達すること
を特徴とする、請求項1~3のいずれか一項に記載の方法。 The stage of transmission is
When there are a plurality of GOPs completed by the cache, the claim is characterized in that the GOP of any one of the plurality of GOPs is transmitted to the client depending on the network state between the server and the client. The method according to any one of Items 1 to 3.
前記クライアントのGOP受信状態によって一部のフレームを消去するかスキップした後、残りのフレームを伝達する段階
を含む、請求項1~3のいずれか一項に記載の方法。 The stage of transmission is
The method according to any one of claims 1 to 3, comprising a step of erasing or skipping some frames depending on the GOP reception state of the client and then transmitting the remaining frames.
前記コンテンツのビデオストリームとオーディオストリームの分析によってGOPに対応するオーディオ区間を検索し、ビデオデータとオーディオデータをタイムラインに合わせて整列する段階
を含む、請求項1~6のいずれか一項に記載の方法。 The caching stage is
13. the method of.
ビデオのフレームごとにデータタイプを分析し、I-フレームそれぞれと該当のI-フレームに対応するオーディオのタイムスタンプとを合わせてビデオデータとオーディオデータをグループ化する段階
を含む、請求項1~6のいずれか一項に記載の方法。 The caching stage is
Claims 1-6, including the step of analyzing the data type for each frame of the video and grouping the video data and the audio data by combining each I-frame with the audio time stamp corresponding to the corresponding I-frame. The method described in any one of the above.
ビデオデータとオーディオデータをパケット単位のデータが交互する形態に再構成して伝達すること
を特徴とする、請求項1~3のいずれか一項に記載の方法。 The stage of transmission is
The method according to any one of claims 1 to 3, wherein video data and audio data are reconstructed and transmitted in a form in which data in packet units alternate.
を特徴とする、請求項9に記載の方法。 9. The method of claim 9, wherein the alternate number of packets is determined based on the size of the video data and the audio data.
メモリに含まれるコンピュータ読み取り可能な命令を実行するように構成された少なくとも1つのプロセッサ
を含み、
前記少なくとも1つのプロセッサは、
リアルタイムライブストリーミング環境においてストリーマから受信したコンテンツに対し、少なくとも2つ以上のGOPをキャッシュする過程、および
クライアントの要請に対し、I-フレームから始まるパケットとしてキャッシュによって完成したGOPから前記クライアントに伝達する過程
を処理する、サーバ。 A server realized by a computer
Contains at least one processor configured to execute computer-readable instructions contained in memory.
The at least one processor
In a real-time live streaming environment, the process of caching at least two GOPs for content received from the streamer, and the process of transmitting to the client from the GOP completed by caching as a packet starting from an I-frame in response to a client request. The server that handles the.
を特徴とする、請求項12に記載のサーバ。 12. The server of claim 12, wherein the size of the GOP cache is determined based on the settings of the administrator associated with the server or the network condition between the server and the client.
を特徴とする、請求項12または13に記載のサーバ。 The server according to claim 12 or 13, wherein the transmission target GOP is determined based on the setting of the administrator associated with the server or the network state between the server and the client.
前記キャッシュによって完成したGOPが複数個である場合、前記クライアントの接続時点を基準にもっとも最近完成したGOPから前記クライアントに伝達すること
を特徴とする、請求項12~14のいずれか一項に記載のサーバ。 The at least one processor
The invention according to any one of claims 12 to 14, wherein when a plurality of GOPs completed by the cache are transmitted from the most recently completed GOP to the client based on the connection time of the client. Server.
前記キャッシュによって完成したGOPが複数個である場合、前記サーバと前記クライアント間のネットワーク状態により、前記複数個のGOPののうちのいずれか1つのGOPから前記クライアントに伝達すること
を特徴とする、請求項12~14のいずれか一項に記載のサーバ。 The at least one processor
When there are a plurality of GOPs completed by the cache, the GOP is transmitted from any one of the plurality of GOPs to the client depending on the network state between the server and the client. The server according to any one of claims 12 to 14.
前記クライアントのGOP受信状態によって一部のフレームを消去するかスキップした後、残りフレームを伝達すること
を特徴とする、請求項12~14のいずれか一項に記載のサーバ。 The at least one processor
The server according to any one of claims 12 to 14, wherein some frames are erased or skipped depending on the GOP reception state of the client, and then the remaining frames are transmitted.
前記コンテンツのビデオストリームとオーディオストリームの分析によってGOPに対応するオーディオ区間を検索し、ビデオデータとオーディオデータをタイムラインに合わせて整列すること
を特徴とする、請求項12~17のいずれか一項に記載のサーバ。 The at least one processor
One of claims 12 to 17, wherein the audio section corresponding to the GOP is searched by the analysis of the video stream and the audio stream of the content, and the video data and the audio data are aligned according to the timeline. The server described in.
ビデオのフレームごとにデータタイプを分析し、I-フレームそれぞれと該当のI-フレームに対応するオーディオのタイムスタンプとを合わせてビデオデータとオーディオデータをグループ化すること
を特徴とする、請求項12~17のいずれか一項に記載のサーバ。 The at least one processor
13. The server according to any one of 17 to 17.
ビデオデータとオーディオデータをパケット単位のデータが交互する形態に再構成して伝達すること
を特徴とする、請求項12~14のいずれか一項に記載のサーバ。 The at least one processor
The server according to any one of claims 12 to 14, wherein video data and audio data are reconstructed and transmitted in a form in which data in packet units alternate.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200112420A KR20220030736A (en) | 2020-09-03 | 2020-09-03 | Method, system, and computer readable record medium to minimize delay in real-time live streaming |
KR10-2020-0112420 | 2020-09-03 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2022042997A true JP2022042997A (en) | 2022-03-15 |
Family
ID=80393909
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021142379A Pending JP2022042997A (en) | 2020-09-03 | 2021-09-01 | Method, server, and computer-readable recording medium for minimizing delay in real time live streaming |
Country Status (3)
Country | Link |
---|---|
JP (1) | JP2022042997A (en) |
KR (1) | KR20220030736A (en) |
CN (1) | CN114143562A (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20240057844A (en) * | 2022-10-25 | 2024-05-03 | 삼성전자주식회사 | Electronic apparatus, server apparatus and control method thereof |
KR102629381B1 (en) * | 2023-05-18 | 2024-01-25 | 주식회사 짠컴퍼니 | A system for providing a community live streaming and method threrof |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0956702A1 (en) * | 1997-01-30 | 1999-11-17 | Microsoft Corporation | Vcr-like functions rendering video on demand |
CN107690073B (en) * | 2016-08-05 | 2021-07-16 | 阿里巴巴集团控股有限公司 | Video live broadcast method and video live broadcast server |
CN106791994B (en) * | 2016-12-30 | 2020-11-24 | 北京奇艺世纪科技有限公司 | Low-delay quick broadcasting method and device |
CN106604064A (en) * | 2016-12-30 | 2017-04-26 | 北京奇艺世纪科技有限公司 | Rapid broadcasting method and device |
CN108471548B (en) * | 2018-01-25 | 2021-07-06 | 湖南于一科技有限公司 | Live video quick playing method and device |
CN108540819B (en) * | 2018-04-12 | 2020-04-03 | 腾讯科技(深圳)有限公司 | Live broadcast data processing method and device, computer equipment and storage medium |
-
2020
- 2020-09-03 KR KR1020200112420A patent/KR20220030736A/en active Search and Examination
-
2021
- 2021-09-01 JP JP2021142379A patent/JP2022042997A/en active Pending
- 2021-09-02 CN CN202111024798.XA patent/CN114143562A/en active Pending
Also Published As
Publication number | Publication date |
---|---|
KR20220030736A (en) | 2022-03-11 |
CN114143562A (en) | 2022-03-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10583360B2 (en) | Stream testing for cloud gaming | |
JP6695449B2 (en) | Browser-based cloud game | |
JP7126813B2 (en) | Video recording method and system | |
JP6155305B2 (en) | System and method for synchronous playback of streaming digital content | |
US9473548B1 (en) | Latency reduction in streamed content consumption | |
JP6959925B2 (en) | User-stored data management method in cloud gaming | |
JP2013038766A (en) | Transmitter, transmitter control method, control program, and recording medium | |
JP2022042997A (en) | Method, server, and computer-readable recording medium for minimizing delay in real time live streaming | |
JP2023500140A (en) | Edge Computing Proxy for Cloud Gaming and 5G | |
US9942578B1 (en) | Methods and apparatuses for a distributed live-on-demand (LOD) origin | |
JP7164623B2 (en) | METHOD AND SYSTEM TO ELIMINATE DELAY OF GUEST BROADCAST OCCURRED IN LIVE BROADCAST AND NON-TEMPORARY COMPUTER-READABLE RECORDING MEDIUM | |
JP2023515947A (en) | Surfacing pre-recorded gameplay videos for in-game player assistance | |
KR101998303B1 (en) | Method and system for managing sliding window for time machine function | |
KR102063624B1 (en) | Method and system for delayed live broadcast | |
CN115623230A (en) | Live video playing method and device, electronic equipment and storage medium | |
KR102134250B1 (en) | Method and system for reproducing streaming content | |
US20170230718A1 (en) | Virtual high definition video player | |
JP2008270908A (en) | Information processor, and control method, program and storage medium thereof | |
KR102403263B1 (en) | Method, system, and computer readable record medium to implement fast switching mode between channels in multiple live transmission environment | |
JP6294527B2 (en) | Transmission device, transmission method, reproduction device, and reproduction method | |
JP2004104704A (en) | Video reproducing apparatus, video reproducing method, and program | |
JP6266827B1 (en) | Terminal and server | |
JP7282981B2 (en) | METHOD AND SYSTEM FOR PLAYING STREAMING CONTENT USING LOCAL STREAMING SERVER | |
KR102095674B1 (en) | Multimedia streaming and network apparatus and operation method of the same | |
KR20210004660A (en) | Method and system for shortening transmission time of media file through concurrent processing of encoding and uploading |