KR20220133938A - 원격 엘리먼트 리졸루션들의 클라이언트 기반 저장 - Google Patents

원격 엘리먼트 리졸루션들의 클라이언트 기반 저장 Download PDF

Info

Publication number
KR20220133938A
KR20220133938A KR1020227029375A KR20227029375A KR20220133938A KR 20220133938 A KR20220133938 A KR 20220133938A KR 1020227029375 A KR1020227029375 A KR 1020227029375A KR 20227029375 A KR20227029375 A KR 20227029375A KR 20220133938 A KR20220133938 A KR 20220133938A
Authority
KR
South Korea
Prior art keywords
presentation description
opportunity
supplemental content
manifest
information
Prior art date
Application number
KR1020227029375A
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 KR20220133938A publication Critical patent/KR20220133938A/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/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/435Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
    • 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/23439Processing 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 for generating different versions
    • 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/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/431Generation of visual interfaces for content selection or interaction; Content or additional data rendering
    • H04N21/4312Generation of visual interfaces for content selection or interaction; Content or additional data rendering involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations
    • H04N21/4316Generation of visual interfaces for content selection or interaction; Content or additional data rendering involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations for displaying supplemental content in a region of the screen, e.g. an advertisement in a separate window
    • 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/433Content storage operation, e.g. storage operation in response to a pause request, caching operations
    • H04N21/4331Caching operations, e.g. of an advertisement for later insertion during playback
    • 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/435Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
    • H04N21/4355Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream involving reformatting operations of additional data, e.g. HTML pages on a television screen
    • H04N21/4356Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream involving reformatting operations of additional data, e.g. HTML pages on a television screen by altering the spatial resolution, e.g. to reformat additional data on a handheld device, attached to the STB
    • 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/84Generation or processing of descriptive data, e.g. content descriptors
    • 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/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)
  • Business, Economics & Management (AREA)
  • Marketing (AREA)
  • Databases & Information Systems (AREA)
  • Information Transfer Between Computers (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

일부 실시형태들에서, 방법은 미디어 프리젠테이션을 위한 매니페스트 프리젠테이션 디스크립션을 수신한다. 매니페스트 프리젠테이션 디스크립션은 기회에 대한 보충 컨텐츠를 결정하기 위해 리졸루션을 요구하는 기회를 포함한다. 기회를 리졸브하라는 요청이 전송되고 여기서, 요청으로부터 수신된 보충 컨텐츠에 대한 정보는 미디어 프리젠테이션 디스크립션의 인스턴스에 삽입된다. 본 방법은 기회에 대한 식별자와 연관하여 보충 컨텐츠에 대한 정보를 저장한다. 매니페스트 프리젠테이션 디스크립션에 대한 업데이트가 수신되고, 여기서 업데이트는 기회를 포함한다. 본 방법은 기회에 대한 식별자와 연관하여 저장되었던 보충 컨텐츠에 대한 정보를 취출하고, 매니페스트 프리젠테이션 디스크립션에 대한 업데이트의 인스턴스에 보충 컨텐츠에 대한 정보를 삽입한다.

Description

원격 엘리먼트 리졸루션들의 클라이언트 기반 저장
관련 출원들의 교차 참조
35 U.S.C. §119(e) 에 따라, 본 출원은 2020년 2월 28일자로 출원된 미국 가출원 번호 제 62/983,358 호의 출원일의 이익을 주장하고 그 권리가 주어지며, 본원에서는 실제로 그 전체 내용이 참조로서 포함된다.
배경기술
라이브 스트리밍은 미디어 프리젠테이션 디스크립션을 사용하여 클라이언트들로의 세그먼트들의 연속적인 전달을 요구한다. 클라이언트들은 폴링 프로토콜을 통하여 세그먼트 정보를 취득한다. 예를 들어, 상이한 스트리밍 프로토콜들, 이를 테면, DASH (Dynamic Adaptive Streaming over HTTP) 및 HLS (HTTP (Hypertext Transfer Protocol) live streaming) 이 사용될 수도 있다. 피처들, 이를 테면, 프로그램 스타트 오버, 디지털 비디오 DVR (digital video recorder) 윈도우들, 및 끊김없는 롤오버를 실행하기 위해, 서버들은 클라이언트가 스트림에 가입한 시점에서부터 모든 알려진 스트림 정보를 포함하는 미디어 프리젠테이션 디스크립션에 대한 업데이트를 지속적으로 전송한다. 새로운 미디어 프리젠테이션 디스크립션은 추가적인 세그먼트들에 대한 일부 새로운 정보를 포함할 뿐만 아니라 전송되었던 모든 이전 정보, 이를 테면, 스트림 초기화 정보 및 이전 세그먼트들을 포함한다.
미디어 프리젠테이션 디스크립션은 또한 미디어 프리젠테이션에 삽입될 수 있는 보충 컨텐츠, 이를 테면, 광고들에 대한 정보를 포함할 수도 있다. 상이한 방법들이 스트림에 보충 컨텐츠를 삽입하기 위해 사용될 수도 있다. 예를 들어, SGAI (Server-Guided Ad Insertion) 는 스트림이 클라이언트에 도달하기 전에 미디어 프리젠테이션 내에 애드버타이징 기회를 기술하는 애드버타이징 서비스 아키텍처이지만, 프리젠테이션 타임라인을 완료하기 위해 필요에 따라 클라이언트가 기회들을 리졸브해야 한다. 이 유형의 삽입은 프로토콜의 업데이트 및 원격 리졸루션 메카니즘에 의해 실행될 수도 있다.
프리젠테이션, 이를 테면, 라이브 프리젠테이션에서, 클라이언트가 각각의 새로운 매니페스트를 수신할 때, 보충 컨텐츠의 이전에 리졸브된 인스턴스들은 새로운 매니페스트로부터 제거된다. 따라서, 클라이언트는 새로운 매니페스트에 있는 각각의 기회를 재-리졸브하는 것이 필요하다. 라이브 프리젠테이션이 프리젠테이션 타임라인 하방으로 진행함에 따라, 기회들의 수가 증가하고, 새로운 매니페스트가 수신된 각각의 시간에 모든 기회들의 재-리졸루션은 클라이언트에서의 리소스들을 낭비시키고 상당한 오버헤드를 야기한다. 또한, 기회들의 재-리졸루션은 각각의 리졸루션에 대한 새로운 응답으로서 처리될 수도 있다. 이는 정상 플레이아웃 동안에 일관되지 않은 상태 표현이다. 즉, 더 오래된 기회들의 재-리졸루션은 플레이아웃 동안에 문제를 야기할 수도 있다. 예를 들어, 클라이언트가 기회에 대한 보충 컨텐츠를 플레이하는 동안에 매니페스트에 대한 업데이트가 수신되면, 그 기회는 플레이백의 중간에 재-리졸브될 수도 있고 플레이백 문제를 야기할 수도 있다. 예를 들어, 플레이되고 있는 현재 보충 컨텐츠는 중단될 수도 있고 보충 컨텐츠의 다른 인스턴스가 시작될 수도 있다.
후속하는 논의, 특히, 도면들에 관하여, 나타낸 상세들은 예시적인 논의의 목적들로 예들을 나타내고 그리고 본 개시의 원리들 및 개념적 양태들의 설명을 제공하기 위하여 제시됨이 강조된다. 이와 관련하여, 본 개시의 기본적인 이해를 위해 필요한 것 이상의 구현 상세들을 나타내려는 시도는 이루어지지 않는다. 도면들과 함께 이어지는 논의는 본 개시에 따른 실시형태들이 어떻게 실시될 수도 있는지가 당업자에게 자명하게 된다. 유사하거나 동일한 참조 번호들은 다양한 도면들 및 지원 설명들에서 유사하거나 동일한 엘리먼트들을 식별하거나 그렇지 않으면 이를 지칭하는데 사용될 수도 있다. 첨부 도면들에서:
도 1 은 일부 실시형태들에 따라 동적 컨텐츠 대체를 수행하기 위한 간략화된 시스템을 나타낸다.
도 2 는 일부 실시형태들에 따라 초기 매니페스트 프리젠테이션 디스크립션을 프로세싱하기 위한 방법의 간략화된 플로우차트를 나타낸다.
도 3a 및 도 3b 는 일부 실시형태들에 따라 초기 매니페스트 프리젠테이션 디스크립션의 일 예를 나타낸다.
도 4 는 일부 실시형태들에 따라 요청에 따라 기회들을 리졸브하기 위한 방법의 간략화된 플로우차트를 나타낸다.
도 5 는 일부 실시형태들에 따른 데이터 구조의 일 예를 나타낸다.
도 6 은 일부 실시형태들에 따른 두개의 주기들에 대한 리졸루션의 일 예를 나타낸다.
도 7 은 일부 실시형태들에 따른 주기들에 대한 정보를 갖는 데이터 구조의 다른 예를 나타낸다.
도 8a 및 도 8b 는 일부 실시형태들에 따라 리졸루션 결과들의 삽입 후에 매니페스트 프리젠테이션 디스크립션의 일 예를 나타낸다.
도 9 는 일부 실시형태들에 따라 매니페스트 프리젠테이션 디스크립션에 대한 업데이트들을 프로세싱하기 위한 방법의 간략화된 플로우차트를 나타낸다.
도 10a 및 도 10b 는 일부 실시형태들에 따라 매니페스트 프리젠테이션 디스크립션의 업데이트의 일 예를 나타낸다.
도 11a 및 도 11b 는 일부 실시형태들에 따라 리졸루션들에 대한 정보의 삽입 후에 매니페스트 프리젠테이션 디스크립션의 일 예를 나타낸다.
도 12 는 일 실시형태에 따른 하나 이상의 통신 네트워크들을 통해 다수의 클라이언트 디바이스들과 통신하는 비디오 스트리밍 시스템을 나타낸다.
도 13 은 비디오 컨텐츠 및 광고들을 뷰잉하기 위한 장치의 개략도를 나타낸다.
발명의 상세한 설명
본원에서는 컨텐츠 전달 시스템에 대한 기법들이 설명된다. 다음의 설명에 있어서, 설명의 목적으로, 다수의 예들 및 특정 상세들이 일부 실시형태들의 철저한 이해를 제공하기 위해 기재된다. 청구항들에 의해 정의된 바와 같은 일부 실시형태들은 이들 예들에서의 특징들 중 일부 또는 전부를, 단독으로 또는 이하 설명되는 다른 특징들과 조합하여 포함할 수도 있고, 본원에서 설명된 특징들 및 개념들의 수정들 및 등가물들을 더 포함할 수도 있다.
동적 컨텐츠 대체는 비디오 전달 시스템이 컨텐츠 스트림, 이를 테면, 라이브 스트림 또는 비디오 온 디맨드 스트림에 동적으로 삽입하기 위해 보충 컨텐츠를 동적으로 삽입할 수 있게 한다. 보충 컨텐츠, 이를 테면, 광고는 클라이언트에게 현재 전송되고 있는 미디어 프리젠테이션에서의 메인 컨텐츠와는 상이한 컨텐츠일 수도 있다. 예를 들어, 보충 컨텐츠는 미디어 프리젠테이션에 삽입되는 광고들일 수도 있다. 다른 보충 컨텐츠, 이를 테면, 비디오 전달 시스템 상에 제공된 다른 미디어 프리젠테이션을 추천하는 컨텐츠, 네트워크 식별 범퍼들, 비상 경보들, 속보 경보들, 스트림 소스 스위치들 및 사용자 선택 기반 컨텐츠 대체 ("choose your own adventure" 유형 컨텐츠) 가 인정될 수도 있다.
동적 컨텐츠 대체는 스트림에서의 일 지점에 포함된 기회들을 리졸브하는 프로세스일 수도 있다. 리졸루션은 스트림을 시청하는 동안 발생하지만, 보충 컨텐츠를 삽입하기 위한 기회의 포인트가 클라이언트에서 플레이아웃에 대해 도달되기 전에 발생한다. 클라이언트는 필요할 때 기회들에 대한 보충 컨텐츠를 동적으로 요청하는 것에 의해 기회들을 리졸브할 수도 있다. 일부 실시형태들에서, 리졸루션은 아직 보충 컨텐츠가 선택되지 않았던 기회들과 같은 플레이스홀더 기회들을 대체할 수도 있다. 예를 들어, 라이브 스트림에서, 클라이언트는 보충 컨텐츠를 수신하기 위해 기회들에 도달하기 전에 기회들을 리졸브할 수도 있다. 일부 실시형태들에서, 동적 컨텐츠 대체는 서버를 사용하여 기회들을 원격으로 리졸브할 수도 있다. 서버는 각각의 기회마다 보충 컨텐츠를 선택할 수도 있다. 일부 실시형태들에서, 서버는 사용자 마다 타겟팅되는 보충 컨텐츠를 결정한다.
매니페스트 프리젠테이션 디스크립션은 메인 컨텐츠의 세그먼트들을 기술하고 보충 컨텐츠에 대한 기회들을 또한 기술하기 위해 사용된다. 위에 언급된 바와 같이, 클라이언트는, 리졸브될 필요가 있는 이전 기회들 모두를 포함하는 매니페스트 프리젠테이션 디스크립션에 대한 업데이트를 수신할 수도 있다. 즉, 클라이언트가 일부 기회들을 이전에 리졸브하였던 경우에도, 이들 이전에 리졸브된 기회들에 대한 보충 컨텐츠는 업데이트된 매니페스트 프리젠테이션 디스크립션에 포함되지 않을 수도 있다. 모든 기회들을 재-리졸브하도록 클라이언트를 강제하는 대신에, 클라이언트는 모든 기회들을 재-리졸브하는 것을 회피하기 위하여, 데이터 구조, 이를 테면, 메모리에 저장된 테이블을 사용한다. 예를 들어, 데이터 구조는 매니페스트 프리젠테이션 디스크립션에서 발견되는 기회들에 대한 식별자들 및 개별적인 기회들에 대하여 이전에 결정되었던 대응하는 보충 컨텐츠에 대한 정보를 저장한다. 클라이언트가 보충 컨텐츠의 이전에 리졸브된 인스턴스들을 제거한 각각의 새로운 매니페스트 프리젠테이션 디스크립션을 수신할 때, 클라이언트는 기회들을 재-리졸브하는 대신에 데이터 구조로부터 보충 컨텐츠를 취출할 수도 있다. 클라이언트는 매니페스트 프리젠테이션 디스크립션에 대하여 이미 리졸브되었던 기회들을 재-리졸브할 필요가 없기 때문에 이는 연산 리소스 사용을 절감한다. 저장으로부터의 정보를 사용하는 동작은 다수의 요청들을 전송하고 다수의 응답들을 프로세싱하는 것보다 덜 연산 리소스 집약적이다. 또한, 요청들 및 응답들이 네트워크를 통하여 전송되지 않기 때문에 대역폭 사용이 감소된다. 또한, 기회들을 재-리졸브하지 않기 위한 데이터 구조의 사용은 이전에 트리거링된 리졸루션 기회로부터 새로운 리졸루션 기회들의 트리거링을 분리한다. 따라서, 클라이언트가 다수의 업데이트들에 걸쳐 단일의 지속적인 프리젠테이션 타임라인을 유지하고 새로운 리졸루션 시나리오들이 사용되는 것을 여전히 허용할 수 있다.
시스템 개요
도 1 은 일부 실시형태들에 따라 동적 컨텐츠 대체를 수행하기 위한 간략화된 시스템 (100) 을 나타낸다. 시스템 (100) 은 서버 (102) 및 클라이언트 (104) 를 포함한다. 서버 (102) 및 클라이언트 (104) 중 하나의 인스턴스가 도시되어 있지만, 서버 (102) 및 클라이언트 (104) 중 다수의 인스턴스들이 선택될 수도 있다.
서버 (102) 는 클라이언트 (104) 로 미디어 프리젠테이션을 전달할 수도 있다. 서버 (102) 는 CDN (content delivery network) 의 부분일 수도 있고, 이는 다수의 디바이스들을 사용하여 미디어 프리젠테이션들 및 다른 컨텐츠를 전달할 수도 있다. 서버 (102) 가 논의될 때, 기능성은 CDN 에서의 다수의 디바이스들에 의해 수행될 수도 있고 이는 서버 (102) 로 제한되지 않는다. 하나의 예에서, 서버 (102) 는 다수의 비트레이트들에서 인코딩되었던 (인코딩될) 여러 미디어 프리젠테이션, 이를 테면, 비디오 (예를 들어, 타이틀 또는 쇼) 를 저장한다. 예를 들어, 미디어 프리젠테이션은 하이에서 로우로, 인코더가 비트레이트들에서 인코딩하는 세그먼트들로 분할되었다. 미디어 프리젠테이션은 미디어 프리젠테이션 #1 (높은 비트레이트), 미디어 프리젠테이션 #2 (중간 비트레이트), ..., 및 미디어 프리젠테이션 #N (낮은 비트레이트) 으로서 상이한 버전들 (즉, 비트레이트들) 로 저장된다. 상이한 비트레이트들은 상이한 품질 레벨들에서 비디오들을 제공한다. 예를 들어, 더 높은 비트레이트 비디오는 중간 비트레이트보다 더 높은 품질로 이루어지고, 중간 비트레이트는 더 낮은 비트레이트보다 더 높은 품질로 이루어진다. 이들 인코딩들이 설명되어 있지만, 여러 실시형태들은 임의의 수의 비트레이트들에서 상이한 인코딩들을 포함할 수도 있다.
클라이언트 (104) 는 여러 사용자 디바이스들, 이를 테면, 셀룰라 폰들, 셋톱 박스들, 스트리밍 디바이스들, 퍼스널 컴퓨터, 태블릿 컴퓨터들 등을 포함할 수도 있다. 클라이언트 (104) 는 미디어 프리젠테이션을 플레이할 수 있는 미디어 플레이어 (114) 를 포함할 수도 있다. 예를 들어, 미디어 플레이어 (114) 는 미디어 프리젠테이션으로부터 비디오 및/또는 오디오를 플레이할 수도 있다. 클라이언트 (104) 는 매니페스트 프리젠테이션 디스크립션들을 프로세싱하고 본원에 설명된 원격 리졸루션을 수행하는 매니페스트 프리젠테이션 디스크립션 프로세서 (112) 을 포함한다.
전달 메카니즘, 이를 테면, DASH (또한 MPEG-DASH 로서 알려짐) 또는 HLS 를 포함하는 프로토콜 사양은 서버 (102) 로부터 클라이언트 (104) 로 미디어 프리젠테이션의 세그먼트들에 대한 정보를 전달하는데 사용될 수도 있다. 서버 (102) 는 매니페스트 프리젠테이션 디스크립션 서버 (106) 및 보충 컨텐츠 요청 프로세서 (108) 를 포함한다. 매니페스트 프리젠테이션 디스크립션 서버 (106) 및 보충 컨텐츠 요청 프로세서 (108) 가 동일한 서버 (102) 에 도시되어 있지만, 이들이 상이한 디바이스들에 위치될 수 있음이 주지된다. 또한, 개별적으로 도시되어 있지만, 매니페스트 프리젠테이션 디스크립션 서버 (106) 및/또는 보충 컨텐츠 매니페스트 서버 (108) 는 별도의 엔티티들일 필요는 없고 기능들이 단일의 엔티티에 의해 수행될 수도 있다.
매니페스트 프리젠테이션 디스크립션 서버 (106) 는 매니페스트 프리젠테이션 디스크립션들을 클라이언트 (104) 에 전송할 수도 있다. 클라이언트 (104) 는 미디어 프리젠테이션 디스크립션들을 서버 (102) 로부터 수신한다. 미디어 프리젠테이션 디스크립션들을 사용하여, 클라이언트 (104) (예를 들어, 미디어 플레이어 (114)) 는 서버 (102) 에게 미디어 프리젠테이션의 세그먼트들을 요청할 수도 있다. 미디어 프리젠테이션의 세그먼트들을 수신시, 클라이언트 (104) 는 클라이언트 (104) 가 세그먼트들을 수신한 대역폭을 평가할 수 있다. 클라이언트 (104) 가 수행할 수도 있는 하나의 평가는 이용가능한 대역폭을 추정하기 위해 일 기간에 걸쳐 수신된 미디어 프리젠테이션 (예를 들어, 비디오) 의 양을 측정하는 것이다. 이용가능한 대역폭에 따라, 클라이언트 (104) 는 미디어 프리젠테이션의 어느 비트레이트 (또는 버전) 를 요청할지에 대한 결정들을 행할 수 있다. 예를 들어, 클라이언트 (104) 는 미디어 프리젠테이션의 어느 버전이 미디어 프리젠테이션의 세그먼트를 요청할지를 결정하고, 여기서 버전들은 상이한 비트레이트들을 포함할 수 있다.
미디어 프리젠테이션의 상이한 비트레이트를 요청하는 것에 더하여, 클라이언트 (104) 는 매니페스트 프리젠테이션 디스크립션들에서 보충 컨텐츠 기회들을 리졸브하라는 요청을 보충 컨텐츠 요청 프로세서 (108) 로 전송할 수도 있다. 그 후, 보충 컨텐츠 요청 프로세서 (108) 는 어느 보충 컨텐츠를 매니페스트 프리젠테이션 디스크립션에 삽입할지를 결정하는 것에 의해 기회들을 리졸브한다. 이 과정에서, 보충 컨텐츠 요청 프로세서 (108) 는 보충 컨텐츠를 결정하기 위해 보충 컨텐츠 서버 (110) 와 통신할 수도 있다. 일부 실시형태들에서, 컨텐츠 서버 (110) 는 이를 테면, 디폴트 컨텐츠 (예를 들어, 디폴트 애드버타이징들) 을 대체하거나, 플레이스홀더 기회들을 리졸브하거나, 또는 스트림에서 이전 보충 컨텐츠 기회들을 재-리졸브하기 위해 보충 컨텐츠 기회들에서 스트림에 동적으로 삽입될 수 있는 보충 컨텐츠를 식별할 수도 있다.
위의 프로세스는 SGAI (Server-Guided Ad Insertion) 로서 참조될 수도 있고, 여기서 서버 (102) 는 스트림이 클라이언트 (104) 에 도달하기 전에 미디어 프리젠테이션 내에 애드버타이징 기회들을 완전하게 기술한다. 일부 실시형태들은 다른 삽입 방식들, 이를 테면, CSAI (client-side ad insertion) 로 사용될 수 있고 이는 클라이언트 애플리케이션이 서버 (102) 와의 직접 통신을 처리하고 메인 컨텐츠가 중단되는 동안 세컨더리 플레이어 내에서 플레이되는 애드버타이징 컨텐츠를 갖는 애드버타이징 서빙 아키텍처이다. 클라이언트 (104) 는 미디어 프리젠테이션 타임라인을 완료하기 위해 필요에 따라 기회들을 리졸브한다. 설명된 바와 같이 원격 리졸루션 및 업데이트 기법들의 사용은 다수의 클라이언트들 (104) 에 대한 서버 (102) 에서의 캐시된 공통의 메인 컨텐츠 프리젠테이션이 각각의 클라이언트 (104) 에 대해 고유하고 개인화된 스트림으로 되는 것을 허용한다. 이들 피처들은 큐들을 제어하는 것에 기초하여 서버 (102) 로의 재 비동기 호들에서 클라이언트 (104) 에 의해 확장될 메인 컨텐츠 및 리졸루션 기회 포인트들로 프리젠테이션들이 형성되는 것을 허용한다. 기능이 DASH 에서 주기 그룹의 부분으로서 기술되지만 이는 다른 매니페스트 및 원격 엘리먼트 리졸루션 폼 뿐만 아니라 DASH 또는 다른 프로토콜, 이를 테면, HLS 내에서 추가적인 엘리먼트 타입들로 일반화될 수 있음을 주지한다. 예를 들어, 다음의 기능들은 동적 리졸루션을 사용하기 위해 클라이언트 (104) 에 의해 사용될 수 있지만, 이들 모두가 존재할 필요가 있는 것은 아니다:
기능 1: 프리젠테이션은 기회가 프리젠테이션 타임라인 및 고정된 경우 기회의 타임라인 바운더리들에 존재하는 위치를 명시적으로 기술한다. 프리젠테이션 타임라인은 클라이언트 (104) 가 컨텐츠를 요청하기 위해 뒤따르는 것이다.
기능 2: 프리젠테이션은 기회가 리졸브될 수 있는 위치를 기술가능하다.
기능 3: 기회 리졸루션은 리졸루션 프로세스들 동안에 사용되는 클라이언트 소싱된 정보를 전달하는 방식을 갖는다.
기능 4: 리졸루션의 결과적인 보충 컨텐츠는 메인 프리젠테이션에서의 직접적인 포함을 허용하기 위해 자체 내장된다.
기능 5: 프리젠테이션 프로세싱 모델은 프리젠테이션 타임라인이 프리젠테이션의 라이프타임을 위한 리졸루션 결과를 수용하기 위해 어떻게 조정되고/확장되는지를 정의한다.
기능 #1 에 대하여, 기회가 주기로서 존재하는 위치를 주기들이 기술하는 것은 디폴트 메인 컨텐츠의 경우 메인 프리젠테이션 컨텐츠 타임라인 내에서의 기회의 길이와 시점 양쪽 모두를 정의할 수 있다. 주기의 자체 내장된 특성은 동적 리졸루션에서 삽입/대체 동작들을 가능하게 한다. 프리젠테이션 타임라인에 대한 이들 효과들은 타임라인 내에서 주기의 타이밍 특성을 정의한다. 주기들은 주기의 시작 및 종료를 마킹하고 이에 따라 이들이 삽입된 컨텐츠에 대한 독립형 컨테이너들일 수 있게 하는 것에 의해 자체 내장된다. 이들 컨테이너들은 보충 컨텐츠, 이를 테면, 광고 크리에이티브의 오더링 및 넘버링 요건을 충족하기 위해 필요에 따라 믹싱되고 매칭될 수도 있다.
기능 #2 에 대해, 매니페스트 프리젠테이션 디스크립션은 링크를 사용하여 보충 컨텐츠에 대한 기회를 리졸브하도록 기회를 제공하는 원격 로케이터, 이를 테면, URL (uniform resource locator) 를 제공할 수도 있다. 예를 들어, @xlink:href 속성을 갖는 링크는 링크를 사용하여 리졸브될 수 있다.
기능 #3 에 대해, 클라이언트 (104) 는 클라이언트 상태를 서버에 동적으로 전송할 수 있다. 예를 들어, 클라이언트 (104) 는 클라이언 상태를 서버 (102) 에 전송하고 클라이언트 고유 컨텐츠를 동적으로 수신할 수 있다.
기능 #4 에 대해, 주기는 보충 컨텐츠의 인스턴스에 의해 대체되도록 설계된다.
기능 #5 에 대해, 프리젠테이션 디스크립션에 대한 변경은 프리젠테이션의 라이프타임 동안 삽입된 보충 컨텐츠를 수용하기 위해 프리젠테이션 타임라인을 조정 또는 확장할 수도 있다.
사양, 이를 테면, XLink (XML Linking Language) 는 원격 리졸루션을 수행하는데 사용될 수도 있다. XLink 가 설명되어 있지만, 원격 리졸루션을 허용하는 다른 프로토콜들이 사용될 수도 있다. 원격 리졸루션은 어느 보충 컨텐츠가 기회들에 삽입되어야 하는지를 결정하기 위해 클라이언트 (104) 의 외부에서 수행되는 리졸루션일 수도 있다. 리졸루션 및 대체 메카니즘은 메인 프리젠테이션과 원격 엘리먼트들을 결합하는데 사용될 수도 있다. 제 1 속성은 보충 컨텐츠가 취출될 수 있는 위치를 가르키는 링크를 설명하는데 사용될 수도 있다. 제 2 속성은 매니페스트 프리젠테이션 디스크립션을 프로세싱할 때 보충 컨텐츠의 리졸루션이 언제 수행되어야 하는지를 기술한다. 예를 들어, XLink 는 사용될 수도 있는 속성들, 이를 테면 @xlink:href 및 @xlink:actuate 를 포함할 수도 있다. 속성 @xlink:href 는 보충 컨텐츠가 취출될 수 있는 위치를 가르키는 링크, 이를 테면, URI (uniform resource identifier) 를 설명한다. 속성 @xlink:actuate 는 매니페스트 프리젠테이션 디스크립션을 프로세싱할 때 보충 컨텐츠의 리졸루션이 언제 수행되어야 하는지를 기술한다. 다른 속성들이 또한 사용될 수도 있다.
리졸루션은 제 2 속성 값과 연관된 조건이 언제 클라이언트 플레이어 상태에 의해 충족되는지를 트리거링될 수도 있다. 예를 들어, 값, 이를 테면, "onLoad"는 오리지널 매니페스트 프리젠테이션 디스크립션이 로딩될 때 보충 컨텐츠에 대한 정보가 요청되어야 함을 나타낸다. 또한, 값, 이를 테면, "onRequest"은 정보가 매니페스트 프리젠테이션 디스크립션에 관련되게 될 때, 이를 테면, 주기가 스트림의 플레이백 동안에 마주칠 때 보충 컨텐츠에 대한 정보가 요청되어야 함을 나타낸다. 예를 들어, 정보는 기회 이전의 X 초, 이전의 X 주기, 또는 이전의 임의의 시간에 관련될 수도 있다. 리졸루션의 응답 엘리먼트들은 매니페스트 프리젠테이션 디스크립션에서의 오리지널 엘리먼트들을 원격 리졸루션 속성들로 완전하게 대체한다. 클라이언트 (104) 는 미디어 프리젠테이션의 세그먼트를 요청하기 위해 업데이트가 발생할 때 인-메모리 매니페스트를 재평가한다. 매니페스트 프리젠테이션 디스크립션 서버 (106) 는 보충 컨텐츠 요청 프로세서 (108) 에 의해 식별된 보충 컨텐츠를 사용하여 보충 컨텐츠 매니페스트를 생성하고 보충 컨텐츠 매니페스트를 클라이언트 (104) 로 전송할 수도 있다.
프리젠테이션, 이를 테면, 라이브 스트림에서, 클라이언트 (104) 는 매니페스트 프리젠테이션 디스크립션 서버 (106) 로부터 매니페스트 프리젠테이션 디스크립션에 대한 다수의 업데이트들을 수신할 수도 있다. 각각의 업데이트는 전체 프리젠테이션에 대한 리졸루션 기회들을 포함할 수도 있다. 즉, 클라이언트 (104) 가 매니페스트 프리젠테이션 디스크립션에서 이전에 리졸브된 기회들을 가졌던 경우에도, 이들 리졸루션 기회에 대한 보충 컨텐츠는 매니페스트 프리젠테이션 디스크립션의 업데이트에 나타나지 않는다. 리졸루션 기회들에 대한 보충 컨텐츠가 업데이트에 존재하지 않는 하나의 이유는 서버 (102) 가 각각의 클라이언트 (104) 에 대한 보충 컨텐츠의 리졸루션 결과들을 저장하지 않는 것이다. 각각의 클라이언트 (104) 가 상이한 리졸루션들을 가질 수도 있고 저장될 필요가 있는 데이터 양은 대량이고 스케일하기 어려울 수도 있기 때문에 서버 (102) 는 리졸루션들을 저장하기 않을 수도 있다. 따라서, 서버 (102) 는 상태 비보전형 (stateless) 일 수도 있고 클라이언트 (104) 에 대한 리졸루션들에 대한 보충 컨텐츠의 트랙을 유지하지 않을 수도 있다. 다만, 클라이언트 (104) 는 통상적으로 매니페스트 프리젠테이션 디스크립션에서 모든 리졸루션 기회들을 재-리졸브하는 것이 필요하다.
클라이언트 (104) 는 이전 리졸루션들에 대한 정보를 저장하는 저장부, 이를 테면, 캐시 메모리 (116) 를 포함한다. 예를 들어, 매니페스트 프리젠테이션 디스크립션 프로세서 (112) 이 기회를 리졸브하면, 매니페스트 프리젠테이션 디스크립션 프로세서 (112) 는 캐시 메모리 (116) 에서 데이터 구조에 리졸루션 기회의 식별자에 대한 보충 컨텐츠에 대한 정보를 저장할 수도 있다. 매니페스트 프리젠테이션 디스크립션에 대한 업데이트를 프로세싱할 때, 매니페스트 프리젠테이션 디스크립션 프로세서 (112) 는 데이터 구조에서의 이전에 리졸브된 기회들에 대한 보충 컨텐츠를 식별하고 인-메모리 매니페스트 프리젠테이션 디스크립션에 이전 리졸루션들에 대한 정보를 삽입할 수도 있다. 인-메모리 매니페스트 프리젠테이션 디스크립션은 클라이언트 (104) 에 저장된 매니페스트 프리젠테이션 디스크립션의 버전일 수도 있다. 예를 들어, 클라이언트 (104) 가 매니페스트 프리젠테이션 디스크립션에 대한 업데이트를 수신하는 각각의 시간에, 클라이언트 (104) 는 메모리에 업데이트를 저장한다. 그 후, 클라이언트 (104) 는 인-메모리 매니페스트 프리젠테이션 디스크립션에 식별자들을 로케이팅하고 이전에 리졸브되었던 보충 컨텐츠에 대한 정보로 기회들을 대체하는 것에 의해 인-메모리 매니페스트 프리젠테이션 디스크립션에 이전 리졸루션들을 삽입한다. 이에 따라, 매니페스트 프리젠테이션 디스크립션 프로세서 (112) 는 이들 기회들을 재-리졸브할 필요가 없다. 그후, 매니페스트 프리젠테이션 디스크립션 프로세서 (112) 는 데이터 구조에서 대응하는 엔트리들을 갖지 않는 임의의 기회들을 리졸브할 수도 있다.
도 2 는 일부 실시형태들에 따라 클라이언트 (104) 에서 초기 매니페스트 프리젠테이션 디스크립션을 프로세싱하기 위한 방법의 간략화된 플로우차트를 나타낸다. 202 에서, 매니페스트 프리젠테이션 디스크립션 프로세서 (112) 는 초기 매니페스트 프리젠테이션 디스크립션을 수신 및 로딩한다. 매니페스트 프리젠테이션 디스크립션은 비디오에 대한 플레이백 요청 후에 클라이언트 (104) 에 의해 수신되는 제 1 디스크립션일 수 있거나 리졸루션을 요구하는 제 1 디스크립션일 수도 있다.
204 에서, 매니페스트 프리젠테이션 디스크립션 프로세서 (112) 는 초기 매니페스트 프리젠테이션 디스크립션의 로딩 시 데이터 구조에 요구되는 원격 리졸루션 기회들에 대한 식별자들을 결정 및 저장한다. 도 3a 및 도 3b 는 일부 실시형태들에 따라 초기 매니페스트 프리젠테이션 디스크립션의 일 예를 나타낸다. 이 예가 논의 목적들을 위해 설명되지만, 상이한 프로토콜들이 상이한 포맷들을 사용할 수 있다는 것이 이해될 것이다. 302 에서, 매니페스트 프리젠테이션 디스크립션은 "adbreak-1"의 주기 id 를 갖는 기회를 포함한다. 304 에서, 기회는 "xlink:href= "https://example.com/manifests/xlink/1?live=60.06 "xlink:actuate= "onRequest"" 의 속성을 포함한다. 링크는 보충 컨텐츠를 수신할 기회를 리졸브하기 위해 위치 "https://example.com/manifests/xlink/1?live=60.06" 를 나타낸다. 리졸루션은 ""xlink:actuate= "onRequest" 에 의해 나타내고 온 로드가 아닌 것으로서 요청에 따라 수행되어야 한다. 온 로드 리졸루션은 메니페스트가 수신될 때 수행된다. 온-리퀘스트 프로세싱은 조건이 충족될 때 수행되고 아래 설명된다. 기회들을 리졸브하는 다른 방법들이 또한 고려될 수도 있다. 리졸루션을 위한 기회는 또한 306-1 및 306-2 에서 프리젠테이션의 메인 컨텐츠를 정의하는 주기들에 의해 둘러싸인다. 이들 주기는 프리젠테이션의 메인 컨텐츠의 세그먼트들을 요청하는데 사용될 수 있는 정보를 포함한다. 302에서의 기회는 306-1 및 306-2 에서의 메인 컨텐츠의 플레이백 사이에 삽입된다.
206 에서, 매니페스트 프리젠테이션 디스크립션 프로세서 (112) 는 보충 컨텐츠를 결정하기 위해 온 로드로서 지정되는 원격 리졸루션 기회들을 리졸브한다. 이 예에서, 온 로드 기회들은 없지만, 온 로드 기회들은 온 리퀘스트 기회들에 대하여 유사한 포맷에 있다. 예를 들어, 온 로드 기회는 "xlink:href= "https://example.com/manifests/xlink/1?live=60.06 "xlink:actuate= "onLoad"" 일 수도 있다. 링크는 보충 컨텐츠를 수신할 기회를 리졸브하기 위해 위치 "https://example.com/manifests/xlink/1?live=60.06" 를 나타낸다. 리졸루션은 ""xlink:actuate= "onLoad" 에 의해 나타낸 바와 같이 온 로드로 수행되어야 한다. 온 로드 기회들을 리졸브하기 위해, 매니페스트 프리젠테이션 디스크립션 프로세서 (112) 는 링크를 사용하여 요청을 보충 컨텐츠 요청 프로세서 (108) 로 전송할 수도 있다. 매니페스트 프리젠테이션 디스크립션 프로세서 (112) 는 그후, 보충 컨텐츠에 대한 정보를 매니페스트 프리젠테이션 디스크립션 서버 (106) 로부터 수신할 것이다.
208 에서, 매니페스트 프리젠테이션 디스크립션 프로세서 (112) 는 원격 리졸루션 기회들에 대한 식별자들에 대한 데이터 구조에 보충 컨텐츠에 대한 정보를 저장한다. 예를 들어, 매니페스트 프리젠테이션 디스크립션 프로세서 (112) 는 이것이 온 로드 기회이면 데이터 구조에 "ad-break-1" 의 식별자를 삽입한다. 210 에서, 매니페스트 프리젠테이션 디스크립션 프로세서 (112) 는 대응하는 식별자들에 대해 인-메모리 매니페스트 프리젠테이션 디스크립션에 보충 컨텐츠에 대한 정보를 삽입한다. 예를 들어, 매니페스트 프리젠테이션 디스크립션 프로세서 (112) 은 리졸브된 기회들로서 수신되었던 보충 컨텐츠에 링크를 삽입한다.
도 4 는 일부 실시형태들에 따라 온 리퀘스트 리졸루션을 프로세싱하기 위한 방법의 간략화된 플로우차트 (400) 를 나타낸다. 위에 언급된 바와 같이, 온 리퀘스트 기회들은 비디오의 플레이백 동안에 발생할 수도 있다. 402 에서, 매니페스트 프리젠테이션 디스크립션 프로세서 (112) 는 플레이백 동안에 온 리퀘스트로서 지정된 기회들에 대하여 원격 리졸루션이 요청될 때를 결정한다.
404 에서, 매니페스트 프리젠테이션 디스크립션 프로세서 (112) 는 데이터 구조에 온 리퀘스트로 요구되는 원격 리졸루션 기회들에 대한 식별자들을 결정 및 저장한다. 식별자들의 저장은 원격 리졸루션 기회들을 갖는 초기 매니페스트 프리젠테이션 디스크립션을 수신시 수행될 수도 있다. 또한, 식별자들의 저장은 온 리퀘스트 리졸브에 대해 조건이 충족될 때 수행될 수도 있다. 도 5 는 일부 실시형태들에 따른 데이터 구조 (500) 의 일 예를 나타낸다. 502 에서, 데이터 구조 (500) 는 식별자에 대한 컬럼을 포함하고, 504 에서, 데이터 구조 (500) 는 리졸루션 결과들에 대한 컬럼을 포함한다. 이 경우에, 매니페스트 프리젠테이션 디스크립션 프로세서 (112) 는 506 에서 데이터 구조 (500) 에 주기 동안에 식별자 "adbreak-1" 를 저장한다. 식별자는 매니페스트 프리젠테이션 디스크립션에서의 온 리퀘스트 기회를 식별한다.
도 4 를 다시 참조하여 보면, 406 에서, 온 리퀘스트 원격 리졸루션 기회에 대해 조건이 충족될 때 매니페스트 프리젠테이션 디스크립션 프로세서 (112) 는 보충 컨텐츠를 결정하기 위한 온 리퀘스트 원격 리졸루션 기회들을 리졸브한다. 도 6 은 일부 실시형태들에 따른 두개의 주기들에 대한 리졸루션의 일 예를 나타낸다. 이 예에서, "adbreak-1"에 대한 기회는 두 개의 주기 또는 보충 컨텐츠의 두 개의 인스턴스들로 리졸브되지만, 두개의 주기들로 리졸브될 필요가 있는 것은 아니다. 서버 (102) 로부터 수신된 매니페스트에서, 주기 길이는 60 초이다. 보충 컨텐츠 요청 프로세서 (108) 는 (예를 들어, 본원에 설명된 바와 같이) 컨텐츠의 두 개의 30 초 인스턴스들, 보충 컨텐츠의 하나의 60 초 인스턴스, 보충 컨텐츠의 네 개의 15 초의 인스턴스들로 60초를 리졸브할 수도 있다. 이 경우, 보충 컨텐츠의 제 1 인스턴스에 대한 제 1 주기는 602-1 에 도시되고 보충 컨텐츠의 제 2 인스턴스에 대한 제 2 주기는 602-2 에 도시된다. 제 1 주기는 식별자 "remote-1-1-1" 에 의해 식별되고 제 2 주기는 식별자 "remote-1-1-2"에 의해 식별된다. 각각의 주기는 보충 컨텐츠의 상이한 인스턴스들 및 개별적인 인스턴스를 어떻게 취출하는지를 기술한다. 예를 들어, 각각의 개별적인 인스턴스의 비디오 및 오디오를 취출하는 링크는 각각의 개별적인 주기에 대해 포함될 수도 있다.
도 4 를 참조하여 보면, 408 에서, 매니페스트 프리젠테이션 디스크립션 프로세서 (112) 는 식별자들에 대한 데이터 구조에 보충 컨텐츠에 대한 정보를 저장한다. 도 7 은 일부 실시형태들에 따른 주기들에 대한 정보를 갖는 데이터 구조 (500) 의 다른 예를 나타낸다. 702-1 에서, 매니페스트 프리젠테이션 디스크립션 프로세서 (112) 는 "remote-1-1-1" 의 식별자를 갖는 보충 컨텐츠의 제 1 인스턴스에 대한 정보를 삽입하였다. 또한, 702-2 에서, 매니페스트 프리젠테이션 디스크립션 프로세서 (112) 는 "remote-1-1-2" 의 식별자를 갖는 보충 컨텐츠의 제 1 인스턴스에 대한 정보를 삽입하였다. 인스턴스들을 취출하는 다른 정보는 또한 데이터 구조에 또는 다른 곳에 저장될 수도 있다.
도 4 를 참조하여 보면, 410 에서, 매니페스트 프리젠테이션 디스크립션 프로세서 (112) 는 클라이언트 (104) 에 저장된 인-메모리 매니페스트 프리젠테이션 디스크립션에서의 대응하는 식별자들에 대한 인-메모리 매니페스트 프리젠테이션 디스크립션에 보충 컨텐츠에 대한 정보를 삽입한다. 클라이언트 (104) 는 미디어 프리젠테이션을 플레이하기 위해 인-메모리 매니페스트 프리젠테이션 디스크립션을 사용한다. 도 8a 및 도 8b 는 일부 실시형태들에 따라 리졸루션 결과들의 삽입 후에 매니페스트 프리젠테이션 디스크립션의 일 예를 나타낸다. 매니페스트 프리젠테이션 디스크립션 프로세서 (112) 는 802-1 및 802-2 에서 각각 보충 컨텐츠에 대한 정보를 삽입한다. 보충 컨텐츠는 804-1 에서 "content-1" 및 804-2 에서 "content-2" 의 식별자들을 갖는 비디오로부터 메인 컨텐츠의 두 개의 주기들에 있다. 클라이언트 (104) 는 메인 컨텐츠 및 보충 컨텐츠를 플레이백하기 위해 매니페스트 프리젠테이션 디스크립션에서의 정보를 사용할 수도 있다. 예를 들어, 클라이언트 (104) 는 주기들이 플레이백 타임라인에서 리졸브될 때 메인 컨텐츠 또는 보충 컨텐츠를 요청하도록 매니페스트 프리젠테이션 디스크립션의 주기들에서의 링크들을 사용한다.
매니페스트 프리젠테이션 디스크립션에 대한 업데이트들의 프로세싱
일부 시점에서, 클라이언트 (104) 는 매니페스트 프리젠테이션 디스크립션에 대한 업데이트를 수신한다. 업데이트는 새로운 정보, 이를 테면, 새로운 주기를 포함할 수도 있다. 예를 들어, 라이브 스트림이 계속될 때, 미디어 프리젠테이션에 대한 추가적인 컨텐츠는 클라이언트 (104) 가 요청하기 위해 추가된다. 추가적인 컨텐츠는 매니페스트 프리젠테이션 디스크립션에서 주기들에 포함될 수도 있고 보충 컨텐츠를 삽입하기 위해 메인 컨텐츠 또는 기회들을 표현할 수도 있다. 또한 업데이트 시간이 발생하고 이용가능한 추가적인 컨텐츠가 없다면, 업데이트는 어떠한 새로운 정보도 포함하지 않을 수도 있다. 그러나, 양쪽 경우들에서, 업데이트는 클라이언트 (104) 가 이전에 리졸브한 보충 컨텐츠가 아니라 원래의 원격 리졸루션 시그널링을 포함한다.
도 9 는 일부 실시형태들에 따라 매니페스트 프리젠테이션 디스크립션에 대한 업데이트들을 프로세싱하기 위한 방법의 간략화된 플로우차트 (900) 를 나타낸다. 902 에서, 클라이언트 (104) 는 매니페스트 프리젠테이션 디스크립션에 대한 업데이트를 수신한다. 업데이트는 위에서 논의된 바와 같은 추가적인 주기들을 포함할 수 있고, 또한 이전에 리졸브된 주기들에 대한 정보를 포함하지 않는다. 따라서, 업데이트는 클라이언트 (104) 에서 메모리에 저장되는 매니페스트 프리젠테이션 디스크립션과는 상이하다. 풀 매니페스트 프리젠테이션 디스크립션 업데이트가 발생할 때, 클라이언트 (104) 는 인-메모리 매니페스트를 메모리로부터 완전하게 클리어할 수도 있고 매니페스트 프리젠테이션 디스크립션 프로세서 (112) 는 자신의 자리에 새롭게 로딩된 매니페스트를 저장한다. 이 경우에, 새로운 인-메모리 매니페스트 프리젠테이션 디스크립션은 위에 논의된 바와 같이 기회들을 리졸브하지 않는다.
도 10a 및 도 10b 는 일부 실시형태들에 따라 매니페스트 프리젠테이션 디스크립션의 업데이트의 일 예를 나타낸다. 매니페스트 프리젠테이션 디스크립션에서, 1000 에서, "adbreak-1" 에 대한 주기는 기회에 대한 보충 컨텐츠를 결정하기 위해 원격 리졸루션을 요구한다. 즉, 1000 에 포함된 정보는 302 에서 도 3a 에서 이전의 매니페스트 프리젠테이션 디스크립션에서 검색되는 정보와 유사하다. 이 매니페스트 프리젠테이션 디스크립션은 도 8a 에서 802-1 및 802-2 에 도시된 리졸브된 기회들을 포함하지 않는다.
또한, 이 매니페스트 프리젠테이션 디스크립션은 1002 에서 "content-2" 로서 식별된 제 2 컨텐츠 주기에 새로운 세그먼트를 추가하였다. 새로운 세그먼트는 주기 "content-2" 내에 나타낸 값 "r=1" 의 S 엘리먼트에 대한 추가에 의해 식별되고 여기서, r 속성은 d 속성에 의해 시그널링되는 기존의 세그먼트 지속기간에 등가인 지속기간을 갖는 기술된 세그먼트를 뒤따라 존재하는 다수의 인접하는 세그먼트들을 시그널링한다. 이 예에서 "r=1" 은 "360360" 의 동일한 지속기간을 갖는 기술된 세그먼트를 뒤따르는 하나의 추가적인 세그먼트가 존재함을 나타내며, 추가의 업데이트는 r 값을 다시 증가시키거나, 다른 지속기간 (d 속성) 또는 참조 시간 (t 속성) 을 갖는 새로운 S 엘리먼트를 추가하거나 , 전체적으로 새로운 주기 엘리먼트를 추가할 수도 있다.
도 9 를 다시 참조하여 보면, 매니페스트 프리젠테이션 디스크립션 프로세서 (112) 는 그 후, 매니페스트 프리젠테이션 디스크립션에서 찾아지는 식별자들에 대한 데이터 구조를 탐색한다. 904 에서, 매니페스트 프리젠테이션 디스크립션 프로세서 (112) 는 데이터 구조에서 매니페스트 프리젠테이션 디스크립션으로부터 온 로드로 요구되는 원격 리졸루션 기회들에 대한 식별자들을 결정 및 저장한다. 이들은 이전 매니페스트 프리젠테이션 디스크립션들에서 이전에 마주치지 않았던 새로운 리졸루션 기회들에 대한 것이다. 이 경우에, 매니페스트 프리젠테이션 디스크립션 프로세서 (112) 는 데이터 구조에서 매니페스트 프리젠테이션 디스크립션에서의 리졸루션 기회들로부터의 대응하는 식별자들을 찾지 못한다.
매니페스트 프리젠테이션 디스크립션에서 온 로드 또는 온 리퀘스트 원격 리졸루션 기회들에 대응하는 데이터 구조에서의 식별자들에 대해, 906 에서, 매니페스트 프리젠테이션 디스크립션 프로세서 (112) 는 원격 리졸루션 기회들에 대한 보충 컨텐츠에 대한 데이터 구조로부터의 정보를 인-메모리 매니페스트 프리젠테이션 디스크립션에 삽입한다. 매니페스트 프리젠테이션 디스크립션 프로세서 (112) 는 따라서 보충 컨텐츠를 재결정하기 위해 이들 기회들을 재-리졸브하지 않는다. 온 리퀘스트 및 온 로드 기회들은 온 리퀘스트에서 이전에 리졸브되었된 기회들, 이를 테면, 조건이 이전에 충족되었던 기회들이였고 매니페스트 프리젠테이션 디스크립션 프로세서 (112) 는 온 리퀘스트 및 온 로드 기회들을 리졸브하고 보충 컨텐츠에 대한 정보를 데이터 구조에 저장하였다. 다만, 매니페스트 프리젠테이션 디스크립션 프로세서 (112) 는 데이터 구조로부터 정보를 취출하고 인-메모리 매니페스트 프리젠테이션 디스크립션에 정보를 삽입한다.
908 에서, 데이터 구조에서 대응하는 보충 컨텐츠를 갖지 않는 임의의 나머지 온 로드 원격 리졸루션 기회들에 대해, 매니페스트 프리젠테이션 디스크립션 프로세서 (112) 는 보충 컨텐츠를 결정하기 위해 원격 리졸루션 기회들을 리졸브한다. 이들 온 로드 기회들은 904 에서 데이터 구조에 추가되었던 새로운 식별자들일 수도 있다. 예를 들어, 매니페스트 프리젠테이션 디스크립션 프로세서 (112) 는 데이터 구조에 저장된 보충 컨텐츠에 대한 정보를 갖지 않는 기회들에 대한 리졸루션에 대한 요청들을 전송할 수도 있다. 이들 기회들은 매니페스트 프리젠테이션 디스크립션에 새롭게 삽입될 수도 있다.
보충 컨텐츠로부터 정보를 수신한 후에, 910 에서, 매니페스트 프리젠테이션 디스크립션 프로세서 (112) 는 식별자들과 연관하여 데이터 구조에 원격 리졸루션 기회들에 대한 보충 컨텐츠에 대한 정보를 저장한다.
912 에서, 매니페스트 프리젠테이션 디스크립션 프로세서 (112) 는 대응하는 식별자들에 대해 인-메모리 매니페스트 프리젠테이션 디스크립션에 보충 컨텐츠에 대한 정보를 삽입한다. 이는 인-메모리 매니페스트 프리젠테이션 디스크립션을 이전에 리졸브된 기회들 및 새롭게 리졸브된 기회들로 업데이트한다. 도 11a 및 도 11b 는 일부 실시형태들에 따라 리졸루션들에 대한 정보의 삽입 후에 매니페스트 프리젠테이션 디스크립션의 일 예를 나타낸다. 1102-1 및 1102-2 에서, 매니페스트 프리젠테이션 디스크립션 프로세서 (112) 는 "remote-1-1-1" 및 "remote-1-1-2" 를 각각 갖는 주기들에 대한 이전에 수행된 리졸루션에 대한 정보를 삽입하였다. 그러나, 매니페스트 프리젠테이션 디스크립션 프로세서 (112) 는 원격 리졸루션을 수행할 필요가 없다. 다만, 매니페스트 프리젠테이션 디스크립션 프로세서 (112) 는 기회를 리졸브하기 위해 서버 (102) 에 컨택하는 대신에 데이터 구조에서 발견된 정보를 사용하였다. 업데이트된 매니페스트 프리젠테이션 디스크립션에서 삽입된 정보는 도 6 에서 602-1 및 602-2 에서 발견되는 바와 동일할 수도 있다.
914 에서, 매니페스트 프리젠테이션 디스크립션 프로세서 (112) 는 이전에 리졸브되지 않았던 임의의 온 리퀘스트 원격 리졸루션 기회들을 리졸브하기 위해 플레이백을 대기한다. 이에 후속하여, 리졸루션 기회에 대한 대응하는 조건이 충족될 때, 매니페스트 프리젠테이션 디스크립션 프로세서 (112) 는 데이터 구조 및 인-메모리 매니페스트 프리젠테이션 디스크립션에서 보충 컨텐츠에 대하여 기회를 리졸브하고 정보를 삽입한다.
오직 초기 매니페스트 프리젠테이션 디스크립션들 만이 매니페스트 프리젠테이션 디스크립션에서 원격 주기 엘리먼트(들)의 하나의 인스턴스를 제공하지만, 이는 전체 예를 단순화하기 위한 것이며, 실제로 매니페스트 프리젠테이션 디스크립션 전체에 걸쳐 다수의 독립적인 원격 리졸루션 포인트들이 있을 수 있다. 또한, 구조 표현에 대해 주기 내에 다수의 시간들을 나타낼 수도 있는 엘리먼트들은 생략되었고 본 사상에 본질이 아닌 속성은 전체적인 매니페스트 예들을 단축하기 위해 제거되었다. 이들 생략은 3 개의 점들 "..." 로 표현된다.
결론
이에 따라, 클라이언트 (104) 는 이미 리졸브되었던 기회들의 재-리졸루션을 회피한다. 특정 클라이언트 (104) 에 대한 기회들에 대한 정보를 저장하는 것은 클라이언트에서의 리졸루션 상태를 유지하고 클라이언트 (104) 는 매니페스트에 대한 업데이트시 이전 리졸루션을 삽입할 수 있다.
예시적인 실시형태들
일부 실시형태들에서, 본 방법은: 컴퓨팅 디바이스에 의해, 미디어 프리젠테이션에 대한 매니페스트 프리젠테이션 디스크립션을 수신하는 단계로서, 매니페스트 프리젠테이션 디스크립션은 기회에 대한 보충 컨텐츠를 결정하기 위해 리졸루션을 요구하는 기회를 포함하는, 상기 매니페스트 프리젠테이션 디스크립션을 수신하는 단계; 컴퓨팅 디바이스에 의해, 기회를 리졸브하라는 요청을 전송하는 단계로서, 요청으로부터 수신된 보충 컨텐츠에 대한 정보는 미디어 프리젠테이션 디스크립션의 인스턴스에 삽입되는, 상기 전송하는 단계; 컴퓨팅 디바이스에 의해, 기회에 대한 식별자와 연관하여 보충 컨텐츠에 대한 정보를 저장하는 단계; 컴퓨팅 디바이스에 의해, 매니페스트 프리젠테이션 디스크립션에 대한 업데이트를 수신하는 단계로서, 매니페스트 프리젠테이션 디스크립션에 대한 업데이트는 기회에 대한 보충 컨텐츠를 결정하기 위해 리졸루션을 요구하는 기회를 포함하는, 상기 업데이트를 수신하는 단계; 및 컴퓨팅 디바이스에 의해, 기회에 대한 식별자와 연관하여 저장되었던 보충 컨텐츠에 대한 정보를 취출하고, 보충 컨텐츠에 대한 정보를 매니페스트 프리젠테이션 디스크립션에 대한 업데이트의 인스턴스에 삽입하는 단계를 포함한다.
일부 실시형태들에서, 본 방법은: 매니페스트 프리젠테이션 디스크립션의 인스턴스를 저장하는 단계; 및 매니페스트 프리젠테이션 디스크립션의 인스턴스에 기회에서의 보충 컨텐츠에 대한 정보를 삽입하는 단계를 더 포함한다.
일부 실시형태들에서, 본 방법은: 미디어 프리젠테이션의 플레이백 동안에 보충 컨텐츠를 요청하기 위해 보충 컨텐츠에 대한 정보를 사용하는 단계를 더 포함한다.
일부 실시형태들에서, 매니페스트 프리젠테이션 디스크립션을 수신하는 단계는: 매니페스트 프리젠테이션 디스크립션을 수신시 기회가 리졸브되어야 함을 결정하는 단계; 및 매니페스트 프리젠테이션 디스크립션을 수신시 기회를 리졸브하라는 요청을 전송하는 단계를 포함한다.
일부 실시형태들에서, 기회를 리졸브하라는 요청을 전송하는 단계는: 매니페스트 프리젠테이션 디스크립션을 수신한 후에 나중 시간에 기회가 리졸브되어야 함을 결정하는 단계; 및 매니페스트 프리젠테이션 디스크립션을 수신한 후에 조건이 충족시, 기회를 리졸브하라는 요청을 전송하는 단계를 포함한다.
일부 실시형태들에서, 매니페스트 프리젠테이션 디스크립션을 수신시 미디어 프리젠테이션의 일부분이 플레이된 후에 조건이 충족된다.
일부 실시형태들에서, 보충 컨텐츠에 대한 정보 및 식별자는 매니페스트 프리젠테이션 디스크립션에 대한 업데이트를 수신한 후에 지속되는 데이터 구조에 저장된다.
일부 실시형태들에서, 본 방법은: 기회의 리졸루션에 대한 요청을 전송함이 없이 매니페스트 프리젠테이션 디스크립션의 업데이트의 인스턴스에 보충 컨텐츠에 대한 정보를 삽입하는 단계를 더 포함한다.
일부 실시형태들에서, 기회를 리졸브하라는 요청은 원격 디바이스로 전송된다.
일부 실시형태들에서, 매니페스트 프리젠테이션 디스크립션에 대한 업데이트는 요청을 전송하는 것으로부터 수신된 보충 컨텐츠에 대한 정보를 포함하지 않는다.
일부 실시형태들에서, 본 방법은: 식별자가 기회와 연관된다고 결정하기 위해 매니페스트 프리젠테이션 디스크립션에 대한 업데이트를 리뷰하는 단계; 및 식별자가 데이터 구조에 저장된 것에 기초하여 기회가 이전에 리졸브되었다고 결정하는 단계를 더 포함한다.
일부 실시형태들에서, 본 방법은: 새로운 기회를 리졸브하라는 새로운 요청을 전송하는 단계를 더 포함하고, 새로운 보충 컨텐츠에 대한 정보는 새로운 요청으로부터 수신되고 미디어 프리젠테이션 디스크립션의 업데이트의 인스턴스에 삽입된다.
일부 실시형태들에서, 매니페스트 프리젠테이션 디스크립션의 업데이트의 인스턴스는 매니페스트 프리젠테이션 디스크립션의 인스턴스를 대체한다.
일부 실시형태들에서, 본 방법은: 매니페스트 프리젠테이션 디스크립션의 인스턴스를 메모리에 저장하는 단계; 매니페스트 프리젠테이션 디스크립션의 인스턴스에 보충 컨텐츠에 대한 정보를 삽입하는 단계; 매니페스트 프리젠테이션 디스크립션의 인스턴스를 대체하기 위해 매니페스트 프리젠테이션 디스크립션의 업데이트를 메모리에 저장하는 단계; 및 매니페스트 프리젠테이션 디스크립션의 업데이트에 보충 컨텐츠에 대한 저장된 정보를 삽입하는 단계를 더 포함한다.
일부 실시형태들에서, 컴퓨터 실행가능 명령들이 그 위에 저장된 비일시적 컴퓨터 판독가능 저장 매체로서, 명령들은 컴퓨팅 디바이스에 의해 실행될 때, 컴퓨팅 디바이스로 하여금 하기: 미디어 프리젠테이션에 대한 매니페스트 프리젠테이션 디스크립션을 수신하는 것으로서, 매니페스트 프리젠테이션 디스크립션은 기회에 대한 보충 컨텐츠를 결정하기 위해 리졸루션을 요구하는 기회를 포함하는, 상기 매니페스트 프리젠테이션 디스크립션을 수신하고; 기회를 리졸브하라는 요청을 전송하는 것으로서, 요청으로부터 수신된 보충 컨텐츠에 대한 정보는 미디어 프리젠테이션 디스크립션의 인스턴스에 삽입되는, 상기 요청을 전송하고; 기회에 대한 식별자와 연관하여 보충 컨텐츠에 대한 정보를 저장하고; 매니페스트 프리젠테이션 디스크립션에 대한 업데이트를 수신하는 것으로서, 매니페스트 프리젠테이션 디스크립션에 대한 업데이트는 기회에 대한 보충 컨텐츠를 결정하기 위해 리졸루션을 요구하는 기회를 포함하는, 상기 업데이트를 수신하고; 그리고 기회에 대한 식별자와 연관하여 저장되었던 보충 컨텐츠에 대한 정보를 취출하고, 매니페스트 프리젠테이션 디스크립션에 대한 업데이트의 인스턴스에 삽입하기 위하여 동작가능하게 한다.
일부 실시형태들에서, 매니페스트 프리젠테이션 디스크립션의 인스턴스를 저장하고; 그리고 매니페스트 프리젠테이션 디스크립션의 인스턴스를 저장하고; 그리고 매니페스트 프리젠테이션 디스크립션의 인스턴스에 기회에서의 보충 컨텐츠에 대한 정보를 삽입하기 위하여 또한 동작가능하다.
일부 실시형태들에서, 보충 컨텐츠에 대한 정보 및 식별자는 매니페스트 프리젠테이션 디스크립션에 대한 업데이트를 수신한 후에 지속되는 데이터 구조에 저장된다.
일부 실시형태에서, 기회의 리졸루션에 대한 요청을 전송함이 없이 매니페스트 프리젠테이션 디스크립션의 업데이트의 인스턴스에 보충 컨텐츠에 대한 정보를 삽입하기 위하여 또한 동작가능하다.
일부 실시형태들에서, 매니페스트 프리젠테이션 디스크립션의 인스턴스를 메모리에 저장하고; 매니페스트 프리젠테이션 디스크립션의 인스턴스에 보충 컨텐츠에 대한 정보를 삽입하고; 매니페스트 프리젠테이션 디스크립션의 인스턴스를 대체하기 위해 매니페스트 프리젠테이션 디스크립션의 업데이트를 메모리에 저장하고; 그리고 매니페스트 프리젠테이션 디스크립션의 업데이트에 보충 컨텐츠에 대한 저장된 정보를 삽입하기 위하여 또한 동작가능하다.
일부 실시형태들에서, 일 장치는: 하나 이상의 컴퓨터 프로세서들; 및 컴퓨터 판독가능 저장 매체를 포함하고, 컴퓨터 판독가능 저장 매체는 미디어 프리젠테이션에 대한 매니페스트 프리젠테이션 디스크립션을 수신하는 것으로서, 매니페스트 프리젠테이션 디스크립션은 기회에 대한 보충 컨텐츠를 결정하기 위해 리졸루션을 요구하는 기회를 포함하는, 상기 매니페스트 프리젠테이션 디스크립션을 수신하고; 기회를 리졸브하라는 요청을 전송하는 것으로서, 요청으로부터 수신된 보충 컨텐츠에 대한 정보는 미디어 프리젠테이션 디스크립션의 인스턴스에 삽입되는, 상기 요청을 전송하고; 기회에 대한 식별자와 연관하여 보충 컨텐츠에 대한 정보를 저장하고; 매니페스트 프리젠테이션 디스크립션에 대한 업데이트를 수신하는 것으로서, 매니페스트 프리젠테이션 디스크립션에 대한 업데이트는 기회에 대한 보충 컨텐츠를 결정하기 위해 리졸루션을 요구하는 기회를 포함하는, 상기 업데이트를 수신하고; 그리고 기회에 대한 식별자와 연관하여 저장되었던 보충 컨텐츠에 대한 정보를 취출하고, 매니페스트 프리젠테이션 디스크립션에 대한 업데이트의 인스턴스에 삽입하기 위하여 동작가능하도록 하나 이상의 컴퓨터 프로세서들을 제어하기 위한 명령들을 포함한다.
시스템
본원에서 개시된 바와 같은 피처들 및 양태들은 도 12 에 도시된 바와 같은 하나 이상의 통신 네트워크들을 통해 다중 클라이언트 디바이스들과 통신하는 비디오 스트리밍 시스템 (1200) 과 함께 구현될 수도 있다. 비디오 스트리밍 시스템 (1200) 의 양태들은 본 개시에 따라 준비된 컨텐츠의 배포 및 전달을 가능하게 하기 위한 애플리케이션의 예를 제공하기 위해 단지 설명된다. 본 기술은 스트리밍 비디오 애플리케이션들에 한정되지 않고 다른 애플리케이션들 및 전달 메커니즘들에 적응될 수도 있음이 인식되어야 한다.
일 실시형태에서, 미디어 프로그램 제공자는 미디어 프로그램들의 라이브러리를 포함할 수도 있다. 예를 들어, 미디어 프로그램은 사이트 (예를 들어, 웹사이트), 애플리케이션, 또는 브라우저를 통해 집성되고 제공될 수도 있다. 사용자는 미디어 프로그램 제공자의 사이트 또는 애플리케이션에 액세스하고 미디어 프로그램들을 요청할 수 있다. 사용자는 미디어 프로그램 제공자에 의해 제공된 미디어 프로그램들만을 요청하는 것으로 한정될 수도 있다.
시스템 (1200) 에서, 비디오 데이터는 비디오 컨텐츠 서버 (1202) 로의 입력으로서 사용하기 위해, 하나 이상의 소스들로부터, 예를 들어, 비디오 소스 (1210) 로부터 획득될 수도 있다. 입력 비디오 데이터는 임의의 적합한 디지털 포맷, 예를 들어, MPEG (Moving Picture Experts Group)-1, MPEG-2, MPEG-4, VC-1, H.264/AVC (Advanced Video Coding), HEVC (High Efficiency Video Coding), 또는 다른 포맷의 원시 또는 편집된 프레임 기반 비디오 데이터를 포함할 수도 있다. 대안으로, 비디오는 비-디지털 포맷으로 제공되고 스캐너 및/또는 트랜스코더를 사용하여 디지털 포맷으로 변환될 수도 있다. 예를 들어, 표현을 사용하는 것은 표현이 나머지 플레이백 동안에 사용되지 않아야 되고 미디어 플레이어 (110) 가 드롭된-프레임 비에 기인하여 상이한 표현으로 스위칭한다고 인-플레이백 드롭된-프레임 핸들링 로직 (204) 이 결정하는 것을 초래할 수도 있다. 비디오 데이터는 또한 오디오를 포함할 수도 있거나 오디오만이 사용될 수도 있다.
비디오 스트리밍 시스템 (1200) 은 하나 이상의 컴퓨터들을 통해 분산된 하나 이상의 컴퓨터 서버들 또는 모듈들 (1202, 1204, 및/또는 1207) 을 포함할 수도 있다. 각각의 서버 (1202, 1204, 1207) 는 하나 이상의 데이터 스토어들 (1209), 예를 들어 데이터베이스, 인덱스, 파일, 또는 다른 데이터 구조를 포함할 수도 있거나 이에 동작가능하게 커플링될 수도 있다. 비디오 컨텐츠 서버 (1202) 는 다양한 비디오 세그먼트들의 데이터 스토어 (미도시) 에 액세스할 수도 있다. 비디오 컨텐츠 서버 (1202) 는 클라이언트 디바이스와 통신하는 사용자 인터페이스 제어기에 의해 지시된 대로 비디오 세그먼트들을 서빙할 수도 있다. 본원에 사용된 바와 같이, 비디오 세그먼트는 텔레비전 에피소드, 모션 픽처, 레코딩된 라이브 공연, 또는 다른 비디오 컨텐츠를 시청하기 위해 스트리밍 비디오 세션에서 사용될 수도 있는 것과 같은, 프레임 기반 비디오 데이터의 정해진 부분을 지칭한다.
일부 실시형태들에서, 비디오 광고 서버 (1204) 는 특정 광고주 또는 메시지에 대한 광고로서 구성된 비교적 짧은 비디오 (예를 들어, 10초, 30초, 또는 60초 비디오 광고) 의 데이터 스토어에 액세스할 수도 있다. 광고는 어떤 종류의 지불에 대한 대가로 광고주에게 제공될 수도 있거나 시스템 (1200) 에 대한 판촉 메시지, 공공 서비스 메시지, 또는 일부 다른 정보를 포함할 수도 있다. 비디오 광고 서버 (1204) 는 사용자 인터페이스 제어기 (미도시) 에 의해 지시된 대로 비디오 광고 세그먼트들을 서빙할 수도 있다.
비디오 스트리밍 시스템 (1200) 은 비디오 컨텐츠 및 비디오 광고를 스트리밍 비디오 세그먼트로 통합하는 통합 및 스트리밍 컴포넌트 (1207) 를 더 포함할 수도 있다. 예를 들어, 스트리밍 컴포넌트 (1207) 는 컨텐츠 서버 또는 스트리밍 미디어 서버일 수도 있다. 제어기 (도시되지 않음) 는 임의의 적합한 알고리즘 또는 프로세스에 기초하여 스트리밍 비디오에서 광고의 선택 또는 구성을 결정할 수도 있다. 비디오 스트리밍 시스템 (1200) 은 도 12 에 도시되지 않은 다른 모듈들 또는 유닛들, 예를 들어, 관리 서버들, 네트워크 인터페이스들, 네트워크 인프라스트럭처, 광고 선택 엔진들 등을 포함할 수도 있다.
비디오 스트리밍 시스템 (1200) 은 데이터 통신 네트워크 (1212) 에 접속할 수도 있다. 데이터 통신 네트워크 (1212) 는 로컬 영역 네트워크 (LAN), 광역 네트워크 (WAN), 예를 들어, 인터넷, 전화 네트워크, 무선 셀룰러 원격통신 네트워크 (WCS) (1214), 또는 이들 또는 유사한 네트워크들의 일부 조합을 포함할 수도 있다.
하나 이상의 클라이언트 디바이스들 (1220) 은 데이터 통신 네트워크 (1212), 무선 셀룰러 원격통신 네트워크 (1214), 및/또는 다른 네트워크를 통해 비디오 스트리밍 시스템 (1200) 과 통신할 수도 있다. 이러한 클라이언트 디바이스들은, 예를 들어, LAN 용 라우터 (1218) 를 통한, 무선 셀룰러 원격통신 네트워크 (1214) 용 기지국 (1217) 을 통한, 또는 일부 다른 접속을 통한, 하나 이상의 랩탑 컴퓨터들 (1220-1), 데스크탑 컴퓨터들 (1220-2), "스마트" 모바일 폰들 (1220-3), 태블릿 디바이스들 (1220-4), 네트워크 가능 텔레비전들 (1220-5), 또는 이들의 조합을 포함할 수도 있다. 동작시, 이러한 클라이언트 디바이스들 (1220) 은 사용자 입력 디바이스들로부터 수신된 사용자 입력 또는 다른 입력에 응답하여, 데이터 또는 명령들을 시스템 (1200) 으로 전송 및 수신할 수도 있다. 응답으로, 시스템 (1200) 은 미디어 프로그램들의 선택에 응답하는 데이터 스토어 (1209) 로부터의 비디오 세그먼트들 및 메타데이터를 클라이언트 디바이스들 (1220) 에 서빙할 수도 있다. 클라이언트 디바이스들 (1220) 은 디스플레이 스크린, 프로젝터, 또는 다른 비디오 출력 디바이스를 사용하여 미디어 플레이어에서 스트리밍 비디오 세그먼트로부터 비디오 컨텐츠를 출력하고, 비디오 컨텐츠와 상호작용하기 위한 사용자 입력을 수신할 수도 있다.
오디오-비디오 데이터의 배포는 다양한 방법들, 예를 들어, 스트리밍을 사용하여, 컴퓨터 네트워크들, 원격통신 네트워크들, 및 이러한 네트워크들의 조합을 통해 스트리밍 컴포넌트 (1207) 로부터 원격 클라이언트 디바이스들로 구현될 수도 있다. 스트리밍에서, 컨텐츠 서버는 클라이언트 디바이스에 대해 적어도 부분적으로 동작하는 미디어 플레이어 컴포넌트로 오디오-비디오 데이터를 연속적으로 스트리밍하며, 이는 서버로부터 스트리밍 데이터를 수신하는 것과 동시에 오디오-비디오 데이터를 플레이할 수도 있다. 스트리밍이 논의되지만, 전달의 다른 방법들이 사용될 수도 있다. 미디어 플레이어 컴포넌트는 컨텐츠 제공자로부터 데이터의 초기 부분을 수신한 직후 비디오 데이터의 플레이를 개시할 수도 있다. 전형적인 스트리밍 기법들은 데이터의 스트림을 엔드 사용자들의 세트에 전달하는 단일 제공자를 사용한다. 단일 스트림을 많은 청중에게 전달하기 위해 높은 대역폭 및 프로세싱 파워가 필요할 수도 있으며, 엔드 사용자들의 수가 증가함에 따라 제공자의 필요한 대역폭이 증가할 수도 있다.
스트리밍 미디어는 온-디맨드 또는 라이브로 전달될 수 있다. 스트리밍은 파일 내의 임의의 지점에서 즉시 재생을 가능하게 한다. 엔드-사용자들은 미디어 파일을 통해 스킵하여 재생을 시작하거나 미디어 파일에서의 임의의 지점으로 재생을 변경할 수도 있다. 이로써, 엔드-사용지는 파일이 점진적으로 다운로드하기 위해 대기할 필요가 없다. 통상적으로, 스트리밍 미디어는 비디오 파일에 대한 요청을 수락하는 특수 디바이스를 통해 고 대역폭 능력을 갖는 몇몇 전용 서버들로부터 전달되고, 포맷에 관한 정보, 대역폭 및 그러한 파일들의 구조로, 비디오를 플레이하는데 필요한 데이터의 양만을, 이를 플레이하는데 필요한 레이트로 전달한다. 스트리밍 미디어 서버는 또한 목적지 클라이언트 상에서 미디어 플레이어의 송신 대역폭 및 능력들을 처리할 수도 있다. 스트리밍 컴포넌트 (1207) 는 비디오가 플레이될 때 변화하는 네트워크 상태에 적응하기 위해 제어 메시지들 및 데이터 메시지들을 사용하여 클라이언트 디바이스 (1220) 와 통신할 수도 있다. 이들 제어 메시지들은 빨리 감기, 빨리 되감기, 일시중지, 또는 클라이언트에서 파일의 특정 부분 찾기와 같은 제어 기능들을 가능하게 하기 위한 커맨드들을 포함할 수 있다.
스트리밍 컴포넌트 (1207) 는 필요한 경우에만 필요한 레이트로 비디오 데이터를 송신하기 때문에, 서빙된 스트림들의 수에 대한 정확한 제어가 유지될 수 있다. 시청자는 더 낮은 데이터 레이트 송신 매체를 통해 높은 데이터 레이트 비디오들을 볼 수 없을 것이다. 그러나, 스트리밍 미디어 서버들은, (1) 사용자들에게 비디오 파일에 대한 랜덤 액세스를 제공하고, (2) 누가 어떤 비디오 프로그램들을 보고 있고 얼마나 오래 시청중인지의 모니터링을 허용하고 (3) 시청 경험을 지원하는데 필요한 데이터의 양만이 송신되기 때문에 송신 대역폭을 더 효율적으로 사용하고, 그리고 (4) 비디오 파일이 시청자의 컴퓨터에 저장되지 않고, 미디어 플레이어에 의해 폐기되어, 컨텐츠에 대한 더 많은 제어를 허용한다.
스트리밍 컴포넌트 (1207) 는 HTTP 및 실시간 메시징 프로토콜 (RTMP) 과 같은 TCP-기반 프로토콜들을 사용할 수도 있다. 스트리밍 컴포넌트 (1207) 는 또한 라이브 웹캐스트들을 전달할 수 있고 멀티캐스팅할 수 있는데, 일 초과의 클라이언트가 단일 스트림으로 튜닝하도록 허용하여, 대역폭을 절약할 수 있다. 스트리밍 미디어 플레이어들은 미디어 프로그램의 어느 지점에 대한 랜덤 액세스를 제공하기 위해 전체 비디오를 버퍼링하는 것에 의존하지 않을 수도 있다. 대신에, 이것은 미디어 플레이어로부터 스트리밍 미디어 서버로 송신된 제어 메시지들의 사용을 통해 달성된다. 스트리밍에 사용되는 다른 프로토콜들은 HTTP (Hypertext Transfer Protocol) 라이브 스트리밍 (HLS) 또는 DASH (Dynamic Adaptive Streaming over HTTP) 이다. HLS 및 DASH 프로토콜들은 통상적으로 하나 이상의 컨텐츠 전달 네트워크들 (CDN들) 로부터 다양한 비트레이트들에서 이용가능해지는 작은 세그먼트들의 플레이리스트를 통해 HTTP 위로 비디오를 전달한다. 이는 미디어 플레이어가 세그먼트 단위 기반으로 비트레이트들 및 컨텐츠 소스들 양자 모두를 스위칭하도록 허용한다. 스위칭은 비디오의 재생 동안 발생할 수도 있는 네트워크 대역폭 변동들 그리고 또한 인프라스트럭처 장애들을 보상하는데 도움이 된다.
스트리밍에 의한 비디오 컨텐츠의 전달은 다양한 모델들 하에서 달성될 수도 있다. 일 모델에서, 사용자는 비디오 프로그램들의 시청에 대한 비용을 지불한다, 예를 들어, 미디어 프로그램들의 라이브러리 또는 제한된 미디어 프로그램들의 부분에 대한 액세스를 위한 요금을 지불하거나, 또는 유료 서비스를 사용한다. 브로드캐스트 텔레비전이 그 개시 직후 널리 채택한 다른 모델에서는, 후원자가 프로그램의 프리젠테이션 동안 또는 그에 인접하여 광고들을 제시할 권리를 받는 대가로 미디어 프로그램의 프리젠테이션에 대한 비용을 지불한다. 일부 모델들에서, 광고들이 비디오 프로그램 내 미리결정된 시간들에 삽입되며, 그 시간들은 "애드버타이징 슬롯들" 또는 "애드버타이징 브레이크들" 로 지칭될 수도 있다. 스트리밍 비디오로, 미디어 플레이어는 클라이언트 디바이스가 지정된 광고 슬롯 동안 미리결정된 광고를 또한 플레이하지 않으면서 비디오를 플레이할 수 없도록 구성될 수도 있다.
도 13 을 참조하여 보면, 비디오 컨텐츠 및 광고들을 보기 위한 장치 (1300) 의 개략도가 예시된다. 선택된 실시형태들에서, 장치 (1300) 는 프로세서 (1302) 에 의한 실행을 위한 이진 코딩된 기능 모듈들을 보유하는 프로세서 메모리 (1304) 에 동작가능하게 커플링된 프로세서 (CPU) (1302) 를 포함할 수도 있다. 그러한 기능 모듈들은 입력/출력 및 메모리 액세스와 같은 시스템 기능들을 핸들링하기 위한 운영 시스템 (1306), 웹 페이지들을 디스플레이하기 위한 브라우저 (1308), 및 비디오를 플레이하기 위한 미디어 플레이어 (1310) 를 포함할 수도 있다. 메모리 (1304) 는 도 13 에 도시되지 않은 추가적인 모듈들, 예를 들어, 본원에서의 다른 곳에서 설명된 다른 동작들을 수행하기 위한 모듈들을 가질 수 있다.
버스 (1314) 또는 다른 통신 컴포넌트는 장치 (1300) 내의 정보의 통신을 지원할 수도 있다. 프로세서 (1302) 는 특정 태스크들을 정의하는 머신 판독가능 소프트웨어 코드를 실행함으로써 본원에서 개시된 피처들 및 양태들에 따라 특정 태스크들을 수행하도록 구성되거나 또는 동작가능한 전문화된 또는 전용 마이크로프로세서일 수도 있다. 프로세서 메모리 (1304) (예를 들어, 랜덤 액세스 메모리 (RAM) 또는 다른 동적 저장 디바이스) 는 버스 (1314) 에 또는 직접 프로세서 (1302) 에 접속되고, 프로세서 (1302) 에 의해 실행될 정보 및 명령들을 저장할 수도 있다. 메모리 (1304) 는 또한 이러한 명령들의 실행 동안 일시적 변수들 또는 다른 중간 정보를 저장할 수도 있다.
저장 디바이스 (1324) 내의 컴퓨터 판독가능 매체는 버스 (1314) 에 접속되고 프로세서 (1302) 에 대한 정적 정보 및 명령들을 저장할 수도 있고; 예를 들어, 저장 디바이스 (CRM) (1324) 는 장치 (1300) 가 파워 오프될 때 모듈들 (1306, 1308, 1310 및 1312) 을 저장할 수도 있고, 그로부터 모듈들은 장치 (1300) 가 파워 업될 때 프로세서 메모리 (1304) 로 로딩될 수도 있다. 저장 디바이스 (1324) 는, 정보, 명령들, 또는 이들의 일부 조합, 예를 들어, 프로세서 (1302) 에 의해 실행될 경우, 장치 (1300) 로 하여금, 본원에서 설명된 바와 같은 방법의 하나 이상의 동작들을 수행하도록 구성되거나 또는 동작가능하게 하는 명령들을 보유하는 비일시적 컴퓨터 판독가능 저장 매체를 포함할 수도 있다.
통신 인터페이스 (1316) 는 또한 버스 (1314) 에 접속될 수도 있다. 통신 인터페이스 (1316) 는 옵션으로 라우터/모뎀 (1326) 및 유선 또는 무선 접속을 통해, 장치 (1300) 와 하나 이상의 외부 디바이스들, 예를 들어, 스트리밍 시스템 (1200) 사이의 양방향 데이터 통신을 제공 또는 지원할 수도 있다. 대안으로 또는 추가로, 장치 (1300) 는 안테나 (1329) 에 접속된 트랜시버 (1318) 를 포함할 수도 있으며, 그를 통해 장치 (1300) 는 무선 통신 시스템을 위한 기지국과 또는 라우터/모뎀 (1326) 과 무선으로 통신할 수도 있다. 대안으로, 장치 (1300) 는 로컬 영역 네트워크, 가상 사설 네트워크, 또는 다른 네트워크를 통해 비디오 스트리밍 시스템 (1200) 과 통신할 수도 있다. 다른 대안으로, 장치 (1300) 는 시스템 (1200) 의 모듈 또는 컴포넌트로서 통합되고 버스 (1314) 를 통해 또는 일부 다른 양식에 의해 다른 컴포넌트들과 통신할 수도 있다.
장치 (1300) 는 디스플레이 유닛 (1328) 에 (예를 들어, 버스 (1314) 및 그래픽 프로세싱 유닛 (1320) 을 통해) 접속될 수도 있다. 디스플레이 (1328) 는 장치 (1300) 의 오퍼레이터에 정보를 디스플레이하기 위한 임의의 적합한 구성을 포함할 수도 있다. 예를 들어, 디스플레이 (1328) 는 액정 디스플레이 (LCD), 터치스크린 LCD (예를 들어, 용량성 디스플레이), 발광 다이오드 (LED) 디스플레이, 프로젝터, 또는 시각적 디스플레이로 장치 (1300) 의 사용자에게 정보를 제시하는 다른 디스플레이 디바이스를 포함하거나 활용할 수도 있다.
하나 이상의 입력 디바이스들 (1330)(예를 들어, 영숫자 키보드, 마이크로폰, 키패드, 원격 제어기, 게임 제어기, 카메라, 또는 카메라 어레이) 은 정보 및 커맨드들을 장치 (1300) 에 통신하기 위해 사용자 입력 포트 (1322) 를 통해 버스 (1314) 에 연결될 수도 있다. 선택된 실시형태들에서, 입력 디바이스 (1330) 는 커서의 포지셔닝에 대한 제어를 제공 또는 지원할 수도 있다. 포인팅 디바이스로도 불리는 이러한 커서 제어 디바이스는, 마우스, 트랙볼, 트랙 패드, 터치 스크린, 커서 방향 키들 또는 물리적 움직임을 수신 또는 추적하고 그 움직임을 커서 움직임을 표시하는 전기 신호들로 트랜슬레이팅하기 위한 다른 디바이스로서 구성될 수도 있다. 커서 제어 디바이스는 예를 들어 터치 감응 스크린을 사용하여 디스플레이 유닛 (1328) 에 통합될 수도 있다. 커서 제어 디바이스는 프로세서 (1302) 에 방향 정보 및 커맨드 선택들을 통신하고 디스플레이 (1328) 상의 커서 움직임을 제어할 수도 있다. 커서 제어 디바이스는 예를 들어, 디바이스가 평면 또는 3 차원 공간에서 커서 포지션들을 특정할 수 있게 하는 2 이상의 자유도를 가질 수 도 있다.
일부 실시형태들은 명령 실행 시스템, 장치, 시스템 또는 머신에 의해 또는 이와 관련하여 사용하기 위한 비일시적 컴퓨터 판독가능 저장 매체에서 구현될 수도 있다. 컴퓨터 판독가능 저장 매체는 일부 실시형태들에 의해 설명된 방법을 수행하도록 컴퓨터 시스템을 제어하기 위한 명령들을 포함한다. 컴퓨터 시스템은 하나 이상의 컴퓨팅 디바이스들을 포함할 수도 있다. 명령들은 하나 이상의 컴퓨터 프로세서들에 의해 실행될 때, 일부 실시형태들에서 설명되는 것을 수행하도록 구성되거나 동작가능할 수도 있다.
본원의 설명에서 그리고 후속하는 청구범위 전체에 걸쳐 사용된 바와 같이, 부정관사 및 정관사 ("a," "an" 및 "the") 는 문맥이 달리 명확하게 진술하지 않는 한, 복수의 레퍼런스들을 포함한다. 또한, 본원의 설명에서 그리고 후속하는 청구범위 전체에 걸쳐 사용된 바와 같이, "에서 (in)" 의 의미는 문맥이 달리 명확하게 진술하지 않는 한, "에서(in)" 및 "상에서(on)" 를 포함한다.
위의 설명은 일부 실시형태들의 양태들이 어떻게 구현될 수 있는지의 예들과 함께 다양한 실시형태들을 예시한다. 위의 예들 및 실시형태들은 유일한 실시형태로 간주되지 않아야 하며 후속하는 청구범위에 의해 정의된 바와 같이 일부 실시형태들의 유연성 및 이점을 예시하기 위해 제시된다. 위의 개시 및 후속하는 청구범위에 기초하여, 청구범위에 의해 정의된 바와 같은 본원의 범위를 벗어나지 않으면서 다른 배열들, 실시형태들, 구현들 및 균등물들이 채용될 수도 있다.

Claims (20)

  1. 방법으로서,
    컴퓨팅 디바이스에 의해, 미디어 프리젠테이션에 대한 매니페스트 프리젠테이션 디스크립션을 수신하는 단계로서, 상기 매니페스트 프리젠테이션 디스크립션은 기회에 대한 보충 컨텐츠를 결정하기 위해 리졸루션 (resolution) 을 요구하는 상기 기회를 포함하는, 상기 매니페스트 프리젠테이션 디스크립션을 수신하는 단계;
    상기 컴퓨팅 디바이스에 의해, 상기 기회를 리졸브 (resolve) 하라는 요청을 전송하는 단계로서, 상기 요청으로부터 수신된 상기 보충 컨텐츠에 대한 정보는 상기 미디어 프리젠테이션 디스크립션의 인스턴스에 삽입되는, 상기 요청을 전송하는 단계;
    상기 컴퓨팅 디바이스에 의해, 상기 기회에 대한 식별자와 연관하여 상기 보충 컨텐츠에 대한 상기 정보를 저장하는 단계;
    상기 컴퓨팅 디바이스에 의해, 상기 매니페스트 프리젠테이션 디스크립션에 대한 상기 업데이트를 수신하는 단계로서, 상기 매니페스트 프리젠테이션 디스크립션에 대한 업데이트는 상기 기회에 대한 보충 컨텐츠를 결정하기 위해 리졸루션을 요구하는 상기 기회를 포함하는, 상기 업데이트를 수신하는 단계; 및
    상기 컴퓨팅 디바이스에 의해, 상기 기회에 대한 상기 식별자와 연관하여 저장되었던 상기 보충 컨텐츠에 대한 상기 정보를 취출하고, 상기 매니페스트 프리젠테이션 디스크립션에 대한 상기 업데이트의 상기 인스턴스에 상기 보충 컨텐츠에 대한 상기 정보를 삽입하는 단계를 포함하는, 방법.
  2. 제 1 항에 있어서,
    상기 매니페스트 프리젠테이션 디스크립션의 상기 인스턴스를 저장하는 단계; 및
    상기 매니페스트 프리젠테이션 디스크립션의 상기 인스턴스에 상기 기회에서의 상기 보충 컨텐츠에 대한 정보를 삽입하는 단계를 더 포함하는, 방법.
  3. 제 1 항에 있어서,
    상기 미디어 프리젠테이션의 플레이백 동안에 상기 보충 컨텐츠를 요청하기 위해 상기 보충 컨텐츠에 대한 정보를 사용하는 단계를 더 포함하는, 방법.
  4. 제 1 항에 있어서,
    상기 매니페스트 프리젠테이션 디스크립션을 수신하는 단계는:
    상기 매니페스트 프리젠테이션 디스크립션을 수신시 상기 기회가 리졸브되어야 함을 결정하는 단계; 및
    상기 매니페스트 프리젠테이션 디스크립션을 수신시 상기 기회를 리졸브하라는 요청을 전송하는 단계를 포함하는, 방법.
  5. 제 1 항에 있어서,
    상기 기회를 리졸브하라는 요청을 전송하는 단계는:
    상기 매니페스트 프리젠테이션 디스크립션을 수신한 후에 나중 시간에 상기 기회가 리졸브되어야 함을 결정하는 단계; 및
    상기 매니페스트 프리젠테이션 디스크립션을 수신한 후에 조건이 충족될 때, 상기 기회를 리졸브하라는 요청을 전송하는 단계를 포함하는, 방법.
  6. 제 5 항에 있어서,
    상기 매니페스트 프리젠테이션 디스크립션을 수신시 미디어 프리젠테이션의 일부분이 플레이된 후에 상기 조건이 충족되는, 방법.
  7. 제 1 항에 있어서,
    상기 보충 컨텐츠에 대한 정보 및 상기 식별자는 상기 매니페스트 프리젠테이션 디스크립션에 대한 업데이트를 수신한 후에 지속되는 데이터 구조에 저장되는, 방법.
  8. 제 1 항에 있어서,
    상기 기회의 리졸루션에 대한 요청을 전송함이 없이 상기 매니페스트 프리젠테이션 디스크립션의 상기 업데이트의 인스턴스에 상기 보충 컨텐츠에 대한 정보를 삽입하는 단계를 더 포함하는, 방법.
  9. 제 1 항에 있어서,
    상기 기회를 리졸브하라는 요청은 원격 디바이스로 전송되는, 방법.
  10. 제 1 항에 있어서,
    상기 매니페스트 프리젠테이션 디스크립션에 대한 상기 업데이트는 상기 요청을 전송하는 것으로부터 수신된 상기 보충 컨텐츠에 대한 상기 정보를 포함하지 않는, 방법.
  11. 제 1 항에 있어서,
    상기 식별자가 상기 기회와 연관된다고 결정하기 위해 상기 매니페스트 프리젠테이션 디스크립션에 대한 상기 업데이트를 리뷰하는 단계; 및
    상기 식별자가 데이터 구조에 저장된 것에 기초하여 상기 기회가 이전에 리졸브되었다고 결정하는 단계를 더 포함하는, 방법.
  12. 제 1 항에 있어서,
    새로운 기회를 리졸브하라는 새로운 요청을 전송하는 단계를 더 포함하고, 새로운 보충 컨텐츠에 대한 정보는 상기 새로운 요청으로부터 수신되고 상기 미디어 프리젠테이션 디스크립션의 상기 업데이트의 인스턴스에 삽입되는, 방법.
  13. 제 1 항에 있어서,
    상기 매니페스트 프리젠테이션 디스크립션의 상기 업데이트의 인스턴스는 상기 매니페스트 프리젠테이션 디스크립션의 인스턴스를 대체하는, 방법.
  14. 제 1 항에 있어서,
    상기 매니페스트 프리젠테이션 디스크립션의 인스턴스를 메모리에 저장하는 단계;
    상기 매니페스트 프리젠테이션 디스크립션의 상기 인스턴스에 상기 보충 컨텐츠에 대한 상기 정보를 삽입하는 단계;
    상기 매니페스트 프리젠테이션 디스크립션의 상기 인스턴스를 대체하기 위해 상기 매니페스트 프리젠테이션 디스크립션의 업데이트를 상기 메모리에 저장하는 단계; 및
    상기 매니페스트 프리젠테이션 디스크립션의 업데이트에 상기 보충 컨텐츠에 대한 저장된 상기 정보를 삽입하는 단계를 더 포함하는, 방법.
  15. 컴퓨터 실행가능 명령들이 저장된 비일시적 컴퓨터 판독가능 저장 매체로서,
    상기 명령들은 컴퓨팅 디바이스에 의해 실행될 때, 상기 컴퓨팅 디바이스로 하여금:
    미디어 프리젠테이션에 대한 매니페스트 프리젠테이션 디스크립션을 수신하는 것으로서, 상기 매니페스트 프리젠테이션 디스크립션은 기회에 대한 보충 컨텐츠를 결정하기 위해 리졸루션을 요구하는 상기 기회를 포함하는, 상기 매니페스트 프리젠테이션 디스크립션을 수신하고;
    상기 기회를 리졸브하라는 요청을 전송하는 것으로서, 상기 요청으로부터 수신된 상기 보충 컨텐츠에 대한 정보는 상기 미디어 프리젠테이션 디스크립션의 인스턴스에 삽입되는, 상기 요청을 전송하고;
    상기 기회에 대한 식별자와 연관하여 상기 보충 컨텐츠에 대한 상기 정보를 저장하고;
    상기 매니페스트 프리젠테이션 디스크립션에 대한 업데이트를 수신하는 것으로서, 상기 매니페스트 프리젠테이션 디스크립션에 대한 업데이트는 기회에 대한 보충 컨텐츠를 결정하기 위해 리졸루션을 요구하는 상기 기회를 포함하는, 상기 업데이트를 수신하고; 그리고
    상기 기회에 대한 상기 식별자와 연관하여 저장되었던 상기 보충 컨텐츠에 대한 상기 정보를 취출하고, 상기 매니페스트 프리젠테이션 디스크립션에 대한 상기 업데이트의 상기 인스턴스에 상기 보충 컨텐츠에 대한 상기 정보를 삽입하기 위하여
    동작가능하게 하는, 비일시적 컴퓨터 판독가능 저장 매체.
  16. 제 15 항에 있어서,
    상기 매니페스트 프리젠테이션 디스크립션의 상기 인스턴스를 저장하고; 그리고
    상기 매니페스트 프리젠테이션 디스크립션의 상기 인스턴스에 상기 기회에서의 상기 보충 컨텐츠에 대한 정보를 삽입하기 위하여 또한 동작가능한, 비일시적 컴퓨터 판독가능 저장 매체.
  17. 제 15 항에 있어서,
    상기 보충 컨텐츠에 대한 정보 및 상기 식별자는 상기 매니페스트 프리젠테이션 디스크립션에 대한 업데이트를 수신한 후에 지속되는 데이터 구조에 저장되는, 비일시적 컴퓨터 판독가능 저장 매체.
  18. 제 15 항에 있어서,
    상기 기회의 리졸루션에 대한 요청을 전송함이 없이 상기 매니페스트 프리젠테이션 디스크립션의 상기 업데이트의 인스턴스에 상기 보충 컨텐츠에 대한 정보를 삽입하기 위하여 또한 동작가능한, 비일시적 컴퓨터 판독가능 저장 매체.
  19. 제 15 항에 있어서,
    상기 매니페스트 프리젠테이션 디스크립션의 인스턴스를 메모리에 저장하고;
    상기 매니페스트 프리젠테이션 디스크립션의 상기 인스턴스에 상기 보충 컨텐츠에 대한 상기 정보를 삽입하고;
    상기 매니페스트 프리젠테이션 디스크립션의 상기 인스턴스를 대체하기 위해 상기 매니페스트 프리젠테이션 디스크립션의 업데이트를 상기 메모리에 저장하고; 그리고
    상기 매니페스트 프리젠테이션 디스크립션의 업데이트에 상기 보충 컨텐츠에 대한 저장된 상기 정보를 삽입하기 위하여 또한 동작가능한, 비일시적 컴퓨터 판독가능 저장 매체.
  20. 장치로서,
    하나 이상의 컴퓨터 프로세서들; 및
    컴퓨터 판독가능 저장 매체를 포함하고,
    상기 컴퓨터 판독가능 저장 매체는:
    미디어 프리젠테이션에 대한 매니페스트 프리젠테이션 디스크립션을 수신하는 것으로서, 상기 매니페스트 프리젠테이션 디스크립션은 기회에 대한 보충 컨텐츠를 결정하기 위해 리졸루션을 요구하는 기회를 포함하는, 상기 매니페스트 프리젠테이션 디스크립션을 수신하고;
    상기 기회를 리졸브하라는 요청을 전송하는 것으로서, 상기 요청으로부터 수신된 상기 보충 컨텐츠에 대한 정보는 상기 미디어 프리젠테이션 디스크립션의 인스턴스에 삽입되는, 상기 요청을 전송하고;
    상기 기회에 대한 식별자와 연관하여 상기 보충 컨텐츠에 대한 상기 정보를 저장하고;
    상기 매니페스트 프리젠테이션 디스크립션에 대한 업데이트를 수신하는 것으로서, 상기 매니페스트 프리젠테이션 디스크립션에 대한 업데이트는 기회에 대한 보충 컨텐츠를 결정하기 위해 리졸루션을 요구하는 기회를 포함하는, 상기 업데이트를 수신하고; 그리고
    상기 기회에 대한 상기 식별자와 연관하여 저장되었던 상기 보충 컨텐츠에 대한 상기 정보를 취출하고, 상기 매니페스트 프리젠테이션 디스크립션에 대한 상기 업데이트의 상기 인스턴스에 상기 보충 컨텐츠에 대한 상기 정보를 삽입하기 위하여
    동작가능하도록 상기 하나 이상의 컴퓨터 프로세서들을 제어하는 명령들을 포함하는, 장치.
KR1020227029375A 2020-02-28 2021-03-01 원격 엘리먼트 리졸루션들의 클라이언트 기반 저장 KR20220133938A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202062983358P 2020-02-28 2020-02-28
US62/983,358 2020-02-28
PCT/US2021/020340 WO2021174214A1 (en) 2020-02-28 2021-03-01 Client based storage of remote element resolutions

Publications (1)

Publication Number Publication Date
KR20220133938A true KR20220133938A (ko) 2022-10-05

Family

ID=77464275

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227029375A KR20220133938A (ko) 2020-02-28 2021-03-01 원격 엘리먼트 리졸루션들의 클라이언트 기반 저장

Country Status (7)

Country Link
US (1) US11765421B2 (ko)
EP (1) EP4111698A4 (ko)
JP (1) JP7443544B2 (ko)
KR (1) KR20220133938A (ko)
CN (1) CN115136609B (ko)
BR (1) BR112022016916A2 (ko)
WO (1) WO2021174214A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021174219A1 (en) 2020-02-28 2021-09-02 Hulu, LLC Identification of elements in a group for dynamic element replacement
US11765421B2 (en) 2020-02-28 2023-09-19 Hulu, LLC Client based storage of remote element resolutions
US11356516B1 (en) * 2021-07-23 2022-06-07 Amazon Technologies, Inc. Client-side caching of media content

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050289588A1 (en) 2004-06-25 2005-12-29 Kinnear D S System and method for targeting video advertisements
US20090019492A1 (en) 2007-07-11 2009-01-15 United Video Properties, Inc. Systems and methods for mirroring and transcoding media content
US9456015B2 (en) * 2010-08-10 2016-09-27 Qualcomm Incorporated Representation groups for network streaming of coded multimedia data
KR101754414B1 (ko) * 2010-09-06 2017-07-07 한국전자통신연구원 스트리밍 컨텐츠 제공 장치 및 방법
KR101803965B1 (ko) 2010-09-16 2017-12-01 삼성전자주식회사 Http 스트리밍 서비스를 제공하는 방법 및 장치
US20120198492A1 (en) * 2011-01-31 2012-08-02 Cbs Interactive, Inc. Stitching Advertisements Into A Manifest File For Streaming Video
US9049494B2 (en) * 2011-01-31 2015-06-02 Cbs Interactive, Inc. Media playback control
US9491397B2 (en) 2011-03-21 2016-11-08 Verizon New Jersey Inc. Trick play advertising
JP6023213B2 (ja) * 2011-12-29 2016-11-09 コニンクリーケ・ケイピーエヌ・ナムローゼ・フェンノートシャップ セグメント化されたコンテンツについての制御されたストリーミング
CN104756505B (zh) * 2012-06-28 2020-04-07 爱立信股份有限公司 用于过顶实况媒体递送中的广告插入的方法和系统
US8495675B1 (en) * 2012-07-30 2013-07-23 Mdialog Corporation Method and system for dynamically inserting content into streaming media
US9071853B2 (en) 2012-08-31 2015-06-30 Google Technology Holdings LLC Broadcast content to HTTP client conversion
US8799943B1 (en) * 2013-05-02 2014-08-05 This Technology, Llc Method and system for efficient manifest manipulation
US20150019629A1 (en) * 2013-07-15 2015-01-15 Futurewei Technologies, Inc. Just-in-Time Dereferencing of Remote Elements in Dynamic Adaptive Streaming over Hypertext Transfer Protocol
US9124947B2 (en) 2013-09-04 2015-09-01 Arris Enterprises, Inc. Averting ad skipping in adaptive bit rate systems
US9258747B2 (en) 2013-09-17 2016-02-09 Intel IP Corporation User equipment and methods for fast handover failure recovery in 3GPP LTE network
US9491522B1 (en) 2013-12-31 2016-11-08 Google Inc. Methods, systems, and media for presenting supplemental content relating to media content on a content interface based on state information that indicates a subsequent visit to the content interface
WO2015121342A1 (en) 2014-02-13 2015-08-20 Koninklijke Kpn N.V. Requesting multiple chunks from a network node on the basis of a single request message
US10902474B2 (en) * 2014-03-24 2021-01-26 Qualcomm Incorporated Targeted advertisement insertion for streaming media data
US9661050B2 (en) 2015-04-03 2017-05-23 Cox Communications, Inc. Systems and methods for segmentation of content playlist and dynamic content insertion
US20170310752A1 (en) * 2016-04-21 2017-10-26 Samsung Electronics Company, Ltd. Utilizing a Content Delivery Network as a Notification System
US11038938B2 (en) * 2016-04-25 2021-06-15 Time Warner Cable Enterprises Llc Methods and apparatus for providing alternative content
US10785508B2 (en) * 2016-05-10 2020-09-22 Google Llc System for measuring video playback events using a server generated manifest/playlist
US10820063B2 (en) * 2016-06-10 2020-10-27 Arris Enterprises Llc Manifest customization in adaptive bitrate streaming
US10063612B2 (en) * 2016-09-30 2018-08-28 Amazon Technologies, Inc. Request-based encoding for streaming content portions
US10123061B2 (en) * 2016-11-29 2018-11-06 The Directv Group, Inc. Creating a manifest file at a time of creating recorded content
US10965967B2 (en) 2016-12-31 2021-03-30 Turner Broadcasting System, Inc. Publishing a disparate per-client live media output stream based on dynamic insertion of targeted non-programming content and customized programming content
US10911512B2 (en) * 2017-09-05 2021-02-02 Amazon Technologies, Inc. Personalized content streams using aligned encoded content segments
US20190238950A1 (en) 2018-01-31 2019-08-01 Qualcomm Incorporated Dynamic conditional advertisement insertion
US11039206B2 (en) 2018-04-09 2021-06-15 Hulu, LLC Differential media presentation descriptions for video streaming
US20210144422A1 (en) 2019-11-07 2021-05-13 Comcast Cable Communications, Llc Device Synchronization For Audiovisual Content
US11765421B2 (en) 2020-02-28 2023-09-19 Hulu, LLC Client based storage of remote element resolutions
WO2021174219A1 (en) 2020-02-28 2021-09-02 Hulu, LLC Identification of elements in a group for dynamic element replacement
US11930254B2 (en) 2020-04-07 2024-03-12 Tencent America LLC Patchable remote element for data manipulation

Also Published As

Publication number Publication date
EP4111698A1 (en) 2023-01-04
JP7443544B2 (ja) 2024-03-05
WO2021174214A1 (en) 2021-09-02
EP4111698A4 (en) 2024-03-13
US20210274241A1 (en) 2021-09-02
CN115136609B (zh) 2024-03-12
BR112022016916A2 (pt) 2022-10-25
CN115136609A (zh) 2022-09-30
US11765421B2 (en) 2023-09-19
JP2023517484A (ja) 2023-04-26

Similar Documents

Publication Publication Date Title
US11477521B2 (en) Media presentation description patches for video streaming
CN115136609B (zh) 远程元素解析的基于客户端的存储
US10904642B2 (en) Methods and apparatus for updating media presentation data
US11647252B2 (en) Identification of elements in a group for dynamic element replacement
EP3941070A1 (en) Resource transmission method and computer device
JP7354411B2 (ja) ビデオプレイバックにおける予測ベースドロップフレームハンドリング論理
US11457280B2 (en) Bundling of video asset variants in a database for video delivery
US11997331B2 (en) Audience definition for media programs
US11392643B2 (en) Validation of documents against specifications for delivery of creatives on a video delivery system
US11496803B2 (en) Video stream switching service
US11792486B2 (en) Interface generation using collection pools

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal