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 PDF

Info

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
Application number
JP2021142379A
Other languages
Japanese (ja)
Inventor
ヨンファン キム
Yong Hwan Kim
ヘソン チェー
Hae Seong Choi
ヒソン チョウ
Heesung Cho
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Line Plus Corp
Original Assignee
Line Plus Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Line Plus Corp filed Critical Line Plus Corp
Publication of JP2022042997A publication Critical patent/JP2022042997A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/21Server components or server architectures
    • H04N21/218Source of audio or video content, e.g. local disk arrays
    • H04N21/2187Live feed
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/231Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
    • H04N21/23106Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion involving caching operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/233Processing of audio elementary streams
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/23406Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving management of server-side video buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/23418Processing 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2402Monitoring of the downstream path of the transmission network, e.g. bandwidth available
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management 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/262Content 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/26208Content 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/26216Content 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

To provide a method, a system and a computer-readable recording medium for minimizing delay in real time live streaming.SOLUTION: With respect to a content received from a streamer in a real time live streaming environment, two or more groups of pictures (GOP) are cached and in response to a request by a client, transmission to the client is started from a GOP completed by caching as a packet starting from an I-frame.SELECTED DRAWING: Figure 5

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.

韓国公開特許第10-2006-0068547号公報Korean Published Patent No. 10-2006-0068547 Gazette

リアルタイムライブストリーミングプラットフォームでユーザが体感する品質の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.

本発明の一実施形態における、ネットワーク環境の例を示した図である。It is a figure which showed the example of the network environment in one Embodiment of this invention. 本発明の一実施形態における、電子機器およびサーバの内部構成を説明するためのブロック図である。It is a block diagram for demonstrating the internal structure of the electronic device and the server in one Embodiment of this invention. 本発明の一実施形態における、リアルタイムライブストリーミング環境の例を示した図である。It is a figure which showed the example of the real-time live streaming environment in one Embodiment of this invention. 本発明の一実施形態における、サーバのプロセッサが含むことのできる構成要素の例を示したブロック図である。It is a block diagram which showed the example of the component which the processor of a server can include in one Embodiment of this invention. 本発明の一実施形態における、サーバが実行することのできる方法の例を示したフローチャートである。It is a flowchart which showed the example of the method which a server can execute in one Embodiment of this invention. 本発明の一実施形態における、ストリームキャッシュによるGOP伝達過程を説明するための例示図である。It is an exemplary figure for demonstrating the GOP transmission process by stream cache in one Embodiment of this invention. 本発明の一実施形態における、ストリームキャッシュによるGOP伝達過程を説明するための例示図である。It is an exemplary figure for demonstrating the GOP transmission process by stream cache in one Embodiment of this invention. 本発明の一実施形態における、ストリームキャッシュによるGOP伝達過程を説明するための例示図である。It is an exemplary figure for demonstrating the GOP transmission process by stream cache in one Embodiment of this invention. 本発明の一実施形態における、ストリームキャッシュによるGOP伝達過程を説明するための例示図である。It is an exemplary figure for demonstrating the GOP transmission process by stream cache in one Embodiment of this invention. 本発明の一実施形態における、ストリームキャッシュによるGOP伝達過程を説明するための例示図である。It is an exemplary figure for demonstrating the GOP transmission process by stream cache in one Embodiment of this invention. 本発明の一実施形態における、ビデオとオーディオを合わせて保管する過程を説明するための例示図である。It is an exemplary diagram for demonstrating the process of storing video and audio together in one embodiment of the present invention. 本発明の一実施形態における、ビデオとオーディオをパケット単位で再構成して送信する過程を説明するための例示図である。It is an exemplary diagram for demonstrating the process of reconstructing and transmitting video and audio in packet units in one embodiment of the present invention.

<発明の概要>
コンピュータで実現されるサーバが実行する方法であって、前記サーバは、メモリに含まれるコンピュータ読み取り可能な命令を実行するように構成された少なくとも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 electronic devices 110, 120, 130, 140, a plurality of servers 150, 160, and a network 170. Such FIG. 1 is merely an example for explaining the invention, and the number of electronic devices and the number of servers are not limited as in FIG.

複数の電子機器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 electronic devices 110, 120, 130, 140 may be fixed terminals or mobile terminals realized by a computer system. Examples of a plurality of electronic devices 110, 120, 130, 140 include smartphones, mobile phones, navigation systems, PCs (personal computers), notebook PCs, digital broadcasting terminals, PDAs (Personal Digital Assistants), and PMPs (Tablet Multimedia Players). ), Tablets, game consoles, wearable devices, IoT (Internet of Things) devices, VR (Virtual Reality) devices, AR (Augmented Reality) devices, and the like. As an example, FIG. 1 shows a smartphone as an example of the electronic device 110, but in the embodiment of the present invention, the electronic device 110 substantially utilizes a wireless or wired communication method, and another via the network 170. It may mean one of a variety of physical computer systems capable of communicating with electrical devices 120, 130, 140 and / or servers 150, 160.

通信方式が限定されることはなく、ネットワーク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 network 170 includes a PAN (personal area network), a LAN (local area network), a CAN (campus area network), a MAN (metropolitan area network), a WAN (wise Internet) network, etc. It may include any one or more of the networks. Further, network 170 may include, but is limited to, any one or more of network topologies, including bus networks, star networks, ring networks, mesh networks, star-bus networks, tree or hierarchical networks, and the like. Will not be done.

サーバ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 servers 150, 160 is realized by one or more computer devices that communicate with a plurality of electronic devices 110, 120, 130, 140 via a network 170 to provide instructions, codes, files, contents, services, and the like. good. For example, the server 150 may be a system that provides the first service to a plurality of electronic devices 110, 120, 130, 140 connected via the network 170, and the server 160 may also be a system that provides the first service to the plurality of electronic devices 110, 120, 130, 140 connected via the network 170. It may be a system that provides a second service to the devices 110, 120, 130, 140. As a more specific example, the server 150 is a computer program installed and executed in a plurality of electronic devices 110, 120, 130, 140, and the server 150 is a service targeted by the application (for example, real-time live). A streaming service or the like) may be provided to a plurality of electronic devices 110, 120, 130, 140 as a first service. As another example, the server 160 may provide a service for distributing the above-mentioned application installation and execution files to a plurality of electronic devices 110, 120, 130, 140 as a second service.

図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 electronic device 110 and the internal configuration of the server 150 as an example for the electronic device. Further, the other electronic devices 120, 130, 140 and the server 160 may have the same or similar internal configuration as the above-mentioned electronic device 110 or the server 150.

電子機器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 electronic device 110 and the server 150 may include memories 211, 221s, processors 212, 222, communication modules 213, 223, and input / output interfaces 214, 224. The memory 211 and 221 are computer-readable recording media having a large permanent capacity such as a RAM (random access memory), a ROM (read only memory), a disk drive, an SSD (sold state drive), and a flash memory. A recording device may be included. Here, even if a permanent large-capacity recording device such as a ROM, SSD, flash memory, or disk drive is included in the electronic device 110 or the server 150 as another permanent recording device that is separated from the memories 211 and 221. good. Further, the memory 211 and 221 have an operating system and at least one program code (for example, a browser installed and executed in the electronic device 110, or installed in the electronic device 110 to provide a specific service. Code for applications etc.) may be recorded. Such software components may be loaded from a computer-readable recording medium separate from the memories 211 and 221. Such other computer-readable recording media may include computer-readable recording media such as floppy (registered trademark) drives, discs, tapes, DVD / CD-ROM drives, and memory cards. In other embodiments, software components may be loaded into memory 211, 221 through communication modules 213, 223, which are not computer readable recording media. For example, at least one program is a computer program installed by a file provided by a file distribution system (eg, server 160 described above) that distributes a developer or application installation file via a network 170 (eg, described above). It may be loaded into the memory 211 or 221 based on the application.

プロセッサ212、222は、基本的な算術、ロジック、および入出力演算を実行することにより、コンピュータプログラムの命令を処理するように構成されてよい。命令は、メモリ211、221または通信モジュール213、223によって、プロセッサ212、222に提供されてよい。例えば、プロセッサ212、222は、メモリ211、221のような記録装置に記録されたプログラムコードにしたがって受信される命令を実行するように構成されてよい。 Processors 212 and 222 may be configured to process instructions in a computer program by performing basic arithmetic, logic, and input / output operations. Instructions may be provided to processor 212, 222 by memory 211, 221 or communication modules 213, 223. For example, the processors 212 and 222 may be configured to execute instructions received according to a program code recorded in a recording device such as memories 211 and 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 communication modules 213 and 223 may provide a function for the electronic device 110 and the server 150 to communicate with each other via the network 170, and the electronic device 110 and / or the server 150 may provide another electronic device (as an example). , Electronic device 120) or another server (eg, server 160). As an example, a request generated by a processor 212 of an electronic device 110 according to a program code recorded in a recording device such as a memory 211 may be transmitted to a server 150 via a network 170 under the control of a communication module 213. On the contrary, control signals, instructions, contents, files, etc. provided under the control of the processor 222 of the server 150 are received by the electronic device 110 through the communication module 213 of the electronic device 110 via the communication module 223 and the network 170. May be done. For example, control signals, instructions, contents, files, etc. of the server 150 received through the communication module 213 may be transmitted to the processor 212 and the memory 211, and the contents, files, etc. may be further recorded by the electronic device 110. It may be recorded on a medium (permanent recording device described above).

入力/出力インタフェース214は、入力/出力装置215とのインタフェースのための手段であってよい。例えば、入力装置は、キーボード、マウス、マイクロフォン、カメラなどの装置を、出力装置は、ディスプレイ、スピーカ、触覚フィードバックデバイスなどのような装置を含んでよい。他の例として、入力/出力インタフェース214は、タッチスクリーンのように入力と出力のための機能が1つに統合された装置とのインタフェースのための手段であってもよい。入力/出力装置215は、電子機器110と1つの装置で構成されてもよい。また、サーバ150の入力/出力インタフェース224は、サーバ150に接続するかサーバ150が含むことのできる入力または出力のための装置(図示せず)とのインタフェースのための手段であってよい。より具体的な例として、電子機器110のプロセッサ212がメモリ211にロードされたコンピュータプログラムの命令を処理するにあたり、サーバ150や電子機器120が提供するデータを利用して構成されるサービス画面やコンテンツが、入力/出力インタフェース214を通じてディスプレイに表示されてよい。 The input / output interface 214 may be a means for an interface with the input / output device 215. For example, the input device may include a device such as a keyboard, mouse, microphone, camera, and the output device may include a device such as a display, speaker, haptic feedback device, and the like. As another example, the input / output interface 214 may be a means for an interface with a device that integrates functions for input and output, such as a touch screen. The input / output device 215 may be composed of an electronic device 110 and one device. Also, the input / output interface 224 of the server 150 may be a means for connecting to the server 150 or for interfacing with a device (not shown) for input or output that the server 150 can include. As a more specific example, a service screen or content configured by using data provided by the server 150 or the electronic device 120 when the processor 212 of the electronic device 110 processes an instruction of a computer program loaded in the memory 211. May be displayed on the display through the input / output interface 214.

また、他の実施形態において、電子機器110およびサーバ150は、図2の構成要素よりも多くの構成要素を含んでもよい。しかし、大部分の従来技術的構成要素を明確に図に示す必要はない。例えば、電子機器110は、上述した入力/出力装置215のうちの少なくとも一部を含むように実現されてもよいし、トランシーバ、GPS(Global Positioning System)モジュール、カメラ、各種センサ、データベースなどのような他の構成要素をさらに含んでもよい。より具体的な例として、電子機器110がスマートフォンである場合、一般的にスマートフォンが含んでいる加速度センサやジャイロセンサ、カメラモジュール、物理的な各種ボタン、タッチパネルを利用したボタン、入力/出力ポート、振動のための振動器などのような多様な構成要素が、電子機器110にさらに含まれるように実現されてよい。 Also, in other embodiments, the electronic device 110 and the server 150 may include more components than the components of FIG. However, most prior art components need not be clearly shown in the figure. For example, the electronic device 110 may be realized to include at least a part of the above-mentioned input / output device 215, such as a transceiver, a GPS (Global Positioning System) module, a camera, various sensors, a database, and the like. Other components may be further included. As a more specific example, when the electronic device 110 is a smartphone, an acceleration sensor or gyro sensor, a camera module, various physical buttons, a button using a touch panel, an input / output port, which are generally included in the smartphone, are used. Various components, such as accelerometers for vibration, may be realized to be further included in the electronic device 110.

以下では、リアルタイムライブストリーミング環境でユーザが体感する遅延時間を最小化するための方法およびシステムの具体的な実施形態について説明する。 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 client 310, a CP (Contents Provider) 320, and a server 350. The server 350 may correspond to the server 150 described with reference to FIGS. 1 and 2, and the client 310 and CP320 may be the electronic devices 110, 120, 130, 140 described with reference to FIGS. 1 and 2. Any one of them may be supported.

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 servers 350 installed under the network of the ISP (Internet Service Provider). Later, when there is a request from the client 310 corresponding to the viewer (viewer), it is operated by a system of transmitting the corresponding content to the client 310.

クライアント310側のプレイヤは、ユーザがプラットフォーム上で選択したコンテンツをサーバ350から受信した後、受信したコンテンツを出力装置(ディスプレイやスピーカなど)から出力して再生してよい。 The player on the client 310 side may receive the content selected by the user on the platform from the server 350, and then output the received content from an output device (display, speaker, or the like) to play the content.

上述したようなリアルタイムライブストリーミング環境でユーザが感じる品質の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 server 350 according to the present embodiment serves as a cache server that transmits the content provided by the CP 320 to the client 310 in a real-time live streaming environment. The server 350 may be configured with a real-time livestreaming system realized by a computer. The server 350 may provide the client 310 with a real-time livestreaming service by connecting to a dedicated application installed on the client 310 or a web / mobile site associated with the server 350.

サーバ350のプロセッサ222は、図5に係るリアルタイムライブストリーミング方法を実行するための構成要素として、図4に示すように、ストリーム受信部410、ストリームキャッシュ部420、オーディオビデオ分析部430、およびストリーム送信部440を含んでよい。実施形態によって、プロセッサ222の構成要素は、選択的にプロセッサ222に含まれても除外されてもよい。また、実施形態によって、プロセッサ222の構成要素は、プロセッサ222の機能の表現のために分離されても併合されてもよい。 As shown in FIG. 4, the processor 222 of the server 350 has a stream receiving unit 410, a stream cache unit 420, an audio / video analysis unit 430, and a stream transmission as components for executing the real-time live streaming method according to FIG. Part 440 may be included. Depending on the embodiment, the components of processor 222 may be selectively included or excluded from processor 222. Also, depending on the embodiment, the components of processor 222 may be separated or merged to represent the functionality of processor 222.

このようなプロセッサ222およびプロセッサ222の構成要素は、図4のリアルタイムライブストリーミング方法が含む段階510~540を実行するようにサーバ350を制御してよい。例えば、プロセッサ222およびプロセッサ222の構成要素は、メモリ221が含むオペレーティングシステムのコードと、少なくとも1つのプログラムのコードとによる命令を実行するように実現されてよい。 Such processors 222 and components of the processor 222 may control the server 350 to perform steps 510 to 540 included in the real-time livestreaming method of FIG. For example, the processor 222 and the components of the processor 222 may be implemented to execute an instruction by the code of the operating system included in the memory 221 and the code of at least one program.

ここで、プロセッサ222の構成要素は、サーバ350に記録されたプログラムコードが提供する命令にしたがってプロセッサ222によって実行される、互いに異なる機能の表現であってよい。例えば、サーバ350がCP320からコンテンツのストリームを受信するように上述した命令にしたがってサーバ350を制御するプロセッサ222の機能的表現として、ストリーム受信部410が利用されてよい。 Here, the components of the processor 222 may be representations of different functions executed by the processor 222 according to the instructions provided by the program code recorded in the server 350. For example, the stream receiver 410 may be used as a functional representation of the processor 222 that controls the server 350 according to the instructions described above so that the server 350 receives a stream of content from the CP 320.

プロセッサ222は、サーバ350の制御と関連する命令がロードされたメモリ221から必要な命令を読み取ってよい。この場合、前記読み取られた命令は、プロセッサ222が以下で説明する段階510~540を実行するように制御するための命令を含んでよい。 The processor 222 may read the necessary instructions from the memory 221 in which the instructions related to the control of the server 350 are loaded. In this case, the read instructions may include instructions for controlling the processor 222 to perform steps 510 to 540 described below.

以下で説明する段階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 stream receiver 410 may receive a stream of content provided by the streamer CP320 on a real-time livestreaming platform.

段階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 stream cache unit 420 may cache the video stream in units of GOP (group of pictures) for the content received in step 510. A video is composed of an I-frame (intra frame), a P-frame (predicted frame), and a B-frame (bidirectional frame), and a minimum of one I-frame is required to start playback. .. The stream cache unit 420 may cache the video stream in GOP units in order to respond to the request of the client 310 and transmit the packet starting from the I-frame.

段階530で、オーディオビデオ分析部430は、ビデオストリームとオーディオストリームの分析によってGOP単位に対応するオーディオ区間を検索し、該当のビデオとともに保存してよい。クライアント310を対象にしてI-フレームから始まるビデオストリームをGOP単位で伝達するときに発生し得る副作用を解決するために、オーディオビデオ分析部430は、GOP単位のビデオと該当のビデオに対応するオーディオ区間を検索し、ビデオとオーディオを合わせて整列および保管してよい。 At step 530, the audio-video analysis unit 430 may search for the audio section corresponding to the GOP unit by analyzing the video stream and the audio stream, and save it together with the corresponding video. In order to solve the side effects that may occur when transmitting a video stream starting from an I-frame to the client 310 in units of GOP, the audio-video analysis unit 430 may use the video in units of GOP and the audio corresponding to the corresponding video. You may search for sections and align and store video and audio together.

段階540で、ストリーム送信部440は、クライアント310の要請にしたがい、GOP単位のビデオストリームをオーディオとともにクライアント310のプレイヤに送信してよい。ストリーム送信部440は、キャッシュされたGOP単位のビデオと該当のビデオに対応する区間のオーディオをクライアント310のプレイヤに伝達するにあたり、ビデオとオーディオをデータ送信最小単位であるパケット単位で交互に編集された形態で伝達してよい。ビデオストリームをGOP単位で伝達するときに発生し得る副作用を解決するために、ビデオとオーディオがパケット単位で交互になるように再構成してクライアント310のプレイヤに伝達してよい。 At step 540, the stream transmission unit 440 may transmit a video stream in units of GOP to the player of the client 310 together with the audio according to the request of the client 310. The stream transmission unit 440 alternately edits the video and the audio in packet units, which is the minimum data transmission unit, in transmitting the cached video in GOP units and the audio in the section corresponding to the video to the player of the client 310. It may be transmitted in the same form. In order to solve the side effect that may occur when the video stream is transmitted in units of GOP, the video and audio may be reconfigured so as to alternate in units of packets and transmitted to the player of the client 310.

以下では、具体的な例を参照しながら、リアルタイムライブストリーミング過程について説明する。 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 client 310 connects to the server 350 for viewing the content are located in the middle of the GOP generated when the client 310 is connected, and the corresponding points. It is likely that the stream will be transmitted from. For example, if a connection is made while GOP1 is being generated, the client 310 will receive the stream immediately after the connection point (@), but thereafter, a new GOP (GOP2) video start packet, that is, Until the I-frame (I_2) is received, the viewer cannot see anything on the player screen and feels a delay.

このような遅延時間を最小化するために、サーバ350では、GOP単位のキャッシュを実行する。本実施形態では、クライアント310の接続時点直後のストリームから伝達するのではなく、ビデオストリームキャッシュによってI-フレームから始まるGOPとしてもっとも最近キャッシュされた完全なGOPを伝達することにより、遅延時間の最小化を図ることができる。クライアント310は、GOP単位のビデオストリームとしてI-フレームから受信することにより、プレイヤで直ぐにビデオを再生することができる。 In order to minimize such a delay time, the server 350 executes a cache in units of GOP. In this embodiment, the delay time is minimized by transmitting the most recently cached complete GOP as the GOP starting from the I-frame by the video stream cache instead of transmitting from the stream immediately after the connection point of the client 310. Can be planned. By receiving from the I-frame as a video stream in units of GOP, the client 310 can immediately play the video on the player.

本実施形態では、サーバ管理者の設定やクライアント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 client 310 and the server 350, and the like.

ビデオストリームキャッシュ過程で新たな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 cache 701 of size 1, if the client 310 connects before one GOP is completed, that is, if it connects in the middle of the GOP cache, the stream will be streamed until the GOP is completed. It is not communicated and the viewer feels a delay. This is because if one I-frame is connected before it is completed as a GOP, the delay from the time of connection until the GOP is completed and transmitted to the client 310 via the network is displayed as it is. ..

このような問題を防ぐために、本実施形態では、少なくとも2つ以上のGOPをキャッシュすることができるように、サイズが2以上であるキャッシュ702を適用してよい。言い換えれば、GOPキャッシュのサイズを少なくとも2以上に指定してよく、クライアント310の接続時点を基準としてどちらのGOPを伝達するかに対しても設定可能である。 In order to prevent such a problem, in the present embodiment, a cache 702 having a size of 2 or more may be applied so that at least two or more GOPs can be cached. In other words, the size of the GOP cache may be specified to be at least 2 or more, and it is also possible to set which GOP is transmitted based on the connection time point of the client 310.

例えば、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 cache 702 and the GOP2 is in the cache, even if the client 310 approaches the point b, it is received from the completed GOP GOP1 and immediately played back. Therefore, it is possible to eliminate the delay time until the GOP2 in progress in the cache is completed and transmitted.

クライアント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 client 310, in some cases, the GOP to be transmitted may be determined to be different. For example, referring to FIG. 10, when the size of the GOP cache is 3, GOP1 and GOP2 are completed first in chronological order, and when the client 310 connects to the point c in the situation where the cache is in progress, the client 310 It may be determined from which GOP of GOP1 and GOP2 is transmitted while considering the network state of. As an example, if the current network bandwidth is equal to or more than the threshold value based on the connection time c of the client 310, it is transmitted from the most recently completed GOP2, but if the current network bandwidth is less than the threshold value, it is completed before GOP2. It may be transmitted from the GOP1.

他の例として、ネットワーク帯域幅に合わせてデータを送信する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 client 310, but the reception status on the client 310 side is good as a result of monitoring the client 310. If the GOP is delayed, some packets (B-frames and / or P-frames) are deleted (drop) from the GOP, or some GOPs are skipped or jumped according to the delivery time of the content. You may apply the method of doing. The length of the frame to be erased (skip or jump) may be variable depending on the monitoring cycle for the client 310. For example, when the client 310 connects to watch a specific program, the client 310 can normally receive the GOP as a primary monitoring result after transmitting from the most recently completed GOP based on the connection time to the client 310 side. If it gets stuck, the frame of the first length is erased. Similarly, if the GOP continues to be delayed in the secondary monitoring result, the frame having only the second length longer than the first length is deleted. In other words, in order to enable continuous viewing on the client 310 side, some frames are erased based on the reception state of the client 310, and then the remaining frames are transmitted. At this time, depending on the monitoring cycle. You may adjust the length of the frame to be erased.

ビデオストリームを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 client 310 side. Since the GOP contains only video information, the audio-video synchronization mechanism built into the player may malfunction. For example, in the case of a method in which one GOP, which is video data, is transmitted first and then audio is transmitted, depending on the size of the video data, it may be considered that there is no audio data from the reception process and playback may start.

このような問題を防ぐために、プロセッサ222は、CP320から伝達された映像情報(ビデオストリームとオーディオストリーム)を分析し、GOPだけでなく、1つのGOPが再生されるときに再生されるべきオーディオもタイムラインに合わせて整列して保管してよい。 To prevent such problems, the processor 222 analyzes the video information (video stream and audio stream) transmitted from the CP320 and not only the GOP but also the audio to be played when one GOP is played. It may be stored in line with the timeline.

図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 processor 222 may transmit while considering the audio-video synchronization mechanism of the player.

ビデオデータに該当する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 processor 222 may reconstruct and transmit video and audio in a form edited alternately in packet units. Referring to FIG. 12, when the processor 222 transmits the video data and the audio data (audio_1) corresponding to one GOP (GOP1) to the player of the client 310, the video (V) in packet units is aligned with the timeline. And audio (A) may be reconstructed and transmitted in an alternating manner.

パケット交互方法は、ビデオ(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 server 350 to the player, the effect (warm-up) of rapidly executing the slow start process can be obtained.

これだけでなく、プレイヤは、一般的に安定した再生のために、内部バッファに一定のサイズ以上のデータが満たされてから再生を始める。サーバ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 server 350 to the player, not only the first screen by the I-frame can be displayed, but also the actual video reproduction after that can be processed quickly. can.

このように、本発明の実施形態によると、リアルタイムライブストリーミング環境において、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.
前記サーバと関連する管理者の設定または前記サーバと前記クライアント間のネットワーク状態に基づいてGOPキャッシュのサイズが決定されること
を特徴とする、請求項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.
前記サーバと関連する管理者の設定または前記サーバと前記クライアント間のネットワーク状態に基づいて伝達対象GOPが決定されること
を特徴とする、請求項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~10のうちのいずれか一項に記載の方法をコンピュータに実行させるためのプログラムが記録されている、コンピュータ読み取り可能な記録媒体。 A computer-readable recording medium in which a program for causing a computer to execute the method according to any one of claims 1 to 10 is recorded. コンピュータで実現されるサーバであって、
メモリに含まれるコンピュータ読み取り可能な命令を実行するように構成された少なくとも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.
前記サーバと関連する管理者の設定または前記サーバと前記クライアント間のネットワーク状態に基づいてGOPキャッシュのサイズが決定されること
を特徴とする、請求項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.
前記サーバと関連する管理者の設定または前記サーバと前記クライアント間のネットワーク状態に基づいて伝達対象GOPが決定されること
を特徴とする、請求項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.
前記少なくとも1つのプロセッサは、
前記キャッシュによって完成した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.
前記少なくとも1つのプロセッサは、
前記キャッシュによって完成した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.
前記少なくとも1つのプロセッサは、
前記クライアントの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.
前記少なくとも1つのプロセッサは、
前記コンテンツのビデオストリームとオーディオストリームの分析によって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.
前記少なくとも1つのプロセッサは、
ビデオのフレームごとにデータタイプを分析し、I-フレームそれぞれと該当のI-フレームに対応するオーディオのタイムスタンプとを合わせてビデオデータとオーディオデータをグループ化すること
を特徴とする、請求項12~17のいずれか一項に記載のサーバ。
The at least one processor
13. The server according to any one of 17 to 17.
前記少なくとも1つのプロセッサは、
ビデオデータとオーディオデータをパケット単位のデータが交互する形態に再構成して伝達すること
を特徴とする、請求項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.
JP2021142379A 2020-09-03 2021-09-01 Method, server, and computer-readable recording medium for minimizing delay in real time live streaming Pending JP2022042997A (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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