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 PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/231—Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
- H04N21/23106—Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion involving caching operations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/235—Processing of additional data, e.g. scrambling of additional data or processing content descriptors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/236—Assembling 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/23605—Creation 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
Description
본 발명은 동영상 스트리밍 방법 및 그 시스템에 관한 것으로서, 보다 구체적으로는 실시간 캐싱 기법을 이용하여 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
오리진 노드(110)는 동영상 스트리밍 서비스를 모든 지역의 가입자에게 제공하는 스트리밍 서버(111)와 해당 서비스에서 제공 가능한 모든 동영상 파일들을 저장하는 스토리지(113)를 포함할 수 있다. 각각의 엣지 노드(120)는 동영상 스트리밍 서비스를 특정 지역의 가입자에게 제공하는 스트리밍 서버(121)와 해당 서비스에서 제공 가능한 일부 동영상 파일을 저장하는 로컬 저장소(123)를 포함할 수 있다.The
통상 엣지 노드(120)는 오리진 노드(110)에 비해 스토리지 용량이 작아서 일부 인기 동영상 파일들을 로컬 저장소(123)에 미리 보관하고, 상기 보관된 파일들을 이용하여 동영상 스트리밍 서비스를 제공하고 있다. 즉, 기존의 엣지 노드(120)는 사전 파일배포 방식을 이용하여 동영상 스트리밍 서비스를 STB 단말(130)로 제공하고 있다. 따라서, VOD 서비스 가입자가 시청하고자 하는 동영상 파일이 엣지 노드(120)의 로컬 저장소(123)에 존재하지 않는 경우, STB 단말은 오리진 노드(110)에 별도로 접속하여 해당 동영상 파일에 대한 스트리밍 서비스를 요청하게 된다.In general, the
그런데, 동영상 스트리밍 서비스에서 제공하는 동영상 파일들의 크기가 수 기가바이트(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
오리진 노드(210)는 스트리밍 서버(211)와 대 용량의 스토리지(213)를 포함할 수 있다.The
오리진 노드(210)의 스트리밍 서버(211)는 스토리지(213)에 보관된 동영상 파일들을 복수의 엣지 노드들(220)에게 제공할 수 있다. 즉, 스트리밍 서버(211)는 각 엣지 노드(220)의 캐시 서버(225)에서 요청하는 동영상 파일을 실시간 조각 캐싱 방식으로 제공할 수 있다.The streaming
오리진 노드(210)의 스토리지(213)는 동영상 스트리밍 서비스에서 제공 가능한 모든 동영상 파일들을 저장하고, 상기 저장된 동영상 파일들을 관리할 수 있다.The
각각의 엣지 노드(220)는 스트리밍 서버(221), 로컬 저장소(223), 캐시 서버(225) 및 캐시 저장소(227)를 포함할 수 있다. 통상, 엣지 노드(220)는 오리진 노드(210)에 비해 스토리지 용량과 네트워크에서 수용 가능한 대역폭(bandwidth) 용량이 작은 것이 일반적이다.Each
엣지 노드(220)의 스트리밍 서버(221)는, 특정 지역 가입자의 요청에 대응하여, RTSP 프로토콜 기반의 동영상 스트리밍 서비스를 해당 가입자의 STB 단말(230)로 제공할 수 있다.The streaming
해당 지역의 가입자가 요청하는 동영상 파일이 로컬 저장소(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
즉, 스트리밍 서버(221)는 로컬 저장소(223)와 오리진 노드(210)에 연결된 캐시 서버(225)를 참조하여 RTSP 프로토콜 기반의 동영상 스트리밍 서비스를 STB 단말(230)로 제공할 수 있다. 이러한 스트리밍 서비스 제공 방법은 엣지 노드(220)에서 가상으로 오리진 노드(210)에 존재하는 스토리지(213)를 실시간으로 사용하는 것과 같은 효과를 제공할 수 있다. 또한, 상기 스트리밍 서비스 제공 방법은 사전 파일배포 방식으로 보관 중인 파일을 이용한 동영상 스트리밍 서비스와, 실시간 조각 캐싱 방식으로 보관 중인 파일을 이용한 동영상 스트리밍 서비스를 지원할 수 있다.That is, the streaming
엣지 노드(220)의 로컬 저장소(223)는, 동영상 스트리밍 서비스에서 제공 가능한 일부 동영상 파일을 보관할 수 있다. 상기 로컬 저장소(223)에 보관된 파일들은, 해당 지역의 가입자들 또는 전국의 가입자들이 일정 기간 동안 요청하는 동영상 스트리밍 서비스의 빈도가 높은(즉, 인기 있는) 동영상 파일들일 수 있다.The
엣지 노드(220)의 캐시 서버(225)는 해당 지역의 가입자가 요청하는 동영상 파일들 중에서 로컬 저장소(223) 및 캐시 저장소(227)에 존재하지 않는 동영상 파일을 오리진 노드(210)에 요청하여 수신할 수 있다. 이때, 캐시 서버(225)는 실시간 조각 캐싱 기법을 이용하여 동영상 파일을 오리진 노드(210)로부터 수신할 수 있다.The
엣지 노드(220)의 캐시 저장소(227)는 오리진 노드(210)로부터 수신된 동영상 파일들을 일정 기간 동안 저장하고 이를 관리할 수 있다. 상기 캐시 저장소(227)는 각각의 동영상 파일을 청크(chunk) 단위로 관리할 수 있다.The
STB 단말(230)은 RTSP 요청 메시지를 엣지 노드(220)의 스트리밍 서버(221)로 전송하여 해당 단말의 가입자가 시청하고자 하는 동영상 스트리밍 서비스를 요청할 수 있다. STB 단말(230)은 엣지 노드(220)의 스트리밍 서버(221)로부터 수신된 RTSP 응답 메시지를 기반으로 동영상 스트리밍 서비스를 해당 단말의 가입자에게 제공할 수 있다.The
예컨대, 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
이처럼, 본 발명에 따른 동영상 스트리밍 플랫폼(200)은 동영상 파일 전체를 엣지 노드에 사전 배포하지 않고, VOD 서비스 가입자가 엣지 노드에 동영상 스트리밍 서비스를 요청하는 시점에 오리진 노드로부터 해당 파일을 청크 단위로 실시간 캐싱하면서 RTSP 프로토콜 기반의 동영상 스트리밍 서비스를 제공할 수 있다. 상기 동영상 스트리밍 플랫폼(200)은 복잡한 사전 파일배포 과정을 요구하지 않으므로 계층적인 분산 노드 서비스 운영 구조를 단순하게 유지할 수 있다. 또한, 상기 동영상 스트리밍 플랫폼(200)은 VOD 서비스 가입자가 실제 시청한 동영상 파일 구간만을 스토리지에 저장하므로 엣지 노드의 스토리지 이용효율을 향상시킬 수 있다.As described above, the
도 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 단말(230)은, VOD 서비스 가입자의 재생 명령에 대응하여, RTSP DESCRIBE 요청 메시지를 엣지 노드(220)의 스트리밍 서버(221)로 전송할 수 있다(S305). 상기 RTSP DESCRIBE 요청 메시지는 STB 단말(230)이 수신할 동영상 스트리밍 데이터의 설명을 요청하는 메시지이다.The
엣지 노드(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
상기 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
한편, 상기 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
엣지 노드(220)의 캐시 서버(225)는, 스트리밍 서버(221)의 동영상 파일 정보 요청에 대응하여, 캐시 저장소(227)에 보관된 파일목록 정보를 조회할 수 있다(S325). 상기 파일목록 정보는 오리진 노드(210)의 스트리밍 서버(211)로부터 실시간 캐싱 방식으로 수신된 동영상 파일 정보(즉, 메타데이터 정보)들을 포함한다.The
상기 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
한편, 상기 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
오리진 노드(210)의 스트리밍 서버(211)는, 캐시 서버(225)의 실시간 캐싱 요청에 대응하여, 상기 캐시 서버(225)에서 요청하는 동영상 파일 정보를 오리진 노드(210)의 스토리지(213)로부터 검출(독출)하고, 상기 검출된 동영상 파일 정보를 엣지 노드(220)의 캐시 서버(225)로 전송할 수 있다(S340). 이때, 상기 스트리밍 서버(211)는, 동영상 파일 정보를 포함하는 HTTP GET 응답 메시지를 엣지 노드(220)의 캐시 서버(225)로 전송할 수 있다.The streaming
엣지 노드(220)의 캐시 서버(225)는 오리진 노드(210)의 스트리밍 서버(211)로부터 수신된 동영상 파일 정보를 해당 엣지 노드(220)의 스트리밍 서버(221)로 전송할 수 있다(S345). 이와 동시에, 엣지 노드(220)의 캐시 서버(225)는 별도의 쓰레드(thread)로 오리진 노드(210)의 스트리밍 서버(211)로부터 수신된 동영상 파일 정보를 캐시 저장소(227)에 저장할 수 있다(S350). The
캐시 저장소(227)는 오리진 노드(210)의 스트리밍 서버(211)로부터 실시간 캐싱 방식으로 수신된 동영상 파일 정보들을 포함하는 파일목록 정보를 생성하여 관리할 수 있다. 상기 캐시 저장소(227)에 보관된 동영상 파일 정보는 이후에 다른 STB 단말 혹은 다른 세션에서 해당 동영상 파일에 대한 메타데이터 정보를 요청할 때마다 캐시 서버(225)에 의해 제공될 수 있다.The
엣지 노드(220)의 스트리밍 서버(221)는 엣지 노드(220)의 캐시 서버(225)로부터 동영상 파일 정보를 수신하고, 상기 수신된 동영상 파일 정보를 포함하는 RTSP DESCRIBE 응답 메시지를 생성할 수 있다(S355). 이후, 엣지 노드(220)의 스트리밍 서버(221)는 동영상 파일 정보를 포함하는 RTSP DESCRIBE 응답 메시지를 STB 단말(230)로 전송할 수 있다(S360).The streaming
STB 단말(230)은 RTSP DESCRIBE 요청 메시지에 대응하는 RTSP DESCRIBE 응답 메시지를 엣지 노드(220)의 스트리밍 서버(221)로부터 수신하고, 상기 RTSP DESCRIBE 응답 메시지에 포함된 동영상 파일 정보를 기반으로 동영상 재생을 위한 초기화 작업(가령, 디코더 초기화 등)을 수행할 수 있다(S365).The
STB 단말(230)은, 초기화 작업 완료 시, VOD 서비스 가입자가 시청하고자 하는 동영상 파일에 대한 재생(PLAY) 요청을 엣지 노드(220)의 스트리밍 서버(221)로 전송한다. 이에 대한 자세한 설명은 아래 도 4를 참조하여 후술하도록 한다.Upon completion of the initialization operation, the
도 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
엣지 노드(220)의 스트리밍 서버(221)는 STB 단말(230)로부터 RTSP PLAY 요청 메시지를 수신할 수 있다. 상기 RTSP PLAY 요청 메시지의 수신에 대응하여, 스트리밍 서버(221)는 STB 단말(230)에 주기적으로 전송할 데이터 패킷의 양을 결정하기 위한 스트리밍 버퍼(streaming buffer)를 생성할 수 있다(S410).The streaming
STB 단말(230)에서 데이터 패킷을 수신할 수 있는 네트워크 대역폭의 용량이 제한되기 때문에, 스트리밍 서버(221)는 동영상 파일의 페이로드 데이터를 일정한 속도로 미리 읽어서 STB 단말(230)의 수신 가능 속도에 맞춰 흐름 제어(flow control)를 수행하면서 데이터 패킷을 주기적으로 전송하게 된다. 상기 스트리밍 서버(221)에서 주기적으로 전송하는 데이터 패킷의 양은 스트리밍 버퍼를 통해 조절 가능하다.Since the capacity of the network bandwidth capable of receiving the data packet from the
즉, 스트리밍 서버(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
엣지 노드(220)의 스트리밍 서버(221)는, 스트리밍 버퍼 생성 완료 시, 상기 스트리밍 버퍼의 크기(size)에 대응하는 일정 구간(또는 일정 재생 구간)의 페이로드 데이터를 해당 엣지 노드(220)의 스토리지에서 검색할 수 있다. VOD 서비스 가입자가 해당 동영상 파일을 처음부터 재생하는 경우, 상기 검색 대상 페이로드 데이터의 시작 시점은 해당 동영상 파일의 재생 시작 시점에 대응한다. 한편, VOD 서비스 가입자가 해당 동영상 파일의 중간 지점부터 재생을 요청하는 경우, 상기 검색 대상 페이로드 데이터의 시작 시점은 해당 가입자에 의한 동영상 파일의 재생 요청 시점에 대응한다.The streaming
먼저, 엣지 노드(220)의 스트리밍 서버(221)는, 스트리밍 버퍼 생성 완료 시, 운영체제(OS)에서 제공하는 물리파일 IO 인터페이스를 이용하여 로컬 저장소(223)에 보관된 동영상 파일들의 페이로드 데이터를 조회할 수 있다(S415). 여기서, 상기 페이로드 데이터는 동영상 파일의 영상 데이터 및 오디오 데이터를 포함한다.First, the streaming
상기 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
한편, 상기 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
엣지 노드(220)의 캐시 서버(225)는, 스트리밍 서버(221)의 페이로드 데이터 요청에 대응하여, 캐시 저장소(227)에 보관된 동영상 파일들을 청크(chunk) 단위로 조회할 수 있다(S430).The
상기 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
한편, 상기 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
통상, 네트워크 상에서 디바이스들 간에 전송 지연이 발생하기 때문에, 캐시 서버(225) 역시 스트리밍 버퍼와 유사하게 전송 지연을 줄이기 위해서 오리진 노드(210)에 캐싱 요청하는 청크 구간도 스트리밍 서버(211)에서 요청하는 페이로드 데이터 구간(즉, 스트리밍 버퍼의 크기에 대응하는 페이로드 데이터 구간)보다 미리 결정된 양만큼 더 많이 요청해서 미리 보관해두는 방식을 사용할 수 있다. 캐시 서버(225)는 오리진 노드(210)와 엣지 노드(220) 간의 네트워크 전송시간과 동영상 파일의 muxrate 등을 종합적으로 고려하여 오리진 노드(210)에 캐싱 요청할 청크 구간의 크기를 미리 결정할 수 있다. In general, since transmission delay occurs between devices on the network, the
한편, 본 실시 예에서는, 오리진 노드(210)에 캐싱 요청하는 청크 구간이 스트리밍 서버(211)에서 요청하는 페이로드 데이터 구간보다 더 큰 것을 예시하고 있으나 반드시 이에 제한되지는 않으며, 오리진 노드(210)에 캐싱 요청하는 청크 구간을 스트리밍 서버(211)에서 요청하는 페이로드 데이터 구간과 일치하도록 설정할 수 있음은 당업자에게 자명할 것이다.On the other hand, in the present embodiment, although the chunk section requested by the
오리진 노드(210)의 스트리밍 서버(211)는, 캐시 서버(225)의 실시간 캐싱 요청에 대응하여, 상기 캐시 서버(225)에서 요청하는 청크 구간의 페이로드 데이터를 오리진 노드(210)의 스토리지(213)로부터 검출하고, 상기 검출된 페이로드 데이터를 엣지 노드(220)의 캐시 서버(225)로 전송할 수 있다(S445). 이때, 상기 스트리밍 서버(211)는, 청크 구간의 페이로드 데이터를 포함하는 HTTP GET 응답 메시지를 엣지 노드(220)의 캐시 서버(225)로 전송할 수 있다.In response to a real-time caching request from the
엣지 노드(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
엣지 노드(220)의 캐시 저장소(227)에 보관된 동영상 파일은 이후에 다른 STB 단말 혹은 다른 세션에서 해당 동영상 파일에 대한 페이로드 데이터를 요청할 때마다 캐시 서버(225)에 의해 제공될 수 있다.The video file stored in the
엣지 노드(220)의 스트리밍 서버(221)는 엣지 노드(220)의 캐시 서버(225)로부터 일정 구간의 페이로드 데이터를 수신하고, 상기 수신된 페이로드 데이터를 스트리밍 버퍼에 채울 수 있다(S460). 이후, 엣지 노드(220)의 스트리밍 서버(221)는 스트리밍 버퍼에 채워진 스트리밍 데이터 패킷을 STB 단말(230)로 전송할 수 있다(S360).The streaming
엣지 노드(220)의 스트리밍 서버(221)는 스트리밍 데이터 패킷의 전송으로 인해 스트리밍 버퍼가 모두 비워지는지를 확인할 수 있다(S470). 상기 확인 결과, 스트리밍 버퍼가 모두 비워진 경우, 엣지 노드(220)의 스트리밍 서버(221)는 상술한 415 단계로 이동하여 다음 구간의 페이로드 데이터(가령, X+1 ~ 2X Bytes)를 읽어와서 스트리밍 버퍼에 채우는 방식으로 데이터 패킷을 주기적으로 전송할 수 있다. 상기 스트리밍 서버(221)에 의한 데이터 패킷의 주기적 전송은, VOD 서비스 가입자의 동영상 재생 요청이 정지될 때까지 반복적으로 계속될 수 있다.The streaming
STB 단말(230)은 엣지 노드(220)의 스트리밍 서버(221)로부터 스트리밍 데이터 패킷을 수신하고, 상기 수신된 스트리밍 데이터 패킷을 기반으로 동영상 파일을 재생할 수 있다(S475).The
한편, 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
엣지 노드(220)의 캐시 서버(225)는 목적 지점에 해당하는 청크가 캐시 저장소(227)에 존재하는지를 확인할 수 있다. 상기 확인 결과, 목적 지점에 해당하는 청크가 캐시 저장소(227)에 존재하는 경우, 엣지 노드(220)의 캐시 서버(225)는 캐시 저장소(227)에 보관된 청크를 읽어서 일정 구간의 페이로드 데이터를 해당 엣지 노드(220)의 스트리밍 서버(221)로 전송할 수 있다. 한편, 상기 확인 결과, 목적 지점에 해당하는 청크가 캐시 저장소(227)에 존재하지 않는 경우, 엣지 노드(220)의 캐시 서버(225)는 해당 청크 구간에 대응하는 페이로드 데이터를 오리진 노드로부터 실시간 캐싱 방식으로 수신하여 해당 엣지 노드(220)의 스트리밍 서버(221)로 전송할 수 있다.The
엣지 노드(220)의 스트리밍 서버(221)는 목적 지점에 대응하는 일정 구간의 페이로드 데이터를 스트리밍 버퍼에 채운 다음 해당 버퍼에 보관된 스트리밍 데이터 패킷을 STB 단말(230)로 전송할 수 있다. STB 단말(230)은 엣지 노드(220)의 스트리밍 서버(221)로부터 수신된 스트리밍 데이터 패킷을 기반으로 동영상의 재생 시점을 목적 지점(seek position)으로 이동할 수 있다.The streaming
또한, 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
이상, 상술한 바와 같이, 본 발명에 따른 동영상 스트리밍 방법은, 동영상 파일 전체를 엣지 노드에 사전 배포하지 않고, 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
엣지 노드(220)의 캐시 서버(225)는, 일정 구간의 페이로드 데이터에 대응하는 청크가 캐시 저장소(227)에 존재하는 경우, 상기 캐시 저장소(227)에 보관된 청크를 읽어서 상기 일정 구간의 페이로드 데이터를 해당 엣지 노드(220)의 스트리밍 서버(221)로 전송할 수 있다.The
한편, 엣지 노드(220)의 캐시 서버(225)는, 일정 구간의 페이로드 데이터에 대응하는 청크가 캐시 저장소(227)에 존재하지 않는 경우, 해당 청크의 캐싱에 필요한 페이로드 데이터를 오리진 노드(210)의 스트리밍 서버(211)로 요청할 수 있다.On the other hand, the
본 실시 예에서, 엣지 노드(220)의 캐시 서버(225)는 오리진 노드(210)에 실시간 캐싱을 요청하는 청크의 크기를 1MB로 설정할 수 있다. 따라서, 캐시 서버(225)는 해당 동영상 파일의 페이로드 데이터를 1MB 단위로 분할하여 오리진 노드(210)에 주기적으로 요청할 수 있다.In this embodiment, the
엣지 노드(220)의 캐시 서버(225)는 오리진 노드(210)로부터 수신된 페이로드 데이터를 해당 엣지 노드(220)의 스트리밍 서버(221)로 전송할 수 있다. 이와 동시에, 엣지 노드(220)의 캐시 서버(225)는 별도의 쓰레드(thread)로 오리진 노드(210)로부터 수신된 페이로드 데이터를 캐시 저장소(227)에 청크 단위로 저장할 수 있다.The
캐시 저장소(227)는 오리진 노드(210)로부터 실시간 조각 캐싱 방식으로 수신된 동영상 파일들의 집합과 상기 동영상 파일들에 관한 파일 목록정보를 저장하고 이를 관리할 수 있다.The
각각의 동영상 파일은 오리진 노드(210)로부터 실시간 조각 캐싱 방식으로 수신된 복수의 청크들(chunks, 510)의 집합으로 이루어져 있다. 캐시 저장소(227)에 보관된 청크들은 VOD 서비스 가입자가 실제로 시청한 동영상 파일 구간의 페이로드 데이터 부분에 해당한다.Each video file consists of a set of a plurality of
파일목록 정보는 캐시 저장소(227)에 보관된 동영상 파일들에 관한 제1 메타데이터 정보와 각 동영상 파일을 구성하는 청크들에 관한 제2 메타데이터 정보를 포함할 수 있다. 상기 제1 메타데이터 정보는 각 동영상 파일의 크기 정보 및 미디어 정보 등을 포함할 수 있다. 상기 제2 메타데이터 정보는 각 청크의 크기 정보, 생성 시간 정보 및 최근 접속 시간 정보 등을 포함할 수 있다.The file list information may include first metadata information on video files stored in the
엣지 노드(220)의 캐시 서버(225)는 캐시 저장소(227)에 보관된 파일목록 정보를 기반으로 STB 단말(230)에서 요청하는 동영상 파일의 재생에 필요한 청크 조각의 존재 유무를 즉각적으로 판단할 수 있다.The
또한, 엣지 노드(220)의 캐시 서버(225)는 캐시 저장소(227)에 보관된 캐시 파일들의 사용 빈도(즉, 접속 빈도)를 청크(chunk) 단위로 분석하여 상기 캐시 저장소(227)에 보관된 캐시 파일들 중 적어도 일부를 주기적으로 삭제할 수 있다. 예를 들어, 제1 동영상 파일(A.mpg 파일)의 경우, 앞 10분 정도만을 재생하고 종료 버튼을 누르는 가입자 이용 패턴이 많을 수 있고, 제2 동영상 파일(B.mpg 파일)의 경우, 마지막 부분을 시청하지 않고 종료 버튼을 누르는 가입자 이용 패턴이 많을 수 있다. 이러한 경우, 청크 방식으로 캐시 저장소(227)를 관리하면, 특정 동영상 파일의 전체 구간 중에서 가입자들이 거의 시청하지 않는 구간에 해당하는 청크는 엣지 노드에서 보관하지 않기 때문에 엣지 노드의 스토리지를 효율적으로 사용할 수 있는 장점이 있다.In addition, the
전술한 본 발명은, 프로그램이 기록된 매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 매체는, 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 매체의 예로는, 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
상기 스토리지는, 사전 파일배포 방식으로 수신된 동영상 파일들을 저장하는 로컬 저장소와, 실시간 캐싱(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.
상기 오리진 노드로부터 수신된 페이로드 데이터를 상기 캐시 저장소에 청크(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.
상기 제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 재생 구간의 페이로드 데이터를 상기 스토리지 또는 상기 오리진 노드로부터 획득하여 상기 스트리밍 버퍼에 채우는 단계를 더 포함하는 엣지 노드의 동영상 스트리밍 방법.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.
상기 제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.
상기 가입자 단말로부터 상기 동영상 파일의 설명을 요청하는 메시지를 수신하는 단계를 더 포함하는 엣지 노드의 동영상 스트리밍 방법.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.
상기 동영상 파일의 메타데이터 정보가 상기 스토리지에 존재하는지를 확인하는 단계를 더 포함하는 엣지 노드의 동영상 스트리밍 방법.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.
상기 동영상 파일의 메타데이터 정보가 상기 스토리지에 존재하지 않는 경우, 상기 메타데이터 정보를 상기 오리진 노드에 실시간으로 요청하여 수신하고, 상기 수신된 메타데이터 정보를 포함하는 메시지를 상기 가입자 단말로 전송하는 단계를 더 포함하는 엣지 노드의 동영상 스트리밍 방법.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.
가입자 단말로부터 동영상 파일의 재생을 요청하는 메시지를 수신한 경우, 상기 가입자 단말로 전송할 데이터 패킷의 양을 결정하기 위한 스트리밍 버퍼를 생성하고, 상기 동영상 파일의 페이로드 데이터 중 상기 스트리밍 버퍼의 크기에 대응하는 제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.
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)
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)
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)
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 |
-
2019
- 2019-02-19 KR KR1020190019197A patent/KR102274466B1/en active IP Right Grant
Patent Citations (4)
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)
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) |