KR102123070B1 - Video on Demand Steaming Server device and operating method thereof - Google Patents

Video on Demand Steaming Server device and operating method thereof Download PDF

Info

Publication number
KR102123070B1
KR102123070B1 KR1020170161382A KR20170161382A KR102123070B1 KR 102123070 B1 KR102123070 B1 KR 102123070B1 KR 1020170161382 A KR1020170161382 A KR 1020170161382A KR 20170161382 A KR20170161382 A KR 20170161382A KR 102123070 B1 KR102123070 B1 KR 102123070B1
Authority
KR
South Korea
Prior art keywords
files
mpd
vod content
vod
segment
Prior art date
Application number
KR1020170161382A
Other languages
Korean (ko)
Other versions
KR20190062817A (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 PCT/KR2017/013803 priority Critical patent/WO2019107593A1/en
Priority to KR1020170161382A priority patent/KR102123070B1/en
Publication of KR20190062817A publication Critical patent/KR20190062817A/en
Application granted granted Critical
Publication of KR102123070B1 publication Critical patent/KR102123070B1/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/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234309Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4 or from Quicktime to Realvideo
    • 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
    • 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/231Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
    • H04N21/23113Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion involving housekeeping operations for stored content, e.g. prioritizing content for deletion because of storage space restrictions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234318Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by decomposing into objects, e.g. MPEG-4 objects
    • 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/2365Multiplexing of several video streams
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • H04N21/2385Channel allocation; Bandwidth allocation
    • 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/239Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests

Landscapes

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

Abstract

본 발명은 VOD(Video on demand) 컨텐츠 제공 서버 장치 및 이의 운용 방법에 관한 것이다. 본 발명에 따른 VOD 컨텐츠 제공 서버 장치는 VOD 컨텐츠 파일을 제공하는 트랜스코더와 통신 채널을 형성하는 제1 통신 회로와, 클라이언트 단말과 통신 채널을 형성하는 제2 통신 회로와, VOD 컨텐츠 파일, VOD 컨텐츠 파일의 DASH(Dynamic Adaptive Streaming over HTTP) 처리에 따라 생성된 MPD(Media Presentation Description) 파일 및 세그먼트 파일들을 저장하는 메모리, 및 제1 통신 회로, 제2 통신 회로 및 메모리에 전기적으로 연결되는 프로세싱부를 포함한다. 프로세싱부는 클라이언트에 VOD 리스트를 제공하고, 클라이언트 요청에 따른 MPD 파일 및 세그먼트 파일들을 클라이언트에 전송하도록 설정된다.The present invention relates to a video on demand (VOD) content providing server device and its operation method. The VOD content providing server device according to the present invention includes a first communication circuit forming a communication channel with a transcoder providing a VOD content file, a second communication circuit forming a communication channel with a client terminal, a VOD content file, and VOD content Memory for storing Media Presentation Description (MPD) files and segment files generated according to DASH (Dynamic Adaptive Streaming over HTTP) processing of files, and a first communication circuit, a second communication circuit, and a processing unit electrically connected to the memory do. The processing unit is configured to provide a VOD list to the client, and transmit MPD files and segment files according to the client request to the client.

Description

VOD 컨텐츠 제공 서버 장치 및 이의 운용 방법{Video on Demand Steaming Server device and operating method thereof}VOD content providing server device and its operating method {Video on Demand Steaming Server device and operating method thereof}

본 발명은 컨텐츠 제공과 관련한 VOD 컨텐츠 제공 서버 장치 및 이의 운용 방법에 관한 것이다. The present invention relates to a VOD content providing server device related to content providing and a method for operating the same.

인터넷 네트워크의 발달에 따라 고화질의 대용량 미디어 파일의 전송이 가능해지고 있다. 하지만 아직까지도 대용량 미디어 컨텐츠를 제공하는 서비스를 위해서 인터넷망의 QoS(Quality of Service)가 보장되지 않고, 대역폭의 한계가 존재하여 소비자에게 끊김 없는 컨텐츠 제공 서비스가 어려운 상태였다. With the development of the Internet network, it is possible to transfer high-quality large-capacity media files. However, the quality of service (QoS) of the Internet network is not guaranteed for a service that provides a large amount of media content, and there is a limitation in bandwidth.

이를 해결하기 위해 네트워크 환경에 적응적으로 서비스 할 수 있는 다양한 기술 개발이 요구되었으며, 국제 표준화 기구인 MPEG(Moving Picture Experts Group)에서 DASH(Dynamic Adaptive Streaming over HTTP)라는 이름으로 표준화가 진행되었다.To solve this, development of various technologies capable of adaptively servicing the network environment was required, and standardization was carried out under the name of Dynamic Adaptive Streaming over HTTP (DASH) by the Moving Picture Experts Group (MPEG), an international standardization organization.

MPEG-DASH는 사용자 환경(네트워크 및 단말 성능 등)에 맞추어 미디어 컨텐츠를 사용자에게 끊김 없이 서비스하기 위한 표준으로, MPEG-DASH에서 다루는 표준화 범위는 미디어 컨텐츠의 소비, 조합 및 기타 정보를 기술하는 MPD(Media Presentation Description) 기술, 시간 기반 컨텐츠 분할 기술인 Media Segmentation 기술, 시분할된 각각의 파일을 다운로드/스트리밍 할 수 있는 액세스 위치 기술, MPEG-DASH를 지원하는 file format 기술, 디지털 미디어 소비 및 저장 형식에 따라 MPD 구성을 변경할 수 있는 Profiling 기술 등이 해당된다.MPEG-DASH is a standard for seamlessly servicing media content to users according to the user environment (network and terminal performance, etc.).The standardized scope covered by MPEG-DASH is MPD (MPD) that describes consumption, combination, and other information of media content. Media Presentation Description) technology, Media Segmentation technology, time-based content segmentation technology, access location technology for downloading/streaming each time-divided file, file format technology supporting MPEG-DASH, MPD according to digital media consumption and storage format Profiling technology that can change the configuration is applicable.

한국등록특허 제10-1764317호(2017.07.27. 등록)Korean Registered Patent No. 10-1764317 (Registration on July 27, 2017)

한편, 종래 MPEG-DASH 기반으로 컨텐츠를 제공하더라도, 끊김 없는 컨텐츠 제공이 어려운 문제가 있었다.On the other hand, even if the contents are provided based on the conventional MPEG-DASH, there is a problem in that it is difficult to provide seamless contents.

이에, 본 발명은 보다 원활하고 끊김 없는 또는 상대적으로 저지연의 VOD 컨텐츠 제공이 가능한 VOD 컨텐츠 제공 서버 장치 및 이의 운용 방법을 제공함에 있다.Accordingly, the present invention provides a VOD content providing server device capable of providing smooth, seamless or relatively low-delay VOD content and a method of operating the same.

본 발명의 실시 예에 따르면, 본 발명의 VOD 컨텐츠 제공 서버 장치는 VOD(Video on demand) 컨텐츠 파일을 제공하는 트랜스코더와 통신 채널을 형성하는 제1 통신 회로, 클라이언트 단말과 통신 채널을 형성하는 제2 통신 회로, 상기 VOD 컨텐츠 파일, 상기 VOD 컨텐츠 파일의 DASH(Dynamic Adaptive Streaming over HTTP) 처리에 따라 생성된 MPD(Media Presentation Description) 파일 및 세그먼트 파일들을 저장하는 메모리, 상기 제1 통신 회로, 상기 제2 통신 회로 및 상기 메모리에 전기적으로 연결되는 프로세싱부를 포함하고, 상기 프로세싱부는 상기 클라이언트에 VOD 리스트를 제공하고, 상기 클라이언트 요청에 따른 MPD 파일 및 세그먼트 파일들을 상기 클라이언트에 전송하도록 설정될 수 있다.According to an embodiment of the present invention, the VOD content providing server device of the present invention comprises a first communication circuit that forms a communication channel with a transcoder that provides a video on demand (VOD) content file, and a communication channel with a client terminal. 2 communication circuit, a memory for storing media presentation description (MPD) files and segment files generated according to DASH (Dynamic Adaptive Streaming over HTTP) processing of the VOD content file, the VOD content file, the first communication circuit, and the first And a processing unit electrically connected to the communication circuit and the memory, the processing unit may be configured to provide a VOD list to the client, and to transmit MPD files and segment files according to the client request to the client.

상기 프로세싱부는 상기 트랜스코더로부터 수신한 VOD 컨텐츠 파일을 임시 디렉토리에 저장하고, 상기 VOD 컨텐츠 파일들의 DASH 처리가 완료되면 상기 임시 디렉토리에 저장된 VOD 컨텐츠 파일들을 삭제하도록 설정될 수 있다.The processing unit may be configured to store the VOD content file received from the transcoder in a temporary directory, and delete the VOD content files stored in the temporary directory when DASH processing of the VOD content files is completed.

상기 프로세싱부는 상기 VOD 컨텐츠의 이름별로 DASH 처리한 미디어 파일 조각들을 저장하도록 설정될 수 있다.The processing unit may be configured to store pieces of media files DASH-processed for each name of the VOD content.

상기 프로세싱부는 상기 트랜스코더로부터 HEVC Tiled Encoding 된 다양한 해상도의 공간 분할된 VOD 컨텐츠 파일들을 수신하도록 설정될 수 있다.The processing unit may be configured to receive spatially segmented VOD content files of various resolutions that are HEVC tiled encoded from the transcoder.

상기 VOD 컨텐츠 제공 서버 장치는 상기 MPD 파일이 저장된 MPD 캐쉬, 상기 세그먼트 파일이 저장되는 미디어 캐쉬, 상기 DASH 처리된 MPD 파일 및 상기 세그먼트 파일들이 저장되는 VOD 기본 디렉토리를 더 포함할 수 있다.The VOD content providing server device may further include an MPD cache in which the MPD file is stored, a media cache in which the segment file is stored, the DASH processed MPD file, and a VOD base directory in which the segment files are stored.

또한, 본 발명의 VOD 컨텐츠 제공 서버 장치 운용 방법은 클라이언트 단말과 통신 채널을 형성하는 단계, 상기 클라이언트에 VOD(Video on demand) 리스트를 제공하는 단계, 상기 클라이언트 요청에 따른 MPD(Media Presentation Description) 파일 및 세그먼트 파일들을 MPEG-DASH(Moving Picture Experts Group - Dynamic Adaptive Streaming over HTTP) 기반으로 상기 클라이언트에 전송하는 단계를 포함할 수 있다.In addition, the method for operating a VOD content providing server device of the present invention includes forming a communication channel with a client terminal, providing a video on demand (VOD) list to the client, and a media presentation description (MPD) file according to the client request And transmitting segment files to the client based on a Moving Picture Experts Group-Dynamic Adaptive Streaming over HTTP (MPEG-DASH).

상술한 바와 같이, 본 발명의 VOD 컨텐츠 제공 서버 장치 및 이의 운용 방법에 따르면, 본 발명은 끊김 없거나 상대적으로 지연이 적은 방식의 컨텐츠 제공 서비스가 가능하도록 지원할 수 있다. As described above, according to the VOD content providing server device of the present invention and an operation method thereof, the present invention can support a content providing service in a seamless or relatively low-delay manner.

도 1은 본 발명의 실시 예에 따른 VOD 컨텐츠 제공 서비스 시스템의 한 예를 나타낸 도면이다.
도 2는 본 발명의 실시 예에 따른 VOD 컨텐츠 제공 서버 구성의 일예를 나타낸 도면이다.
도 3은 본 발명의 일 실시 예에 따른 수신부의 구성의 한 예를 나타낸 도면이다.
도 4는 본 발명의 일 실시 예에 따른 VOD 기본 디렉토리 구조의 일예를 나타낸 도면이다.
도 5는 본 발명의 일 실시 예에 따른 스트리밍 서비스부의 일예를 나타낸 도면이다.
도 6은 본 발명의 일 실시 예에 따른 LRU 캐쉬 구조의 일 예를 나타낸 도면이다.
도 7은 본 발명의 일 실시 예에 따른 서버 및 클라이언트 간의 신호 흐름의 일 예를 나타낸 도면이다.
1 is a view showing an example of a VOD content providing service system according to an embodiment of the present invention.
2 is a view showing an example of a VOD content providing server configuration according to an embodiment of the present invention.
3 is a view showing an example of the configuration of a receiving unit according to an embodiment of the present invention.
4 is a diagram showing an example of a VOD basic directory structure according to an embodiment of the present invention.
5 is a view showing an example of a streaming service unit according to an embodiment of the present invention.
6 is a diagram illustrating an example of an LRU cache structure according to an embodiment of the present invention.
7 is a diagram illustrating an example of a signal flow between a server and a client according to an embodiment of the present invention.

이하, 본 발명의 다양한 실시 예가 첨부된 도면을 참조하여 기재된다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 실시 예의 다양한 변경(modification), 균등물(equivalent), 및/또는 대체물(alternative)을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다.Hereinafter, various embodiments of the present invention will be described with reference to the accompanying drawings. However, this is not intended to limit the present invention to specific embodiments, and should be understood as including various modifications, equivalents, and/or alternatives of embodiments of the present invention. In connection with the description of the drawings, similar reference numerals may be used for similar elements.

도 1은 본 발명의 실시 예에 따른 VOD 컨텐츠 제공 서비스 시스템의 한 예를 나타낸 도면이다.1 is a view showing an example of a VOD content providing service system according to an embodiment of the present invention.

도 1을 참조하면, 일 실시 예에 따른 VOD 컨텐츠 제공 서비스 시스템(10)은 트랜스코더(12), VOD 컨텐츠 제공 서버(13)(또는 VOD 컨텐츠 제공 서버 장치, 또는 VOD 컨텐츠 스트리밍 서버 장치), 클라이언트(14)(또는 클라이언트 단말 장치)를 포함할 수 있다.1, the VOD content providing service system 10 according to an embodiment includes a transcoder 12, a VOD content providing server 13 (or a VOD content providing server device, or a VOD content streaming server device), a client (14) (or a client terminal device).

상술한 VOD 컨텐츠 제공 서비스 시스템(10)은 트랜스코더(12)가 지정된 VOD 컨텐츠를 VOD 컨텐츠 제공 서버(13)에 전달하고, VOD 컨텐츠 제공 서버(13)는 수신된 VOD 컨텐츠에 대한 DASHing을 수행하고, 클라이언트(14) 요청에 따라 지정된 VOD 컨텐츠를 클라이언트(14)에 제공할 수 있다. 이 동작에서 VOD 컨텐츠 제공 서버(13)는 VOD 컨텐츠를 스트리밍 형태로 클라이언트(14)에 제공할 수 있다.The above-described VOD content providing service system 10 delivers the VOD content designated by the transcoder 12 to the VOD content providing server 13, and the VOD content providing server 13 performs DASHing on the received VOD content , VOD content designated according to the request of the client 14 may be provided to the client 14. In this operation, the VOD content providing server 13 may provide VOD content to the client 14 in a streaming form.

트랜스코더(12)는 지정된 정책 및 룰에 따라 VOD 미디어 파일을 동일한 해상도의 복수의 공간들로 분할하거나 또는 서로 다른 해상도의 복수의 공간들로 분할하거나 또는 지정된 시간 단위로 분할할 수 있다. 분할된 VOD 미디어 파일 조각들 또는 데이터 청크(예: HEVC(high efficiency video coding) 타일드 인코딩된 데이터 청크)들은 VOD 컨텐츠 제공 서버(13)에 전달될 수 있다. The transcoder 12 may divide the VOD media file into a plurality of spaces of the same resolution, or a plurality of spaces of different resolutions, or a specified time unit according to a specified policy and rule. The fragmented VOD media file pieces or data chunks (eg, high efficiency video coding (HEVC) tiled encoded data chunks) may be delivered to the VOD content providing server 13.

VOD 컨텐츠 제공 서버(13)는 수신된 미디어 파일 조각들(또는 미디어 데이터 청크들)에 대한 MEPG-DASHing을 수행하고, 클라이언트(14) 요청에 대응하여 지정된 VOD 미디어 파일 조각들을 클라이언트(14)에 제공할 수 있다. DASH(Dynamic Adaptive Streaming over HTTP) 처리(또는 Dashing)된 컨텐츠는 HTTP를 기반으로 하는 세그먼트의 시퀀스로 분할될 수 있다.The VOD content providing server 13 performs MEPG-DASHing on the received media file fragments (or media data chunks) and provides the client 14 with designated VOD media file fragments in response to the client 14 request can do. DASH (Dynamic Adaptive Streaming over HTTP) processed (or Dashed) content may be divided into a sequence of segments based on HTTP.

상술한 바와 같이, VOD 컨텐츠 제공 서비스 시스템(10)은 지정된 정책 또는 룰에 따라 분할된 미디어 파일 조각들(또는 데이터 청크들)을 기반으로 MPEG-DASH를 통한 데이터 전송을 처리함으로써, 데이터 전송의 부하를 저감하여 저지연 VOD 컨텐츠 제공 서비스 또는 끊김 없는 VOD 컨텐츠 제공 서비스를 가능하도록 지원할 수 있다.As described above, the VOD content providing service system 10 processes data transmission through MPEG-DASH based on pieces of media files (or data chunks) divided according to a specified policy or rule, thereby loading data transmission. It can be reduced to support low-latency VOD content provision service or seamless VOD content provision service.

예를 들면, VOD 컨텐츠 제공 서비스 시스템(10)은 실시간으로 인코딩되어 수신되는 영상을 Dashing하여 세그먼테이션 된 미디어 파일 조각들(MP4 Transport Segments(.m4s))과 MPD(Media Presentation Description) 파일을 생성할 수 있다. For example, the VOD content providing service system 10 may generate segmented media file fragments (MP4 Transport Segments (.m4s)) and MPD (Media Presentation Description) files by dashing the received video encoded in real time. have.

트랜스코더(12)는 특정 VOD 컨텐츠를 타일드 인코딩(Tiled Encoding(HEVC)) 또는 Encoding(HEVC) 하여 VOD 컨텐츠 제공 서버(13)로 전송할 수 있다. Tiled Encoding 동작 수행 시, 트랜스코더(12)는 VOD 컨텐츠 제공 서버(13)에서 필요한 Tiled 정보(MetaInfo)를 작성하고, 작성된 Tiled 정보(MetaInfo)를 미디어 파일 조각들 전송 시 함께 VOD 컨텐츠 제공 서버(13)에 전송할 수 있다. 트랜스코더(12)는 고품질 영상에 대해 실시간으로 또는 VOD Name별로 HEVC Tiled Encoding 을 수행할 수 있다. 이 동작에서 트랜스코더(12)는 하나의 영상을 특정 시간 단위로 분할하고, 분할된 미디어 파일 조각들에 대해 순차적으로 HEVC Tiled Encoding을 수행하여 VOD 컨텐츠 제공 서버(13)에 전송할 수 있다. 또는, 트랜스코더(12)는 하나의 영상을 일정 크기(또는 공간) 단위로 분할하고, 분할된 미디어 파일 조각들에 대하여 순차적으로 HEVC Tiled Encoding을 수행하여 VOD 컨텐츠 제공 서버(13)에 전송할 수 있다. 트랜스코더(12)가 VOD 컨텐츠 제공 서버(13)에 전송하는 미디어 파일 조각들은 예컨대, HQ(8K 급 이상의 HEVC Tiled Encoding된 고품질 영상), MQ(2K 또는 4K 급 이상의 HEVC Tiled Encoding된 중품질 영상), FullMQ(2K 또는 4K급의 HEVC Encoding된 중품질 영상)을 포함할 수 있다. MetaInfo(또는 Tiled 정보)는 상술한 HQ, MQ 파일에 대한 Meta 정보(Tile, Bitrate, FPS, bandwidth 등)를 포함할 수 있다.The transcoder 12 may transmit a specific VOD content to the VOD content providing server 13 by tiled encoding (HEVC) or encoding (HEVC). When performing the Tiled Encoding operation, the transcoder 12 creates the required Tiled information (MetaInfo) in the VOD content providing server 13, and transmits the created Tiled information (MetaInfo) to the media file fragments together with the VOD content providing server 13 ). The transcoder 12 may perform HEVC tiled encoding on a high quality image in real time or by VOD name. In this operation, the transcoder 12 may divide one image into specific time units and sequentially HEVC Tiled Encoding on the fragmented media file fragments and transmit it to the VOD content providing server 13. Alternatively, the transcoder 12 may divide one image into units of a predetermined size (or space), and sequentially perform HEVC tiled encoding on fragmented media file pieces to transmit to the VOD content providing server 13 . The pieces of media files that the transcoder 12 transmits to the VOD content providing server 13 include, for example, HQ (8K class HEVC Tiled Encoded High Quality Video), MQ (2K or 4K class HEVC Tiled Encoded Medium Quality Video) , FullMQ (2K or 4K class HEVC Encoded medium quality video). MetaInfo (or tiled information) may include meta information (Tile, Bitrate, FPS, bandwidth, etc.) for the HQ and MQ files described above.

VOD 컨텐츠 제공 서버(13)는 트랜스코더(12)로부터 수신 받은 미디어 파일 조각들에 대한 데싱(Dashing) 작업을 수행할 수 있다. VOD 컨텐츠 제공 서버(13)는 데싱 작업이 수행된 미디어 파일 조각들(예: 세그먼트 파일들)을 클라이언트(14)요청에 따라 MPEG-DASH-SRD(Spatial Relationship Description) 기반의 VOD 스트리밍 서비스를 통해 제공할 수 있다.The VOD content providing server 13 may perform a dashing operation on pieces of media files received from the transcoder 12. VOD content providing server 13 provides media file fragments (eg, segment files) for which dashing is performed through a VOD streaming service based on MPEG-DASH-SRD (Spatial Relationship Description) according to client 14 request can do.

클라이언트(14)는 VOD 컨텐츠 제공 서버(13)와 MPEG-DASH 기반으로 연결되고, 사용자 입력에 따라 선택된 VOD 컨텐츠를 VOD 컨텐츠 제공 서버(13)에 요청할 수 있다. 클라이언트(14)는 VOD 컨텐츠 제공 서버(13)가 제공한 미디어 파일 조각들(예: MPD 파일 및 세그먼트 파일들)을 수신하고, 수신된 미디어 파일 조각들을 출력할 수 있다. The client 14 is connected to the VOD content providing server 13 based on MPEG-DASH, and may request the VOD content providing server 13 to select VOD content selected according to a user input. The client 14 may receive media file fragments (eg, MPD file and segment files) provided by the VOD content providing server 13 and output the received media file fragments.

도 2는 본 발명의 실시 예에 따른 VOD 컨텐츠 제공 서버 구성의 일예를 나타낸 도면이다.2 is a view showing an example of a VOD content providing server configuration according to an embodiment of the present invention.

도 2를 참조하면, 일 실시 예에 따른 VOD 컨텐츠 제공 서버(13)는 제1 통신 회로(110), 제2 통신 회로(120), 메모리(140) 및 프로세싱부(300)(예: 컨트롤러, 적어도 하나의 프로세서, 또는 적어도 하나의 프로세싱 모듈)를 포함할 수 있다.Referring to FIG. 2, the VOD content providing server 13 according to an embodiment includes a first communication circuit 110, a second communication circuit 120, a memory 140, and a processing unit 300 (eg, a controller, It may include at least one processor, or at least one processing module.

제1 통신 회로(110)는 트랜스코더(12)와 통신할 수 있는 통신 채널을 형성할 수 있다. 제1 통신 회로(110)는 유선 통신 인터페이스 또는 무선 통신 인터페이스 중 적어도 하나를 포함할 수 있다. 제1 통신 회로(110)는 트랜스코더(12)가 전송하는 다양한 품질의 미디어 파일 조각들을 수신할 수 있다. 제1 통신 회로(110)는 트랜스코더(12)가 전송하는 다양한 품질의 미디어 파일 조각들에 대한 MetaInfo를 수신할 수 있다.The first communication circuit 110 may form a communication channel capable of communicating with the transcoder 12. The first communication circuit 110 may include at least one of a wired communication interface or a wireless communication interface. The first communication circuit 110 may receive pieces of media files of various qualities transmitted by the transcoder 12. The first communication circuit 110 may receive MetaInfo of various quality media file pieces transmitted by the transcoder 12.

제2 통신 회로(120)는 클라이언트(14)와 통신할 수 있는 통신 채널을 형성할 수 있다. 제2 통신 회로(120)는 유선 통신 인터페이스 또는 무선 통신 인터페이스 중 적어도 하나를 포함할 수 있다. 제2 통신 회로(120)는 클라이언트(14) 접속에 따른 채널을 할당하고, 클라이언트(14)로부터 VOD 컨텐츠 요청 신호를 수신할 수 있다. 제2 통신 회로(120)는 VOD 컨텐츠 요청 신호에 대응하는 MPD 파일 및 세그먼테이션 된 파일 조각들(또는 세그먼트 파일들)을 클라이언트(14)에 제공할 수 있다.The second communication circuit 120 may form a communication channel through which the client 14 can communicate. The second communication circuit 120 may include at least one of a wired communication interface or a wireless communication interface. The second communication circuit 120 may allocate a channel according to the connection of the client 14 and receive a VOD content request signal from the client 14. The second communication circuit 120 may provide the client 14 with segmented file fragments (or segment files) and an MPD file corresponding to the VOD content request signal.

메모리(140)는 VOD 컨텐츠 제공 서버(13) 운용에 필요한 다양한 프로그램 또는 다양한 명령어를 저장할 수 있다. 예컨대, 메모리(140)는 제1 통신 회로(110)를 기반으로 트랜스코더(12)로부터 미디어 파일 조각들(예: Tiled Encoding된 미디어 파일 조각들)을 수신하도록 설정된 적어도 하나의 명령어들, 트랜스코더(12)로부터 수신한 미디어 파일 조각들에 대한 MPD를 작성하도록 설정된 적어도 하나의 명령어들, 수신한 미디어 파일 조각들에 대한 세그먼테이션을 수행하도록 설정된 적어도 하나의 명령어들, 클라이언트(14)의 VOD 컨텐츠 요청을 수신하고 및 수신된 VOD 컨텐츠 요청에 대응하여 세그먼테이션 된 파일 조각들을 전송하도록 설정된 적어도 하나의 명령어들을 저장할 수 있다. The memory 140 may store various programs or various commands necessary to operate the VOD content providing server 13. For example, the memory 140 may include at least one instruction set to receive media file fragments (eg, tiled encoded media file fragments) from the transcoder 12 based on the first communication circuit 110, transcoder. At least one instruction set to create MPD for media file fragments received from (12), at least one instruction set to perform segmentation on received media file fragments, and requesting VOD content of client 14 And at least one command set to transmit segmented file fragments in response to the received VOD content request.

프로세싱부(300)는 VOD 컨텐츠 제공 서버(13) 운용과 관련한 명령어의 처리 및 데이터(예: 미디어 파일 조각들 또는 데이터 청크들)의 저장 관리와 전송을 수행할 수 있다. 이와 관련하여, 프로세싱부(300)는 수신부(301) 및 스트리밍 서비스부(303)를 포함할 수 있다. 수신부(301)는 제1 통신 회로(110)를 통하여 트랜스코더(12)로부터 미디어 파일 조각들을 수신하고, 수신된 미디어 파일 조각들을 저장할 수 있다. 스트리밍 서비스부(303)는 수신부(301)가 메모리(140)에 저장한 미디어 파일 조각들과 관련한 MPD 생성 및 세그먼테이션을 수생하고, 클라이언트(14)의 VOD 컨텐츠 요청에 대응하여 지정된 MPD 파일 및 세그먼테이션 된 파일 조각들을 클라이언트(14)에 제공할 수 있다. The processing unit 300 may perform command processing and storage (eg, media file fragments or data chunks) related to operation of the VOD content providing server 13 and manage and transmit the data. In this regard, the processing unit 300 may include a receiving unit 301 and a streaming service unit 303. The reception unit 301 may receive media file fragments from the transcoder 12 through the first communication circuit 110 and store the received media file fragments. The streaming service unit 303 receives MPD generation and segmentation related to pieces of media files stored in the memory 140 by the receiving unit 301, and the specified MPD file and segmentation are generated in response to the request of the VOD content of the client 14 File fragments may be provided to the client 14.

프로세싱부(300), 수신부(301) 및 스트리밍 서비스부(303) 중 적어도 하나는 적어도 하나의 프로세서로 구현되거나 또는 적어도 하나의 소프트웨어 모듈에 의해 구현되고 지정된 프로세서에 의해 운용될 수 있다. At least one of the processing unit 300, the receiving unit 301, and the streaming service unit 303 may be implemented by at least one processor, or implemented by at least one software module and operated by a designated processor.

도 3은 본 발명의 일 실시 예에 따른 수신부의 구성의 한 예를 나타낸 도면이다.3 is a view showing an example of the configuration of a receiving unit according to an embodiment of the present invention.

도 3을 참조하면, 일 실시 예에 따른 수신부(301)는 인코딩 미디어 파일 수신기(310)(EncodingMediaFileReceiver), VOD 핸들러(320)(VODHandler), 임시 디렉토리(330)(Temp_Dir), 데싱 모듈(340)을 포함하는 데이터 매니저(340) 및 VOD 기본 디렉토리(350)(VOD_BASE_DIR)를 포함할 수 있다.Referring to FIG. 3, the receiving unit 301 according to an embodiment includes an encoding media file receiver 310 (EncodingMediaFileReceiver), a VOD handler 320 (VODHandler), a temporary directory 330 (Temp_Dir), and a dashing module 340 It may include a data manager 340 and the VOD base directory 350 (VOD_BASE_DIR).

인코딩 미디어 파일 수신기(310)는 트랜스코더(12)로부터 Tiled Encoding된 미디어 조각 파일 수신과 관련한 채널을 생성할 수 있다. 예컨대, 인코딩 미디어 파일 수신기(310)는 트랜스코더(12)로부터 미디어 조각 파일 수신을 위한 소켓(Socket)을 생성하고, 소켓이 트랜스코더(12)와 연결되면 VOD 핸들러 쓰레드를 호출하고, 소켓을 VOD 핸들러(320)에 전달할 수 있다. The encoding media file receiver 310 may generate a channel related to receiving a tiled encoded media fragment file from the transcoder 12. For example, the encoding media file receiver 310 creates a socket for receiving a media fragment file from the transcoder 12, and when the socket is connected to the transcoder 12, calls a VOD handler thread, and VOD the socket. It can be delivered to the handler 320.

VOD 핸들러(320)는 인코딩 미디어 파일 수신기(310)로부터 전달받은 소켓을 이용하여 트랜스코더(12)로부터 미디어 파일(예: Tile Encoding된 파일)을 수신할 수 있다. 예컨대, VOD 핸들러(320)는 트랜스코더(12)로부터 MetaInfo와, HQ, MQ, FullMQ 미디어 파일들을 수신할 수 있다. VOD 핸들러(320)는 트랜스코더(12)로부터 수신된 미디어 파일들을 임시 디렉토리(330)에 저장할 수 있다. VOD 핸들러(320)는 미디어 파일들의 수신이 완료되면, 데이터 매니저(340)의 데싱 모듈(340)을 호출할 수 있다. The VOD handler 320 may receive a media file (eg, a tile encoded file) from the transcoder 12 using a socket received from the encoding media file receiver 310. For example, the VOD handler 320 may receive MetaInfo, HQ, MQ, and FullMQ media files from the transcoder 12. The VOD handler 320 may store media files received from the transcoder 12 in a temporary directory 330. The VOD handler 320 may call the dessing module 340 of the data manager 340 when the reception of media files is completed.

데이터 매니저(340)는 VOD 핸들러(320)가 미디어 파일들을 수신하면, 요청에 따라 데싱 모듈(340)을 생성할 수 있다. 데싱 모듈(340)은 수신된 미디어 파일들에 대한 데싱 처리를 수행할 수 있다. 데이터 매니저(340)는 데싱 처리된 데이터들(예: MPD 파일 및 세그먼트 파일들)을 VOD 기본 디렉토리(350)에 저장할 수 있다. When the VOD handler 320 receives the media files, the data manager 340 may generate the dashing module 340 according to the request. The desing module 340 may perform dessing processing on the received media files. The data manager 340 may store the dashed data (eg, MPD file and segment files) in the VOD base directory 350.

VOD 핸들러(320)는 미디어 파일들에 대한 데싱 처리가 완료되면, 임시 디렉토리(330)에 저장된 원본 파일을 삭제할 수 있다. The VOD handler 320 may delete the original file stored in the temporary directory 330 when the desing process for the media files is completed.

임시 디렉토리(330) 및 VOD 기본 디렉토리(350)는 메모리(140)의 적어도 일부가 될 수 있다. 임시 디렉토리(330) 및 VOD 기본 디렉토리(350)는 수신된 미디어 파일들의 크기에 따라 크기가 조정될 수 있다.The temporary directory 330 and the VOD basic directory 350 may be at least a part of the memory 140. The temporary directory 330 and the VOD base directory 350 may be resized according to the size of the received media files.

도 4는 본 발명의 실시 예에 따른 데싱 파일 시스템 구조의 한 예를 나타낸 도면이다.4 is a diagram illustrating an example of a structure of a desiring file system according to an embodiment of the present invention.

도 4를 참조하면, 데싱 파일 시스템 구조는 VOD 기본 디렉토리의 하부 구조로서 복수의 VOD_NAME 디렉토리가 배치될 수 있다. 각각의 VOD_NAME 디렉토리는 예컨대 하나의 미디어 파일에 대응할 수 있다. 각각의 VOD_NAME 디렉토리는 데싱 처리에 따라 MPD 파일 및 세그먼트 파일들이 저장될 수 있다. Referring to FIG. 4, the desinging file system structure may be a plurality of VOD_NAME directories as a sub-structure of the VOD base directory. Each VOD_NAME directory may correspond to one media file, for example. Each VOD_NAME directory may store MPD files and segment files according to the desing process.

도 5는 본 발명의 일 실시 예에 따른 VOD 컨텐츠 제공 서버의 스트리밍 서비스부 구성의 일예를 나타낸 도면이다.5 is a diagram illustrating an example of a configuration of a streaming service unit of a VOD content providing server according to an embodiment of the present invention.

도 5를 참조하면, 스트리밍 서비스부(303)는 데이터 매니저(340), VOD 기본 디렉토리(350), MPD 매니저(360), 세그먼트 매니저(370), 서브렛 커넥터(380)을 포함할 수 있다.Referring to FIG. 5, the streaming service unit 303 may include a data manager 340, a VOD base directory 350, an MPD manager 360, a segment manager 370, and a servlet connector 380.

데이터 매니저(340)는 데싱 모듈(340) 및 데이터 로더(342)를 포함할 수 있다. 여기서, 데이터 매니저(340)의 데싱 모듈(340)은 수신부(301)의 구성으로서 동작하고, 데이터 매니저(340)의 데이터 로더(342)는 스트리밍 서비스부(303)로 동작할 수 있다. 데싱 모듈(340)은 수신된 미디어 파일 조각들에 대한 데싱 처리를 수행하고, 데싱 처리된 데이터 청크들(또는 미디어 파일 조각들)을 VOD 기본 디렉토리(350)에 저장할 수 있다. 데이터 로더(342)는 VOD 기본 디렉토리(350)에 저장된 데이터 청크들을 읽어서 MPD 매니저(360) 및 세그먼트 매니저(370)에 전달할 수 있다. VOD 기본 디렉토리(350)는 운용 과정에서 데싱된 데이터들(예: MPD 파일 및 세그먼트 파일들)을 저장하는 동안 수신부(301)의 구성으로서 동작하고, 클라이언트(14)에 데이터들을 전송하는 동안 스트리밍 서비스부(303)로서 동작할 수 있다.The data manager 340 may include a dessing module 340 and a data loader 342. Here, the desing module 340 of the data manager 340 operates as a configuration of the reception unit 301, and the data loader 342 of the data manager 340 may operate as a streaming service unit 303. The desing module 340 may perform dessing processing on the received media file fragments, and store the dashed data chunks (or media file fragments) in the VOD base directory 350. The data loader 342 may read data chunks stored in the VOD base directory 350 and transfer them to the MPD manager 360 and the segment manager 370. The VOD base directory 350 acts as a configuration of the receiving unit 301 while storing data (eg, MPD files and segment files) that have been shed during operation, and a streaming service while transmitting data to the client 14 It can operate as part 303.

MPD 매니저(360)는 서브렛 커넥터(380)의 연결 핸들러(385)(ConnectionHandler)로부터 요청 받은 MPD 데이터를 Loading하여 전달하는 역할을 수행할 수 있다. MPD 매니저(360)는 1차적으로 MPD 캐쉬(361)의 리스트에서 해당 MPD 데이터의 캐싱 여부를 확인하고, MPD 캐쉬(361)에 해당 MPD 데이터가 없을 경우, VOD 기본 디렉토리(350)에서 MPD 값을 독출하여 서브렛 커넥터(380)에 전달할 수 있다. MPD 매니저(360)는 MPD 데이터 전달 이후, 전달한 MPD를 MPD 캐쉬(361)에 추가할 수 있다. 이 동작에서, MPD 매니저(360)는 데이터 매니저(340)의 데이터 로더(342)를 호출하여 MPD 데이터를 VOD 기본 디렉토리(350)에서 독출할 수 있다. MPD 캐쉬(361)는 Key/Value 형식의 해쉬맵(HashMap)으로 구성될 수 있다. 예컨대, Key는 {vod_name}{file_separator}{mpd file name}이며, Value는 MPD 파일의 내용이며 Byte Array(byte[])가 될 수 있다. 여기서, file_separator는 windows OS 환경에서는 “\”이며, Unix 또는 Linux 환경에서는 “/”가 될 수 있다.The MPD manager 360 may serve to load and deliver MPD data requested from the connection handler 385 (ConnectionHandler) of the servlet connector 380. The MPD manager 360 primarily checks whether the corresponding MPD data is cached in the list of the MPD cache 361, and if there is no corresponding MPD data in the MPD cache 361, the MPD value in the VOD base directory 350 It can be read out and delivered to the servlet connector 380. After delivery of the MPD data, the MPD manager 360 may add the delivered MPD to the MPD cache 361. In this operation, the MPD manager 360 may call the data loader 342 of the data manager 340 to read the MPD data from the VOD base directory 350. The MPD cache 361 may be configured as a Key/Value type HashMap. For example, the key is {vod_name}{file_separator}{mpd file name}, and the value is the content of the MPD file and can be a Byte Array(byte[]). Here, file_separator is “\” in the Windows OS environment and “/” in the Unix or Linux environment.

세그먼트 매니저(370)는 서브렛 커넥터(380)의 연결 핸들러(385)로부터 요청 받은 세그먼트 데이터(또는 세그먼트 파일)를 로딩하여 전달하는 역할을 수행할 수 있다. 이와 관련하여, 세그먼트 매니저(370)는 1차적으로 미디어 캐쉬(371)의 캐쉬 리스트에서 해당 세그먼트 데이터의 캐싱 여부를 확인하고, 해당 세그먼트 데이터가 미디어 캐쉬(371)에 없을 경우, VOD 기본 디렉토리(350)에서 세그먼트 값을 독출하여 서브렛 커넥터(380)에 전달할 수 있다. 세그먼트 매니저(370)는 세그먼트 값을 독출하여 전달한 후, 해당 세그먼트 값을 미디어 캐쉬(371)에 추가할 수 있다. 이 동작에서, 세그먼트 매니저(370)는 데이터 매니저(340)의 데이터 로더(342)를 호출하여 세그먼트 데이터를 VOD 기본 디렉토리(350)에서 독출할 수 있다. 세그먼트 캐쉬(371)는 Key/Value 형식의 해쉬맵(HashMap)으로 구성될 수 있다. Key는 {vod_name}{file_separator}{segment file name}이며, Value는 세그먼트 파일 내용이며, byte 배열로 구성될 수 있다. The segment manager 370 may serve to load and transfer segment data (or segment file) requested from the connection handler 385 of the servlet connector 380. In this regard, the segment manager 370 primarily checks whether the corresponding segment data is cached in the cache list of the media cache 371, and if the corresponding segment data is not in the media cache 371, the VOD default directory 350 ) To read the segment value and deliver it to the servlet connector 380. The segment manager 370 reads and delivers the segment value, and then adds the segment value to the media cache 371. In this operation, the segment manager 370 may call the data loader 342 of the data manager 340 to read segment data from the VOD base directory 350. The segment cache 371 may be configured as a Key/Value type HashMap. Key is {vod_name}{file_separator}{segment file name}, Value is segment file content, and can be composed of byte array.

서브렛 커넥터(380)는 HTTP 연결(390)을 통하여 클라이언트(14)로부터 요청(Request)을 수신하고, 요청에 대응하는 응답(Response)를 클라이언트(14)에 전달하는 역할을 수행할 수 있다. 서브렛 커넥터(380)는 수신기(383)(Receiver), 송신기(381)(Sender) 및 연결 핸들러(385)(ConnectionHandler(Thread))를 포함할 수 있다.The servlet connector 380 may perform a role of receiving a request from the client 14 through the HTTP connection 390 and delivering a response corresponding to the request to the client 14. The servlet connector 380 may include a receiver 383 (Receiver), a transmitter 381 (Sender), and a connection handler 385 (ConnectionHandler (Thread)).

수신기(383) 및 송신기(381)는 HTTP 연결(390)을 통해 수신한 메시지 예컨대, HTTP Request, Response를 처리하는 모듈이며, 연결 핸들러(385)는 RequestURI에 따라 데싱 데이터를 로드하여 송신기(381)에 전달하는 역할을 수행할 수 있다. The receiver 383 and the transmitter 381 are modules that process messages received through the HTTP connection 390, such as HTTP Request and Response, and the connection handler 385 loads the desing data according to the RequestURI to sender 381 It can play a role to pass on.

수신기(383)는 HTTP 연결(390)을 수신하면, 연결 핸들러 쓰레드에 해당하는 연결 핸들러(385)를 생성하고, 연결 핸들러(385)에 해당 HTTP Connection Servlet을 전달할 수 있다. 수신기(383)는 HTTP Connection Servlet 전달 이후, 다음 HTTP Connection 수신을 위해 대기할 수 있다.Upon receiving the HTTP connection 390, the receiver 383 may generate a connection handler 385 corresponding to the connection handler thread, and deliver the HTTP Connection Servlet to the connection handler 385. After delivery of the HTTP Connection Servlet, the receiver 383 may wait to receive the next HTTP Connection.

연결 핸들러(385)는 Request URI를 분석하여 요청한 MPD 또는 세그먼트 파일을 MPD 매니저(360) 또는 세그먼트 매니저(370)에 요청할 수 있다. 연결 핸들러(385)는 MPD 매니저(360) 또는 세그먼트 매니저(370)로부터 MPD 파일 또는 세그먼트 파일들을 획득하고, 획득된 파일을 송신기(381)에 전달할 수 있다. The connection handler 385 may analyze the Request URI and request the requested MPD or segment file to the MPD manager 360 or the segment manager 370. The connection handler 385 may obtain MPD files or segment files from the MPD manager 360 or the segment manager 370, and deliver the obtained files to the transmitter 381.

송신기(381)는 연결 핸들러(385)로부터 요청(Request)에 대응하는 Response 정보와, MPD 또는 Segment 파일을 수신할 수 있다. 송신기(381)는 수신된 파일을 요청을 보낸 클라이언트(14)에 전달할 수 있다. The transmitter 381 may receive response information corresponding to a request from the connection handler 385 and an MPD or segment file. The transmitter 381 can deliver the received file to the client 14 that sent the request.

도 6은 본 발명의 일 실시 예에 따른 LRU(Least Recently Used) 캐쉬 구조의 한 예를 나타낸 도면이다6 is a diagram illustrating an example of a Least Recently Used (LRU) cache structure according to an embodiment of the present invention

도 6을 참조하면, MPD 버퍼 또는 세그먼트 버퍼의 LRU 캐쉬 구조는 해쉬 맵<key:String, value:byte[]>으로 구성될 수 있다. MPD 버퍼 또는 세그먼트 버퍼에는 MPD 파일에 대응하거나 또는 세그먼트 파일에 대응하는 P1, P2, P3, P4, P5, P6가 저장될 수 있다. Referring to FIG. 6, the LRU cache structure of the MPD buffer or segment buffer may be composed of a hash map <key:String, value:byte[]>. In the MPD buffer or segment buffer, P1, P2, P3, P4, P5, and P6 corresponding to the MPD file or the segment file may be stored.

버퍼에 저장된 데이터들은 예컨대, LRU 캐쉬 리스트에서 LinkedList<key:String> 구조로 배열되데, 해쉬맵에 따라 P1은 N4에, P2는 N2에, P3는 N1에, P4는 N3에, P5는 N6에, P6는 N5에 매핑될 수 있다. 매핑의 순서는 key 값 또는 value 값 등에 따라 변경될 수 있다.The data stored in the buffer is arranged in a LinkedList<key:String> structure in the LRU cache list, for example, according to the hashmap, P1 is N4, P2 is N2, P3 is N1, P4 is N3, and P5 is N6. , P6 may be mapped to N5. The order of mapping can be changed according to key values or value values.

도 7은 본 발명의 일 실시 예에 따른 VOD 컨텐츠 제공 서버와 클라이언트 간의 신호 흐름을 나타낸 도면이다.7 is a diagram showing a signal flow between a VOD content providing server and a client according to an embodiment of the present invention.

도 7을 참조하면, 일 실시 예에 따른 VOD 컨텐츠 제공 서버(13) 및 클라이언트(14) 간의 신호 흐름과 관련하여, 701 단계에서, 클라이언트(14)는 VOD 컨텐츠 제공 서버(13)에 VOD List를 요청할 수 있다. 예를 들어, 클라이언트(14)는 http://{ip_address}:{dash_vod_port}/GET_VOD_LIST 메시지를 VOD 컨텐츠 제공 서버(13)에 전송할 수 있다. 이에 대응하여, VOD 컨텐츠 제공 서버(13)는 클라이언트(14)에 대응하는 VOD List를 생성하고, 703 단계에서 VOD List를 클라이언트(14)에 전달할 수 있다. 예를 들어, VOD 컨텐츠 제공 서버(13)는 {vod_name}{vod_name}…{vod_name}과 같은 VOD List를 클라이언트(14)에 전달할 수 있다.Referring to FIG. 7, in connection with the signal flow between the VOD content providing server 13 and the client 14 according to an embodiment, in step 701, the client 14 sends a VOD List to the VOD content providing server 13 You can ask. For example, the client 14 may transmit the http://{ip_address}:{dash_vod_port}/GET_VOD_LIST message to the VOD content providing server 13. In response to this, the VOD content providing server 13 may generate a VOD List corresponding to the client 14 and transmit the VOD List to the client 14 in step 703. For example, the VOD content providing server 13 is {vod_name}{vod_name}… A VOD List such as {vod_name} can be delivered to the client 14.

클라이언트(14)는 705 단계에서, MPD 파일을 VOD 컨텐츠 제공 서버(13)에 요청할 수 있다. 이와 관련하여, 클라이언트(14)는 http://{ip_address}:{dash_vod_port}/{vod_name}/GET_MPD를 포함하는 메시지를 VOD 컨텐츠 제공 서버(13)에 전송할 수 있다. In step 705, the client 14 may request the MPD file from the VOD content providing server 13. In this regard, the client 14 may transmit a message including http://{ip_address}:{dash_vod_port}/{vod_name}/GET_MPD to the VOD content providing server 13.

VOD 컨텐츠 제공 서버(13)는 707 단계에서, 클라이언트(14)가 요청한 MPD 파일을 클라이언트(14)에 전송할 수 있다.In step 707, the VOD content providing server 13 may transmit the MPD file requested by the client 14 to the client 14.

클라이언트(14)는 709 단계에서, VOD 컨텐츠 제공 서버(13)에 연속된 세그먼트 파일들을 요청할 수 있다. 이와 관련하여, 클라이언트(14)는 http://{ip_address}:{dash_vod_port}/vod_name/{segment_file_name}를 포함하는 메시지를 VOD 컨텐츠 제공 서버(13)에 전송할 수 있다. In operation 709, the client 14 may request consecutive segment files from the VOD content providing server 13. In this regard, the client 14 may transmit a message including http://{ip_address}:{dash_vod_port}/vod_name/{segment_file_name} to the VOD content providing server 13.

VOD 컨텐츠 제공 서버(13)는 클라이언트(14)로부터 세그먼트 파일을 요청하는 메시지를 수신하면, 711 단계에서, 해당 세그먼트 파일을 클라이언트(14)에 전송할 수 있다. 클라이언트(14)는 세그먼트 파일을 수신하면, 713 단계에서, 연속된 세그먼트 파일들 중 마지막 세그먼트 파일(예: (N) Segment 파일)을 VOD 컨텐츠 제공 서버(13)에 요청할 수 있다. VOD 컨텐츠 제공 서버(13)는 715 단계에서, 대응되는 세그먼트 파일을 클라이언트(14)에 전달할 수 있다. When the VOD content providing server 13 receives a message requesting a segment file from the client 14, in step 711, the corresponding segment file may be transmitted to the client 14. Upon receiving the segment file, the client 14 may request the VOD content providing server 13 to request the last segment file (eg, (N) Segment file) among consecutive segment files in step 713. In step 715, the VOD content providing server 13 may transmit the corresponding segment file to the client 14.

세그먼트 파일들의 수신이 완료되면, 클라이언트는 사용자 입력에 따라 또는 스케줄링된 프로세스에 따라 705 단계 이전으로 분기하여 이하 동작을 반복적으로 수행할 수 있다.When the reception of the segment files is completed, the client may branch to step 705 according to user input or according to a scheduled process to repeatedly perform the following operations.

상술한 본 문서에 개시된 실시 예는 개시된, 기술 내용의 설명 및 이해를 위해 제시된 것이며, 본 발명의 범위를 한정하는 것은 아니다. 따라서, 본 문서의 범위는, 본 발명의 기술적 사상에 근거한 모든 변경 또는 다양한 다른 실시 예를 포함하는 것으로 해석되어야 한다.The embodiments disclosed in the above-described document are provided for the description and understanding of the disclosed technical content, and do not limit the scope of the present invention. Therefore, the scope of this document should be construed to include all changes or various other embodiments based on the technical spirit of the present invention.

10 : VOD 컨텐츠 제공 서비스 시스템
12 : 트랜스코더
13 : VOD 컨텐츠 제공 서버
14 : 클라이언트
110 : 제1 통신회로
120 : 제2 통신회호
140 : 메모리
300 : 프로세싱부
301 : 수신부
303 : 스트리밍 서비스부
10: VOD content provision service system
12: transcoder
13: VOD content providing server
14: client
110: first communication circuit
120: second communication circuit
140: memory
300: processing unit
301: receiver
303: streaming service department

Claims (6)

VOD(Video on demand) 컨텐츠 파일을 제공하는 트랜스코더와 통신 채널을 형성하는 제1 통신 회로;
클라이언트 단말과 통신 채널을 형성하는 제2 통신 회로;
상기 VOD 컨텐츠 파일, 상기 VOD 컨텐츠 파일의 DASH(Dynamic Adaptive Streaming over HTTP) 처리에 따라 생성된 MPD(Media Presentation Description) 파일 및 세그먼트 파일들을 저장하는 메모리;
상기 제1 통신 회로, 상기 제2 통신 회로 및 상기 메모리에 전기적으로 연결되는 프로세싱부;를 포함하고,
상기 프로세싱부는
상기 클라이언트 단말에 VOD 리스트를 제공하고, 상기 클라이언트 단말 요청에 따른 MPD 파일 및 세그먼트 파일들을 상기 클라이언트 단말에 전송하도록 설정되데,
상기 클라이언트 단말 요청에 따른 MPD 파일 및 세그먼트 파일들을 기반으로 상기 트랜스코더로부터 HEVC Tiled Encoding 된 VOD 컨텐츠 파일들을 수신하도록 설정되고,
상기 VOD 컨텐츠 파일들은 공간 분할된 VOD 컨텐츠 파일 조각들을 포함하며, 상기 공간 분할된 VOD 컨텐츠 파일 조각들은 각각 서로 다른 복수의 해상도로 인코딩되며,
상기 MPD 파일 및 세그먼트 파일들은 MPD 버퍼 또는 세그먼트 버퍼에 저장되며,
상기 MPD 버퍼 또는 세그먼트 버퍼는 LRU(Least Recently Used) 캐쉬 구조로 형성되며, 해쉬 맵 <key:String, value:byte[]>을 통해 상기 MPD 버퍼 및 세그먼트 버퍼에 상호 대응하는 MPD 파일 및 세그먼트 파일이 링크로 연결되어 저장되는 것을 특징으로 하는 VOD 컨텐츠 제공 서버 장치.
A first communication circuit forming a communication channel with a transcoder that provides a video on demand (VOD) content file;
A second communication circuit forming a communication channel with the client terminal;
A memory for storing the VOD content file, a media presentation description (MPD) file and segment files generated according to DASH (Dynamic Adaptive Streaming over HTTP) processing of the VOD content file;
And a processing unit electrically connected to the first communication circuit, the second communication circuit, and the memory.
The processing unit
It is configured to provide a VOD list to the client terminal, and transmit MPD files and segment files according to the client terminal request to the client terminal,
It is set to receive HEVC Tiled Encoded VOD content files from the transcoder based on MPD files and segment files according to the client terminal request,
The VOD content files include space-divided VOD content file fragments, and the space-divided VOD content file fragments are each encoded in a plurality of different resolutions,
The MPD file and segment files are stored in an MPD buffer or a segment buffer,
The MPD buffer or segment buffer is formed of a Least Recently Used (LRU) cache structure, and MPD files and segment files corresponding to the MPD buffer and the segment buffer are mutually provided through a hash map <key:String, value:byte[]>. VOD content providing server device characterized in that it is connected and stored by a link.
제1항에 있어서,
상기 프로세싱부는
상기 트랜스코더로부터 수신한 VOD 컨텐츠 파일을 임시 디렉토리에 저장하고, 상기 VOD 컨텐츠 파일들의 DASH 처리가 완료되면 상기 임시 디렉토리에 저장된 VOD 컨텐츠 파일들을 삭제하도록 설정된 VOD 컨텐츠 제공 서버 장치.
According to claim 1,
The processing unit
A VOD content providing server device configured to store VOD content files received from the transcoder in a temporary directory and delete VOD content files stored in the temporary directory when DASH processing of the VOD content files is completed.
제1항에 있어서,
상기 프로세싱부는
상기 VOD 컨텐츠의 이름별로 DASH 처리한 미디어 파일 조각들을 저장하도록 설정된 VOD 컨텐츠 제공 서버 장치.
According to claim 1,
The processing unit
VOD content providing server device configured to store pieces of media files that are DASH-processed by name of the VOD content.
삭제delete 제1항에 있어서,
상기 MPD 파일이 저장된 MPD 캐쉬;
상기 세그먼트 파일이 저장되는 미디어 캐쉬;
상기 DASH 처리된 MPD 파일 및 상기 세그먼트 파일들이 저장되는 VOD 기본 디렉토리;
를 더 포함하는 VOD 컨텐츠 제공 서버 장치.
According to claim 1,
An MPD cache in which the MPD file is stored;
A media cache in which the segment file is stored;
A VOD base directory in which the DASH processed MPD file and the segment files are stored;
VOD content providing server device further comprising.
클라이언트 단말과 통신 채널을 형성하는 단계;
상기 클라이언트 단말에 VOD(Video on demand) 리스트를 제공하는 단계;
상기 클라이언트 단말 요청에 따른 MPD(Media Presentation Description) 파일 및 세그먼트 파일들을 MPEG-DASH(Moving Picture Experts Group - Dynamic Adaptive Streaming over HTTP) 기반으로 상기 클라이언트 단말에 전송하는 단계;를 포함하고,
상기 클라이언트 단말에 전송하는 단계는
상기 클라이언트 단말 요청에 따른 MPD 파일 및 세그먼트 파일들을 기반으로 트랜스코더로부터 HEVC Tiled Encoding 된 VOD 컨텐츠 파일들을 수신 하는 단계;를 포함하고,
상기 VOD 컨텐츠 파일들은 공간 분할된 VOD 컨텐츠 파일 조각들을 포함하며, 상기 공간 분할된 VOD 컨텐츠 파일 조각들은 각각 서로 다른 복수의 해상도로 인코딩되며,
상기 MPD 파일 및 세그먼트 파일들은 MPD 버퍼 또는 세그먼트 버퍼에 저장되고,
상기 MPD 버퍼 또는 세그먼트 버퍼는 LRU(Least Recently Used) 캐쉬 구조로 형성되며, 해쉬 맵 <key:String, value:byte[]>을 통해 상기 MPD 버퍼 및 세그먼트 버퍼에 상호 대응하는 MPD 파일 및 세그먼트 파일이 링크로 연결되어 저장되는 것을 특징으로 하는 VOD 컨텐츠 제공 서버 장치 운용 방법.
Forming a communication channel with the client terminal;
Providing a video on demand (VOD) list to the client terminal;
Including the step of transmitting MPD (Media Presentation Description) files and segment files according to the client terminal request to the client terminal based on a Moving Picture Experts Group-Dynamic Adaptive Streaming over HTTP (MPEG-DASH);
The step of transmitting to the client terminal is
Includes; receiving the HEVC Tiled Encoded VOD content files from the transcoder based on the MPD file and segment files according to the client terminal request;
The VOD content files include space-divided VOD content file fragments, and the space-divided VOD content file fragments are each encoded in a plurality of different resolutions,
The MPD file and segment files are stored in an MPD buffer or a segment buffer,
The MPD buffer or segment buffer is formed of a Least Recently Used (LRU) cache structure, and MPD files and segment files corresponding to the MPD buffer and the segment buffer are mutually provided through a hash map <key:String, value:byte[]>. A method of operating a VOD content providing server device, characterized in that it is connected and stored by a link.
KR1020170161382A 2017-11-29 2017-11-29 Video on Demand Steaming Server device and operating method thereof KR102123070B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/KR2017/013803 WO2019107593A1 (en) 2017-11-29 2017-11-29 Vod content providing server apparatus, and operation method therefor
KR1020170161382A KR102123070B1 (en) 2017-11-29 2017-11-29 Video on Demand Steaming Server device and operating method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170161382A KR102123070B1 (en) 2017-11-29 2017-11-29 Video on Demand Steaming Server device and operating method thereof

Publications (2)

Publication Number Publication Date
KR20190062817A KR20190062817A (en) 2019-06-07
KR102123070B1 true KR102123070B1 (en) 2020-06-16

Family

ID=66663956

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170161382A KR102123070B1 (en) 2017-11-29 2017-11-29 Video on Demand Steaming Server device and operating method thereof

Country Status (2)

Country Link
KR (1) KR102123070B1 (en)
WO (1) WO2019107593A1 (en)

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101366437B1 (en) * 2010-09-01 2014-02-27 한국전자통신연구원 Apparatus and method for providing streaming contents
KR101397551B1 (en) * 2012-09-27 2014-06-27 배재대학교 산학협력단 Dynamic and Adaptive Streaming System over HTTP
CN104904225B (en) * 2012-10-12 2019-05-07 佳能株式会社 For carrying out spreading defeated method and related device to video data
US10924781B2 (en) * 2014-06-27 2021-02-16 Satellite Investors, Llc Method and system for real-time transcoding of MPEG-DASH on-demand media segments while in transit from content host to dash client
EP3092780B1 (en) * 2014-07-03 2020-04-29 Huawei Technologies Co., Ltd. Signaling and handling of forensic marking for adaptive streaming
EP2963894A1 (en) * 2014-07-04 2016-01-06 Thomson Licensing Method for operating a cache arranged along a transmission path between client terminals and at least one server, and corresponding cache.
US10291681B2 (en) * 2015-06-18 2019-05-14 Ericsson Ab Directory limit based system and method for storing media segments
KR101764317B1 (en) 2016-11-03 2017-08-02 주식회사 헤카스 Streaming server, streaming system and streaming method

Also Published As

Publication number Publication date
WO2019107593A1 (en) 2019-06-06
KR20190062817A (en) 2019-06-07

Similar Documents

Publication Publication Date Title
US11647235B2 (en) Real-time and secured picture/video upload via a content delivery network
US9015335B1 (en) Server side stream switching
US10951930B2 (en) Adaptive content delivery network
US9161063B2 (en) System and method for low bandwidth display information transport
US20140282766A1 (en) On the Fly Transcoding of Video on Demand Content for Adaptive Streaming
US8555324B2 (en) Video download mechanism for transferring large data
JP2010505330A (en) Method, system, and computer software for streaming parallel user sessions
CN103222272A (en) Systems and methods for video cache indexing
CN106797487B (en) Cloud streaming server
KR20160080929A (en) Apparatus and method of adaptive ultra high definition multimedia streaming service based on cloud
CN108668179B (en) Transmission method of media index file and related equipment
KR102030983B1 (en) Operating Method for Live Streaming Service based on Tiled Encoding image and electronic device supporting the same
US10917477B2 (en) Method and apparatus for MMT integration in CDN
KR102024642B1 (en) Live Steaming Server device and operating method thereof
CN108271039B (en) File sending method and device
KR102123070B1 (en) Video on Demand Steaming Server device and operating method thereof
KR101283791B1 (en) System for encoding distributed moving pictur file and method for the same
US20110145440A1 (en) Method of distributed computing electronic device and system applying the method
KR102007669B1 (en) Video on demand Server device for internet broadcasting and operating method thereof
KR20160105803A (en) Method for providing a content part of a multimedia content to a client terminal, corresponding cache
KR20160026216A (en) Appratus and Method for 4K UHD Contents Streaming based on Cloud
US10165033B2 (en) Live encoding for distribution of long tail media content
US20230171441A1 (en) Method providing to a user terminal a target multimedia content available at a master server
US11811838B1 (en) Generation of unique presentation of media content
CN117336530A (en) Picture transcoding method, device, server and storage medium

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
X091 Application refused [patent]
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E90F Notification of reason for final refusal
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant