KR20230086792A - 미디어 스트리밍 및 재생 동안 프리롤 및 미드롤을 지원하기 위한 방법 및 장치 - Google Patents

미디어 스트리밍 및 재생 동안 프리롤 및 미드롤을 지원하기 위한 방법 및 장치 Download PDF

Info

Publication number
KR20230086792A
KR20230086792A KR1020237017044A KR20237017044A KR20230086792A KR 20230086792 A KR20230086792 A KR 20230086792A KR 1020237017044 A KR1020237017044 A KR 1020237017044A KR 20237017044 A KR20237017044 A KR 20237017044A KR 20230086792 A KR20230086792 A KR 20230086792A
Authority
KR
South Korea
Prior art keywords
media
main
mse
media segments
segments
Prior art date
Application number
KR1020237017044A
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 KR20230086792A publication Critical patent/KR20230086792A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1083In-session procedures
    • H04L65/1089In-session procedures by adding media; by removing media
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/612Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/65Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]

Landscapes

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

Abstract

하나 이상의 개개의 메인 타임 스탬프 오프셋 및 하나 이상의 보조 미디어 세그먼트가 하나 이상의 보조 미디어 세그먼트와 연관된 하나 이상의 보조 기간 속성에 기반하여 MSE 소스 버퍼에 첨부되는 것에 기반하여, MSE 소스 버퍼에 첨부되는 하나 이상의 메인 미디어 세그먼트를 포함하는 MSE 버퍼를 사용하여 메인 미디어 스트림 동안 보조 미디어 스트림을 시그널링하기 위한 방법 및 장치가 제공된다. 보조 기간 속성은, 하나 이상의 메인 미디어 세그먼트 중의 메인 미디어 세그먼트가 하나 이상의 보조 미디어 세그먼트 중의 보조 미디어 세그먼트를 플레이하기 위해 프리롤 또는 미드롤 삽입 동안 중지될 수 있는 제1 타임 오프셋을 지시하는 시작 타임 속성을 포함하는 기간 타입 엘리먼트일 수 있다. 미디어 세그먼트 및 보조 미디어 세그먼트가 디스패치될 수 있다.

Description

미디어 스트리밍 및 재생 동안 프리롤 및 미드롤을 지원하기 위한 방법 및 장치
본 출원은 2021년 10월 6일자로 출원된 미국 가출원 번호 제63/253,046호 및 2022년 9월 21일자로 출원된 미국 출원 번호 제17/949,684호에 대한 우선권을 주장하고, 이로써 이들 특허 출원의 내용은 전체가 참조로 본 출원에 명백히 포함된다.
본 발명의 실시예는 스트리밍 미디어 콘텐츠(streaming media content)에 관한 것으로, 보다 구체적으로는 MPEG(Moving Picture Experts Group) DASH(dynamic adaptive streaming over hypertext transfer protocol)에 따른 스트리밍 미디어, 광고 및 라이브 콘텐츠에 관한 것이다.
MPEG DASH는 IP 네트워크를 통해 미디어 콘텐츠를 스트리밍하기 위한 표준을 제공한다. MPEG DASH에서, 미디어 프레젠테이션 설명(MPD) 및 이벤트는, 미디어 타임라인 관련 이벤트를 클라이언트에게 전달하는 데 사용된다. ISO/IEC 23009-1 DASH 표준은 멀티-레이트 콘텐츠의 스트리밍을 허용한다. DASH 표준은, 기간(period)이 단일 타임라인에서 서로 연속인 단일 선형 타임라인을 제공한다. ISO/IEC 23009-1은 또한, MPD 체이닝(chaining), 즉 프리롤 광고 삽입(pre-roll ad insertion)에 사용될 수 있는 MPD에서 플레이할 그 다음의 MPD의 URL을 시그널링하기 위한 툴을 제공한다.
MPEG DASH는 IP 네트워크를 통해 멀티미디어 콘텐츠를 스트리밍하기 위한 표준을 제공한다. 표준은 미디어 콘텐츠의 선형 재생(linear playback)을 처리하지만, 비선형 동작의 상황(예를 들어, 미디어 세그먼트가 서로 독립적인 상이한 타임라인과 연관된 경우)을 처리하지 못한다. 앞서 언급된 결함을 극복하기 위해 MPD 체이닝 및 프리롤 광고 삽입이 사용될 수 있다. 그러나, DASH 플레이어가 W3C 미디어 소스 확장을 사용하는 경우 MPD 체이닝 및 프리롤 광고 삽입도 실패하는 데, 이는 하나의 단일 MSE 소스 버퍼로 이러한 비선형 재생을 처리하는 것이 매우 어렵기 때문이다. 또한, MPD 체이닝 및 프리롤 광고 삽입은, 광고가 MPD 체이닝 또는 프리롤 엘리먼트를 사용하기 전에 재생될 것으로 예상될 때, 보호된 라이브 콘텐츠 재생을 위한 W3C 암호화된 미디어 확장 시에 사용될 수 없다.
따라서, 메인 미디어 콘텐츠와 상이한 보조 콘텐츠(auxiliary content) 또는 독립적 콘텐츠(independent content)를 결합하기 위한 방법이 필요하다. 구체적으로, 프리롤 재생 또는 미드롤 재생(mid-roll playback)과 같이 메인 미디어 콘텐츠와 보조 콘텐츠를 결합하는 방법 및 장치가 필요하다. 또한, MPD 체이닝을 사용하는 보호된 라이브 콘텐츠의 재생을 위해 W3C 암호화된 미디어 확장을 프로세싱하기 위한 방법이 또한 필요하다.
본 개시내용은 하나 이상의 기술적 문제점을 해결한다. 본 개시내용은 보조 기간(AuxPeriod)이라는 새로운 개념을 구현하기 위한 방법, 프로세스, 장치 및 비-일시적 컴퓨터-판독가능 매체를 포함한다. 보조 기간(또한 보조 기간 속성으로 지칭됨)은, 메인 미디어 프레젠테이션으로부터 보조 또는 독립적 미디어 프레젠테이션의 제공을 허용한다. 추가로, 본 개시내용의 실시예는 또한, 메인 프레젠테이션 동안 프리롤 및 미드롤 콘텐츠의 포함에 대한 지원을 제공한다.
본 개시내용의 실시예는 MSE(media source extension) 버퍼를 사용하여 메인 DASH(Dynamic Adaptive Streaming over HTTP) 미디어 스트림 동안 보조 미디어 스트림을 시그널링하기 위한 방법을 제공할 수 있다. 방법은 적어도 하나의 프로세서에 의해 수행될 수 있고, 그리고 하나 이상의 메인 미디어 세그먼트 각각과 연관된 하나 이상의 개개의 메인 타임 스탬프 오프셋에 기반하여 MSE 소스 버퍼에 하나 이상의 메인 미디어 세그먼트를 첨부하는 단계; 하나 이상의 보조 미디어 세그먼트와 연관된 하나 이상의 보조 기간 속성(auxiliary period attribute)에 기반하여 MSE 소스 버퍼에 하나 이상의 보조 미디어 세그먼트를 첨부하는 단계 ―하나 이상의 보조 기간 속성 중의 보조 기간 속성은 시작 타임 속성을 포함할 수 있는 기간 타입 엘리먼트일 수 있고, 시작 타임 속성은, 하나 이상의 메인 미디어 세그먼트 중의 메인 미디어 세그먼트가 하나 이상의 보조 미디어 세그먼트 중의 보조 미디어 세그먼트를 플레이하기 위해 프리롤 또는 미드롤 삽입 동안 중지될 수 있는 제1 타임 오프셋을 지시함―; 및 하나 이상의 개개의 메인 타임 스탬프 오프셋 및 하나 이상의 보조 기간 속성에 기반하여, MSE 소스 버퍼의 하나 이상의 메인 미디어 세그먼트 및 하나 이상의 보조 미디어 세그먼트를 디스패치하는(dispatching) 단계를 포함할 수 있다.
본 개시내용의 실시예는 MSE(media source extension) 버퍼를 사용하여 메인 DASH(Dynamic Adaptive Streaming over HTTP) 미디어 스트림 동안 보조 미디어 스트림을 시그널링하기 위한 장치를 제공할 수 있다. 장치는, 컴퓨터 프로그램 코드를 저장하도록 구성된 적어도 하나의 메모리를 포함할 수 있고; 적어도 하나의 프로세서는 컴퓨터 프로그램 코드에 액세스하도록 그리고 컴퓨터 프로그램 코드에 의해 명령되는 대로 동작하도록 구성된다. 프로그램 코드는, 적어도 하나의 프로세서로 하여금, 하나 이상의 메인 미디어 세그먼트 각각과 연관된 하나 이상의 개개의 메인 타임 스탬프 오프셋에 기반하여 MSE 소스 버퍼에 하나 이상의 메인 미디어 세그먼트를 첨부하게 하도록 구성된 제1 첨부 코드; 적어도 하나의 프로세서로 하여금, 하나 이상의 보조 미디어 세그먼트와 연관된 하나 이상의 보조 기간 속성에 기반하여 MSE 소스 버퍼에 하나 이상의 보조 미디어 세그먼트를 첨부하게 하도록 구성된 제2 첨부 코드 ―하나 이상의 보조 기간 속성 중의 보조 기간 속성은 시작 타임 속성을 포함할 수 있는 기간 타입 엘리먼트이고, 시작 타임 속성은, 하나 이상의 메인 미디어 세그먼트 중의 메인 미디어 세그먼트가 하나 이상의 보조 미디어 세그먼트 중의 보조 미디어 세그먼트를 플레이하기 위해 프리롤 또는 미드롤 삽입 동안 중지되는 제1 타임 오프셋을 지시함―; 및 적어도 하나의 프로세서로 하여금, 하나 이상의 개개의 메인 타임 스탬프 오프셋 및 하나 이상의 보조 기간 속성에 기반하여, MSE 소스 버퍼의 하나 이상의 메인 미디어 세그먼트 및 하나 이상의 보조 미디어 세그먼트를 디스패치하게 하도록 구성된 디스패치 코드를 포함할 수 있다.
본 개시내용의 실시예는 명령을 저장하는 비-일시적 컴퓨터-판독가능 매체를 제공할 수 있다. 명령은, MSE(media source extension) 버퍼를 사용하여 메인 DASH(Dynamic Adaptive Streaming over HTTP) 미디어 스트림 동안 보조 미디어 스트림(auxiliary media stream)을 시그널링하기 위한 디바이스의 하나 이상의 프로세서에 의해 실행될 때, 하나 이상의 프로세서로 하여금, 하나 이상의 메인 미디어 세그먼트 각각과 연관된 하나 이상의 개개의 메인 타임 스탬프 오프셋에 기반하여 MSE 소스 버퍼에 하나 이상의 메인 미디어 세그먼트를 첨부하게 하고; 하나 이상의 보조 미디어 세그먼트와 연관된 하나 이상의 보조 기간 속성(auxiliary period attribute)에 기반하여 MSE 소스 버퍼에 하나 이상의 보조 미디어 세그먼트를 첨부하게 하고 ―하나 이상의 보조 기간 속성 중의 보조 기간 속성은 시작 타임 속성을 포함할 수 있는 기간 타입 엘리먼트이고, 시작 타임 속성은, 하나 이상의 메인 미디어 세그먼트 중의 메인 미디어 세그먼트가 하나 이상의 보조 미디어 세그먼트 중의 보조 미디어 세그먼트를 플레이하기 위해 프리롤 또는 미드롤 삽입 동안 중지되는 제1 타임 오프셋을 지시함―; 및 하나 이상의 개개의 메인 타임 스탬프 오프셋 및 하나 이상의 보조 기간 속성에 기반하여, MSE 소스 버퍼의 하나 이상의 메인 미디어 세그먼트 및 하나 이상의 보조 미디어 세그먼트를 디스패치하게 하는 하나 이상의 명령을 포함할 수 있다.
개시되는 청구 대상의 추가의 특징, 성질 및 다양한 이점은 다음의 상세한 설명 및 첨부 도면으로부터 더 명백해질 것이다.
도 1은 실시예에 따른 통신 시스템의 단순화된 예시이다.
도 2는 실시예에 따른 스트리밍 환경에서의 컴포넌트의 배치에 대한 예시적 예시이다.
도 3은 실시예에 따른 DASH 프로세싱 모델의 단순화된 블록 다이어그램이다.
도 4는 실시예에 따른 보조 미디어 프레젠테이션의 MSE(media source extension) 소스 버퍼 구현의 단순화 예시이다.
도 5는 실시예에 따라 프리롤 및 미드롤 보조 미디어 콘텐츠를 플레이하기 위한 보조 MPD 엘리먼트에 대한 예시적인 스크립트(script)이다.
도 6은 실시예에 따른 MSE 버퍼를 사용하여 메인 미디어 스트림 동안 보조 미디어 스트림을 시그널링하기 위한 예시적인 흐름도 예시이다.
도 7은 실시예에 따른 컴퓨터 시스템의 단순화된 다이어그램이다.
아래에서 논의되는 제안되는 특징은 별도로 사용될 수 있거나 또는 임의의 순서로 조합될 수 있다. 추가로, 실시예는 프로세싱 회로부(예를 들어, 하나 이상의 프로세서 또는 하나 이상의 집적 회로)에 의해 구현될 수 있다. 일 예에서, 하나 이상의 프로세서는 비-일시적 컴퓨터-판독가능 매체에 저장된 프로그램을 실행한다.
도 1은 본 개시내용의 실시예에 따른 통신 시스템(100)의 간략화된 블록 다이어그램을 예시한다. 통신 시스템(100)은 네트워크(105)를 통해 상호연결된 적어도 2개의 단말기(102 및 103)를 포함할 수 있다. 데이터의 단방향 전송의 경우, 제1 단말기(103)는 네트워크(105)를 통해 다른 단말기(102)로의 전송을 위해 로컬 위치에서 비디오 데이터를 코딩할 수 있다. 제2 단말기(102)는, 네트워크(105)로부터 다른 단말기의 코딩된 비디오 데이터를 수신하고, 코딩된 데이터를 디코딩하고 그리고 복원된 비디오 데이터를 디스플레이할 수 있다. 단방향 데이터 전송은 미디어 서빙 애플리케이션 등에서 일반적일 수 있다.
도 1은, 예를 들어, 화상회의 동안 발생할 수 있는 코딩된 비디오의 양방향 전송을 지원하기 위해 제공된 제2 쌍의 단말기(101 및 104)를 예시한다. 데이터의 양방향 전송의 경우, 각각의 단말기(101 및 104)는 네트워크(105)를 통해 다른 단말기로의 전송을 위해 로컬 위치에서 캡처된 비디오 데이터를 코딩할 수 있다. 각각의 단말기(101 및 104)는 또한, 다른 단말기에 의해 전송되는 코딩된 비디오 데이터를 수신할 수 있고, 코딩된 데이터를 디코딩할 수 있고, 그리고 복원된 비디오 데이터를 로컬 디스플레이 디바이스에 디스플레이할 수 있다.
도 1에서, 단말기(101, 102, 103 및 104)는 서버, 개인용 컴퓨터 및 스마트폰으로서 예시될 수 있지만, 본 개시내용의 원리는, 이로 제한되지 않는다. 본 개시내용의 실시예는 랩톱 컴퓨터, 태블릿 컴퓨터, 미디어 플레이어 및/또는 전용 화상회의 장비를 이용하는 애플리케이션에 맞는다. 네트워크(105)는, 예를 들어, 유선 및/또는 무선 통신 네트워크를 포함하는, 코딩된 비디오 데이터를 단말기(101, 102, 103 및 104) 사이에서 전달하는 임의의 수의 네트워크를 표현한다. 네트워크(105)는 회선-교환(circuit-switched) 및/또는 패킷-교환(packet-switched) 채널에서 데이터를 교환할 수 있다. 대표적인 네트워크는 전기통신(telecommunications) 네트워크, 근거리 네트워크, 광역 네트워크 및/또는 인터넷을 포함한다. 본 논의의 목적을 위해, 네트워크(105)의 아키텍처 및 토폴로지는 하기 본원에서 설명되지 않는 한 본 개시내용의 동작에 중요하지 않을 수 있다.
도 2는, 예로서, 스트리밍 환경에서의 비디오 인코더 및 디코더의 배치를 예시한다. 실시예는, 예를 들어, CD, DVD, 메모리 스틱(memory stick) 등을 포함하는 디지털 미디어에 압축된 비디오를 저장하는 것, 디지털 TV, 화상회의 등을 포함하는 다른 비디오 인에이블 애플리케이션(video enabled application)에 적용될 수 있다.
스트리밍 시스템은, 예를 들어, 비압축 비디오 샘플 스트림(213)을 생성하는 비디오 소스(201), 예를 들어, 디지털 카메라를 포함할 수 있는 캡처 서브시스템(203)을 포함할 수 있다. 해당 샘플 스트림(213)은, 인코딩된 비디오 비트스트림과 비교할 때 높은 데이터 볼륨으로서 강조될 수 있으며, 비디오 소스(201)에 커플링된 인코더(202)에 의해 프로세싱될 수 있다. 인코더(202)는, 아래에서 더 상세히 설명되는 바와 같이, 실시예의 양상을 가능하게 하거나 구현하기 위해 하드웨어, 소프트웨어 또는 이들의 조합을 포함할 수 있다. 샘플 스트림과 비교할 때 더 낮은 데이터 볼륨으로서 강조될 수 있는 인코딩된 비디오 비트스트림(204)은, 향후 사용을 위해 스트리밍 서버(205)에 저장될 수 있다. 하나 이상의 스트리밍 클라이언트(212 및 207)는, 인코딩된 비디오 비트스트림(204)의 카피일 수 있는 인코딩된 비디오 스트림(208 및 206)을 검색하기 위해 스트리밍 서버(205)에 액세스할 수 있다. 클라이언트(212)는, 인코딩된 비디오 비트스트림(208)의 입력(incoming) 카피를 디코딩하고 그리고 디스플레이(209) 또는 다른 렌더링 디바이스에서 렌더링될 수 있는 출력(outgoing) 비디오 샘플 스트림(210)을 생성하는 비디오 디코더(211)를 포함할 수 있다. 일부 스트리밍 시스템에서, 인코딩된 비디오 비트스트림(204, 206 및 208)은 특정 비디오 코딩/압축 표준에 따라 인코딩될 수 있다. 이러한 표준의 예가 위에서 언급되었고 여기에서 추가로 설명된다.
도 3은, DASH 및 CMAF 이벤트를 프로세싱하기 위한 샘플 클라이언트 아키텍처와 같은 샘플 DASH 프로세싱 모델(300)을 도시한다. DASH 프로세싱 모델(300)에서, 미디어 세그먼트(예를 들어, 광고 미디어 세그먼트 및 라이브 미디어 세그먼트)의 클라이언트의 요청은 매니페스트(manifest)(303)에서의 설명된 어드레스에 기반할 수 있다. 매니페스트(303)는 또한 메타데이터 트랙을 설명하며, 이 메타데이터 트랙으로부터, 클라이언트가 메타데이터 트랙의 세그먼트에 액세스하고 이를 파싱하고 이를 애플리케이션(301)에 송신할 수 있는 메타데이터 트랙을 설명할 수 있다.
매니페스트(303)는 MPD 이벤트 또는 이벤트 및 인밴드(inband) 이벤트를 포함하고, 'moof' 파서(306)는 MPD 이벤트 세그먼트 또는 이벤트 세그먼트를 파싱하고 그리고 이벤트 세그먼트를 이벤트 및 메타데이터 버퍼(330)에 첨부할 수 있다. 인밴드 이벤트 및 'moof' 파서(306)는 또한, 미디어 세그먼트를 페치하고 이 미디어 세그먼트를 미디어 버퍼(340)에 첨부할 수 있다. 이벤트 및 메타데이터 버퍼(330)는 이벤트 및 메타데이터 정보를 이벤트 및 메타데이터 동기화기 및 디스패처(335)에 송신할 수 있다. 이벤트 및 메타데이터 동기화기 및 디스패처(335)는 특정 이벤트를 DASH 플레이어 제어, 선택 및 휴리스틱 로직(302)으로, 그리고 애플리케이션 관련 이벤트 및 메타데이터 트랙을 애플리케이션(301)으로 디스패치할 수 있다.
일부 실시예에 따르면, MSE는 파일 포맷 파서(350), 미디어 버퍼(340) 및 미디어 디코더(345)를 포함하는 파이프라인을 포함할 수 있다. MSE(320)는 미디어 세그먼트의 로직 버퍼(들)(logical buffer)이며, 여기서 미디어 세그먼트는 미디어 세그먼트의 프레젠테이션 타임에 기반하여 추적되고 정렬될 수 있다. 미디어 세그먼트는 광고 MPD와 연관된 광고 미디어 세그먼트 및 라이브 MPD와 연관된 라이브 미디어 세그먼트를 포함할 수 있지만, 이로 제한되지 않을 수 있다. 각각의 미디어 세그먼트는 미디어 세그먼트의 타임 스탬프 오프셋에 기반하여 미디어 버퍼(340)에 부가되거나 첨부될 수 있고, 타임 스탬프 오프셋은 미디어 버퍼(340)에서 미디어 세그먼트를 정렬하는 데 사용될 수 있다.
본 출원의 실시예는 MPD 체이닝을 사용하여 2개 이상의 비선형 미디어 소스로부터 선형 MSE(media source extension) 버퍼를 구축하는 것에 관한 것일 수 있고 그리고 비선형 미디어 소스가 광고 MPD 및 라이브 MPD일 수 있으므로, 파일 포맷 파서(350)가 라이브 MPD에 포함된 라이브 미디어 세그먼트에 의해 사용되는 상이한 미디어 및/또는 코덱을 프로세싱하는 데 사용될 수 있다. 일부 실시예에서, 파일 포맷 파서는 라이브 미디어 세그먼트의 코덱, 프로파일 및/또는 레벨에 기반하여 변경 타입을 발행할 수 있다.
미디어 버퍼(340)에 미디어 세그먼트가 존재하는 한, 이벤트 및 메타데이터 버퍼(330)는 해당 이벤트 세그먼트 및 메타데이터를 유지한다. 샘플 DASH 처리 모델(300)은, 인밴드 및 MPD 이벤트와 연관된 메타데이터를 추적하기 위해 타이밍된 메타데이터 추적 파서(325)를 포함할 수 있다. 도 3에 따르면, MSE(320)는 파일 포맷 파서(350), 미디어 버퍼(340) 및 미디어 디코더(345) 만을 포함한다. 이벤트 및 메타데이터 버퍼(330) 및 이벤트 및 메타데이터 동기화기 및 디스패처(335)는 MSE(320)에 고유하지 않으므로, MSE(320)가 고유하게 이벤트를 프로세싱하고 이를 애플리케이션에 송신하는 것을 금지한다.
보조 프레젠테이션(Auxiliary Presentation)
본 개시내용의 실시예는 보조 미디어 프레젠테이션을 MPD의 메인 미디어 프레젠테이션과 독립적인 미디어 프레젠테이션으로 정의한다. 예로써, 메인 미디어 세그먼트와 독립적인 광고 미디어 세그먼트 또는 라이브 미디어 세그먼트가 보조 프레젠테이션일 수 있다. 임의의 보조 미디어 프레젠테이션 또는 보조 미디어 세그먼트에 대한 업데이트는 메인 미디어 세그먼트에 영향을 미치지 않는다. 유사하게, 메인 미디어 세그먼트에 대한 업데이트는 보조 미디어 세그먼트에 영향을 미치지 않는다. 따라서, 보조 미디어 세그먼트(또한, 보조 미디어 프레젠테이션 또는 보조 프레젠테이션으로 지칭됨)은, 메인 미디어 세그먼트(또한, 본 개시내용에서 메인 미디어 프레젠테이션 및 미디어 프레젠테이션으로 공지짐)와 완전히 독립적일 수 있다.
보조 기간(또한, 보조 기간 속성으로 지칭됨)
도 4는 실시예에 따라 프리롤 및 미드롤 보조 미디어 콘텐츠를 플레이하기 위한 보조 기간을 가능하게 하는 xml 코드를 지시하는 예시적인 스크립트(400)이다.
도 4에 도시된 바와 같이, @id= "e0"인 EssentialProperty 설명자에 의해 설명되는 AuxPeriod는 프리롤 미디어 세그먼트일 수 있는 반면, @id="e1" 및 @id="e2"인 EssentialProperty 설명자에 의해 설명되는 AuxPeriod는 미드롤 미디어 세그먼테이션일 수 있다. 일부 실시예에서, 보조 기간은 보조 MPD의 하나 이상의 기간 이전에 개시될 수 있다.
MSE 소스 버퍼를 통한 보조 기간의 구현
W3C MSE는 순차 버퍼(sequential buffer)이다. MSE 소스 버퍼 TSO(TimeStamp Offset)가 적절하게 설정되어 순차적으로 플레이될 것으로 예상되는 콘텐츠가 올바른 위치에 첨부되는 한, MSE 소스 버퍼는 콘텐츠를 올바르게 플레이한다. 실시예에 따르면, 메인 프레젠테이션이 보조 프레젠테이션으로 전환되거나 또는 다시 메인 프레젠테이션으로 전환되는 매 순간에, MSE TSO(time stamp offset)은 메인 미디어 세그먼트와 보조 미디어 세그먼트를 MSE 버퍼의 올바른 위치에 배치하도록 조정될 수 있다.
도 5는 도 4의 xml 코드를 사용하여 설명된 MSE 소스 버퍼의 다이어그램(500)이다.
다이어그램(500)에 도시된 바와 같이, 보조 MPD aux e0는 프리롤 MPD일 수 있고, aux e1 및 aux e2는 미드롤 MPD일 수 있다. 라이브 콘텐츠 p0는 하나 이상의 메인 미디어 세그먼트를 포함하는 메인 MPD일 수 있다.
AuxPeriod e0는 프리롤 보조 기간이므로, aux e0로부터 하나 이상의 보조 미디어 세그먼트가 검색되고 임의의 메인 미디어 세그먼트 이전에 MSE 소스 버퍼의 시작 부분에 배치될 수 있다. aux e0에서 프리롤 보조 미디어 세그먼트를 페치하고 첨부한 경우, MSE TSO는 0이다.
T0 = e0@PTO … 식 (1)
일부 실시예에서, 각각의 프리롤 보조 미디어 세그먼트를 페치 및 첨부한 후에, MSE TSO는 라이브 미디어 p0의 시작 타임, 라이브 미디어 p0의 프레젠테이션 타임 및 타임 시프트 버퍼 깊이에 기반하여 업데이트될 수 있다. 예로써, 도 5에서, T1은 타임 시프트 버퍼의 깊이, 프리롤 보조 미디어 세그먼트의 지속기간, 및 라이브 미디어와 연관된 프레젠테이션 타임 오프셋에 기반할 수 있다.
T1 = Max(timeShiftBuffeerDepth, Live edge - P0Start) +
e0@duration + p0@PTO- e0@PTO … 식 (2)
미드롤 보조 MPD aux e1 및 aux e2에 대해:
T2 = T1 + e1@start + e1@PTO - p0@PTO … 식 (3)
T3 = T2 + e1@returnTime - p0@PTO - e1@PTO … 식 (4)
T4 = T1 + e2@start + e2@PTO - p0@PTO … 식 (5)
T5 = T4 + p0@PTO - e2@PTO … 식 (6)
여기서 e0@PTO, e1@PTO 및 e2@PTO는 필수 설명자에서 해당 순서대로 링크된 보조 기간에서의 첫 번째 기간의 프레젠테이션 타임 오프셋이고, ei@starttime 및 ei@returnTime은 id=ei가 있는 각각의 해당 설명자의 시작 타임 값 및 returnTime 값이다.
실시예에 따르면, MSE TSO를 업데이트하는 것은 다음에 기반할 수 있다:
프리롤 보조 기간 미디어 세그먼트는 MSE 첨부 윈도우 시작(0)에서 시작할 수 있다. 프리롤 보조 기간 미디어 세그먼트가 먼저 페치되고 첨부되기 때문에, MSE TSO는 보조 MPD의 PTO와 동일하게 설정된다(예를 들어, 식 (1) 참조).
일부 실시예에서, 프리롤 기간 보조 미디어 세그먼트의 마지막 세그먼트를 첨부한 후, 라이브 미디어 또는 메인 미디어 세그먼트와 연관된 라이브 에지가 계산될 수 있다. DVR 윈도우의 크기, 라이브 에지, 프리롤 보조 기간 또는 미디어 세그먼트의 기간 시작 및 지속기간, 및 라이브 콘텐츠의 PTO를 사용하여, MSE TSO는, MSE 버퍼에 첨부된 첫 번째 미디어 세그먼트와 이전에 부가되었던 프리롤 보조 기간의 마지막 세그먼트 사이에 임계 타임 범위가 있도록 조정될 수 있다. 예로써, 식 (2)를 참조한다. 일부 실시예에서, 임계치는 DVR 윈도우 미만이거나, 이와 같거나, 또는 이보다 더 클 수 있다. DVR 윈도우는, 클라이언트가 다시 스크러빙하는 또는 메인 미디어 스트림의 이전 지점에서 재생을 시작하는 기능을 포함할 수 있다.
실시예에 따르면, 각각의 첨부된 보조 기간 또는 미디어 세그먼트로, 그의 오프셋이 라이브 에지로부터 계산된다. MSE TSO는, 이 오프셋만큼 증가되고 라이브 기간 PTO 및 보조 기간/미디어 세그먼트의 PTO에 기반하여 조정된다. 다른 또는 동일한 실시예로서, 각각의 보조 기간/미디어 세그먼트의 끝에서, MSE TSO는, 보조 기간/미디어 세그먼트의 returnTime, 라이브 기간 PTO 및 보조 기간/미디어 세그먼트의 PTO에 기반하여 조정된다.
일부 실시예에서, 프리롤 보조 기간/미디어 세그먼트의 재생 시, 클라이언트는 MSE로부터 프리롤 보조 기간/미디어 세그먼트 타임 범위를 제거하기로 결정할 수 있고, 따라서 프리롤은 한 번만 플레이될 수 있다. 일부 실시예에서, DVR이 액세스되면 프리롤은 재생되지 않을 수 있다. 클라이언트는 또한, 라이브 세션에 참가한 후 timeShiftBufferDepth의 값에 따라 MSE 첨부 윈도우 버퍼로부터 타임 범위를 제거할 수 있다.
본원에서 정의된 바와 같은 보조 기간의 이점은, 메인 콘텐츠가 MSE/EME에 의해 재생되는 것을 보장하면서, MSE/EME가 단일 MPD를 사용하여 기간을 정확하게 사용하여 초기화되는 것을 포함한다. 이 단일 MSE/EME 초기화는, 메인 프레젠테이션과 보조 프레젠테이션 간의 전이(transition) 동안 콘텐츠를 끊김없는(seamless) 재생을 가능하게 한다.
모든 AuxPeriod는 MPD의 자식(children)이므로, MPD 업데이트 시 일부 기간이 드롭(drop)되는 경우, AuxPeriods는 변경되지 않은 채로 유지된다(프리롤 보조 콘텐츠에 유용함). 또한, 보조 기간은 원격 요소(remote element)일 수 있기 때문에, 이 원격 엘리먼트 기능은 서버 지원 광고 삽입에서 클라이언트의 미드롤에 대한 늦은 바인딩을 가능하게 한다.
도 6은, 메인 미디어 스트림에서, 프리롤 미디어 콘텐츠 및 미드롤 미디어 콘텐츠를 포함하는 보조 미디어를 시그널링하기 위한 프로세스(600)의 예시적인 흐름도이다.
동작(610)에서, 하나 이상의 메인 미디어 세그먼트 각각과 연관된 하나 이상의 개개의 메인 타임 스탬프 오프셋에 기반하여 하나 이상의 메인 미디어 세그먼트가 MSE 소스 버퍼에 첨부될 수 있다.
동작(615)에서, 하나 이상의 보조 미디어 세그먼트와 연관된 하나 이상의 보조 기간에 기반하여 하나 이상의 보조 미디어 세그먼트가 MSE 소스 버퍼에 첨부될 수 있다. 보조 기간은 시작 타임 속성을 포함하는 기간 타입 엘리먼트일 수 있다. 시작 타임 속성은, 하나 이상의 메인 미디어 세그먼트 중의 메인 미디어 세그먼트가 하나 이상의 보조 미디어 세그먼트 중의 보조 미디어 세그먼트를 플레이하기 위해 프리롤 또는 미드롤이 중지되는 제1 타임 오프셋을 지시할 수 있다. 일부 실시예에서, 보조 기간은 리턴 타임 속성(return time attribute)을 포함할 수 있다. 리턴 타임 속성은 두 번째 타임 오프셋을 지시할 수 있고, 여기서 하나 이상의 메인 미디어 세그먼트 중의 메인 미디어 세그먼트가 하나 이상의 보조 미디어 세그먼트 중의 보조 미디어 세그먼트를 플레이하기 위해 중지된 이후, 하나 이상의 메인 미디어 세그먼트 중의 메인 미디어 세그먼트가 재시작될 수 있다. 일부 실시예에서, 하나 이상의 보조 기간은 보조 미디어 프레젠테이션 설명(MPD)에서 하나 이상의 기간 이전에 배치될 수 있다.
동작(620)에서, MSE 소스 버퍼 내의 하나 이상의 메인 미디어 세그먼트 및 하나 이상의 보조 미디어 세그먼트가 하나 이상의 개개의 메인 타임 스탬프 오프셋 및 하나 이상의 보조 기간에 기반하여 디스패치될 수 있다. 일부 실시예에서, 하나 이상의 보조 미디어 세그먼트 중의 보조 미디어 세그먼트는, 시작 타임 속성이 0인 것에 기반하여, 하나 이상의 메인 미디어 세그먼트 이전에 플레이되는 프리롤 미디어 세그먼트일 수 있다. 동일하거나 상이한 실시예에서, 보조 미디어 세그먼트와 연관된 MSE 소스 버퍼 타임 스탬프 오프셋은 보조 미디어 세그먼트와 연관된 프레젠테이션 타임 오프셋과 동일하게 설정되거나 초기화될 수 있다.
일부 실시예에서, MSE 소스 버퍼 타임 스탬프 오프셋은 메인 미디어 세그먼트가 중지되거나 또는 재시작되는 것에 기반하여 업데이트될 수 있다. 동작(625)에서, MSE 소스 버퍼 타임 스탬프 오프셋은, 타임 시프트 버퍼의 깊이, 시작 타임 속성, 모든 프리롤 미디어 세그먼트의 총 지속기간, 및 하나 이상의 메인 미디어 세그먼트 중 첫 번째 메인 미디어 세그먼트와 연관된 프레젠테이션 타임 오프셋에 기반하여 업데이트될 수 있다. 일부 실시예에서, 앞서 언급된 업데이트는 MSE 소스 버퍼에 첨부되는 마지막 프리롤 보조 미디어 세그먼트에 기반할 수 있다. 업데이트된 MSE 소스 버퍼 타임 스탬프 오프셋은 마지막 프리롤 보조 미디어 세그먼트와 첫 번째 메인 미디어 세그먼트 사이의 임계 타임 범위를 포함할 수 있다.
일부 실시예에서, MSE 소스 버퍼 타임 스탬프 오프셋은, MSE 소스 버퍼의 하나 이상의 보조 미디어 세그먼트 중 하나가 디스패치될 때, 리턴 타임 속성, 및 하나 이상의 보조 미디어 세그먼트 중 하나와 연관된 프레젠테이션 타임 오프셋에 기반하여 업데이트될 수 있다.
동일하거나 상이한 실시예에서, 보조 미디어 세그먼트와 연관된 MSE 소스 버퍼 타임 스탬프 오프셋은 보조 미디어 세그먼트와 연관된 프레젠테이션 타임 오프셋과 동일할 수 있고, 이는 하나 이상의 보조 미디어 세그먼트 중의 보조 미디어 세그먼트가 프리롤 보조 미디어 세그먼트인 것에 기반한다.
도 6은 프로세스(600)의 예시적인 블록을 도시하지만, 실시예에서, 프로세스(600)는 부가적인 블록, 더 적은 수의 블록, 상이한 블록, 또는 도 6에 도시된 블록과 다르게 배열된 블록을 포함할 수 있다. 실시예에서, 프로세스(600)의 임의의 블록은, 원하는 대로, 임의의 양 또는 순서로 조합되거나 또는 배열될 수 있다. 실시예에서, 프로세스(600)의 블록 중 2개 이상은 병렬로 수행될 수 있다.
위에서 설명된 기법은, 컴퓨터-판독가능 명령을 사용하여 컴퓨터 소프트웨어로서 구현될 수 있고 그리고 하나 이상의 컴퓨터-판독가능 매체에 또는 구체적으로 구성된 하나 이상의 하드웨어 프로세서에 의해 물리적으로 저장될 수 있다. 예를 들어, 도 7은 다양한 실시예를 구현하기에 적합한 컴퓨터 시스템(700)을 도시한다.
컴퓨터 소프트웨어는, 임의의 적절한 머신 코드 또는 컴퓨터 언어를 사용하여 코딩될 수 있으며, 이는, 컴퓨터 CPU(central processing unit), GPU(Graphics Processing Unit) 등에 의해, 직접 실행되거나 또는 해석, 마이크로-코드 실행 등을 통해 실행될 수 있는 명령을 포함하는 코드를 생성하기 위해, 어셈블리, 컴필레이션(compilation), 링킹 등의 메커니즘으로 처리될 수 있다.
명령은, 예를 들어, 개인용 컴퓨터, 태블릿 컴퓨터, 서버, 스마트폰, 게이밍 디바이스, 사물 인터넷 디바이스 등을 포함하는, 다양한 타입의 컴퓨터 또는 이의 컴포넌트에서 실행될 수 있다.
컴퓨터 시스템(700)에 대해 도 7에 도시된 컴포넌트는, 사실상 예시적이며, 본 개시내용의 실시예를 구현하는 컴퓨터 소프트웨어의 사용 또는 기능의 범위에 대한 어떠한 제한을 제안하려는 의도는 아니다. 컴포넌트의 구성은 컴퓨터 시스템(700)의 예시적인 실시예에 예시된 컴포넌트 중 임의의 하나 또는 이의 조합과 관련된 임의의 종속성 또는 요건을 갖는 것으로 해석되어서는 안 된다.
컴퓨터 시스템(700)은 특정 인간 인터페이스 입력 디바이스를 포함할 수 있다. 이러한 인간 인터페이스 입력 디바이스는, 예를 들어, 촉각적 입력(이를테면, 키스트로크, 스와이프, 데이터 글러브 움직임), 오디오 입력(이를테면, 음성, 클랩핑), 시각적 입력(이를테면, 제스처), 후각적 입력을 통해, 한 명 이상의 인간 사용자에 의한 입력에 응답할 수 있다. 인간 인터페이스 디바이스는 또한, 오디오(예를 들어, 스피치, 음악, 주변 소리), 이미지(예를 들어, 스캔된 이미지, 스틸 이미지 카메라로부터 획득된 사진 이미지), 비디오(이를테면, 2-차원 비디오, 입체 비디오를 포함하는 3-차원 비디오)와 같이, 인간에 의한 의식적인 입력과 반드시 직접 관련된 것은 아닌 특정 미디어를 캡처하는 데 사용될 수 있다.
입력 인간 인터페이스 디바이스는 키보드(701), 마우스(702), 트랙 패드(703), 터치 스크린(710), 조이스틱(705), 마이크로폰(706), 스캐너(708), 카메라(707) 중 하나 이상(도면에서는 각각의 하나만이 도시됨)을 포함할 수 있다.
컴퓨터 시스템(700)은 또한, 특정 인간 인터페이스 출력 디바이스를 포함할 수 있다. 이러한 인간 인터페이스 출력 디바이스는, 예를 들어, 촉각적 출력, 소리, 빛 및 냄새/맛을 통해 한 명 이상의 인간 사용자의 감각을 자극할 수 있다. 이러한 인간 인터페이스 출력 디바이스는, 촉각적 출력 디바이스(예를 들어, 터치 스크린(710) 또는 조이스틱(705)에 의한 촉각적 피드백, 그러나 입력 디바이스로서의 역할을 하지 않는 촉각적 피드백 디바이스가 있을 수도 있음), 오디오 출력 디바이스(이를테면, 스피커(709), 헤드폰), 시각적 출력 디바이스(이를테면, CRT 스크린, LCD 스크린, 플라즈마 스크린, OLED 스크린을 포함하는 스크린(710), 이 각각은 터치 스크린 입력 능력이 있거나 없음, 이 각각은 촉각적 피드백 능력이 있거나 없음 ―이 중 일부는 입체 출력과 같은 수단을 통해 2-차원 시각적 출력 또는 3-차원 초과의 출력을 출력할 수 있음; 가상-현실 안경, 홀로그래픽 디스플레이 및 스모크 탱크), 및 프린터를 포함할 수 있다.
컴퓨터 시스템(700)은 또한, 인간이 액세스가능한 저장 디바이스 및 이의 연관된 매체, 이를테면 CD/DVD 등의 매체(711)을 갖는 CD/DVD ROM/RW(720), 썸-드라이브(thumb-drive)(722), 이동식 하드 드라이브 또는 솔리드 스테이트 드라이브(723)를 포함하는 광학 매체, 레거시 자기 매체, 이를테면, 테이프 및 플로피 디스크(floppy disc), 특수 ROM/ASIC/PLD 기반 디바이스, 이를테면, 보안 동글(security dongle) 등을 포함할 수 있다.
당업자는 또한, 현재 개시되는 청구대상과 관련하여 사용되는 “컴퓨터-판독가능 매체"라는 용어가 전송 매체, 반송파 또는 다른 일시적 신호를 망라하지 않는다는 것을 이해해야 한다.
컴퓨터 시스템(700)은 또한, 하나 이상의 통신 네트워크(798)에 대한 인터페이스(799)를 포함할 수 있다. 네트워크(798)는, 예를 들어, 무선, 유선, 광학(optical) 네트워크일 수 있다. 네트워크(798)는 추가로, 근거리, 광역, 대도시, 차량용 및 산업용, 실시간, 지연-내성(delay-tolerant) 네트워크 등일 수 있다. 네트워크(798)의 예는, 이더넷, 무선 LAN과 같은 근거리 네트워크, GSM, 3G, 4G, 5G, LTE 등을 포함하는 셀룰러 네트워크, 케이블 TV, 위성 TV 및 지상파 방송 TV를 포함하는 TV 유선 또는 무선 광역 디지털 네트워크, CANBus를 포함하는 차량용 및 산업용 네트워크 등을 포함한다. 특정 네트워크는 일반적으로, 특정-범용 데이터 포트 또는 주변 버스(750 및 751)(이를테면, 예를 들어, 컴퓨터 시스템(700)의 USB 포트와 같이)에 부착된 외부 네트워크 인터페이스를 필요로 하며; 다른 것은 일반적으로, 아래에 설명되는 바와 같은 시스템 버스에 대한 부착에 의해 컴퓨터 시스템(700)의 코어에 (예를 들어, PC 컴퓨터 시스템에 이더넷 인터페이스가 또는 스마트폰 컴퓨터 시스템에 셀룰러 네트워크 인터페이스가) 통합된다. 이러한 네트워크(798) 중 임의의 것을 사용하여, 컴퓨터 시스템(700)이 다른 엔티티와 통신할 수 있다. 이러한 통신은, 예를 들어 근거리 또는 광역 디지털 네트워크를 사용하는 다른 컴퓨터 시스템에 대해, 단방향 수신-전용(예를 들어, 방송 TV), 단방향 송신-전용(예를 들어, CANbus-특정 CANbus 디바이스) 또는 양방향성일 수 있다. 앞서 설명된 바와 같이, 특정 프로토콜 및 프로토콜 스택은 이러한 네트워크 및 네트워크 인터페이스 각각에서 사용될 수 있다.
위에서 논의된 인간 인터페이스 디바이스, 인간이 액세스가능한 저장 디바이스 및 네트워크 인터페이스는 컴퓨터 시스템(700)의 코어(740)에 부착될 수 있다.
코어(740)는 하나 이상의 CPU(Central Processing Unit)(741), GPU(Graphics Processing Unit)(742), 그래픽 어댑터(717), FPGA(Field Programmable Gate Areas)(743) 형태의 특수 프로그램가능 프로세싱 유닛, 특정 작업을 위한 하드웨어 가속기(744) 등을 포함할 수 있다. 이러한 디바이스는, ROM(Read-only memory)(745), 랜덤 액세스 메모리(746), 내부 비-사용자 액세스가능 하드 드라이브, SSD 등과 같은 내부 대용량 저장소(747)와 함께 시스템 버스(748)를 통해 연결될 수 있다. 일부 컴퓨터 시스템에서, 시스템 버스(748)는 부가적 CPU, GPU 등에 의한 확장을 가능하게 하기 위해 하나 이상의 물리적 플러그의 형태로 액세스가능할 수 있다. 주변 디바이스는 코어의 시스템 버스(748)에 직접 또는 주변 버스(751)를 통해 부착될 수 있다. 주변 버스를 위한 아키텍처는 PCI, USB 등을 포함한다.
CPU(741), GPU(742), FPGA(743) 및 가속기(744)는 앞서 논의된 컴퓨터 코드를 조합하여 구성할 수 있는 특정 명령을 실행할 수 있다. 이 컴퓨터 코드는 ROM(745) 또는 RAM(746)에 저장될 수 있다. 전이 데이터(transitional data)가 또한 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)), 실행을 위한 로직을 구현하는 회로, 또는 이 둘 다를 포괄할 수 있다. 본 개시내용은 하드웨어 및 소프트웨어의 임의의 적절한 조합을 포괄한다.
본 개시내용이 여러 예시적인 실시예를 설명했지만, 본 개시내용의 범위 내에 속하는 변경, 치환 및 다양한 대체 등가물이 존재한다. 따라서, 당업자가 본원에 명시적으로 도시되거나 설명되지 않았지만, 본 개시내용의 원리를 구현하고, 따라서 본 개시내용의 사상 및 범위 내에 있는 수많은 시스템 및 방법을 안출할 수 있다는 것이 이해될 것이다.

Claims (20)

  1. MSE(media source extension) 버퍼를 사용하여 메인 DASH(Dynamic Adaptive Streaming over HTTP) 미디어 스트림 동안 보조 미디어 스트림(auxiliary media stream)을 시그널링하기 위한 방법으로서,
    상기 방법은 적어도 하나의 프로세서에 의해 수행되고,
    상기 방법은,
    하나 이상의 메인 미디어 세그먼트 각각과 연관된 하나 이상의 개개의 메인 타임 스탬프 오프셋에 기반하여 MSE 소스 버퍼에 상기 하나 이상의 메인 미디어 세그먼트를 첨부하는 단계;
    하나 이상의 보조 미디어 세그먼트와 연관된 하나 이상의 보조 기간 속성(auxiliary period attribute)에 기반하여 상기 MSE 소스 버퍼에 상기 하나 이상의 보조 미디어 세그먼트를 첨부하는 단계 ―상기 하나 이상의 보조 기간 속성 중의 보조 기간 속성은 시작 타임 속성을 포함하는 기간 타입 엘리먼트이고, 상기 시작 타임 속성은, 상기 하나 이상의 메인 미디어 세그먼트 중의 메인 미디어 세그먼트가 상기 하나 이상의 보조 미디어 세그먼트 중의 보조 미디어 세그먼트를 플레이하기 위해 프리롤(preroll) 또는 미드롤(midroll) 삽입 동안 중지되는 제1 타임 오프셋을 지시함―; 및
    상기 하나 이상의 개개의 메인 타임 스탬프 오프셋 및 상기 하나 이상의 보조 기간 속성에 기반하여, 상기 MSE 소스 버퍼의 상기 하나 이상의 메인 미디어 세그먼트 및 상기 하나 이상의 보조 미디어 세그먼트를 디스패치하는(dispatching) 단계
    를 포함하는, 보조 미디어 스트림을 시그널링하기 위한 방법.
  2. 제1항에 있어서,
    상기 보조 기간 속성은 리턴 타임 속성(return time attribute)을 더 포함하고,
    상기 리턴 타임 속성은, 상기 하나 이상의 메인 미디어 세그먼트 중의 메인 미디어 세그먼트가 상기 하나 이상의 보조 미디어 세그먼트 중의 보조 미디어 세그먼트를 플레이하기 위해 중지된 이후, 상기 하나 이상의 메인 미디어 세그먼트 중의 메인 미디어 세그먼트가 재시작되는 제2 타임 오프셋을 지시하는, 보조 미디어 스트림을 시그널링하기 위한 방법.
  3. 제2항에 있어서,
    상기 MSE 소스 버퍼 타임 스탬프 오프셋은 상기 메인 미디어 세그먼트가 중지되거나 또는 재시작되는 것에 기반하여 업데이트되는, 보조 미디어 스트림을 시그널링하기 위한 방법.
  4. 제1항에 있어서,
    상기 하나 이상의 보조 기간 속성은 보조 미디어 프레젠테이션 설명(MPD)에서 하나 이상의 기간 이전에 배치되는, 보조 미디어 스트림을 시그널링하기 위한 방법.
  5. 제1항에 있어서,
    상기 시작 타임 속성이 0인 것에 기반하여, 상기 하나 이상의 보조 미디어 세그먼트 중의 보조 미디어 세그먼트는 상기 하나 이상의 메인 미디어 세그먼트 이전에 플레이되는 프리롤 미디어 세그먼트인, 보조 미디어 스트림을 시그널링하기 위한 방법.
  6. 제5항에 있어서,
    상기 하나 이상의 보조 미디어 세그먼트 중의 보조 미디어 세그먼트가 프리롤 보조 미디어 세그먼트인 것에 기반하여, 상기 보조 미디어 세그먼트와 연관된 MSE 소스 버퍼 타임 스탬프 오프셋은 상기 보조 미디어 세그먼트와 연관된 프레젠테이션 타임 오프셋과 동일한, 보조 미디어 스트림을 시그널링하기 위한 방법.
  7. 제6항에 있어서,
    상기 방법은, 마지막 프리롤 보조 미디어 세그먼트가 상기 MSE 소스 버퍼에 첨부되는 것에 기반하여, 상기 MSE 소스 버퍼 타임 스탬프 오프셋을 타임 시프트 버퍼의 깊이, 상기 시작 타임 속성, 모든 프리롤 미디어 세그먼트의 총 지속기간, 및 상기 하나 이상의 메인 미디어 세그먼트 중 첫 번째 메인 미디어 세그먼트와 연관된 프레젠테이션 타임 오프셋에 기반하여 업데이트하는 단계를 더 포함하고,
    상기 MSE 소스 버퍼 타임 스탬프 오프셋은 상기 마지막 프리롤 보조 미디어 세그먼트와 상기 첫 번째 메인 미디어 세그먼트 사이의 임계 타임 범위를 포함하도록 업데이트되는, 보조 미디어 스트림을 시그널링하기 위한 방법.
  8. 제6항에 있어서,
    상기 방법은, MSE 소스 버퍼 타임 스탬프 오프셋을, 상기 MSE 소스 버퍼의 상기 하나 이상의 보조 미디어 세그먼트 중 하나가 디스패치될 때, 리턴 타임 속성, 및 상기 하나 이상의 보조 미디어 세그먼트 중 하나와 연관된 프레젠테이션 타임 오프셋에 기반하여 업데이트하는 단계를 더 포함하는, 보조 미디어 스트림을 시그널링하기 위한 방법.
  9. MSE(media source extension) 버퍼를 사용하여 메인 DASH(Dynamic Adaptive Streaming over HTTP) 미디어 스트림 동안 보조 미디어 스트림을 시그널링하기 위한 장치로서,
    상기 장치는,
    프로그램 코드를 저장하도록 구성된 적어도 하나의 메모리;
    상기 프로그램 코드에 액세스하도록 그리고 상기 프로그램 코드에 의해 명령되는 대로 동작하도록 구성된 적어도 하나의 프로세서
    를 포함하고,
    상기 프로그램 코드는,
    상기 적어도 하나의 프로세서로 하여금, 하나 이상의 메인 미디어 세그먼트 각각과 연관된 하나 이상의 개개의 메인 타임 스탬프 오프셋에 기반하여 MSE 소스 버퍼에 상기 하나 이상의 메인 미디어 세그먼트를 첨부하게 하도록 구성된 제1 첨부 코드;
    상기 적어도 하나의 프로세서로 하여금, 하나 이상의 보조 미디어 세그먼트와 연관된 하나 이상의 보조 기간 속성에 기반하여 상기 MSE 소스 버퍼에 상기 하나 이상의 보조 미디어 세그먼트를 첨부하게 하도록 구성된 제2 첨부 코드 ―상기 하나 이상의 보조 기간 속성 중의 보조 기간 속성은 시작 타임 속성을 포함하는 기간 타입 엘리먼트이고, 상기 시작 타임 속성은, 상기 하나 이상의 메인 미디어 세그먼트 중의 메인 미디어 세그먼트가 상기 하나 이상의 보조 미디어 세그먼트 중의 보조 미디어 세그먼트를 플레이하기 위해 프리롤 또는 미드롤 삽입 동안 중지되는 제1 타임 오프셋을 지시함―; 및
    상기 적어도 하나의 프로세서로 하여금, 상기 하나 이상의 개개의 메인 타임 스탬프 오프셋 및 상기 하나 이상의 보조 기간 속성에 기반하여, 상기 MSE 소스 버퍼의 상기 하나 이상의 메인 미디어 세그먼트 및 상기 하나 이상의 보조 미디어 세그먼트를 디스패치하게 하도록 구성된 디스패치 코드
    를 포함하는, 보조 미디어 스트림을 시그널링하기 위한 장치.
  10. 제9항에 있어서,
    상기 보조 기간 속성은 리턴 타임 속성을 더 포함하고,
    상기 리턴 타임 속성은, 상기 하나 이상의 메인 미디어 세그먼트 중의 메인 미디어 세그먼트가 상기 하나 이상의 보조 미디어 세그먼트 중의 보조 미디어 세그먼트를 플레이하기 위해 중지된 이후, 상기 하나 이상의 메인 미디어 세그먼트 중의 메인 미디어 세그먼트가 재시작되는 제2 타임 오프셋을 지시하는, 보조 미디어 스트림을 시그널링하기 위한 장치.
  11. 제10항에 있어서,
    상기 MSE 소스 버퍼 타임 스탬프 오프셋은 상기 메인 미디어 세그먼트가 중지되거나 또는 재시작되는 것에 기반하여 업데이트되는, 보조 미디어 스트림을 시그널링하기 위한 장치.
  12. 제9항에 있어서,
    상기 하나 이상의 보조 기간 속성은 보조 미디어 프레젠테이션 설명(MPD)에서 하나 이상의 기간 이전에 배치되는, 보조 미디어 스트림을 시그널링하기 위한 장치.
  13. 제9항에 있어서,
    상기 시작 타임 속성이 0인 것에 기반하여, 상기 하나 이상의 보조 미디어 세그먼트 중의 보조 미디어 세그먼트는 상기 하나 이상의 메인 미디어 세그먼트 이전에 플레이되는 프리롤 미디어 세그먼트인, 보조 미디어 스트림을 시그널링하기 위한 장치.
  14. 제13항에 있어서,
    상기 하나 이상의 보조 미디어 세그먼트 중의 보조 미디어 세그먼트가 프리롤 보조 미디어 세그먼트인 것에 기반하여, 상기 보조 미디어 세그먼트와 연관된 MSE 소스 버퍼 타임 스탬프 오프셋은 상기 보조 미디어 세그먼트와 연관된 프레젠테이션 타임 오프셋과 동일한, 보조 미디어 스트림을 시그널링하기 위한 장치.
  15. 제14항에 있어서,
    상기 프로그램 코드는, 상기 적어도 하나의 프로세서로 하여금, 마지막 프리롤 보조 미디어 세그먼트가 상기 MSE 소스 버퍼에 첨부되는 것에 기반하여, 상기 MSE 소스 버퍼 타임 스탬프 오프셋을 타임 시프트 버퍼의 깊이, 상기 시작 타임 속성, 모든 프리롤 미디어 세그먼트의 총 지속기간, 및 상기 하나 이상의 메인 미디어 세그먼트 중 첫 번째 메인 미디어 세그먼트와 연관된 프레젠테이션 타임 오프셋에 기반하여 업데이트하게 하도록 구성된 제1 업데이트 코드를 더 포함하고,
    상기 MSE 소스 버퍼 타임 스탬프 오프셋은 상기 마지막 프리롤 보조 미디어 세그먼트와 상기 첫 번째 메인 미디어 세그먼트 사이의 임계 타임 범위를 포함하도록 업데이트되는, 보조 미디어 스트림을 시그널링하기 위한 장치.
  16. 제14항에 있어서,
    상기 프로그램 코드는, 상기 적어도 하나의 프로세서로 하여금, 상기 MSE 소스 버퍼 타임 스탬프 오프셋을, 상기 MSE 소스 버퍼의 상기 하나 이상의 보조 미디어 세그먼트 중 하나가 디스패치될 때, 리턴 타임 속성, 및 상기 하나 이상의 보조 미디어 세그먼트 중 하나와 연관된 프레젠테이션 타임 오프셋에 기반하여 업데이트하게 하도록 구성된 제1 업데이트 코드를 더 포함하는, 보조 미디어 스트림을 시그널링하기 위한 장치.
  17. 명령을 저장하는 비-일시적 컴퓨터-판독가능 매체로서,
    상기 명령은, MSE(media source extension) 버퍼를 사용하여 메인 DASH(Dynamic Adaptive Streaming over HTTP) 미디어 스트림 동안 보조 미디어 스트림을 시그널링하기 위한 디바이스의 하나 이상의 프로세서에 의해 실행될 때, 상기 하나 이상의 프로세서로 하여금,
    하나 이상의 메인 미디어 세그먼트 각각과 연관된 하나 이상의 개개의 메인 타임 스탬프 오프셋에 기반하여 MSE 소스 버퍼에 상기 하나 이상의 메인 미디어 세그먼트를 첨부하게 하고;
    하나 이상의 보조 미디어 세그먼트와 연관된 하나 이상의 보조 기간 속성에 기반하여 상기 MSE 소스 버퍼에 상기 하나 이상의 보조 미디어 세그먼트를 첨부하게 하고 ―상기 하나 이상의 보조 기간 속성 중의 보조 기간 속성은 시작 타임 속성을 포함하는 기간 타입 엘리먼트이고, 상기 시작 타임 속성은, 상기 하나 이상의 메인 미디어 세그먼트 중의 메인 미디어 세그먼트가 상기 하나 이상의 보조 미디어 세그먼트 중의 보조 미디어 세그먼트를 플레이하기 위해 중지되는 제1 타임 오프셋을 지시함―; 및
    상기 하나 이상의 개개의 메인 타임 스탬프 오프셋 및 상기 하나 이상의 보조 기간 속성에 기반하여, 상기 MSE 소스 버퍼의 상기 하나 이상의 메인 미디어 세그먼트 및 상기 하나 이상의 보조 미디어 세그먼트를 디스패치하게 하는
    하나 이상의 명령을 포함하는, 명령을 저장하는 비-일시적 컴퓨터-판독가능 매체.
  18. 제17항에 있어서,
    상기 보조 기간 속성은 리턴 타임 속성을 더 포함하고,
    상기 리턴 타임 속성은, 상기 하나 이상의 메인 미디어 세그먼트 중의 메인 미디어 세그먼트가 상기 하나 이상의 보조 미디어 세그먼트 중의 보조 미디어 세그먼트를 플레이하기 위해 중지된 이후, 상기 하나 이상의 메인 미디어 세그먼트 중의 메인 미디어 세그먼트가 재시작되는 제2 타임 오프셋을 지시하는, 명령을 저장하는 비-일시적 컴퓨터-판독가능 매체.
  19. 제18항에 있어서,
    MSE 소스 버퍼 타임 스탬프 오프셋은 상기 메인 미디어 세그먼트가 중지되거나 또는 재시작되는 것에 기반하여 업데이트되는, 명령을 저장하는 비-일시적 컴퓨터-판독가능 매체.
  20. 제17항에 있어서,
    상기 하나 이상의 보조 기간 속성은 보조 미디어 프레젠테이션 설명(MPD)에서 하나 이상의 기간 이전에 배치되는, 명령을 저장하는 비-일시적 컴퓨터-판독가능 매체.
KR1020237017044A 2021-10-06 2022-09-23 미디어 스트리밍 및 재생 동안 프리롤 및 미드롤을 지원하기 위한 방법 및 장치 KR20230086792A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202163253046P 2021-10-06 2021-10-06
US63/253,046 2021-10-06
US17/949,684 2022-09-21
US17/949,684 US11799943B2 (en) 2021-10-06 2022-09-21 Method and apparatus for supporting preroll and midroll during media streaming and playback
PCT/US2022/044496 WO2023059450A1 (en) 2021-10-06 2022-09-23 Method and apparatus for supporting preroll and midroll during media streaming and playback

Publications (1)

Publication Number Publication Date
KR20230086792A true KR20230086792A (ko) 2023-06-15

Family

ID=85774943

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237017044A KR20230086792A (ko) 2021-10-06 2022-09-23 미디어 스트리밍 및 재생 동안 프리롤 및 미드롤을 지원하기 위한 방법 및 장치

Country Status (6)

Country Link
US (1) US11799943B2 (ko)
EP (1) EP4226601A4 (ko)
JP (1) JP2024510139A (ko)
KR (1) KR20230086792A (ko)
CN (1) CN116530072A (ko)
WO (1) WO2023059450A1 (ko)

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10616297B2 (en) * 2012-07-09 2020-04-07 Futurewei Technologies, Inc. Content-specific identification and timing behavior in dynamic adaptive streaming over hypertext transfer protocol
US10902474B2 (en) * 2014-03-24 2021-01-26 Qualcomm Incorporated Targeted advertisement insertion for streaming media data
US20160134672A1 (en) * 2014-11-11 2016-05-12 Qualcomm Incorporated Delivering partially received segments of streamed media data
KR101853670B1 (ko) * 2015-03-01 2018-05-02 엘지전자 주식회사 방송 신호 송신 장치, 방송 신호 수신 장치, 방송 신호 송신 방법, 및 방송 신호 수신 방법
US10681104B1 (en) * 2017-09-13 2020-06-09 Amazon Technologies, Inc. Handling media timeline offsets
US11310540B2 (en) * 2017-11-10 2022-04-19 Qualcomm Incorporated Interfaces between dash aware application and dash client for service interactivity support
US20190238950A1 (en) * 2018-01-31 2019-08-01 Qualcomm Incorporated Dynamic conditional advertisement insertion
US10863211B1 (en) * 2018-11-12 2020-12-08 Amazon Technologies, Inc. Manifest data for server-side media fragment insertion

Also Published As

Publication number Publication date
EP4226601A1 (en) 2023-08-16
WO2023059450A1 (en) 2023-04-13
US11799943B2 (en) 2023-10-24
US20230107531A1 (en) 2023-04-06
EP4226601A4 (en) 2024-03-13
JP2024510139A (ja) 2024-03-06
CN116530072A (zh) 2023-08-01

Similar Documents

Publication Publication Date Title
JP7246508B2 (ja) Httpによる動的適応ストリーミングのための方法及び装置
JP2023520651A (ja) メディア・ストリーミング方法及び装置
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
KR20230086792A (ko) 미디어 스트리밍 및 재생 동안 프리롤 및 미드롤을 지원하기 위한 방법 및 장치
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

Legal Events

Date Code Title Description
A201 Request for examination