KR20200101047A - Video streaming method using real time caching technique and system thereof - Google Patents

Video streaming method using real time caching technique and system thereof Download PDF

Info

Publication number
KR20200101047A
KR20200101047A KR1020190019197A KR20190019197A KR20200101047A KR 20200101047 A KR20200101047 A KR 20200101047A KR 1020190019197 A KR1020190019197 A KR 1020190019197A KR 20190019197 A KR20190019197 A KR 20190019197A KR 20200101047 A KR20200101047 A KR 20200101047A
Authority
KR
South Korea
Prior art keywords
streaming
video
payload data
storage
edge node
Prior art date
Application number
KR1020190019197A
Other languages
Korean (ko)
Other versions
KR102274466B1 (en
Inventor
정경희
유용선
박준우
Original Assignee
주식회사 케이티
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 주식회사 케이티 filed Critical 주식회사 케이티
Priority to KR1020190019197A priority Critical patent/KR102274466B1/en
Publication of KR20200101047A publication Critical patent/KR20200101047A/en
Application granted granted Critical
Publication of KR102274466B1 publication Critical patent/KR102274466B1/en

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/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/235Processing of additional data, e.g. scrambling of additional data or processing content descriptors
    • 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/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • H04N21/23605Creation or processing of packetized elementary streams [PES]

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

The present invention relates to a video streaming method of an edge node including a streaming server, a cache server, and storage. The video streaming method of the edge node comprises the steps of: receiving a message requesting to play a video file from a subscriber terminal; generating a streaming buffer for determining an amount of data packets to be transmitted to the subscriber terminal in response to the received request message; checking whether payload data of a first playback section corresponding to the size of a streaming buffer among payload data of a video file exists in storage; and requesting and receiving payload data of a second playback section including the first playback section from an origin node in real-time when the payload data of the first playback section does not exist in the storage.

Description

실시간 캐싱 기법을 이용한 동영상 스트리밍 방법 및 그 시스템{VIDEO STREAMING METHOD USING REAL TIME CACHING TECHNIQUE AND SYSTEM THEREOF}Video streaming method and system using real-time caching technique {VIDEO STREAMING METHOD USING REAL TIME CACHING TECHNIQUE AND SYSTEM THEREOF}

본 발명은 동영상 스트리밍 방법 및 그 시스템에 관한 것으로서, 보다 구체적으로는 실시간 캐싱 기법을 이용하여 RTSP(Real Time Streaming Protocol) 프로토콜 기반의 동영상 스트리밍 서비스를 제공하는 동영상 스트리밍 방법 및 그 시스템에 관한 것이다.The present invention relates to a video streaming method and a system thereof, and more particularly, to a video streaming method and system for providing a video streaming service based on a Real Time Streaming Protocol (RTSP) protocol using a real-time caching technique.

최근 들어, 정보통신기술과 인터넷 기술의 발전으로 인하여, 유/무선 통신 네트워크를 통해 문자, 사진, 텍스트, 오디오 데이터 등을 제공할 뿐만 아니라 동영상까지 제공하기에 이르렀다. 또한, 프로그램을 주문하고 기다려야 하는 기존의 PPV(Pay Per View) 서비스와는 달리 가입자가 원하는 시간에 원하는 프로그램을 즉시 선택해 시청할 수 있는 양방향 영상 서비스 즉, VOD(Video On Demand) 서비스의 제공도 이루어지고 있다.In recent years, due to the development of information and communication technology and Internet technology, not only texts, photos, texts, audio data, etc. are provided through wired/wireless communication networks, but also videos are provided. In addition, unlike the existing PPV (Pay Per View) service, which requires a program to be ordered and waited, an interactive video service that allows subscribers to immediately select and watch the desired program at a desired time, i.e. VOD (Video On Demand) service, is also provided. have.

동영상 스트리밍 플랫폼은 RTSP 프로토콜 기반의 동영상 스트리밍 서비스를 댁 내에 위치하는 VOD 서비스 가입자의 단말 즉, 셋톱박스(Set Top Box, STB) 단말로 제공한다. RTSP 프로토콜은 STB 단말에서 VOD 서비스를 제공할 때 스트리밍 서버를 통한 동영상 파일 전송과 재생/중지/배속/되감기 등과 같은 사용자 재생 제어를 할 때 사용되는 애플리케이션 계층의 프로토콜이다.The video streaming platform provides a video streaming service based on the RTSP protocol to a VOD service subscriber's terminal located in the home, that is, a set top box (STB) terminal. The RTSP protocol is an application layer protocol used to control user playback such as video file transmission through a streaming server and playback/stop/speed/rewind when STB terminals provide VOD services.

최근의 동영상 스트리밍 플랫폼은 VOD 서비스 가입자의 규모가 커지면서 서비스 세션 처리에 따른 네트워크 병목 현상을 줄이기 위해 계층적인 분산 노드 구조로 동영상 스트리밍 서비스를 제공하고 있다. 가령, 도 1에 도시된 바와 같이, 동영상 스트리밍 플랫폼(100)은 오리진 노드(origin node, 110)와 복수의 엣지 노드들(edge nodes, 120)로 구성될 수 있다.Recently, video streaming platforms provide video streaming services in a hierarchical distributed node structure to reduce network bottlenecks caused by service session processing as the size of VOD service subscribers increases. For example, as shown in FIG. 1, the video streaming platform 100 may include an origin node 110 and a plurality of edge nodes 120.

오리진 노드(110)는 동영상 스트리밍 서비스를 모든 지역의 가입자에게 제공하는 스트리밍 서버(111)와 해당 서비스에서 제공 가능한 모든 동영상 파일들을 저장하는 스토리지(113)를 포함할 수 있다. 각각의 엣지 노드(120)는 동영상 스트리밍 서비스를 특정 지역의 가입자에게 제공하는 스트리밍 서버(121)와 해당 서비스에서 제공 가능한 일부 동영상 파일을 저장하는 로컬 저장소(123)를 포함할 수 있다.The origin node 110 may include a streaming server 111 that provides a video streaming service to subscribers in all regions and a storage 113 that stores all video files that can be provided by the service. Each edge node 120 may include a streaming server 121 that provides a video streaming service to a subscriber in a specific region and a local storage 123 that stores some video files that can be provided by the corresponding service.

통상 엣지 노드(120)는 오리진 노드(110)에 비해 스토리지 용량이 작아서 일부 인기 동영상 파일들을 로컬 저장소(123)에 미리 보관하고, 상기 보관된 파일들을 이용하여 동영상 스트리밍 서비스를 제공하고 있다. 즉, 기존의 엣지 노드(120)는 사전 파일배포 방식을 이용하여 동영상 스트리밍 서비스를 STB 단말(130)로 제공하고 있다. 따라서, VOD 서비스 가입자가 시청하고자 하는 동영상 파일이 엣지 노드(120)의 로컬 저장소(123)에 존재하지 않는 경우, STB 단말은 오리진 노드(110)에 별도로 접속하여 해당 동영상 파일에 대한 스트리밍 서비스를 요청하게 된다.In general, the edge node 120 has a smaller storage capacity than the origin node 110, so some popular video files are stored in advance in the local storage 123, and a video streaming service is provided using the stored files. That is, the existing edge node 120 provides a video streaming service to the STB terminal 130 using a pre-file distribution method. Therefore, when the video file that the VOD service subscriber wants to watch does not exist in the local storage 123 of the edge node 120, the STB terminal separately accesses the origin node 110 and requests a streaming service for the video file. Is done.

그런데, 동영상 스트리밍 서비스에서 제공하는 동영상 파일들의 크기가 수 기가바이트(GB) 이상으로 대 용량이고, 해당 파일들의 인기가 시시각각 변하기 때문에, 엣지 노드에 미리 보관할 동영상 파일을 결정하는데 매우 복잡한 로직(logic)을 필요로 하고, 동영상 파일을 엣지 노드로 전송 배포하는데 오랜 시간이 걸리는 문제가 있다. 또한, 배포가 완료된 동영상 파일도 그 인기가 빠르게 낮아져 해당 파일에 대한 동영상 스트리밍 서비스가 더 이상 엣지 노드에 요청되지 않아, 상대적으로 노드 규모가 작은 엣지 노드의 스토리지 이용효율을 떨어뜨리는 문제가 있다.However, since the size of the video files provided by the video streaming service is over a few gigabytes (GB), and the popularity of the corresponding files changes from time to time, it is a very complex logic to determine the video files to be stored in advance in the edge node. There is a problem that it takes a long time to transmit and distribute a video file to an edge node. In addition, the distribution of video files that have been distributed are also rapidly reduced in popularity, so that a video streaming service for the file is no longer requested from the edge node, thereby reducing the storage utilization efficiency of the edge node with a relatively small node size.

본 발명은 전술한 문제 및 다른 문제를 해결하는 것을 목적으로 한다. 또 다른 목적은 VOD 서비스 가입자가 시청하고자 하는 동영상 파일을 엣지 노드에 미리 배포/저장하지 않고, 실시간 조각 캐싱 기법을 이용하여 RTSP 프로토콜 기반의 동영상 스트리밍 서비스를 STB 단말로 제공할 수 있는 동영상 스트리밍 방법 및 그 시스템을 제공함에 있다.It is an object of the present invention to solve the above and other problems. Another purpose is a video streaming method that can provide a video streaming service based on RTSP protocol to an STB terminal using a real-time fragment caching technique without pre-distributing/storing video files that VOD service subscribers want to watch on an edge node, and It is in providing the system.

또 다른 목적은 VOD 서비스 가입자가 요청하는 동영상 스트리밍 서비스에 대해 전체 파일 구간을 저장하지 않고 해당 가입자가 시청하는 일부 파일 구간만을 청크 단위로 저장하여 엣지 노드의 스토리지 이용효율을 향상시킬 수 있는 동영상 스트리밍 방법 및 그 시스템을 제공함에 있다.Another purpose is a video streaming method that can improve the storage utilization efficiency of edge nodes by storing only some file sections viewed by the subscriber in chunks without storing the entire file section for the video streaming service requested by the VOD service subscriber. And to provide the system.

상기 또는 다른 목적을 달성하기 위해 본 발명의 일 측면에 따르면, 가입자 단말로부터 동영상 파일의 재생을 요청하는 메시지를 수신하는 단계; 상기 수신된 요청 메시지에 대응하여, 상기 가입자 단말로 전송할 데이터 패킷의 양을 결정하기 위한 스트리밍 버퍼를 생성하는 단계; 상기 동영상 파일의 페이로드 데이터 중 상기 스트리밍 버퍼의 크기에 대응하는 제1 재생 구간의 페이로드 데이터가 상기 스토리지에 존재하는지를 확인하는 단계; 및 상기 제1 재생 구간의 페이로드 데이터가 상기 스토리지에 존재하지 않는 경우, 상기 제1 재생 구간을 포함하는 제2 재생 구간의 페이로드 데이터를 오리진 노드에 실시간으로 요청하여 수신하는 단계를 포함하는 엣지 노드의 동영상 스트리밍 방법을 제공한다.According to an aspect of the present invention to achieve the above or other objects, receiving a message requesting to play a video file from a subscriber terminal; Generating a streaming buffer for determining an amount of data packets to be transmitted to the subscriber station in response to the received request message; Checking whether payload data of a first playback section corresponding to the size of the streaming buffer among payload data of the moving picture file exists in the storage; And when the payload data of the first playback section does not exist in the storage, requesting and receiving payload data of the second playback section including the first playback section in real time from an origin node. Provides a video streaming method of Node.

좀 더 바람직하게는, 상기 스토리지는 사전 파일배포 방식으로 수신된 동영상 파일들을 저장하는 로컬 저장소와 실시간 캐싱 방식으로 수신된 동영상 파일들을 저장하는 캐시 저장소를 포함하는 것을 특징으로 한다. 또한, 상기 제2 재생 구간의 페이로드 데이터 크기는 상기 오리진 노드와 상기 엣지 노드 간의 네트워크 전송 시간을 고려하여 결정되는 것을 특징으로 한다.More preferably, the storage includes a local storage for storing video files received by a pre-file distribution method and a cache storage for storing video files received by a real-time caching method. In addition, the size of the payload data in the second reproduction period is determined in consideration of a network transmission time between the origin node and the edge node.

좀 더 바람직하게는, 상기 동영상 스트리밍 방법은 오리진 노드로부터 수신된 페이로드 데이터를 캐시 저장소에 청크(chunk) 단위로 저장하는 단계를 더 포함하는 것을 특징으로 한다. 또한, 상기 동영상 스트리밍 방법은 제1 재생 구간의 페이로드 데이터를 스토리지 또는 오리진 노드로부터 획득하여 스트리밍 버퍼에 채우는 단계를 더 포함하는 것을 특징으로 한다. 또한, 상기 동영상 스트리밍 방법은, 제1 재생 구간의 페이로드 데이터가 스트리밍 버퍼에 채워진 경우, 상기 스트리밍 버퍼에 저장된 데이터 패킷을 가입자 단말로 전송하는 단계를 더 포함하는 것을 특징으로 한다. More preferably, the video streaming method further includes storing payload data received from an origin node in a cache storage unit in chunks. In addition, the video streaming method may further include acquiring payload data of a first playback section from a storage or an origin node and filling the streaming buffer. In addition, the video streaming method may further include transmitting a data packet stored in the streaming buffer to a subscriber terminal when the payload data of the first playback section is filled in the streaming buffer.

좀 더 바람직하게는, 상기 동영상 스트리밍 방법은 가입자 단말로부터 동영상 파일의 설명을 요청하는 메시지를 수신하는 단계를 더 포함하는 것을 특징으로 한다. 또한, 상기 동영상 스트리밍 방법은 동영상 파일의 메타데이터 정보가 스토리지에 존재하는지를 확인하는 단계를 더 포함하는 것을 특징으로 한다. 또한, 상기 동영상 스트리밍 방법은, 동영상 파일의 메타데이터 정보가 스토리지에 존재하지 않는 경우, 상기 메타데이터 정보를 오리진 노드에 실시간으로 요청하여 수신하고, 상기 수신된 메타데이터 정보를 포함하는 메시지를 가입자 단말로 전송하는 단계를 더 포함하는 것을 특징으로 한다.More preferably, the video streaming method further comprises the step of receiving a message requesting a description of the video file from the subscriber terminal. Further, the video streaming method may further include checking whether metadata information of the video file exists in the storage. In addition, the video streaming method, when metadata information of a video file does not exist in the storage, requests and receives the metadata information from an origin node in real time, and sends a message including the received metadata information to a subscriber terminal. It characterized in that it further comprises the step of transmitting to.

본 발명의 다른 측면에 따르면, 오리진 노드로부터 수신된 동영상 파일을 청크 단위로 저장하는 캐시 저장소; 가입자 단말로부터 동영상 파일의 재생을 요청하는 메시지를 수신한 경우, 상기 가입자 단말로 전송할 데이터 패킷의 양을 결정하기 위한 스트리밍 버퍼를 생성하고, 상기 동영상 파일의 페이로드 데이터 중 상기 스트리밍 버퍼의 크기에 대응하는 제1 재생 구간의 페이로드 데이터를 캐시 서버에 요청하는 스트리밍 서버; 및 상기 제1 재생 구간의 페이로드 데이터가 상기 캐시 저장소에 존재하지 않는 경우, 상기 제1 재생 구간을 포함하는 제2 재생 구간의 페이로드 데이터를 오리진 노드에 실시간으로 요청하여 수신하는 캐시 서버를 포함하는 엣지 노드를 제공한다.According to another aspect of the present invention, there is provided a cache storage device for storing a video file received from an origin node in chunk units; When a message requesting playback of a video file is received from a subscriber terminal, a streaming buffer is created to determine the amount of data packets to be transmitted to the subscriber terminal, and corresponds to the size of the streaming buffer among payload data of the video file. A streaming server for requesting the payload data of the first playback section to be requested from the cache server; And a cache server that requests and receives payload data of a second playback period including the first playback period from an origin node in real time, when the payload data of the first playback period does not exist in the cache storage. Provides an edge node.

본 발명의 또 다른 측면에 따르면, 가입자 단말로부터 동영상 파일의 재생을 요청하는 메시지를 수신하는 과정; 상기 수신된 요청 메시지에 대응하여, 상기 가입자 단말로 전송할 데이터 패킷의 양을 결정하기 위한 스트리밍 버퍼를 생성하는 과정; 상기 동영상 파일의 페이로드 데이터 중 상기 스트리밍 버퍼의 크기에 대응하는 제1 재생 구간의 페이로드 데이터가 상기 스토리지에 존재하는지를 확인하는 과정; 및 상기 제1 재생 구간의 페이로드 데이터가 상기 스토리지에 존재하지 않는 경우, 상기 제1 재생 구간을 포함하는 제2 재생 구간의 페이로드 데이터를 오리진 노드에 실시간으로 요청하여 수신하는 과정이 컴퓨터 상에서 실행되도록 컴퓨터 판독 가능한 기록 매체에 저장된 컴퓨터 프로그램을 제공한다.According to another aspect of the present invention, the process of receiving a message requesting to play a video file from a subscriber terminal; Generating a streaming buffer for determining the amount of data packets to be transmitted to the subscriber station in response to the received request message; Checking whether payload data of a first playback section corresponding to the size of the streaming buffer among payload data of the moving picture file exists in the storage; And when the payload data of the first playback section does not exist in the storage, a process of requesting and receiving payload data of the second playback section including the first playback section in real time from an origin node is executed on the computer. As far as possible, a computer program stored on a computer-readable recording medium is provided.

본 발명의 실시 예들에 따른 동영상 스트리밍 방법 및 그 시스템의 효과에 대해 설명하면 다음과 같다.A video streaming method and effects of the system according to embodiments of the present invention will be described as follows.

본 발명의 실시 예들 중 적어도 하나에 의하면, 동영상 파일 전체를 엣지 노드에 사전 배포하지 않고, VOD 서비스 가입자가 엣지 노드에 동영상 스트리밍 서비스를 요청하는 시점에 오리진 노드로부터 해당 파일을 청크 단위로 실시간 캐싱하면서 RTSP 프로토콜 기반의 동영상 스트리밍 서비스를 제공할 수 있다는 장점이 있다.According to at least one of the embodiments of the present invention, the entire video file is not pre-distributed to the edge node, and the VOD service subscriber requests the video streaming service from the edge node in real time while caching the corresponding file in chunks from the origin node. It has the advantage of being able to provide a video streaming service based on the RTSP protocol.

또한, 본 발명의 실시 예들 중 적어도 하나에 의하면, VOD 서비스 가입자가 실제 시청한 동영상 파일 구간만을 스토리지에 저장하므로 엣지 노드의 스토리지 이용효율을 향상시킬 수 있다는 장점이 있다.In addition, according to at least one of the embodiments of the present invention, since only the video file section actually viewed by the VOD service subscriber is stored in the storage, there is an advantage that the storage utilization efficiency of the edge node can be improved.

또한, 본 발명의 실시 예들 중 적어도 하나에 의하면, 사전 파일배포 방식으로 보관 중인 파일을 이용한 동영상 스트리밍 서비스와, 실시간 조각 캐싱 방식으로 보관 중인 파일을 이용한 동영상 스트리밍 서비스를 모두 지원할 수 있다는 장점이 있다.In addition, according to at least one of the embodiments of the present invention, there is an advantage that both a video streaming service using a file stored in a pre-file distribution method and a video streaming service using a file stored in a real-time fragment caching method can be supported.

다만, 본 발명의 실시 예들에 따른 동영상 스트리밍 방법 및 그 시스템이 달성할 수 있는 효과는 이상에서 언급한 것들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.However, the video streaming method and the effects that can be achieved by the system according to the embodiments of the present invention are not limited to those mentioned above, and other effects not mentioned are from the following description in the technical field to which the present invention belongs. It will be clearly understood by those of ordinary skill.

도 1은 종래 기술에 따른 동영상 스트리밍 플랫폼의 구성도;
도 2는 본 발명의 일 실시 예에 따른 동영상 스트리밍 플랫폼의 구성도;
도 3은 STB 단말의 RTSP DESCRIBE 요청을 처리하는 엣지 노드의 동작을 설명하기 위해 참조되는 시그널링 흐름도;
도 4는 STB 단말의 RTSP PLAY 요청을 처리하는 엣지 노드의 동작을 설명하기 위해 참조되는 시그널링 흐름도;
도 5는 캐시 저장소의 캐시파일 관리 구조를 설명하기 위해 참조되는 도면.
1 is a block diagram of a video streaming platform according to the prior art;
2 is a block diagram of a video streaming platform according to an embodiment of the present invention;
3 is a signaling flowchart referenced to describe an operation of an edge node processing an RTSP DESCRIBE request from an STB terminal;
4 is a signaling flow diagram referred to for describing an operation of an edge node processing an RTSP PLAY request from an STB terminal;
5 is a diagram referred to for explaining a cache file management structure of a cache storage.

이하, 첨부된 도면을 참조하여 본 명세서에 개시된 실시 예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 유사한 구성요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 이하의 설명에서 사용되는 구성요소에 대한 접미사 "모듈" 및 "부"는 명세서 작성의 용이함만이 고려되어 부여되거나 혼용되는 것으로서, 그 자체로 서로 구별되는 의미 또는 역할을 갖는 것은 아니다. 즉, 본 발명에서 사용되는 '부'라는 용어는 소프트웨어, FPGA 또는 ASIC과 같은 하드웨어 구성요소를 의미하며, '부'는 어떤 역할들을 수행한다. 그렇지만 '부'는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '부'는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 '부'는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로 코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 및 변수들을 포함한다. 구성요소들과 '부'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '부'들로 결합되거나 추가적인 구성요소들과 '부'들로 더 분리될 수 있다.Hereinafter, exemplary embodiments disclosed in the present specification will be described in detail with reference to the accompanying drawings, but identical or similar elements are denoted by the same reference numerals regardless of reference numerals, and redundant descriptions thereof will be omitted. The suffixes "module" and "unit" for components used in the following description are given or used interchangeably in consideration of only the ease of preparation of the specification, and do not have meanings or roles that are distinguished from each other by themselves. That is, the term'unit' used in the present invention means a hardware component such as software, FPGA or ASIC, and the'unit' performs certain roles. However,'part' is not limited to software or hardware. The'unit' may be configured to be in an addressable storage medium, or may be configured to reproduce one or more processors. Thus, as an example,'unit' refers to components such as software components, object-oriented software components, class components, and task components, processes, functions, properties, procedures, Includes subroutines, segments of program code, drivers, firmware, microcode, circuitry, data, database, data structures, tables, arrays and variables. The functions provided in the components and'units' may be combined into a smaller number of components and'units', or may be further divided into additional components and'units'.

또한, 본 명세서에 개시된 실시 예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 명세서에 개시된 실시 예의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 첨부된 도면은 본 명세서에 개시된 실시 예를 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 본 명세서에 개시된 기술적 사상이 제한되지 않으며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.In addition, in describing the embodiments disclosed in the present specification, when it is determined that a detailed description of related known technologies may obscure the subject matter of the embodiments disclosed in the present specification, the detailed description thereof will be omitted. In addition, the accompanying drawings are for easy understanding of the embodiments disclosed in the present specification, and the technical idea disclosed in the present specification is not limited by the accompanying drawings, and all modifications included in the spirit and scope of the present invention It should be understood to include equivalents or substitutes.

본 발명은 동영상 파일을 엣지 노드에 미리 배포/저장하지 않고, 실시간 조각 캐싱 기법을 이용하여 RTSP 프로토콜 기반의 동영상 스트리밍 서비스를 STB 단말로 제공할 수 있는 동영상 스트리밍 방법 및 그 시스템을 제안한다. 또한, 본 발명은 VOD 서비스 가입자가 요청하는 동영상 스트리밍 서비스에 대해 전체 파일 구간을 저장하지 않고 해당 가입자가 시청하는 일부 파일 구간만을 청크 단위로 저장하여 엣지 노드의 스토리지 이용효율을 향상시킬 수 있는 동영상 스트리밍 방법 및 그 시스템을 제안한다.The present invention proposes a video streaming method and system for providing a video streaming service based on an RTSP protocol to an STB terminal by using a real-time fragment caching technique without pre-distributing/storing video files to an edge node. In addition, the present invention does not store the entire file section for the video streaming service requested by the VOD service subscriber, but stores only some file sections viewed by the subscriber in chunks, thereby improving the storage utilization efficiency of the edge node. A method and its system are proposed.

이하에서는, 본 발명의 다양한 실시 예들에 대하여, 도면을 참조하여 상세히 설명한다.Hereinafter, various embodiments of the present invention will be described in detail with reference to the drawings.

도 2는 본 발명의 일 실시 예에 따른 동영상 스트리밍 플랫폼의 구성도이다.2 is a block diagram of a video streaming platform according to an embodiment of the present invention.

도 2를 참조하면, 본 발명에 따른 동영상 스트리밍 플랫폼(200)은, 중앙 국사에 위치하는 오리진 노드(origin node, 210)와, 전국에 분산 배치된 복수의 지사들에 위치하는 복수의 엣지 노드들(edge nodes, 220)로 구성될 수 있다.Referring to FIG. 2, the video streaming platform 200 according to the present invention includes an origin node 210 located at a central office, and a plurality of edge nodes located at a plurality of branch offices distributed nationwide. (edge nodes, 220).

오리진 노드(210)는 스트리밍 서버(211)와 대 용량의 스토리지(213)를 포함할 수 있다.The origin node 210 may include a streaming server 211 and a large storage 213.

오리진 노드(210)의 스트리밍 서버(211)는 스토리지(213)에 보관된 동영상 파일들을 복수의 엣지 노드들(220)에게 제공할 수 있다. 즉, 스트리밍 서버(211)는 각 엣지 노드(220)의 캐시 서버(225)에서 요청하는 동영상 파일을 실시간 조각 캐싱 방식으로 제공할 수 있다.The streaming server 211 of the origin node 210 may provide the video files stored in the storage 213 to the plurality of edge nodes 220. That is, the streaming server 211 may provide a video file requested by the cache server 225 of each edge node 220 in a real-time fragment caching method.

오리진 노드(210)의 스토리지(213)는 동영상 스트리밍 서비스에서 제공 가능한 모든 동영상 파일들을 저장하고, 상기 저장된 동영상 파일들을 관리할 수 있다.The storage 213 of the origin node 210 may store all video files that can be provided by a video streaming service and manage the stored video files.

각각의 엣지 노드(220)는 스트리밍 서버(221), 로컬 저장소(223), 캐시 서버(225) 및 캐시 저장소(227)를 포함할 수 있다. 통상, 엣지 노드(220)는 오리진 노드(210)에 비해 스토리지 용량과 네트워크에서 수용 가능한 대역폭(bandwidth) 용량이 작은 것이 일반적이다.Each edge node 220 may include a streaming server 221, a local storage 223, a cache server 225 and a cache storage 227. In general, the edge node 220 generally has a smaller storage capacity and a lower bandwidth capacity than the origin node 210.

엣지 노드(220)의 스트리밍 서버(221)는, 특정 지역 가입자의 요청에 대응하여, RTSP 프로토콜 기반의 동영상 스트리밍 서비스를 해당 가입자의 STB 단말(230)로 제공할 수 있다.The streaming server 221 of the edge node 220 may provide a video streaming service based on the RTSP protocol to the STB terminal 230 of the corresponding subscriber in response to a request of a subscriber in a specific region.

해당 지역의 가입자가 요청하는 동영상 파일이 로컬 저장소(223)에 존재하는 경우, 스트리밍 서버(221)는 로컬 저장소(223)에 저장된 동영상 파일을 해당 가입자의 STB 단말(230)로 제공할 수 있다. 한편, 해당 지역의 가입자가 요청하는 동영상 파일이 로컬 저장소(223)가 아닌 캐시 저장소(227)에 존재하는 경우, 스트리밍 서버(221)는 캐시 저장소(227)에 저장된 동영상 파일을 해당 가입자의 STB 단말(230)로 제공할 수 있다. 또한, 해당 지역의 가입자가 요청하는 동영상 파일이 로컬 저장소(223) 및 캐시 저장소(227)에 존재하지 않는 경우, 스트리밍 서버(221)는 오리진 노드(210)로부터 동영상 파일을 실시간으로 수신하여 해당 가입자의 STB 단말(230)로 제공할 수 있다.When a video file requested by a subscriber in a corresponding region exists in the local storage 223, the streaming server 221 may provide the video file stored in the local storage 223 to the STB terminal 230 of the corresponding subscriber. On the other hand, if a video file requested by a subscriber in the corresponding region exists in the cache storage 227 instead of the local storage 223, the streaming server 221 stores the video file stored in the cache storage 227 to the subscriber's STB terminal. It can be provided as (230). In addition, when a video file requested by a subscriber in the region does not exist in the local storage 223 and the cache storage 227, the streaming server 221 receives the video file from the origin node 210 in real time and It can be provided to the STB terminal 230 of.

즉, 스트리밍 서버(221)는 로컬 저장소(223)와 오리진 노드(210)에 연결된 캐시 서버(225)를 참조하여 RTSP 프로토콜 기반의 동영상 스트리밍 서비스를 STB 단말(230)로 제공할 수 있다. 이러한 스트리밍 서비스 제공 방법은 엣지 노드(220)에서 가상으로 오리진 노드(210)에 존재하는 스토리지(213)를 실시간으로 사용하는 것과 같은 효과를 제공할 수 있다. 또한, 상기 스트리밍 서비스 제공 방법은 사전 파일배포 방식으로 보관 중인 파일을 이용한 동영상 스트리밍 서비스와, 실시간 조각 캐싱 방식으로 보관 중인 파일을 이용한 동영상 스트리밍 서비스를 지원할 수 있다.That is, the streaming server 221 may provide a video streaming service based on the RTSP protocol to the STB terminal 230 by referring to the local storage 223 and the cache server 225 connected to the origin node 210. This method of providing a streaming service can provide the same effect as using the storage 213 virtually existing in the origin node 210 in the edge node 220 in real time. In addition, the streaming service providing method may support a video streaming service using files stored in a pre-file distribution method and a video streaming service using files stored in a real-time fragment caching method.

엣지 노드(220)의 로컬 저장소(223)는, 동영상 스트리밍 서비스에서 제공 가능한 일부 동영상 파일을 보관할 수 있다. 상기 로컬 저장소(223)에 보관된 파일들은, 해당 지역의 가입자들 또는 전국의 가입자들이 일정 기간 동안 요청하는 동영상 스트리밍 서비스의 빈도가 높은(즉, 인기 있는) 동영상 파일들일 수 있다.The local storage 223 of the edge node 220 may store some video files that can be provided by a video streaming service. The files stored in the local storage 223 may be video files with high frequency (ie, popular) of a video streaming service requested by subscribers of a corresponding region or subscribers across the country for a certain period of time.

엣지 노드(220)의 캐시 서버(225)는 해당 지역의 가입자가 요청하는 동영상 파일들 중에서 로컬 저장소(223) 및 캐시 저장소(227)에 존재하지 않는 동영상 파일을 오리진 노드(210)에 요청하여 수신할 수 있다. 이때, 캐시 서버(225)는 실시간 조각 캐싱 기법을 이용하여 동영상 파일을 오리진 노드(210)로부터 수신할 수 있다.The cache server 225 of the edge node 220 requests and receives a video file that does not exist in the local storage 223 and the cache storage 227 among the video files requested by the subscribers in the region to the origin node 210 can do. In this case, the cache server 225 may receive the video file from the origin node 210 using a real-time fragment caching technique.

엣지 노드(220)의 캐시 저장소(227)는 오리진 노드(210)로부터 수신된 동영상 파일들을 일정 기간 동안 저장하고 이를 관리할 수 있다. 상기 캐시 저장소(227)는 각각의 동영상 파일을 청크(chunk) 단위로 관리할 수 있다.The cache storage 227 of the edge node 220 may store and manage video files received from the origin node 210 for a certain period of time. The cache storage 227 may manage each video file in chunks.

STB 단말(230)은 RTSP 요청 메시지를 엣지 노드(220)의 스트리밍 서버(221)로 전송하여 해당 단말의 가입자가 시청하고자 하는 동영상 스트리밍 서비스를 요청할 수 있다. STB 단말(230)은 엣지 노드(220)의 스트리밍 서버(221)로부터 수신된 RTSP 응답 메시지를 기반으로 동영상 스트리밍 서비스를 해당 단말의 가입자에게 제공할 수 있다.The STB terminal 230 may transmit an RTSP request message to the streaming server 221 of the edge node 220 to request a video streaming service that a subscriber of the terminal desires to watch. The STB terminal 230 may provide a video streaming service to a subscriber of a corresponding terminal based on the RTSP response message received from the streaming server 221 of the edge node 220.

예컨대, VOD 서비스 가입자가 동영상 스트리밍 서비스에서 제공하는 특정 동영상 파일을 선택한 후 해당 파일의 재생(play)을 요청하는 경우, STB 단말(230)은 RTSP DESCRIBE 요청 메시지를 엣지 노드(220)의 스트리밍 서버(221)로 전송하여 해당 파일의 메타데이터 정보를 요청하고, 상기 스트리밍 서버(221)로부터 수신된 메타데이터 정보를 기반으로 동영상 재생을 위한 초기화 작업을 수행할 수 있다. 이후, STB 단말(230)은 RTSP PLAY 요청 메시지를 엣지 노드(220)의 스트리밍 서버(221)로 전송하여 해당 파일의 페이로드(payload) 데이터를 요청하고, 상기 스트리밍 서버(221)로부터 수신된 페이로드 데이터를 기반으로 동영상을 재생할 수 있다.For example, when a VOD service subscriber selects a specific video file provided by a video streaming service and then requests to play the file, the STB terminal 230 sends an RTSP DESCRIBE request message to the streaming server of the edge node 220 ( It transmits to 221 to request metadata information of a corresponding file, and performs an initialization operation for playing a video based on the metadata information received from the streaming server 221. Thereafter, the STB terminal 230 transmits the RTSP PLAY request message to the streaming server 221 of the edge node 220 to request payload data of the file, and the payload received from the streaming server 221 You can play a video based on the load data.

이처럼, 본 발명에 따른 동영상 스트리밍 플랫폼(200)은 동영상 파일 전체를 엣지 노드에 사전 배포하지 않고, VOD 서비스 가입자가 엣지 노드에 동영상 스트리밍 서비스를 요청하는 시점에 오리진 노드로부터 해당 파일을 청크 단위로 실시간 캐싱하면서 RTSP 프로토콜 기반의 동영상 스트리밍 서비스를 제공할 수 있다. 상기 동영상 스트리밍 플랫폼(200)은 복잡한 사전 파일배포 과정을 요구하지 않으므로 계층적인 분산 노드 서비스 운영 구조를 단순하게 유지할 수 있다. 또한, 상기 동영상 스트리밍 플랫폼(200)은 VOD 서비스 가입자가 실제 시청한 동영상 파일 구간만을 스토리지에 저장하므로 엣지 노드의 스토리지 이용효율을 향상시킬 수 있다.As described above, the video streaming platform 200 according to the present invention does not pre-distribute the entire video file to the edge node, and at the time when the VOD service subscriber requests the video streaming service to the edge node, the corresponding file is real-time from the origin node in chunks. While caching, it is possible to provide a video streaming service based on the RTSP protocol. Since the video streaming platform 200 does not require a complicated pre-file distribution process, a hierarchical distributed node service operation structure can be simply maintained. In addition, since the video streaming platform 200 stores only a section of a video file actually viewed by a VOD service subscriber, it is possible to improve storage utilization efficiency of an edge node.

도 3 및 도 4는, STB 단말의 동영상 재생 요청 시, 로컬 저장소와 캐시 서버를 참조하여 RTSP 프로토콜 기반의 동영상 스트리밍 서비스를 STB 단말로 제공하는 엣지 노드의 동작을 설명하는 도면이다. 상기 엣지 노드의 동작은, STB 단말의 RTSP DESCRIBE 요청을 처리하는 과정과, STB 단말의 RTSP PLAY 요청을 처리하는 과정으로 구성될 수 있다.3 and 4 are diagrams for explaining the operation of an edge node providing a video streaming service based on an RTSP protocol to an STB terminal by referring to a local storage and a cache server when a video playback request is requested by the STB terminal. The operation of the edge node may include a process of processing an RTSP DESCRIBE request from the STB terminal and a process of processing an RTSP PLAY request from the STB terminal.

먼저, 도 3은 STB 단말의 RTSP DESCRIBE 요청을 처리하는 엣지 노드의 동작을 설명하기 위해 참조되는 시그널링 흐름도이다.First, FIG. 3 is a signaling flow diagram referenced to describe an operation of an edge node that processes an RTSP DESCRIBE request from an STB terminal.

도 3을 참조하면, VOD 서비스 가입자는 STB 단말(230)과 연결된 TV 화면에 표시되는 VOD 서비스 메뉴를 조작하여 동영상 스트리밍 서비스에서 제공하는 특정 동영상 파일을 선택하고, 상기 선택된 동영상 파일의 재생(play)을 요청할 수 있다.Referring to FIG. 3, a VOD service subscriber selects a specific video file provided by a video streaming service by manipulating a VOD service menu displayed on a TV screen connected to the STB terminal 230, and plays the selected video file. Can be requested.

STB 단말(230)은, VOD 서비스 가입자의 재생 명령에 대응하여, RTSP DESCRIBE 요청 메시지를 엣지 노드(220)의 스트리밍 서버(221)로 전송할 수 있다(S305). 상기 RTSP DESCRIBE 요청 메시지는 STB 단말(230)이 수신할 동영상 스트리밍 데이터의 설명을 요청하는 메시지이다.The STB terminal 230 may transmit an RTSP DESCRIBE request message to the streaming server 221 of the edge node 220 in response to a playback command of a VOD service subscriber (S305). The RTSP DESCRIBE request message is a message requesting description of video streaming data to be received by the STB terminal 230.

엣지 노드(220)의 스트리밍 서버(221)는 STB 단말(230)로부터 RTSP DESCRIBE 요청 메시지를 수신할 수 있다. 상기 RTSP DESCRIBE 요청 메시지의 수신에 대응하여, 스트리밍 서버(221)는 운영체제(Operating System, OS)에서 제공하는 물리파일 IO(Input/Output) 인터페이스를 이용하여 로컬 저장소(223)에 보관된 동영상 파일 정보를 조회할 수 있다(S310). 여기서, 상기 동영상 파일 정보는, 동영상 파일의 메타데이터 정보로서, 해당 동영상 파일의 기본 정보와 미디어 정보 중 적어도 하나를 포함한다. 상기 기본 정보는 동영상 파일의 크기 정보를 포함하고, 상기 미디어 정보는 동영상 파일의 재생 시간에 관한 duration 정보, 시스템 타입 정보, PID(Program Identifier) 정보, 코덱(codec) 정보, 스트림 개수 정보, muxrate 정보 등을 포함한다.The streaming server 221 of the edge node 220 may receive an RTSP DESCRIBE request message from the STB terminal 230. In response to the reception of the RTSP DESCRIBE request message, the streaming server 221 uses a physical file input/output (IO) interface provided by an operating system (OS) to store video file information stored in the local storage 223. Can be inquired (S310). Here, the video file information is metadata information of a video file, and includes at least one of basic information and media information of a corresponding video file. The basic information includes information about the size of a video file, and the media information includes duration information, system type information, program identifier (PID) information, codec information, stream number information, muxrate information about the playing time of the video file. And the like.

상기 310 단계의 조회 결과, STB 단말(230)에서 요청하는 동영상 파일 정보가 로컬 저장소(223)에 존재하는 경우(S315), 엣지 노드(220)의 스트리밍 서버(221)는 로컬 저장소(223)에 보관된 동영상 파일 정보를 검출(독출)하고, 상기 검출된 동영상 파일 정보를 포함하는 RTSP DESCRIBE 응답 메시지를 생성할 수 있다(S355).As a result of the inquiry in step 310, if the video file information requested from the STB terminal 230 exists in the local storage 223 (S315), the streaming server 221 of the edge node 220 is in the local storage 223 The stored video file information may be detected (read), and an RTSP DESCRIBE response message including the detected video file information may be generated (S355).

한편, 상기 310 단계의 조회 결과, STB 단말(230)에서 요청하는 동영상 파일 정보가 로컬 저장소(223)에 존재하지 않는 경우(S315), 엣지 노드(220)의 스트리밍 서버(221)는 해당 엣지 노드(220)의 캐시 서버(225)로 동영상 파일 정보를 요청할 수 있다(S320). 이때, 상기 스트리밍 서버(221)는 캐시 서버(225)에서 제공하는 캐시 파일 IO 인터페이스를 이용하여 동영상 파일 정보를 요청할 수 있다.Meanwhile, as a result of the inquiry in step 310, if the video file information requested by the STB terminal 230 does not exist in the local storage 223 (S315), the streaming server 221 of the edge node 220 is the corresponding edge node. The video file information may be requested to the cache server 225 of 220 (S320). In this case, the streaming server 221 may request video file information using a cache file IO interface provided by the cache server 225.

엣지 노드(220)의 캐시 서버(225)는, 스트리밍 서버(221)의 동영상 파일 정보 요청에 대응하여, 캐시 저장소(227)에 보관된 파일목록 정보를 조회할 수 있다(S325). 상기 파일목록 정보는 오리진 노드(210)의 스트리밍 서버(211)로부터 실시간 캐싱 방식으로 수신된 동영상 파일 정보(즉, 메타데이터 정보)들을 포함한다.The cache server 225 of the edge node 220 may query the file list information stored in the cache storage 227 in response to a request for video file information from the streaming server 221 (S325). The file list information includes video file information (ie, metadata information) received from the streaming server 211 of the origin node 210 in a real-time caching method.

상기 325 단계의 조회 결과, STB 단말(230)에서 요청하는 동영상 파일 정보가 캐시 저장소(227)에 존재하는 경우(S330), 엣지 노드(220)의 캐시 서버(225)는 캐시 저장소(227)에 보관된 동영상 파일 정보를 검출(독출)하여 해당 엣지 노드(220)의 스트리밍 서버(221)로 전송할 수 있다(S345). 그러면, 스트리밍 서버(221)는 캐시 서버(225)로부터 동영상 파일 정보를 수신하고, 상기 수신된 동영상 파일 정보를 포함하는 RTSP DESCRIBE 응답 메시지를 생성할 수 있다(S355).As a result of the inquiry in step 325, if the video file information requested by the STB terminal 230 exists in the cache storage 227 (S330), the cache server 225 of the edge node 220 is in the cache storage 227 The stored video file information may be detected (read) and transmitted to the streaming server 221 of the corresponding edge node 220 (S345). Then, the streaming server 221 may receive video file information from the cache server 225 and generate an RTSP DESCRIBE response message including the received video file information (S355).

한편, 상기 325 단계의 조회 결과, STB 단말(230)에서 요청하는 동영상 파일 정보가 캐시 저장소(227)에 존재하지 않는 경우(S330), 엣지 노드(220)의 캐시 서버(225)는 해당 동영상 파일 정보의 실시간 캐싱을 오리진 노드(210)의 스트리밍 서버(211)로 요청할 수 있다(S335). 이를 위해, 상기 캐시 서버(225)는 해당 동영상 파일의 메타데이터 정보에 해당하는 인덱스(index) 구간의 데이터를 요청하 HTTP GET 요청 메시지(A.mpg ByteRange: index region)를 오리진 노드(210)의 스트리밍 서버(211)로 전송할 수 있다.Meanwhile, as a result of the inquiry in step 325, if the video file information requested by the STB terminal 230 does not exist in the cache storage 227 (S330), the cache server 225 of the edge node 220 Real-time caching of information may be requested from the streaming server 211 of the origin node 210 (S335). To this end, the cache server 225 sends an HTTP GET request message (A.mpg ByteRange: index region) requesting data of an index section corresponding to metadata information of a corresponding video file to the origin node 210. It can be transmitted to the streaming server 211 of.

오리진 노드(210)의 스트리밍 서버(211)는, 캐시 서버(225)의 실시간 캐싱 요청에 대응하여, 상기 캐시 서버(225)에서 요청하는 동영상 파일 정보를 오리진 노드(210)의 스토리지(213)로부터 검출(독출)하고, 상기 검출된 동영상 파일 정보를 엣지 노드(220)의 캐시 서버(225)로 전송할 수 있다(S340). 이때, 상기 스트리밍 서버(211)는, 동영상 파일 정보를 포함하는 HTTP GET 응답 메시지를 엣지 노드(220)의 캐시 서버(225)로 전송할 수 있다.The streaming server 211 of the origin node 210 transmits video file information requested by the cache server 225 from the storage 213 of the origin node 210 in response to a real-time caching request from the cache server 225. Detect (read) and transmit the detected video file information to the cache server 225 of the edge node 220 (S340). In this case, the streaming server 211 may transmit an HTTP GET response message including video file information to the cache server 225 of the edge node 220.

엣지 노드(220)의 캐시 서버(225)는 오리진 노드(210)의 스트리밍 서버(211)로부터 수신된 동영상 파일 정보를 해당 엣지 노드(220)의 스트리밍 서버(221)로 전송할 수 있다(S345). 이와 동시에, 엣지 노드(220)의 캐시 서버(225)는 별도의 쓰레드(thread)로 오리진 노드(210)의 스트리밍 서버(211)로부터 수신된 동영상 파일 정보를 캐시 저장소(227)에 저장할 수 있다(S350). The cache server 225 of the edge node 220 may transmit the video file information received from the streaming server 211 of the origin node 210 to the streaming server 221 of the corresponding edge node 220 (S345). At the same time, the cache server 225 of the edge node 220 may store video file information received from the streaming server 211 of the origin node 210 in a cache storage 227 with a separate thread ( S350).

캐시 저장소(227)는 오리진 노드(210)의 스트리밍 서버(211)로부터 실시간 캐싱 방식으로 수신된 동영상 파일 정보들을 포함하는 파일목록 정보를 생성하여 관리할 수 있다. 상기 캐시 저장소(227)에 보관된 동영상 파일 정보는 이후에 다른 STB 단말 혹은 다른 세션에서 해당 동영상 파일에 대한 메타데이터 정보를 요청할 때마다 캐시 서버(225)에 의해 제공될 수 있다.The cache storage 227 may generate and manage file list information including video file information received from the streaming server 211 of the origin node 210 in a real-time caching method. The video file information stored in the cache storage 227 may be provided by the cache server 225 whenever another STB terminal or another session requests metadata information for a corresponding video file.

엣지 노드(220)의 스트리밍 서버(221)는 엣지 노드(220)의 캐시 서버(225)로부터 동영상 파일 정보를 수신하고, 상기 수신된 동영상 파일 정보를 포함하는 RTSP DESCRIBE 응답 메시지를 생성할 수 있다(S355). 이후, 엣지 노드(220)의 스트리밍 서버(221)는 동영상 파일 정보를 포함하는 RTSP DESCRIBE 응답 메시지를 STB 단말(230)로 전송할 수 있다(S360).The streaming server 221 of the edge node 220 may receive video file information from the cache server 225 of the edge node 220 and generate an RTSP DESCRIBE response message including the received video file information ( S355). Thereafter, the streaming server 221 of the edge node 220 may transmit an RTSP DESCRIBE response message including video file information to the STB terminal 230 (S360).

STB 단말(230)은 RTSP DESCRIBE 요청 메시지에 대응하는 RTSP DESCRIBE 응답 메시지를 엣지 노드(220)의 스트리밍 서버(221)로부터 수신하고, 상기 RTSP DESCRIBE 응답 메시지에 포함된 동영상 파일 정보를 기반으로 동영상 재생을 위한 초기화 작업(가령, 디코더 초기화 등)을 수행할 수 있다(S365).The STB terminal 230 receives an RTSP DESCRIBE response message corresponding to the RTSP DESCRIBE request message from the streaming server 221 of the edge node 220, and plays a video based on the video file information included in the RTSP DESCRIBE response message. For example, an initialization operation (eg, decoder initialization, etc.) may be performed (S365).

STB 단말(230)은, 초기화 작업 완료 시, VOD 서비스 가입자가 시청하고자 하는 동영상 파일에 대한 재생(PLAY) 요청을 엣지 노드(220)의 스트리밍 서버(221)로 전송한다. 이에 대한 자세한 설명은 아래 도 4를 참조하여 후술하도록 한다.Upon completion of the initialization operation, the STB terminal 230 transmits a PLAY request for a video file desired to be viewed by a VOD service subscriber to the streaming server 221 of the edge node 220. A detailed description of this will be described later with reference to FIG. 4 below.

도 4는 STB 단말의 RTSP PLAY 요청을 처리하는 엣지 노드의 동작을 설명하기 위해 참조되는 시그널링 흐름도이다.4 is a signaling flowchart referenced to explain an operation of an edge node that processes an RTSP PLAY request from an STB terminal.

도 4를 참조하면, STB 단말(230)은, 동영상 재생을 위한 초기화 작업 완료 시, RTSP PLAY 요청 메시지를 엣지 노드(220)의 스트리밍 서버(221)로 전송할 수 있다(S405). 상기 RTSP PLAY 요청 메시지는 STB 단말(230)에서 재생할 동영상 스트리밍 데이터의 전송을 요청하는 메시지이다. 상기 RTSP PLAY 요청 메시지에는 VOD 서비스 가입자가 요청하는 동영상 파일에 관한 정보와, 해당 가입자가 요청하는 재생 시점에 관한 정보 등이 포함될 수 있다.Referring to FIG. 4, when the initialization operation for video playback is completed, the STB terminal 230 may transmit an RTSP PLAY request message to the streaming server 221 of the edge node 220 (S405). The RTSP PLAY request message is a message requesting transmission of video streaming data to be played by the STB terminal 230. The RTSP PLAY request message may include information on a video file requested by a VOD service subscriber and information on a playback time requested by a corresponding subscriber.

엣지 노드(220)의 스트리밍 서버(221)는 STB 단말(230)로부터 RTSP PLAY 요청 메시지를 수신할 수 있다. 상기 RTSP PLAY 요청 메시지의 수신에 대응하여, 스트리밍 서버(221)는 STB 단말(230)에 주기적으로 전송할 데이터 패킷의 양을 결정하기 위한 스트리밍 버퍼(streaming buffer)를 생성할 수 있다(S410).The streaming server 221 of the edge node 220 may receive an RTSP PLAY request message from the STB terminal 230. In response to the reception of the RTSP PLAY request message, the streaming server 221 may generate a streaming buffer to determine the amount of data packets to be periodically transmitted to the STB terminal 230 (S410).

STB 단말(230)에서 데이터 패킷을 수신할 수 있는 네트워크 대역폭의 용량이 제한되기 때문에, 스트리밍 서버(221)는 동영상 파일의 페이로드 데이터를 일정한 속도로 미리 읽어서 STB 단말(230)의 수신 가능 속도에 맞춰 흐름 제어(flow control)를 수행하면서 데이터 패킷을 주기적으로 전송하게 된다. 상기 스트리밍 서버(221)에서 주기적으로 전송하는 데이터 패킷의 양은 스트리밍 버퍼를 통해 조절 가능하다.Since the capacity of the network bandwidth capable of receiving the data packet from the STB terminal 230 is limited, the streaming server 221 reads the payload data of the video file in advance at a constant rate and adjusts the reception speed of the STB terminal 230. In accordance with the flow control, data packets are periodically transmitted. The amount of data packets periodically transmitted from the streaming server 221 can be adjusted through a streaming buffer.

즉, 스트리밍 서버(221)는, STB 단말(230)의 데이터 전송 요청 시, 미리 결정된 크기(가령, 1MB)를 갖는 스트리밍 버퍼를 생성하고, 상기 스트리밍 버퍼의 크기에 대응하는 일정 구간의 페이로드 데이터(0~X Bytes)를 미리 읽어와서(pre-read) 스트리밍 버퍼에 채운 다음 해당 버퍼에 저장된 데이터 패킷을 STB 단말(230)로 전송하여 스트리밍 버퍼를 모두 비우고, 다시 그 다음 구간의 페이로드 데이터(X+1 ~ 2X Bytes)를 미리 읽어와서 스트리밍 버퍼에 채우는 방식으로 데이터 패킷을 전송한다. 이러한 전송 방식을 통해, STB 단말(230)에서 수신 가능한 네트워크 대역폭의 용량 제한으로 인한 데이터 패킷의 전송 지연을 효과적으로 줄일 수 있다.That is, when the STB terminal 230 requests data transmission, the streaming server 221 generates a streaming buffer having a predetermined size (eg, 1 MB), and payload data of a predetermined section corresponding to the size of the streaming buffer (0~X Bytes) is pre-read (pre-read) and filled in the streaming buffer, and then the data packet stored in the corresponding buffer is transmitted to the STB terminal 230 to empty all of the streaming buffer, and the payload data of the next section ( X+1 ~ 2X Bytes) are read in advance and the data packet is transmitted by filling the streaming buffer. Through this transmission method, it is possible to effectively reduce a transmission delay of a data packet due to a capacity limitation of a network bandwidth that can be received by the STB terminal 230.

엣지 노드(220)의 스트리밍 서버(221)는, 스트리밍 버퍼 생성 완료 시, 상기 스트리밍 버퍼의 크기(size)에 대응하는 일정 구간(또는 일정 재생 구간)의 페이로드 데이터를 해당 엣지 노드(220)의 스토리지에서 검색할 수 있다. VOD 서비스 가입자가 해당 동영상 파일을 처음부터 재생하는 경우, 상기 검색 대상 페이로드 데이터의 시작 시점은 해당 동영상 파일의 재생 시작 시점에 대응한다. 한편, VOD 서비스 가입자가 해당 동영상 파일의 중간 지점부터 재생을 요청하는 경우, 상기 검색 대상 페이로드 데이터의 시작 시점은 해당 가입자에 의한 동영상 파일의 재생 요청 시점에 대응한다.The streaming server 221 of the edge node 220, upon completion of the streaming buffer generation, transfers payload data of a predetermined section (or a constant playback section) corresponding to the size of the streaming buffer to the corresponding edge node 220. Can be retrieved from storage. When a VOD service subscriber plays the video file from the beginning, the start time of the search target payload data corresponds to the start time of the play of the video file. Meanwhile, when a VOD service subscriber requests playback from an intermediate point of a corresponding video file, the start point of the search target payload data corresponds to a playback request point of the video file by the corresponding subscriber.

먼저, 엣지 노드(220)의 스트리밍 서버(221)는, 스트리밍 버퍼 생성 완료 시, 운영체제(OS)에서 제공하는 물리파일 IO 인터페이스를 이용하여 로컬 저장소(223)에 보관된 동영상 파일들의 페이로드 데이터를 조회할 수 있다(S415). 여기서, 상기 페이로드 데이터는 동영상 파일의 영상 데이터 및 오디오 데이터를 포함한다.First, the streaming server 221 of the edge node 220, upon completion of the streaming buffer generation, uses the physical file IO interface provided by the operating system (OS) to store payload data of the video files stored in the local storage 223. You can inquire (S415). Here, the payload data includes video data and audio data of a video file.

상기 415 단계의 조회 결과, STB 단말(230)로 전송할 일정 구간의 페이로드 데이터(가령, 0~X Bytes)가 로컬 저장소(223)에 존재하는 경우(S420), 엣지 노드(220)의 스트리밍 서버(221)는 로컬 저장소(223)에 보관된 동영상 파일에서 일정 구간의 페이로드 데이터를 검출(독출)하고, 상기 검출된 페이로드 데이터를 스트리밍 버퍼에 채울 수 있다(S460).As a result of the inquiry in step 415, when payload data (eg, 0 to X Bytes) of a certain section to be transmitted to the STB terminal 230 exists in the local storage 223 (S420), the streaming server of the edge node 220 The 221 may detect (read) payload data of a certain section from the video file stored in the local storage 223 and fill the detected payload data into the streaming buffer (S460).

한편, 상기 415 단계의 조회 결과, STB 단말(230)로 전송할 일정 구간의 페이로드 데이터가 로컬 저장소(223)에 존재하지 않는 경우(S420), 엣지 노드(220)의 스트리밍 서버(221)는 해당 엣지 노드(220)의 캐시 서버(225)로 일정 구간의 페이로드 데이터를 요청할 수 있다(S425). 이때, 상기 스트리밍 서버(221)는 캐시 서버(225)에서 제공하는 캐시 파일 IO 인터페이스를 이용하여 일정 구간의 페이로드 데이터를 요청할 수 있다.On the other hand, as a result of the inquiry in step 415, if payload data of a certain section to be transmitted to the STB terminal 230 does not exist in the local storage 223 (S420), the streaming server 221 of the edge node 220 corresponds to Payload data of a certain period may be requested from the cache server 225 of the edge node 220 (S425). In this case, the streaming server 221 may request payload data of a predetermined period using the cache file IO interface provided by the cache server 225.

엣지 노드(220)의 캐시 서버(225)는, 스트리밍 서버(221)의 페이로드 데이터 요청에 대응하여, 캐시 저장소(227)에 보관된 동영상 파일들을 청크(chunk) 단위로 조회할 수 있다(S430).The cache server 225 of the edge node 220 may inquire the video files stored in the cache storage 227 in chunk units in response to a request for payload data from the streaming server 221 (S430). ).

상기 430 단계의 조회 결과, STB 단말(230)로 전송할 일정 구간의 페이로드 데이터에 대응하는 청크가 캐시 저장소(227)에 존재하는 경우(S435), 엣지 노드(220)의 캐시 서버(225)는 상기 캐시 저장소(227)에 보관된 청크를 읽어서 일정 구간의 페이로드 데이터를 해당 엣지 노드(220)의 스트리밍 서버(221)로 전송할 수 있다(S450). 그러면, 스트리밍 서버(221)는 캐시 서버(225)로부터 일정 구간의 페이로드 데이터를 수신하고, 상기 수신된 페이로드 데이터를 스트리밍 버퍼에 채울 수 있다(S460).As a result of the inquiry in step 430, when a chunk corresponding to the payload data of a certain period to be transmitted to the STB terminal 230 exists in the cache storage 227 (S435), the cache server 225 of the edge node 220 The chunk stored in the cache storage 227 may be read and the payload data of a predetermined period may be transmitted to the streaming server 221 of the corresponding edge node 220 (S450). Then, the streaming server 221 may receive payload data of a predetermined period from the cache server 225 and fill the received payload data into the streaming buffer (S460).

한편, 상기 430 단계의 조회 결과, STB 단말(230)로 전송할 일정 구간의 페이로드 데이터에 대응하는 청크가 캐시 저장소(227)에 존재하지 않는 경우(S435), 엣지 노드(220)의 캐시 서버(225)는 해당 청크의 캐싱에 필요한 페이로드 데이터를 오리진 노드(210)의 스트리밍 서버(211)로 요청할 수 있다(S335). 이를 위해, 상기 캐시 서버(225)는 청크 구간에 해당하는 페이로드 데이터를 요청하는 HTTP GET 요청 메시지(가령, A.mpg ByteRange: 0 ~ X + margin Bytes)를 오리진 노드(210)의 스트리밍 서버(211)로 전송할 수 있다.On the other hand, as a result of the inquiry in step 430, if the chunk corresponding to the payload data for a certain period to be transmitted to the STB terminal 230 does not exist in the cache storage 227 (S435), the cache server of the edge node 220 ( 225 may request payload data necessary for caching of the corresponding chunk to the streaming server 211 of the origin node 210 (S335). To this end, the cache server 225 sends an HTTP GET request message (for example, A.mpg ByteRange: 0 ~ X + margin Bytes) requesting payload data corresponding to the chunk section, and the streaming server of the origin node 210 ( 211).

통상, 네트워크 상에서 디바이스들 간에 전송 지연이 발생하기 때문에, 캐시 서버(225) 역시 스트리밍 버퍼와 유사하게 전송 지연을 줄이기 위해서 오리진 노드(210)에 캐싱 요청하는 청크 구간도 스트리밍 서버(211)에서 요청하는 페이로드 데이터 구간(즉, 스트리밍 버퍼의 크기에 대응하는 페이로드 데이터 구간)보다 미리 결정된 양만큼 더 많이 요청해서 미리 보관해두는 방식을 사용할 수 있다. 캐시 서버(225)는 오리진 노드(210)와 엣지 노드(220) 간의 네트워크 전송시간과 동영상 파일의 muxrate 등을 종합적으로 고려하여 오리진 노드(210)에 캐싱 요청할 청크 구간의 크기를 미리 결정할 수 있다. In general, since transmission delay occurs between devices on the network, the cache server 225 also requests a chunk section for caching from the origin node 210 in order to reduce the transmission delay similar to the streaming buffer. It is possible to use a method of storing in advance by requesting more than a payload data period (ie, a payload data period corresponding to the size of the streaming buffer) by a predetermined amount. The cache server 225 may pre-determine the size of a chunk section to request caching from the origin node 210 by comprehensively considering a network transmission time between the origin node 210 and the edge node 220 and a muxrate of a video file.

한편, 본 실시 예에서는, 오리진 노드(210)에 캐싱 요청하는 청크 구간이 스트리밍 서버(211)에서 요청하는 페이로드 데이터 구간보다 더 큰 것을 예시하고 있으나 반드시 이에 제한되지는 않으며, 오리진 노드(210)에 캐싱 요청하는 청크 구간을 스트리밍 서버(211)에서 요청하는 페이로드 데이터 구간과 일치하도록 설정할 수 있음은 당업자에게 자명할 것이다.On the other hand, in the present embodiment, although the chunk section requested by the origin node 210 for caching is larger than the payload data section requested by the streaming server 211, it is not necessarily limited thereto, and the origin node 210 It will be apparent to those skilled in the art that the chunk section requested for caching can be set to match the payload data section requested by the streaming server 211.

오리진 노드(210)의 스트리밍 서버(211)는, 캐시 서버(225)의 실시간 캐싱 요청에 대응하여, 상기 캐시 서버(225)에서 요청하는 청크 구간의 페이로드 데이터를 오리진 노드(210)의 스토리지(213)로부터 검출하고, 상기 검출된 페이로드 데이터를 엣지 노드(220)의 캐시 서버(225)로 전송할 수 있다(S445). 이때, 상기 스트리밍 서버(211)는, 청크 구간의 페이로드 데이터를 포함하는 HTTP GET 응답 메시지를 엣지 노드(220)의 캐시 서버(225)로 전송할 수 있다.In response to a real-time caching request from the cache server 225, the streaming server 211 of the origin node 210 stores payload data of the chunk section requested by the cache server 225 in the storage of the origin node 210 ( 213), and the detected payload data may be transmitted to the cache server 225 of the edge node 220 (S445). In this case, the streaming server 211 may transmit an HTTP GET response message including payload data of the chunk section to the cache server 225 of the edge node 220.

엣지 노드(220)의 캐시 서버(225)는 오리진 노드(210)의 스트리밍 서버(211)로부터 실시간 조각 캐싱 방식으로 수신된 페이로드 데이터(0 ~ X + margin Bytes) 중에서 스트리밍 버퍼의 크기에 대응하는 일정 구간의 페이로드 데이터(0 ~ X Bytes)를 검출하고, 상기 검출된 페이로드 데이터를 해당 엣지 노드(220)의 스트리밍 서버(221)로 전송할 수 있다(S450). 이와 동시에, 엣지 노드(220)의 캐시 서버(225)는 별도의 쓰레드(thread)로 오리진 노드(210)의 스트리밍 서버(211)로부터 수신된 페이로드 데이터(0 ~ X + margin Bytes)를 캐시 저장소(227)에 청크 단위로 저장할 수 있다(S455).The cache server 225 of the edge node 220 corresponds to the size of the streaming buffer among payload data (0 ~ X + margin Bytes) received from the streaming server 211 of the origin node 210 in a real-time fragment caching method. Payload data (0 to X Bytes) of a certain period may be detected, and the detected payload data may be transmitted to the streaming server 221 of the corresponding edge node 220 (S450). At the same time, the cache server 225 of the edge node 220 stores payload data (0 ~ X + margin Bytes) received from the streaming server 211 of the origin node 210 as a separate thread. It can be stored in chunks in (227) (S455).

엣지 노드(220)의 캐시 저장소(227)에 보관된 동영상 파일은 이후에 다른 STB 단말 혹은 다른 세션에서 해당 동영상 파일에 대한 페이로드 데이터를 요청할 때마다 캐시 서버(225)에 의해 제공될 수 있다.The video file stored in the cache storage 227 of the edge node 220 may be provided by the cache server 225 whenever another STB terminal or another session requests payload data for the video file later.

엣지 노드(220)의 스트리밍 서버(221)는 엣지 노드(220)의 캐시 서버(225)로부터 일정 구간의 페이로드 데이터를 수신하고, 상기 수신된 페이로드 데이터를 스트리밍 버퍼에 채울 수 있다(S460). 이후, 엣지 노드(220)의 스트리밍 서버(221)는 스트리밍 버퍼에 채워진 스트리밍 데이터 패킷을 STB 단말(230)로 전송할 수 있다(S360).The streaming server 221 of the edge node 220 may receive payload data of a predetermined period from the cache server 225 of the edge node 220 and fill the received payload data into the streaming buffer (S460). . Thereafter, the streaming server 221 of the edge node 220 may transmit the streaming data packet filled in the streaming buffer to the STB terminal 230 (S360).

엣지 노드(220)의 스트리밍 서버(221)는 스트리밍 데이터 패킷의 전송으로 인해 스트리밍 버퍼가 모두 비워지는지를 확인할 수 있다(S470). 상기 확인 결과, 스트리밍 버퍼가 모두 비워진 경우, 엣지 노드(220)의 스트리밍 서버(221)는 상술한 415 단계로 이동하여 다음 구간의 페이로드 데이터(가령, X+1 ~ 2X Bytes)를 읽어와서 스트리밍 버퍼에 채우는 방식으로 데이터 패킷을 주기적으로 전송할 수 있다. 상기 스트리밍 서버(221)에 의한 데이터 패킷의 주기적 전송은, VOD 서비스 가입자의 동영상 재생 요청이 정지될 때까지 반복적으로 계속될 수 있다.The streaming server 221 of the edge node 220 may check whether all the streaming buffers are emptied due to the transmission of the streaming data packet (S470). As a result of the above check, if all the streaming buffers are empty, the streaming server 221 of the edge node 220 moves to step 415 and reads the payload data (eg, X+1 ~ 2X Bytes) of the next section for streaming. Data packets can be periodically transmitted by filling the buffer. The periodic transmission of data packets by the streaming server 221 may be repeated until a video playback request from a VOD service subscriber is stopped.

STB 단말(230)은 엣지 노드(220)의 스트리밍 서버(221)로부터 스트리밍 데이터 패킷을 수신하고, 상기 수신된 스트리밍 데이터 패킷을 기반으로 동영상 파일을 재생할 수 있다(S475).The STB terminal 230 may receive a streaming data packet from the streaming server 221 of the edge node 220 and play a video file based on the received streaming data packet (S475).

한편, VOD 서비스 가입자가 STB 단말(230)에서 재생 중인 동영상에 대해 구간이동(Seek) 기능을 수행하는 경우, STB 단말(230)은 재생 구간 이동 명령을 엣지 노드(220)의 스트리밍 서버(221)로 전송할 수 있다. 스트리밍 서버(221)는 목적 지점(seek position)에 대응하는 페이로드 데이터가 로컬 저장소(223)에 존재하는지를 확인할 수 있다. 상기 확인 결과, 목적 지점에 대응하는 페이로드 데이터가 로컬 저장소(223)에 존재하지 않는 경우, 스트리밍 서버(221)는 상기 목적 지점에 대응하는 일정 구간의 페이로드 데이터를 엣지 노드(220)의 캐시 서버(225)에 요청할 수 있다.On the other hand, when a VOD service subscriber performs a seek function for a video being played on the STB terminal 230, the STB terminal 230 sends a command to move the playback section to the streaming server 221 of the edge node 220. Can be transferred to. The streaming server 221 may check whether payload data corresponding to a seek position exists in the local storage 223. As a result of the check, if payload data corresponding to the destination point does not exist in the local storage 223, the streaming server 221 caches the payload data of a predetermined section corresponding to the destination point in the edge node 220 You can make a request to the server 225.

엣지 노드(220)의 캐시 서버(225)는 목적 지점에 해당하는 청크가 캐시 저장소(227)에 존재하는지를 확인할 수 있다. 상기 확인 결과, 목적 지점에 해당하는 청크가 캐시 저장소(227)에 존재하는 경우, 엣지 노드(220)의 캐시 서버(225)는 캐시 저장소(227)에 보관된 청크를 읽어서 일정 구간의 페이로드 데이터를 해당 엣지 노드(220)의 스트리밍 서버(221)로 전송할 수 있다. 한편, 상기 확인 결과, 목적 지점에 해당하는 청크가 캐시 저장소(227)에 존재하지 않는 경우, 엣지 노드(220)의 캐시 서버(225)는 해당 청크 구간에 대응하는 페이로드 데이터를 오리진 노드로부터 실시간 캐싱 방식으로 수신하여 해당 엣지 노드(220)의 스트리밍 서버(221)로 전송할 수 있다.The cache server 225 of the edge node 220 may check whether the chunk corresponding to the destination point exists in the cache storage 227. As a result of the above check, if the chunk corresponding to the destination point exists in the cache storage 227, the cache server 225 of the edge node 220 reads the chunk stored in the cache storage 227 to obtain payload data of a certain period. May be transmitted to the streaming server 221 of the corresponding edge node 220. On the other hand, as a result of the check, if the chunk corresponding to the destination point does not exist in the cache storage 227, the cache server 225 of the edge node 220 sends payload data corresponding to the chunk section from the origin node in real time. It may be received in a caching method and transmitted to the streaming server 221 of the corresponding edge node 220.

엣지 노드(220)의 스트리밍 서버(221)는 목적 지점에 대응하는 일정 구간의 페이로드 데이터를 스트리밍 버퍼에 채운 다음 해당 버퍼에 보관된 스트리밍 데이터 패킷을 STB 단말(230)로 전송할 수 있다. STB 단말(230)은 엣지 노드(220)의 스트리밍 서버(221)로부터 수신된 스트리밍 데이터 패킷을 기반으로 동영상의 재생 시점을 목적 지점(seek position)으로 이동할 수 있다.The streaming server 221 of the edge node 220 may fill the streaming buffer with payload data of a predetermined section corresponding to the destination point, and then transmit the streaming data packet stored in the corresponding buffer to the STB terminal 230. The STB terminal 230 may move a video playback time to a seek position based on the streaming data packet received from the streaming server 221 of the edge node 220.

또한, VOD 서비스 가입자가 STB 단말(230)에서 재생 중인 동영상에 대해 배속제어 기능을 수행하는 경우, STB 단말(230)은 배속제어 명령을 엣지 노드(220)의 스트리밍 서버(221)로 전송할 수 있다. 그런데, 일반적인 동영상 스트리밍 서비스에서 비디오의 재생비트율이 10Mbps인 경우, 배속제어 기능을 처리하려면 2 배속(x2), 8 배속(x8), 16 배속(x16) 등의 배속에서 20Mbps, 80Mbps, 160Mbps 등의 물리적인 네트워크 속도를 요구한다. 이 때문에 RTSP 배속제어는 동영상 전체 파일을 제공하지 않고 동영상 파일의 I 프레임을 일정 빈도로 제공하면서 동영상 스트리밍을 진행한다. 엣지 노드(220)의 캐시 서버(225)에서 동일한 배속제어 기능을 처리하려면 청크 단위의 파일관리 구조에서 네트워크 전송속도에 동일한 한계가 있다. 따라서, 본 발명에서는, STB 단말(230)이 배속제어 기능을 요청하는 경우, 엣지 노드(220)의 스트리밍 서버(221)는 데이터 구간을 패킷 사이즈 단위로 요청하면서 캐시 저장옵션을 '캐시저장 안함'으로 설정하는 옵션을 제공할 수 있다. 배속 재생과 같이 동영상 파일의 I 프레임만 일정 빈도로 전송하는 경우, 상기 옵션 설정을 통해 동영상 파일의 I 프레임이 캐시 저장소(227)에 저장되지 않도록 함으로써, 캐시 저장소(227)에서 캐시파일을 관리할 때 파일 시스템에서 inode가 너무 많아져서 파일 관리가 어려워지는 문제를 효과적으로 해결할 수 있다.In addition, when a VOD service subscriber performs a double speed control function on a video being played on the STB terminal 230, the STB terminal 230 may transmit a double speed control command to the streaming server 221 of the edge node 220. . However, in a general video streaming service, if the video playback bit rate is 10 Mbps, in order to process the double speed control function, it is possible to use 20 Mbps, 80 Mbps, and 160 Mbps at double speeds such as 2 x 2, 8 x 8, 16 x 16 It requires physical network speed. For this reason, RTSP double speed control does not provide the entire video file, but performs video streaming while providing I frames of the video file at a certain frequency. In order to process the same double speed control function in the cache server 225 of the edge node 220, the network transmission speed has the same limit in the file management structure in chunk units. Accordingly, in the present invention, when the STB terminal 230 requests the double speed control function, the streaming server 221 of the edge node 220 requests the data section in packet size units and provides a cache storage option'no cache storage'. You can provide an option to set it to. When only I frames of a video file are transmitted at a certain frequency, such as double-speed playback, the cache file can be managed in the cache storage 227 by preventing I frames of the video file from being stored in the cache storage 227 through the above option setting. When there are too many inodes in the file system, it can effectively solve the problem that file management becomes difficult.

이상, 상술한 바와 같이, 본 발명에 따른 동영상 스트리밍 방법은, 동영상 파일 전체를 엣지 노드에 사전 배포하지 않고, VOD 서비스 가입자가 엣지 노드에 동영상 스트리밍 서비스를 요청하는 시점에 오리진 노드로부터 해당 파일을 청크 단위로 실시간 캐싱하면서 RTSP 프로토콜 기반의 동영상 스트리밍 서비스를 제공할 수 있다. 또한, 상기 동영상 스트리밍 방법은 복잡한 사전 파일배포 과정을 요구하지 않으므로 계층적인 분산 노드 서비스 운영 구조를 단순하게 유지할 수 있다. 또한, 상기 동영상 스트리밍 방법은 VOD 서비스 가입자가 실제 시청한 동영상 파일 구간만을 스토리지에 저장하므로 엣지 노드의 스토리지 이용효율을 향상시킬 수 있다. 또한, 상기 동영상 스트리밍 방법은 일반적인 RTSP 프로토콜에서 제공하는 배속재생, 구간이동 및 되감기 등의 재생제어를 지원할 수 있다.As described above, the video streaming method according to the present invention does not pre-distribute the entire video file to the edge node, but chunks the corresponding file from the origin node at the time when the VOD service subscriber requests the video streaming service to the edge node. It is possible to provide a video streaming service based on the RTSP protocol while caching in real time as a unit. In addition, since the video streaming method does not require a complicated pre-file distribution process, a hierarchical distributed node service operation structure can be kept simple. In addition, since the video streaming method stores only the video file section actually viewed by the VOD service subscriber in the storage, it is possible to improve the storage utilization efficiency of the edge node. In addition, the video streaming method may support playback control such as double-speed playback, section movement, and rewind provided by a general RTSP protocol.

도 5는 캐시 저장소의 캐시파일 관리 구조를 설명하기 위해 참조되는 도면이다.5 is a diagram referenced to explain a cache file management structure of a cache storage.

도 5를 참조하면, 엣지 노드(220)의 스트리밍 서버(221)는 STB 단말(230)로 전송할 페이로드 데이터를 해당 엣지 노드(220)의 캐시 서버(225)로 요청할 수 있다. 이때, 상기 스트리밍 서버(221)는 스트리밍 버퍼의 크기 단위로 일정 구간의 페이로드 데이터를 주기적으로 요청할 수 있다.Referring to FIG. 5, the streaming server 221 of the edge node 220 may request payload data to be transmitted to the STB terminal 230 from the cache server 225 of the corresponding edge node 220. In this case, the streaming server 221 may periodically request payload data of a predetermined period in units of the size of the streaming buffer.

엣지 노드(220)의 캐시 서버(225)는, 일정 구간의 페이로드 데이터에 대응하는 청크가 캐시 저장소(227)에 존재하는 경우, 상기 캐시 저장소(227)에 보관된 청크를 읽어서 상기 일정 구간의 페이로드 데이터를 해당 엣지 노드(220)의 스트리밍 서버(221)로 전송할 수 있다.The cache server 225 of the edge node 220 reads the chunks stored in the cache storage 227 when the chunk corresponding to the payload data of a certain period is present in the cache storage 227 and Payload data may be transmitted to the streaming server 221 of the corresponding edge node 220.

한편, 엣지 노드(220)의 캐시 서버(225)는, 일정 구간의 페이로드 데이터에 대응하는 청크가 캐시 저장소(227)에 존재하지 않는 경우, 해당 청크의 캐싱에 필요한 페이로드 데이터를 오리진 노드(210)의 스트리밍 서버(211)로 요청할 수 있다.On the other hand, the cache server 225 of the edge node 220, when the chunk corresponding to the payload data of a certain period does not exist in the cache storage 227, the origin node ( 210) can be requested from the streaming server 211.

본 실시 예에서, 엣지 노드(220)의 캐시 서버(225)는 오리진 노드(210)에 실시간 캐싱을 요청하는 청크의 크기를 1MB로 설정할 수 있다. 따라서, 캐시 서버(225)는 해당 동영상 파일의 페이로드 데이터를 1MB 단위로 분할하여 오리진 노드(210)에 주기적으로 요청할 수 있다.In this embodiment, the cache server 225 of the edge node 220 may set the size of a chunk requesting real-time caching from the origin node 210 to 1 MB. Accordingly, the cache server 225 may periodically request the origin node 210 by dividing the payload data of the corresponding video file into 1MB units.

엣지 노드(220)의 캐시 서버(225)는 오리진 노드(210)로부터 수신된 페이로드 데이터를 해당 엣지 노드(220)의 스트리밍 서버(221)로 전송할 수 있다. 이와 동시에, 엣지 노드(220)의 캐시 서버(225)는 별도의 쓰레드(thread)로 오리진 노드(210)로부터 수신된 페이로드 데이터를 캐시 저장소(227)에 청크 단위로 저장할 수 있다.The cache server 225 of the edge node 220 may transmit payload data received from the origin node 210 to the streaming server 221 of the corresponding edge node 220. At the same time, the cache server 225 of the edge node 220 may store payload data received from the origin node 210 with a separate thread in the cache storage 227 in chunk units.

캐시 저장소(227)는 오리진 노드(210)로부터 실시간 조각 캐싱 방식으로 수신된 동영상 파일들의 집합과 상기 동영상 파일들에 관한 파일 목록정보를 저장하고 이를 관리할 수 있다.The cache storage 227 may store and manage a set of video files received from the origin node 210 in a real-time fragment caching method and file list information about the video files.

각각의 동영상 파일은 오리진 노드(210)로부터 실시간 조각 캐싱 방식으로 수신된 복수의 청크들(chunks, 510)의 집합으로 이루어져 있다. 캐시 저장소(227)에 보관된 청크들은 VOD 서비스 가입자가 실제로 시청한 동영상 파일 구간의 페이로드 데이터 부분에 해당한다.Each video file consists of a set of a plurality of chunks 510 received from the origin node 210 in a real-time fragment caching method. The chunks stored in the cache storage 227 correspond to the payload data portion of the video file section actually viewed by the VOD service subscriber.

파일목록 정보는 캐시 저장소(227)에 보관된 동영상 파일들에 관한 제1 메타데이터 정보와 각 동영상 파일을 구성하는 청크들에 관한 제2 메타데이터 정보를 포함할 수 있다. 상기 제1 메타데이터 정보는 각 동영상 파일의 크기 정보 및 미디어 정보 등을 포함할 수 있다. 상기 제2 메타데이터 정보는 각 청크의 크기 정보, 생성 시간 정보 및 최근 접속 시간 정보 등을 포함할 수 있다.The file list information may include first metadata information on video files stored in the cache storage 227 and second metadata information on chunks constituting each video file. The first metadata information may include size information and media information of each video file. The second metadata information may include size information of each chunk, generation time information, and recent access time information.

엣지 노드(220)의 캐시 서버(225)는 캐시 저장소(227)에 보관된 파일목록 정보를 기반으로 STB 단말(230)에서 요청하는 동영상 파일의 재생에 필요한 청크 조각의 존재 유무를 즉각적으로 판단할 수 있다.The cache server 225 of the edge node 220 can immediately determine whether there is a chunk fragment required for playback of the video file requested from the STB terminal 230 based on the file list information stored in the cache storage 227. I can.

또한, 엣지 노드(220)의 캐시 서버(225)는 캐시 저장소(227)에 보관된 캐시 파일들의 사용 빈도(즉, 접속 빈도)를 청크(chunk) 단위로 분석하여 상기 캐시 저장소(227)에 보관된 캐시 파일들 중 적어도 일부를 주기적으로 삭제할 수 있다. 예를 들어, 제1 동영상 파일(A.mpg 파일)의 경우, 앞 10분 정도만을 재생하고 종료 버튼을 누르는 가입자 이용 패턴이 많을 수 있고, 제2 동영상 파일(B.mpg 파일)의 경우, 마지막 부분을 시청하지 않고 종료 버튼을 누르는 가입자 이용 패턴이 많을 수 있다. 이러한 경우, 청크 방식으로 캐시 저장소(227)를 관리하면, 특정 동영상 파일의 전체 구간 중에서 가입자들이 거의 시청하지 않는 구간에 해당하는 청크는 엣지 노드에서 보관하지 않기 때문에 엣지 노드의 스토리지를 효율적으로 사용할 수 있는 장점이 있다.In addition, the cache server 225 of the edge node 220 analyzes the frequency of use (i.e., access frequency) of the cache files stored in the cache storage 227 in chunks and stores them in the cache storage 227. At least some of the cached files can be periodically deleted. For example, in the case of a first video file (A.mpg file), there may be many patterns of subscriber usage in which only the first video file (A.mpg file) is played and the end button is pressed. In the case of the second video file (B. There may be many patterns of using subscribers who press the end button without watching the part. In this case, if the cache storage 227 is managed in a chunk method, the edge node's storage can be efficiently used because the edge node does not store the chunk corresponding to the section that subscribers rarely watch among the entire section of a specific video file. There is an advantage.

전술한 본 발명은, 프로그램이 기록된 매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 매체는, 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 매체의 예로는, HDD(Hard Disk Drive), SSD(Solid State Disk), SDD(Silicon Disk Drive), ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있다. 따라서, 상기의 상세한 설명은 모든 면에서 제한적으로 해석되어서는 아니되고 예시적인 것으로 고려되어야 한다. 본 발명의 범위는 첨부된 청구항의 합리적 해석에 의해 결정되어야 하고, 본 발명의 등가적 범위 내에서의 모든 변경은 본 발명의 범위에 포함된다.The present invention described above can be implemented as a computer-readable code in a medium on which a program is recorded. The computer-readable medium includes all types of recording devices storing data that can be read by a computer system. Examples of computer-readable media include HDD (Hard Disk Drive), SSD (Solid State Disk), SDD (Silicon Disk Drive), ROM, RAM, CD-ROM, magnetic tape, floppy disk, optical data storage device, etc. There is this. Therefore, the detailed description above should not be construed as restrictive in all respects and should be considered as illustrative. The scope of the present invention should be determined by reasonable interpretation of the appended claims, and all changes within the equivalent scope of the present invention are included in the scope of the present invention.

200: 동영상 스트리밍 플랫폼 210: 오리진 노드
220: 엣지 노드 230: STB 단말
221: 스트리밍 서버 223: 로컬 저장소
225: 캐시 서버 227: 캐시 저장소
200: video streaming platform 210: origin node
220: edge node 230: STB terminal
221: streaming server 223: local storage
225: cache server 227: cache storage

Claims (11)

스트리밍 서버, 캐시 서버 및 스토리지를 포함하는 엣지 노드의 동영상 스트리밍 방법에 있어서,
가입자 단말로부터 동영상 파일의 재생을 요청하는 메시지를 수신하는 단계;
상기 수신된 요청 메시지에 대응하여, 상기 가입자 단말로 전송할 데이터 패킷의 양을 결정하기 위한 스트리밍 버퍼를 생성하는 단계;
상기 동영상 파일의 페이로드 데이터 중 상기 스트리밍 버퍼의 크기에 대응하는 제1 재생 구간의 페이로드 데이터가 상기 스토리지에 존재하는지를 확인하는 단계; 및
상기 제1 재생 구간의 페이로드 데이터가 상기 스토리지에 존재하지 않는 경우, 상기 제1 재생 구간을 포함하는 제2 재생 구간의 페이로드 데이터를 오리진 노드에 실시간으로 요청하여 수신하는 단계를 포함하는 엣지 노드의 동영상 스트리밍 방법.
In the video streaming method of an edge node including a streaming server, a cache server and storage,
Receiving a message requesting to play a video file from a subscriber terminal;
Generating a streaming buffer for determining an amount of data packets to be transmitted to the subscriber station in response to the received request message;
Checking whether payload data of a first playback section corresponding to the size of the streaming buffer among payload data of the moving picture file exists in the storage; And
If the payload data of the first playback period does not exist in the storage, the edge node comprising the step of requesting and receiving payload data of the second playback period including the first playback period from an origin node in real time How To Stream Videos
제1항에 있어서,
상기 스토리지는, 사전 파일배포 방식으로 수신된 동영상 파일들을 저장하는 로컬 저장소와, 실시간 캐싱(caching) 방식으로 수신된 동영상 파일들을 저장하는 캐시 저장소를 포함하는 것을 특징으로 하는 엣지 노드의 동영상 스트리밍 방법.
The method of claim 1,
The storage includes a local storage for storing video files received through a pre-file distribution method and a cache storage for storing video files received through a real-time caching method.
제2항에 있어서,
상기 오리진 노드로부터 수신된 페이로드 데이터를 상기 캐시 저장소에 청크(chunk) 단위로 저장하는 단계를 더 포함하는 엣지 노드의 동영상 스트리밍 방법.
The method of claim 2,
The video streaming method of the edge node further comprising storing payload data received from the origin node in chunks in the cache storage.
제1항에 있어서,
상기 제2 재생 구간의 페이로드 데이터 크기는, 상기 오리진 노드와 상기 엣지 노드 간의 네트워크 전송 시간을 고려하여 결정되는 것을 특징으로 하는 엣지 노드의 동영상 스트리밍 방법.
The method of claim 1,
A video streaming method of an edge node, wherein the size of payload data in the second playback period is determined in consideration of a network transmission time between the origin node and the edge node.
제1항에 있어서,
상기 제1 재생 구간의 페이로드 데이터를 상기 스토리지 또는 상기 오리진 노드로부터 획득하여 상기 스트리밍 버퍼에 채우는 단계를 더 포함하는 엣지 노드의 동영상 스트리밍 방법.
The method of claim 1,
Obtaining the payload data of the first playback section from the storage or the origin node and filling the streaming buffer.
제5항에 있어서,
상기 제1 재생 구간의 페이로드 데이터가 상기 스트리밍 버퍼에 채워진 경우, 상기 스트리밍 버퍼에 저장된 데이터 패킷을 상기 가입자 단말로 전송하는 단계를 더 포함하는 엣지 노드의 동영상 스트리밍 방법.
The method of claim 5,
When the payload data of the first playback period is filled in the streaming buffer, transmitting a data packet stored in the streaming buffer to the subscriber terminal.
제1항에 있어서,
상기 가입자 단말로부터 상기 동영상 파일의 설명을 요청하는 메시지를 수신하는 단계를 더 포함하는 엣지 노드의 동영상 스트리밍 방법.
The method of claim 1,
The video streaming method of the edge node further comprising the step of receiving a message requesting the description of the video file from the subscriber terminal.
제7항에 있어서,
상기 동영상 파일의 메타데이터 정보가 상기 스토리지에 존재하는지를 확인하는 단계를 더 포함하는 엣지 노드의 동영상 스트리밍 방법.
The method of claim 7,
The video streaming method of the edge node further comprising the step of checking whether the metadata information of the video file exists in the storage.
제8항에 있어서,
상기 동영상 파일의 메타데이터 정보가 상기 스토리지에 존재하지 않는 경우, 상기 메타데이터 정보를 상기 오리진 노드에 실시간으로 요청하여 수신하고, 상기 수신된 메타데이터 정보를 포함하는 메시지를 상기 가입자 단말로 전송하는 단계를 더 포함하는 엣지 노드의 동영상 스트리밍 방법.
The method of claim 8,
When metadata information of the video file does not exist in the storage, requesting and receiving the metadata information from the origin node in real time, and transmitting a message including the received metadata information to the subscriber terminal Video streaming method of the edge node further comprising a.
오리진 노드로부터 수신된 동영상 파일을 청크(chunk) 단위로 저장하는 캐시 저장소;
가입자 단말로부터 동영상 파일의 재생을 요청하는 메시지를 수신한 경우, 상기 가입자 단말로 전송할 데이터 패킷의 양을 결정하기 위한 스트리밍 버퍼를 생성하고, 상기 동영상 파일의 페이로드 데이터 중 상기 스트리밍 버퍼의 크기에 대응하는 제1 재생 구간의 페이로드 데이터를 캐시 서버에 요청하는 스트리밍 서버; 및
상기 제1 재생 구간의 페이로드 데이터가 상기 캐시 저장소에 존재하지 않는 경우, 상기 제1 재생 구간을 포함하는 제2 재생 구간의 페이로드 데이터를 오리진 노드에 실시간으로 요청하여 수신하는 캐시 서버를 포함하는 엣지 노드.
A cache storage storing the video file received from the origin node in chunk units;
When a message requesting playback of a video file is received from a subscriber terminal, a streaming buffer is created to determine the amount of data packets to be transmitted to the subscriber terminal, and corresponds to the size of the streaming buffer among payload data of the video file. A streaming server for requesting the payload data of the first playback section to be requested from the cache server; And
In case the payload data of the first playback period does not exist in the cache storage, a cache server that requests and receives payload data of the second playback period including the first playback period from an origin node in real time. Edge node.
청구항 제1항 내지 제9항 중 어느 하나에 따른 방법이 컴퓨터 상에서 실행되도록 컴퓨터 판독 가능한 기록 매체에 저장된 컴퓨터 프로그램.A computer program stored in a computer-readable recording medium such that the method according to any one of claims 1 to 9 is executed on a computer.
KR1020190019197A 2019-02-19 2019-02-19 Video streaming method using real time caching technique and system thereof KR102274466B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190019197A KR102274466B1 (en) 2019-02-19 2019-02-19 Video streaming method using real time caching technique and system thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190019197A KR102274466B1 (en) 2019-02-19 2019-02-19 Video streaming method using real time caching technique and system thereof

Publications (2)

Publication Number Publication Date
KR20200101047A true KR20200101047A (en) 2020-08-27
KR102274466B1 KR102274466B1 (en) 2021-07-08

Family

ID=72237613

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190019197A KR102274466B1 (en) 2019-02-19 2019-02-19 Video streaming method using real time caching technique and system thereof

Country Status (1)

Country Link
KR (1) KR102274466B1 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102379590B1 (en) * 2021-02-01 2022-03-28 윤종옥 Streaming service platform with security features and system and method that support the same
CN114727128A (en) * 2022-03-30 2022-07-08 恒玄科技(上海)股份有限公司 Data transmission method and device of playing terminal, playing terminal and storage medium
KR20220156724A (en) 2021-05-19 2022-11-28 강소영 Apparatus, server and system for streaming
KR102617738B1 (en) * 2022-09-08 2023-12-27 (주)대양이티에스 Providing method for multimedia contents using air cleaner equipped with display unit

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230094587A (en) 2021-12-21 2023-06-28 서강대학교산학협력단 GPU-enabled micro-batch streaming system and method for dynamic batching and query planning for the micro-batch streaming system
KR102497227B1 (en) 2022-11-11 2023-02-08 (주)아이브리지닷컴 Apparatus and method for seamless video streaming playback

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100052088A (en) * 2008-11-10 2010-05-19 주식회사 케이티 System for adjusting buffering time of streaming service and method thereof
KR20140021371A (en) * 2012-08-10 2014-02-20 에스케이텔레콤 주식회사 Contents delivery service system using contents identification, apparatus therefor and contents delivery service method thereof
KR20140080616A (en) * 2012-12-12 2014-07-01 한국전자통신연구원 Caching method to reduce of network traffic
KR20150124105A (en) * 2014-04-28 2015-11-05 한국전자통신연구원 Contents Providing Method of Cache Device

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100052088A (en) * 2008-11-10 2010-05-19 주식회사 케이티 System for adjusting buffering time of streaming service and method thereof
KR20140021371A (en) * 2012-08-10 2014-02-20 에스케이텔레콤 주식회사 Contents delivery service system using contents identification, apparatus therefor and contents delivery service method thereof
KR20140080616A (en) * 2012-12-12 2014-07-01 한국전자통신연구원 Caching method to reduce of network traffic
KR20150124105A (en) * 2014-04-28 2015-11-05 한국전자통신연구원 Contents Providing Method of Cache Device

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102379590B1 (en) * 2021-02-01 2022-03-28 윤종옥 Streaming service platform with security features and system and method that support the same
KR20220156724A (en) 2021-05-19 2022-11-28 강소영 Apparatus, server and system for streaming
CN114727128A (en) * 2022-03-30 2022-07-08 恒玄科技(上海)股份有限公司 Data transmission method and device of playing terminal, playing terminal and storage medium
CN114727128B (en) * 2022-03-30 2024-04-12 恒玄科技(上海)股份有限公司 Data transmission method and device of playing terminal, playing terminal and storage medium
KR102617738B1 (en) * 2022-09-08 2023-12-27 (주)대양이티에스 Providing method for multimedia contents using air cleaner equipped with display unit

Also Published As

Publication number Publication date
KR102274466B1 (en) 2021-07-08

Similar Documents

Publication Publication Date Title
KR102274466B1 (en) Video streaming method using real time caching technique and system thereof
JP6648223B2 (en) Method and apparatus for streaming media content to a client device
WO2021004384A1 (en) Content delivery network, data processing method, apparatus and device, and storage medium
KR101702562B1 (en) Storage file format for multimedia streaming file, storage method and client apparatus using the same
US8489760B2 (en) Media file storage format and adaptive delivery system
CN106878315B (en) Variable rate media delivery system
KR100492567B1 (en) Http-based video streaming apparatus and method for a mobile communication system
US8200747B2 (en) Session handoff of segmented media data
WO2016058411A1 (en) Splicing method and splicing system for http live streaming media fragmentation
CN102547478B (en) Triggered slice on-demand system and method of streaming media based on CDN (Content Distribution Network)
US20100235542A1 (en) Dynamic Variable Rate Media Delivery System
WO2013008867A1 (en) Transmission device, method for controlling transmission device, control program, and recording medium
KR100967700B1 (en) VOD service system based on Peer to Peer Communication
US8090761B2 (en) Storage and distribution of segmented media data
JP2007080161A (en) Data distribution system, partial content storing server, method and program for increasing response speed
WO2011054319A1 (en) Method, device and system for realizing hierarchically requesting content in http streaming system
US20240048792A1 (en) System and method for storing multimedia files using an archive file format
KR101121479B1 (en) Data distribution and buffering
JP6294527B2 (en) Transmission device, transmission method, reproduction device, and reproduction method
KR101125065B1 (en) System and Method for Providing Streaming Service Using Hierarchical Distributed Storing Structure
KR100860076B1 (en) Apparatus and method for the replacement of cache for streaming service in the proxy server
KR101272876B1 (en) Media Streaming Server and Method for Managing Media Data in the Server
KR20100059117A (en) Streaming system and cache server for distributed multimedia contents and method for streaming contents
KR20130134911A (en) Method for providing content caching service in adapted streaming service and local caching device thereof
KR101525390B1 (en) Apparatus and Control Method for Session and Transmission Distribution on the File Seek Request

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)