KR20230093479A - W3c 미디어 소스 및 암호화된 확장을 이용한 라이브 cmaf/dash 플레이어에서의 mpd 체이닝 - Google Patents

W3c 미디어 소스 및 암호화된 확장을 이용한 라이브 cmaf/dash 플레이어에서의 mpd 체이닝 Download PDF

Info

Publication number
KR20230093479A
KR20230093479A KR1020237017621A KR20237017621A KR20230093479A KR 20230093479 A KR20230093479 A KR 20230093479A KR 1020237017621 A KR1020237017621 A KR 1020237017621A KR 20237017621 A KR20237017621 A KR 20237017621A KR 20230093479 A KR20230093479 A KR 20230093479A
Authority
KR
South Korea
Prior art keywords
media segments
live
mse
mpd
advertising
Prior art date
Application number
KR1020237017621A
Other languages
English (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 텐센트 아메리카 엘엘씨
Publication of KR20230093479A publication Critical patent/KR20230093479A/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/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/23424Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving splicing one content stream with another content stream, e.g. for inserting or substituting an advertisement
    • 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/23406Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving management of server-side video buffer
    • 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/2347Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving video stream encryption
    • 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/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/262Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
    • H04N21/26258Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists for generating a list of items to be played back in a given order, e.g. playlist, or scheduling item distribution according to such list
    • 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/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/266Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
    • H04N21/26613Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel for generating or managing keys in general
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44004Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving video buffer management, e.g. video decoder buffer or video display buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/812Monomedia components thereof involving advertisement data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8456Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • H04N21/85403Content authoring by describing the content as an MPEG-21 Digital Item
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/858Linking data to content, e.g. by linking an URL to a video object, by creating a hotspot
    • H04N21/8586Linking data to content, e.g. by linking an URL to a video object, by creating a hotspot by using a URL

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Business, Economics & Management (AREA)
  • Marketing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Organic Low-Molecular-Weight Compounds And Preparation Thereof (AREA)
  • User Interface Of Digital Computer (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

MPD 체이닝을 이용하여 2개 이상의 비선형 미디어 소스로부터 선형 미디어 소스 확장(MSE) 버퍼를 구축하기 위한 방법 및 장치가 제공될 수 있다. 방법은 적어도 하나의 획득된 미디어 프리젠테이션 세그먼트(MPD)를 파싱하는 것, 및 적어도 하나의 URL에 기초하여 라이브 MPD를 획득하는 것을 포함할 수 있고, 라이브 MPD는 하나 이상의 라이브 미디어 세그먼트를 포함할 수 있다. 방법은 제1 타이밍 모델에 기초하여 하나 이상의 광고 미디어 세그먼트를 제1 MSE 소스 버퍼에 첨부하는 것, 및 제2 타이밍 모델에 기초하여 하나 이상의 라이브 미디어 세그먼트를 제1 버퍼에 첨부함으로써, 하나 이상의 라이브 미디어 세그먼트를 하나 이상의 광고 미디어 세그먼트에 체이닝하는 것을 포함할 수 있다. 하나 이상의 광고 미디어 세그먼트 및 하나 이상의 라이브 미디어 세그먼트는 제1 타이밍 모델 및 제2 타이밍 모델에 기초하여 디스패치될 수 있다.

Description

W3C 미디어 소스 및 암호화된 확장을 이용한 라이브 CMAF/DASH 플레이어에서의 MPD 체이닝
관련 출원에 대한 상호 참조
본 출원은 2021년 9월 20일자로 출원된 미국 가출원 제63/246,233호, 및 2022년 9월 19일자로 출원된 미국 출원 제17/947,801호에 대한 우선권을 주장하고, 이 출원의 내용은 이로써, 그 전체적으로 참조로 본 출원 내로 명백히 통합된다.
본 개시내용의 실시예는 미디어 컨텐츠(media content)를 스트리밍하는 것에 관한 것으로, 더 상세하게는, 동화상 전문가 그룹(MPEG : Moving Picture Experts Group) 동적 적응적 스트리밍 오버 하이퍼텍스트 전송 프로토콜(DASH : dynamic adaptive streaming over hypertext transfer protocol)에 따라 미디어, 광고(ad), 및 라이브 컨텐츠를 스트리밍하는 것에 관한 것이다.
MPEG DASH는 IP 네트워크 상에서 미디어 컨텐츠를 스트리밍하기 위한 표준을 제공한다. MPEG DASH에서, 미디어 프리젠테이션 설명(MPD : media presentation description) 및 이벤트(event)는 미디어 타임라인(timeline) 관련된 이벤트를 클라이언트로 전달하기 위하여 이용된다. ISO/IEC 23009-1 DASH 표준은 멀티-레이트 컨텐츠의 스트리밍을 허용한다. DASH 표준은 단일 타임라인에서 주기(period)가 서로의 연속인 단일 선형 타임라인을 제공한다. ISO/IEC 23009-1은 또한, MPD 체이닝(chaining)하기 위한 도구, 즉, 프리-롤(pre-roll) 및 삽입을 위하여 이용될 수 있는 MPD에서 플레이하기 위하여 다음 MPD의 URL을 시그널링하기 위한 도구를 제공한다.
MPEG DASH는 IP 네트워크 상에서 멀티미디어 컨텐츠를 스트리밍하기 위한 표준을 제공한다. 표준은 멀티미디어 컨텐츠의 선형 재생을 해결하지만, 표준은 비선형 동작의 상황, 예컨대, 서로에 독립적인 상이한 타임라인과 연관된 미디어 세그먼트를 해결하는 것에 실패한다. MPD 체이닝 및 프리-롤 광고 삽입은 전술한 결점을 극복하기 위하여 이용될 수 있다. 그러나, DASH 플레이어가 W3C 미디어 소스 확장을 이용할 때에는, MPD 체이닝 및 프리-롤 광고 삽입도 실패하는데, 그 이유는 하나의 단일 MSE 소스 버퍼로 이러한 비선형 재생을 해결하는 것이 매우 도전적이기 때문이다. 또한, 보호된 라이브 컨텐츠의 재생을 위한 W3C 암호화된 미디어 확장일 때, MPD 체이닝 또는 프리-롤 엘리먼트를 이용하여 광고가 그보다 먼저 플레이될 것으로 예상될 때에는, MPD 체이닝 및 프리-롤 광고 삽입은 이용될 수 없다.
그러므로, MPD 체이닝을 이용하여 2개 이상의 비선형 소스로부터 선형 미디어 소스 확장(MSE : media source extension) 버퍼 타임라인을 구축하기 위한 방법이 필요하다. 또한, MPD 체이닝을 이용하여 보호된 라이브 컨텐츠의 재생을 위한 W3C 암호화된 미디어 확장을 프로세싱하기 위한 방법이 또한 필요하다.
본 개시내용은 하나 이상의 기술적 문제를 해결한다. 본 개시내용은 MPD 체이닝을 이용하여 2개 이상의 비선형 소스로부터 선형 미디어 소스 확장(MSE) 소스 버퍼 타임라인을 구축하기 위한 방법, 프로세스, 장치, 및 비-일시적 컴퓨터-판독가능 매체를 제공한다. 추가적으로, 본 개시내용은 단일 MSE 소스 버퍼를 이용하여 비선형 재생을 구현하기 위한 방법, 프로세스, 장치, 및 비-일시적 시스템을 제공한다. 게다가, 본 개시내용은 또한, 광고 및 암호화된 라이브 컨텐츠의 재생을 위한 단일 암호화된 미디어 확장(EME : encrypted media extensions) 인터페이스의 이용을 가능하게 한다.
본 개시내용의 실시예는 MPD 체이닝을 이용하여 2개 이상의 비선형 미디어 소스로부터 선형 미디어 소스 확장(MSE) 버퍼를 구축하기 위한 방법을 제공할 수 있다. 방법은 적어도 하나의 프로세서에 의해 실행될 수 있고, 하나 이상의 광고 미디어 세그먼트를 포함하는 적어도 하나의 획득된 미디어 프리젠테이션 세그먼트(MPD : media presentation segment)를 파싱하는 단계 - 하나 이상의 광고 미디어 세그먼트는 적어도 하나의 유니버셜 리소스 로케이터(URL : universal resource locator)를 포함함 -; 적어도 하나의 URL에 기초하여 라이브 MPD를 획득하는 단계 - 라이브 MPD는 하나 이상의 라이브 미디어 세그먼트를 포함함 -;
제1 타이밍 모델에 기초하여 하나 이상의 광고 미디어 세그먼트를 제1 MSE 소스 버퍼에 첨부하는 단계; 제2 타이밍 모델에 기초하여 하나 이상의 라이브 미디어 세그먼트를 제1 MSE 소스 버퍼에 첨부함으로써, 하나 이상의 라이브 미디어 세그먼트를 하나 이상의 광고 미디어 세그먼트에 체이닝하는 단계 - 제2 타이밍 모델은 적어도 하나 이상의 라이브 미디어 세그먼트에 대한 타임 시프트 버퍼 심도(time shift buffer depth)를 지원함 -; 및
제1 타이밍 모델 및 제2 타이밍 모델에 기초하여 하나 이상의 광고 미디어 세그먼트 및 하나 이상의 라이브 미디어 세그먼트를 디스패치(dispatch)하는 단계를 포함할 수 있다.
본 개시내용의 실시예는 MPD 체이닝을 이용하여 2개 이상의 비선형 미디어 소스로부터 선형 미디어 소스 확장(MSE) 버퍼를 구축하기 위한 장치를 제공할 수 있다. 장치는 컴퓨터 프로그램 코드를 저장하도록 구성된 적어도 하나의 메모리; 컴퓨터 프로그램 코드를 액세스하고, 컴퓨터 프로그램 코드에 의해 명령된 바와 같이 동작하도록 구성된 적어도 하나의 프로세서를 포함할 수 있다. 프로그램 코드는, 적어도 하나의 프로세서로 하여금, 하나 이상의 광고 미디어 세그먼트를 포함하는 적어도 하나의 획득된 미디어 프리젠테이션 세그먼트(MPD)를 파싱하게 하도록 구성된 파싱 코드 - 하나 이상의 광고 미디어 세그먼트는 적어도 하나의 유니버셜 리소스 로케이터(URL)를 포함함 -; 적어도 하나의 URL에 기초하여 라이브 MPD를 획득하는 단계 - 라이브 MPD는 하나 이상의 라이브 미디어 세그먼트를 포함함 -; 적어도 하나의 프로세서로 하여금, 제1 타이밍 모델에 기초하여 하나 이상의 광고 미디어 세그먼트를 제1 MSE 소스 버퍼에 첨부하게 하도록 구성된 제1 첨부 코드; 적어도 하나의 프로세서로 하여금, 제2 타이밍 모델에 기초하여 하나 이상의 라이브 미디어 세그먼트를 제1 MSE 소스 버퍼에 첨부함으로써, 하나 이상의 라이브 미디어 세그먼트를 하나 이상의 광고 미디어 세그먼트에 체이닝하게 하도록 구성된 제2 첨부 코드 - 제2 타이밍 모델은 적어도 하나 이상의 라이브 미디어 세그먼트에 대한 타임 시프트 버퍼 심도를 지원함 -; 및 적어도 하나의 프로세서로 하여금, 제1 타이밍 모델 및 제2 타이밍 모델에 기초하여 하나 이상의 광고 미디어 세그먼트 및 하나 이상의 라이브 미디어 세그먼트를 디스패치하게 하도록 구성된 디스패칭 코드를 포함할 수 있다.
본 개시내용의 실시예는 명령을 저장하는 비-일시적 컴퓨터-판독가능 매체를 제공할 수 있다. 명령은 하나 이상의 명령을 포함할 수 있고, 하나 이상의 명령은, MPD 체이닝을 이용하여 2개 이상의 비선형 미디어 소스로부터 선형 미디어 소스 확장(MSE) 버퍼를 구축하기 위한 디바이스의 하나 이상의 프로세서에 의해 실행될 때, 하나 이상의 프로세서로 하여금, 하나 이상의 광고 미디어 세그먼트를 포함하는 적어도 하나의 획득된 미디어 프리젠테이션 세그먼트(MPD)를 파싱하게 하고 - 하나 이상의 광고 미디어 세그먼트는 적어도 하나의 유니버셜 리소스 로케이터(URL)를 포함함 -; 적어도 하나의 URL에 기초하여 라이브 MPD를 획득하게 하고 - 라이브 MPD는 하나 이상의 라이브 미디어 세그먼트를 포함함 -; 제1 타이밍 모델에 기초하여 하나 이상의 광고 미디어 세그먼트를 제1 MSE 소스 버퍼에 첨부하게 하고; 제2 타이밍 모델에 기초하여 하나 이상의 라이브 미디어 세그먼트를 제1 MSE 소스 버퍼에 첨부함으로써, 하나 이상의 라이브 미디어 세그먼트를 하나 이상의 광고 미디어 세그먼트에 체이닝하게 하고 - 제2 타이밍 모델은 적어도 하나 이상의 라이브 미디어 세그먼트에 대한 타임 시프트 버퍼 심도를 지원함 -; 제1 타이밍 모델 및 제2 타이밍 모델에 기초하여 하나 이상의 광고 미디어 세그먼트 및 하나 이상의 라이브 미디어 세그먼트를 디스패치하게 한다.
개시된 발명 요지의 추가의 특징, 본질, 및 다양한 장점은 다음의 상세한 설명 및 첨부 도면으로부터 더 분명할 것이다.
도 1은 실시예에 따른, 통신 시스템의 단순화된 예시도이다.
도 2는 실시예에 따른, 스트리밍 환경에서의 컴포넌트의 배치의 예시적인 예시도이다.
도 3은 실시예에 따른, DASH 프로세싱 모델의 단순화된 블록도이다.
도 4는 실시예에 따른, 광고 MPD 및 라이브 MPD 사이의 미디어 프리젠테이션 설명(MPD)의 단순화된 예시도이다.
도 5a 내지 도 5b는 실시예에 따른, 미디어 소스 확장(MSE) 버퍼의 단순화된 도면이다.
도 6은 실시예에 따른, MPD 체이닝을 이용하여 2개 이상의 비선형 소스로부터 선형 MSE 소스 버퍼를 구축하기 위한 예시적인 흐름 예시도이다.
도 7은 실시예에 따른, 컴퓨터 시스템의 단순화된 도면이다.
이하에서 논의된 제안된 특징은 별도로 이용될 수 있거나 임의의 순서로 조합될 수 있다. 또한, 실시예는 프로세싱 회로부(예컨대, 하나 이상의 프로세서 또는 하나 이상의 집적 회로)에 의해 구현될 수 있다. 하나의 예에서, 하나 이상의 프로세서는 비-일시적 컴퓨터-판독가능 매체 내에 저장되는 프로그램을 실행한다.
도 1은 본 개시내용의 실시예에 따른 통신 시스템(100)의 단순화된 블록도를 예시한다. 통신 시스템(100)은 네트워크(105)를 통해 상호접속된 적어도 2 개의 단말(102 및 103)을 포함할 수 있다. 데이터의 단방향 송신을 위하여, 제1 단말(103)은 네트워크(105)를 통한 다른 단말(102)로의 송신을 위하여 로컬 위치에서의 비디오 데이터를 코딩할 수 있다. 제2 단말(102)은 네트워크(105)로부터 다른 단말의 코딩된 비디오 데이터를 수신할 수 있고, 코딩된 데이터를 디코딩할 수 있고, 복원된 비디오 데이터를 디스플레이할 수 있다. 단방향 데이터 송신은 미디어 서빙 애플리케이션(media serving application) 등에서 보편적일 수 있다.
도 1은 예를 들어, 비디오회의 동안에 발생할 수 있는 코딩된 비디오의 양방향 송신을 지원하도록 제공된 제2 쌍의 단말(101 및 104)을 예시한다. 데이터의 양방향 송신을 위하여, 각각의 단말(101 및 104)은 네트워크(105)를 통한 다른 단말로의 송신을 위하여 로컬 위치에서 캡처된 비디오 데이터를 코딩할 수 있다. 각각의 단말(101 및 104)은 또한, 다른 단말에 의해 송신된 코딩된 비디오 데이터를 수신할 수 있고, 코딩된 데이터를 디코딩할 수 있고, 로컬 디스플레이 디바이스에서 복원된 비디오 데이터를 디스플레이할 수 있다.
도 1에서, 단말(101, 102, 103, 및 104)은 서버, 개인용 컴퓨터, 및 스마트폰으로서 예시될 수 있지만, 본 개시내용의 원리는 그렇게 제한되지는 않는다. 본 개시내용의 실시예는 랩톱 컴퓨터, 태블릿 컴퓨터, 미디어 플레이어, 및/또는 전용 비디오 회의 장비에 있어서 애플리케이션을 발견한다. 네트워크(105)는 예를 들어, 유선 및/또는 무선 통신 네트워크들을 포함하는, 단말들(101, 102, 103, 및 104) 사이에서 코딩된 비디오 데이터를 운반하는 임의의 수의 네트워크들을 표현한다. 통신 네트워크(105)는 회선-교환 및/또는 패킷-교환 채널에서 데이터를 교환할 수 있다. 대표적인 네트워크는 전기통신 네트워크, 로컬 영역 네트워크, 광역 네트워크, 및/또는 인터넷을 포함한다. 본 논의의 목적을 위하여, 네트워크(105)의 아키텍처 및 토폴로지(topology)는 이하의 본 명세서에서 설명되지 않으면, 본 개시내용의 동작에 중요하지 않을 수 있다.
도 2는 스트리밍 환경에서의 비디오 인코더 및 디코더의 배치를 예로서 예시한다. 실시예는 예를 들어, 비디오 회의, 디지털 TV, CD, DVD, 메모리 스틱 등을 포함하는 디지털 매체 상의 압축된 비디오의 저장 등을 포함하는 다른 비디오 가능형 애플리케이션에 적용가능할 수 있다.
스트리밍 시스템은 예를 들어, 비압축된 비디오 샘플 스트림(213)을 생성하는 비디오 소스(201), 예를 들어, 디지털 카메라를 포함할 수 있는 캡처 서브시스템(203)을 포함할 수 있다. 그 샘플 스트림(213)은 인코딩된 비디오 비트스트림과 비교될 때에 높은 데이터 용량으로서 강조될 수 있고, 비디오 소스(201)에 결합된 인코더(202)에 의해 프로세싱될 수 있다. 인코더(202)는 이하에 더 상세하게 설명된 바와 같은 실시예의 측면을 가능하게 하거나 구현하기 위한 하드웨어, 소프트웨어, 또는 그 조합을 포함할 수 있다. 샘플 스트림과 비교될 때에 더 낮은 데이터 용량으로서 강조될 수 있는 인코딩된 비디오 비트스트림(204)은 미래의 이용을 위하여 스트리밍 서버(205) 상에서 저장될 수 있다. 하나 이상의 스트리밍 클라이언트(212 및 207)는 인코딩된 비디오 비트스트림(204)의 복사본일 수 있는 인코딩된 비디오 비트스트림(208 및 206)을 인출(retrieve)하기 위하여 스트리밍 서버(205)를 액세스할 수 있다. 클라이언트(212)는 비디오 디코더(211)를 포함할 수 있고, 비디오 디코더(211)는 인코딩된 비디오 비트스트림(208)의 착신 복사본을 디코딩하고, 디스플레이(209) 또는 다른 렌더링 디바이스 상에서 렌더링될 수 있는 발신 비디오 샘플 스트림(210)을 생성한다. 일부 스트리밍 시스템에서, 인코딩된 비디오 비트스트림(204, 206, 및 208)은 어떤 비디오 코딩/압축 표준에 따라 인코딩될 수 있다. 그 표준의 예는 위에서 언급되고 본 명세서에서 추가로 설명된다.
도 3은 DASH 및 CMAF 이벤트를 프로세싱하기 위한 샘플 클라이언트 아키텍처의 것과 같은 샘플 DASH 프로세싱 모델(300)을 도시한다. DASH 프로세싱 모델(300)에서, 미디어 세그먼트(예컨대, 광고 미디어 세그먼트 및 라이브 미디어 세그먼트)의 클라이언트의 요청은 매니페스트(manifest)(303) 내의 설명된 어드레스에 기초할 수 있다. 매니페스트(303)는 또한, 클라이언트가 메타데이터 트랙의 세그먼트를 액세스할 수 있고, 이들을 파싱할 수 있고, 이들을 애플리케이션(301)으로 전송할 수 있는 메타데이터 트랙(metadata track)을 설명한다.
매니페스트(303)는 MPD 이벤트 또는 이벤트를 포함하고, 대역내 이벤트 및 'moof' 파서(parser)(306)는 MPD 이벤트 세그먼트 또는 이벤트 세그먼트를 파싱할 수 있고, 이벤트 세그먼트를 이벤트 및 메타데이터 버퍼(330)에 첨부할 수 있다. 대역내 이벤트 및 'moof' 파서(306)는 또한, 미디어 세그먼트를 페치(fetch)할 수 있고, 미디어 세그먼트를 미디어 버퍼(340)에 첨부할 수 있다. 이벤트 및 메타데이터 버퍼(330)는 이벤트 및 메타데이터 정보를 이벤트 및 메타데이터 동기화기 및 디스패처(dispatcher)(335)로 전송할 수 있다. 이벤트 및 메타데이터 동기화기 및 디스패처(335)는 특정 이벤트를 DASH 플레이어 제어, 선택, 및 휴리스틱(heuristic) 로직(302)으로, 그리고 애플리케이션 관련된 이벤트 및 메타데이터 트랙을 애플리케이션(301)으로 디스패치할 수 있다.
일부 실시예에 따르면, MSE는, 제1 포맷 파서(350), 미디어 버퍼(340), 및 미디어 디코더(345)를 포함하는 파이프라인을 포함할 수 있다. MSE(320)는 미디어 세그먼트의 논리적 버퍼(들)이고, 여기서, 미디어 세그먼트는 미디어 세그먼트의 프리젠테이션 시간에 기초하여 추적되고 순서화될 수 있다. 미디어 세그먼트는 광고 MPD와 연관된 광고 미디어 세그먼트, 및 라이브 MPD와 연관된 라이브 미디어 세그먼트를 포함할 수 있지만, 이것으로 제한되지 않을 수 있다. 각각의 미디어 세그먼트는 미디어 세그먼트의 타임스탬프 오프셋(timestamp offset)에 기초하여 미디어 버퍼(340)에 추가되거나 첨부될 수 있고, 타임스탬프 오프셋은 미디어 버퍼(340) 내의 미디어 세그먼트를 순서화하기 위하여 이용될 수 있다.
본 출원의 실시예는 MPD 체이닝을 이용하여 2개 이상의 비선형 미디어 소스로부터 선형 미디어 소스 확장(MSE) 버퍼를 구축하는 것에 관한 것일 수 있고, 비선형 미디어 소스는 광고 MPD 및 라이브 MPD일 수 있으므로, 파일 포맷 파서(350)는 라이브 MPD 내에 포함된 라이브 미디어 세그먼트에 의해 이용된 상이한 미디어 및/또는 코덱을 프로세싱하기 위하여 이용될 수 있다. 일부 실시예에서, 파일 포맷 파서는 라이브 미디어 세그먼트의 코덱, 프로파일, 및/또는 레벨에 기초하여 변경 유형을 발행할 수 있다.
미디어 세그먼트가 미디어 버퍼(340) 내에 존재하기만 하면, 이벤트 및 메타데이터 버퍼(330)는 대응하는 이벤트 세그먼트 및 메타데이터를 유지한다. 샘플 DASH 프로세싱 모델(300)은 대역내 및 MPD 이벤트와 연관된 메타데이터를 추정하기 위한 시간지정된 메타데이터 트랙 파서(325)를 포함할 수 있다. 도 3에 따르면, MSE(320)는 파일 포맷 파서(350), 미디어 버퍼(340), 및 미디어 디코더(345)만을 포함한다. 이벤트 및 메타데이터 버퍼(330) 및 이벤트 및 메타데이터 동기화기 및 디스패처(335)는 MSE(320)에 자생적이지 않아서, MSE(320)가 이벤트를 자생적으로 프로세싱하고 이들을 애플리케이션으로 전송하는 것을 억제한다.
도 4는 광고 MPD와 라이브 MPD 사이의 MPD 체이닝을 예시하는 단순화된 도면(400)이다.
도 4에서 도시된 바와 같이, 광고 MPD(410)는 적어도 하나의 라이브 MPD(420)에 대한 어드레스를 포함하는 하나 이상의 유니버셜 리소스 로케이터(URL)를 포함할 수 있다. 실시예의 측면에 따르면, 광고 MPD(410)와 라이브 MPD(420) 사이의 URL 링크는 MPD 체이닝일 수 있다. 각각의 광고 MPD(410)는 하나 이상의 주기 Pa1, Pa2 등을 포함할 수 있다. 유사하게, 각각의 라인 MPD(420)는 하나 이상의 주기 P1, P2 등을 포함할 수 있다. 본 개시내용의 측면에 따르면, 미디어 플레이어는 라이브 MPD(420) 이전에 광고 MPD(410)를 플레이할 수 있다.
본 개시내용의 측면에 따르면, 하나 이상의 타이밍 모델은 MPD 체이닝을 이용하는 미디어 재생을 위하여 2개 이상의 비선형 미디어 소스로부터 단일 미디어 소스 확장(MSE) 버퍼를 셋업하기 위한 DASH 플레이어를 위하여 제공될 수 있다. MSE 버퍼는 요구된 타임시프트 버퍼 심도를 지원하도록 셋업될 수 있다. 재초기화(re-initialization) 세그먼트는 상이한 코드, 프로파일, 및/또는 레벨로 광고 미디어 및 라이브 미디어의 둘 모두를 플레이하기 위하여 MSE 버퍼에 추가될 수 있다. 일부 실시예에서, DASH 플레이어가 광고를 다시 탐색하는 것을 가능하게 하기 위하여, 또는 광고 미디어 세그먼트를 라이브 미디어 세그먼트로 대체하여 DASH 플레이어가 진정한 라이브 타임시프트 버퍼를 탐색하는 것을 가능하게 하기 위하여, 광고 미디어 세그먼트가 타임시프트 버퍼 내에 유지될 수 있다.
하나 이상의 MPD는 비디오 데이터로부터 획득될 수 있다. 하나 이상의 MPD는 하나 이상의 광고 미디어 세그먼트를 생성하고 및/또는 인출하기 위하여 파싱될 수 있다. 일부 실시예에서, 하나 이상의 광고 미디어 세그먼트는 하나 이상의 라이브 미디어 세그먼트와 연관된 적어도 하나의 유니버셜 리소스 로케이터(URL)를 포함할 수 있다. 광고 미디어 세그먼트(또한, "온-디맨드 컨텐츠(on-demand content)"로서 지칭됨)는 재생 전에 이용가능할 수 있다. 광고 미디어 세그먼트는 알려진 기간을 가질 수 있는 것이 아니라, 최대 기간 - DMAX - 을 적어도 가질 수 있다. 하나 이상의 광고 미디어 세그먼트와 연관된 프리젠테이션 시간 오프셋은 타임스케일(timescale) TP를 갖는 PTOP로서 알려질 수 있다.
라이브 컨텐츠는 하나 이상의 라이브 MPD를 포함할 수 있다. 하나 이상의 라이브 MPD는 하나 이상의 라이브 미디어 세그먼트를 포함할 수 있다. 라이브 컨텐츠의 시작 시간 및 라이브 컨텐츠의 현재의 주기 시작 시간은 알려질 수 있다. 하나 이상의 라이브 미디어 세그먼트와 연관된 프리젠테이션 시간 오프셋은 타임스케일 TL을 갖는 PTOL로서 알려질 수 있다. 그 세그먼트의 추정되는 가장 빠른 프리젠테이션 시간(EEPTL)을 갖는 라이브 컨텐츠를 시작시키기 위한 세그먼트 어드레스는 알려지지 않을 수 있다. 하나 이상의 라이브 미디어 세그먼트와 연관된 최대 세그먼트 기간은 MSD로서 알려질 수 있고, 라이브 컨텐츠에 대한 희망된 타임 시프트 버퍼 심도는 TSBL로서 알려질 수 있다.
본 개시내용의 실시예에 따르면, 광고 MPD는 라이브 MPD에 관한 임의의 정보를 가지지 않을 수 있으므로, 따라서, MSE 버퍼를 셋업하기 위하여, DASH 클라이언트는 MSE 버퍼를 셋업하기 전에 라이브 MPD를 다운로드할 필요가 있을 수 있다.
전술한 실시예에 따르면, DASH 플레이어(예컨대, 300)는 하나 이상의 광고 MPD를 다운로드할 수 있고, 그것을 파싱할 수 있다. 파일 포맷 파서는 광고 MPD 내의 요구된 코덱을 발견할 수 있고 및/또는 이를 인출할 수 있다. 광고 MPD로부터의 광고 미디어 세그먼트 내의 URL을 이용하면, 라이브 MPD는 다운로드될 수 있고, 라이브 미디어 MPD의 라이브 에지 및 대응하는 주기가 발견될 수 있다. 파일 포맷 파서는 라이브 MPD 내의 요구된 코덱을 발견할 수 있고 및/또는 이를 인출할 수 있다. MSE 버퍼는 광고 MPD 및 라이브 MPD(또는 광고 미디어 세그먼트 및 라이브 미디어 세그먼트) 둘 모두 내의 코덱 정보에 기초하여 셋업될 수 있다. 광고 미디어 세그먼트는 타이밍 모델, 예컨대, 도 5a 내지 도 5b에서의 타이밍 모델을 이용하여 광고 MPD로부터 다운로드될 수 있고 MSE 버퍼에 첨부될 수 있다. 광고 미디어 세그먼트를 첨부하는 것에 후속하여, 라이브 미디어 세그먼트는 타이밍 모델, 예컨대, 도 5a 내지 도 5b에서의 타이밍 모델을 이용하여 다운로드될 수 있거나 MSE 버퍼에 첨부될 수 있다.
도 5a 내지 도 5b는 MPD 체이닝을 이용하여 광고 미디어 세그먼트 및 라이브 미디어 세그먼트를 프로세싱하기 위한 예시적인 미디어 소스 버퍼(500) 및 미디어 소스 버퍼(550)를 도시한다.
도 5a에서 도시된 바와 같이, MSE 첨부 윈도우는 최대 광고 기간(예컨대, DMAX) 이상과 동일하거나 그보다 큰 크기로 정의될 수 있다. MSE 첨부 윈도우 타임스탬프 오프셋은 광고 세그먼트를 첨부하면서, TSOP = -(PTOP/TP)로서 설정될 수 있다.
도 5b에서 도시된 바와 같이, MSE 첨부 윈도우는 DASH 클라이언트에 의한 라이브 MPD 타임 시프트 버퍼(TSBL)를 고려하여 DLive로 크기조정될 수 있다. 일부 실시예에서, DLive = Max(TSBL, DMAX) 이상. MSE 첨부 윈도우 타임스탬프 오프셋은 TSOL로서 재설정될 수 있고, 여기서, TSOL는 제1 라이브 세그먼트를 첨부하기 이전에 Max(TSBL, DMAX) + EEPTL + MSD - (PTOL/TL)과 동일할 수 있다. 첨부 및 타임스탬프 오프셋에 기초하여, 광고 미디어 세그먼트 시간과 라이브 미디어 세그먼트 시간 사이에 MSE 버퍼에 대한 탐색이 있을 수 있다. 광고 미디어 세그먼트의 마지막 프레임이 라이브 미디어 세그먼트 이전에 플레이되는 것에 기초하여, 라이브 미디어 세그먼트의 시작부에 대한 탐색이 있을 수 있다. 광고 미디어 세그먼트 시간 범위는 광고 미디어 세그먼트가 한 번 플레이될 것으로 예상되는 경우에 퍼징(purge)될 수 있다. 광고 미디어 세그먼트가 플레이어가 타임 시프트된 라이브 미디어 세그먼트를 탐색한 후에 플레이될 수 있는 실시예에서는, 세 번째 시간 범위가 시간-시프트된 라이브 미디어 세그먼트에 대하여 생성될 수 있다.
광고는 한 번 플레이되고 제거됨
MSE 셋업: MSE가 광고 비디오 코덱 및 프로파일을 지원할 수 있는지를 체크하고; MSE 버퍼를 생성하고; MSE 버퍼 첨부 윈도우 기간은 DMAX로 셋업될 수 있다.
재생: MSE 타임스탬프 오프셋은 TSO = -(PTOP/TP)에 기초하여 설정될 수 있고; 제1 광고 미디어 세그먼트는 인출될 수 있고 MSE 버퍼에 첨부될 수 있고; 광고 MPD 내의 광고 미디어 세그먼트의 각각은 MSE 버퍼에 첨부될 수 있다. 각각의 미디어 세그먼트가 다운로드되는 것에 후속하여, MSE 첨부 윈도우는 기간 DLIVE로 확장될 수 있고, 타임 스탬프 오프셋은 TSOL = Max(TSBL, DMAX) + EPT + MSD - (PTOL/TL)일 수 있다. 제1 라이브 미디어 세그먼트는 MSE 버퍼에 첨부될 수 있고, 라이브 MPD로부터의 각각의 라이브 미디어 세그먼트가 또한 첨부될 수 있다. 광고 미디어 세그먼트의 종료부에 도달하는 것에 기초하여, 라이브 미디어 세그먼트의 시작 시간을 탐색한다.
타임시프트 버퍼: 광고 미디어 세그먼트의 시작부부터 종료부까지의 범위는 제거될 수 있다.
광고는 한 번 플레이되지만, 미드-롤(Mid-Roll)로 체류함
MSE 셋업: MSE가 광고 비디오 코덱 및 프로파일을 지원할 수 있는지를 체크하고; MSE 버퍼를 생성하고; MSE 버퍼 첨부 윈도우 기간은 TSBMax = DMAX + TSBDL의 상부 추정치로 셋업될 수 있다. 첨부 윈도우의 시작부는 제로(zero)로 설정될 수 있고, 첨부 윈도우의 종료부는 TSBMax + DLive로 설정될 수 있다. 일부 실시예에서, 라이브 프로그램의 기간이 알려지지 않는 경우에, 첨부 윈도우 종료부는 큰 값 또는 무한대일 수 있다.
재생: MSE 타임 스탬프 오프셋은 TSO = TSBMax - DMAX - (PTOP/TP)로 설정될 수 있다. 제1 광고 미디어 세그먼트는 인출될 수 있고 MSE 버퍼에 첨부될 수 있고; 광고 MPD 내의 광고 미디어 세그먼트의 각각은 MSE 버퍼에 첨부될 수 있다. 변경 유형은 라이브 미디어 세그먼트의 코덱, 프로파일, 및/또는 레벨에 관계없이 발행될 수 있다. 타임 스탬프 오프셋은 TSOL = Max(TSBL, DMAX) + EPT + MSD - (PTOL/TL)로 설정될 수 있다. 제1 라이브 미디어 세그먼트는 MSE 버퍼에 첨부될 수 있고, 라이브 MPD로부터의 각각의 라이브 미디어 세그먼트가 또한 첨부될 수 있다. 광고 미디어 세그먼트의 종료부에 도달하는 것에 기초하여, 라이브 미디어 세그먼트의 시작 시간을 탐색한다. 그 다음으로, 제1 광고 미디어 세그먼트는 다시 인출될 수 있고, MSE에 첨부될 수 있다.
타임시프트 버퍼 관리: 타임 시프트 버퍼에 대한 타임 스탬프 오프셋은 TSO = TSBMax - DMax - (PTOP/TP) -(PTOL/TL)로서 설정될 수 있다. 광고 미디어 세그먼트가 다시 플레이되는 것에 기초하여, 하나 이상의 광고 미디어 세그먼트는 인출될 수 있고, 타임 시프트 버퍼에 첨부될 수 있다. 각각의 광고 미디어 세그먼트는 타임 시프트 버퍼에 첨부될 수 있다.
W3C 암호화된 미디어 확장(EME) 인터페이스
W3C EME 인터페이스는 미디어 재생에서 암호화된 데이터의 복호화를 위하여 이용될 수 있다. 광고 컨텐츠는 통상적으로 보호되지 않을 수 있다. 그러나, 라이브 컨텐츠는 보호될 수 있다. 라이브 컨텐츠가 보호될 때, 플레이어는 광고 MPD를 다운로드할 필요가 있을 수 있고, 그 광고 MPD 내의 URL을 이용하여, 라이브 MPD를 다운로드할 수 있다. 라이브 MPD 내의 정보를 이용하면, 플레이어는 EME 및 MSE 파이프라인을 셋업할 수 있다. EME 파이프라인 셋업은 허가 서버로부터 허가 키(license key)를 얻는 것을 포함할 수 있다. 그 다음으로, 플레이어는 광고 MPD를 이용하여 광고 세그먼트를 다운로드하는 것을 시작할 수 있고, 이들을 미디어 파이프라인으로 첨부할 수 있다.
일부 실시예에서, 광고 MPD는 라이브 MPD에 대한 정보를 가지지 않을 수 있으므로, MSE 및 EME는 순차적으로 셋업될 수 있다. 플레이어는 광고 MPD를 다운로드할 수 있다. 광고 MPD 내의 URL을 이용하면, 플레이어는 라이브 MPD를 다운로드할 수 있고 이를 파싱할 수 있다. 라이브 MPD의 파라미터가 주어지면, 플레이어는 MSE 및 EME 버퍼를 셋업할 수 있다. 그 다음으로, 플레이어는 추후의 광고 MPD를 다운로드할 수 있고, 대응하는 세그먼트를 다운로드하고 이들을 미디어 파이프라인에 첨부하는 것을 시작할 수 있다.
일부 실시예에서, 광고 MPD는 라이브 MPD에 대한 정보를 가질 수 있고, MSE 및 EME는 병렬로 셋업될 수 있다. 플레이어는 광고 MPD를 다운로드할 수 있고, 그 다음으로, 광고 MPD를 파싱하는 것에 기초하여, 플레이어는 그 주기를 그의 내부 메모리 내에 할 수 있다. 광고 MPD 내의 URL을 이용하면, 플레이어는 라이브 MPD를 다운로드할 수 있고 이를 파싱할 수 있고, 그 주기를 그의 내부 메모리 내에 저장할 수 있다. 광고 및 라이브 MPD의 파라미터가 주어지면, 플레이어는 MSE 및 EME 버퍼를 셋업할 수 있다. 그 다음으로, 광고 주기로부터의 광고 세그먼트가 다운로드될 수 있고, 미디어 파이프라인에 첨부될 수 있다.
도 6은 MPD 체이닝을 이용하여 2개 이상의 비선형 미디어 소스로부터 선형 미디어 소스 확장(MSE) 버퍼를 구축하기 위한 프로세스(600)를 예시하는 예시적인 흐름도를 도시한다.
동작(610)에서는, 하나 이상의 광고 미디어 세그먼트를 포함하는 적어도 하나의 획득된 미디어 프리젠테이션 세그먼트(MPD)가 파싱될 수 있다. 하나 이상의 광고 미디어 세그먼트는 적어도 하나의 유니버셜 리소스 로케이터(URL)를 포함할 수 있다. 예로서, 매니페스트 파서(303), 대역내 이벤트, 및 moof 파서(306)는 획득된 MPD를 파싱할 수 있다. 동작은 적어도 하나의 획득된 MPD 및 라이브 MPD와 연관된 하나 이상의 코드를 인출하는 것을 포함할 수 있다.
동작(615)에서, 라이브 MPD는 적어도 하나의 URL에 기초하여 획득될 수 있고, 라이브 MPD는 하나 이상의 라이브 미디어 세그먼트를 포함할 수 있다. 예로서, 라이브 MPD(420)는 광고 MPD(410) 내의 URL을 파싱하는 것에 기초하여 획득될 수 있다.
동작(620)에서, 하나 이상의 광고 미디어 세그먼트는 제1 타이밍 모델에 기초하여 제1 버퍼에 첨부될 수 있다. 일부 실시예에서, 제1 버퍼는 적어도 하나의 획득된 MPD에기초하여 제1 최대 기간으로 확장될 수 있다. 예로서, MSE 버퍼는 DMAX로 확장될 수 있다. 제1 버퍼의 타임스탬프 오프셋은 또한, 하나 이상의 광고 미디어 세그먼트와 연관된 제1 프리젠테이션 시간 오프셋에 기초하여 설정될 수 있다. 예로서, 제1 프리젠테이션 시간 오프셋은 TSO = TSBMax - DMAX - (PTOP/TP)를 포함할 수 있다. 일부 실시예에서, 제1 프리젠테이션 시간 오프셋은 TSO = -(PTOP/TP)를 포함할 수 있다.
동작(625)에서, 하나 이상의 라이브 미디어 세그먼트는 제2 타이밍 모델에 기초하여 하나 이상의 라이브 미디어 세그먼트를 제1 버퍼에 첨부함으로써, 하나 이상의 광고 미디어 세그먼트에 체이닝될 수 있다. 일부 실시예에서, 라이브 미디어 세그먼트는 각각의 광고 미디어 세그먼트가 추가된 후에만 첨부될 수 있다. 제2 타이밍 모델에 기초하여 첨부하는 것은, 하나 이상의 라이브 미디어 세그먼트에 기초하여 제1 버퍼를 제2 최대 기간으로 확장하는 것을 포함할 수 있다. 하나 이상의 라이브 미디어 세그먼트와 연관된 제2 프리젠테이션 시간 오프셋에 기초한 제1 버퍼의 타임스탬프 오프셋이 재설정될 수 있다. 예로서, MSE는 TSOL = Max(TSBL, DMAX) + EPT + MSD - (PTOL/TL)로 확장될 수 있다.
하나 이상의 라이브 미디어 세그먼트 중에서 제1 라이브 미디어 세그먼트는 제1 버퍼에 첨부될 수 있다. 실시예에 따르면, 제2 프리젠테이션 시간 오프셋은 하나 이상의 라이브 미디어 세그먼트와 연관된 추정되는 가장 빠른 프리젠테이션 시간, 및 하나 이상의 라이브 미디어 세그먼트와 연관된 최대 세그먼트 기간에 기초한다.
플레이어는 하나 이상의 광고 미디어 세그먼트의 마지막 프레임이 플레이되는 것에 기초하여, 제1 버퍼 내에 첨부된 하나 이상의 라이브 미디어 세그먼트의 시작부를 탐색할 수 있다.
동작(630)에서, 하나 이상의 광고 미디어 세그먼트 및 하나 이상의 라이브 미디어 세그먼트는 제1 타이밍 모델 및 제2 타이밍 모델에 기초하여 디스패치될 수 있다. 일부 실시예에서, 제1 광고 미디어 세그먼트가 한 번 플레이되도록 구성되는 것에 기초하여, 제1 버퍼로부터의 하나 이상의 광고 미디어 세그먼트 중에서 제1 광고 미디어 세그먼트가 퍼징될 수 있다. 다른 실시예에서, 하나 이상의 광고 미디어 세그먼트 중에서 제1 광고 미디어 세그먼트는 제1 광고 미디어 세그먼트가 한 번을 초과하여 플레이되도록 구성되는 것에 기초하여 제3 버퍼(예컨대, 타임스탬프 버퍼)에 첨부될 수 있고, 하나 이상의 라이브 미디어 세그먼트 중에서 제1 라이브 미디어 세그먼트는 제1 광고 미디어 세그먼트가 제1 라이브 미디어 세그먼트 동안에 미드롤(midroll) 광고인 것에 기초하여 제1 광고 미디어 세그먼트 이전에 첨부될 수 있다.
일부 실시예에서, 하나 이상의 라이브 미디어 세그먼트가 암호화되는 것에 기초하여, 하나 이상의 허가 키는 허가 서버로부터 인출될 수 있고, 하나 이상의 허가 키는 제2 버퍼 내에 저장될 수 있고 및/또는 첨부될 수 있다.
도 6은 프로세스(600)의 예시적인 블록을 도시하지만, 실시예에서, 프로세스(600)는 도 6에서 도시된 것보다 추가적인 블록, 더 적은 블록, 상이한 블록, 또는 상이하게 배열된 블록을 포함할 수 있다. 실시예에서, 프로세스(600)의 임의의 블록은 희망된 바와 같이, 임의의 양 또는 순서로 조합되거나 배열될 수 있다. 실시예에서, 프로세스(600)의 블록 중의 2개 이상은 병렬로 수행될 수 있다.
위에서 설명된 기법은 컴퓨터-판독가능 명령을 이용하고 하나 이상의 컴퓨터-판독가능 매체에서 물리적으로 저장된 컴퓨터 소프트웨어로서, 또는 구체적으로 구성된 하나 이상의 하드웨어 프로세서에 의해 구현될 수 있다. 예를 들어, 도 7은 다양한 실시예를 구현하기 위하여 적당한 컴퓨터 시스템(700)을 도시한다.
컴퓨터 소프트웨어는 컴퓨터 중앙 프로세싱 유닛(CPU : central processing unit), 그래픽 프로세싱 유닛(GPU : Graphics Processing Unit) 등에 의해 직접적으로, 또는 해독, 마이크로-코드 실행 등을 통해 실행될 수 있는 명령을 포함하는 코드를 생성하기 위하여 어셈블리(assembly), 컴파일링(compilation), 링크(linking) 등에 종속적일 수 있는 임의의 적당한 머신 코드 또는 컴퓨터 언어를 이용하여 코딩될 수 있다.
명령은 예를 들어, 개인용 컴퓨터, 태블릿 컴퓨터, 서버, 스마트폰, 게이밍 디바이스, 사물 인터넷 디바이스 등을 포함하는 다양한 유형의 컴퓨터 또는 그 컴포넌트 상에서 실행될 수 있다.
컴퓨터 시스템(700)에 대하여 도 7에서 도시된 컴포넌트는 본질적으로 예시적이고, 본 개시내용의 실시예를 구현하는 컴퓨터 소프트웨어의 이용 또는 기능성의 범위에 대한 임의의 제한을 제안하도록 의도되지는 않는다. 컴포넌트의 구성은 컴퓨터 시스템(700)의 예시적인 실시예에서 예시된 컴포넌트의 임의의 하나 또는 조합에 관련되는 임의의 종속성 또는 요건을 가지는 것으로서 해독되지 않아야 한다.
컴퓨터 시스템(700)은 어떤 인간 인터페이스 입력 디바이스를 포함할 수 있다. 이러한 인간 인터페이스 입력 디바이스는 예를 들어, (키스트로크(keystroke), 스와이프(swipe), 데이터 글러브 이동(data glove movement)과 같은) 촉각적 입력, (음성, 클랩핑(clapping)과 같은) 오디오 입력, (제스처(gesture)와 같은) 시각적 입력, 후각적 입력을 통해 하나 이상의 인간 사용자에 의한 입력에 응답할 수 있다. 인간 인터페이스 디바이스는 또한, (음성, 음악, 주변 사운드와 같은) 오디오, (스캔된 이미지, 스틸 이미지 카메라로부터 획득된 사진 이미지와 같은) 이미지, (2 차원 비디오, 입체적 비디오를 포함하는 3 차원 비디오와 같은) 비디오와 같은, 인간에 의한 지각적 입력에 반드시 직접적으로 관련되지 않은 어떤 미디어를 캡처하기 위하여 이용될 수 있다.
입력 인간 인터페이스 디바이스는 키보드(701), 마우스(702), 트랙패드(703), 터치 스크린(710), 조이스틱(705), 마이크로폰(706), 스캐너(708), 카메라(707) 중의 하나 이상(각각 중의 오직 하나만 도면에서 도시됨)을 포함할 수 있다.
컴퓨터 시스템(700)은 또한, 어떤 인간 인터페이스 출력 디바이스를 포함할 수 있다. 이러한 인간 인터페이스 출력 디바이스는 예를 들어, 촉각적 출력, 음, 광, 및 냄새/맛을 통해 하나 이상의 인간 사용자의 감각을 자극하는 것일 수 있다. 이러한 인간 인터페이스 출력 디바이스는 촉각적 출력 디바이스(예를 들어, 터치-스크린(710), 또는 조이스틱(705)에 의한 촉각적 피드백이지만, 입력 디바이스로서 역할을 하지 않는 촉각적 피드백 디바이스가 또한 있을 수 있음), (스피커(709), 헤드폰과 같은) 오디오 출력 디바이스, (각각이 터치-스크린 입력 능력을 갖거나 갖지 않고, 각각이 촉각적 피드백 능력을 갖거나 갖지 않고, 그 일부는 입체적 출력, 가상 현실 안경(도시되지 않음), 홀로그래픽 디스플레이, 및 연기 탱크(smoke tank)와 같은 수단을 통해 2 차원 시각적 출력 또는 3 차원 초과 출력을 출력하는 것이 가능할 수 있는, CRT 스크린, LCD 스크린, 플라즈마 스크린, OLED 스크린을 포함하기 위한 스크린(710)과 같은) 시각적 출력 디바이스, 및 프린터를 포함할 수 있다.
컴퓨터 시스템(700)은 또한, CD/DVD(711) 또는 유사한 매체를 갖는 CD/DVD ROM/RW(720)를 포함하는 광학 매체, 썸-드라이브(thumb-drive)(722), 분리가능 하드 드라이브 또는 솔리드 스테이트 드라이브(723), 테이프 및 플로피 디스크와 같은 레거시 자기 매체, 보안 동글(security dongle)과 같은 특화된 ROM/ASIC/PLD 기반 디바이스 등과 같은 인간 액세스가능한 저장 디바이스 및 그 연관된 매체를 포함할 수 있다.
본 기술분야에서의 통상의 기술자는 또한, 현재 개시된 발명 요지와 관련하여 이용된 바와 같은 용어 "컴퓨터 판독가능 매체"가 송신 매체, 반송파, 또는 다른 일시적 신호를 망라하지 않는다는 것을 이해해야 한다.
컴퓨터 시스템(700)은 또한, 하나 이상의 통신 네트워크(798)에 대한 인터페이스(799)를 포함할 수 있다. 네트워크(798)는 예를 들어, 무선, 유선, 광일 수 있다. 네트워크(798)는 추가로, 로컬, 광역, 대도시, 차량 및 산업, 실시간, 내지연성(delay-tolerant) 등일 수 있다. 네트워크(798)의 예는 이더넷(Ethernet), 무선 LAN, GSM, 3G, 4G, 5G, LTE 등을 포함하기 위한 셀룰러 네트워크, 케이블 TV, 위성 TV, 및 지상 방송 TV를 포함하기 위한 TV 유선 또는 무선 광역 디지털 네트워크, CANBus를 포함하기 위한 차량 및 산업 등과 같은 로컬 영역 네트워크를 포함한다. 어떤 네트워크(798)는 (예를 들어, 컴퓨터 시스템(700)의 USB 포트와 같은) 어떤 범용 데이터 포트 또는 주변 버스(750 및 751)에 연결된 외부 네트워크 인터페이스 어댑터를 보편적으로 요구하고; 다른 것은 통상적으로, 이하에 설명된 바와 같은 시스템 버스로의 연결(예를 들어, PC 컴퓨터 시스템으로의 이더넷 인터페이스, 또는 스마트폰 컴퓨터 시스템으로의 셀룰러 네트워크 인터페이스)에 의해 컴퓨터 시스템(700)의 코어로 통합된다. 이 네트워크(798) 중의 임의의 것을 이용하여, 컴퓨터 시스템(700)은 다른 엔티티와 통신할 수 있다. 이러한 통신은 예를 들어, 로컬 또는 광역 디지털 네트워크를 이용하는 다른 컴퓨터 시스템에 대해 단방향성 수신 단독(예를 들어, 방송 TV), 단방향성 전송-단독(예를 들어, 어떤 CANbus 디바이스에 대한 CANbus), 또는 양방향성일 수 있다. 어떤 프로토콜 및 프로토콜 스택(protocol stack)은 위에서 설명된 바와 같은 그 네트워크 및 네트워크 인터페이스의 각각 상에서 이용될 수 있다.
전술한 인간 인터페이스 디바이스, 인간-액세스가능한 저장 디바이스, 및 네트워크 인터페이스는 컴퓨터 시스템(700)의 코어(740)에 연결될 수 있다.
코어(740)는 하나 이상의 중앙 프로세싱 유닛(CPU)(741), 그래픽 프로세싱 유닛(GPU)(742), 그래픽 어댑터(717), 필드 프로그래밍가능 게이트 영역(FPGA : Field Programmable Gate Area)(743)의 형태인 특화된 프로그래밍가능 프로세싱 유닛, 어떤 태스크를 위한 하드웨어 가속기(744) 등을 포함할 수 있다. 이 디바이스는 판독-전용 메모리(ROM : Read-only memory)(745), 랜덤-액세스 메모리(Random-access memory)(746), 내부 비-사용자 액세스가능한 하드 드라이브와 같은 내부 대용량 스토리지, SSD 등(747)과 함께, 시스템 버스(748)를 통해 접속될 수 있다. 일부 컴퓨터 시스템에서, 시스템 버스(748)는 추가적인 CPU, GPU 등에 의한 확장을 가능하게 하기 위하여 하나 이상의 물리적 플러그(physical plug)의 형태로 액세스가능할 수 있다. 주변 디바이스는 직접적으로 코어의 시스템 버스(748)에, 또는 주변 버스(751)를 통해 연결될 수 있다. 주변 버스를 위한 아키텍처는 PCI, USB 등을 포함한다.
CPU(741), GPU(742), FPGA(743), 및 가속기(744)는 전술한 컴퓨터 코드를 조합으로 구성할 수 있는 어떤 명령을 실행할 수 있다. 그 컴퓨터 코드는 ROM(745) 또는 RAM(746) 내에 저장될 수 있다. 과도적 데이터는 또한, RAM(746) 내에 저장될 수 있는 반면, 영구적 데이터는 예를 들어, 내부 대용량 스토리지(747) 내에 저장될 수 있다. 메모리 디바이스 중의 임의의 것에 대한 고속 저장 및 인출은 하나 이상의 CPU(741), GPU(742), 대용량 스토리지(747), ROM(745), RAM(746) 등과 밀접하게 연관될 수 있는 캐시 메모리의 이용을 통해 가능하게 될 수 있다.
컴퓨터 판독가능 매체는 다양한 컴퓨터-구현된 동작을 수행하기 위하여 그 상에서 컴퓨터 코드를 가질 수 있다. 매체 및 컴퓨터 코드는 본 개시내용의 목적을 위하여 특수하게 설계되고 구성된 것일 수 있거나, 이들은 컴퓨터 소프트웨어 기술분야에서 통상의 기술자에게 널리 공지되고 이용가능한 종류일 수 있다.
제한이 아닌 예로서, 예시된 아키텍처 및 구체적으로 코어(740)를 가지는 컴퓨터 시스템(700)은 하나 이상의 유형의 컴퓨터-판독가능 매체에서 구체화된 소프트웨어를 실행하는 (CPU, GPU, FPGA, 가속기 등을 포함하는) 프로세서(들)의 결과로서의 기능성을 제공할 수 있다. 이러한 컴퓨터-판독가능 매체는 위에서 도입된 바와 같은 사용자-액세스가능한 대용량 스토리지 뿐만 아니라, 코어-내부 대용량 스토리지(747) 또는 ROM(745)과 같은, 비-일시적 본질인 코어(740)의 어떤 스토리지와 연관된 매체일 수 있다. 본 개시내용의 다양한 실시예를 구현하는 소프트웨어는 이러한 디바이스 내에 저장될 수 있고 코어(740)에 의해 실행될 수 있다. 컴퓨터-판독가능 매체는 특정한 필요성에 따라, 하나 이상의 메모리 디바이스 또는 칩을 포함할 수 있다. 소프트웨어는 코어(740) 및 구체적으로, (CPU, GPU, FPGA 등을 포함하는) 그 안의 프로세서들로 하여금, RAM(746) 내에 저장된 데이터 구조를 정의하는 것, 및 소프트웨어에 의해 정의된 프로세스에 따라 이러한 데이터 구조를 수정하는 것을 포함하는, 본 명세서에서 설명된 특정한 프로세스 또는 특정한 프로세스의 특정한 부분을 실행하게 할 수 있다. 추가적으로 또는 대안으로서, 컴퓨터 시스템은 본 명세서에서 설명된 특정한 프로세스 또는 특정한 프로세스의 특정한 부분을 실행하기 위하여 소프트웨어 대신에 또는 소프트웨어와 함께 동작할 수 있는, 회로(예를 들어, 가속기(744))에서 와이어링되거나 또는 그렇지 않을 경우에 구체화된 로직의 결과로서의 기능성을 제공할 수 있다. 소프트웨어에 대한 참조는 로직을 망라할 수 있고, 적절할 경우에 그 반대도 마찬가지이다. 컴퓨터-판독가능 매체에 대한 참조는 실행을 위한 소프트웨어를 저장하는 (집적 회로(IC : integrated circuit)와 같은) 회로, 실행을 위한 로직을 구체화하는 회로, 또는 적절할 경우에 둘 모두를 망라할 수 있다. 본 개시내용은 하드웨어 및 소프트웨어의 임의의 적당한 조합을 망라한다.
이 개시내용은 몇몇 예시적인 실시예를 설명하였지만, 개시내용의 범위 내에 속하는 개조, 치환, 다양한 적당한 등가물이 있다. 본 기술분야에서의 통상의 기술자는, 본 명세서에서 명시적으로 도시되거나 설명되지 않았지만, 개시내용의 원리를 구체화하고, 이에 따라, 그 사상 및 범위 내에 있는 수많은 시스템 및 방법을 고안할 수 있을 것이라는 것이 이에 따라 인식될 것이다.

Claims (20)

  1. MPD 체이닝(chaining)을 이용하여 2개 이상의 비선형 미디어 소스로부터 선형 미디어 소스 확장(MSE : media source extension) 버퍼를 구축하기 위한 방법으로서,
    상기 방법은 적어도 하나의 프로세서에 의해 수행되고, 상기 방법은,
    하나 이상의 광고 미디어 세그먼트를 포함하는 적어도 하나의 획득된 미디어 프리젠테이션 세그먼트(MPD : media presentation segment)를 파싱하는 단계 - 상기 하나 이상의 광고 미디어 세그먼트는 적어도 하나의 유니버셜 리소스 로케이터(URL : universal resource locator)를 포함함 -;
    상기 적어도 하나의 URL에 기초하여 라이브 MPD를 획득하는 단계 - 상기 라이브 MPD는 하나 이상의 라이브 미디어 세그먼트를 포함함 -;
    제1 타이밍 모델에 기초하여 상기 하나 이상의 광고 미디어 세그먼트를 제1 미디어 소스 확장(MSE) 소스 버퍼에 첨부하는 단계;
    제2 타이밍 모델에 기초하여 상기 하나 이상의 라이브 미디어 세그먼트를 상기 제1 MSE 소스 버퍼에 첨부함으로써, 상기 하나 이상의 라이브 미디어 세그먼트를 상기 하나 이상의 광고 미디어 세그먼트에 체이닝하는 단계 - 상기 제2 타이밍 모델은 적어도 상기 하나 이상의 라이브 미디어 세그먼트에 대한 타임 시프트 버퍼 심도(time shift buffer depth)를 지원함 -; 및
    상기 제1 타이밍 모델 및 상기 제2 타이밍 모델에 기초하여 상기 하나 이상의 광고 미디어 세그먼트 및 상기 하나 이상의 라이브 미디어 세그먼트를 디스패치(dispatch)하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서,
    상기 제1 타이밍 모델에 기초하여 상기 하나 이상의 광고 미디어 세그먼트를 상기 제1 MSE 소스 버퍼에 첨부하는 단계는,
    상기 적어도 하나의 획득된 MPD에 기초하여 상기 제1 MSE 소스 버퍼를 제1 최대 기간으로 확장하는 단계; 및
    상기 하나 이상의 광고 미디어 세그먼트와 연관된 제1 프리젠테이션 시간 오프셋에 기초하여 상기 제1 MSE 소스 버퍼의 타임스탬프 오프셋(timestamp offset)을 설정하는 단계
    를 포함하는, 방법.
  3. 제2항에 있어서,
    상기 제2 타이밍 모델에 기초하여 상기 하나 이상의 라이브 미디어 세그먼트를 상기 제1 MSE 소스 버퍼에 첨부하는 것은,
    상기 하나 이상의 라이브 미디어 세그먼트에 기초하여 상기 제1 MSE 소스 버퍼를 제2 최대 기간으로 확장하는 것;
    상기 하나 이상의 라이브 미디어 세그먼트와 연관된 제2 프리젠테이션 시간 오프셋에 기초하여 상기 제1 MSE 소스 버퍼의 상기 타임스탬프 오프셋을 재설정하는 것; 및
    상기 하나 이상의 라이브 미디어 세그먼트 중에서 제1 라이브 미디어 세그먼트를 상기 제1 MSE 소스 버퍼에 첨부하는 것
    을 포함하는, 방법.
  4. 제3항에 있어서,
    상기 제2 프리젠테이션 시간 오프셋은 상기 하나 이상의 라이브 미디어 세그먼트와 연관된 추정되는 가장 빠른 프리젠테이션 시간, 및 상기 하나 이상의 라이브 미디어 세그먼트와 연관된 최대 세그먼트 기간에 기초하는, 방법.
  5. 제1항에 있어서,
    상기 적어도 하나의 획득된 MPD 및 상기 라이브 MPD와 연관된 하나 이상의 코드를 인출하는 단계를 더 포함하는, 방법.
  6. 제1항에 있어서,
    상기 하나 이상의 광고 미디어 세그먼트의 마지막 프레임이 플레이되는 것에 기초하여, 상기 제1 MSE 소스 버퍼 내에 첨부된 상기 하나 이상의 라이브 미디어 세그먼트의 시작부를 탐색하는 단계를 더 포함하는, 방법.
  7. 제1항에 있어서,
    상기 하나 이상의 라이브 미디어 세그먼트가 암호화되는 것에 기초하여, 허가 서버로부터 하나 이상의 허가 키를 인출하는 단계; 및
    상기 하나 이상의 허가 키를 제2 버퍼 내에 첨부하는 단계
    를 더 포함하는 방법.
  8. 제1항에 있어서,
    상기 제1 광고 미디어 세그먼트가 한 번 플레이되도록 구성되는 것에 기초하여, 상기 제1 MSE 소스 버퍼로부터 상기 하나 이상의 광고 미디어 세그먼트 중에서 제1 광고 미디어 세그먼트를 퍼징(purging)하는 단계를 더 포함하는 방법.
  9. 제1항에 있어서,
    상기 제1 광고 미디어 세그먼트가 한 번 초과하여 플레이되도록 구성되는 것에 기초하여, 상기 하나 이상의 광고 미디어 세그먼트 중에서 제1 광고 미디어 세그먼트를 제3 버퍼에 첨부하는 단계; 및
    상기 제1 광고 미디어 세그먼트가 제1 라이브 미디어 세그먼트 동안에 미드롤 광고(midroll ad)인 것에 기초하여, 상기 제1 광고 미디어 세그먼트 이전에 하나 이상의 라이브 미디어 세그먼트 중에서 제1 라이브 미디어 세그먼트를 첨부하는 단계
    를 더 포함하는 방법.
  10. MPD 체이닝을 이용하여 2개 이상의 비선형 미디어 소스로부터 선형 미디어 소스 확장(MSE) 버퍼를 구축하기 위한 장치로서,
    컴퓨터 프로그램 코드를 저장하도록 구성된 적어도 하나의 메모리;
    상기 컴퓨터 프로그램 코드를 액세스하고 상기 컴퓨터 프로그램 코드에 의해 명령된 바와 같이 동작하도록 구성된 적어도 하나의 프로세서
    를 포함하고, 상기 컴퓨터 프로그램 코드는,
    상기 적어도 하나의 프로세서로 하여금, 하나 이상의 광고 미디어 세그먼트를 포함하는 적어도 하나의 획득된 미디어 프리젠테이션 세그먼트(MPD)를 파싱하게 하도록 구성된 파싱 코드 - 상기 하나 이상의 광고 미디어 세그먼트는 적어도 하나의 유니버셜 리소스 로케이터(URL)를 포함함 -;
    상기 적어도 하나의 프로세서로 하여금, 상기 적어도 하나의 URL에 기초하여 라이브 MPD를 획득하게 하도록 구성된 제1 획득 코드 - 상기 라이브 MPD는 하나 이상의 라이브 미디어 세그먼트를 포함함 -;
    상기 적어도 하나의 프로세서로 하여금, 제1 타이밍 모델에 기초하여 상기 하나 이상의 광고 미디어 세그먼트를 제1 미디어 소스 확장(MSE) 소스 버퍼에 첨부하게 하도록 구성된 제1 첨부 코드;
    상기 적어도 하나의 프로세서로 하여금, 제2 타이밍 모델에 기초하여 상기 하나 이상의 라이브 미디어 세그먼트를 상기 제1 MSE 소스 버퍼에 첨부함으로써, 상기 하나 이상의 라이브 미디어 세그먼트를 상기 하나 이상의 광고 미디어 세그먼트에 체이닝하게 하도록 구성된 제2 첨부 코드 - 상기 제2 타이밍 모델은 적어도 상기 하나 이상의 라이브 미디어 세그먼트에 대한 타임 시프트 버퍼 심도를 지원함 -; 및
    상기 적어도 하나의 프로세서로 하여금, 상기 제1 타이밍 모델 및 상기 제2 타이밍 모델에 기초하여 상기 하나 이상의 광고 미디어 세그먼트 및 상기 하나 이상의 라이브 미디어 세그먼트를 디스패치하게 하도록 구성된 디스패칭 코드
    를 포함하는, 장치.
  11. 제10항에 있어서,
    상기 제1 첨부 코드는,
    상기 적어도 하나의 프로세서로 하여금, 상기 적어도 하나의 획득된 MPD에 기초하여 상기 제1 MSE 소스 버퍼를 제1 최대 기간으로 확장하게 하도록 구성된 제1 확장 코드; 및
    상기 적어도 하나의 프로세서로 하여금, 상기 하나 이상의 광고 미디어 세그먼트와 연관된 제1 프리젠테이션 시간 오프셋에 기초하여 상기 제1 MSE 소스 버퍼의 타임스탬프 오프셋을 설정하게 하도록 구성된 제1 설정 코드
    를 포함하는, 장치.
  12. 제11항에 있어서,
    상기 제2 첨부 코드는,
    상기 적어도 하나의 프로세서로 하여금, 상기 하나 이상의 라이브 미디어 세그먼트에 기초하여 상기 제1 MSE 소스 버퍼를 제2 최대 기간으로 확장하게 하도록 구성된 제2 확장 코드;
    상기 적어도 하나의 프로세서로 하여금, 상기 하나 이상의 라이브 미디어 세그먼트와 연관된 제2 프리젠테이션 시간 오프셋에 기초하여 상기 제1 MSE 소스 버퍼의 상기 타임스탬프 오프셋을 재설정하게 하도록 구성된 재설정 코드; 및
    상기 적어도 하나의 프로세서로 하여금, 상기 하나 이상의 라이브 미디어 세그먼트 중에서 제1 라이브 미디어 세그먼트를 상기 제1 MSE 소스 버퍼에 첨부하게 하도록 구성된 제3 첨부 코드
    를 포함하는, 장치.
  13. 제12항에 있어서,
    상기 제2 프리젠테이션 시간 오프셋은 상기 하나 이상의 라이브 미디어 세그먼트와 연관된 추정되는 가장 빠른 프리젠테이션 시간, 및 상기 하나 이상의 라이브 미디어 세그먼트와 연관된 최대 세그먼트 기간에 기초하는, 장치.
  14. 제10항에 있어서,
    상기 프로그램 코드는,
    상기 적어도 하나의 프로세서로 하여금, 상기 하나 이상의 광고 미디어 세그먼트의 마지막 프레임이 플레이되는 것에 기초하여, 상기 제1 MSE 소스 버퍼 내에 첨부된 상기 하나 이상의 라이브 미디어 세그먼트의 시작부를 탐색하게 하도록 구성된 제1 탐색 코드를 더 포함하는, 장치.
  15. 제10항에 있어서,
    상기 프로그램 코드는,
    상기 적어도 하나의 프로세서로 하여금, 상기 하나 이상의 라이브 미디어 세그먼트가 암호화되는 것에 기초하여 허가 서버로부터 하나 이상의 허가 키를 인출하게 하도록 구성된 인출 코드; 및
    상기 적어도 하나의 프로세서로 하여금, 상기 하나 이상의 허가 키를 제2 버퍼 내에 첨부하게 하도록 구성된 제4 첨부 코드
    를 더 포함하는, 장치.
  16. 제10항에 있어서,
    상기 프로그램 코드는,
    상기 적어도 하나의 프로세서로 하여금, 상기 제1 광고 미디어 세그먼트가 한 번 플레이되도록 구성되는 것에 기초하여, 상기 제1 MSE 소스 버퍼로부터 상기 하나 이상의 광고 미디어 세그먼트 중에서 제1 광고 미디어 세그먼트를 퍼징하게 하도록 구성된 제1 퍼징 코드를 더 포함하는, 장치.
  17. 제10항에 있어서,
    상기 프로그램 코드는,
    상기 적어도 하나의 프로세서로 하여금, 상기 제1 광고 미디어 세그먼트가 한 번 초과하여 플레이되도록 구성되는 것에 기초하여, 상기 하나 이상의 광고 미디어 세그먼트 중에서 제1 광고 미디어 세그먼트를 제3 버퍼에 첨부하게 하도록 구성된 제5 첨부 코드; 및
    상기 적어도 하나의 프로세서로 하여금, 상기 제1 광고 미디어 세그먼트가 제1 라이브 미디어 세그먼트 동안에 미드롤 광고인 것에 기초하여, 상기 제1 광고 미디어 세그먼트 이전에 하나 이상의 라이브 미디어 세그먼트 중에서 제1 라이브 미디어 세그먼트를 첨부하게 하도록 구성된 제6 첨부 코드
    를 더 포함하는, 장치.
  18. 명령을 저장하는 비-일시적 컴퓨터-판독가능 매체로서,
    상기 명령은, MPD 체이닝을 이용하여 2개 이상의 비선형 미디어 소스로부터 선형 미디어 소스 확장(MSE) 버퍼를 구축하기 위한 디바이스의 하나 이상의 프로세서에 의해 실행될 때, 상기 하나 이상의 프로세서로 하여금,
    하나 이상의 광고 미디어 세그먼트를 포함하는 적어도 하나의 획득된 미디어 프리젠테이션 세그먼트(MPD)를 파싱하게 하고 - 상기 하나 이상의 광고 미디어 세그먼트는 적어도 하나의 유니버셜 리소스 로케이터(URL)를 포함함 -,
    상기 적어도 하나의 URL에 기초하여 라이브 MPD를 획득하게 하고 - 상기 라이브 MPD는 하나 이상의 라이브 미디어 세그먼트를 포함함 -,
    제1 타이밍 모델에 기초하여 상기 하나 이상의 광고 미디어 세그먼트를 제1 미디어 소스 확장(MSE) 소스 버퍼에 첨부하게 하고,
    제2 타이밍 모델에 기초하여 상기 하나 이상의 라이브 미디어 세그먼트를 상기 제1 MSE 소스 버퍼에 첨부함으로써, 상기 하나 이상의 라이브 미디어 세그먼트를 상기 하나 이상의 광고 미디어 세그먼트에 체이닝하게 하고 - 상기 제2 타이밍 모델은 적어도 상기 하나 이상의 라이브 미디어 세그먼트에 대한 타임 시프트 버퍼 심도를 지원함 -,
    상기 제1 타이밍 모델 및 상기 제2 타이밍 모델에 기초하여 상기 하나 이상의 광고 미디어 세그먼트 및 상기 하나 이상의 라이브 미디어 세그먼트를 디스패치하게 하는
    하나 이상의 명령을 포함하는, 비-일시적 컴퓨터-판독가능 매체.
  19. 제18항에 있어서,
    상기 제1 타이밍 모델에 기초하여 상기 하나 이상의 광고 미디어 세그먼트를 상기 제1 MSE 소스 버퍼에 첨부하는 것은,
    상기 적어도 하나의 획득된 MPD에 기초하여 상기 제1 MSE 소스 버퍼를 제1 최대 기간으로 확장하는 것; 및
    상기 하나 이상의 광고 미디어 세그먼트와 연관된 제1 프리젠테이션 시간 오프셋에 기초하여 상기 제1 MSE 소스 버퍼의 타임스탬프 오프셋을 설정하는 것
    을 포함하는, 비-일시적 컴퓨터-판독가능 매체.
  20. 제19항에 있어서,
    상기 제1 타이밍 모델에 기초하여 상기 하나 이상의 라이브 미디어 세그먼트를 상기 제1 MSE 소스 버퍼에 첨부하는 것은,
    상기 하나 이상의 라이브 미디어 세그먼트에 기초하여 상기 제1 MSE 소스 버퍼를 제2 최대 기간으로 확장하는 것;
    상기 하나 이상의 라이브 미디어 세그먼트와 연관된 제2 프리젠테이션 시간 오프셋에 기초하여 상기 제1 MSE 소스 버퍼의 상기 타임스탬프 오프셋을 재설정하는 것; 및
    상기 하나 이상의 라이브 미디어 세그먼트 중에서 제1 라이브 미디어 세그먼트를 상기 제1 MSE 소스 버퍼에 첨부하는 것
    을 포함하는, 비-일시적 컴퓨터-판독가능 매체.
KR1020237017621A 2021-09-20 2022-09-20 W3c 미디어 소스 및 암호화된 확장을 이용한 라이브 cmaf/dash 플레이어에서의 mpd 체이닝 KR20230093479A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202163246233P 2021-09-20 2021-09-20
US63/246,233 2021-09-20
US17/947,801 2022-09-19
US17/947,801 US11838602B2 (en) 2021-09-20 2022-09-19 MPD chaining in a live CMAF/DASH player using W3C media source and encrypted extensions
PCT/US2022/044080 WO2023044143A2 (en) 2021-09-20 2022-09-20 Mpd chaining in live cmaf/dash player using w3c media source and encrypted extensions

Publications (1)

Publication Number Publication Date
KR20230093479A true KR20230093479A (ko) 2023-06-27

Family

ID=85572789

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237017621A KR20230093479A (ko) 2021-09-20 2022-09-20 W3c 미디어 소스 및 암호화된 확장을 이용한 라이브 cmaf/dash 플레이어에서의 mpd 체이닝

Country Status (6)

Country Link
US (1) US11838602B2 (ko)
EP (1) EP4218251A4 (ko)
JP (1) JP2024517370A (ko)
KR (1) KR20230093479A (ko)
CN (2) CN116635397A (ko)
WO (1) WO2023044143A2 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117659109A (zh) * 2023-11-22 2024-03-08 浙江仙居君业药业有限公司 群勃龙的合成方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7203758B2 (en) * 2000-10-19 2007-04-10 Loudeye Technologies, Inc. System and method for selective insertion of content into streaming media
US20080005349A1 (en) 2004-04-16 2008-01-03 Utstarcom Distributed multimedia streaming system
EP2819417B1 (en) * 2013-06-24 2020-03-04 Canon Kabushiki Kaisha Method and device for streaming video from a server based on expected usages
US20190238950A1 (en) * 2018-01-31 2019-08-01 Qualcomm Incorporated Dynamic conditional advertisement insertion
US20200275148A1 (en) * 2019-02-25 2020-08-27 Qualcomm Incorporated Event-Based Content Replacement In Live Media Services
CN110933482B (zh) 2019-12-06 2023-03-31 腾讯科技(深圳)有限公司 视频加载方法、装置、计算机可读存储介质和计算机设备
EP3873097A1 (en) * 2020-02-28 2021-09-01 Streamroot Method for playing on a player of a client device a content streamed in a network

Also Published As

Publication number Publication date
EP4218251A2 (en) 2023-08-02
EP4218251A4 (en) 2024-04-03
WO2023044143A2 (en) 2023-03-23
WO2023044143A3 (en) 2023-04-27
US11838602B2 (en) 2023-12-05
US20230093237A1 (en) 2023-03-23
CN116635397A (zh) 2023-08-22
CN116636193A (zh) 2023-08-22
JP2024517370A (ja) 2024-04-22

Similar Documents

Publication Publication Date Title
KR20220131314A (ko) 미디어 스트리밍을 위한 방법 및 장치
US11838602B2 (en) MPD chaining in a live CMAF/DASH player using W3C media source and encrypted extensions
US20230108426A1 (en) Method and apparatus for dynamic dash picture-in-picture streaming
US11799943B2 (en) Method and apparatus for supporting preroll and midroll during media streaming and playback
US11973820B2 (en) Method and apparatus for mpeg dash to support preroll and midroll content during media playback
US11588870B2 (en) W3C media extensions for processing DASH and CMAF inband events along with media using process@append and process@play mode
US20230224557A1 (en) Auxiliary mpds for mpeg dash to support prerolls, midrolls and endrolls with stacking properties
US11882170B2 (en) Extended W3C media extensions for processing dash and CMAF inband events
KR20220116546A (ko) Http를 통한 동적 적응 스트리밍을 위한 방법 및 장치
CN115315951A (zh) 用于远程终端的沉浸式远程会议和远程呈现的比特流结构

Legal Events

Date Code Title Description
A201 Request for examination