Nothing Special   »   [go: up one dir, main page]

KR102024642B1 - Live Steaming Server device and operating method thereof - Google Patents

Live Steaming Server device and operating method thereof Download PDF

Info

Publication number
KR102024642B1
KR102024642B1 KR1020170161380A KR20170161380A KR102024642B1 KR 102024642 B1 KR102024642 B1 KR 102024642B1 KR 1020170161380 A KR1020170161380 A KR 1020170161380A KR 20170161380 A KR20170161380 A KR 20170161380A KR 102024642 B1 KR102024642 B1 KR 102024642B1
Authority
KR
South Korea
Prior art keywords
file
client
segment
mpd
media
Prior art date
Application number
KR1020170161380A
Other languages
Korean (ko)
Other versions
KR20190062815A (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 KR1020170161380A priority Critical patent/KR102024642B1/en
Publication of KR20190062815A publication Critical patent/KR20190062815A/en
Application granted granted Critical
Publication of KR102024642B1 publication Critical patent/KR102024642B1/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/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/23614Multiplexing of additional data and 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/21Server components or server architectures
    • H04N21/218Source of audio or video content, e.g. local disk arrays
    • H04N21/2187Live feed
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/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/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • H04N21/23605Creation or processing of packetized elementary streams [PES]
    • 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/23608Remultiplexing multiplex streams, e.g. involving modifying time stamps or remapping the packet identifiers

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

본 발명은 라이브 스트리밍 서버 장치 및 이의 운용 방법에 관한 것이다. 본 발명에 따른 라이브 스트리밍 서버 장치는 미디어 파일을 제공하는 트랜스코더와 통신 채널을 형성하는 제1 통신 회로와, 클라이언트 단말과 통신 채널을 형성하는 제2 통신 회로와, 미디어 파일 및 미디어 파일을 DASH(Dynamic Adaptive Streaming over HTTP) 처리한 미디어 파일 조각들을 저장하는 메모리, 및 제1 통신 회로, 제2 통신 회로 및 메모리에 전기적으로 연결되는 프로세싱부를 포함한다. 프로세싱부는 수신된 미디어 파일을 DASH 처리하면서 생성된 MPD(Media Presentation Description) 파일 및 세그먼트 파일들에 대한 인덱싱을 수행하고, 클라이언트 요청에 따라 MPEG-DASH(Moving Picture Experts Group Dynamic Adaptive Streaming over HTTP) 기반으로 MPD 파일 및 세그먼트 파일들을 클라이언트에 전송하는 동안 이전 전송된 파일의 인덱스 정보를 참조하여 다음 파일을 전송하도록 설정된다.The present invention relates to a live streaming server device and a method of operating the same. The live streaming server apparatus according to the present invention comprises a first communication circuit for forming a communication channel with a transcoder for providing a media file, a second communication circuit for forming a communication channel with a client terminal, and a media file and a media file (DASH). Dynamic Adaptive Streaming over HTTP) and a memory for storing the processed media file pieces, and a processing unit electrically connected to the first communication circuit, the second communication circuit and the memory. The processing unit indexes the MPD (Media Presentation Description) file and the segment files generated while DASHing the received media file, and based on the Moving Picture Experts Group Dynamic Adaptive Streaming over HTTP (MPEG-DASH) based on a client request. While transferring the MPD file and the segment files to the client, it is set to transmit the next file by referring to the index information of the previously transferred file.

Description

라이브 스트리밍 서버 장치 및 이의 운용 방법{Live Steaming Server device and operating method thereof}Live Streaming Server device and operating method

본 발명은 컨텐츠 제공과 관련한 라이브 스트리밍 서버 장치 및 이의 운용 방법에 관한 것이다. The present invention relates to a live streaming server device and its operating method associated with providing content.

인터넷 네트워크의 발달에 따라 고화질의 대용량 미디어 파일의 전송이 가능해지고 있다. 하지만 아직까지도 대용량 미디어 컨텐츠 스트리밍 서비스를 위해서 인터넷망의 QoS(Quality of Service)가 보장되지 않고, 제한적인 대역폭 운용으로 인하여 소비자에게 끊김 없는 스트리밍 서비스가 어려운 문제점이 있다. With the development of the Internet network, it is possible to transfer high quality large media files. However, the quality of service (QoS) of the Internet network is not yet guaranteed for the mass media content streaming service, and there is a problem that a seamless streaming service is difficult for consumers due to limited bandwidth operation.

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

MPEG-DASH는 사용자 환경(네트워크 및 단말 성능 등)에 맞추어 미디어 컨텐츠를 사용자에게 끊김 없이 서비스하기 위한 표준으로, MPEG-DASH에서 다루는 표준화 범위는 미디어 컨텐츠의 소비, 조합 및 기타 정보를 기술하는 MPD(Media Presentation Description) 기술, 시간 기반 컨텐츠 분할 기술인 Media Segmentation 기술, 시분할된 각각의 파일을 다운로드/스트리밍 할 수 있는 액세스 위치 기술, MPEG-DASH를 지원하는 file format 기술, 디지털 미디어 소비 및 저장 형식에 따라 MPD 구성을 변경할 수 있는 Profiling 기술 등이 해당된다.MPEG-DASH is a standard for seamlessly serving media contents to users in accordance with the user environment (network and terminal performance, etc.). The standardized scope covered by MPEG-DASH includes MPD (description of media content consumption, combination, and other information). Media Presentation Description), Media Segmentation, a 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 Examples include profiling techniques that allow configuration changes.

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

한편, 종래 MPEG-DASH 기반으로 컨텐츠를 제공하더라도, 고해상도의 영상에 대한 라이브 스트리밍 서비스 형태로 컨텐츠를 제공하는 경우, 끊김 없는 컨텐츠 제공이 어려운 문제가 있었다.On the other hand, even when providing content based on the conventional MPEG-DASH, when providing the content in the form of a live streaming service for a high-definition video, there is a problem that it is difficult to provide a seamless content.

이에, 본 발명은 보다 원활하고 끊김 없는 또는 상대적으로 저지연 스트리밍 서비스를 제공할 수 있는 라이브 스트리밍 서버 장치 및 이의 운용 방법을 제공함에 있다.Accordingly, an aspect of the present invention is to provide a live streaming server device and a method of operating the same, which can provide a smoother, seamless or relatively low latency streaming service.

본 발명의 실시 예에 따르면, 본 발명의 라이브 스트리밍 서버 장치는 미디어 파일을 제공하는 트랜스코더와 통신 채널을 형성하는 제1 통신 회로, 클라이언트 단말과 통신 채널을 형성하는 제2 통신 회로, 상기 미디어 파일 및 상기 미디어 파일을 DASH(Dynamic Adaptive Streaming over HTTP) 처리한 미디어 파일 조각들을 저장하는 메모리, 상기 제1 통신 회로, 상기 제2 통신 회로 및 상기 메모리에 전기적으로 연결되는 프로세싱부를 포함하고, 상기 프로세싱부는 상기 수신된 미디어 파일을 DASH 처리하면서 생성된 MPD(Media Presentation Description) 파일 및 세그먼트 파일들에 대한 인덱싱을 수행하고, 클라이언트 요청에 따라 MPEG-DASH(Moving Picture Experts Group - Dynamic Adaptive Streaming over HTTP) 기반으로 상기 MPD 파일 및 상기 세그먼트 파일들을 상기 클라이언트에 전송하는 동안 이전 전송된 파일의 인덱스 정보를 참조하여 다음 파일을 전송하도록 설정될 수 있다.According to an embodiment of the present invention, the live streaming server apparatus of the present invention includes a first communication circuit for forming a communication channel with a transcoder for providing a media file, a second communication circuit for forming a communication channel with a client terminal, and the media file. And a memory configured to store pieces of media file obtained by processing the media file by DASH (Dynamic Adaptive Streaming over HTTP), the first communication circuit, the second communication circuit, and a processing unit electrically connected to the memory. Indexing the media presentation description (MPD) file and segment files generated while DASH processing the received media file, and based on MPEG-DASH (Moving Picture Experts Group-Dynamic Adaptive Streaming over HTTP) While transferring the MPD file and the segment files to the client With reference to the index information of all the transmitted file may be configured to send the file.

상기 프로세싱부는 케이블 인터페이스를 지원하는 상기 제1 통신 회로를 기반으로 상기 트랜스코더로부터 상기 미디어 파일을 수신하도록 설정될 수 있다.The processing unit may be configured to receive the media file from the transcoder based on the first communication circuit supporting a cable interface.

상기 프로세싱부는 상기 트랜스코더로부터 HEVC(high efficiency video coding) Tiled Encoding 된 미디어 파일을 수신하되, 다양한 해상도의 미디어 파일들을 수신하도록 설정될 수 있다.The processing unit may be configured to receive a high efficiency video coding (HEVC) tiled encoded media file from the transcoder, and to receive media files of various resolutions.

상기 프로세싱부는 상기 미디어 파일 수신과 관련한 타임 스탬프 정보를 기반으로 상기 인덱싱 정보를 생성하도록 설정될 수 있다.The processing unit may be configured to generate the indexing information based on time stamp information related to the reception of the media file.

상기 프로세싱부는 상기 클라이언트 요청에 따라 Client ID를 생성하고, 상기 Client ID를 기반으로 상기 MPD 파일, 상기 세그먼트 파일들 및 상기 인덱싱 정보를 상기 클라이언트에 전송하도록 설정될 수 있다.The processing unit may be configured to generate a Client ID according to the client request, and transmit the MPD file, the segment files, and the indexing information to the client based on the Client ID.

또한, 본 발명의 다양한 실시 예에 따르면, 본 발명의 라이브 스트리밍 서버 장치 운용 방법은 트랜스코더로부터 HEVC Tiled Encoding된 미디어 파일을 라이브 스트리밍 서버가 수신하는 단계, 상기 수신된 미디어 파일을 DASH 처리하여 MPD(Media Presentation Description) 파일 및 세그먼트 파일을 생성하면서 각 MPD 파일 및 세그먼트 파일들에 대한 인덱싱을 수행하는 단계, 클라이언트 요청에 따라 MPEG-DASH(Moving Picture Experts Group - Dynamic Adaptive Streaming over HTTP) 기반으로 상기 MPD 파일 및 상기 세그먼트 파일들을 전송하는 단계를 포함하고, 상기 전송하는 단계는 이전 전송한 파일의 인덱스를 참조하여 다음 파일을 전송하도록 설정하는 단계를 포함할 수 있다.According to various embodiments of the present disclosure, the method for operating a live streaming server device according to the present invention may include receiving a HEVC Tiled Encoded media file from a transcoder by a live streaming server, and processing the received media file by DASH processing to perform MPD ( Indexing each MPD file and segment files while generating a Media Presentation Description) file and a segment file. The MPD file is based on a Moving Picture Experts Group (Dynamic Adaptive Streaming over HTTP) based on a client request. And transmitting the segment files, wherein the transmitting may include setting to transmit the next file with reference to the index of the previously transmitted file.

상술한 바와 같이, 본 발명의 라이브 스트리밍 서버 장치 및 이의 운용 방법에 따르면, 본 발명은 끊김 없는 컨텐츠 제공 또는 상대적으로 저지연의 스트리밍 서비스가 가능하도록 지원할 수 있다. As described above, according to the live streaming server device of the present invention and its operation method, the present invention can support to provide a seamless content or relatively low-latency streaming service.

도 1은 본 발명의 실시 예에 따른 라이브 스트리밍 서비스 시스템의 한 예를 나타낸 도면이다.
도 2는 본 발명의 실시 예에 따른 라이브 스트리밍 서버 구성의 일예를 나타낸 도면이다.
도 3은 본 발명의 일 실시 예에 따른 프로세싱부의 구성의 한 예를 나타낸 도면이다.
도 4는 본 발명의 일 실시 예에 따른 라이브 스트리밍 서버의 수신부 구성의 일예를 나타낸 도면이다.
도 5는 본 발명의 일 실시 예에 따른 미디어 파일의 데싱 및 인덱싱 결과를 나타낸 도면이다.
도 6은 본 발명의 일 실시 예에 따른 MPD 매니저의 일 예를 나타낸 도면이다.
도 7은 본 발명의 일 실시 예에 따른 세그먼트 매니저의 일 예를 나타낸 도면이다.
도 8은 본 발명의 일 실시 예에 따른 인덱스 매니저의 일 예를 나타낸 도면이다.
도 9는 본 발명의 일 실시 예에 따른 데쉬 커넥터 모듈의 한 예를 나타낸 도면이다.
도 10은 본 발명의 일 실시 예에 따른 라이브 스트리밍 시스템에서 라이브 스트리밍 서버와 클라이언트 간의 신호 흐름을 나타낸 도면이다.
도 11은 본 발명의 일 실시 예에 따른 라이브 스트리밍 시스템에서 트랜스코더와 라이브 스트리밍 서버간의 신호 흐름을 나타낸 도면이다.
1 is a diagram illustrating an example of a live streaming service system according to an exemplary embodiment of the present invention.
2 is a diagram illustrating an example of a configuration of a live streaming server according to an exemplary embodiment of the present invention.
3 is a diagram illustrating an example of a configuration of a processing unit according to an exemplary embodiment.
4 is a diagram illustrating an example of a configuration of a receiver of a live streaming server according to an exemplary embodiment.
5 is a diagram illustrating a result of desing and indexing a media file according to an exemplary embodiment.
6 is a diagram illustrating an example of an MPD manager according to an embodiment of the present invention.
7 is a diagram illustrating an example of a segment manager according to an exemplary embodiment.
8 is a diagram illustrating an example of an index manager according to an exemplary embodiment.
9 is a diagram illustrating an example of a dash connector module according to an embodiment of the present invention.
10 is a diagram illustrating a signal flow between a live streaming server and a client in a live streaming system according to an embodiment of the present invention.
11 is a diagram illustrating a signal flow between a transcoder and a live streaming server in a live streaming system 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, it is not intended to limit the present invention to specific embodiments, but it should be understood to include various modifications, equivalents, and / or alternatives of the embodiments of the present invention. In connection with the description of the drawings, similar reference numerals may be used for similar components.

도 1은 본 발명의 실시 예에 따른 라이브 스트리밍 서비스 시스템의 한 예를 나타낸 도면이다.1 is a diagram illustrating an example of a live streaming service system according to an exemplary embodiment of the present invention.

도 1을 참조하면, 일 실시 예에 따른 라이브 스트리밍 서비스 시스템(10)은 라이브 미디어 소스(11), 트랜스코더(12), 라이브 스트리밍 서버(13)(또는 라이브 스트리밍 서버, 또는 라이브 스트리밍 서버 장치), 클라이언트(14)(또는 클라이언트 단말 장치)를 포함할 수 있다.Referring to FIG. 1, a live streaming service system 10 according to an embodiment may include a live media source 11, a transcoder 12, a live streaming server 13 (or a live streaming server, or a live streaming server device). And a client 14 (or client terminal device).

상술한 라이브 스트리밍 서비스 시스템(10)은 라이브 미디어 소스(11)에서 실시간으로 전달된 영상(또는 Media 파일)을 트랜스코더(12)가 수신할 수 있다. 트랜스코더(12)은 지정된 정책 및 룰에 따라 영상(또는 Media 파일)을 동일한 해상도의 복수의 공간들로 분할하거나 또는 서로 다른 해상도의 복수의 공간들로 분할하거나 또는 지정된 시간 단위로 분할할 수 있다. 분할된 미디어 파일들(예: HEVC 타일드 인코딩된 파일들)은 라이브 스트리밍 서버(13)에 전달될 수 있다. 라이브 스트리밍 서버(13)는 수신된 데이터들에 대한 MEPG-DASHing을 수행할 수 있다. 라이브 스트리밍 서버(13)는 생성된 MPD 파일 및 세그먼트 파일들에 대한 인덱싱을 수행하여 관리하고, 클라이언트(14) 요청에 대응하여 인덱싱된 미디어 파일 조각들(예: MPD 파일 및 세그먼트 파일들)을 클라이언트(14)에 제공할 수 있다. 상술한 바와 같이, 라이브 스트리밍 서비스 시스템(10)은 지정된 정책 또는 룰에 따라 MPEG-DASH-SRD(Spatial Relationship Description)를 기반으로 미디어 파일 조각들(또는 데이터 청크들)을 클라이언트(14) 전송함으로써, 데이터 전송의 부하를 저감하여 저지연 라이브 스트리밍 또는 끊김 없는 라이브 스트리밍 서비스를 가능하도록 지원할 수 있다.In the above-described live streaming service system 10, the transcoder 12 may receive an image (or a media file) delivered in real time from the live media source 11. The transcoder 12 may divide an image (or media file) into a plurality of spaces of the same resolution, a plurality of spaces of different resolutions, or a predetermined time unit according to a specified policy and rule. . The divided media files (eg HEVC tiled encoded files) may be delivered to the live streaming server 13. The live streaming server 13 may perform MEPG-DASHing on the received data. The live streaming server 13 performs indexing on the generated MPD file and segment files, manages the index, and manages indexed media file fragments (eg, MPD file and segment files) in response to the client 14 request. (14) can be provided. As described above, the live streaming service system 10 transmits pieces of media file pieces (or data chunks) based on MPEG-DASH-Spatial Relationship Description (Client-Spatial Relationship Description) to the client 14 according to a specified policy or rule, By reducing the load on data transmission, it can support low latency live streaming or seamless live streaming services.

라이브 미디어 소스(11)는 미디어 소스를 라이브 형태로 제공하는 구성으로 예컨대, 방송 카메라 또는 라이브 형태로 영상 컨텐츠를 제공하는 컨텐츠 서버 등을 포함할 수 있다. The live media source 11 is configured to provide a media source in a live form, and may include, for example, a broadcast camera or a content server for providing image content in a live form.

트랜스코더(12)는 라이브 중계 영상을 타일드 인코딩(Tiled Encoding(HEVC)) 또는 Encoding(HEVC) 하여 라이브 스트리밍 서버(13)로 전송할 수 있다. Tiled Encoding 동작 수행 시, 트랜스코더(12)는 라이브 스트리밍 서버(13)에서 필요한 Tiled 정보(MetaInfo)를 작성하고, 작성된 Tiled 정보(MetaInfo)를 미디어 파일 전송 시 함께 라이브 스트리밍 서버(13)에 전송할 수 있다. 트랜스코더(12)는 고품질 영상에 대해 실시간으로 HEVC Tiled Encoding을 수행할 수 있다. 이 동작에서 트랜스코더(12)는 하나의 영상을 특정 시간 단위로 분할하고, 분할된 미디어 파일에 대해 순차적으로 HEVC Tiled Encoding을 수행하여 라이브 스트리밍 서버(13)에 전송할 수 있다. 또는, 트랜스코더(12)는 하나의 영상을 일정 크기(또는 공간) 단위로 분할하고, 분할된 미디어 파일에 대하여 순차적으로 HEVC Tiled Encoding을 수행하여 라이브 스트리밍 서버(13)에 전송할 수 있다. 트랜스코더(12)가 라이브 스트리밍 서버(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 the live relay video to the live streaming server 13 by tiled encoding (HEVC) or encoding (HEVC). When the Tiled Encoding operation is performed, the transcoder 12 may create necessary tiled information (MetaInfo) in the live streaming server 13 and transmit the generated tiled information (MetaInfo) to the live streaming server 13 together with the media file transmission. have. The transcoder 12 may perform HEVC tiled encoding on a high quality image in real time. In this operation, the transcoder 12 may divide one image by a specific time unit, perform HEVC tiled encoding on the divided media file, and transmit the same to the live streaming server 13. Alternatively, the transcoder 12 may divide one image into units of a predetermined size (or space), perform HEVC tiled encoding on the divided media file, and transmit the same to the live streaming server 13. The video transmitted by the transcoder 12 to the live streaming server 13 may be, for example, HQ (8K or higher HEVC Tiled Encoded high quality image), MQ (2K or 4K or higher HEVC Tiled Encoded medium quality image), or 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 above-described HQ and MQ files.

라이브 스트리밍 서버(13)는 트랜스코더(12)로부터 수신 받은 미디어 파일에 대한 데싱(Dashing) 작업을 수행할 수 있다. 라이브 스트리밍 서버(13)는 데싱 작업이 수행된 미디어 파일 조각들(예: MPD 파일 및 세그먼트 파일들)을 클라이언트(14)요청에 따라 MPEG-DASH-SRD(Spatial Relationship Description) 기반의 스트리밍 서비스를 통해 제공할 수 있다. DASH(Dynamic Adaptive Streaming over HTTP) 처리(또는 Dashing)된 컨텐츠는 HTTP를 기반으로 하는 세그먼트의 시퀀스로 분할될 수 있다. The live streaming server 13 may perform a dashing operation on the media file received from the transcoder 12. The live streaming server 13 uses the MPEG-DASH-Spatial Relationship Description (SDR) based streaming service to send pieces of media file (eg, MPD file and segment files) on which the desing operation is performed, according to the request of the client 14. Can provide. Dynamic Adaptive Streaming over HTTP (DASH) processed (or Dashing) content may be divided into a sequence of segments based on HTTP.

클라이언트(14)는 라이브 스트리밍 서버(13)와 MPEG-DASH 기반으로 연결되고, 사용자 입력에 따라 선택된 영상을 라이브 스트리밍 서버(13)에 요청할 수 있다. 클라이언트(14)는 라이브 스트리밍 서버(13)가 제공한 미디어 파일 조각들 및 인덱싱 정보를 수신하고, 수신된 미디어 파일 조각들을 인덱싱 정보들을 기반으로 조합하여 출력할 수 있다. MPD 파일은 가능한 컨텐츠, 제공하는 alternative bit rates, URL 주소 값 등의 정보를 포함하는 Manifest. 파일에 대응될 수 있다. 클라이언트(14)는 MPD 파일을 파싱하면서, 프로그램 타이밍, media-content availability, media type, 화질, 최소 및 최대 bandwidths, 사용할 수 있는 encoded-alternatives, DRM 등의 정보를 획득할 수 있다. 클라이언트()는 네트워크 상태 또는 단말의 상태에 맞는 encoding을 선택한 후 HTTP GET Request를 통해서 스트리밍을 수행할 수 있다. The client 14 may be connected to the live streaming server 13 on the basis of MPEG-DASH and request the live streaming server 13 for a selected image according to a user input. The client 14 may receive the media file fragments and the indexing information provided by the live streaming server 13, and output the combined media file fragments based on the indexing information. The MPD file is a manifest that contains information such as possible content, alternative bit rates that you provide, and URL address values. May correspond to a file. While parsing the MPD file, the client 14 may obtain information such as program timing, media-content availability, media type, image quality, minimum and maximum bandwidths, usable encoded-alternatives, DRM, and the like. The client () may perform streaming through an HTTP GET Request after selecting an encoding suitable for the network state or the state of the terminal.

도 2는 본 발명의 실시 예에 따른 라이브 스트리밍 서버 구성의 일예를 나타낸 도면이다.2 is a diagram illustrating an example of a configuration of a live streaming server according to an exemplary embodiment of the present invention.

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

제1 통신 회로(110)는 트랜스코더(12)와 통신할 수 있는 통신 채널을 형성할 수 있다. 제1 통신 회로(110)는 유선 통신 인터페이스 또는 무선 통신 인터페이스 중 적어도 하나를 포함할 수 있다. 예컨대, 제1 통신 회로(110)는 케이블망을 통한 통신 채널을 형성할 수 있다. 제1 통신 회로(110)는 트랜스코더(12)가 전송하는 다양한 품질의 미디어 파일을 수신할 수 있다. 제1 통신 회로(110)는 트랜스코더(12)가 전송하는 다양한 품질의 미디어 파일들에 대한 MetaInfo를 수신할 수 있다.The first communication circuit 110 can form a communication channel that can communicate with the transcoder 12. The first communication circuit 110 may include at least one of a wired communication interface or a wireless communication interface. For example, the first communication circuit 110 may form a communication channel through a cable network. The first communication circuit 110 may receive media files of various qualities transmitted by the transcoder 12. The first communication circuit 110 may receive MetaInfo for media files of various qualities transmitted by the transcoder 12.

제2 통신 회로(120)는 클라이언트(14)와 통신할 수 있는 통신 채널을 형성할 수 있다. 제2 통신 회로(120)는 유선 통신 인터페이스 또는 무선 통신 인터페이스 중 적어도 하나를 포함할 수 있다. 예컨대, 제2 통신 회로(120)는 인터넷망을 통한 통신 채널을 형성할 수 있다. 제2 통신 회로(120)는 클라이언트(14) 접속에 따른 채널을 할당하고, 클라이언트(14)로부터 영상 요청 신호를 수신할 수 있다. 제2 통신 회로(120)는 영상 요청 신호에 대응하는 미디어 파일 조각들(예: MPD 파일 및 세그먼트 파일들) 및 미디어 파일 조각들에 대응하는 인덱싱 정보를 클라이언트(14)에 제공할 수 있다.The second communication circuit 120 can form a communication channel that can communicate with the client 14. The second communication circuit 120 may include at least one of a wired communication interface or a wireless communication interface. For example, the second communication circuit 120 may form a communication channel through an internet network. The second communication circuit 120 may allocate a channel according to the connection of the client 14 and receive an image request signal from the client 14. The second communication circuit 120 may provide the client 14 with media file fragments (eg, MPD file and segment files) corresponding to the image request signal and indexing information corresponding to the media file fragments.

메모리(140)는 라이브 스트리밍 서버(13) 운용에 필요한 다양한 프로그램 또는 다양한 명령어를 저장할 수 있다. 예컨대, 메모리(140)는 제1 통신 회로(110)를 기반으로 트랜스코더(12)로부터 미디어 파일을 수신하도록 설정된 적어도 하나의 명령어들, 트랜스코더(12)로부터 수신한 미디어 파일에 대한 MPD 파일을 작성하도록 설정된 적어도 하나의 명령어들, 수신한 미디어 파일에 대한 세그먼테이션을 수행하도록 설정된 적어도 하나의 명령어들, DASHing 작업이 적용된 미디어 파일 조각들(예: MPD 파일 및 세그먼트 파일들)에 대한 인덱싱을 수행하도록 설정된 적어도 하나의 명령어들, 클라이언트(14)의 요청을 수신 및 수신된 요청에 대응하여 미디어 파일 조각들 및 인덱싱 정보를 전송하도록 설정된 적어도 하나의 명령어들을 저장할 수 있다. The memory 140 may store various programs or various commands necessary for operating the live streaming server 13. For example, the memory 140 stores the MPD file for the media file received from the transcoder 12, at least one instruction configured to receive the media file from the transcoder 12 based on the first communication circuit 110. At least one instruction set to write, at least one instruction set to perform segmentation on a received media file, indexing a piece of media file (e.g. MPD file and segment files) to which a DASHing operation has been applied At least one instruction set, at least one instruction set to receive the request of the client 14 and to transmit the media file fragments and the indexing information in response to the received request.

프로세싱부(300)는 라이브 스트리밍 서버(13) 운용과 관련한 명령어의 처리 및 데이터(예: 미디어 파일 조각들 또는 데이터 청크들)의 저장 관리와 전송을 수행할 수 있다. 이러한 프로세싱부(300)는 적어도 하나의 프로세서로 구현되거나 또는 적어도 하나의 소프트웨어 모듈에 의해 구현되고 지정된 프로세서에 의해 운용될 수 있다. The processing unit 300 may perform processing of commands related to the operation of the live streaming server 13 and storage management and transmission of data (eg, media file fragments or data chunks). The processing unit 300 may be implemented by at least one processor or may be implemented by at least one software module and operated by a designated processor.

도 3은 본 발명의 일 실시 예에 따른 프로세싱부의 구성의 한 예를 나타낸 도면이다.3 is a diagram illustrating an example of a configuration of a processing unit according to an exemplary embodiment.

도 3을 참조하면, 일 실시 예에 따른 프로세싱부(300)는 라이브 미디어 수신기(310)(LiveMediaReceiver), 라이브 핸들 쓰레드(320)(LiverHandleThread), 데싱 모듈(330)(DashingModule), MPD 매니저(350), 세그먼트 매니저(360), 인덱스 매니저(370), 파일 시스템(340), 데쉬 핸들 쓰레드(380)(DashHandleThread), 데쉬 커넥터 모듈(390)(Dash Connector)를 포함할 수 있다. 상술한 라이브 미디어 수신기(310), 라이브 핸들 쓰레드(320), 데싱 모듈(330), MPD 매니저(350), 세그먼트 매니저(360), 인덱스 매니저(370), 파일 시스템(340), 데쉬 핸들 쓰레드(380), 및 데쉬 커넥터 모듈(390) 중 적어도 하나는 앞서 언급한 바와 같이 적어도 하나의 하드웨어 프로세서로 구현되거나 또는 적어도 하나의 소프트웨어 모듈로 구현될 수 있다. 상술한 프로세싱부(300)는 실감형 VR(Virtual Reality)용 인터랙티브 스트리밍 서비스(또는 360도 VR 영상 서비스)를 지원할 수 있다. 이와 관련하여, 라이브 스트리밍 서버(13)는 트랜스코더(12)로부터 실시간 VR 스트리밍 서비스와 관련한 미디어 파일(예: HEVC Encoding Files(*.mp4)) 또는 라이브 중계 영상을 Tiled Encoding(HEVC) 또는 Encoding(HEVC)한 미디어 파일을 수신할 수 있다. Referring to FIG. 3, the processing unit 300 according to an embodiment may include a live media receiver 310 (LiveMediaReceiver), a live handle thread 320 (LiverHandleThread), a dashing module 330 (DashingModule), and an MPD manager 350. ), A segment manager 360, an index manager 370, a file system 340, a dash handle thread 380 (DashHandleThread), and a dash connector module 390 (Dash Connector). The live media receiver 310, the live handle thread 320, the desing module 330, the MPD manager 350, the segment manager 360, the index manager 370, the file system 340, and the dash handle thread ( 380, and at least one of the dash connector module 390 may be implemented with at least one hardware processor or at least one software module, as mentioned above. The above-described processing unit 300 may support an interactive streaming service (or 360-degree VR video service) for realistic VR (Virtual Reality). In this regard, the live streaming server 13 transmits a media file (eg HEVC Encoding Files (* .mp4)) or a live relay image related to a real-time VR streaming service from the transcoder 12 to tiled encoding (HEVC) or encoding ( HEVC) can receive a media file.

라이브 미디어 수신기(310) 및 라이브 핸들 쓰레드(320)는 케이블망을 통해 전송되는 트랜스코더(12)로부터 MetaInfo와, HQ, MQ, FullMQ 미디어 파일들을 수신할 수 있다. 데싱 모듈(330)은 수신된 미디어 파일들에 대한 Dashing을 수행하고, 인덱스 매니저(370)는 DASHing된 미디어 파일 조각들에 대한 인덱싱을 수행할 수 있다. 데쉬 핸들 쓰레드(380) 및 데쉬 커넥터 모듈(390)은 클라이언트(14)와 통신 채널을 형성하고, 클라이언트 요청에 따라 MPEG-DASH 프로토콜에 맞추어 MPD(Media Presentation description) 파일 및 Segments 파일(*.m4s)을 제공할 수 있다. 상술한 프로세싱부(300)에 포함된 각 구성들은 역할(기능에) 따라 모듈화 될 수 있다. 프로세싱부(300)는 영상을 M4S(MPEG Dash Streaming) 파일로 분할하고, MPD 파일을 생성하는 Dashing 기능은 MPEG-DASH(ISO_IEC_23009)를 기준으로 수행할 수 있다. The live media receiver 310 and the live handle thread 320 may receive MetaInfo, HQ, MQ, and FullMQ media files from the transcoder 12 transmitted through the cable network. The desing module 330 may perform dashing on the received media files, and the index manager 370 may perform indexing on the dashed media file pieces. The dash handle thread 380 and the dash connector module 390 form a communication channel with the client 14, and media presentation description (MPD) files and segment files (* .m4s) according to the MPEG-DASH protocol according to the client's request. Can be provided. Each component included in the above-described processing unit 300 may be modularized according to a role (function). The processing unit 300 may divide the image into an M4S (MPEG Dash Streaming) file, and the Dashing function for generating the MPD file may be performed based on MPEG-DASH (ISO_IEC_23009).

Dashing 된 M4S 파일 및 MPD 파일을 클라이언트(14)에 제공하는 절차는 MPEG-DASH(ISO_IEC_23009)를 기준으로 수행되며, 클라이언트(14)에서 라이브 스트리밍 서버(13)로 요청하는 HTTP URI는 HTTP GET 프로토콜에 맞추어 라이브 스트리밍이 가능하도록 별도로 프로토콜(어플리케이션 패킷)을 기반으로 운용될 수 있다. The procedure for providing the dashed M4S file and the MPD file to the client 14 is performed based on MPEG-DASH (ISO_IEC_23009), and the HTTP URI requested from the client 14 to the live streaming server 13 is written to the HTTP GET protocol. It can be operated based on a protocol (application packet) separately to enable live streaming.

파일 시스템(340)은 도 2에서 설명한 메모리(140)에 저장되는 시스템으로서, 데싱된 파일을 저장할 수 있는 시스템으로 세팅될 수 있다.The file system 340 is a system stored in the memory 140 described with reference to FIG. 2, and may be set as a system capable of storing a hashed file.

도 4는 본 발명의 일 실시 예에 따른 라이브 스트리밍 서버의 수신부 구성의 일예를 나타낸 도면이다.4 is a diagram illustrating an example of a configuration of a receiver of a live streaming server according to an exemplary embodiment.

도 3 및 도 4를 참조하면, 라이브 스트리밍 서버(13)의 수신부는 라이브 미디어 수신기(310) 및 라이브 핸들 쓰레드(320)를 포함하고, HQ 수신기(321), MQ 수신기(322) 및 FullMQ 수신기(323)를 포함할 수 있다.3 and 4, the receiver of the live streaming server 13 includes a live media receiver 310 and a live handle thread 320, and includes an HQ receiver 321, an MQ receiver 322, and a FullMQ receiver ( 323).

라이브 스트리밍 서버(13)의 수신부는 트랜스코더(12)에서 HEVC Tiled Encoding된 HQ, MQ, FullMQ Media 파일과, MetaInfo 파일을 수신하여 Dashing, Indexing, Caching하는 역할을 수행할 수 있다.The receiver of the live streaming server 13 may receive the HQ, MQ, and FullMQ Media files and the MetaInfo file, which are HEVC Tiled Encoded by the transcoder 12, and perform Dashing, Indexing, and Caching.

이와 관련하여, 라이브 미디어 수신기(310)는 제1 통신 회로(110)를 기반으로 트랜스코더(12)와 통신 채널을 형성할 수 있다. 라이브 미디어 수신기(310)는 설정된 스케줄에 대응하여 트랜스코더(12)로부터 미디어 파일에 대응하는 MetaInfo를 수신할 수 있다. 라이브 미디어 수신기(310)는 수신된 MetaInfo를 라이브 핸들 쓰레드(320)에 전달할 수 있다. 예컨대, 라이브 미디어 수신기(310)는 트랜스코더(12)와 연결(Connection)이 이루어지면 해당 소켓 연결(Socket Connection)을 처리하기 위한 하위 쓰레드인 라이브 핸들 쓰레드(320)를 생성할 수 있다. In this regard, the live media receiver 310 may form a communication channel with the transcoder 12 based on the first communication circuit 110. The live media receiver 310 may receive MetaInfo corresponding to the media file from the transcoder 12 in response to the set schedule. The live media receiver 310 may deliver the received MetaInfo to the live handle thread 320. For example, when the live media receiver 310 is connected to the transcoder 12, the live media receiver 310 may generate a live handle thread 320, which is a lower thread for processing the socket connection.

라이브 핸들 쓰레드(320)는 MetaInfo파일을 수신하고, 해당 타임 스탬프를 기준으로 인덱스를 생성할 수 있다. 라이브 핸들 쓰레드(320)는 수신된 MetaInfo파일에서 Tiled Encoding된 Media File(또는 영상 조각들)을 파싱(Parsing)할 수 있다. 라이브 핸들 쓰레드(320)는 파싱된 미디어 파일들에 대하여 Indexing, Dashing, Caching을 수행할 하위 수신 쓰레드를 생성할 수 있다. 수신 쓰레드는 Callable 인터페이스로 구현되어 미디어 파일들에 대한 수신을 완료할 경우 자신을 생성한 라이브 핸들 쓰레드(320)로 그 결과를 리턴할 수 있다.The live handle thread 320 may receive a MetaInfo file and generate an index based on the corresponding time stamp. The live handle thread 320 may parse the tiled encoded media file (or image fragments) from the received MetaInfo file. The live handle thread 320 may create a lower receiving thread to index, parse, and cache parsed media files. The receiving thread may be implemented as a callable interface and may return the result to the live handle thread 320 which created itself when the receiving of the media files is completed.

라이브 핸들 쓰레드(320)는 모든 하위 수신 쓰레드에서 미디어 파일들에 대한 수신이 완료되면, MetaInfo파일을 참고하여 Media File에 대한 Dashing 작업을 수행할 수 있다. The live handle thread 320 may perform a dashing operation on the media file by referring to the MetaInfo file when the reception of the media files is completed in all the lower receiving threads.

라이브 핸들 쓰레드(320)는 Dashing된 결과를 MPD 매니저(350), 세그먼트 매니저(360), 인덱스 매니저(370)의 캐쉬들(예: MPD 캐쉬, 세그먼트 캐쉬, 인덱스 캐쉬)에 추가하여, 최신의 인덱싱에 해당하는 Dashing 파일을 캐쉬들에 캐싱(Caching)할 수 있다. 인덱스는 미디어 파일들을 수신하는 동안 획득된 타임 스탬프 값을 이용하여 설정될 수 있다. The live handle thread 320 adds the dashed result to the caches of the MPD manager 350, the segment manager 360, and the index manager 370 (eg, the MPD cache, the segment cache, and the index cache), so that the latest indexing is performed. Dashing file corresponding to can be cached in caches. The index may be set using the time stamp value obtained while receiving the media files.

캐쉬들은 FIFO(First In First Out) 구조로 설계될 수 있으며, Size(data 건수, 메모리 크기)는 Properties를 통해 설정될 수 있다. Caches can be designed in a First In First Out (FIFO) structure, and Size (number of data, memory size) can be set through Properties.

도 5는 본 발명의 일 실시 예에 따른 미디어 파일의 데싱 및 인덱싱 결과를 나타낸 도면이다.5 is a diagram illustrating a result of desing and indexing a media file according to an exemplary embodiment.

도 5를 참조하면, 미디어 파일 데싱 및 인덱싱 결과는 도시된 바와 같은 다양한 화면들로 표시될 수 있다. 예컨대, 라이브 스트리밍 서버(13)는 사용자 입력 또는 지정된 작업 처리 결과에 따라, 인덱싱 리스트가 출력되는 제1 화면(501), MPD 파일 리스트가 출력되는 제2 화면(503), 원래 파일 리스트가 출력되는 제3 화면(505) 중 적어도 하나를 출력할 수 있다. 또는, 라이브 스트리밍 서버(13)는 설정에 따라, 인덱스 리스트가 포함된 제1 영역, MPD 파일 리스트가 포함된 제2 영역 및 원래 파일 리스트가 포함된 제3 영역 중 적어도 하나를 포함하는 하나의 화면을 출력할 수도 있다.Referring to FIG. 5, the media file desing and indexing results may be displayed on various screens as shown. For example, the live streaming server 13 may output a first screen 501 on which an indexing list is output, a second screen 503 on which an MPD file list is output, and an original file list according to a user input or a specified job processing result. At least one of the third screens 505 may be output. Alternatively, the live streaming server 13 may include one screen including at least one of a first area including an index list, a second area including an MPD file list, and a third area including an original file list according to a setting. You can also output

이와 관련하여, 라이브 스트리밍 서버(13)는 디스플레이를 포함하고, 데싱 및 인덱싱된 결과 화면 중 적어도 하나의 화면을 출력할 수 있다. 또한, 라이브 스트리밍 서버(13)는 화면 제어와 관련한 사용자 입력을 수신하기 위하여 적어도 하나의 입력 장치를 포함할 수 있다. In this regard, the live streaming server 13 may include a display and output at least one screen of the resulted and indexed result screens. In addition, the live streaming server 13 may include at least one input device in order to receive a user input related to screen control.

도 6은 본 발명의 일 실시 예에 따른 MPD 매니저의 일 예를 나타낸 도면이다.6 is a diagram illustrating an example of an MPD manager according to an embodiment of the present invention.

도 6을 참조하면, 일 실시 예에 따른 MPD 매니저(350)는 제1 인덱스 리스트(351) 및 MPD 캐쉬(353)를 포함할 수 있다.Referring to FIG. 6, the MPD manager 350 according to an embodiment may include a first index list 351 and an MPD cache 353.

MPD 매니저(350)는 Dashing된 MPD 파일을 MPD 캐쉬(353)에 적재할 수 있다. 여기서, MPD 매니저(350)는 MPD 캐쉬(353)가 Full일 경우 오래된 MPD 파일을 MPD 캐쉬(353)에서 삭제하고, 새로운 MPD 파일을 MPD 캐쉬(353)에 적재할 수 있다. 또한 MPD 매니저(350)는 클라이언트(14)에서 MPD 파일의 요청이 있을 경우 필요한 MPD 파일을 MPD 캐쉬(353) 또는 지정된 파일(예: 트랜스코더(12)가 제공하고 메모리에 저장된 원본 파일)에서 로드(Load)하여 제공할 수 있다. The MPD manager 350 may load the dashed MPD file into the MPD cache 353. Here, when the MPD cache 353 is full, the MPD manager 350 may delete the old MPD file from the MPD cache 353 and load the new MPD file into the MPD cache 353. In addition, the MPD manager 350 loads the required MPD file from the MPD cache 353 or a designated file (for example, the original file provided by the transcoder 12 and stored in memory) when the client 14 requests the MPD file. Can be provided by loading.

MPD 캐쉬(353)는 Key/Value 형식의 해쉬맵(HashMap)으로 구성될 수 있다. 예컨대, Key는 해당 MPD의 Index이며, Value는 MPD 파일의 내용이며, Byte Array(byte[])가 될 수 있다. The MPD cache 353 may be configured as a hash map of a key / value type. For example, the key is the index of the MPD, the value is the contents of the MPD file, and may be a byte array (byte []).

MPD 매니저(350)는 제1 인덱스 리스트(351)를 사용하여 MPD 파일의 Caching 여부를 검색할 수 있다. MPD 매니저(350)는 제1 인덱스 리스트(351)의 마지막 번지의 해당하는 인덱스를 Delete Ptr로 정의하여, MPD 캐쉬(353)가 Full인 경우 Delete Ptr의 인덱스에 해당하는 key/value Cache Data를 해쉬맵에서 삭제할 수 있다.The MPD manager 350 may search for caching of the MPD file using the first index list 351. The MPD manager 350 defines a corresponding index of the last address of the first index list 351 as Delete Ptr, and hashes key / value Cache Data corresponding to the index of the Delete Ptr when the MPD cache 353 is Full. You can delete it from the map.

MPD 파일 탐색과 관련하여, MPD 매니저(350)는 인덱스 매니저(370)를 통하여 MPD 파일을 요청한 클라이언트(14)에 마지막으로 전송했던 MPD 인덱스의 다음 인덱스(Next Index)를 확인할 수 있다. 인덱스 매니저(370)는 다음 인덱스가 존재하지 않을 경우 기존 인덱스를 최신 인덱스로 판단할 수 있다. MPD 매니저(350)는 MPD 캐쉬(353)에서 MPD 파일을 먼저 탐색하고, 존재하지 않을 경우 파일(예: 메모리에 저장된 원본 파일)에서 MPD 파일을 읽어오고 이를 데쉬 핸들 쓰레드(380)에 리턴할 수 있다. In relation to the MPD file search, the MPD manager 350 may check the next index of the MPD index that was last transmitted to the client 14 requesting the MPD file through the index manager 370. The index manager 370 may determine the existing index as the latest index when the next index does not exist. The MPD manager 350 may first search for the MPD file in the MPD cache 353, and if it does not exist, read the MPD file from the file (eg, the original file stored in memory) and return it to the dash handle thread 380. have.

도 7은 본 발명의 일 실시 예에 따른 세그먼트 매니저의 일 예를 나타낸 도면이다.7 is a diagram illustrating an example of a segment manager according to an exemplary embodiment.

도 7을 참조하면, 일 실시 예에 따른 세그먼트 매니저(360)는 제2 인덱스 리스트(361), 세그먼트 캐쉬(363) 및 세그먼트 구조체(365)를 포함할 수 있다.Referring to FIG. 7, the segment manager 360 according to an embodiment may include a second index list 361, a segment cache 363, and a segment structure 365.

세그먼트 매니저(360)는 Dashing된 세그먼트 파일들(Segment Files)을 세그먼트 캐쉬(363)에 적재할 수 있다. 세그먼트 매니저(360)는 세그먼트 캐쉬(363)가 Full일 경우 오래된 인덱스에 해당하는 세그먼트 데이터들을 세그먼트 캐쉬(363)에 삭제하고, 현재 Dashing 된 세그먼트 파일들을 적재할 수 있다. 또한 세그먼트 매니저(360)는 클라이언트(14)에서 세그먼트 파일들을 요청하면, 필요한 세그먼트 파일들을 세그먼트 캐쉬(363) 또는 파일(예: 메모리에 저장된 원본 파일)에서 로드하여 클라이언트(14)에 제공할 수 있다. The segment manager 360 may load the dashed segment files into the segment cache 363. When the segment cache 363 is full, the segment manager 360 deletes the segment data corresponding to the old index into the segment cache 363 and loads the currently segmented segment files. In addition, when the segment manager 360 requests segment files from the client 14, the segment manager 360 may load necessary segment files from the segment cache 363 or a file (eg, an original file stored in memory) and provide the segment 14 to the client 14. .

세그먼트 캐쉬(363)는 Key/Value 형식의 해쉬맵(HashMap)으로 구성될 수 있다. Key는 인덱스(Index)이며, Value는 다시 Key/Value형식의 해쉬맵 구조를 가지며, 그 구조는 세그먼트 데이터 구조(SegmentData Structure) 에서와 같이, Key는 Filename, Value는 Byte Array(byte[]) 구조의 Data 구조를 가질 수 있다. The segment cache 363 may be configured as a hash map of a key / value type. Key is an index, and Value has a hash map structure of Key / Value type again. As in the segment data structure, Key is a Filename and Value is a Byte Array (byte []) structure. It can have a data structure of.

세그먼트 매니저(360)는 제2 인덱스 리스트(361)를 사용하여 세그먼트 파일의 Caching 여부를 검색할 수 있다. 세그먼트 매니저(360)는 제2 인덱스 리스트(361)의 마지막 번지의 해당하는 인덱스를 Delete Ptr로 정의하여, 세그먼트 캐쉬(363)가 Full인 경우 Delete Ptr의 인덱스에 해당하는 key/value Cache Data를 해쉬맵에서 삭제할 수 있다. The segment manager 360 may search whether the segment file is caching using the second index list 361. The segment manager 360 defines a corresponding index of the last address of the second index list 361 as Delete Ptr. When the segment cache 363 is Full, the segment manager 360 hashes the key / value Cache Data corresponding to the index of the Delete Ptr. You can delete it from the map.

도 8은 본 발명의 일 실시 예에 따른 인덱스 매니저의 일 예를 나타낸 도면이다.8 is a diagram illustrating an example of an index manager according to an exemplary embodiment.

도 8을 참조하면, 일 실시 예에 따른 인덱스 매니저(370)는 클라이언트 인덱스 맵(371) 및 제3 인덱스 리스트(373)를 포함할 수 있다.Referring to FIG. 8, an index manager 370 according to an embodiment may include a client index map 371 and a third index list 373.

인덱스 매니저(370)는 타임스탬프 기반의 인덱스를 생성 및 관리할 수 있다. 이와 관련하여, 인덱스 매니저(370)는 클라이언트 인덱스 맵(371)을 생성하고, 클라이언트 ID별로 제3 인덱스 리스트(373)(예: 마지막 인덱스)를 관리할 수 있다. The index manager 370 may generate and manage a time stamp-based index. In this regard, the index manager 370 may generate the client index map 371 and manage the third index list 373 (eg, the last index) for each client ID.

MPD 파일 탐색과 관련하여, 인덱스 매니저(370)는 클라이언트 인덱스 맵에 클라이언트 ID가 존재하지 않을 경우 최근 인덱스를 선택할 수 있다. 인덱스 매니저(370)는 선택된 인덱스의 MPD 파일을 MPD 매니저(350)에게 요청할 수 있다. In relation to the MPD file search, the index manager 370 may select a recent index when the client ID does not exist in the client index map. The index manager 370 may request the MPD manager 350 for the MPD file of the selected index.

세그먼트 파일 탐색과 관련하여, 인덱스 매니저(370)는 URI에 인덱스가 존재하는지 여부를 확인하고, 인덱스가 존재할 경우 해당 인덱스의 세그먼트 파일을 세그먼트 매니저(360)에게 요청할 수 있다. 인덱스가 존재 하지 않을 경우 인덱스 매니저(370)는 Client ID를 기준으로 클라이언트 인덱스 맵(ClientIndexMap)에서 현재 요청하는 인덱스를 확인하고, 세그먼트 매니저(360)에게 해당 인덱스의 세그먼트 파일을 요청할 수 있다. In relation to the segment file search, the index manager 370 may check whether the index exists in the URI, and if the index exists, request the segment manager 360 to request a segment file of the index. If the index does not exist, the index manager 370 may check the index currently requested by the client index map (ClientIndexMap) based on the Client ID, and may request the segment file of the index file from the segment manager 360.

인덱스 매니저(370)가 세그먼트 파일을 요청하면, 세그먼트 매니저(360)는 세그먼트 캐쉬(363) 검색을 수행할 수 있다. 세그먼트 캐쉬(363) 검색 시, 세그먼트 매니저(360)는 인덱스를 기준으로 세그먼트 리스트를 탐색하고, 다시 세그먼트 파일명(Segmentsfilename)을 기준으로 세그먼트 데이터를 검색할 수 있다. 세그먼트 매니저(360)는 검색 결과가 존재 하지 않을 경우 파일(예: 메모리에 저장된 원본 파일로서, DASH 작업 수행전 파일)에서 세그먼트 파일을 읽어와서, 이를 리턴(예: 인덱스 매니저에게 전달)할 수 있다. When the index manager 370 requests the segment file, the segment manager 360 may perform a segment cache 363 search. When searching for the segment cache 363, the segment manager 360 may search the segment list based on the index and search the segment data based on the segment file name. If the search result does not exist, the segment manager 360 may read the segment file from the file (eg, the original file stored in memory and the file before performing the DASH operation), and return the segment file to the index manager (for example, deliver it to the index manager). .

도 9는 본 발명의 일 실시 예에 따른 데쉬 커넥터 모듈의 한 예를 나타낸 도면이다.9 is a diagram illustrating an example of a dash connector module according to an embodiment of the present invention.

도 9를 참조하면, 일 실시 예에 따른 데쉬 커넥터 모듈(390)은 데쉬 라이브 연결 쓰레드(393) 및 데쉬 라이브 커넥터(391)를 포함할 수 있다. Referring to FIG. 9, the dash connector module 390 according to an embodiment may include a dash live connection thread 393 and a dash live connector 391.

데쉬 라이브 커넥터(391)는 클라이언트(14)로부터 HTTP 연결 요청을 수신하는 역할을 수행할 수 있다. 데쉬 라이브 커넥터(391)는 HTTP 연결 시, 데쉬 라이브 연결 쓰레드(393)를 생성하고, HTTP Connection을 데쉬 라이브 연결 쓰레드(393)에 전달하고 실행하는 역할을 수행할 수 있다. 데쉬 라이브 커넥터(391)는 멀티 쓰레드 소켓(MultiThread Socket)과 동일한 구조로 시스템이 허락하는 한도에서 적어도 하나의 연결(Connection) 요청을 수신할 수 있다.The dash live connector 391 may serve to receive an HTTP connection request from the client 14. The dash live connector 391 may generate a dash live connection thread 393 when transmitting an HTTP connection, and deliver and execute an HTTP connection to the dash live connection thread 393. The dash live connector 391 may receive at least one connection request in the same structure as that of the multithreaded socket.

데쉬 라이브 연결 쓰레드(393)는 데쉬 커넥터 모듈(391)에서 생성하는 서브 쓰레드로서, HTTP URI를 파싱하여 해당하는 Work을 수행하는 Thread를 포함할 수 있다. 데쉬 라이브 연결 쓰레드(393)는 예컨대, run( ), parseURI( ), sendClientID( ) 등의 함수를 운용할 수 있다. run ( )은 쓰레드의 코어 메서드로서, 파싱된 URI 메시지에 따라 클라이언트 ID 생성 및 전송, MPD 전송, Segment 전송, 인덱스 리스트 전송 여부를 결정할 수 있다. parseURI( )는 HTTP URI를 파싱하여 run( )에 제공할 수 있다. sendCientID( )는 run( )으로부터 클라이언트 ID, MPD, 세그먼트 파일, 인덱스 리스트 등을 수신하고, 수신된 정보를 해당 클라이언트(14)에 전송할 수 있다. sendClientID( ), sendMPD( ), sendSegment( ), sendIndexList( )는 각각 Client ID의 전송, MPD 파일의 전송, 세그먼트 파일들의 전송 및 인덱스 리스트의 전송을 수행할 수 있다.The hash live connection thread 393 is a sub thread generated by the hash connector module 391, and may include a thread for parsing an HTTP URI and performing a corresponding work. The dash live connection thread 393 may operate functions such as run (), parseURI (), sendClientID (), and the like. run () is a thread's core method, which can determine whether to generate and send a client ID, send an MPD, send a segment, or send an index list based on a parsed URI message. parseURI () can parse and provide an HTTP URI to run (). sendCientID () may receive a client ID, an MPD, a segment file, an index list, and the like from run (), and transmit the received information to the corresponding client 14. sendClientID (), sendMPD (), sendSegment (), and sendIndexList () can each transmit Client ID, MPD file, segment file, and index list.

도 10은 본 발명의 일 실시 예에 따른 라이브 스트리밍 시스템에서 라이브 스트리밍 서버와 클라이언트 간의 신호 흐름을 나타낸 도면이다.10 is a diagram illustrating a signal flow between a live streaming server and a client in a live streaming system according to an embodiment of the present invention.

도 10을 참조하면, 일 실시 예에 따른 라이브 스트리밍 서버(13) 및 클라이언트(14) 간의 신호 흐름과 관련하여, 1001 단계에서, 클라이언트(14)는 라이브 스트리밍 서버(13)에 Client ID를 요청할 수 있다. 예를 들어, 클라이언트(14)는 http://{ip_address}:{dash_live_port}/GET_CLIENT_ID 메시지를 라이브 스트리밍 서버(13)에 전송할 수 있다. 이에 대응하여, 라이브 스트리밍 서버(13)는 클라이언트(14)에 대응하는 Client ID를 생성하고, 1003 단계에서 Client ID를 클라이언트(14)에 전달할 수 있다. 예를 들어, 라이브 스트리밍 서버(13)는 af074e8c-2702-40b1-b0c8-657216394e24 값을 클라이언트(14)에 전달할 수 있다.Referring to FIG. 10, in relation to a signal flow between the live streaming server 13 and the client 14, in operation 1001, the client 14 may request a client ID from the live streaming server 13. have. For example, the client 14 may send a http: // {ip_address}: {dash_live_port} / GET_CLIENT_ID message to the live streaming server 13. In response, the live streaming server 13 may generate a Client ID corresponding to the client 14 and transmit the Client ID to the client 14 in step 1003. For example, the live streaming server 13 may deliver the af074e8c-2702-40b1-b0c8-657216394e24 value to the client 14.

클라이언트(14)는 1005 단계에서, MPD 파일을 라이브 스트리밍 서버(13)에 요청할 수 있다. 이와 관련하여, 클라이언트(14)는 http://{ip_address}:{dash_live_port}/GET_MPD?client_id=af074e8c-2702-40b1-b0c8-657216394e24를 포함하는 메시지를 라이브 스트리밍 서버(13)에 전송할 수 있다. The client 14 may request the MPD file from the live streaming server 13 in step 1005. In this regard, the client 14 may send a message to http: // {ip_address}: {dash_live_port} / GET_MPD? Client_id = af074e8c-2702-40b1-b0c8-657216394e24 to the live streaming server 13.

라이브 스트리밍 서버(13)는 1007 단계에서, 클라이언트(14)가 요청한 MPD 파일을 클라이언트(14)에 전송할 수 있다.The live streaming server 13 may transmit the MPD file requested by the client 14 to the client 14 in step 1007.

클라이언트(14)는 1009 단계에서, 라이브 스트리밍 서버(13)에 연속된 세그먼트 파일들을 요청할 수 있다. 이와 관련하여, 클라이언트(14)는 http://{ip_address}:{dash_live_port}/{segment_file_name}?cleint_id=af074e8c-2702-40b1-b0c8-657216394e24를 포함하는 메시지를 라이브 스트리밍 서버(13)에 전송할 수 있다. The client 14 may request consecutive segment files from the live streaming server 13 in step 1009. In this regard, the client 14 may send a message to http: // {ip_address}: {dash_live_port} / {segment_file_name}? Cleint_id = af074e8c-2702-40b1-b0c8-657216394e24 to the live streaming server 13. have.

라이브 스트리밍 서버(13)는 클라이언트(14)로부터 세그먼트 파일을 요청하는 메시지를 수신하면, 1011 단계에서, 해당 세그먼트 파일을 클라이언트(14)에 전송할 수 있다. 클라이언트(14)는 세그먼트 파일을 수신하면, 1013 단계에서, 연속된 세그먼트 파일들 중 마지막 세그먼트 파일(예: (N) Segment 파일)을 라이브 스트리밍 서버(13)에 요청할 수 있다. 라이브 스트리밍 서버(13)는 1015 단계에서, 대응되는 세그먼트 파일을 클라이언트(14)에 전달할 수 있다. 상술한 동작에서, 라이브 스트리밍 서버(13)는 이전 전송한 파일(예: MPD 파일 또는 세그먼트 파일들)의 마지막 인덱스 정보를 토대로 다음 파일의 전송을 수행할 수 있다. If the live streaming server 13 receives a message for requesting a segment file from the client 14, in operation 1011, the live streaming server 13 may transmit the corresponding segment file to the client 14. When the client 14 receives the segment file, in step 1013, the client 14 may request the live streaming server 13 for the last segment file (eg, an (N) segment file) of the consecutive segment files. The live streaming server 13 may deliver the corresponding segment file to the client 14 in step 1015. In the above-described operation, the live streaming server 13 may transmit the next file based on the last index information of the previously transmitted file (for example, the MPD file or the segment files).

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

도 11은 본 발명의 일 실시 예에 따른 라이브 스트리밍 시스템에서 트랜스코더와 라이브 스트리밍 서버간의 신호 흐름을 나타낸 도면이다.11 is a diagram illustrating a signal flow between a transcoder and a live streaming server in a live streaming system according to an embodiment of the present invention.

도 11을 참조하면, 일 실시 예에 따른 트랜스코더와 라이브 스트리밍 서버 간의 신호 흐름과 관련하여, 트랜스코더(12)는 1101 단계에서 라이브 스트리밍 서버(13)에 소켓 연결을 수행할 수 있다. 소켓 연결이 완료되면, 트랜스코더(12)는 1103 단계에서 MetaInfo 파일을 라이브 스트리밍 서버(13)에 전송할 수 있다. Referring to FIG. 11, in relation to a signal flow between a transcoder and a live streaming server, the transcoder 12 may perform a socket connection to the live streaming server 13 in step 1101. When the socket connection is completed, the transcoder 12 may transmit the MetaInfo file to the live streaming server 13 in step 1103.

라이브 스트리밍 서버(13)는 1105 단계에서, MetaInfo 파일 파싱 및 Media 파일 수신을 위한 서버 소켓(Server Socket) 생성을 수행할 수 있다. 라이브 스트리밍 서버(13)는 1107 단계에서 Media 파일 수신이 가능한 Server Socket Port 리스트를 응답 메시지로서 라이브 스트리밍 서버(13)에 전송할 수 있다. 라이브 스트리밍 서버(13)는 1109 단계에서 소켓을 닫을 수 있다. The live streaming server 13 may perform a server socket for parsing a MetaInfo file and receiving a media file in step 1105. The live streaming server 13 may transmit a server socket port list capable of receiving a media file as a response message to the live streaming server 13 in step 1107. The live streaming server 13 may close the socket in step 1109.

트랜스코더(12)는 1111 단계에서 스트리밍 서버(13)에 Media 파일 송신을 위한 소켓 연결을 수행할 수 있다. 트랜스코더(12)는 1113 단계에서 해당 소켓으로 Media 파일을 전송할 수 있다.The transcoder 12 may perform a socket connection for transmitting a media file to the streaming server 13 in step 1111. The transcoder 12 may transmit the media file to the corresponding socket in step 1113.

라이브 스트리밍 서버(13)는 1115 단계에서 미디어 파일들의 수신을 완료하고, 소켓을 닫을 수 있다.The live streaming server 13 may complete reception of the media files in step 1115 and close the socket.

상술한 트랜스코더(12)와 라이브 스트리밍 서버(13) 간 주고 받는 패킷의 구조는 다음 표 1에서와 같이 Payload Header (8byte)와 Payload (Nbyte)로 구성될 수 있다.The structure of the packet transmitted and received between the transcoder 12 and the live streaming server 13 may include a payload header (8 bytes) and a payload (Nbyte) as shown in Table 1 below.

Payload Header (8byte)Payload Header (8byte) Payload (Nbyte)Payload (Nbyte)

Payload Header는 다음 표 2에서와 같이 Payload의 Type, Payload의 길이 각 4byte, 총 8byte로 구성될 수 있다.The payload header may be composed of a payload type, a payload length of 4 bytes, and a total of 8 bytes, as shown in Table 2 below.

Payload Header (8byte)Payload Header (8byte) Payload Type (4byte)Payload Type (4byte) Payload Length (4byte)Payload Length (4byte)

트랜스코더 to 라이브 스트리밍 서버 Payload Type 정의이 아래와 같다.Transcoder to live streaming server Payload Type definition is as below.

트랜스코더(12)에서 라이브 스트리밍 서버(13)로 전송하는 Payload Type은 총 4가지(MetaInfo, MainHQ, MainMQ, FullMQ)를 포함할 수 있다. Payload Type 코드는 Big Decimal 4byte Integer 자료형으로 정의할 수 있으나, 코드 값은 변경 될 수 있다. The payload type transmitted from the transcoder 12 to the live streaming server 13 may include a total of four types (MetaInfo, MainHQ, MainMQ, FullMQ). Payload Type code can be defined as Big Decimal 4 byte Integer data type, but code value can be changed.

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

11 : 라이브 미디어 소스
12 : 트랜스코더
13 : 라이브 스트리밍 서버
14 : 클라이언트
11: Live Media Source
12: transcoder
13: live streaming server
14: Client

Claims (6)

미디어 파일을 제공하는 트랜스코더와 통신 채널을 형성하는 제1 통신 회로;
클라이언트 단말과 통신 채널을 형성하는 제2 통신 회로;
상기 미디어 파일 및 상기 미디어 파일을 DASH(Dynamic Adaptive Streaming over HTTP) 처리한 미디어 파일 조각들을 저장하는 메모리; 및
상기 제1 통신 회로, 상기 제2 통신 회로 및 상기 메모리에 전기적으로 연결되는 프로세싱부;를 포함하고,
상기 프로세싱부는
수신된 미디어 파일을 DASH 처리하면서 생성된 MPD(Media Presentation Description) 파일 및 세그먼트 파일들에 대한 인덱싱을 수행하고,
상기 클라이언트의 ID별 인덱스 리스트를 관리하고,
상기 클라이언트 요청에 따라 MPEG-DASH(Moving Picture Experts Group - Dynamic Adaptive Streaming over HTTP) 기반으로 상기 MPD 파일 및 상기 세그먼트 파일들을 상기 클라이언트에 전송하는 동안, 상기 인덱스 리스트를 기반으로, 이전 전송된 세그머트 파일의 인덱스 정보를 참조하여 다음 세그먼트 파일을 전송하도록 설정된 라이브 스트리밍 서버 장치.
First communication circuitry forming a communication channel with a transcoder that provides a media file;
Second communication circuitry forming a communication channel with a client terminal;
A memory for storing the media file and pieces of media file obtained by processing the media file with DASH (Dynamic Adaptive Streaming over HTTP); And
And a processing unit electrically connected to the first communication circuit, the second communication circuit, and the memory.
The processing unit
Indexing a media presentation description (MPD) file and segment files generated while DASHing the received media file,
Manage the index list by ID of the client,
While transferring the MPD file and the segment files to the client on the basis of the Moving Picture Experts Group-Dynamic Adaptive Streaming over HTTP (MPEG-DASH) according to the client request, based on the index list, a previously transmitted segment file Live streaming server device set to transfer the next segment file by referring to the index information of the.
제1항에 있어서,
상기 프로세싱부는
케이블 인터페이스를 지원하는 상기 제1 통신 회로를 기반으로 상기 트랜스코더로부터 상기 미디어 파일을 수신하도록 설정된 라이브 스트리밍 서버 장치.
The method of claim 1,
The processing unit
Live streaming server device configured to receive the media file from the transcoder based on the first communication circuitry supporting a cable interface.
제1항에 있어서,
상기 프로세싱부는
상기 트랜스코더로부터 HEVC Tiled Encoding 된 미디어 파일을 수신하되, 다양한 해상도의 공간 분할된 미디어 파일들을 수신하도록 설정된 라이브 스트리밍 서버 장치.
The method of claim 1,
The processing unit
And receiving a HEVC Tiled Encoded media file from the transcoder, and receiving spatially divided media files of various resolutions.
제1항에 있어서,
상기 프로세싱부는
상기 미디어 파일 수신과 관련한 타임 스탬프 정보를 기반으로 상기 인덱스 정보를 생성하도록 설정된 라이브 스트리밍 서버 장치.
The method of claim 1,
The processing unit
And generating the index information based on time stamp information associated with receiving the media file.
제1항에 있어서,
상기 프로세싱부는
상기 클라이언트 요청에 따라 Client ID를 생성하고, 상기 Client ID를 기반으로 상기 MPD 파일, 상기 세그먼트 파일들 및 상기 인덱스 정보를 상기 클라이언트에 전송하도록 설정된 라이브 스트리밍 서버 장치.
The method of claim 1,
The processing unit
And generate a Client ID according to the client request, and transmit the MPD file, the segment files, and the index information to the client based on the Client ID.
트랜스코더로부터 HEVC Tiled Encoding된 미디어 파일을 라이브 스트리밍 서버가 수신하는 단계,
수신된 미디어 파일을 DASH 처리하여 MPD(Media Presentation Description) 파일 및 세그먼트 파일을 생성하면서 각 MPD 파일 및 세그먼트 파일들에 대한 인덱싱을 수행하는 단계, 및
클라이언트 요청에 따라 상기 MPD 파일 및 상기 세그먼트 파일들을 전송하는 단계를 포함하고,
상기 인덱싱 수행 이후 상기 클라이언트의 ID별 인덱스 리스트를 관리하는 단계;를 더 포함하고,
상기 전송하는 단계는
상기 인덱스 리스트를 기반으로, 이전 전송한 세그먼트 파일의 인덱스를 참조하여 다음 세그먼트 파일을 전송하도록 설정하는 단계를 포함하는 라이브 스트리밍 서버 장치의 운용 방법.

Receiving, by the live streaming server, the HEVC Tiled Encoded media file from the transcoder,
DASH processing the received media file to generate MPD (Media Presentation Description) file and segment file while indexing each MPD file and segment file, and
Transmitting the MPD file and the segment files according to a client request,
And managing the index list for each ID of the client after performing the indexing.
The transmitting step
And setting to transmit the next segment file based on the index of the previously transmitted segment file based on the index list.

KR1020170161380A 2017-11-29 2017-11-29 Live Steaming Server device and operating method thereof KR102024642B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170161380A KR102024642B1 (en) 2017-11-29 2017-11-29 Live Steaming Server device and operating method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170161380A KR102024642B1 (en) 2017-11-29 2017-11-29 Live Steaming Server device and operating method thereof

Publications (2)

Publication Number Publication Date
KR20190062815A KR20190062815A (en) 2019-06-07
KR102024642B1 true KR102024642B1 (en) 2019-09-24

Family

ID=66850255

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170161380A KR102024642B1 (en) 2017-11-29 2017-11-29 Live Steaming Server device and operating method thereof

Country Status (1)

Country Link
KR (1) KR102024642B1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110324727A (en) * 2019-07-16 2019-10-11 浙江大华技术股份有限公司 Computer readable storage medium, server and its method for responding playing request
KR102438747B1 (en) 2021-03-31 2022-08-31 인하대학교 산학협력단 Method and apparatus for allocating quality-aware transcoding task under limited power in live-streaming systems

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6105741B2 (en) * 2012-10-26 2017-03-29 インテル・コーポレーション Streaming with video orientation adjustment (CVO)
US9426196B2 (en) * 2013-01-04 2016-08-23 Qualcomm Incorporated Live timing for dynamic adaptive streaming over HTTP (DASH)
KR101764317B1 (en) 2016-11-03 2017-08-02 주식회사 헤카스 Streaming server, streaming system and streaming method

Also Published As

Publication number Publication date
KR20190062815A (en) 2019-06-07

Similar Documents

Publication Publication Date Title
US10616301B2 (en) Request-based encoding for streaming content portions
US20140165119A1 (en) Offline download method, multimedia file download method and system thereof
US20190124411A1 (en) Media streaming system supporting several streaming engines and using content addressing
CN108449633B (en) Set top box cloud system based on NFV and service implementation method
JP2016508348A (en) Using quality information for adaptive streaming of media content
GB2477642A (en) Selection of a streaming server which stores the required content in the highest (fastest access) hierarchical storage layer.
CN102547478A (en) Triggered slice on-demand system and method of streaming media based on CDN (Content Distribution Network)
KR102030983B1 (en) Operating Method for Live Streaming Service based on Tiled Encoding image and electronic device supporting the same
US20200236417A1 (en) System and method for storing multimedia files using an archive file format
CN113141522A (en) Resource transmission method, device, computer equipment and storage medium
KR102024642B1 (en) Live Steaming Server device and operating method thereof
US10917477B2 (en) Method and apparatus for MMT integration in CDN
CN108271039B (en) File sending method and device
CN116636224A (en) System and method for replacing networking application program service
KR102007669B1 (en) Video on demand Server device for internet broadcasting and operating method thereof
KR102123070B1 (en) Video on Demand Steaming Server device and operating method thereof
KR101615138B1 (en) Method for providing web application contents, server and system
US20230171441A1 (en) Method providing to a user terminal a target multimedia content available at a master server
KR102721903B1 (en) Client-based storage of remote element resolutions
US11523156B2 (en) Method and system for distributing an audiovisual content
US20210204018A1 (en) Content distribution system using broadcast network
US10904309B1 (en) Managing storage and transmission data size in video packaging systems
KR101565137B1 (en) Method for providing wireless streaming service and apparatus therefor
KR101366031B1 (en) Method for managing cache server and apparatus thereof
CN118202345A (en) Method for performing bandwidth switching by CMAF (customer premise Equipment) and DASH (dynamic access network) clients by using addressable resource index tracks and events

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant