KR20220071057A - 미디어 스트리밍 제어 장치 및 방법 - Google Patents

미디어 스트리밍 제어 장치 및 방법 Download PDF

Info

Publication number
KR20220071057A
KR20220071057A KR1020200158263A KR20200158263A KR20220071057A KR 20220071057 A KR20220071057 A KR 20220071057A KR 1020200158263 A KR1020200158263 A KR 1020200158263A KR 20200158263 A KR20200158263 A KR 20200158263A KR 20220071057 A KR20220071057 A KR 20220071057A
Authority
KR
South Korea
Prior art keywords
file
segment
encoded
segment file
transmitting terminal
Prior art date
Application number
KR1020200158263A
Other languages
English (en)
Other versions
KR102419087B1 (ko
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 KR1020200158263A priority Critical patent/KR102419087B1/ko
Publication of KR20220071057A publication Critical patent/KR20220071057A/ko
Application granted granted Critical
Publication of KR102419087B1 publication Critical patent/KR102419087B1/ko

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/235Processing of additional data, e.g. scrambling of additional data or processing content descriptors
    • H04N21/2353Processing of additional data, e.g. scrambling of additional data or processing content descriptors specifically adapted to content descriptors, e.g. coding, compressing or processing of metadata
    • 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/234363Processing 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 altering the spatial resolution, e.g. for clients with a lower screen resolution
    • 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/234381Processing 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 altering the temporal resolution, e.g. decreasing the frame rate by frame skipping
    • 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/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2402Monitoring of the downstream path of the transmission network, e.g. bandwidth available

Landscapes

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

Abstract

본 발명은 DASH(Dynamic Adaptive Streaming over HTTP) 스트리밍을 다자간 스트리밍에 적용하는 미디어 스트리밍 제어 장치 및 방법에 관한 것이다.
본 발명의 일 실시 예에 따른 미디어 스트리밍 제어 방법은, 다자간 스트리밍을 지원하는 미디어 스트리밍 제어 장치의 미디어 스트리밍 제어 방법으로서, 적어도 하나의 수신측 단말이 다운링크 네트워크 상황을 바탕으로 생성한 요청 MPD 파일을 수신하는 단계와, 적어도 하나의 송신측 단말에 요청 MPD 파일을 전송하는 단계와, 적어도 하나의 송신측 단말이 촬영한 미디어 프레임을 요청 MPD 파일에 기반하여 인코딩한 세그먼트 파일들을 수신하여 저장하는 단계와, 적어도 하나의 수신측 단말이 현재의 스트리밍 상황을 바탕으로 재생 품질을 보장하도록 생성한 요청 세그먼트 파일을 수신하는 단계와, 저장된 인코딩한 세그먼트 파일들로부터 요청 세그먼트 파일에 대응하도록 인코딩한 세그먼트 파일을 응답 세그먼트 파일로 추출하고, 적어도 하나의 수신측 단말에 응답 세그먼트 파일을 전송하는 단계를 포함할 수 있다.

Description

미디어 스트리밍 제어 장치 및 방법{APPARATUS FOR MEDIA STREAMING CONTROL AND METHOD THEREFOR}
본 발명은 DASH(Dynamic Adaptive Streaming over HTTP) 스트리밍을 다자간 스트리밍에 적용하는 미디어 스트리밍 제어 장치 및 방법에 관한 것이다.
최근 네트워크 기술이 발전하고 이동 통신 보급률이 높아짐에 따라 이동성이 편리한 기기들의 보급률이 대폭 증가하면서도 더욱 크고 많은 용량의 데이터를 보다 더 짧은 시간에 주고 받을 수 있으며 동시에 어디서든 인터넷을 접속하고 미디어 접근이 용이해짐에 따라 영상 스트리밍 수요가 급증하고 있다.
실시간 미디어(예를 들어, 비디오, 오디오 등) 스트리밍 프로토콜들(예를 들어, WebRTC, RTMP)은 일대일 스트리밍 시에 급변하는 네트워크 상황에서도 적응적으로 전송량을 조절하여 서비스 품질(예를 들어, 저지연, 끊김 현상 방지, 비디오/오디오 품질)을 높게 유지하도록 설계되었다.
화상 회의, 원격 교육 등 다자간 스트리밍을 가능하게 하기 위해, 미디어 서버(예를 들어, SFU)는 각 사용자와 실시간 스트리밍 프로토콜로 연결을 맺고 사용자들 간에 비디오를 전달하는 역할을 담당한다.
그러나 다자간 스트리밍 상황에서는 독립적인 다운링크와 업링크 동작으로 다운링크의 정보를 업링크에 전달하지 못하며, 전송량 조절 시에 여러 사용자의 상황을 종합적으로 판단해야 하기 때문에, 일대일 스트리밍 상황에서 가능했던 서비스 품질 달성에 한계가 있다.
전술한 배경기술은 발명자가 본 발명의 도출을 위해 보유하고 있었거나, 본 발명의 도출 과정에서 습득한 기술 정보로서, 반드시 본 발명의 출원 전에 일반 공중에게 공개된 공지기술이라 할 수는 없다.
국내 등록특허공보 제10-1467700호(2014.11.25)
본 발명의 일 과제는, 다자간 스트리밍 상황에서 송신측 단말이 수신측 단말의 다운링크 정보를 반영하지 못하는 종래기술의 문제점을 해결하는데 있다.
본 발명의 일 과제는, DASH 스트리밍을 다자간 스트리밍에 적용하여, 송신측 단말이 수신측 단말의 다운링크 정보를 반영함으로써 미디어 스트림의 전송량 조절을 통해 서비스 품질을 높게 유지하는데 있다.
본 발명이 해결하고자 하는 과제는 이상에서 언급한 과제에 한정되지 않으며, 언급되지 않은 본 발명의 다른 과제 및 장점들은 하기의 설명에 의해서 이해될 수 있고, 본 발명의 실시 예에 의해보다 분명하게 이해될 것이다. 또한, 본 발명이 해결하고자 하는 과제 및 장점들은 특허 청구 범위에 나타낸 수단 및 그 조합에 의해 실현될 수 있음을 알 수 있을 것이다.
본 발명의 일 실시 예에 따른 미디어 스트리밍 제어 방법은, 다자간 스트리밍을 지원하는 미디어 스트리밍 제어 장치의 미디어 스트리밍 제어 방법으로서, 적어도 하나의 수신측 단말이 다운링크 네트워크 상황을 바탕으로 생성한 요청 MPD 파일을 수신하는 단계와, 적어도 하나의 송신측 단말에 요청 MPD 파일을 전송하는 단계와, 적어도 하나의 송신측 단말이 촬영한 미디어 프레임을 요청 MPD 파일에 기반하여 인코딩한 세그먼트 파일들을 수신하여 저장하는 단계와, 적어도 하나의 수신측 단말이 현재의 스트리밍 상황을 바탕으로 재생 품질을 보장하도록 생성한 요청 세그먼트 파일을 수신하는 단계와, 저장된 인코딩한 세그먼트 파일들로부터 요청 세그먼트 파일에 대응하도록 인코딩한 세그먼트 파일을 응답 세그먼트 파일로 추출하고, 적어도 하나의 수신측 단말에 응답 세그먼트 파일을 전송하는 단계를 포함할 수 있다.
본 발명의 일 실시 예에 따른 미디어 스트리밍 제어 장치는, 프로세서 및 프로세서와 동작 가능하게 연결되고 프로세서에서 수행되는 적어도 하나의 코드를 저장하는 메모리를 포함하고, 메모리는 프로세서를 통해 실행될 때, 프로세서가 적어도 하나의 수신측 단말이 다운링크 네트워크 상황을 바탕으로 생성한 요청 MPD(media presentation description) 파일을 수신하고, 적어도 하나의 송신측 단말에 요청 MPD 파일을 전송하고, 적어도 하나의 송신측 단말이 촬영한 미디어 프레임을 요청 MPD 파일에 기반하여 인코딩한 세그먼트 파일들을 수신하여 저장하고, 적어도 하나의 수신측 단말이 현재의 스트리밍 상황을 바탕으로 재생 품질을 보장하도록 생성한 요청 세그먼트 파일을 수신하고, 저장된 인코딩한 세그먼트 파일들로부터 요청 세그먼트 파일에 대응하도록 인코딩한 세그먼트 파일을 응답 세그먼트 파일로 추출하고, 적어도 하나의 수신측 단말에 응답 세그먼트 파일을 전송하도록 야기하는 코드를 저장할 수 있다.
이 외에도, 본 발명을 구현하기 위한 다른 방법, 다른 시스템 및 상기 방법을 실행하기 위한 컴퓨터 프로그램이 저장된 컴퓨터로 판독 가능한 기록매체가 더 제공될 수 있다.
전술한 것 외의 다른 측면, 특징, 이점이 이하의 도면, 특허청구범위 및 발명의 상세한 설명으로부터 명확해질 것이다.
본 발명에 의하면, 다자간 스트리밍 상황에서 송신측 단말이 수신측 단말의 다운링크 정보를 반영하지 못하는 종래기술의 문제점을 해결할 수 있다.
또한, DASH 스트리밍을 다자간 스트리밍에 적용하여, 송신측 단말이 수신측 단말의 다운링크 정보를 반영함으로써 미디어 스트림의 전송량 조절을 통해 서비스 품질을 높게 유지할 수 있다.
본 발명의 효과는 이상에서 언급된 것들에 한정되지 않으며, 언급되지 아니한 다른 효과들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
도 1은 DASH 스트리밍을 설명하는 예시도이다.
도 2는 본 실시 예에 따른 미디어 스트리밍 제어 장치와, 수신측 단말과 송신층 단말을 포함하는 미디어 스트리밍 제어 환경의 예시도 이다.
도 3은 도 2 중 미디어 스트리밍 제어 장치의 구성을 개략적으로 설명하기 위하여 도시한 블록도 이다.
도 4는 다른 실시 예에 따른 미디어 스트리밍 제어 장치와, 수신측 단말과 송신측 단말의 구성을 개략적으로 설명하기 위하여 도시한 블록도 이다.
도 5는 본 실시 예에 따른 미디어 스트리밍 제어 방법을 설명하기 위한 흐름도이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 설명되는 실시 예들을 참조하면 명확해질 것이다. 그러나 본 발명은 아래에서 제시되는 실시 예들로 한정되는 것이 아니라, 서로 다른 다양한 형태로 구현될 수 있고, 본 발명의 사상 및 기술 범위에 포함되는 모든 변환, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 아래에 제시되는 실시 예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이다. 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
본 출원에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다. 제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
이하, 본 발명에 따른 실시 예들을 첨부된 도면을 참조하여 상세히 설명하기로 하며, 첨부 도면을 참조하여 설명함에 있어, 동일하거나 대응하는 구성 요소는 동일한 도면번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.
RTP/RTSP로 대표되는 기존의 IP 기반 스트리밍 기술은 대역폭이 가변적인 인터넷 망 환경에서 양질의 멀티미디어를 끊김 없이 제공하는 데에 한계가 있다. 이러한 문제점을 해결하기 위하여 등장한 DASH 기술은, 다양한 품질의 콘텐트를 일정한 시간단위의 조각으로 잘라 서버에 자장하며, 사용자 디바이스의 미디어 요청 시에 잘려진 데이터 단위를 HTTP 프로토콜을 이용하여 전송할 수 있다. 여기서 유동적인 HTTP망 상태를 고려하여 다양한 품질로 서버에 저장되어 있는 미디어 콘텐트를 선택적으로 전송하게 됨으로써, 사용자는 끊김 없는 적응적 스트리밍 서비스를 받아볼 수 있게 된다.
도 1은 DASH 스트리밍을 설명하는 예시도이다. 도 1을 참조하여 Dash 스트리밍을 설명하면, 컨텐트 서버(CND, content delivery network)가 미디어 컨텐트를 여러 해상도의 세그먼트 파일 저장하면, 각각의 수신단이 자신의 네트워크 상황에 맞게 알맞은 세그먼트 파일을 실시간으로 요청하여 스트리밍하는 것이다.
이와 같은 DASH 기술은 서버에 저장된 미디어 데이터에 대한 정보를 XML(extensible markup language) 형식으로 기술하고 있는 MPD(media presentation description) 파일과, 이에 상응하는 미디어 파일의 조각인 세그먼트로 구성될 수 있다.
MPD 파일은 스트리밍 서비스를 목적으로 미디어 콘텐트에 관한 정보를 제공하는 XML 형식의 데이터이고, 세그먼트는 사용자의 요청 시, HTTP 경로를 통하여 제공될 수 있는 일정 시간으로 잘려진 미디어 데이터의 최소단위일 수 있다. 다시 말해, 유동적인 인터넷 망 상태에서 신속히 대응하기 위해서 전체 콘텐트 파일을 적당한 크기의 조각으로 나누어 서버에 저장시켜 두고, 이렇게 조각난 파일들을 어떻게 순차적으로 가져와서 재생할 것인지에 대한 정보를 별도의 파일로 만들어서 서버에 올려두어야 하는데 이것이 MPD 파일이 되는 것이다. MPD 파일에는 해당 세그먼트에 상응하는 콘텐트 시간 상의 위치, URL(uniform resource locator), 크기 등 사용자가 사전에 인지해야 할 정보를 포함할 수 있다.
DASH 스트리밍은 서버와 사용자간의 HTTP 통신을 통해 이루어질 수 있다. 우선, 서버에는 다양한 품질로 생성된 미디어 파일이 일정한 조각으로 잘려진 세그먼트 형태로 저장되어 있고, 이러한 세그먼트에 관한 정보를 담고 있는 MPD 역시 서버에 저장될 수 있다. 서버와 사용자간의 통신은 HTTP 프로토콜을 이용하여 사용자의 요청과 이에 대한 서버의 응답을 통해 이루어질 수 있다.
최초에 사용자는 서버에 MPD 파일을 요청하게 되고, 전달된 MPD 파일을 통해 서버에 저장되어 있는 해당 파일에 관한 정보를 인식하여 원하는 콘텐트에 대한 세그먼트 파일을 요청할 수 있다. 이에 서버는 요청된 세그먼트 파일을 네트워크 환경에 적응적으로 사용자에게 제공함으로써 DASH 스트리밍이 이루어진다.
이러한 DASH 스트리밍의 경우, 다자간 스트리밍 상황에서는 송신단이 수신단의 다운링크 정보를 반영하지 못하기 때문에, 수신측이 미디어를 재생할 때 품질이 떨어지는 상황이 발생할 수 있다.
도 2는 본 실시 예에 따른 미디어 스트리밍 제어 장치와, 수신측 단말과 송신측 단말을 포함하는 미디어 스트리밍 제어 환경의 예시도 이다. 이하의 설명에서 도 1에 대한 설명과 중복되는 부분은 그 설명을 생략하기로 한다. 도 2를 참조하면, 미디어 스트리밍 제어 환경(1)은 미디어 스트리밍 제어 장치(100), 수신측 단말(200), 송신측 단말(300) 및 네트워크(400)를 포함할 수 있다.
본 실시 예에서 미디어 스트리밍 제어 장치(100)는 다자간에 미디어 스트리밍의 지원을 제어할 수 있다. 여기서 다자간이란, 적어도 하나의 수신측 단말(200)과 적어도 하나의 송신측 단말(300)을 포함할 수 있다. 예를 들어, 미디어 스트리밍 제어 장치(100)는 복수개의 단말 중 일부를 수신측 단말(200)이 되고, 나머지는 송신측 단말(300)이 되어 이들 간에 미디어 스트리밍의 지원을 제어할 수 있다. 이후, 설명의 편의상 적어도 하나의 수신측 단말(200)을 수신측 단말(200)로 표현하고, 적어도 하나의 송신측 단말(300)을 송신측 단말(200)로 표현하기로 한다.
미디어 스트리밍 제어 장치(100)는 수신측 단말(200)의 제1 요청에 대응하여, 송신측 단말(300)이 촬영하여 인코딩한 여러 품질(예를 들어, high 퀄리티의 해상도, medium 퀄리티의 해상도, low 퀄리티의 해상도)의 인코딩한 세그먼트 파일을 저장하고 있다가, 수신측 단말(200)의 제2 요청 수신에 대응하여 수신측 단말(200)이 요청한 인코딩한 세그먼트 파일을 수신측 단말(200)에 전송할 수 있다.
여기서, 미디어 스트리밍 제어 장치(100)는 수신측 단말(200)로부터 제1 요청 및 제2 요청을 수신할 수 있다. 즉, 수신측 단말(200)은 미디어 스트리밍 제어 장치(100)로 제1 요청 및 제2 요청을 전송하고 응답을 기다릴 수 있다.
여기서, 제1 요청(후술하는 요청 MPD 파일)은, 수신측 단말(200)이 다운링크 네트워크 상황을 바탕으로 하여 생성할 수 있으며, 원하는 해상도와 원하는 비트레이트와, 원하는 송신자를 포함하는 세그먼트 파일의 수신을 요청하는 신호일 수 있다.
또한, 제2 요청(후술하는 요청 세그먼트 파일)은, 제1 요청 이후 현재의 스트리밍 상황을 바탕으로 재생 품질을 보장하도록 생성할 수 있으며, 현재 스트리밍 상황에 적합한 해상도와, 비트레이트와, 송신자를 포함하는 인코딩한 세그먼트 파일의 수신을 요청하는 신호일 수 있다.
미디어 스트리밍 제어 장치(100)는 제1 요청에 대응하여 송신측 단말(300)로부터 여러 품질의 인코딩한 세그먼트 파일을 수신하여 저장하고 있다가, 제2 요청에 대응하여 현재의 스트리밍 상태에 적합한 품질의 인코딩한 세그먼트 파일을 수신측 단말(200)에 전송할 수 있다. 이는 제1 요청 이후 네트워크 상황이 급변하는 상태에서 수신측 단말(200)이 인코딩한 세그먼트 파일을 수신하여 재생하는 경우, 끊김 및 지연현상이 발생하여 수신자 입장에서 불편함을 느낄 수 있다. 따라서, 일단 원하는 세그먼트 파일을 요청하고 나서, 실질적으로 인코딩한 세그먼트 파일을 수신하기 전에, 당시 네트워크 환경을 반영한 세그먼트 파일을 다시 요청하고 네트워크 환경에 적합한 세그먼트 파일을 수신함으로써, 재생 시에 끊김 및 지연현상이 없어 수신자 입장에서 만족감을 느낄 수 있다.
이와 같이 다자간 스트리밍 상황에서 미디어 스트리밍 제어 장치(100)가 수신단(수신측 단말(200))의 다운링크 정보를 반영하여 송신단(송신측 단말(300))을 제어하고 수신단으로 미디어를 전송하기 때문에, 종래와 같이 송신단이 수신단의 다운링크 정보를 반영하지 못하여 수신단이 미디어 재생 시에 품질이 떨어지는 상황이 발생하지 않게 된다.
본 실시 예에서 수신측 단말(200) 및 송신측 단말(300)은, 컴퓨팅 장치(미도시)의 기능을 수행할 수 있는 통신 단말기를 포함할 수 있으며, 수신자 및 송신자가 조작하는 데스크 탑 컴퓨터, 스마트폰, 태블릿 PC, 노트북, 스마트 TV, 휴대폰, PDA(personal digital assistant), 랩톱, 미디어 플레이어, 마이크로 서버, GPS(global positioning system) 장치, 전자책 단말기, 디지털방송용 단말기, 네비게이션, 키오스크, MP3 플레이어, 디지털 카메라, 가전기기 및 기타 모바일 또는 비모바일 컴퓨팅 장치일 수 있으나, 이에 제한되지 않는다. 또한, 수신측 단말(200) 및 송신측 단말(300)은 통신 기능 및 데이터 프로세싱 기능을 구비한 시계, 안경, 헤어 밴드 및 반지 등의 웨어러블 단말기 일 수 있다. 이러한 수신측 단말(200) 및 송신측 단말(300)은 상술한 내용에 제한되지 아니하며, 웹 브라우징이 가능한 단말기는 제한 없이 차용될 수 있다.
네트워크(400)는 미디어 스트리밍 제어 장치(100)와, 수신측 단말(200) 및 송신측 단말(300)을 연결하는 역할을 수행할 수 있다. 이러한 네트워크(400)는 예컨대 LANs(local area networks), WANs(wide area networks), MANs(metropolitan area networks), ISDNs(integrated service digital networks) 등의 유선 네트워크나, 무선 LANs, CDMA, 블루투스, 위성 통신 등의 무선 네트워크를 망라할 수 있으나, 본 발명의 범위가 이에 한정되는 것은 아니다. 또한 네트워크(400)는 근거리 통신 및/또는 원거리 통신을 이용하여 정보를 송수신할 수 있다. 여기서, 근거리 통신은 블루투스(bluetooth), RFID(radio frequency identification), 적외선 통신(IrDA, infrared data association), UWB(ultra-wideband), ZigBee, Wi-Fi (wireless fidelity) 기술을 포함할 수 있고, 원거리 통신은 CDMA(code division multiple access), FDMA(frequency division multiple access), TDMA(time division multiple access), OFDMA(orthogonal frequency division multiple access), SC-FDMA(single carrier frequency division multiple access) 기술을 포함할 수 있다.
네트워크(400)는 허브, 브리지, 라우터, 스위치와 같은 네트워크 요소들의 연결을 포함할 수 있다. 네트워크(400)는 인터넷과 같은 공용 네트워크 및 안전한 기업 사설 네트워크와 같은 사설 네트워크를 비롯한 하나 이상의 연결된 네트워크들, 예컨대 다중 네트워크 환경을 포함할 수 있다. 네트워크(400)에의 액세스는 하나 이상의 유선 또는 무선 액세스 네트워크들을 통해 제공될 수 있다. 더 나아가 네트워크(400)는 사물 등 분산된 구성 요소들 간에 정보를 주고 받아 처리하는 IoT(Internet of Things, 사물인터넷) 망 및/또는 5G 통신을 지원할 수 있다.
도 3은 도 2 중 미디어 스트리밍 제어 장치의 구성을 개략적으로 설명하기 위하여 도시한 블록도 이다. 이하의 설명에서 도 1 및 도 2에 대한 설명과 중복되는 부분은 그 설명을 생략하기로 한다. 도 3을 참조하면, 미디어 스트리밍 제어 장치(100)는 프로세서(110) 및 메모리(120)를 포함할 수 있다.
프로세서(110)는 수신측 단말(200)로부터 요청 MPD 파일을 수신할 수 있다. 요청 MPD 파일은 수신측 단말(200)이 다운링크 네트워크 상황을 바탕으로 생성하여 프로세서(110)로 전송할 수 있으며, 상술한 제1 요청과 동일하다. 수신측 단말(200)은 자신의 다운링크 네트워크 상황을 수집하고, 수집한 네트워크 상황을 기반으로 요청 MPD 파일을 생성하여 프로세서(110)로 전송할 수 있다.
여기서, 수신측 단말(200)이 수집하는 다운링크 네트워크 상황은, 다운링크 쓰루풋(through)의 변화, 세그먼트 파일을 재생하기 위해 재생할 세그먼트 파일을 버퍼링하는 플래이백 버퍼의 크기 변화, 세그먼트 파일 선택 기록과, 스트리밍 지연속도와, 스톨(stall) 발생 중 하나 이상을 포함할 수 있다.
또한, 요청 MPD 파일은, 수신측 단말(200)이 원하는 해상도 정보(예를 들어, high 퀄리티의 해상도, medium 퀄리티의 해상도, low 퀄리티의 해상도 중 하나)와, 해상도에 대응하는 인코딩 비트레이트 설정값과, 수신측 단말(200)이 데이터를 수신 받고자 원하는 송신측 단말의 식별 정보를 포함할 수 있다.
프로세서(110)는 수신측 단말(200)로부터 수신한 요청 MPD 파일을 수집하여 송신측 단말(300)로 전송할 수 있다. 프로세서(110)는 요청 MPD 파일에 포함되어 있는 송신측 단말의 식별 정보별로 요청 MPD 파일을 취합할 수 있다. 복수개의 수신측 단말(200)이 복수개의 송신측 단말(300)로부터 데이터를 전송 받고자 원하는 경우, 지정된 송신측 단말(300)로 요청 MPD 파일을 정확하게 전송하기 위해, 송신측 단말의 식별 정보별로 요청 MPD 파일을 취합할 수 있다. 이후, 프로세서(110)는 취합한 요청 MPD 파일을 식별 정보에 대응하는 송신측 단말(300)로 전송할 수 있다.
프로세서(110)는 송신측 단말(300)이 촬영한 미디어 프레임을 요청 MPD 파일에 기반하여 인코딩한 세그먼트 파일들을 수신하여 저장할 수 있다.
프로세서(110)는 송신측 단말(300)로부터, 요청 MPD 파일을 헤더 정보로 하여 인코딩한 세그먼트 파일들을 수신할 수 있다. 여기서, MPD 파일에 기반하여 인코딩한 세그먼트 파일은 제1 해상도로 인코딩된 제1 세그먼트 파일과, 제1 해상도 보다 낮은 제2 해상도로 인코딩된 제2 세그먼트 파일과, 제2 해상도보다 낮은 제3 해상도로 인코딩된 제3 세그먼트 파일을 포함하고, 제1 세그먼트 파일 내지 제3 세그먼트 파일 중 어느 하나는 요청 MPD 파일에 포함된 해상도 정보로 인코딩된 세그먼트 파일일 수 있다. 본 실시 예에서 MPD 파일에 기반하여 인코딩한 세그먼트 파일을 제1 세그먼트 파일 내지 제3 세그먼트 파일로 기재되어 있으나, 이에 국한되지 않고, 네트워크 상황에 따라서 유동적으로 변할 수 있다.
예를 들어, 10초의 미디어 컨텐트가 1초의 세그먼트 파일 10개로 분할되어 있다고 가정하면, 어느 한 식별 정보에 해당하는 송신측 단말(300)은 1초의 세그먼트 파일을 3개의 세그먼트 파일(제1 세그먼트 파일 내지 제3 세그먼트 파일)로 인코딩할 수 있다.
인코딩한 제1 세그먼트 파일은, high 퀄리티의 해상도와, high 퀄리티의 해상도에 대응하는 인코딩 비트레이트 설정값과, 송신측 단말의 식별 정보를 헤더정보로 하는 세그먼트 파일을 포함할 수 있다. 인코딩한 제2 세그먼트 파일은, medium 퀄리티의 해상도와, medium 퀄리티의 해상도에 대응하는 인코딩 비트레이트 설정값과, 송신측 단말의 식별 정보를 헤더정보로 하는 세그먼트 파일을 포함할 수 있다. 인코딩한 제3 세그먼트 파일은, low 퀄리티의 해상도와, low 퀄리티의 해상도에 대응하는 인코딩 비트레이트 설정값과, 송신측 단말의 식별 정보를 헤더정보로 하는 세그먼트 파일을 포함할 수 있다. 제1 인코딩한 세그먼트 파일 내지 제3 인코딩한 세그먼트 파일 중 하나는 요청 MPD 파일에 포함된 해상도로 인코딩된 세그먼트 파일일 수 있다.
상술한 예로부터 송신측 단말(300)은 30개의 인코딩한 세그먼트 파일을 프로세서(110)로 전송할 수 있다.
프로세서(110)는 송신측 단말(300)로부터 인코딩한 세그먼트 파일들을 수신하면, 헤더 정보에 포함된 송신측 단말의 식별 정보별로 버퍼를 할당하고, 인코딩한 세그먼트 파일들을 송신측 단말의 식별 정보별로 분류한 후, 송신측 단말의 식별 정보별로 할당된 버퍼에, 송신측 단말의 식별 정보별로 분류된 적어도 하나의 인코딩한 세그먼트 파일을 저장할 수 있다.
이후 프로세서(110)는 수신측 단말(200)이 현재의 스트리밍 상황을 바탕으로 재생 품질을 보장하도록 생성한 요청 세그먼트 파일을 수신할 수 있다. 여기서, 요청 세그먼트 파일은 수신측 단말(200)이 현재의 스트리밍 상황 및 재생 품질을 보장하도록 생성하여 프로세서(110)로 전송할 수 있으며, 상술한 제2 요청과 동일하다. 또한, 요청 세그먼트 파일은 현재 스트리밍 상황에 적합한 해상도와, 해상도에 대응하는 인코딩 비트레이트와, 송신측 단말의 식별 정보를 포함할 수 있다.
요청 세그먼트 파일에 포함되는 현재의 스트리밍 상황은, 세그먼트 파일을 재생하기 위해 재생할 세그먼트 파일을 버퍼링하는 플래이백 버퍼의 크기, 추정된 다운링크 가용 전송량, RTT(round trip time)을 포함할 수 있다. 또한, 재생 품질을 포함한다 함은, 현재 스트리밍 상태에서, 목표 지연시간을 보장하면서 최대 해상도로 재생할 수 있음을 포함할 수 있다.
프로세서(110)는 수신측 단말(200)로부터 요청 세그먼트 파일을 수신하면, 버퍼에 저장된 인코딩한 세그먼트 파일들로부터 요청 세그먼트 파일에 대응하도록 인코딩한 세그먼트 파일을 응답 세그먼트 파일로 추출하고, 수신측 단말(200)에 응답 세그먼트 파일을 전송할 수 있다.
프로세서(110)는 요청 세그먼트 파일에 포함된 송신측 단말의 식별 정보를 추출하고, 송신측 단말의 식별 정보별로 할당된 버퍼로부터, 요청 세그먼트 파일에 포함된 해상도 정보에 대응하는 인코딩한 세그먼트 파일을 추출할 수 있다. 이후 프로세서(110)는 추출된 인코딩한 세그먼트 파일을 응답 세그먼트 파일로 하여 수신측 단말(200)로 전송할 수 있다.
본 실시 예에서, 프로세서(110)는 미디어 스트리밍 제어 장치(100) 전체의 동작을 제어할 수 있다. 여기서, '프로세서(processor)'는, 예를 들어 프로그램 내에 포함된 코드 또는 명령어로 표현된 기능을 수행하기 위해 물리적으로 구조화된 회로를 갖는, 하드웨어에 내장된 데이터 처리 장치를 의미할 수 있다. 이와 같이 하드웨어에 내장된 데이터 처리 장치의 일 예로써, 마이크로프로세서(microprocessor), 중앙처리장치(central processing unit: CPU), 프로세서 코어(processor core), 멀티프로세서(multiprocessor), ASIC(application-specific integrated circuit), FPGA(field programmable gate array) 등의 처리 장치를 망라할 수 있으나, 본 발명의 범위가 이에 한정되는 것은 아니다.
메모리(120)는 프로세서(110)와 동작 가능하게 연결되고, 프로세서(110)에서 수행되는 동작과 연관하여 적어도 하나의 코드를 저장할 수 있다.
또한, 메모리(120)는 프로세서(110)가 처리하는 데이터를 일시적 또는 영구적으로 저장하는 기능을 수행할 수 있다. 여기서, 메모리(120)는 자기 저장 매체(magnetic storage media) 또는 플래시 저장 매체(flash storage media)를 포함할 수 있으나, 본 발명의 범위가 이에 한정되는 것은 아니다. 이러한 메모리(120)는 내장 메모리 및/또는 외장 메모리를 포함할 수 있으며, DRAM, SRAM, 또는 SDRAM 등과 같은 휘발성 메모리, OTPROM(one time programmable ROM), PROM, EPROM, EEPROM, mask ROM, flash ROM, NAND 플래시 메모리, 또는 NOR 플래시 메모리 등과 같은 비휘발성 메모리, SSD, CF(compact flash) 카드, SD 카드, Micro-SD 카드, Mini-SD 카드, Xd 카드, 또는 메모리 스틱(memory stick) 등과 같은 플래시 드라이브, 또는 HDD와 같은 저장 장치를 포함할 수 있다.
도 4는 다른 실시 예에 따른 미디어 스트리밍 제어 장치와, 수신측 단말과 송신측 단말의 구성을 개략적으로 설명하기 위하여 도시한 블록도 이다. 이하의 설명에서 도 1 내지 도 3에 대한 설명과 중복되는 부분은 그 설명을 생략하기로 한다. 도 4를 참조하면, 미디어 스트리밍 제어 장치(100)는 취합부(130) 및 버퍼 관리부(140)를 포함할 수 있다. 또한 수신측 단말(200)은 수집부(210), 제1 생성부(220) 및 처리부(230)를 포함할 수 있다. 또한 송신측 단말(300)은 제2 생성부(310)를 포함할 수 있다. 본 실시 예에서, "부"는 프로세서 또는 회로와 같은 하드웨어 구성(hardware component), 및/또는 프로세서와 같은 하드웨어 구성에 의해 실행되는 소프트웨어 구성(software component)일 수 있다.
도 4를 시간의 흐름에 따라 설명하면, 수신측 단말(200)의 수집부(210)는 자신의 다운링크 네트워크 상황을 수집할 수 있다. 여기서 수집부(210)가 수집하는 다운링크 네트워크 상황은, 다운링크 쓰루풋(through)의 변화, 세그먼트 파일을 재생하기 위해 재생할 세그먼트 파일을 버퍼링하는 플래이백 버퍼의 크기 변화, 세그먼트 파일 선택 기록과, 스트리밍 지연속도와, 스톨(stall) 발생 중 하나 이상을 포함할 수 있다.
수신측 단말(200)의 제1 생성부(220)는 수집부(210)가 수집한 다운링크 네트워크 상황을 이용하여 요청 MPD 파일을 생성할 수 있다. 여기서, 요청 MPD 파일은 수신측 단말(200)이 다운링크 네트워크 상황을 바탕으로 생성하는 수신측 단말(200)이 원하는 해상도 정보와, 해상도에 대응하는 인코딩 비트레이트 설정값과, 수신측 단말(200)이 데이터를 수신 받고자 원하는 송신측 단말의 식별 정보를 포함할 수 있다.
제1 생성부(220)에서 생성한 요청 MPD 파일은 미디어 스트리밍 제어 장치(100)로 전송되고, 미디어 스트리밍 제어 장치(100)의 취합부(130)는 요청 MPD 파일에 포함되어 있는 송신측 단말의 식별 정보별로, 요청 MPD 파일을 취합할 수 있다. 취합부(130)는 취합한 요청 MPD 파일을 식별 정보에 대응하는 송신측 단말(300)로 전송할 수 있다.
송신측 단말(300)의 제2 생성부(310)는 카메라로 촬영한 미디어 프레임을 수신하고, 촬영한 미디어 프레임을 취합한 요청 MPD 파일에 기반하여 인코딩한 세그먼트 파일들을 생성할 수 있다. 여기서, 인코딩한 세그먼트 파일은 요청 MPD 파일의 정보가 헤더 정보로 기록되어 있을 수 있다. 또한, MPD 파일에 기반하여 인코딩한 세그먼트 파일은 제1 해상도로 인코딩된 제1 세그먼트 파일과, 제1 해상도 보다 낮은 제2 해상도로 인코딩된 제2 세그먼트 파일과, 제2 해상도보다 낮은 제3 해상도로 인코딩된 제3 세그먼트 파일을 포함하고, 제1 세그먼트 파일 내지 제3 세그먼트 파일 중 어느 하나는 요청 MPD 파일에 포함된 해상도 정보로 인코딩된 세그먼트 파일일 수 있다. 제2 생성부(310)는 인코딩한 세그먼트 파일들을 미디어 스트리밍 제어 장치(100)로 전송할 수 있다.
미디어 스트리밍 제어 장치(100)의 버퍼 관리부(140)는 제2 생성부(310)로부터 수신한 요청 MPD 파일을 헤더 정보로 하여 인코딩한 세그먼트 파일들을 버퍼에 저장할 수 있다. 버퍼 관리부(140)는 헤더 정보에 포함된 송신측 단말의 식별 정보별로 버퍼를 할당하고, 인코딩한 세그먼트 파일들을 송신측 단말의 식별 정보별로 분류한 후, 송신측 단말의 식별 정보별로 할당된 버퍼에, 송신측 단말의 식별 정보별로 분류된 적어도 하나의 인코딩한 세그먼트 파일을 저장할 수 있다.
이후 수신측 단말(200)의 처리부(230)는 요청 세그먼트 파일을 생성하여 버퍼 관리부(240)로 전송할 수 있다. 여기서 요청 세그먼트 파일은 현재의 스트리밍 상황을 바탕으로 재생 품질을 보장하도록 생성할 수 있으며, 요청 세그먼트 파일은 현재 스트리밍 상황에 적합한 해상도와, 해상도에 대응하는 인코딩 비트레이트와, 송신측 단말의 식별 정보를 포함할 수 있다.
처리부(230)로부터 요청 세그먼트 파일을 수신한 버퍼 관리부(140)는, 버퍼에 저장된 인코딩한 세그먼트 파일들로부터 요청 세그먼트 파일에 대응하도록 인코딩한 세그먼트 파일을 응답 세그먼트 파일로 추출하고, 처리부(230)에 응답 세그먼트 파일을 전송할 수 있다. 버퍼 관리부(140)는 요청 세그먼트 파일에 포함된 송신측 단말의 식별 정보를 추출하고, 송신측 단말의 식별 정보별로 할당된 버퍼로부터, 요청 세그먼트 파일에 포함된 해상도 정보에 대응하는 인코딩한 세그먼트 파일을 추출할 수 있다. 이후 버퍼 관리부(140)는 추출된 인코딩한 세그먼트 파일을 응답 세그먼트 파일로 하여 처리부(230)로 전송할 수 있다. 이후 처리부(230)는 응답 세그먼트 파일을 플레이백 버퍼에 저장하면서 재생할 수 있다.
도 5는 본 실시 예에 따른 미디어 스트리밍 제어 방법을 설명하기 위한 흐름도이다. 이하의 설명에서 도 1 내지 도 4에 대한 설명과 중복되는 부분은 그 설명을 생략하기로 한다. 본 실시 예에 따른 미디어 스트리밍 제어 방법은 미디어 스트리밍 제어 장치(100)의 프로세서(110)에 의해 수행될 수 있다.
도 5를 참조하면, S510단계에서, 미디어 스트리밍 제어 장치(100)는 수신측 단말(200)이 다운링크 네트워크 상황을 바탕으로 생성한 요청 MPD 파일을 수신한다. 여기서, 요청 MPD 파일은, 수신측 단말(200)이 원하는 해상도 정보와, 해상도에 대응하는 인코딩 비트레이트 설정값과, 수신측 단말(200)이 데이터를 수신 받고자 원하는 송신측 단말의 식별 정보를 포함할 수 있다.
S520단계 및 S530단계에서, 미디어 스트리밍 제어 장치(100)는 송신측 단말(200)로부터 요청 MPD 파일을 취합하고, 취합된 요청 MPD 파일을 송신측 단말(300)에 전송한다. 미디어 스트리밍 제어 장치(100)는 송신측 단말의 식별 정보별로 요청 MPD 파일을 취합하고, 취합한 요청 MPD 파일을 식별 정보에 대응하는 송신측 단말(300)로 전송할 수 있다.
S540단계에서, 미디어 스트리밍 제어 장치(100)는 송신측 단말(300)이 촬영한 미디어 프레임을 요청 MPD 파일에 기반하여 인코딩한 세그먼트 파일들을 수신한다. 여기서, MPD 파일에 기반하여 인코딩한 세그먼트 파일은 제1 해상도로 인코딩된 제1 세그먼트 파일과, 제1 해상도 보다 낮은 제2 해상도로 인코딩된 제2 세그먼트 파일과, 제2 해상도보다 낮은 제3 해상도로 인코딩된 제3 세그먼트 파일을 포함하고, 제1 세그먼트 파일 내지 제3 세그먼트 파일 중 어느 하나는 요청 MPD 파일에 포함된 해상도 정보로 인코딩된 세그먼트 파일일 수 있다. 본 실시 예에서 MPD 파일에 기반하여 인코딩한 세그먼트 파일을 제1 세그먼트 파일 내지 제3 세그먼트 파일로 기재되어 있으나, 이에 국한되지 않고, 네트워크 상황에 따라서 유동적으로 변할 수 있다.
S550단계에서, 미디어 스트리밍 제어 장치(100)는 수신한 기반하여 인코딩한 세그먼트 파일들을 버퍼에 저장한다. 미디어 스트리밍 제어 장치(100)는 송신측 단말(300)로부터, 요청 MPD 파일을 헤더 정보로 하여 인코딩한 세그먼트 파일들을 수신하면, 헤더 정보에 포함된 송신측 단말의 식별 정보별로 버퍼를 할당하고, 인코딩한 세그먼트 파일들을 송신측 단말의 식별 정보별로 분류한 후, 송신측 단말의 식별 정보별로 할당된 버퍼에, 송신측 단말의 식별 정보별로 분류된 적어도 하나의 인코딩한 세그먼트 파일을 저장할 수 있다.
S560단계에서, 미디어 스트리밍 제어 장치(100)는 적어도 하나의 수신측 단말(200)이 현재의 스트리밍 상황을 바탕으로 재생 품질을 보장하도록 생성한 요청 세그먼트 파일을 수신할 수 있다. 여기서 요청 세그먼트 파일은 현재의 스트리밍 상황을 바탕으로 재생 품질을 보장하도록 생성할 수 있으며, 요청 세그먼트 파일은 현재 스트리밍 상황에 적합한 해상도와, 해상도에 대응하는 인코딩 비트레이트와, 송신측 단말의 식별 정보를 포함할 수 있다.
S570단계에서, 미디어 스트리밍 제어 장치(100)는 저장된 인코딩한 세그먼트 파일들로부터 요청 세그먼트 파일에 대응하도록 인코딩한 세그먼트 파일을 응답 세그먼트 파일로 추출하고, 적어도 하나의 수신측 단말에 응답 세그먼트 파일을 전송한다. 미디어 스트리밍 제어 장치(100)는 요청 세그먼트 파일에 포함된 송신측 단말의 식별 정보를 추출하고, 송신측 단말의 식별 정보별로 할당된 버퍼로부터, 요청 세그먼트 파일에 포함된 해상도 정보에 대응하는 인코딩한 세그먼트 파일을 추출한 후, 추출된 인코딩한 세그먼트 파일을 응답 세그먼트 파일로 하여 수신측 단말(200)로 전송할 수 있다.
이상 설명된 본 발명에 따른 실시 예는 컴퓨터 상에서 다양한 구성요소를 통하여 실행될 수 있는 컴퓨터 프로그램의 형태로 구현될 수 있으며, 이와 같은 컴퓨터 프로그램은 컴퓨터로 판독 가능한 매체에 기록될 수 있다. 이때, 매체는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등과 같은, 프로그램 명령어를 저장하고 실행하도록 특별히 구성된 하드웨어 장치를 포함할 수 있다.
한편, 상기 컴퓨터 프로그램은 본 발명을 위하여 특별히 설계되고 구성된 것이거나 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수 있다. 컴퓨터 프로그램의 예에는, 컴파일러에 의하여 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용하여 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함될 수 있다.
본 발명의 명세서(특히 특허청구범위에서)에서 "상기"의 용어 및 이와 유사한 지시 용어의 사용은 단수 및 복수 모두에 해당하는 것일 수 있다. 또한, 본 발명에서 범위(range)를 기재한 경우 상기 범위에 속하는 개별적인 값을 적용한 발명을 포함하는 것으로서(이에 반하는 기재가 없다면), 발명의 상세한 설명에 상기 범위를 구성하는 각 개별적인 값을 기재한 것과 같다.
본 발명에 따른 방법을 구성하는 단계들에 대하여 명백하게 순서를 기재하거나 반하는 기재가 없다면, 상기 단계들은 적당한 순서로 행해질 수 있다. 반드시 상기 단계들의 기재 순서에 따라 본 발명이 한정되는 것은 아니다. 본 발명에서 모든 예들 또는 예시적인 용어(예들 들어, 등등)의 사용은 단순히 본 발명을 상세히 설명하기 위한 것으로서 특허청구범위에 의해 한정되지 않는 이상 상기 예들 또는 예시적인 용어로 인해 본 발명의 범위가 한정되는 것은 아니다. 또한, 당업자는 다양한 수정, 조합 및 변경이 부가된 특허청구범위 또는 그 균등물의 범주 내에서 설계 조건 및 팩터에 따라 구성될 수 있음을 알 수 있다.
따라서, 본 발명의 사상은 상기 설명된 실시 예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 또는 이로부터 등가적으로 변경된 모든 범위는 본 발명의 사상의 범주에 속한다고 할 것이다.
100: 미디어 스트리밍 제어 장치
200: 수신측 단말
300: 송신측 단말
400: 네트워크

Claims (13)

  1. 다자간 스트리밍을 지원하는 미디어 스트리밍 제어 장치의 미디어 스트리밍 제어 방법으로서,
    적어도 하나의 수신측 단말이 다운링크 네트워크 상황을 바탕으로 생성한 요청 MPD(media presentation description) 파일을 수신하는 단계;
    적어도 하나의 송신측 단말에 상기 요청 MPD 파일을 전송하는 단계;
    상기 적어도 하나의 송신측 단말이 촬영한 미디어 프레임을 상기 요청 MPD 파일에 기반하여 인코딩한 세그먼트 파일들을 수신하여 저장하는 단계;
    상기 적어도 하나의 수신측 단말이 현재의 스트리밍 상황을 바탕으로 재생 품질을 보장하도록 생성한 요청 세그먼트 파일을 수신하는 단계; 및
    저장된 상기 인코딩한 세그먼트 파일들로부터 상기 요청 세그먼트 파일에 대응하도록 인코딩한 세그먼트 파일을 응답 세그먼트 파일로 추출하고, 상기 적어도 하나의 수신측 단말에 상기 응답 세그먼트 파일을 전송하는 단계를 포함하는,
    미디어 스트리밍 제어 방법.
  2. 제 1 항에 있어서,
    상기 요청 MPD 파일은,
    상기 수신측 단말이 원하는 해상도 정보와, 상기 해상도 정보에 대응하는 인코딩 비트레이트 설정값과, 상기 수신측 단말이 데이터를 수신 받고자 원하는 송신측 단말의 식별 정보를 포함하는,
    미디어 스트리밍 제어 방법.
  3. 제 2 항에 있어서,
    상기 MPD 파일에 기반하여 인코딩한 세그먼트 파일은,
    제1 해상도 정보로 인코딩된 제1 세그먼트 파일과, 상기 제1 해상도 정보 보다 낮은 제2 해상도 정보로 인코딩된 제2 세그먼트 파일과, 상기 제2 해상도 정보보다 낮은 제3 해상도 정보로 인코딩된 제3 세그먼트 파일을 포함하고,
    상기 제1 세그먼트 파일 내지 제3 세그먼트 파일 중 어느 하나는 상기 해상도 정보로 인코딩된 세그먼트 파일인,
    미디어 스트리밍 제어 방법.
  4. 제 3 항에 있어서,
    상기 송신측 단말에 요청 MPD 파일을 전송하는 단계는,
    상기 송신측 단말의 식별 정보별로 상기 요청 MPD 파일을 취합하는 단계; 및
    취합한 요청 MPD 파일을 상기 식별 정보에 대응하는 송신측 단말로 전송하는 단계를 포함하는,
    미디어 스트리밍 제어 방법.
  5. 제 1 항에 있어서,
    상기 인코딩한 세그먼트 파일들을 수신하여 저장하는 단계는,
    상기 적어도 하나의 송신측 단말로부터, 상기 요청 MPD 파일을 헤더 정보로 하여 인코딩한 세그먼트 파일들을 수신하는 단계;
    상기 헤더 정보에 포함된 상기 송신측 단말의 식별 정보별로 버퍼를 할당하는 단계;
    상기 인코딩한 세그먼트 파일들을 송신측 단말의 식별 정보별로 분류하는 단계; 및
    상기 송신측 단말의 식별 정보별로 할당된 버퍼에, 상기 송신측 단말의 식별 정보별로 분류된 적어도 하나의 인코딩한 세그먼트 파일을 저장하는 단계를 포함하는,
    미디어 스트리밍 제어 방법.
  6. 제 5 항에 있어서,
    상기 응답 세그먼트 파일을 전송하는 단계는,
    상기 요청 세그먼트 파일에 포함된 송신측 단말의 식별 정보를 추출하는 단계;
    상기 송신측 단말의 식별 정보별로 할당된 버퍼로부터, 상기 요청 세그먼트 파일에 포함된 해상도 정보에 대응하는 인코딩한 세그먼트 파일을 추출하는 단계; 및
    추출된 인코딩한 세그먼트 파일을 응답 세그먼트 파일로 하여 상기 수신측 단말로 전송하는 단계를 포함하는,
    미디어 스트리밍 제어 방법.
  7. 컴퓨터를 이용하여 제 1 항 내지 제 6 항의 방법 중 어느 한 항의 방법을 실행시키기 위한 컴퓨터 프로그램이 저장된 컴퓨터로 판독 가능한 기록매체.
  8. 다자간 스트리밍을 지원하는 미디어 스트리밍 제어 장치로서,
    프로세서; 및
    상기 프로세서와 동작 가능하게 연결되고 상기 프로세서에서 수행되는 적어도 하나의 코드를 저장하는 메모리를 포함하고,
    상기 메모리는 상기 프로세서를 통해 실행될 때, 상기 프로세서가 적어도 하나의 수신측 단말이 다운링크 네트워크 상황을 바탕으로 생성한 요청 MPD(media presentation description) 파일을 수신하고,
    적어도 하나의 송신측 단말에 상기 요청 MPD 파일을 전송하고,
    상기 적어도 하나의 송신측 단말이 촬영한 미디어 프레임을 상기 요청 MPD 파일에 기반하여 인코딩한 세그먼트 파일들을 수신하여 저장하고,
    상기 적어도 하나의 수신측 단말이 현재의 스트리밍 상황을 바탕으로 재생 품질을 보장하도록 생성한 요청 세그먼트 파일을 수신하고,
    저장된 상기 인코딩한 세그먼트 파일들로부터 상기 요청 세그먼트 파일에 대응하도록 인코딩한 세그먼트 파일을 응답 세그먼트 파일로 추출하고, 상기 적어도 하나의 수신측 단말에 상기 응답 세그먼트 파일을 전송하도록 야기하는 코드를 저장하는,
    미디어 스트리밍 제어 장치.
  9. 제 8 항에 있어서,
    상기 메모리는 상기 프로세서로 하여금,
    상기 수신측 단말이 원하는 해상도 정보와, 상기 해상도 정보에 대응하는 인코딩 비트레이트 설정값과, 상기 수신측 단말이 데이터를 수신 받고자 원하는 송신측 단말의 식별 정보를 포함하는 상기 요청 MPD 파일을 수신하도록 야기하는 코드를 저장하는,
    미디어 스트리밍 제어 장치.
  10. 제 9 항에 있어서,
    상기 메모리는 상기 프로세서로 하여금,
    제1 해상도 정보로 인코딩된 제1 세그먼트 파일과, 상기 제1 해상도 정보 보다 낮은 제2 해상도 정보로 인코딩된 제2 세그먼트 파일과, 상기 제2 해상도 정보보다 낮은 제3 해상도 정보로 인코딩된 제3 세그먼트 파일을 포함하고, 상기 제1 세그먼트 파일 내지 제3 세그먼트 파일 중 어느 하나는 상기 해상도 정보로 인코딩된 세그먼트 파일인 상기 MPD 파일에 기반하여 인코딩한 세그먼트 파일을 수신하여 저장하도록 야기하는 코드를 저장하는,
    미디어 스트리밍 제어 장치.
  11. 제 9 항에 있어서,
    상기 메모리는 상기 프로세서로 하여금,
    상기 송신측 단말에 요청 MPD 파일을 전송 시에, 상기 송신측 단말의 식별 정보별로 상기 요청 MPD 파일을 취합하고, 취합한 요청 MPD 파일을 상기 식별 정보에 대응하는 송신측 단말로 전송하도록 야기하는 코드를 저장하는,
    미디어 스트리밍 제어 장치.
  12. 제 8 항에 있어서,
    상기 메모리는 상기 프로세서로 하여금,
    상기 인코딩한 세그먼트 파일들을 수신하여 저장 시에, 상기 적어도 하나의 송신측 단말로부터, 상기 요청 MPD 파일을 헤더 정보로 하여 인코딩한 세그먼트 파일들을 수신하고, 상기 헤더 정보에 포함된 상기 송신측 단말의 식별 정보별로 버퍼를 할당하고, 상기 인코딩한 세그먼트 파일들을 송신측 단말의 식별 정보별로 분류하고, 상기 송신측 단말의 식별 정보별로 할당된 버퍼에, 상기 송신측 단말의 식별 정보별로 분류된 적어도 하나의 인코딩한 세그먼트 파일을 저장하도록 야기하는 코드를 저장하는,
    미디어 스트리밍 제어 장치.
  13. 제 12 항에 있어서,
    상기 메모리는 상기 프로세서로 하여금,
    상기 응답 세그먼트 파일을 전송 시에, 상기 요청 세그먼트 파일에 포함된 송신측 단말의 식별 정보를 추출하고, 상기 송신측 단말의 식별 정보별로 할당된 버퍼로부터, 상기 요청 세그먼트 파일에 포함된 해상도 정보에 대응하는 인코딩한 세그먼트 파일을 추출하고, 추출된 인코딩한 세그먼트 파일을 응답 세그먼트 파일로 하여 상기 수신측 단말로 전송하도록 야기하는 코드를 저장하는,
    미디어 스트리밍 제어 장치.
KR1020200158263A 2020-11-23 2020-11-23 미디어 스트리밍 제어 장치 및 방법 KR102419087B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200158263A KR102419087B1 (ko) 2020-11-23 2020-11-23 미디어 스트리밍 제어 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200158263A KR102419087B1 (ko) 2020-11-23 2020-11-23 미디어 스트리밍 제어 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20220071057A true KR20220071057A (ko) 2022-05-31
KR102419087B1 KR102419087B1 (ko) 2022-07-07

Family

ID=81780744

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200158263A KR102419087B1 (ko) 2020-11-23 2020-11-23 미디어 스트리밍 제어 장치 및 방법

Country Status (1)

Country Link
KR (1) KR102419087B1 (ko)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101467700B1 (ko) 2013-08-30 2014-12-01 충북대학교 산학협력단 적응적 스트리밍 서비스 지원 에이전트를 구비한 스트리밍 서비스 제공 시스템
KR101497232B1 (ko) * 2013-09-16 2015-02-27 경북대학교 산학협력단 적응형 멀티미디어 스트리밍 시스템 및 방법
KR20170022057A (ko) * 2015-08-19 2017-03-02 주식회사 구루미디어 스트리밍 서비스 서버 및 그의 제어 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101467700B1 (ko) 2013-08-30 2014-12-01 충북대학교 산학협력단 적응적 스트리밍 서비스 지원 에이전트를 구비한 스트리밍 서비스 제공 시스템
KR101497232B1 (ko) * 2013-09-16 2015-02-27 경북대학교 산학협력단 적응형 멀티미디어 스트리밍 시스템 및 방법
KR20170022057A (ko) * 2015-08-19 2017-03-02 주식회사 구루미디어 스트리밍 서비스 서버 및 그의 제어 방법

Also Published As

Publication number Publication date
KR102419087B1 (ko) 2022-07-07

Similar Documents

Publication Publication Date Title
US11979636B2 (en) Systems and methods for transmission of data streams
Kesavan et al. An investigation on adaptive HTTP media streaming Quality-of-Experience (QoE) and agility using cloud media services
EP2717536B1 (en) Processing method, distribution server, client and system for streaming media
WO2016049987A1 (zh) 一种数据处理方法、装置及相关服务器
CN107819809B (zh) 对内容进行同步操作的方法及装置
JP2017513264A (ja) アダプティブメディアストリーミング
Timmerer et al. Advanced transport options for the dynamic adaptive streaming over HTTP
JPWO2016174960A1 (ja) 受信装置、送信装置、およびデータ処理方法
WO2021218479A1 (zh) 流量整形方法、装置与电子设备
WO2013185547A1 (zh) 一种缓存服务器的服务方法、缓存服务器及系统
KR102129481B1 (ko) 컨텐츠 전송 시스템에서 데이터 처리를 위한 장치 및 이를 위한 방법
KR20160031642A (ko) 스트리밍 서비스 서버 및 그의 제어 방법
KR102419087B1 (ko) 미디어 스트리밍 제어 장치 및 방법
KR102373195B1 (ko) 수신 장치, 송신 장치, 데이터 통신 방법, 및 데이터 처리 방법
KR20180024841A (ko) 스트리밍 서비스 서버 및 그의 제어 방법
KR101451956B1 (ko) 클라우드 서비스 시스템, 클라우드 서비스 장치 및 이를 이용한 방법
JP2015061307A (ja) コンテンツ供給装置、コンテンツ供給方法、プログラム、端末装置、およびコンテンツ供給システム
CN116264619A (zh) 资源处理方法、装置、服务器、终端、系统及存储介质
JP6400163B2 (ja) 受信装置、受信方法、送信装置、送信方法、及びプログラム
WO2016172967A1 (zh) 一种媒体流传输方法及装置
WO2022199484A1 (zh) 一种媒体播放方法、装置和电子设备
KR20130134911A (ko) 적응형 컨텐츠 제공을 위한 컨텐츠 캐싱 서비스 제공 방법 및 이를 위한 로컬 캐싱 장치
KR20140086801A (ko) 실시간 콘텐츠 트랜스코딩 방법, 장치 및 시스템, 및 실시간 콘텐츠 수신 장치 및 방법
KR102064517B1 (ko) 적응적인 동영상 서비스 제어 방법 및 그 장치
KR101451957B1 (ko) 클라우드 컴퓨팅 기반 단말 장치간 스트리밍 서비스 시스템, 클라우드 서버를 이용한 단말 장치간 스트리밍 서비스 방법 및 이를 위한 장치

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant