KR102330088B1 - 매니페스트 속성을 이용하여 미디어 자산을 필터링하는 시스템 - Google Patents

매니페스트 속성을 이용하여 미디어 자산을 필터링하는 시스템 Download PDF

Info

Publication number
KR102330088B1
KR102330088B1 KR1020167034069A KR20167034069A KR102330088B1 KR 102330088 B1 KR102330088 B1 KR 102330088B1 KR 1020167034069 A KR1020167034069 A KR 1020167034069A KR 20167034069 A KR20167034069 A KR 20167034069A KR 102330088 B1 KR102330088 B1 KR 102330088B1
Authority
KR
South Korea
Prior art keywords
filters
manifest
client device
filter
server
Prior art date
Application number
KR1020167034069A
Other languages
English (en)
Other versions
KR20170015912A (ko
Inventor
니콜라스 드로인
이스마일 센크 딩일로글루
억 김
Original Assignee
마이크로소프트 테크놀로지 라이센싱, 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 filed Critical 마이크로소프트 테크놀로지 라이센싱, 엘엘씨
Publication of KR20170015912A publication Critical patent/KR20170015912A/ko
Application granted granted Critical
Publication of KR102330088B1 publication Critical patent/KR102330088B1/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/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/2668Creating a channel for a dedicated end-user group, e.g. insertion of targeted commercials based on end-user profiles
    • 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/2662Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities
    • 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/21Server components or server architectures
    • H04N21/222Secondary servers, e.g. proxy server, cable television Head-end
    • H04N21/2225Local VOD servers
    • 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/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/239Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests
    • H04N21/2393Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests involving handling client requests
    • 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/258Client or end-user data management, e.g. managing client capabilities, user preferences or demographics, processing of multiple end-users preferences to derive collaborative data
    • H04N21/25866Management of end-user data
    • H04N21/25891Management of end-user data being end-user preferences
    • 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/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/454Content or additional data filtering, e.g. blocking advertisements
    • 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/47End-user applications
    • H04N21/475End-user interface for inputting end-user data, e.g. personal identification number [PIN], preference data
    • H04N21/4755End-user interface for inputting end-user data, e.g. personal identification number [PIN], preference data for defining user preferences, e.g. favourite actors or genre
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/65Transmission of management data between client and server
    • H04N21/658Transmission by the client directed to the server
    • H04N21/6582Data stored in the client, e.g. viewing habits, hardware capabilities, credit card number
    • 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/47End-user applications
    • H04N21/472End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
    • H04N21/47202End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for requesting content on demand, e.g. video on demand
    • 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

Landscapes

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

Abstract

방법은 VOD 또는 스트리밍 비디오 매니페스트를 제공하는 동작을 포함한다. 이 방법은 서버에서, 클라이언트 장치로부터 매니페스트에 대한 요청을 수신하는 동작을 포함한다. 매니 페스트에 대한 요청은 리턴된 매니페스트에 적용될 하나 이상의 필터의 식별을 포함한다. 방법은 서버에서 매니페스트를 식별하는 동작을 더 포함한다. 매니페스트는 클라이언트 장치들에 전달될 수 있는 멀티미디어 자산의 상이한 부분들을 식별한다. 방법은 하나 이상의 식별된 필터를 매니페스트에 적용하여 하나 이상의 필터에 의해 표시된 하나 이상의 아이템을 배제하는 필터링된 매니페스트를 생성하는 동작을 더 포함한다. 필터링된 매니페스트는 클라이언트 장치로 리턴된다.

Description

매니페스트 속성을 이용하여 미디어 자산을 필터링하는 시스템{SYSTEM FOR FILTERING MEDIA MANIFESTS USING MANIFEST ATTRIBUTES}
컴퓨터 및 컴퓨팅 시스템은 현대 삶의 거의 모든 측면에 영향을 미친다. 컴퓨터 일반적으로 일, 레크리에이션, 건강관리, 교통, 오락, 가정 관리 등에 관여한다.
또한, 컴퓨팅 시스템 기능은 네트워크 연결을 통해 다른 컴퓨팅 시스템에 상호연결될 수 있는 컴퓨팅 시스템 능력에 의해 강화될 수 있다. 네트워크 연결은 유선 또는 무선 이더넷을 통한 연결, 셀룰러 연결, 또는 심지어 직렬, 병렬, USB 또는 다른 연결에 의한 컴퓨터 대 컴퓨터 연결을 포함할 수 있으나, 이에 국한되지는 않는다. 이러한 연결은 컴퓨팅 시스템이 다른 컴퓨팅 시스템에서의 서비스에 액세스할 수 있게 해주고 또한 다른 컴퓨팅 시스템으로부터 애플리케이션 데이터를 신속하고 효율적으로 수신할 수 있게 해준다.
컴퓨팅 시스템들의 상호연결은 콘텐츠 서비스 제공자로부터의 멀티미디어 콘텐츠의 전달을 용이하게 하였다. 예를 들어, 최종 사용자는 비디오 및/또는 오디오 콘텐츠를 네트워크를 통해 그들의 장치로 스트리밍할 수 있다. 이러한 스트리밍은 실시간 스트리밍 또는 온 디맨드 스트리밍(on-demand streaming)일 수 있다.
사용자가 콘텐츠를 스트리밍하고자 하는 경우, 스트리밍될 수 있는 콘텐츠를 제약할 수 있는 많은 제약사항이 있다. 예를 들어, 네트워크 대역폭은 스트림의 비트레이트를 제한할 수 있다. 이와 달리 또는 이에 추가하여, 콘텐츠가 스트리밍되는 장치는 콘텐츠를 디코딩함에 있어 소정의 코덱만을 지원할 수 있고, 콘텐츠를 디스플레이함에 있어 제한된 디스플레이 해상도를 가질 수 있으며, 콘텐츠를 디코딩 및 재생함에 있어 제한된 프로세서 성능을 가질 수 있다. 이와 대조적으로, 여러 코덱을 지원하고, 높은 스크린 해상도를 가지며, 풍부한 서라운드 사운드 성능을 가지고, 또한 높은 대역폭 네트워크에 연결된 강력한 성능의 장치의 사용자는 가능한 가장 높은 품질의 콘텐츠가 자신들에게 전달될 수 있기를 희망할 수 있다. 따라서, 사용자는 스트리밍 콘텐츠가 가장 높은 품질로 이용가능하던지, 가장 낮은 품질로 이용가능하던지 또는 그 중간의 어떤 품질로 이용가능하던지 간에, 자신의 장치에 적합한 스트리밍 콘텐츠가 자신에게 전달되기를 희망할 수 있다.
콘텐츠 제공자는 전형적으로 "자산(asset)"을 사용하여 콘텐츠를 제공한다. 이 자산은 멀티디미어 콘텐츠 조각들의 집합이며, 이들 중 어느 것이라도 최종 사용자 장치에 의해 요청되면 그 최종 사용자 장치에 전달될 수 있다. 예를 들어, 자산은 몇몇 상이한 비디오 파일을 포함할 수 있는데, 각 비디오 파일은 동일한 소스 비디오를 상이하게 인코딩한 버전이다. 따라서, 예를 들어, 일 버전이 1.5 Mb/s 비트레이트로 인코딩된 비디오의 1080p 버전일 수 있다. 또 다른 버전은 1Mb/s 비트레이트로 인코딩된 비디오의 720p 버전일 수 있다. 또 다른 버전은 0.7Mb/s 비트레이트로 인코딩된 비디오의 720p 버전일 수 있다. 또한, 다른 버전도 이와 같이 가능하다. 자산은 이에 더해 또는 이와 달리 다수의 오디오 트랙을 저장할 수 있다. 예를 들어, 자산은 7.1 트랙, 5.1 트랙, 스테레오 트랙, 모노 트랙, 및 다양한 언어 특정 트랙을 저장할 수 있다. 따라서, 자산은 꽤 큰 크기를 가질 수 있고 다양한 재생 옵션을 제공할 수 있다.
어떤 콘텐츠가 이용가능한지를 최종 사용자에게 나타내기 위해, 자산의 매니페스트가 제공될 수 있다. 매니페스트는 사용자가 스트리밍할 것을 선택할 수 있는 자산의 이용가능 부분 모두를 나열한다. 흔히, 장치는 매니페스트를 수신하고 스트리밍하기 위한 최상 품질의 부분들을 선택할 것이다. 그러나, 이 장치는 이들 부분을 (전혀 또는 끊김없이) 지원할 수 없으며 따라서 고품질 콘텐츠를 재생하려는 시도를 중단하고 보다 낮은 품질의 콘텐츠를 선택할 필요가 있을 수 있다. 이로 인해 일부 비효율성이 발생하게 되는데 그 이유는 장치들이 특정 장치에 대한 적절한 품질의 스트림을 찾기 위해 노력해야 하기 때문이다.
일부 시스템은 상이한 장치에 대해 상이한 자산을 생성함으로써 이 문제를 해결한다. 따라서, 사용자 장치는 그 장치에 대한 특정 자산으로의 URL을 따라갈 수 있다. 그러나, 이것은 다수의 상이한 자산에 대한 필요성을 야기하며 또한 주어진 미디어 제공을 위한 콘텐츠 전달의 분열된 구현, 및 미디어 제공의 상이한 버전들의 저장 (및 콘텐츠 분배 에지 노드에서의 캐싱)과 관련된 비효율성을 야기한다.
본 명세서에서 설명된 본 발명은 전술한 것과 같은 환경에서의 임의의 문제점을 해결하거나 그러한 환경에서만 동작하는 실시예에 국한되지 않는다. 그보다, 본 배경기술은 단지 본 명세서에서 기술되는 일부 실시예들이 실시될 수 있는 하나의 예시적인 기술 영역에 대해 제공된 것이다.
본 명세서에서 설명되는 일 실시예는 컴퓨팅 환경에서 실시될 수 있는 방법을 포함한다. 이 방법은 VOD(Video on Demand) 또는 라이브 자산의 렌디션(rendition)을 기술하는 매니페스트를 제공하는 동작을 포함한다. 방법은 서버에서, 매니페스트에 대한 요청을 클라이언트 장치로부터 수신하는 단계를 포함한다. 매니페스트에 대한 요청은 리턴된 매니페스트에 적용될 하나 이상의 필터의 식별자를 포함한다. 방법은 또한 서버에서 매니페스트를 식별하는 단계를 포함한다. 매니페스트는 클라이언트 장치에 전달될 수 있는 멀티미디어 자산의 상이한 부분들을 식별한다. 방법은 또한 매니페스트에 하나 이상의 식별된 필터를 적용하여 하나 이상의 필터에 의해 표시된 하나 이상의 아이템을 배제하는 필터링된 매니페스트를 생성하는 단계를 포함한다. 필터링된 매니페스트는 클라이언트 장치로 리턴된다.
본 요약은 이하 발명의 상세한 설명에서 보다 자세히 기술될 선택된 개념들을 단순화된 형식으로 소개하기 위해 제공된 것이다. 본 요약은 청구대상의 주된 사항 또는 핵심 사항을 밝히기 위한 것이 아니며, 청구대상의 범위를 결정하는데 사용되려는 것도 아니다.
이하에서 상세한 설명으로부터 일부 자명하거나 상세한 설명을 통해 학습될 수 있는 추가의 특징 및 장점이 설명될 것이다. 본 발명의 특징 및 장점은 특히 첨부한 청구항에 기재된 수단 및 조합을 통해 실시 및 얻어질 수 있다. 본 발명의 특징은 후속하는 상세한 설명 및 첨부한 도면으로부터 보다 완전히 이해될 것이며, 또는 이하에서 설명되는 본 발명의 실시예를 통해 학습될 수 있다.
전술한 및 그 밖의 다른 장점 및 특징이 획득될 수 있는 방식을 설명하기 위해, 앞서 간단히 설명한 본 발명에 대한 보다 구체적인 설명이 첨부한 도면에 도시되어 있는 특정 실시예를 참조하여 이어질 것이다. 이들 도면은 단지 전형적인 실시예를 나타내는 것이며 따라서 범주를 제한하는 것으로 간주되지 않음을 이해하면서, 첨부한 도면을 통해 실시예들이 보다 구체적이고 상세하게 기술 및 설명될 것이다.
도 1은 콘텐츠 분배 서버, 에지 노드 및 클라이언트 장치를 포함하는 콘텐츠 분배 네트워크의 예를 나타낸다.
도 2는 자산 매니페스트의 일 예를 나타낸다.
도 3은 매니페스트 필터의 일 예를 나타낸다.
도 4a는 몇몇 매니페스트 필터를 함께 사용하는 것을 나타낸다.
도 4b는 몇몇 매니페스트 필터를 사용하고 필터링된 상이한 매니페스트를 상이한 클라이언트 장치에 전송하는 것을 나타낸다.
도 4c는 몇몇 매니페스트 필터를 함께 사용하고 필터링된 상이한 매니페스트를 상이한 클라이언트 장치에 전송하는 것을 나타낸다.
도 5는 타임 스탬프를 필터링함으로써 장기 실행(long running) 스트림으로부터 별개의 프로그램들을 생성하기 위해 필터링을 사용하는 것을 나타낸다.
도 6은 타임 스탬프를 필터링함으로써 라이브 백오프를 생성하는 것을 나타낸다.
도 7은 타임 스탬프를 필터링함으로써 DVR 윈도우를 생성하는 것을 나타낸다.
도 8은 필터들을 적층(stacking)함으로써의 결과를 나타낸다.
도 9는 필터들을 적층함으로써의 추가적인 결과를 나타낸다.
도 10은 필터들을 정의하는 사용자 인터페이스 제어를 나타낸다.
도 11은 VOD 또는 스트리밍 비디오 매니페스트를 제공하는 방법을 나타낸다.
도 12는 서버 및 클라이언트 장치의 상호작용을 나타낸다.
도 13은 VOD를 관리하거나 비디오 자산을 스트리밍하는 방법을 나타낸다.
본 명세서에서의 실시예들은 단일 자산을 유지하나 그 자산에 대한 매니페스트의 상이한 버전을 클라이언트 장치에 제공할 수 있는 능력을 제공할 수 있다. 특히, 필터링된 매니페스트를 생성하기 위해 매니페스트의 특정 세부사항을 필터링하는 필터가 매니페스트에 적용될 수 있다. 필터링된 매니페스트는 클라이언트 장치에 제공되어 필터링된 매니페스트는 자산으로부터 이용가능한 상이한 요소들의 제한된 "뷰"를 제공한다.
일부 실시예에서, 자산에 대한 매니페스트에 어떤 필터가 적용될 것인지를 특정할 수 있다. 클라이언트 장치는 자산을 식별할 수 있고 서버에 적용될 필터를 식별할 수 있다. 서버는 서버에서 자산에 대한 매니페스트에 필터를 적용할 수 있고 필터링된 매니페스트를 클라이언트에 전송할 수 있다.
일부 실시예는 서버에서의 필터 관리에 관한 것이다. 특히, 자산은 이 자산에 대한 매니페스트에 적용될 수 있는 필터로 주석이 달릴 수 있다. 일부 실시예에서, 클라이언트 장치는 적용될 수 있는 필터들의 리스트를 요청할 수 있고, 서버는 그에 응답하여 리스트를 제공할 수 있다. 일부 실시예에서, 클라이언트는 일반적으로 적용될 수 있는 상이한 필터들의 리스트로 주기적으로 업데이트될 수 있다.
이제 도 1을 참조하면, 스트리밍 또는 온 디맨드 미디어 분배에 대한 예가 설명된다. 본 명세서에서의 예시들은 비디오 스트리밍 또는 비디오 온 디맨드(VOD)의 문맥에서 설명되지만, 다른 미디어 스트리밍 또는 온 디맨드 전달이 본 명세서에서 설명된 본 발명의 실시예의 문맥에서 수행될 수 있다.
도 1은 오리진 서버(origin server)(102)를 나타낸다. 오리진 서버(102)는 중앙 소스이며, 이로부터 스트리밍 미디어가 분배된다. 본 명세서에서 보다 자세히 설명되는 바와 같이, 오리진 서버는 사용자에게 전달될 수 있는 다양한 비디오, 오디오, 서브 타이틀 등의 스트림을 포함하는 자산(예를 들어, 도 2의 자산(202)을 참조)을 저장할 수 있다. 자산은 그 크기가 꽤 클 수 있다.
미디어를 스트리밍하기 위한 네트워크 요구사항으로 인해, 미디어가 최종적으로 전달될 최종 사용자 클라이언트 장치에 인접한 지리적 위치에 자산을 갖는 것이 흔히 바람직하다. 이를 달성하기 위해, 콘텐츠 분배 네트워크(CDN)가 구현될 수 있다. 콘텐츠 분배 네트워크를 구현하기 위해, CDN 에지 노드(104)가 지리적으로 다양한 위치에 분포될 수 있다. CDN 에지 노드는 CDN 에지 노드(104)에서 자산의 사본을 캐싱할 수 있다.
각 자산은 매니페스트와 연관된다. 매니페스트는 주어진 자산에서 이용가능한 다양한 스트림의 리스트를 포함한다. 매니페스트는 CDN 에지 노드(104)에서 캐싱될 수 있는데 이 매니페스트는 클라이언트 장치(106)에 제공될 수 있거나 오리진 서버(102)에 의해 직접 제공될 수 있다.
매니페스트를 사용하여, 클라이언트 장치(106)는 스트리밍할 자산의 부분들을 요청할 수 있다. 그러나, 일부 클라이언트 장치는 그 장치 자신이 적절한 코덱 또는 처리 능력을 가지고 있지 않거나 또는 네트워크 대역폭이 자산 부분의 전달을 가능하게 하기에는 너무 낮음으로 인해, 만족스럽게 스트리밍할 수 없는 자산의 부분을 스트리밍하려고 시도할 수 있다. 클라이언트 장치는 클라이언트 장치(106)가 재생할 수 있는 부분을 식별하기 위해 자산의 보다 낮은 품질 또는 크기 부분, 또는 다르게 인코딩된 부분을 반복적으로 시도해야 할 것이다. 그러나, 본 발명에서의 실시예는 매니페스트가 필터링되게 함으로써(도 3 참조) 클라이언트 장치(102)에 의해 수신된 매니페스트는 이용가능한 자산 부분들을 축소시켜 나열한 것을 포함한다. 이러한 식으로, 클라이언트 장치(102)는 자산의 특정 부분은 요청하려 하지 않을 것인데, 그 이유는 이 부분은 매니페스트에서 식별되지 않을 것이기 때문이다.
이러한 간단한 예에서, 설명은 매니페스트 내에 자산의 어떤 부분이 포함될 것인지를 결정하는 것에 관한 것임을 알아야 한다. 그러나, 매니페스트는 적절한 상업 위치 등을 식별하기 위해, 비디오의 부분들만을 제시하도록 또한 필터링될 수 있는 다양한 시간 오프셋 및 그 밖의 다른 정보를 포함할 수 있다.
이제 도 2를 참조하면, 자산(202)이 도시된다. 이 자산(202)은 볼륨으로서 개념화될 수 있다. 도 2의 예시된 예에서, 자산(202)은 다양한 부분을 포함한다. 예를 들어, 자산(202)은 비디오 파일(204)의 세트를 포함할 수 있다. 자산(202)은 오디오 파일(206)의 세트를 포함할 수 있다. 매니페스트는 또한 타이밍 정보(208)와 같은 추가의 정보를 포함할 수 있다. 이러한 타이밍 정보는 시작 및 종료 시간 마커(marker)로 자산의 세그먼트를 식별하는 시간 마커의 세트를 포함할 수 있다. 앞서 설명한 바와 같이, 매니페스트는 자산(202)의 다양한 부분을 열거할 수 있다. 클라이언트 장치(106)에서의 사용자는 매니페스트를 사용하여 클라이언트 장치에 스트리밍할 자산의 부분들을 선택할 수 있다.
이제 도 3을 참조하면, 매니페스트를 필터링하는 예가 도시된다. 도 3은 자산의 다양한 부분의 열거를 포함하는 매니페스트(302)를 도시한다. 필터(304)가 매니페스트(302)에 적용되어 필터링된 매니페스트(302')를 생성한다. 필터링된 매니페스트(302')는 매니페스트(302) 내에 열거된 요소들 전부보다 적은 열거물을 포함한다. 이것은 사용자가 그들의 클라이언트 장치(106)에서 요청할 수 있는 자산(202)의 부분들을 제한하도록 행해질 수 있다. 특히, 제한은 보다 낮은 품질의 스트림으로 제한하는 것으로 행해질 필요는 없다. 예를 들어, 클라이언트 장치(106)가 고대역폭 네트워크에 결합되어 있고, 매우 높은 품질의 미디어 스트림을 재생할 수 있는 장치인 경우를 가정한다. 이러한 예에서, 콘텐츠 제공자는 스트리밍 미디어의 선택지를 고품질 소스로 제한하고 따라서 매니페스트(302)로부터 임의의 보다 낮은 품질의 스트림을 필터링하기를 원할 수 있다.
이제 도 4a를 참조하면, 필터링에 대한 추가의 예가 도시되어 있다. 도 4a에 도시되어 있는 예에서, 매니페스트(302)는 필터링된 매니페스트(302')를 생성하도록 매니페스트(302)에 적용되는 필터들의 세트(404)를 갖는다. 이 예는 필터들이 매니페스트 제공을 맞춤화하기 위해 매니페스트에 직렬로 적용될 수 있다
도 4b에 도시되어 있는 또 다른 또는 추가의 실시예에서, 매니페스트(302)는 중간 필터링된 매니페스트와 함께 직렬로 적용된 상이한 필터들(406,408)을 가질 수 있다. 따라서, 예를 들어, 필터(406)는 매니페스트(302)에 적용되어 필터링된 매니페스트(302')를 생성한다. 필터링된 매니페스트(302')는 제1 클라이언트 장치(106-1)에 전송될 수 있다. 필터(408)는 필터링된 매니페스트(302')에 적용되어 필터링된 매니페스트(302'')를 생성한다. 필터링된 매니페스트(302'')는 클라이언트(106-2)로 전송된다. 따라서, 상이한 클라이언트에 적절한 중간 결과가 사용될 수 있다.
도 4c에 도시되어 있는 또 다른 또는 추가의 실시예에서, 상이한 클라이언트에 전송되는 상이한 필터링된 매니페스트와 병렬로 필터가 적용될 수 있다. 따라서, 예를 들어, 매니페스트(302)는 필터링된 매니페스트(302')를 생성하기 위한 필터(406)를 갖는다. 필터링된 매니페스트(302'-1)는 클라이언트 장치(106-1)에 전송될 수 있다. 동시에, 매니페스트(302)는 필터링된 매니페스트(302'-2)를 생성하기 위한 필터(408)를 갖는다. 필터링된 매니페스트(302'-2)는 클라이언트(106-2)로 전송된다.
다양한 클라이언트 클라우드 서비스 고객이 클라우드 서비스 제공자로부터의 호스팅 서비스를 구매할 수 있도록 클라이언트 서비스 제공자에 의해 오리진 서버가 제공되는 본 발명의 일부 실시예가 구현될 수 있다. 클라우드 서비스 제공자는 고객이 컴퓨트, 저장 및 네트워크 리소스를 "렌트"할 수 있게 함으로써 서비스를 제공한다. 고객의 요구가 증가 또는 감소함에 따라, 클라우드 서비스 제공자는 리소스의 공유된 풀로부터 이들 리소스의 양을 조정할 수 있다. 이것은 클라우드의 고객이 요구에 따라 필요한 리소스만을 렌트할 수 있게 해주고 보다 적은 리소스가 필요한 경우에는 돈을 절약할 수 있게 해준다. 따라서, 예를 들어, 본 발명의 일부 실시예는 워싱턴주 레드몬드 소재의 마이크로소프트사로부터 입수가능한 마이크로소프트 아주르 미디어 서비스를 사용하여 실시될 수 있다.
앞서는 일반적인 설명이 주어졌으며, 이제는 본 발명의 다양한 실시예에 대한 보다 구체적인 예 및 구현에 주목한다.
라이브 스트림 및 비디오 온 디맨드 미디어 자산의 문맥에서, 고객이 자신의 최종 사용자가 전체 자산의 하위 집합을 제시하기를 원할 수 있는 경우가 있다. 이는 클라이언트 측 제한, 자산 품질, 실행 기간 또는 타임라인의 특정 세그먼트에 집중하려는 욕구에 의해 유발될 수 있다.
일부 실시예에서, 필터는 클라이언트 장치(106)에 의해 지정되어 필터가 오리진 서버(102) 및/또는 CDN 에지 노드(104)에서 매니페스트(302)에 적용될 수 있다. 대안으로 또는 부가적으로, 오리진 서버(102)는 요청을 하는 클라이언트 장치(106)를 검출하고 그에 따라 필터를 선택할 수 있다. 예를 들어, 일부 실시예는 장치에 대한 사용자 에이전트를 특정의 명명된 필터에 매핑할 수 있다.
다양한 실시예들은 특정 특징들 및/또는 기능성을 나타낼 수 있다. 예를 들어, 일부 실시예들은 미디어 플랫폼 내의 REST(Representational State Transfer) 엔티티로서 매니페스트 필터를 명명, 저장 및 재사용하는 능력을 보존하는 방식으로 구현될 수 있다. 대안적으로 또는 추가적으로, 실시예는 매니페스트 요청에 대해 실시간으로 매니페스트 필터를 사용하는 능력을 포함하도록 구현될 수 있다. 선택적으로 또는 부가적으로, 실시예들은 서버측(전형적으로 클라이언트 측 설정)에서 스트리밍 설정(예를 들어, 라이브 백-오프 위치)을 생성하는 능력을 포함하도록 구현될 수 있다. 대안적으로 또는 추가적으로, 실시예들은 둘 이상의 프로토콜에 동시에 적용되는 단일 매니페스트를 생성하는 능력을 포함하도록 구현될 수 있다. 대안적으로 또는 추가적으로, 실시예들은 명시적으로 특정되지 않고 모든 매니페스트 요청들에 적용될 디폴트 매니페스트 필터를 설정하는 능력을 포함하도록 구현될 수 있다.
미디어 스트리밍에서는, 매니페스트와 미디어 청크가 있다. 본 명세서의 실시예들은 미디어 청크가 CDN 및 오리진 서버들에 걸쳐 그들의 멱등성 및 캐시성(idempotence and cachability)을 유지하도록 필터링을 허용하도록 구현될 수 있다. 따라서, 일부 실시예에서, 미디어 청크를 위해 새로운 URL이 생성될 필요가 없다.
자산(202)은 다양한 속성을 갖는 스트림 및 타임라인(208)으로 구성된 것으로 가정한다. 사용자 클라이언트 장치(106)에 제공되는 스트림을 제한하는 것, 예를 들어 비트레이트, 해상도 또는 코덱에 의해 제한하는 것은 고객(예를 들어, 고객이 최종 사용자 장치에 스트리밍 미디어를 제공하는 클라우드 기반 스트리밍 미디어 서비스의 고객)의 관심사일 수 있다. 또는, 자산이 너무 길어서 고객이 타임라인의 단일 서브 클립을 사용자 클라이언트 장치(106)에 제공하기를 원하는 시나리오가 있을 수 있다.
매니 페스트(302)에는 많은 속성들이 있고 이들은 여러 가지 다른 방식으로 필터링될 수 있다. 예를 들어, 속성은 완전 일치 또는 열거에 따라 필터링될 수 있다. 선택적으로 또는 추가적으로, 속성은 보다 크고 작은 연산자들을 사용하여 필터링될 수 있다. 대안으로 또는 부가적으로, 속성들은 배제에 의해 필터링될 수 있다. 이러한 방법은 단독으로 또는 적절하게 조합하여 사용될 수 있다.
일부 실시예는 장치 성능을 관리하기 위해 필터를 구현할 수 있다. 특히, 장치 세계는 매우 분단되어 있으며, 프로토콜, 코덱, 비트레이트 및 해상도에 대한 지원은 크게 변동될 것이다. 그러나, 특히 장치의 각 유형에 대해 하나의 인코딩으로 여러 번 인코딩하는 것은 비현실적이며 비용이 많이 든다. 콘텐츠 소유자 및 배포자는 여러 장치에 콘텐츠를 제공하는 간단한 방법을 찾고 있다. 위에서 설명한 것처럼 하나의 솔루션은 멀티 비트레이트 자산을 사용하는 것인데, 이는 멀티-비트레이트 MP4, Smooth 또는 다른 파일의 형태로 소스 파일이 오리진 서버(102)에서 예를 들어 전달을 위해 Smooth, HLS, HDS 및 DASH/CSF로 멀티플렉싱될 수 있게 함으로써 문제의 멀티 프로토콜 측면을 해결한다. 그러나, 자산 패키징은 단지 프로토콜만을 처리하고 궁극적으로는 클라이언트 장치(106)에 전체 멀티 비트레이트 자산을 제공한다. 따라서, 예를 들어, 이전에 H.264 베이스 라인 및 H.264 High를 모두 포함하는 혼합 인코딩 프로파일은 베이스 라인만 지원하는 장치, 예를 들어 예전 안드로이드 장치에 제공될 수 있다.
유사하게, 프리미엄 콘텐츠 소유자는 프리미엄 오디오를 제공하고자 한다. 그들은 Dolby Digital Plus 및 DTS를 통해 5.1 서라운드 사운드뿐만 아니라 AAC, 다양한 프로파일, HE-AAC 및 AAC-LE의 서로 다른 비트레이트를 사용하는 데 관심이 있다. 프리미엄 콘텐츠 소유자가 iOS 애플리케이션을 제공하는 경우, 그들은 또한 합계 64kbps 미만의 적어도 하나의 변형 스트림(일반적으로 오디오만)을 제공해야 한다. 오늘날의 클라이언트 프레임워크에서는 멀티 비트레이트 오디오는 제대로 지원되지 않는다. 현재까지 알려진 MBR 오디오 알고리즘은 없으며 트랙 선택만이 이를 지원하는 클라이언트 장치에서의 유일한 메커니즘이다. 일부 프레임워크는 지원되지 않는 트랙이 선택되면 단순히 기능을 정지시킨다. 자산 매니페스트의 필터링을 사용하는 코덱에 기초한 서버 측 제한(server-side restrictions)을 허용함으로써, 실시예는 현재 장치 환경의 일부 기능 제한을 해결할 수 있다.
일부 실시예들은 이동 장치들에 대한 대역폭 및 전력 소비를 최적화하는 것에 관한 것이다. 장치가 디스플레이할 수 있는 해상도보다 더 높은 해상도를 전송하게 되면 장치는 단지 디스플레이용으로 축소시키기 위해 과도한 정보를 디코딩해야 하므로 대역폭 및 장치 계산기능을 낭비하는 결과를 가져오는데 이는 누구나 알 수 있는 바이다. 본 명세서의 일부 실시예는 자산 매니페스트의 필터링을 사용하는 해결책에 기초한 서버 측 제한을 제공할 수 있다. 이러한 방식으로, 실시예는 모바일 장치에서 대역폭 및 전력 소비를 처리할 수 있다.
일부 실시예는 품질 제한을 강요하는 것에 관한 것이다. 특히, 품질에 대한 상한 및/또는 하한 중 하나 또는 둘 다를 강제하는 실시예가 구현될 수 있다. 콘텐츠 소유자는 타겟 장치(106)에 따라 최종 사용자에게 특정 경험을 전달하려 할 수 있다. 예를 들어, 셋톱 박스 또는 게임 콘솔로 전달할 때, 콘텐츠 소유자는 장치가 단지 높은 비트레이트를 소비하기를 원할 수 있다. 이것은 느린 네트워크 환경에서 버퍼링의 결과를 가져올 수 있지만, 일부 콘텐츠 소유자는 특정 조건하에서 특정 제목에 대해서만 특정 품질을 제공하기 위해 스튜디오 계약 또는 기타 제한 조건하에 놓일 수 있다.
일부 콘텐츠 소유자는 HD(고화질) 및 SD(표준 화질) 콘텐츠에 대해 가격 결정 단계를 제공함으로써 그들의 제공품을 차별화한다. 따라서, 콘텐츠 소유자는 사용자를 낮은 품질로 제한할 필요가 있을 수 있다. 이것은 키와 권한을 통해 SD 콘텐츠 대 HD 콘텐츠에 대한 액세스를 제한함으로써 디지털 저작권 관리 시스템을 통해 수행될 수 있다. 그러나, 트랙을 제한하는 것은 플레이어 프레임워크 전반에 걸쳐 복잡하며, 다수는 키가 있는 트랙과 암호 해독 오류가 발생하는 트랙을 구별할 수 없다. 트랙을 SD 품질 계층의 특정 키/권한과 일치하는 하위 집합으로 제한할 수 있는 것이 유리하다. 이는 오리진 서버(102)에서 적절한 필터를 자산(202)에 대한 매니페스트(302)에 적용함으로써 달성될 수 있다. 따라서, 비트레이트에 기초한 서버 측 제한을 허용함으로써, 실시예들은 콘텐츠 소유자 및 배포자가 품질 문제를 관리할 수 있게 한다.
일부 실시예들은 다중 언어 지원을 용이하게 할 수 있다. 다중 언어 지원은 장치-특정 플레이어 프레임워크에 걸쳐 서로 다른 구현을 통해 지원된다. 언어 기반 필터를 사용하여 서버 측 제한을 허용함으로써, 실시예들은 다중 언어로 된 자산을 관리할 수 있다.
일부 실시예는 라이브 콘텐츠 스트림에 대해 동작하는 기능을 포함한다. 특히, 본 발명의 실시예들은 장기 실행중인 스트림(long running stream) 밖에서 복수의 가상 프로그램 기간을 생성할 수 있다. 이것은 여전히 라이브 프로그램 내에서 또는 나중에 VOD 자산으로 수행될 수 있다. 많은 라이브 이벤트가 장기간에 걸쳐 진행중이며 방송사는 라이브 스트림을 시청하는 사람이 DVR 윈도우로 다시 돌아갈 수 있는 능력을 제한하지 않고 이들 라이브 이벤트를 프로그램을 논리적 프로그램 시작 및 중지 시퀀스로 구분하려 할 수 있다. 이러한 더 작은 시퀀스는 모바일 장치에서 보다 관리하기 쉽고 콘텐츠 제공자를 위한 추가의 가상 콘텐츠를 제공할 수 있다. 그러한 가상 프로그램의 예는 축구 또는 농구 경기의 쿼터, 야구의 이닝 또는 올림픽 프로그램 오후의 개별 이벤트이다.
예를 들어, 이제 도 5를 참조한다. 도 5는 라이브 스트림으로서 방송되는 다수의 상이한 스포츠 이벤트의 연속적인 스트림(502)을 도시한다. 매니페스트(202)는 타이밍 정보(208)에 시간 마커를 포함할 수 있다. 시간 마커는 클라이언트 프로그램(106)에 개별 프로그램만을 보여주는 자산의 뷰를 제공하도록 필터링될 수 있다. 따라서, 장치(106)에서의 사용자는 오직 스키 프로그램(504), 봅슬레이 프로그램(506), 피겨 스케이팅 프로그램(508) 또는 하키 프로그램(510)의 뷰을 제공하는 매니페스트를 볼 수 있다.
도 6을 참조하면, 타이밍 정보(208) 내의 시간 마커의 매니페스트 필터링은 라이브 프로그램의 라이브 에지로부터 몇 초를 제거하여 프로그램 백오프를 생성하는데 사용될 수 있다. 이것은 방송사가 미리보기 공개 지점(602)에서 프리젠테이션을 볼 수 있게 해주고 또한 참조번호(604)에 도시된 바와 같이 시청자가 스트림을 수신하고 있는 시점 이전에 (일반적으로 30초 백오프된 시점에) 광고 삽입 지점을 생성한다. 그러면, 방송사는 이들 광고가 광고 기회 이전에 수신되고 처리되도록 하는 시간에 (예를 들어, 일반적으로 XML 또는 JSON 오브젝트를 사용하여) 이들 광고를 그들의 클라이언트 프레임워크에 푸시할 수 있다.
도 7에 도시된 바와 같이, 타이밍 정보 (208)에서의 시간 마커의 매니페스트 필터링은 미디어를 반드시 삭제할 필요없이 롤링(rolling) DVR 윈도우를 생성하는데 사용될 수 있다. 방송사가 라이브 에지와 함께 움직이는 제한된 DVR 윈도우를 제공하려는 많은 시나리오가 있다. 방송사는 하이라이트 클립을 위해 여전히 DVR 윈도를 벗어난 데이터를 사용하거나 VOD 프로그램이나 클립을 생성할 수 있다.
일부 경우, 사용자는 하나 이상의 필터를 자산에 적용하고자 할 수 있다. 예를 들어, 사용자는 여러 장치 필터(XBOX, iPad, iPhone, Windows Phone, Flash, Silverlight)를 정의하고, 각각에 대해 타임라인 제한을 적용하고자 할 수 있다. 따라서, 장치 필터 및 타임라인 필터가 적용될 수 있다. 도 4a 내지도 4c는 다중 필터를 적용하는 예를 도시한다.
특히, 일부 필터는 다른 필터보다 더 지속적이다. 예를 들어, 장치 필터는 재사용이 가능하며 일 년에 몇 번만 변경될 수 있지만, 타임라인 필터는 일반적으로 자산별로 다르다. 따라서, 특정 필터를 유지하는 데 가치가 있으며, 매니페스트 요청 시간에 다른 필터를 지정하는 데 가치가 있다.
일부 실시예에서, 다수의 타임라인 필터가 라이브 시나리오에 적용될 수 있다. 도 4a 내지도 4c에 도시된 바와 같이, 사용자는 둘 이상의 필터 알고리즘을 설정할 수 있을 필요가 있을 수 있다. 예를 들어 대부분의 라이브 방송 시나리오의 경우, 롤링 DVR 윈도우를 구현하는 타임 라인 필터와 자산 상단에서 슬레이트를 트리밍(trimming)하기 위한 타임 라인 필터가 구현될 필요가 있을 수 있다. 대안적인 예에서, 어떤 대형 스포츠 방송 고객에 대해, 라이브 백오프를 구현하는 타임라인 필터 및 롤링 DVR 윈도우를 구현하는 타임라인 필터 및 자산의 상단으로부터 슬레이트를 트리밍하기 위한 타임라인 필터가 구현 될 수 있다.
예를 들어, 도 8은 슬레이트 제거가 DVR 윈도우의 일부에서 청크를 제한하여 이들 필터의 AND 특성을 나타냄을 도시한다. 임의의 하나의 필터가 청크를 제거하면 그 청크는 다음 필터에 포함될 수 없다. 이는 교환 가능하며 필터 순서는 중요하지 않다. 이것은 스트림의 후반 부분을 나타내는 도 9에 의해 설명된다.
그러나, 라이브 자산이 커지고 가상 프로그램이 종료됨에 따라 방송사는 라이브 스트림에서 사용되는 것 외에 새로운 필터를 생성하여 이러한 가상 프로그램 기간을 한정하기를 원할 수도 있다. 따라서, 단일 자산에 많은 명명된 필터가 있는 것이 적절할 수 있다. 실시예는 필터링 메커니즘을 적용하고 다수의 이들 필터를 허용하는 유연성을 제공할 수 있다.
일부 경우, 콘텐츠 소유자는 여러 개의 서브 클립을 하나의 자산으로 제시하기를 원할 수 있다. 매니페스트 필터링은 미디어 조각에 영향을 미치지 않으므로, 이러한 자산에 대한 타임 라인은 불연속성을 가질 수 있으며 모든 스트리밍 프로토콜이 불연속성을 정상적으로 처리하는 것은 아니다. 다중 서브 클립의 경우, 실시예는 2개 이상의 타임라인 필터의 구성을 사용할 수 있다: 예를 들어, (0:05:00 <t <0:10:00) || (0:20:00 <t <0:25:00).
단일 자산으로부터 많은 스트리밍 시나리오가 발생할 수 있다. 따라서, 실시예는 사용자 정의 토큰을 사용하여 단일 자산에 대해 다수의 어드레싱가능한 매니페스트를 제공한다.
다양한 특징들이 다양한 실시 예들에서 구현될 수 있다. 예를 들어, 필터링 된 매니페스트는 임의의 지원되는 출력 형식으로 리먹스(remux)될 수 있다. 프래그먼트가 멱등수로 남아있는 경우, 필터 변경에 관계없이 콘텐츠 및 URL이 변경되지 않는 실시예가 구현될 수 있다.
매니페스트 필터가 변경되면, 동일한 URL에서 새로운 매니페스트가 공개되므로 CDN 에지 노드에서 다운 스트림 캐싱이 중단된다. 이것이 라이브 매니페스트인 경우 짧은 TTL을 가지며 크게 영향을 받지 않을 것이다. 그러나 긴 TTL을 가진 VOD 매니페스트의 경우, 이미 공개된 필터를 수정하지 않도록 주의해야 할 수도 있다. 따라서, 일부 실시예는 필터의 복사본을 만들고, 복사본을 수정하고 그것을 다른 이름으로 저장한다.
이상적으로, 사용자는 본래의 매니페스트를 제시받을 수 있고, 그 다음에 자산의 '렌디션(rendition)'을 생성하는데 사용되는 필터를 구성할 다양한 속성을 포함 또는 배제할 수 있다. 본 명세서에 사용된 바와 같이, "렌디션 (rendition)"이라는 용어는 특정의 필터링된 버전의 자산을 나타낸다. 렌디션은 다양한 매니페스트 속성에 대한 필터 컬렉션을 포함한다.
다양한 예시적인 워크플로우를 더 잘 설명하기 위해, 이하에서는 다양한 의사 오브젝트 및 이들의 상호작용이 설명된다. 새로운 엔티티 IAssetRendition이 생성된다. 도시된 예에서, 그것은 복합형 ManifestFilter의 어레이를 갖는다. 그것은 IAsset에 대한 컬렉션일 수 있다. 그것은 연관된 자산을 추적할 것이다. 그러므로:
새로운 IAssetRendition 엔티티:
Figure 112016119108955-pct00001
새로운 IManifestFilters 복합형:
Figure 112016119108955-pct00002
IAssetRendition에 대한 전형적인 CRUD:
Figure 112016119108955-pct00003
헬퍼 함수
Figure 112016119108955-pct00004
통상의 디자인 패턴에 따라, 자산에 대한 컬렉션은 CRUD를 가짐:
Figure 112016119108955-pct00005
이하에서는 다양한 사용 예가 예시된다.
이하의 예에서, 재사용가능 필터를 구성하는 예가 설명된다. 이 특정 예에서, 보다 높은 비트레이트 스트림만을 사용하는 것이 바람직하다. 재사용가능 필터는 다음과 같다:
Figure 112016119108955-pct00006
다음은 일부 자산에 대해 필터를 적용하는 것을 나타내다.
Figure 112016119108955-pct00007
다음은 필터의 사용을 나타낸다.
Figure 112016119108955-pct00008
재사용가능 필터를 구성하는 또 다른 예가 설명된다. 이 특정 예에서, 1020×768보다 낮은 해상도를 사용하는 미디어만을 안드로이드 이동 장치에 제공하는 것이 바람직하다. 재사용가능 필터는 다음과 같다:
Figure 112016119108955-pct00009
이하에서는 일부 자산에 대한 필터의 적용을 나타낸다:
Figure 112016119108955-pct00010
다음은 필터의 사용을 나타낸다:
Figure 112016119108955-pct00011
다음은 라이브 백오프 및 DVR 윈도를 정의하는 재사용가능 필터를 구성하는 예를 나타낸다. 백오프를 10초로 설정하고 DVR 길이를 2시간으로 설정하는 것이 바람직하다. 구현예는 다음과 같다:
Figure 112016119108955-pct00012
다음은 일부 자산에 대한 필터의 적용을 나타낸다.
Figure 112016119108955-pct00013
다음은 필터의 사용을 나타낸다:
Figure 112016119108955-pct00014
다음은 자산의 서브 클립을 생성하는 재사용가능 필터를 구성하는 예를 나타낸다. 가상 프로그램을 1시 표시(1hr mark)에서 2시 표시(2hr mark)까지 라이브 자산에 추가하여, 사실상 그것을 서브 클립화하는 것이 바람직하다. 예시되어 있는 예에서, 그 자산에 또한 이용가능한 것은 장치 렌디션 및 전형적인 라이브 설정이다. 다음은 구현예를 나타낸다:
먼저, 공지된 렌디션은 연관된다:
Figure 112016119108955-pct00015
다음으로, 새로운 절대 스트림 타임 필터가 생성된다:
Figure 112016119108955-pct00016
다음은 필터의 사용을 나타낸다:
Figure 112016119108955-pct00017
다음은 필터와의 서버 상호 작용을 설명한다. 하나의 예시적인 실시예에서, 서버는 매니페스트 쿼리 속성에서 쉼표(또는 앰퍼샌드)로 분리된 filternames의 목록을 구문분석할 것이다 :
Figure 112016119108955-pct00018
서버는 이러한 명명된 필터에 대한 필터링 정보를 수신하거나 검색할 것이다. 서버는 (각 추가 필터는 이전 작업의 필터링된 매니페스트에서만 정보를 제거하도록) AND 로직을 사용하여 이들을 본래의 매니페스트에 적용할 것이다. 사용자가 멀티 클립을 만들고자 한다면, 사용자는 AbsoluteStreamTimelnHNS 필터를 하나의 rendition에 두어야 할 것인데, 그 이유는 이들 필터를 서로 다른 두 개의 렌디션에 두게 되면 이들은 전체 타임라인을 상호 배제할 것이기 때문이다. 대안적으로, AND 로직 및 OR 로직 모두를 시그널링하는 메카니즘이 구현될 수 있다.
실시 예들은 사용자가 매니페스트 필터링을 정의할 수 있게 하는 사용자 인터페이스를 제공하기 위한 기능을 포함할 수 있다. 사용자 인터페이스는 다수의 상이한 위치들 및 시나리오들에 제공될 수 있다. 예를 들어, 사용자 인터페이스는 자산 전달 시스템의 관리자가 다양한 필터를 정의할 수 있도록 자산 전달 시스템과 함께 제공될 수 있다. 대안적으로, 사용자 인터페이스는 클라이언트가 필터를 생성하고 클라이언트 장치에 정의된 필터에 따라 자산 매니페스트가 필터링될 것을 요청할 수 있도록 클라이언트 장치에 제공될 수 있다.
이제 도 10을 참조하면, 필터를 정의하기 위한 사용자 인터페이스(1000)의 예가 도시되어있다. 사용자 인터페이스(1000)는 관리자 또는 다른 사용자를 포함 할 수도 있는 사용자에게 컴퓨터 또는 장치 디스플레이 상에서 디스플레이될 수 있다. 이 예에서 사용자 인터페이스(1000)는 3개의 범위 제어 슬라이더(1002, 1004 및 1006)를 포함한다. 이 예에서 슬라이더는 필터의 상한 및 하한을 제어한다. 예를 들어, 슬라이더(1002)는 해상도의 상한 및 하한을 제어한다. 슬라이더(1004)는 비트레이트의 상한 및 하한을 제어한다. 슬라이더(1006)는 오디오 트랙 품질의 상한 및 하한을 제어한다.
사용자는 상한 및 하한에서 슬라이더 제어(예를 들어, 슬라이더 제어(1008 및 1010))를 설정할 수 있다. 이는 정의할 필터에 대한 필터 범위가 정의할 것이다. 이러한 필터가 자산에 대한 매니페스트에 적용되면, 자산의 상한값 위 또는 하한값 미만의 부분은 매니페스트로부터 필터링된 자신의 설명을 가질 것이다.
따라서, 예시적인 사용자 인터페이스는 체크 박스, 슬라이더, 타임라인 등을 갖는 속성의 표현 및 오퍼레이터 및 경계 값을 설정하는 능력을 포함할 수 있다. 일 실시예에서, 저작 UI는 REST API를 호출하여 엔티티를 생성하거나 수정할 수 있다.
이제 이하의 설명은 수행될 수 있는 다수의 방법 및 방법 동작을 나타낸다. 방법 동작은 특정 순서로 설명되거나 흐름도에 특정 순서로 나타나는 것으로 설명될 수 있지만, 구체적으로 명시되거나 요구되는 경우를 제외하고는 특별한 순서가 필요하지 않는데, 그 이유는 하나의 동작은 그 동작 이전에 완료된 또 다른 행위에 의존하기 때문이다.
이제 도 11을 참조하면, 방법(1100)이 도시된다. 이 방법(1100)은 컴퓨팅 환경에서 실행될 수 있으며, VOD 또는 스트리밍 비디오 매니페스트를 제공하는 동작을 포함한다. 방법(1100)은 서버에서 클라이언트 장치로부터의 매니페스트에 대한 요청을 수신하는 단계를 포함한다. 매니페스트에 대한 요청은 리턴된 매니페스트에 적용될 하나 이상의 필터의 식별을 포함한다(동작 1102). 예를 들어, 비디오 해상도에 기초하여 필터링하도록 구성된 필터, 비트레이트에 기초하여 필터링하도록 구성된 필터, 오디오 품질에 기초하여 필터링하도록 구성된 필터, 타임 스탬프에 기초하여 필터링하도록 구성된 필터 등과 같은 다양한 필터가 식별될 수 있다. 도 12는 클라이언트 장치가 하나 이상의 필터의 식별자(1204)를 포함하는 요청(1202)을 서버(1206)에 보내는 예를 도시한다.
방법(1100)은 매니페스트를 식별하는 동작(1104)를 더 포함한다. 매니페스트는 클라이언트 장치에 전달할 수 있는 멀티미디어 자산의 여러 부분을 식별한다. 예를 들어, 앞서 설명한 매니페스트는 자산의 멀티미디어 콘텐츠의 상이한 해상도(예를 들어, 720p, 1080p 등), 자산의 다양한 멀티미디어 콘텐츠 비트레이(예를 들어, 1Mbs, 0.7Mbs 등), 상이한 오디오 품질(예를 들어, 7.1, 5.1, 스테레오, 모노 등), 자산의 멀티미디어 콘텐츠에 대한 다양한 타임 스탬프 등을 식별할 수 있다. 예를 들어, 도 12는 매니페스트(302)를 식별하는 서버(1206)를 도시한다. 특히, 서버(1206)는 콘텐츠 전달 노드, 오리진 노드 또는 다른 적절한 노드일 수 있다.
방법(1100)은 하나 이상의 필터에 의해 표시된 하나 이상의 아이템을 배제하는 필터링된 매니페스트를 생성하기 위해 매니페스트에 하나 이상의 식별된 필터를 적용하는 동작(1106)을 더 포함한다. 예를 들어, 도 12에 도시된 바와 같이, 서버(1206)는 필터(304)를 매니페스트(302)에 적용하여 필터링된 매니페스트(302')를 생성할 수 있다.
방법(1100)은 필터링된 매니페스트를 클라이언트 장치로 리턴하는 동작(1108)을 더 포함한다. 예를 들어, 도 12에 도시된 바와 같이, 필터링된 매니페스트(302')는 클라이언트 장치(106')에 리턴된다.
방법(1100)은 하나 이상의 필터가 클라이언트 장치에서 생성되는 경우에 실시될 수 있다. 예를 들어, 클라이언트는 소비할 수 있는 콘텐츠 또는 소비하고자하는 콘텐츠를 결정할 수 있으며 콘텐츠 서버로 보낼 수 있는 사용자 정의 필터를 생성할 수 있다. 그런 다음 콘텐츠 서버는 콘텐츠 서버에서 필터를 적용하고 클라이언트 장치가 렌더링 할 수 있거나 클라이언트 장치가 수신하기를 원하는 멀티미디어 콘텐츠 옵션만을 열거하는 매니페스트를 제공할 수 있다.
방법(1100)은 하나 이상의 필터가 클라이언트에 제공되는 소정의 필터 세트로부터 선택되는 경우에 실시될 수 있다. 예를 들어, 콘텐츠 서버가 콘텐츠 서버에서 자산에 적용할 수 있는 필터 목록, 또는 콘텐츠 서버에서 특히 콘텐츠에 적용될 수 있는 필터의 목록을 나타내기 위해 콘텐츠 서버에 의해 필터 세트가 클라이언트에 제공될 수 있다. 이와 달리, 또는 부가적으로, 클라이언트 장치에서의 멀티미디어 플레이어 앱 즉 애플리케이션은 콘텐츠 서버에 특정될 수 있는 애플리케이션 내에 정의된 필터 세트를 가질 수 있다. 새로운 필터 또는 다른 필터가 앱 업데이트에 지정되거나 앱에 플러그인 될 수 있는 필터 세트로 지정될 수 있다.
방법(1100)은 서버에서 클라이언트 장치에 적용될 수 있는 필터들의 선택의 표시를 전송하는 동작을 더 포함할 수 있다. 이러한 일부 실시예에서, 리턴된 매니페스트에 적용될 하나 이상의 필터의 식별은 적용될 수 있는 필터의 선택의 표시를 사용하여 클라이언트에 의해 생성된다. 따라서, 콘텐츠 서버는 클라이언트 장치에서 선택될 수 있고 필터가 적용될 수있는 콘텐츠 서버에 표시될 수 있는 필터의 선택의 표시를 전송할 수 있다.
방법(1100)은 하나 이상의 필터들 중 적어도 하나가 상한 및 하한 모두를 포함하는 경우 수행될 수 있다. 따라서, 예를 들어, 실시예들은 필터링될 상위 해상도 한계 및 필터링되는 하위 해상도 한계를 설정할 수있다. 유사한 예가 비트레이트, 오디오 품질, 타임스탬프 또는 매니페스트의 다른 항목에 대해 구현될 수 있다. 대안적으로, 일부 실시예들에서, 상한 및 하한이 설정될 수 있고, 상한과 하한 사이의 항목들이 필터링될 수 있으며, 상한 및 하한을 넘는 항목들이 매니페스트에 포함될 수 있다.
이제 도 13을 참조하면, 방법(1300)이 도시된다. 방법(1300)은 컴퓨팅 환경에서 실시될 수 있다. 방법(1300)은 VOD 또는 스트리밍 비디오 자산을 관리하는 동작을 포함할 수 있다. 이 방법은 주어진 자산에 대해 자산에 대한 매니페스트에 적용될 수 있는 필터를 식별하는 동작(1302)을 포함한다. 방법(1300)은 자산에 대한 매니페스트에 적용될 수있는 식별된 필터의 표시를 클라이언트 장치에 전송하는 동작(1304)을 더 포함한다. 예를 들어, 도 12에 도시된 바와 같이, 서버(1206)는 특정 멀티미디어 자산에 적용될 수 있는 필터 리스트(1208)를 클라이언트 장치 (106)에 전송할 수 있다.
또한, 본 방법은 하나 이상의 프로세서 및 컴퓨터 메모리와 같은 컴퓨터 판독 가능 매체를 포함하는 컴퓨터 시스템에 의해 실시될 수 있다. 특히, 컴퓨터 메모리는 하나 이상의 프로세서들에 의해 실행될 때 실시예들에 기재된 동작들과 같은 다양한 기능들이 수행되도록 하는 컴퓨터 실행 가능 명령어들을 저장할 수 있다.
본 발명의 실시예는 아래에서보다 상세히 설명되는 바와 같이 컴퓨터 하드웨어를 포함하는 특수 목적 또는 범용 컴퓨터를 포함하거나 이용할 수 있다. 본 발명의 범위 내의 실시예는 또한 컴퓨터 실행가능 명령어 및/또는 데이터 구조를 운반하거나 저장하기 위한 물리적 및 다른 컴퓨터 판독 가능 매체를 포함한다. 이러한 컴퓨터 판독 가능 매체는 범용 또는 특수 목적 컴퓨터 시스템에 의해 액세스될 수 있는 임의의 이용 가능한 매체 일 수 있다. 컴퓨터 실행가능 명령어를 저장하는 컴퓨터 판독가능 매체는 물리적 저장 매체이다. 컴퓨터 실행가능 명령어를 전송하는 컴퓨터 판독가능 매체는 전송 매체이다. 따라서, 제한이 아닌 예로써, 본 발명의 실시예들은 적어도 두 개의 뚜렷하게 상이한 종류의 컴퓨터 판독가능 매체, 즉 물리적 컴퓨터 판독가능 저장 매체 및 전송 컴퓨터 판독가능 매체를 포함할 수 있다.
물리적 컴퓨터 판독가능 저장 매체는 RAM, ROM, EEPROM, CD-ROM 또는 다른 광학 디스크 저장소(CD, DVD 등), 자기 디스크 저장소 또는 다른 자기 저장 장치 또는 컴퓨터 실행가능 명령어 또는 데이터 구조의 형식을 가지며 범용 또는 전용 컴퓨터에 의해 액세스 될 수 있는 원하는 프로그램 코드 수단을 저장하는데 사용될 수 있는 임의 다른 매체를 포함한다.
"네트워크"는 컴퓨터 시스템 및/또는 모듈 및/또는 다른 전자 장치 사이에서 전자 데이터의 전송을 가능하게 하는 하나 이상의 데이터 링크로서 정의된다. 정보가 네트워크 또는 다른 통신 연결(유선, 무선 또는 유선 또는 무선의 조합)을 통해 컴퓨터로 전송되거나 제공되면, 컴퓨터는 해당 연결을 전송 매체로 적절하게 간주한다. 전송 매체는 컴퓨터 실행가능 명령어 또는 데이터의 형태를 가지며 범용 또는 특수 목적의 컴퓨터에 의해 액세스될 수 있는 프로그램 코드 수단을 운반하는데 사용될 수 있는 네트워크 및/또는 데이터 링크를 포함할 수 있다. 상기의 조합 또한 컴퓨터 판독 가능 매체의 범위 내에 포함된다.
또한, 다양한 컴퓨터 시스템 구성 요소에 도달하면, 컴퓨터 실행가능 명령어 또는 데이터 구조의 형태의 프로그램 코드 수단이 전송 컴퓨터 판독 가능 매체로부터 물리적 컴퓨터 판독가능 저장 매체로 (또는 그 반대로) 자동으로 전송될 수 있다. 예를 들어, 네트워크 또는 데이터 링크를 통해 수신된 컴퓨터 실행가능 명령어 또는 데이터 구조는 네트워크 인터페이스 모듈(예를 들어, "NIC") 내의 RAM에 버퍼링될 수 있고, 결국 컴퓨터 시스템 RAM 및/또는 컴퓨터 시스템에서의 난휘발성 컴퓨터 판독가능 물리적 저장 매체에 전달될 수 있다. 따라서, 컴퓨터 판독가능 물리적 저장 매체는 또한 전송 매체를 또한 (또는 주로) 이용하는 컴퓨터 시스템 구성 요소에 포함될 수 있다.
컴퓨터 실행가능 명령어는, 예를 들어, 범용 컴퓨터, 특수 목적 컴퓨터 또는 특수 목적 처리 장치로 하여금 특정 기능 또는 기능 그룹을 수행하게 하는 명령어 및 데이터를 포함한다. 컴퓨터 실행가능 명령어는 예를 들어, 바이너리, 어셈블리 언어와 같은 중간 포맷 명령어 또는 심지어 소스 코드 일 수 있다. 본 발명이 구조적 특징들 및/또는 방법론적 동작들에 특정한 언어로 기술되었지만, 첨부된 청구 범위에서 한정된 주제가 반드시 상술한 특징들 또는 동작들에 반드시 제한되는 것은 아니라는 것을 이해해야 한다. 오히려, 설명된 특징 및 동작은 청구 범위를 구현하는 예시적인 형태로서 개시된다.
당업자라면, 본 발명은 퍼스널 컴퓨터, 데스크톱 컴퓨터, 랩톱 컴퓨터, 메시지 프로세서, 핸드헬드 장치, 멀티 프로세서 시스템, 마이크로프로세서 기반 또는 프로그램가능한 소비자 전자기기, 네트워크 PC, 미니 컴퓨터, 메인프레임 컴퓨터, 이동 전화, PDA, 호출기, 라우터, 스위치 등을 포함하는 여러 유형의 컴퓨터 시스템 구성을 갖는 네트워크 컴퓨팅 환경에서 실시될 수 있음을 이해할 것이다. 본 발명은 네트워크를 통해 (하드와이어 데이터 링크, 무선 데이터 링크 또는 하드와이어 및 무선 데이터 링크의 조합에 의해) 링크된 로컬 및 원격 컴퓨터 시스템 모두가 작업을 수행하는 분산 시스템 환경에서도 실시될 수 있다. 분산 시스템 환경에서, 프로그램 모듈은 로컬 및 원격 메모리 저장 장치 모두에 위치할 수 있다.
선택적으로, 또는 부가적으로, 본 명세서에 설명된 기능은 적어도 부분적으로 하나 이상의 하드웨어 로직 구성 요소에 의해 수행될 수 있다. 예를 들어, 제한없이, 사용될 수 있는 예시적인 유형의 하드웨어 로직 구성 요소들은 필드 프로그램가능 게이트 어레이(FPGA), 프로그램 특정 집적 회로(ASIC), 프로그램 특정 표준 제품(ASSP), 시스템 온 칩(SOC), CPLD(Complex Programmable Logic Device) 등d을 포함한다.
본 발명은 그 사상 또는 특성으로부터 벗어남 없이 다른 특정 형태로 실시될 수 있다. 기술된 실시예들은 모든 면에서 단지 예시적인 것으로서 제한적이지는 않다. 그러므로, 본 발명의 범위는 전술한 설명보다는 첨부된 청구 범위에 의해 표시된다. 청구항의 등가물의 의미 및 범위 내에 있는 모든 변경은 그 범위 내에 포함되어야 한다.

Claims (20)

  1. 컴퓨팅 환경에서, VOD 또는 스트리밍 비디오 매니페스트(manifest)를 제공하는 방법으로서,
    서버에서, 클라이언트 장치로부터 기존의 매니페스트에 대한 요청을 수신하는 단계 - 상기 매니페스트에 대한 요청은 상기 클라이언트 장치에 이전에 식별된 하나 이상의 필터의 식별을 포함하고, 각각의 필터는 상기 기존의 매니페스트의 필터링된 버전을 생성하기 위해 상기 기존의 매니페스트에 적용될 컴퓨터 판독가능 제한의 열거를 포함하며, 상기 하나 이상의 필터의 식별은 비디오 해상도에 기초한 필터, 비트레이트에 기초한 필터, 오디오 품질에 기초한 필터, 또는 타임스탬프에 기초한 필터를 포함하는 적어도 하나의 명명되고(named), 이전에 저장된(saved), 재사용 가능한(re-usable) 필터를 지정함 - 와,
    상기 서버에서, 상기 기존의 매니페스트를 식별하는 단계 - 상기 기존의 매니페스트는 클라이언트 장치들에 전달될 수 있는 멀티미디어 자산의 상이한 기존의 부분들을 식별함 - 와,
    상기 서버에서, 상기 하나 이상의 식별된 필터를 상기 기존의 매니페스트에 적용하여 상기 하나 이상의 필터에 의해 지시된 하나 이상의 아이템을 상기 기존의 매니페스트로부터 배제하는 상기 기존의 매니페스트의 필터링된 버전을 상기 기존의 매니페스트로부터 생성하는 단계 - 상기 기존의 매니페스트의 필터링된 버전은 상기 기존의 매니페스트에 열거된 모든 항목보다 적은 열거를 포함함 - 와,
    상기 서버에서, 상기 기존의 매니페스트의 필터링된 버전을 상기 클라이언트 장치로 리턴하는 단계를 포함하는
    방법.
  2. 제1항에 있어서,
    상기 하나 이상의 필터는 상기 클라이언트 장치에서 생성되고 상기 서버에 제공되는
    방법.
  3. 제1항에 있어서,
    상기 하나 이상의 필터는 상기 클라이언트 장치에 제공되는 사전정의된 필터 세트로부터 선택되는
    방법.
  4. 제1항에 있어서,
    상기 서버에서 상기 클라이언트 장치에 적용될 수 있는 필터들의 선택의 표시를 송신하는 단계를 더 포함하되,
    상기 기존의 매니페스트에 적용될 상기 하나 이상의 필터의 식별은 적용될 수 있는 필터의 선택 표시를 사용하여 상기 클라이언트 장치에 의해 생성되는
    방법.
  5. 제1항에 있어서,
    상기 기존의 매니페스트에 적용될 상기 하나 이상의 필터의 식별은 비트레이트의 상한 및 하한 모두를 지정하는
    방법.
  6. 제1항에 있어서,
    상기 하나 이상의 필터 중 적어도 하나는 비디오 해상도에 기초하여 필터링하도록 구성된
    방법.
  7. 제1항에 있어서,
    상기 하나 이상의 필터 중 적어도 하나는 오디오 및 비디오 비트레이트 중 적어도 하나에 기초하여 필터링하도록 구성된
    방법.
  8. 제1항에 있어서,
    상기 하나 이상의 필터 중 적어도 하나는 오디오 채널, 코덱 및 언어 중 적어도 하나에 기초하여 필터링하도록 구성된
    방법.
  9. 제1항에 있어서,
    상기 하나 이상의 필터 중 적어도 하나는 타임스탬프에 기초하여 필터링하도록 구성된
    방법.
  10. 컴퓨팅 환경에서, VOD 또는 스트리밍 비디오 자산을 관리하는 방법으로서,
    주어진 자산에 대해, 필터를 식별하는 단계 - 각각의 필터는 상기 자산에 대한 기존의 매니페스트에 적용될 수 있는 컴퓨터 판독가능 제한의 열거를 포함하고, 상기 자산에 대한 상기 기존의 매니페스트에 적용될 수 있는 필터를 식별하는 것은 비디오 해상도에 기초한 필터, 비트레이트에 기초한 필터, 오디오 품질에 기초한 필터, 또는 타임스탬프에 기초한 필터를 포함하는 적어도 하나의 명명, 이전에 저장, 재사용 가능한 필터를 식별함 - 와,
    상기 자산에 대한 상기 기존의 매니페스트에 적용될 수 있는 상기 식별된 필터를 클라이언트 장치에 알리는 단계를 포함하는
    방법.
  11. 제10항에 있어서,
    상기 식별된 필터 중에서 상기 하나 이상의 필터가 상기 기존의 매니페스트에 적용되어야 한다는 표시를 상기 클라이언트 장치로부터 수신하고, 결과적으로, 상기 클라이언트 장치로부터 표시된 상기 하나 이상의 필터를 적용함으로써 필터링되는 상기 기존의 매니페스트의 필터링된 버전을 상기 클라이언트 장치로 송신하는 단계를 더 포함하는
    방법.
  12. 컴퓨팅 환경에서, VOD 또는 스트리밍 비디오 매니페스트를 제공하는 시스템으로서,
    하나 이상의 프로세서와,
    하나 이상의 컴퓨터 판독가능 매체
    를 포함하되,
    상기 하나 이상의 컴퓨터 판독가능 매체는 상기 하나 이상의 프로세서 중 적어도 하나에 의해 실행될 때 상기 시스템으로 하여금
    서버에서, 클라이언트 장치로부터 기존의 매니페스트에 대한 요청을 수신하는 동작 - 상기 매니페스트에 대한 요청은 상기 클라이언트 장치에 이전에 식별된 하나 이상의 필터의 식별을 포함하고, 각각의 필터는 상기 기존의 매니페스트의 필터링된 버전을 생성하기 위해 상기 기존의 매니페스트에 적용될 컴퓨터 판독가능 제한의 열거를 포함하며, 상기 하나 이상의 필터의 식별은 비디오 해상도에 기초한 필터, 비트레이트에 기초한 필터, 오디오 품질에 기초한 필터, 또는 타임스탬프에 기초한 필터를 포함하는 적어도 하나의 명명되고, 이전에 저장된, 재사용 가능한 필터를 지정함 - 과,
    상기 서버에서, 상기 기존의 매니페스트를 식별하는 동작 - 상기 기존의 매니페스트는 클라이언트 장치들에 전달될 수 있는 멀티미디어 자산의 상이한 기존의 부분들을 식별함 - 과,
    상기 서버에서, 상기 하나 이상의 식별된 필터를 상기 기존의 매니페스트에 적용하여 상기 하나 이상의 필터에 의해 지시된 하나 이상의 아이템을 상기 기존의 매니페스트로부터 배제하는 상기 기존의 매니페스트의 필터링된 버전을 상기 기존의 매니페스트로부터 생성하는 동작 - 상기 기존의 매니페스트의 필터링된 버전은 상기 기존의 매니페스트에 열거된 모든 항목보다 적은 열거를 포함함 - 과,
    상기 서버에서, 상기 기존의 매니페스트의 필터링된 버전을 상기 클라이언트 장치로 리턴하는 동작
    을 수행하게 하는 컴퓨터 실행가능 명령어를 포함하는
    시스템.
  13. 제12항에 있어서,
    상기 하나 이상의 필터는 상기 클라이언트 장치에서 생성되고 상기 서버에 제공되는
    시스템.
  14. 제12항에 있어서,
    상기 하나 이상의 필터는 상기 클라이언트 장치에 제공되는 사전정의된 필터 세트로부터 선택되는
    시스템.
  15. 제12항에 있어서,
    상기 하나 이상의 컴퓨터 판독가능 매체는, 상기 하나 이상의 프로세서 중 적어도 하나에 의해 실행될 때 상기 시스템으로 하여금, 상기 서버에서 상기 클라이언트 장치에 적용될 수 있는 필터들의 선택의 표시를 송신하게 하는 컴퓨터 실행가능 명령어를 더 포함하되,
    리턴된 매니페스트에 적용될 상기 하나 이상의 필터의 식별은 적용될 수 있는 필터의 선택 표시를 사용하여 상기 클라이언트 장치에 의해 생성되는
    시스템.
  16. 제12항에 있어서,
    상기 기존의 매니페스트의 리턴된 필터링된 버전에 적용될 상기 하나 이상의 필터의 식별은 비트레이트의 상한 및 하한 모두를 지정하는
    시스템.
  17. 제12항에 있어서,
    상기 하나 이상의 필터 중 적어도 하나는 비디오 해상도에 기초하여 필터링하도록 구성된
    시스템.
  18. 제12항에 있어서,
    상기 하나 이상의 필터 중 적어도 하나는 오디오 및 비디오 비트레이트 중 적어도 하나에 기초하여 필터링하도록 구성된
    시스템.
  19. 제12항에 있어서,
    상기 하나 이상의 필터 중 적어도 하나는 오디오 채널, 코덱 및 언어 중 적어도 하나에 기초하여 필터링하도록 구성된
    시스템.
  20. 제12항에 있어서,
    상기 하나 이상의 필터 중 적어도 하나는 타임스탬프에 기초하여 필터링하도록 구성된
    시스템.
KR1020167034069A 2014-06-06 2015-06-05 매니페스트 속성을 이용하여 미디어 자산을 필터링하는 시스템 KR102330088B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/298,740 2014-06-06
US14/298,740 US10057618B2 (en) 2014-06-06 2014-06-06 System for filtering media manifests using manifest attributes
PCT/US2015/034310 WO2015188021A1 (en) 2014-06-06 2015-06-05 System for filtering media manifests using manifest attributes

Publications (2)

Publication Number Publication Date
KR20170015912A KR20170015912A (ko) 2017-02-10
KR102330088B1 true KR102330088B1 (ko) 2021-11-22

Family

ID=53541890

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167034069A KR102330088B1 (ko) 2014-06-06 2015-06-05 매니페스트 속성을 이용하여 미디어 자산을 필터링하는 시스템

Country Status (6)

Country Link
US (1) US10057618B2 (ko)
EP (1) EP3152914A1 (ko)
KR (1) KR102330088B1 (ko)
CN (1) CN106464926A (ko)
TW (1) TW201607302A (ko)
WO (1) WO2015188021A1 (ko)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2983376A4 (en) * 2013-04-05 2016-12-07 Sony Corp CONTROLLER, CONTROL METHOD, COMPUTER PROGRAM, AND VIDEO TRANSMISSION SYSTEM
US9843828B2 (en) 2015-03-27 2017-12-12 Ericsson Ab System and method for providing non-guaranteed channel content in a switched digital video network using multicast ABR streaming
US9621933B2 (en) * 2015-03-27 2017-04-11 Ericsson Ab System and method for providing VOD content in a switched digital video network using unicast ABR streaming
US9788028B2 (en) 2015-03-27 2017-10-10 Ericsson Ab System and method for providing guaranteed channel content in a switched digital video network using multicast ABR streaming
US9826261B2 (en) 2015-09-09 2017-11-21 Ericsson Ab Fast channel change in a multicast adaptive bitrate (MABR) streaming network using multicast repeat segment bursts in a dedicated bandwidth pipe
US9788053B2 (en) * 2015-09-09 2017-10-10 Ericsson Ab Fast channel change in a multicast adaptive bitrate (MABR) streaming network using HTTP download segment recovery in a dedicated bandwidth pipe
US9826262B2 (en) * 2015-09-09 2017-11-21 Ericsson Ab Fast channel change in a multicast adaptive bitrate (MABR) streaming network using multicast repeat segment bursts in a shared progressive ABR download pipe
US9942290B2 (en) 2015-09-09 2018-04-10 Ericsson Ab Fast channel change in a multicast adaptive bitrate (MABR) streaming network using HTTP download segment recovery in a shared progressive ABR download pipe
US9917690B2 (en) * 2015-10-01 2018-03-13 Time Warner Cable Enterprises Llc Encryption management, content recording management, and playback management in a network environment
US10762284B2 (en) * 2017-08-21 2020-09-01 International Business Machines Corporation Automated summarization of digital content for delivery to mobile devices
KR102232728B1 (ko) 2019-09-04 2021-03-29 네이버 주식회사 로컬 스트리밍 서버를 이용한 스트리밍 콘텐츠의 재생 방법 및 시스템
US11310568B2 (en) * 2020-05-05 2022-04-19 Panasonic Avionics Corporation Systems and methods for securely providing preview samples of media content distributed to in-flight entertainment systems
KR102249185B1 (ko) * 2021-03-22 2021-05-07 네이버 주식회사 로컬 스트리밍 서버를 이용한 스트리밍 콘텐츠의 재생 방법 및 시스템
US11917142B2 (en) * 2021-07-13 2024-02-27 WaveOne Inc. System for training and deploying filters for encoding and decoding
US11876713B1 (en) * 2023-03-13 2024-01-16 Intuit Inc. Client side backoff filter for rate limiting

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2481529A (en) * 2010-06-22 2011-12-28 Vodafone Ip Licensing Ltd Congestion control for streaming data
US20120102184A1 (en) * 2010-10-20 2012-04-26 Sony Corporation Apparatus and method for adaptive streaming of content with user-initiated quality adjustments

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE602004031625D1 (de) 2003-08-07 2011-04-14 Pervenio Ltd Server zum bestimmen und speichern von mobilgerät-leistungsmerkmalen
US20060031187A1 (en) * 2004-08-04 2006-02-09 Advizor Solutions, Inc. Systems and methods for enterprise-wide visualization of multi-dimensional data
US20090030952A1 (en) 2006-07-12 2009-01-29 Donahue Michael J Global asset management
US7873040B2 (en) * 2007-08-20 2011-01-18 Stephen KARLSGODT Internet radio player
WO2009118041A1 (en) 2008-03-26 2009-10-01 Telefonaktiebolaget Lm Ericsson (Publ) Method for providing a television electronic guide
US8370520B2 (en) 2008-11-24 2013-02-05 Juniper Networks, Inc. Adaptive network content delivery system
US9538142B2 (en) 2009-02-04 2017-01-03 Google Inc. Server-side support for seamless rewind and playback of video streaming
CA2774363C (en) 2009-09-15 2020-06-23 Comcast Cable Communications, Llc Dynamic content packaging
WO2011044287A1 (en) * 2009-10-06 2011-04-14 Openwave Systems Inc. Managing network traffic by editing a manifest file and/or using intermediate flow control
WO2011090715A2 (en) 2009-12-28 2011-07-28 Akamai Technologies, Inc. Edge server for format-agnostic streaming architecture
CN101795297B (zh) 2010-03-19 2012-10-31 北京天天宽广网络科技有限公司 基于p2p技术的直播时移系统及其方法
WO2011139305A1 (en) * 2010-05-04 2011-11-10 Azuki Systems, Inc. Method and apparatus for carrier controlled dynamic rate adaptation and client playout rate reduction
US8407753B2 (en) 2010-06-10 2013-03-26 Sony Corporation Content list tailoring for capability of IPTV device
CN102130936B (zh) 2010-08-17 2013-10-09 华为技术有限公司 一种在动态http流传输方案中支持时移回看的方法和装置
US8677428B2 (en) * 2010-08-20 2014-03-18 Disney Enterprises, Inc. System and method for rule based dynamic server side streaming manifest files
US8892763B2 (en) 2011-01-05 2014-11-18 Motorola Mobility Llc Live television playback optimizations
US8990351B2 (en) 2011-04-20 2015-03-24 Mobitv, Inc. Real-time processing capability based quality adaptation
US20130042013A1 (en) 2011-08-10 2013-02-14 Nokia Corporation Methods, apparatuses and computer program products for enabling live sharing of data
US8787570B2 (en) 2011-08-31 2014-07-22 Sonic Ip, Inc. Systems and methods for automatically genenrating top level index files
US8676952B2 (en) * 2011-09-13 2014-03-18 Ericsson Television Inc. User adaptive HTTP stream manager and method for using same
US8719440B2 (en) 2011-09-14 2014-05-06 Mobitv, Inc. Intelligent device media stream caching
US9338482B2 (en) 2011-11-30 2016-05-10 Mobitv, Inc. Enhanced group of pictures (GOP) alignment in media stream variants
US9769281B2 (en) 2011-12-19 2017-09-19 Google Technology Holdings LLC Method and apparatus for determining a multimedia representation for a multimedia asset delivered to a client device
US9313528B2 (en) 2012-01-11 2016-04-12 Sony Corporation Filtering live streaming contents and services
US20130246578A1 (en) * 2012-03-16 2013-09-19 Cisco Technology, Inc. Adaptive Bit Rate Optimizations When Joining Single Profile Multicast Streams
US9537920B2 (en) 2012-05-18 2017-01-03 Google Technology Holdings LLC Enforcement of trick-play disablement in adaptive bit rate video content delivery
BR122015005194A2 (pt) 2012-06-28 2019-08-20 Ericsson Ab Método e sistema para inserção de anúncio em entrega de mídia ao vivo over the top
US8959241B2 (en) 2012-07-23 2015-02-17 Adobe Systems Incorporated Method and apparatus for performing server-side splicing for live streaming media
US8495675B1 (en) * 2012-07-30 2013-07-23 Mdialog Corporation Method and system for dynamically inserting content into streaming media

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2481529A (en) * 2010-06-22 2011-12-28 Vodafone Ip Licensing Ltd Congestion control for streaming data
US20120102184A1 (en) * 2010-10-20 2012-04-26 Sony Corporation Apparatus and method for adaptive streaming of content with user-initiated quality adjustments

Also Published As

Publication number Publication date
US20150358662A1 (en) 2015-12-10
CN106464926A (zh) 2017-02-22
KR20170015912A (ko) 2017-02-10
US10057618B2 (en) 2018-08-21
TW201607302A (zh) 2016-02-16
WO2015188021A1 (en) 2015-12-10
EP3152914A1 (en) 2017-04-12

Similar Documents

Publication Publication Date Title
KR102330088B1 (ko) 매니페스트 속성을 이용하여 미디어 자산을 필터링하는 시스템
US9491496B2 (en) Systems and methods for delivering content to a media content access device
US20160080470A1 (en) Server-side playlist stitching
US10110960B2 (en) Methods and systems for facilitating media-on-demand-based channel changing
JP6064249B2 (ja) 動的適応ストリーミングオーバーハイパーテキスト転送プロトコルクライアント挙動フレームワークおよびセッション管理の実装
KR101685515B1 (ko) 다운로딩 및 스트리밍을 위한 저장 및 전송 콘텐츠
US9639246B2 (en) Seamless playback of composite media
US20170195744A1 (en) Live-stream video advertisement system
US12058389B2 (en) Transcoding of video content
US20180131738A1 (en) Cloud-based video delivery
US10904642B2 (en) Methods and apparatus for updating media presentation data
US20150128162A1 (en) Real-time tracking collection for video experiences
US10880353B2 (en) Systems and methods for cloud storage direct streaming
US10681431B2 (en) Real-time interstitial content resolution and trick mode restrictions
CN107743708A (zh) 用于存储媒体段的基于目录限制的系统和方法
US9705955B2 (en) Period labeling in dynamic adaptive streaming over hypertext transfer protocol
KR20180100716A (ko) 이벤트 스트리밍 프레젠테이션 확립
US10038926B2 (en) Server-side blackout enforcement
US9179173B1 (en) Systems and methods for processing a traffic log having an optional-promotion log entry
US12058421B2 (en) Content aggregation
WO2016062092A1 (zh) 一种实现加密视频处理的方法及移动终端
US20160357875A1 (en) Techniques for promoting and viewing social content written by nearby people
US20150172347A1 (en) Presentation of content based on playlists
US9936264B1 (en) Method of restricting offline video playback to include advertisements
KR101744974B1 (ko) 하이퍼텍스트 전송 프로토콜 스트리밍 서비스에서 복수의 컨텐츠 구성 요소에 대한 공통 속성 표현 방법 및 장치

Legal Events

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