KR20190039986A - 상이한 소스로부터의 전송을 위해 재스케줄링된 미디어 자산을 저장하기 위한 시스템 및 방법 - Google Patents

상이한 소스로부터의 전송을 위해 재스케줄링된 미디어 자산을 저장하기 위한 시스템 및 방법 Download PDF

Info

Publication number
KR20190039986A
KR20190039986A KR1020197006922A KR20197006922A KR20190039986A KR 20190039986 A KR20190039986 A KR 20190039986A KR 1020197006922 A KR1020197006922 A KR 1020197006922A KR 20197006922 A KR20197006922 A KR 20197006922A KR 20190039986 A KR20190039986 A KR 20190039986A
Authority
KR
South Korea
Prior art keywords
media asset
content source
stored
media
identifier
Prior art date
Application number
KR1020197006922A
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 KR20190039986A publication Critical patent/KR20190039986A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/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/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/70Information retrieval; Database structures therefor; File system structures therefor of video data
    • G06F16/78Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/7867Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using information manually generated, e.g. tags, keywords, comments, title and artist information, manually generated time, location and usage information, user ratings
    • 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/231Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
    • 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/232Content retrieval operation locally within server, e.g. reading video streams from disk arrays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2402Monitoring of the downstream path of the transmission network, e.g. bandwidth available
    • 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
    • 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/27Server based end-user applications
    • H04N21/278Content descriptor database or directory service for end-user access
    • 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/432Content retrieval operation from a local storage medium, e.g. hard-disk
    • 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/434Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
    • H04N21/4343Extraction or processing of packetized elementary streams [PES]
    • 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/434Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
    • H04N21/4345Extraction or processing of SI, e.g. extracting service information from an MPEG stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • H04N21/44029Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display 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/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/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/44209Monitoring of downstream path of the transmission network originating from a server, e.g. bandwidth variations of a wireless network
    • 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/458Scheduling content for creating a personalised stream, e.g. by combining a locally stored advertisement with an incoming stream; Updating operations, e.g. for OS modules ; time-related management operations
    • 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/835Generation of protective data, e.g. certificates
    • H04N21/8352Generation of protective data, e.g. certificates involving content or source identification data, e.g. Unique Material Identifier [UMID]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8456Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • H04N21/8547Content authoring involving timestamps for synchronizing content
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/765Interface circuits between an apparatus for recording and another apparatus

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • Library & Information Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

하나의 콘텐츠 소스로부터의 저장되도록 스케줄링된 미디어 자산이 다른 콘텐츠 소스로 재스케줄링되었다고 효율적으로 결정하기 위한 시스템들 및 방법들. 예를 들어, 현재 수신되고 있는 미디어 자산을 식별해주는, 미디어 자산과 함께 수신된, 데이터 패킷들의 내용(예컨대, 이벤트 정보 테이블 내의 필드)을 조사함으로써, 셋톱 박스 또는 다른 사용자 장비 디바이스 상에서 실행되는 미디어 안내 애플리케이션은 저장되도록 스케줄링된 미디어 자산이 원래 스케줄링된 콘텐츠 소스로부터 현재 전송되고 있지 않다는 것을 실시간으로 결정할 수 있다. 미디어 자산이 원래 스케줄링된 콘텐츠 소스로부터 이용가능하지 않다고 결정하는 것에 응답하여, 미디어 안내 애플리케이션은 미디어 자산이 재스케줄링된 콘텐츠 소스를 결정하고 그 콘텐츠 소스로부터의 미디어 자산을 저장하기 위해 다른 콘텐츠 소스로부터 수신된 패킷들을 서치할 수 있다.

Description

상이한 소스로부터의 전송을 위해 재스케줄링된 미디어 자산을 저장하기 위한 시스템 및 방법
미디어가 소비자들에게 전달될 수 있는 매우 다양하고 많은 수의 콘텐츠 소스들이 주어진 경우, 콘텐츠 제공자들은 그들의 콘텐츠를 보는 시청자들의 수를 최적화하기 위해 프로그래밍을 상이한 콘텐츠 소스들로 종종 이동시킨다. 예를 들어, 콘텐츠 제공자는 하나의 프로그램을 전문 케이블 채널(예컨대, NBCSN)에 스케줄링할 수 있지만, 콘텐츠 제공자에 의해 예견된 것보다 프로그램에 대한 보다 큰 관심(예컨대, 대규모 소셜 미디어 팔로잉)으로 인해, 그 프로그램이 보다 많은 시청자들이 수신하는 콘텐츠 소스에서(예컨대, NBC에서) 그리고/또는 상이한 시간에 전국적으로 전송될 수 있다. 프로그램이 시작되도록 스케줄링되기 훨씬 전에 스케줄 변경(예컨대, 프로그램이 상이한 채널 및/또는 시간으로 이동됨)이 결정되는 상황에서, 콘텐츠 제공자들은 프로그램 리스팅들 데이터베이스(program listings database)를 업데이트할 수 있고, 이 프로그램 리스팅들 데이터베이스는 이어서 사용자가 이용가능한 올바른 콘텐츠를 통보받도록 보장하기 위해 셋톱 박스 또는 다른 사용자 디바이스에 제공된다(예컨대, 프로그램 리스팅들 데이터베이스로부터 다운로드됨). 사용자가 프로그램이 저장되도록 스케줄링한 경우, 녹화 능력(recording capabilities)을 갖는 셋톱 박스는 수신된 스케줄 변경 정보에 기초하여 올바른 소스로부터의 프로그램을 자동으로 저장할 수 있다. 그렇지만, 특정의 프로그램이 실시간으로 상이한 채널로 재스케줄링되거나 "범핑되는(bumped)" 제2 상황이 존재하며, 이는 백-투-백 스케줄링된 스포츠 이벤트들에서 흔하다.
(프로그램이 방송되거나 시작될 예정일 때) 주어진 프로그램이 실시간으로 상이한 채널로 범핑되는 상황에서, 콘텐츠 제공자는 앞서 설명된 바와 같이 프로그램 리스팅 데이터베이스를 업데이트하기에 충분한 시간이 없을 수 있다. 특히, 종래의 시스템들은 데이터베이스가 업데이트되고 업데이트들이 셋톱 박스로 다운로드되는 동안 상당한 지연 시간(lag time)을 초래한다. 이러한 지연 시간으로 인해 셋톱 박스가 프로그램의 세그먼트 또는 어쩌면 그 전체를 저장하지 못하게 된다. 지연 시간을 완화시키기 위해, 일부 시스템들은 프로그램에 대한 스케줄 변경이 프로그램의 내용(예컨대, 아나운서가 스포츠 이벤트가 오래 이어졌기 때문에, 다음의 스케줄링된 스포츠 이벤트의 시작이 상이한 채널에서 있을 것이라고 말하는 것)에 기초하여 실시간으로 일어났다고 결정하기 위해 객체 및 음성 인식을 사용한다. 그렇지만, 그러한 시스템들은 계산 집약적이고, 잘 캘리브레이션될(well-calibrated) 때에도, 항상 정확한 것은 아니다. 부가적으로, 이러한 시스템들은 아나운서들에 의해 제시되는 정보에/화면에 의존하며; 그것들은 아나운서가 언급하지 못하는 경우 스케줄 변경을 결정할 수 없다.
그에 따라, 하나의 콘텐츠 소스로부터의 저장되도록 스케줄링된 미디어 자산이 다른 콘텐츠 소스로 재스케줄링되었다고 결정하기 위한 시스템들 및 방법들이 제시된다. 시스템들 및 방법들은 미디어 자산이 재스케줄링되었다는 것 및 미디어 자산이 재스케줄링된 소스를 보다 효율적으로 결정하는 데 사용될 수 있다. 예를 들어, 현재 수신되고 있는 미디어 자산을 식별해주는, 미디어 자산과 함께 수신된, 데이터 패킷들의 내용(예컨대, 이벤트 정보 테이블 내의 필드)을 조사함으로써, 셋톱 박스 또는 다른 사용자 장비 디바이스 상에서 실행되는 미디어 안내 애플리케이션은 저장되도록 스케줄링된 미디어 자산이 원래 스케줄링된 콘텐츠 소스로부터 현재 전송되고 있지 않다는 것을 실시간으로 결정할 수 있다. 미디어 자산이 원래 스케줄링된 콘텐츠 소스로부터 이용가능하지 않다고 결정하는 것에 응답하여, 미디어 안내 애플리케이션은 미디어 자산이 재스케줄링된 콘텐츠 소스를 결정하고 그 콘텐츠 소스로부터의 미디어 자산을 저장하기 위해 다른 콘텐츠 소스로부터 수신된 패킷들을 서치(search)할 수 있다. 일부 실시예들에서, 미디어 안내 애플리케이션은 어느 콘텐츠 소스들을 먼저 서치할지를, 원래 스케줄링된 콘텐츠 소스에 대한 그들의 유사성에 기초하여, 선택적으로 선택한다(예컨대, 프로그램이 ESPN에 원래 스케줄링된 경우, ESPN2는 먼저 서치된 콘텐츠 소스들 중에 있을 수 있다).
일부 양태들에서, 미디어 안내 애플리케이션은 스케줄링된 시간 간격 동안 복수의 콘텐츠 소스들 중 제1 콘텐츠 소스로부터의 제1 미디어 자산을 저장하라는 사용자 요청을 수신한다. 예를 들어, 미디어 안내 애플리케이션은 오후 4시 내지 6시의 "ESPN" 채널로부터 사용자 입력 인터페이스(예컨대, 리모콘)를 통해 특정의 축구 경기 "Michigan 대 USC"를 저장하기 위한 옵션의 사용자 선택을 수신할 수 있다. 사용자는, 특정 팀의 모든 축구 경기들에 대한 시리즈 녹화 옵션(series recording option)을 통해, 모바일 디바이스를 사용하여 셋톱 박스로부터 원격적으로, 또는 저장될 프로그램들을 선택하기 위한 임의의 다른 방법을 통해, 축구 경기를 프로그램 리스팅 화면에(예컨대, 그리드 가이드에) 저장하기 위한 옵션을 선택할 수 있다.
미디어 안내 애플리케이션은 이어서 스케줄링된 시간 간격 동안 제1 콘텐츠 소스로부터의 제1 미디어 자산을 데이터 구조에 엔트리로서 저장하라는 사용자 요청을 저장하고, 여기서 엔트리는 현재의 콘텐츠 소스를 지시하는 제1 필드를 포함한다. 예를 들어, 미디어 안내 애플리케이션은 사용자가 저장하도록 요청한 미디어 자산들 및 미디어 자산들이 전송을 위해 스케줄링되어 있는 스케줄링된 간격들의 데이터베이스를 유지할 수 있으며, 이 데이터베이스는 스토리지에 로컬적으로 위치되거나 통신 네트워크를 통해 원격적으로 액세스가능할 수 있다. 특정 예로서, 데이터베이스는 각각의 행이 저장을 위해 스케줄링된 미디어 자산의 식별자, 시작 시간, 종료 시간, 및 미디어 자산이 이용가능한 콘텐츠 소스(즉, 현재의 콘텐츠 소스)를 개별적인 셀들(즉, 필드들)에 포함하는 테이블로 배열될 수 있다. 미디어 안내 애플리케이션은, SQL 스크립트와 같은, 데이터베이스 질의 언어 스크립트를 실행함으로써 이 정보를 판독/기입할 수 있다. 예를 들어, 미디어 안내 애플리케이션이, 이하에서 추가로 설명되는 바와 같이, 제1 미디어 자산이 상이한 콘텐츠 소스로 재스케줄링되었다고 결정하는 경우, 미디어 안내 애플리케이션은 현재의 콘텐츠 소스를 포함하는 필드를 상이한 콘텐츠 소스로 업데이트할 수 있다.
미디어 안내 애플리케이션은 이어서, 스케줄링된 시간 간격 동안, 제1 콘텐츠 소스로부터의 비디오와 함께 수신된 데이터 패킷들을 모니터링한다. 예를 들어, 미디어 자산에 대한 스케줄링된 시간 간격이 시작되었다고(예컨대, 오후 4시라고) 결정할 때, 미디어 안내 애플리케이션은 제1 콘텐츠 소스(예컨대, ESPN)로부터 수신된 데이터 패킷들을 체크하여 축구 경기가 제1 콘텐츠 소스로부터 현재 이용가능한지(예컨대, 축구 경기가 ESPN에서 방송 중인지)를 결정하기 위해 프로그램 스크립트를 실행할 수 있다.
미디어 안내 애플리케이션은 모니터링된 데이터 패킷들로부터 제1 미디어 자산 지시자를 추출한다. 예를 들어, 미디어 안내 애플리케이션은, 선언적 "Select" 커맨드를 이용하여 SQL 스크립트를 실행함으로써, 미디어 자산에 대한 오디오비주얼 데이터와 함께 데이터 패킷에서 전송된 테이블 내의 필드로부터 미디어 자산 지시자를 추출할 수 있다. 식별자는 제1 미디어 자산에 고유하여, 미디어 안내 애플리케이션이 제1 미디어 자산을 다른 미디어 자산들과 구별할 수 있게 해주며, 식별자는 미디어 자산의 이름이거나, 콘텐츠 소스로부터의 스케줄링된 전송 시간에 기초한 자동으로 해싱된 정수(automatically hashed integer)일 수 있다. 일부 실시예들에서, 미디어 안내 애플리케이션은 제1 콘텐츠 소스로부터의 비디오에 관련된 정보를 포함하는 테이블을 수신한다. 예를 들어, 테이블은, 프로그램의 지시자(예컨대, 프로그램에 대응하는 고유한 영숫자 코드) 및 프로그램의 설명과 같은, 제1 콘텐츠 소스로부터 현재 수신되고 있는 프로그램에 관련된 메타데이터를 포함하는 행들로 조직화될 수 있다. 미디어 안내 애플리케이션은 이어서 제1 미디어 자산 지시자에 대응하는 테이블 내의 필드로부터의 값을 리트리브(retrieve)할 수 있다. 예를 들어, 앞서 설명된 바와 같이, 미디어 안내 애플리케이션은, "FTBL1485"와 같은, 지시자를 리트리브할 수 있다.
미디어 안내 애플리케이션은 추출된 제1 미디어 자산 지시자를 제1 미디어 자산의 식별자와 비교한다. 예를 들어, 미디어 안내 애플리케이션은 미디어 자산들의 식별자들을 포함하는 데이터베이스에 액세스하고, 미디어 자산 스트림으로부터 추출된 미디어 자산 지시자가 데이터베이스에 저장된 제1 미디어 자산의 식별자와 매칭하는지를 (예컨대, 문자 매칭을 통해) 결정할 수 있다. 일부 실시예들에서, 미디어 안내 애플리케이션은, 사용자 요청으로, 제1 미디어 자산의 식별자를 저장한다. 예를 들어, 미디어 안내 애플리케이션이 축구 경기를 저장하는 사용자 선택을 수신할 때, 미디어 안내 애플리케이션은 축구 경기를 제공하는 콘텐츠 소스로부터의 것일 수 있는 축구 경기의 식별자를 저장한다. 미디어 안내 애플리케이션은 제1 미디어 자산의 식별자의 문자들을 추출된 제1 미디어 자산 지시자의 문자들과 비교할 수 있다. 예를 들어, 미디어 안내 애플리케이션은, "FTBL1485"와 같은, 추출된 지시자의 각각의 문자를 저장된 식별자와 비교할 수 있다. 임계 개수 또는 퍼센티지의 문자들이 매칭하는 경우, 미디어 안내 애플리케이션은 추출된 지시자가 저장된 식별자와 매칭한다고 결정할 수 있다.
미디어 안내 애플리케이션은, 추출된 미디어 자산 지시자가 제1 미디어 자산의 식별자에 대응하지 않는다고 결정하는 것에 응답하여, 제1 미디어 자산의 식별자에 대응하는 제2 미디어 자산 지시자를 포함하는 제2 데이터 패킷이 있는지 복수의 콘텐츠 소스들 상에서 수신된 데이터 패킷들을 서치한다. 예를 들어, 미디어 안내 애플리케이션은 ESPN으로부터 현재 수신되는 미디어 자산으로부터의 추출된 지시자가 축구 경기의 식별자와 매칭하지 않는 것에 기초하여(예컨대, 앞서 설명된 바와 같이 데이터베이스와의 비교에 기초하여) ESPN에서 오후 4시에 방송하기로 스케줄링된 축구 경기가 현재 방송 중이 아니라고 결정할 수 있다. 이 결정에 응답하여, 미디어 안내 애플리케이션은, 앞서 설명된 바와 같이, 데이터 패킷들로부터 지시자들을 추출하고 추출된 지시자들을 미디어 자산의 식별자와 비교함으로써 미디어 자산이 이용가능한 콘텐츠 소스를 발견하기(find) 위해 사용자가 가입한 다른 콘텐츠 소스들을 스캔할 수 있다.
일부 실시예들에서, 제2 데이터 패킷이 있는지 복수의 콘텐츠 소스들 상에서 수신된 데이터 패킷들을 서치할 때, 미디어 안내 애플리케이션은 복수의 콘텐츠 소스들에 대한 정보를 포함하는 데이터베이스에 액세스하고, 여기서 그 정보는 복수의 콘텐츠 소스들의 각각의 콘텐츠 소스와 유사한 복수의 콘텐츠 소스들의 서브세트들의 지시(indications)를 포함한다. 예를 들어, 미디어 안내 애플리케이션은 메모리에 로컬적으로 또는 통신 네트워크를 통해 액세스가능한 미디어 안내 데이터 소스에 원격적으로 저장된 데이터베이스에 액세스할 수 있다. 데이터베이스는 자기 참조(self-referencing) 방식으로 설계될 수 있으며, 여기서 각각의 콘텐츠 소스에 대한 식별자들 및 정보는 단일 테이블에 비-연속적으로(non-contiguously) 포함되고 테이블 내의 유사한 콘텐츠 소스들에 대응하는 적절한 필드들에 포인터들을 통해 링크될 수 있다. 미디어 안내 애플리케이션은 이어서 제2 콘텐츠 소스가 제1 콘텐츠 소스와 유사하다는 지시를 제1 콘텐츠 소스와 연관된 데이터베이스 내의 필드로부터 리트리브한다. 예를 들어, 미디어 안내 애플리케이션은 제1 콘텐츠 소스와 연관된 필드로부터 제2 콘텐츠 소스의 식별자를 (예컨대, 선언적 "Select" 명령문을 통해) 리트리브하는, SQL 스크립트와 같은, 데이터베이스 질의 언어 스크립트를 실행할 수 있다. 미디어 안내 애플리케이션은 이어서 제1 미디어 자산의 식별자에 대응하는 제2 미디어 자산 지시자가 있는지 제2 콘텐츠 소스로부터의 데이터 패킷들을 서치한다. 예를 들어, 앞서 설명된 바와 같이, 미디어 안내 애플리케이션은 제2 콘텐츠 소스로부터 현재 전송되고 있는 미디어 자산의 지시자를 추출하고 그것이 제1 미디어 자산의 식별자와 매칭하는지를 결정한다.
미디어 안내 애플리케이션은, 복수의 콘텐츠 소스들 중 제2 콘텐츠 소스로부터 수신된 제2 데이터 패킷이 제1 미디어 자산의 식별자에 대응하는 제2 미디어 자산 지시자를 포함한다고 결정하는 것에 응답하여, 제1 미디어 자산이 제2 콘텐츠 소스로부터 전송되고 있음을 지시하기 위해 저장된 엔트리의 제1 필드 내의 현재의 콘텐츠 소스를 업데이트한다. 예를 들어, 축구 경기가 ESPN 대신에 ESPN2에서 방송 중이라고 콘텐츠 소스 "ESPN2"로부터 추출된 데이터 패킷들로부터 결정할 때, 미디어 안내 애플리케이션은 축구 경기가 상이한 콘텐츠 소스인 ESPN2로부터 방송되고 있음을 반영하기 위해 데이터 구조에 저장된 엔트리 내의 현재의 콘텐츠 소스에 대응하는 필드를 업데이트할 수 있다. 특정 예로서, 미디어 안내 애플리케이션은 축구 경기에 대한 저장된 엔트리와 연관된 제1 필드에 저장된 값을 업데이트하기 위해 프로그램 스크립트를 실행할 수 있다.
미디어 안내 애플리케이션은 저장된 엔트리의 제1 필드에 지시된 현재의 콘텐츠 소스로부터의 제1 미디어 자산을 저장한다. 예를 들어, 미디어 안내 애플리케이션은 데이터베이스 내의 엔트리의 제1 필드에 저장되어 있는 업데이트된 현재의 콘텐츠 소스 값에 기초하여 ESPN 대신에 ESPN2로부터의 축구 경기를 저장할 수 있다. 일부 실시예들에서, 미디어 안내 애플리케이션은 제1 미디어 자산이 다시 제1 콘텐츠 소스 또는 다른 콘텐츠 소스로 스케줄링되었는지를 결정하기 위해 제2 콘텐츠 소스로부터 현재 수신되고 있는 미디어 자산의 데이터 패킷들을 계속 모니터링할 수 있다. 예를 들어, 축구 경기가 ESPN2로 재스케줄링된 이유가 오후 4시에 종료될 것으로 스케줄링된 ESPN에서의 스포츠 이벤트가 오래 이어졌기 때문일 수 있다. 이 상황에서, 제2 콘텐츠 소스(예컨대, ESPN2)로부터 저장하는 동안, 미디어 안내 애플리케이션은 축구 경기가 ESPN2에서 여전히 수신되고 있는지를 계속 모니터링할 수 있다. 10분 후에, ESPN에서의 경기가 끝날 수 있고 "Michigan 대 USC" 축구 경기가 ESPN2로부터 다시 ESPN으로 스케줄링될 수 있다. 스케줄링된 시간 간격 동안 미디어 자산의 오디오비주얼 데이터와 함께 수신된 미디어 자산 지시자를 계속 모니터링함으로써, 미디어 안내 애플리케이션은 언제라도 콘텐츠 소스 변경을 검출하고, 미디어 자산이 현재 이용가능한 콘텐츠 소스로부터 미디어 자산을 발견하여 저장할 수 있다.
일부 실시예들에서, 미디어 안내 애플리케이션은 저장되도록 스케줄링된 미디어 자산이 그의 스케줄링된 타임슬롯보다 오래 이어졌고 그리고/또는 그의 스케줄링된 타임슬롯 이전에 시작되었는지를 체크한다. 미디어 안내 애플리케이션은, 스케줄링된 시간 간격 외의 제1 시간 간격 동안, 제1 콘텐츠 소스로부터의 비디오와 함께 수신된 데이터 패킷들을 모니터링한다. 예를 들어, 미디어 안내 애플리케이션은 프로그램이 시작되도록 스케줄링된 것보다 설정된 시간 전에 제1 콘텐츠 소스로부터의 비디오와 함께 수신된 데이터 패킷들을 모니터링할 수 있으며, 이 설정된 시간은 사용자 커스터마이즈가능(user-customizable)할 수 있다(예컨대, 미디어 자산이 시작되도록 스케줄링된 것보다 30분 전). 예시적인 예로서, 오후 4시에 종료되도록 스케줄링된 스포츠 이벤트가 예상보다 일찍 종료되는 경우, 미디어 안내 애플리케이션은 경기전 장면(footage) 또는 정보를 캡처할 수 있다. 대안적으로 또는 부가적으로, 미디어 안내 애플리케이션은 미디어 자산의 스케줄링된 종료 시간 이후에 제1 콘텐츠 소스로부터의 비디오와 함께 수신된 데이터 패킷들을 모니터링한다. 예를 들어, 저장되도록 스케줄링된 제1 미디어 자산 자체가 스케줄링된 종료 시간을 넘어 이어질 수 있다. 이 상황에서, 미디어 안내 애플리케이션은 앞서 설명된 바와 같이 제1 콘텐츠 소스로부터 수신된 데이터 패킷들을 계속 모니터링하고 제1 콘텐츠 소스로부터의 비디오와 함께 수신된 데이터 패킷들이 더 이상 미디어 자산의 식별자와 매칭하지 않을 때까지(예컨대, 미디어 자산이 종료되었음을 지시함) 미디어 자산을 계속 저장할 수 있다. 대안적으로 또는 부가적으로, 미디어 안내 애플리케이션은 종료 시에 또는 스케줄링된 시간 간격 후에 앞서 설명된 바와 같이 복수의 콘텐츠 소스들을 서치함으로써 미디어 자산이 종료되었고 다른 콘텐츠 소스로 재스케줄링되지 않았다고 결정할 수 있다.
일부 실시예들에서, 미디어 자산이 상이한 콘텐츠 소스들로부터의 다수의 세그먼트들에 저장될 수 있다. 예를 들어, 축구 경기가 ESPN2에서 시작될 수 있지만, ESPN에서 오래 이어진 프로그램이 끝났기 때문에 5분 후에 ESPN으로 이동될 수 있다. 이러한 상황에서, 미디어 안내 애플리케이션은, 앞서 논의된 바와 같이, 제2 콘텐츠 소스로부터의 미디어 자산의 제1 세그먼트를 저장한다. 예를 들어, 미디어 안내 애플리케이션은, 원래 스케줄링된 바와 같은 ESPN 대신에, 경기의 시작 시에 ESPN2로부터 수신된 축구 경기를 저장할 수 있다. 미디어 안내 애플리케이션은 이어서 제1 콘텐츠 소스로부터 수신된 제1 미디어 자산의 제2 세그먼트를 저장한다. 예를 들어, 미디어 안내 애플리케이션은, 앞서 논의된 방법들을 사용하여, 축구 경기가 다시 ESPN으로 스케줄링되었다고 결정하고 ESPN으로부터 수신된 축구 경기의 제2 세그먼트를 저장한다. 미디어 안내 애플리케이션은 이어서 제1 세그먼트와 제2 세그먼트를, 단일의 저장된 파일로, 스티칭(stitching)한다. 예를 들어, 미디어 안내 애플리케이션은 전체 경기에 대한 단일의 저장된 파일이 사용자에 의해 액세스될 수 있도록 축구 경기의 2개의 저장된 세그먼트를 결합시킨다. 미디어 안내 애플리케이션은 단일의 저장된 파일이 제1 콘텐츠 소스 및 제2 콘텐츠 소스로부터 생성되었다는 지시를, 단일의 저장된 파일에, 부가적으로 저장한다. 예를 들어, 미디어 안내 애플리케이션은 저장된 파일이 다수의 콘텐츠 소스들로부터 만들어졌다는 지시를 저장할 수 있으며, 따라서 사용자는 그 사실을 경고받게 된다.
일부 실시예들에서, 2개의 저장된 세그먼트를 함께 스티칭할 때, 미디어 안내 애플리케이션은 제1 세그먼트와 함께 저장된 메타데이터로부터 제1 세그먼트에 대한 제1 타임 스탬프를 추출한다. 예를 들어, 미디어 안내 애플리케이션은 제1 세그먼트가 "19:00:00"(HH:MM:SS)에서 시작하여 저장되었음을 추출할 수 있다. 미디어 안내 애플리케이션은 제2 세그먼트와 함께 저장된 메타데이터로부터 제2 세그먼트에 대한 제2 타임 스탬프를 추출한다. 예를 들어, 미디어 안내 애플리케이션은 제2 세그먼트가 "19:05:00"(HH:MM:SS)에서 시작하여 저장되었음을 추출할 수 있다. 미디어 안내 애플리케이션은 이어서 제1 타임 스탬프와 제2 타임 스탬프를 비교하여 어느 것이 더 빠른지를 결정한다. 예를 들어, 미디어 안내 애플리케이션은, 2개의 추출된 타임 스탬프를 감산하는 것에 기초하여, 감산으로부터 획득된 결과가 포지티브인지 네거티브인지에 기초하여 어느 것이 더 빠른지를 결정할 수 있다. 미디어 안내 애플리케이션은, 제1 타임 스탬프가 더 빠르다고 결정하는 것에 응답하여, 제2 세그먼트를 제1 세그먼트의 끝부분에 추가한다. 예를 들어, 미디어 안내 애플리케이션은 ESPN으로부터 저장된 제2 세그먼트의 시작부분을 축구 경기의 ESPN2으로부터 저장된 제1 세그먼트의 끝부분에 스티칭한다.
일부 실시예들에서, 미디어 안내 애플리케이션은 저장된 제1 미디어 자산의 지속기간을 스케줄링된 시간 간격과 비교한다. 예를 들어, 미디어 안내 애플리케이션은 저장된 축구 경기가 1시간의 지속기간을 갖는다고 결정하고, 이것을, 2시간일 수 있는, 축구 경기에 대한 스케줄링된 시간 간격과 비교할 수 있다. 미디어 안내 애플리케이션은, 저장된 미디어 자산의 지속기간이 스케줄링된 시간 간격보다 짧다고 결정하는 것에 응답하여, 저장된 미디어 자산의 지속기간과 스케줄링된 시간 간격 사이의 차이를 임계 차이와 비교한다. 예를 들어, 미디어 안내 애플리케이션은 저장된 축구 경기가 축구 경기에 대한 스케줄링된 간격보다 짧고 차이(예컨대, 1시간)가 임계 차이(예컨대, 5분)보다 크다고 결정할 수 있다. 미디어 안내 애플리케이션은, 저장된 미디어 자산의 지속기간과 스케줄링된 시간 간격 사이의 차이가 임계 차이를 충족시킨다고 결정하는 것에 응답하여, 저장된 제1 미디어 자산이 완전하지 않다고 결정한다. 예를 들어, 미디어 안내 애플리케이션은, 스케줄링된 간격과 실제로 저장된 것 사이에, 임계 차이보다 큰, 1시간 차이가 있기 때문에, 저장된 축구 경기가 완전하지 않다고 결정한다.
일부 실시예들에서, 저장된 미디어 자산의 지속기간과 스케줄링된 시간 간격 사이의 차이가 임계 차이를 충족시킨다고 결정하는 것에 응답하여, 미디어 안내 애플리케이션은, 미디어 안내 데이터베이스로부터 리트리브된 미디어 자산 리스팅들로부터, 제1 미디어 자산이 미래의 시간에 이용가능한지를 부가적으로 결정한다. 예를 들어, 미디어 안내 애플리케이션은 임계치(예컨대, 5분)를 초과하는 축구 경기의 일부분(예컨대, 1시간)이 저장되지 않았을 수 있다고 결정하고, 이어서 미디어 자산이 미래의 시간에 이용가능한지(예컨대, 재방송(re-run))를 결정하기 위해 미디어 안내 데이터 소스로부터 리스팅들을 리트리브할 수 있다. 미디어 안내 애플리케이션은 미디어 자산이 미래의 시간에 이용가능하다고 결정을 내리기 위해 미디어 자산의 식별자의 문자들을 개별 리스팅들과 비교할 수 있다. 미디어 안내 애플리케이션은, 제1 미디어 자산이 미래의 시간에 제3 콘텐츠 소스로부터 이용가능하다고 결정하는 것에 응답하여, 제3 콘텐츠 소스로부터의 제1 미디어 자산을 저장하라는 제2 요청을 (예컨대, 앞서 논의된 바와 같은, 테이블과 같은, 데이터 구조에) 저장한다. 예를 들어, 미디어 안내 애플리케이션은 미디어 자산이, 제1, 제2, 또는 상이한 콘텐츠 소스일 수 있는, 제3 콘텐츠 소스로부터 이용가능하다고 결정하고, 제3 콘텐츠 소스(예컨대, ABC)로부터의 미디어 자산을 저장하라는 요청을 스케줄링할 수 있다. 미디어 자산의 재방송을 스케줄링함으로써, 미디어 안내 애플리케이션은 원래의 저장된 미디어 자산이 완전했는지(예컨대, 그것이 그의 스케줄링된 간격보다 일찍 종료되었는지) 또는 그것이 미디어 자산의 일부분을 누락했는지를 결정할 수 있다.
일부 실시예들에서, 미디어 안내 애플리케이션은 미래의 시간에 스케줄링된 미디어 자산의 일부분만을 저장한다. 미디어 안내 애플리케이션은, 저장된 미디어 자산의 복수의 프레임들 중 각각의 프레임에 대해 저장된 메타데이터로부터, 복수의 프레임들 중 각각의 프레임과 연관된 시간들을 리트리브한다. 예를 들어, 미디어 안내 애플리케이션에 의해 수신되고 저장된 각각의 프레임은 프레임이 콘텐츠 소스로부터 전송된 시간을 갖는 관련 메타데이터(예컨대, HH:MM:SS:FF 포맷으로 되어 있음, 여기서 FF는 프레임 번호임)를 가질 수 있다. 미디어 안내 애플리케이션은 제1 미디어 자산의 일부분이 제1 프레임과 제2 프레임 사이에서 누락되었다고 결정할 수 있다. 예를 들어, 미디어 안내 애플리케이션은 관련 시간 19:05:00:01을 갖는 프레임 이후에, 다음의 프레임이 관련 시간 19:10:00:01을 갖는다고 검출할 수 있으며, 미디어 안내 애플리케이션은 일부분(예컨대, 5분의 미디어 자산)이 저장된 미디어 자산으로부터 누락되었다고 결정할 수 있다. 미디어 안내 애플리케이션은 이어서, 제2 요청으로, 제1 미디어 자산의 제1 부분만을 저장하라는 명령(instruction)을 저장할 수 있다. 예를 들어, 스토리지 집약적(storage intensive)일 수 있는, 전체 미디어 자산을 또다시 저장하지 않으면서 미디어 자산의 완전한 버전을 생성하기 위해, 미디어 안내 애플리케이션은 저장된 제1 미디어 자산으로부터 누락된 미디어 자산의 프레임들(예컨대, 제1 부분)만을 저장하라는 명령을 저장한다.
앞서 설명된 시스템들 및/또는 방법들이 다른 시스템들, 방법들 및/또는 장치들에 적용될 수 있거나 그에 따라 사용될 수 있음에 유의해야 한다.
본 개시내용의 상기 및 다른 목적들 및 장점들은, 비슷한 참조 문자들이 전반에 걸쳐 비슷한 부분들을 지칭하는, 첨부 도면들과 관련하여 취해진, 이하의 상세한 설명을 고려할 때 명백할 것이다.
도 1은 본 개시내용의 일부 실시예들에 따른, 하나의 콘텐츠 소스로부터의 저장되도록 스케줄링된 미디어 자산이 다른 콘텐츠 소스로부터의 전송을 위해 재스케줄링되었다고 결정하기 위한 예시적인 단계들의 플로차트이다;
도 2는 본 개시내용의 일부 실시예들에 따른, 미디어 자산 정보 및 오디오비주얼 데이터를 포함하는 콘텐츠 소스로부터 수신된 데이터 패킷들의 예시적인 예를 도시하고 있다;
도 3은 본 개시내용의 일부 실시예들에 따른 미디어 콘텐츠에 액세스하는 데 사용하기 위한 디스플레이 화면의 예시적인 예를 도시하고 있다;
도 4은 본 개시내용의 일부 실시예들에 따른 미디어 콘텐츠에 액세스하는 데 사용되는 디스플레이 화면의 다른 예시적인 예를 도시하고 있다;
도 5는 본 개시내용의 일부 실시예들에 따른 예시적인 사용자 장비 디바이스의 블록 다이어그램이다;
도 6은 본 개시내용의 일부 실시예들에 따른 예시적인 미디어 시스템의 블록 다이어그램이다;
도 7은 본 개시내용의 일부 실시예들에 따른, 하나의 콘텐츠 소스로부터의 저장되도록 스케줄링된 미디어 자산이 다른 콘텐츠 소스로부터의 전송을 위해 재스케줄링되었다고 결정하기 위한 예시적인 단계들의 다른 플로차트이다;
도 8은 본 개시내용의 일부 실시예들에 따른, 복수의 콘텐츠 소스들로부터 수신된 데이터 패킷들을 서치하기 위한 예시적인 단계들의 플로차트이다; 그리고
도 9는 본 개시내용의 일부 실시예들에 따른, 저장된 미디어 자산이 미디어 자산의 완전한 버전인지를 결정하기 위한 예시적인 단계들의 플로차트이다.
하나의 콘텐츠 소스로부터의 저장되도록 스케줄링된 미디어 자산이 다른 콘텐츠 소스로부터의 전송을 위해 재스케줄링되었다고 결정하기 위한 시스템들 및 방법들이 제시된다. 시스템들 및 방법들은 미디어 자산이 재스케줄링되었다는 것 및 미디어 자산이 전송되도록 재스케줄링된 소스를 보다 효율적으로 결정하는 데 사용될 수 있다. 예를 들어, 현재 수신되고 있는 미디어 자산을 식별해주는, 미디어 자산과 함께 수신된, 데이터 패킷들의 내용(예컨대, 이벤트 정보 테이블 내의 필드)을 조사함으로써, 셋톱 박스 또는 다른 사용자 장비 디바이스 상에서 실행되는 미디어 안내 애플리케이션은 저장되도록 스케줄링된 미디어 자산이 원래 스케줄링된 콘텐츠 소스로부터 현재 전송되고 있지 않다는 것을 실시간으로 결정할 수 있다. 미디어 자산이 원래 스케줄링된 콘텐츠 소스로부터 이용가능하지 않다고 결정하는 것에 응답하여, 미디어 안내 애플리케이션은 미디어 자산이 재스케줄링된 콘텐츠 소스를 결정하고 그 콘텐츠 소스로부터의 미디어 자산을 저장하기 위해 다른 콘텐츠 소스로부터 수신된 패킷들을 서치할 수 있다. 일부 실시예들에서, 미디어 안내 애플리케이션은 어느 콘텐츠 소스들을 먼저 서치할지를, 원래 스케줄링된 콘텐츠 소스에 대한 그들의 유사성에 기초하여, 선택적으로 선택한다(예컨대, 프로그램이 ESPN에 원래 스케줄링된 경우, ESPN2는 서치되는 먼저 서치된 콘텐츠 소스들 중에 있을 수 있다).
본 명세서에서 지칭된 바와 같이, "미디어 안내 애플리케이션" 또는 "대화형 미디어 안내 애플리케이션" 또는 때때로 "미디어 안내 애플리케이션" 또는 "안내 애플리케이션"은 사용자가 미디어 자산들을 소비하고 그리고/또는 미디어 자산들로 내비게이트(navigate)할 수 있게 해주는 애플리케이션이다. 일부 실시예들에서, 미디어 안내 애플리케이션은 온라인 애플리케이션(즉, 웹사이트 상에 제공됨)으로서, 또는 서버, 사용자 디바이스 등 상의 독립형 애플리케이션으로서 제공될 수 있다. 일부 실시예들에서, 미디어 안내 애플리케이션은 제1 디바이스 및 제2 디바이스 상에서 동시에, 또는 어느 한 디바이스로부터 멀리 떨어진 위치(예컨대, 원격 서버)에서, 또는 임의의 적당한 조합으로 실행될 수 있다. 일부 실시예들에서, 다양한 디바이스들 및 플랫폼들 상에 설치된 제어 회로부는, 이하에서 보다 상세히 설명되는 바와 같이, 미디어 안내 애플리케이션을 실행할 수 있다. 일부 실시예들에서, 본 명세서에서 논의된 실시예들 중 임의의 것을 수행하기 위한 미디어 안내 애플리케이션 및/또는 임의의 명령어들은 컴퓨터 판독가능 매체들 상에 인코딩될 수 있다. 컴퓨터 판독가능 매체들은 데이터를 저장할 수 있는 임의의 매체들을 포함한다. 컴퓨터 판독가능 매체들은, 전기 또는 전자기 신호들을 전파하는 것을 포함하지만 이들로 제한되지 않는, 일시적일 수 있거나, 하드 디스크, 플로피 디스크, USB 드라이브, DVD, CD, 미디어 카드, 레지스터 메모리, 프로세서 캐시들, 랜덤 액세스 메모리("RAM") 등과 같은 휘발성 및 비휘발성 컴퓨터 메모리 또는 스토리지 디바이스들을 포함하지만, 이들로 제한되지 않는, 비일시적일 수 있다.
도 1은 본 개시내용의 일부 실시예들에 따른, 사용자 기본설정(user preferences)에 기초하여 미디어 자산들의 출력을 조정하기 위한 예시적인 단계들의 플로차트이다. 예를 들어, 프로세스(100)를 구현하는 미디어 안내 애플리케이션은 제어 회로부(504)(도 5)에 의해 실행될 수 있다. 프로세스(100) 또는 그 임의의 단계가 도 5 및 도 6에 도시된 디바이스들 중 임의의 것 상에서 수행되거나 그에 의해 제공될 수 있다는 점에 유의해야 한다.
프로세스(100)는, 미디어 안내 애플리케이션이 스케줄링된 시간 간격 동안 복수의 콘텐츠 소스들 중 제1 콘텐츠 소스로부터의 제1 미디어 자산을 저장하라는 사용자 요청을 (예컨대, 제어 회로부(504)(도 5)를 통해) 수신하는, 102에서 시작된다. 예를 들어, 미디어 안내 애플리케이션은 (예컨대, 제어 회로부(504)(도 5)를 통해) 오후 4시 내지 6시의 "ESPN" 채널로부터 사용자 입력 인터페이스를 통해(예컨대, 사용자 입력 인터페이스(510)(도 5)를 통해) 특정의 축구 경기 "Michigan 대 USC"를 저장하기 위한 옵션의 사용자 선택을 수신할 수 있다. 사용자는, 특정 팀의 모든 축구 경기들에 대한 시리즈 녹화 옵션을 통해, 모바일 디바이스를 사용하여 셋톱 박스로부터 원격적으로, 또는 저장될 프로그램들을 선택하기 위한 임의의 다른 방법을 통해, 축구 경기를 프로그램 리스팅 화면에(예컨대, 그리드 가이드(도 3 및 도 4)에) 저장하기 위한 옵션을 선택할 수 있다. 본 명세서에서 지칭된 바와 같이, "스토어(store)"는, 사용자가 미디어 자산의 원래의 전송 이후에 미디어 자산에 액세스할 수 있도록, 미디어 자산을 지속적으로 보존하기 위한 임의의 방법들 또는 시스템들을 의미하는 것으로 이해되어야 한다. 일부 실시예들에서, 미디어 자산을 저장하는 것은, 미디어 자산을 전송하는 콘텐츠 소스로부터의 미디어 자산을 녹화하는 셋톱 박스 또는 다른 사용자 장비에 의해 수행될 수 있다. 다른 실시예들에서, 미디어 자산을 저장하는 것은 통신 네트워크를 통해 원격 서버로부터 미디어 자산의 사본을 다운로드하는 것에 의해 수행될 수 있다.
프로세스(100)는, 미디어 안내 애플리케이션이 스케줄링된 시간 간격이 시작되었다고 (예컨대, 제어 회로부(504)(도 5)를 통해) 결정하는, 104로 계속된다. 예를 들어, 미디어 안내 애플리케이션은 현재 시간을 (예컨대, 도 5 및 도 6에 설명된 바와 같은 사용자 장비 디바이스 내의) 내부 클록으로부터 (예컨대, 제어 회로부(504)(도 5)를 통해) 결정할 수 있다. 미디어 안내 애플리케이션은 (예컨대, 제어 회로부(504)(도 5)를 통해) 이어서 현재 시간을 제1 미디어 자산에 대한 데이터 구조에 저장된 스케줄링된 시간 간격의 시작 시간과 비교하여 현재 시간이 시작 시간과 매칭하는지를 결정할 수 있다.
프로세스(100)는, 미디어 안내 애플리케이션이, 이하의 도 7에 상세히 기술되는, 제1 콘텐츠 소스로부터의 비디오와 함께 수신된 데이터 패킷들을 (예컨대, 제어 회로부(504)(도 5)를 통해) 모니터링하는, 106으로 계속된다. 예를 들어, 미디어 안내 애플리케이션은 (예컨대, 제어 회로부(504)(도 5)를 통해) 제1 콘텐츠 소스(예컨대, ESPN)로부터 수신된 데이터 패킷들을 체크하여 축구 경기가 제1 콘텐츠 소스로부터 현재 이용가능한지(예컨대, 축구 경기가 ESPN에서 방송 중인지)를 결정하기 위해 프로그램 스크립트를 실행할 수 있다. 미디어 안내 애플리케이션은 (예컨대, 제어 회로부(504)(도 5)를 통해) 데이터 패킷들을 연속적으로, 또는 계산 비용을 감소시키기 위해 미리 결정된 간격들 동안 모니터링할 수 있다.
프로세스(100)는, 미디어 안내 애플리케이션이 모니터링된 데이터 패킷들로부터 제1 미디어 자산 지시자를 (예컨대, 제어 회로부(504)(도 5)를 통해) 추출하는, 108로 계속된다. 예를 들어, 미디어 안내 애플리케이션은, 선언적 "Select" 커맨드를 이용하여 SQL 스크립트를 실행함으로써, 미디어 자산에 대한 오디오비주얼 데이터와 함께 데이터 패킷에서 전송된 테이블 내의 필드로부터 미디어 자산 지시자를 (예컨대, 제어 회로부(504)(도 5)를 통해) 추출할 수 있다. 본 명세서에서 지칭된 바와 같이, "미디어 자산 지시자"는 미디어 안내 애플리케이션이 제1 미디어 자산을 다른 미디어 자산들과 구별할 수 있게 해주는 제1 미디어 자산에 고유한 임의의 식별자를 의미하는 것으로 이해되어야 한다. 일부 실시예들에서, 미디어 자산 지시자는 영숫자 문자들로 된 미디어 자산의 이름 또는 제목일 수 있다. 다른 실시예들에서, 미디어 자산 지시자는 콘텐츠 소스로부터의 스케줄링된 전송 시간에 기초한 자동으로 해싱된 정수일 수 있다. 또 다른 실시예들에서, "미디어 자산 지시자"는 어떤 미디어 자산이 현재 전송되고 있는지를 결정하기 위해 미디어 안내 애플리케이션에 의해 사용되는 다수의 컴포넌트들로 분할될 수 있다. 예를 들어, 미디어 안내 애플리케이션은 (예컨대, 이하의 도 2에서와 같은) 다수의 정보 필드들을 수신하고 어떤 미디어 자산이 현재 전송되고 있는지를 결정하기 위해 단지 하나 초과의 필드를 사용할 수 있다.
일부 실시예들에서, 미디어 안내 애플리케이션은 (예컨대, 제어 회로부(504)(도 5)를 통해) 제1 콘텐츠 소스로부터의 비디오에 관련된 정보를 포함하는 테이블을 수신한다. 예를 들어, 테이블은, 이하에서 도 2에 추가로 설명되는 바와 같이, 프로그램의 지시자(예컨대, 프로그램에 대응하는 고유한 영숫자 코드) 및 프로그램의 설명과 같은, 제1 콘텐츠 소스로부터 현재 수신되고 있는 프로그램에 관련된 메타데이터를 포함하는 행들로 조직화될 수 있다. 미디어 안내 애플리케이션은 이어서 제1 미디어 자산 지시자에 대응하는 테이블 내의 필드로부터의 값을 리트리브할 수 있다. 예를 들어, 앞서 설명된 바와 같이, 미디어 안내 애플리케이션은, "FTBL1485"와 같은, 지시자를 리트리브할 수 있다.
프로세스(100)는, 미디어 안내 애플리케이션이 추출된 제1 미디어 자산 지시자를 제1 미디어 자산의 식별자와 (예컨대, 제어 회로부(504)(도 5)를 통해) 비교하는, 110로 계속된다. 예를 들어, 미디어 안내 애플리케이션은 (예컨대, 메모리(예컨대, 스토리지(508))에 로컬적으로, 또는 통신 네트워크(예컨대, 통신 네트워크(614))를 통해 액세스가능한 미디어 안내 데이터 소스(예컨대, 미디어 안내 데이터 소스(618))에 원격적으로 저장된) 미디어 자산들의 식별자들을 포함하는 데이터베이스에 (예컨대, 제어 회로부(504)(도 5)를 통해) 액세스하고 미디어 자산 스트림으로부터 추출된 미디어 자산 지시자가 데이터베이스에 저장된 제1 미디어 자산의 식별자와 매칭하는지를 (예컨대, 문자 매칭을 통해) 결정할 수 있다.
일부 실시예들에서, 미디어 안내 애플리케이션은, 사용자 요청으로, 제1 미디어 자산의 식별자를 (예컨대, 제어 회로부(504)(도 5)를 통해) 저장한다. 예를 들어, 미디어 안내 애플리케이션이 축구 경기를 저장하는 (예컨대, 사용자 입력 인터페이스(510)(도 5)로부터의) 사용자 선택을 (예컨대, 제어 회로부(504)(도 5)를 통해) 수신할 때, 미디어 안내 애플리케이션은 축구 경기를 제공하는 콘텐츠 소스로부터의 것일 수 있는 축구 경기의 식별자를 저장한다. 미디어 안내 애플리케이션은 제1 미디어 자산의 식별자의 문자들을 추출된 제1 미디어 자산 지시자의 문자들과 (예컨대, 제어 회로부(504)(도 5)를 통해) 비교할 수 있다. 예를 들어, 미디어 안내 애플리케이션은, "FTBL1485"와 같은, 추출된 지시자의 각각의 문자를 저장된 식별자와 (예컨대, 제어 회로부(504)(도 5)를 통해) 비교할 수 있다. 임계 개수 또는 퍼센티지의 문자들이 매칭하는 경우, 미디어 안내 애플리케이션은 추출된 지시자가 저장된 식별자와 매칭한다고 (예컨대, 제어 회로부(504)(도 5)를 통해) 결정할 수 있다.
프로세스(100)는, 미디어 안내 애플리케이션이 추출된 미디어 자산 지시자가 제1 미디어 자산의 식별자에 대응하는지를 (예컨대, 제어 회로부(504)(도 5)를 통해) 결정하는, 112로 계속된다. 예를 들어, 미디어 안내 애플리케이션은 추출된 지시자가 제1 미디어 자산의 저장된 식별자와 매칭하는지(예컨대, "FTBL1485"가 추출된 지시자 및 저장된 식별자 둘 다인지)를 출력하는 프로그램 스크립트를 (예컨대, 제어 회로부(504)(도 5)를 통해) 실행할 수 있다. 미디어 안내 애플리케이션은 추출된 지시자가 저장된 식별자와 매칭하는지에 기초한 불 결과(Boolean result)를 실행된 프로그램 스크립트의 출력으로서 (예컨대, 제어 회로부(504)(도 5)를 통해) 수신할 수 있다.
미디어 안내 애플리케이션이 추출된 미디어 자산 지시자가 제1 미디어 자산의 식별자에 대응한다고 결정하는 경우, 프로세스(100)는, 미디어 안내 애플리케이션이 제1 콘텐츠 소스로부터 수신된 제1 미디어 자산을 (예컨대, 제어 회로부(504)(도 5)를 통해) 저장하는, 114로 계속된다. 예를 들어, 추출된 식별자가 제1 미디어 자산에 대응하는 저장된 식별자와 매칭한다고 결정할 때, 미디어 안내 애플리케이션은 원래 스케줄링된 콘텐츠 소스(예컨대, ESPN)로부터 수신된 축구 경기를 (예컨대, 스토리지(508)(도 5)에) 저장할 수 있다. 미디어 안내 애플리케이션은 제1 미디어 자신이 제1 콘텐츠 소스로부터 더 이상 전송되고 있지 않고 상이한 콘텐츠 소스로부터 전송되고 있는지를 결정하기 위해 스케줄링된 시간 간격 전체에 걸쳐 제1 콘텐츠 소스로부터 수신된 데이터 패킷들을 (예컨대, 제어 회로부(504)(도 5)를 통해) 계속 모니터링할 수 있다(예컨대, 프로세스(100)는 단계(106)로 되돌아갈 수 있다).
미디어 안내 애플리케이션이 추출된 미디어 자산 지시자가 제1 미디어 자산의 식별자에 대응하지 않는다고 결정하는 경우, 프로세스(100)는, 미디어 안내 애플리케이션이 제1 미디어 자산의 식별자에 대응하는 제2 미디어 자산 지시자를 포함하는 제2 데이터 패킷이 있는지 복수의 콘텐츠 소스들 상에서 수신된 데이터 패킷들을 (예컨대, 제어 회로부(504)(도 5)를 통해) 서치하는, 116으로 계속된다. 예를 들어, 미디어 안내 애플리케이션은 ESPN으로부터 현재 수신되는 미디어 자산으로부터의 추출된 지시자가 축구 경기의 식별자와 매칭하지 않는 것에 기초하여(예컨대, 앞서 설명된 바와 같이 데이터베이스와의 비교에 기초하여) ESPN에서 오후 4시에 방송하기로 스케줄링된 축구 경기가 현재 방송 중이 아니라고 (예컨대, 제어 회로부(504)(도 5)를 통해) 결정할 수 있다. 이 결정에 응답하여, 미디어 안내 애플리케이션은, 앞서 설명된 바와 같이, 데이터 패킷들로부터 지시자들을 추출하고 추출된 지시자들을 미디어 자산의 식별자와 비교함으로써 미디어 자산이 이용가능한 콘텐츠 소스를 발견하기 위해 사용자가 가입한 다른 콘텐츠 소스들을 (예컨대, 제어 회로부(504)(도 5)를 통해) 스캔할 수 있다.
프로세스(100)는, 미디어 안내 애플리케이션이 복수의 콘텐츠 소스들 중 제2 콘텐츠 소스로부터 수신된 제2 데이터 패킷이 제1 미디어 자산의 식별자에 대응하는 제2 미디어 자산 지시자를 포함하는지를 (예컨대, 제어 회로부(504)(도 5)를 통해) 결정하는, 118로 계속된다. 예를 들어, 미디어 안내 애플리케이션은, 앞서 설명된 바와 같이, 제2 콘텐츠 소스로부터 수신된 데이터 패킷으로부터 미디어 자산 지시자(예컨대, "FTBL1485")를 (예컨대, 제어 회로부(504)(도 5)를 통해) 추출하고 그것이 데이터 구조에 저장된 제1 미디어 자산의 식별자와 (예컨대, 문자 매칭을 통해) 매칭하는지를 결정할 수 있다.
미디어 안내 애플리케이션이 복수의 콘텐츠 소스들 중 제2 콘텐츠 소스로부터 수신된 제2 데이터 패킷이 제1 미디어 자산의 식별자에 대응하는 제2 미디어 자산 지시자를 포함한다고 결정하는 경우, 프로세스(100)는, 미디어 안내 애플리케이션이 제2 콘텐츠 소스로부터 수신된 제1 미디어 자산을 (예컨대, 제어 회로부(504)(도 5)를 통해) 저장하는, 124로 계속된다. 예를 들어, 미디어 안내 애플리케이션은 ESPN2로부터 수신된 데이터 패킷으로부터 축구 경기가 그 방송국으로부터 전송되고 있다고 결정하는 것에 기초하여 ESPN 대신에 ESPN2로부터 수신된 축구 경기를 (예컨대, 스토리지(508)(도 5)에) 저장할 수 있다.
미디어 안내 애플리케이션이 복수의 콘텐츠 소스들 중 제2 콘텐츠 소스로부터 수신된 제2 데이터 패킷이 제1 미디어 자산의 식별자에 대응하는 제2 미디어 자산 지시자를 포함하지 않는다고 결정하는 경우, 프로세스(100)는, 미디어 안내 애플리케이션이 서치되지 않은 임의의 부가 콘텐츠 소스들이 있는지를 (예컨대, 제어 회로부(504)(도 5)를 통해) 결정하는, 120으로 계속된다. 예를 들어, 미디어 안내 애플리케이션은 사용자가 가입하는 콘텐츠 소스들로부터 미디어 자산 지시자들을 포함하는 데이터 패킷들을 반복적으로 수신하고 모든 콘텐츠 소스들로부터의 미디어 자산 지시자들을 포함하는 데이터 패킷들이 체크되었을 때 종료되는 "for" 루프를 포함하는 프로그램 스크립트를 (예컨대, 제어 회로부(504)(도 5)를 통해) 실행할 수 있다. 대안적으로 또는 부가적으로, 미디어 안내 애플리케이션은 데이터 패킷들이 추출된 콘텐츠 소스들의 리스트를 (예컨대, 스토리지(508)(도 5)에) 유지하고, 사용자가 가입한 임의의 콘텐츠 소스들이 아직 체크되지 않았는지를 결정할 수 있다.
미디어 안내 애플리케이션이 서치되지 않은 임의의 부가 콘텐츠 소스들이 없다고 결정하는 경우, 프로세스(100)는, 미디어 안내 애플리케이션이 저장할 제1 미디어 자산이 없음을 (예컨대, 제어 회로부(504)(도 5)를 통해) 리턴하는, 122로 계속된다. 예를 들어, 미디어 안내 애플리케이션은 축구 경기가 사용자에게 이용가능한 임의의 콘텐츠 소스로부터 전송되고 있지 않다고 (예컨대, 제어 회로부(504)(도 5)를 통해) 결정할 수 있다. 대안적으로 또는 부가적으로, 축구 경기가 사용자에게 이용가능한 임의의 콘텐츠 소스로부터 전송되고 있지 않다고 결정을 내릴 때, 미디어 안내 애플리케이션은 축구 경기가 스케줄 변경으로 인해 저장될 수 없다는 통지를 사용자에게 (예컨대, 통신 네트워크(614)(도 6)를 통해) 전송할 수 있다.
미디어 안내 애플리케이션이 서치되지 않은 부가의 콘텐츠 소스들이 있다고 결정하는 경우, 프로세스(100)는, 미디어 안내 애플리케이션이 제1 미디어 자산의 식별자에 대응하는 제2 미디어 자산 지시자를 포함하는 제2 데이터 패킷이 있는지 서치되지 않은 복수의 콘텐츠 소스들 상에서 수신된 데이터 패킷들을 (예컨대, 제어 회로부(504)(도 5)를 통해) 서치하는, 116으로 돌아간다. 예를 들어, 미디어 안내 애플리케이션은, 앞서 설명된 바와 같이, 축구 경기의 저장된 식별자에 대응하는 미디어 자산 지시자가 있는지 상이한 콘텐츠 소스들로부터 수신된 데이터 패킷들을 (예컨대, 제어 회로부(504)(도 5)를 통해) 계속 서치할 수 있다.
도 1의 단계들 또는 설명들이 본 개시내용의 임의의 다른 실시예에 대해 사용될 수 있는 것이 고려된다. 그에 부가하여, 도 1과 관련하여 설명된 단계들 및 설명들은 본 개시내용의 목적들을 달성하기 위해 대안의 순서들로 또는 병렬로 행해질 수 있다. 예를 들어, 이러한 단계들 각각은 시스템 또는 방법의 지연을 감소시키거나 속도를 증가시키기 위해 임의의 순서 또는 병렬로 또는 실질적으로 동시에 수행될 수 있다. 예를 들어, 각각이 저장을 위해 상이한 미디어 자산들을 수신하도록 스케줄링된 셋톱 박스 내의 다수의 튜너들에 대해 프로세스(100)의 다수의 인스턴스들이 실행될 수 있다. 게다가, 도 5 및 도 6과 관련하여 논의된 디바이스들 또는 장비 중 임의의 것이 도 1에서의 단계들 중 하나 이상을 수행하는 데 사용될 수 있음에 유의해야 한다.
도 2는 본 개시내용의 일부 실시예들에 따른, 미디어 자산 정보 및 오디오비주얼 데이터를 포함하는 콘텐츠 소스로부터 수신된 데이터 패킷들의 예시적인 예를 도시하고 있다. 예를 들어, 도 2는 프로그램의 프레젠테이션에 관한 다양한 정보(예컨대, 미디어 자산 정보 데이터 패킷들(202) 및 오디오비주얼 데이터 패킷들(204))를 포함하는 콘텐츠 소스(예컨대, 미디어 콘텐츠 소스(616)(도 6))로부터 미디어 안내 애플리케이션에 의해 수신된 데이터 패킷들을 도시하고 있다. 예를 들어, 미디어 자산 정보 데이터 패킷들(202)은, 이하에서 추가로 설명되는 바와 같이, 미디어 자산, 그의 소스, 지속기간 등을 설명하는 텍스트 정보를 포함할 수 있다. 오디오비주얼 데이터 패킷들(204)은 미디어 안내 애플리케이션이 디스플레이 화면 상에 프로그램을 출력하기 위해 사용하는 정보(예컨대, 픽셀 컬러/밝기 정보, 오디오 주파수 및 진폭 등)를 포함할 수 있다.
미디어 자산 정보 데이터 패킷들은 미디어 자산의 오디오비주얼 정보에 대한 보충 정보를 포함하는 데이터 테이블들에 대한 일관된 구조 배열 및 포맷을 설명하는 [Advanced Television Systems Committee, Inc.'s, "ATSC Recommended Practice: Program and System Information Protocol Implementation Guidelines for Broadcasters"]에 부합하는 미디어 자산에 관한 정보를 포함할 수 있다. 일반적 논의로서, 미디어 자산 정보 데이터 패킷들(202)의 특정의 패킷은 패킷 ID(206)를 포함할 수 있다. 예를 들어, 패킷 ID(206)는 해싱(hashing)(예컨대, 정수와 같은 인덱스 값을 각각의 패킷에 배정하는 함수)에 의해 생성될 수 있고, 미디어 안내 애플리케이션이 특정의 패킷을 참조하고 이를 오디오비주얼 데이터 패킷들에 매핑할 수 있게 해주는 정수 또는 문자들의 스트링일 수 있다. 이것은 미디어 안내 애플리케이션이 특정의 오디오비주얼 데이터 패킷 또는 데이터 패킷들의 세트가 특정의 미디어 자산 정보에 대응한다고 결정할 수 있게 해준다(예컨대, 이는 미디어 안내 애플리케이션이 현재 전송되고 있는 미디어 자산을 결정할 수 있게 해준다). 미디어 자산 정보 데이터 패킷들(202) 중 특정의 패킷은 이벤트 정보(208) 및 등급 정보(210)를 부가적으로 포함한다. 프로그램들, 채널들 리스트들, 또는 임의의 다른 관련 정보의 확장 설명들(extended descriptions)에 관련된 부가 정보(212)는 미디어 자산 정보 데이터 패킷들(202)에 또한 포함될 수 있다.
등급 정보(210)는 상이한 등급들이 프로그램을 수신하고 있을 수 있는 상이한 집단들과 매칭되는 테이블로서 배열될 수 있다. 예를 들어, 미디어 안내 애플리케이션은, 등급 정보(210)에 대한 테이블에 정의된 바와 같이, 미디어 자산이 TV-14 등급인 텍사스에서 프로그램을 수신할 수 있다. 미디어 안내 애플리케이션은 부모 통제 설정, 즉, 사용자가 프로그램을 잠금 해제하기 위한 코드 또는 개인 식별 번호를 갖지 않는 한 특정 콘텐츠 등급 이상의 사용자에 의한 시청을 위한 프로그램들을 잠금하는 것을 구현하기 위해 이 정보를 사용할 수 있다.
미디어 자산 정보 데이터 패킷에 포함된 이벤트 정보(208)는, 도 2에 도시된 바와 같은 테이블로 배열될 수 있다. 미디어 자산 정보와 동시에 전송된 오디오비주얼 데이터의 콘텐츠 소스(214)는 채널 번호, 주파수, 또는 다른 식별자(예컨대, "ESPN"과 같은 방송국의 이름)에 의해 식별될 수 있다. 테이블은, 이벤트 ID(216)와 같은, 이벤트 ID들에 기초하여 배열될 수 있으며, 이벤트 ID들은 그의 방송 시간(airtime) 및 콘텐츠에 기초하여 테이블 내의 정보를 인덱싱한다. 예를 들어, 인덱스 "1"을 갖는 이벤트 ID(216)는 콘텐츠 소스(214)로부터 현재 방송 중인 프로그램을 지칭할 수 있는 반면, 보다 큰 인덱스를 갖는 이벤트 ID는 미래의 스케줄링된 프로그래밍을 지칭할 수 있다. 각각의 이벤트 ID에 대해, 테이블은, "12:30"과 같은, 로컬 시작 시간(218)에 관한 정보를 포함한다. 시간은 AM과 PM을 구분하기 위해 지정된 부가 비트를 갖는 12 시간 포맷으로, 또는 24 시간 포맷으로 배열될 수 있다. 각각의 이벤트 ID는 특정의 이벤트 ID에 의해 설명된 미디어 자산의 길이(220)를 또한 포함한다. 길이는 임의의 시간 길이를 기준으로 할 수 있지만, 편의상, 십진법 숫자들(decimals)을 요구할 수 있는, 시간 또는 날짜보다, 초의 반올림된 정수 값이 바람직할 수 있다.
각각의 이벤트 ID는, 제목(222) "축구"와 같은, 제목을 부가적으로 포함한다. 제목은 미디어 자산을 식별해주는 영숫자 문자들의 임의의 조합일 수 있지만, 제목이 전송의 효율성을 위해 데이터 패킷에서 특정 바이트 수로 제한될 수 있다. 각각의 이벤트 ID에 대해 미디어 자산의 보다 긴 설명(예컨대, 프로그램의 설명(228))이 일부 경우들에서 발견될 수 있다(예컨대, 짧은 단락으로 콘텐츠를 요약한 시놉시스). 그렇지만, 일부 경우들에서, 프로그램의 설명(228)에 대한 필드는, 별도의 데이터 패킷에 있을 수 있는, 설명을 포함하는 다른 테이블에 대한 포인터를 포함할 수 있다. 각각의 이벤트 ID는 특정 이벤트 ID가 무엇을 지칭하는지를 미디어 안내 애플리케이션에 통보하는 디스크립터(descriptor)를 포함한다. 예를 들어, 이벤트 ID(216)는 디스크립터(224) "콘텐츠"를 설명하고 있을 수 있는데, 그 이유는 그것이 미디어 자산 자체에 관한 정보를 포함하고 있기 때문이다. 다른 예로서, 상이한 이벤트 ID는, 디스크립터(226), "클로즈드 캡션(closed caption)"과 같은, 콘텐츠 소스(214)로부터의 대역외 수신된 데이터(data received out-of-band) 또는 비-오디오비주얼 데이터(non-audiovisual data)를 설명하고 있을 수 있다.
일부 실시예들에서, 미디어 안내 애플리케이션은 제1 콘텐츠 소스로부터의 비디오에 관련된 정보를 포함하는 테이블을 수신할 수 있다. 예를 들어, 미디어 안내 애플리케이션은 도 2에 도시된 바와 같은 테이블로 배열된 이벤트 정보(208)를 수신할 수 있다. 미디어 안내 애플리케이션은 이어서 제1 미디어 자산 지시자에 대응하는 테이블 내의 필드로부터의 값을 리트리브할 수 있다. 예를 들어, 미디어 안내 애플리케이션은 "1"의 인덱스를 갖는 이벤트 ID(216)의 제목(222) "축구"를 리트리브할 수 있는데, 그 이유는 그것이 콘텐츠 소스(214)로부터 현재 전송되고 있는 미디어 자산을 나타내기 때문이다. 대안적으로 또는 부가적으로, 미디어 안내 애플리케이션은 콘텐츠 소스(214)로부터 현재 전송되고 있는 미디어 자산의 보다 정확한 결정을 보장하기 위해 프로그램의 설명(228)에 대응하는 필드로부터 데이터를 리트리브하고 이 데이터를 리트리브된 제목(222)과 함께 사용할 수 있다. 예를 들어, 미디어 안내 애플리케이션은 제목(222) "축구" 및 프로그램의 설명(228) "Michigan 대 USC"를 리트리브하는 것에 기초하여 "축구 - Michigan 대 USC"가 콘텐츠 소스(214)로부터 현재 전송되고 있다고 결정할 수 있다. 이러한 방식으로, 미디어 안내 애플리케이션은 제1 미디어 자산 지시자가 미디어 자산의 식별자와 매칭하는지의 보다 정확한 결정을 위해 데이터 패킷으로부터 부가 정보를 추출할 수 있다.
임의의 주어진 콘텐츠 전달 시스템에서 사용자들에 이용가능한 콘텐츠의 양은 상당할 수 있다. 결과적으로, 많은 사용자들은 사용자들이 콘텐츠 셀렉션들(content selections)을 효율적으로 내비게이트하고 그들이 원하는 콘텐츠를 쉽게 식별할 수 있게 해주는 인터페이스를 통한 미디어 안내의 형태를 원한다. 그러한 안내를 제공하는 애플리케이션은 본 명세서에서 대화형 미디어 안내 애플리케이션 또는, 때때로, 미디어 안내 애플리케이션 또는 안내 애플리케이션이라고 지칭된다.
대화형 미디어 안내 애플리케이션들은 이들이 안내를 제공하는 콘텐츠에 따라 다양한 형태들을 취할 수 있다. 하나의 전형적인 타입의 미디어 안내 애플리케이션은 대화형 텔레비전 프로그램 가이드(interactive television program guide)이다. 대화형 텔레비전 프로그램 가이드들(때때로 전자 프로그램 가이드들라고 지칭됨)은, 그 중에서도 특히, 사용자들이 많은 타입의 콘텐츠 또는 미디어 자산들을 내비게이트하고 찾아낼(locate) 수 있게 해주는 잘 알려진 안내 애플리케이션들이다. 대화형 미디어 안내 애플리케이션들은 사용자가 콘텐츠를 내비게이트하고 위치확인하며 선택할 수 있게 해주는 그래픽 사용자 인터페이스 화면들을 생성할 수 있다. 본 명세서에서 지칭된 바와 같이, 용어들 "미디어 자산" 및 "콘텐츠"는 텔레비전 프로그래밍들은 물론, 페이-퍼-뷰(pay-per-view) 프로그램들, (비디오-온-디맨드(VOD) 시스템들에서와 같은) 온-디맨드 프로그램들, 인터넷 콘텐츠(예컨대, 스트리밍 콘텐츠, 다운로드가능 콘텐츠, 웹캐스트들(Webcasts) 등), 비디오 클립들, 오디오, 콘텐츠 정보, 그림들, 회전 이미지들, 문서들, 플레이리스트들, 웹사이트들, 기사들, 책들, 전자 책들, 블로그들, 채팅 세션들, 소셜 미디어, 애플리케이션들, 게임들, 및/또는 다른 미디어 또는 멀티미디어 및/또는 이들의 조합과 같은, 전자적으로 소비가능한 사용자 자산을 의미하는 것으로 이해되어야 한다. 안내 애플리케이션은 또한 사용자들이 콘텐츠를 내비게이트하고 찾아낼 수 있게 해준다. 본 명세서에서 지칭된 바와 같이, 용어 "멀티미디어"는 앞서 설명된 적어도 2개의 상이한 콘텐츠 형태들, 예를 들어, 텍스트, 오디오, 이미지들, 비디오, 또는 상호작용성 콘텐츠 형태들(interactivity content forms)을 이용하는 콘텐츠를 의미하는 것으로 이해되어야 한다. 콘텐츠는 사용자 장비 디바이스들에 의해 녹화되거나, 재생되거나, 디스플레이되거나 또는 액세스될 수 있을 뿐만 아니라, 라이브 공연의 일부일 수도 있다.
본 명세서에서 논의된 실시예들 중 임의의 것을 수행하기 위한 미디어 안내 애플리케이션 및/또는 임의의 명령어들은 컴퓨터 판독가능 매체들 상에 인코딩될 수 있다. 컴퓨터 판독가능 매체들은 데이터를 저장할 수 있는 임의의 매체들을 포함한다. 컴퓨터 판독가능 매체들은, 전기 또는 전자기 신호들을 전파하는 것을 포함하지만 이들로 제한되지 않는, 일시적일 수 있거나, 하드 디스크, 플로피 디스크, USB 드라이브, DVD, CD, 미디어 카드들, 레지스터 메모리, 프로세서 캐시들, 랜덤 액세스 메모리("RAM") 등과 같은 휘발성 및 비휘발성 컴퓨터 메모리 또는 스토리지 디바이스들을 포함하지만, 이들로 제한되지 않는, 비일시적일 수 있다.
인터넷, 모바일 컴퓨팅, 및 고속 무선 네트워크들의 출현으로, 전통적으로 그렇지 않았던 사용자들이 사용자 장비 디바이스들 상에서 미디어에 액세스하고 있다. 본 명세서에서 지칭된 바와 같이, 문구 "사용자 장비 디바이스", "사용자 장비", "사용자 디바이스", "전자 디바이스", "전자 장비", "미디어 장비 디바이스", 또는 "미디어 디바이스"는, 텔레비전, 스마트 TV, 셋톱 박스, 위성 텔레비전을 핸들링하기 위한 통합 수신기 디코더(integrated receiver decoder)(IRD), 디지털 스토리지 디바이스, 디지털 미디어 수신기(digital media receiver)(DMR), 디지털 미디어 어댑터(digital media adapter)(DMA), 스트리밍 미디어 디바이스, DVD 플레이어, DVD 레코더, 커넥티드 DVD(connected DVD), 로컬 미디어 서버, BLU-RAY 플레이어, BLU-RAY 레코더, 개인 컴퓨터(PC), 랩톱 컴퓨터, 태블릿 컴퓨터, WebTV 박스, 개인 컴퓨터 텔레비전(PC/TV), PC 미디어 서버, PC 미디어 센터, 핸드헬드 컴퓨터, 고정 전화(stationary telephone), PDA(personal digital assistant), 모바일 전화, 휴대용 비디오 플레이어 , 휴대용 음악 플레이어, 휴대용 게이밍 머신, 스마트폰, 또는 임의의 다른 텔레비전 장비, 컴퓨팅 장비, 또는 무선 디바이스, 및/또는 이들의 조합과 같은, 앞서 설명된 콘텐츠에 액세스하기 위한 임의의 디바이스를 의미하는 것으로 이해되어야 한다. 일부 실시예들에서, 사용자 장비 디바이스는 전방 스크린(front facing screen) 및 후방 스크린(rear facing screen), 다수의 전면 스크린들(front screens), 또는 다수의 각진 스크린들(angled screens)을 가질 수 있다. 일부 실시예들에서, 사용자 장비 디바이스는 전방 카메라(front facing camera) 및/또는 후방 카메라(rear facing camera)를 가질 수 있다. 이러한 사용자 장비 디바이스들 상에서, 사용자들은 텔레비전을 통해 이용가능한 동일한 콘텐츠를 내비게이트하고 찾아낼 수 있다. 결과적으로, 미디어 안내는 이러한 디바이스들 상에서도 이용가능할 수 있다. 제공되는 안내는 텔레비전을 통해서만 이용가능한 콘텐츠에 대한 것, 다른 타입의 사용자 장비 디바이스들 중 하나 이상을 통해서만 이용가능한 콘텐츠에 대한 것, 또는 텔레비전 및 다른 타입의 사용자 장비 디바이스들 중 하나 이상 둘 다를 통해 이용가능한 콘텐츠에 대한 것일 수 있다. 미디어 안내 애플리케이션들은 온라인 애플리케이션들(즉, 웹사이트 상에서 제공됨)로서, 또는 사용자 장비 디바이스들 상의 독립형 애플리케이션들 또는 클라이언트들로서 제공될 수 있다. 미디어 안내 애플리케이션들을 구현할 수 있는 다양한 디바이스들 및 플랫폼들은 이하에서 보다 상세히 설명된다.
미디어 안내 애플리케이션의 기능들 중 하나는 미디어 안내 데이터를 사용자들에게 제공하는 것이다. 본 명세서에서 지칭된 바와 같이, 문구 "미디어 안내 데이터" 또는 "안내 데이터"는 콘텐츠에 관련된 임의의 데이터 또는 안내 애플리케이션을 동작시키는 데 사용되는 데이터를 의미하는 것으로 이해되어야 한다. 예를 들어, 안내 데이터는 프로그램 정보, 안내 애플리케이션 설정, 사용자 기본설정, 사용자 프로파일 정보, 미디어 리스팅들, 미디어 관련 정보(예컨대, 방송 시간들, 방송 채널들, 제목들, 설명들, 등급 정보(예컨대, 부모 통제 등급(parental control ratings), 비평가의 등급(critic's ratings) 등), 장르 또는 카테고리 정보, 배우 정보, 방송사의 또는 제공자의 로고들에 대한 로고 데이터 등), 미디어 포맷(예컨대, 표준 화질, 고화질, 3D 등), 온-디맨드 정보, 블로그들, 웹사이트들, 및 사용자가 원하는 콘텐츠 셀렉션들을 내비게이트하고 찾아내는데 도움이 되는 임의의 다른 타입의 안내 데이터를 포함할 수 있다.
도 3 및 도 4는 미디어 안내 데이터를 제공하는 데 사용될 수 있는 예시적인 디스플레이 화면들을 도시하고 있다. 도 3 및 도 4에 도시된 디스플레이 화면들은 임의의 적당한 사용자 장비 디바이스 또는 플랫폼 상에 구현될 수 있다. 도 3 및 도 4의 디스플레이들이 전체 화면 디스플레이들(full screen displays)로 예시되어 있지만, 그것들은 또한 디스플레이되고 있는 콘텐츠 위에 전체적으로 또는 부분적으로 오버레이될 수 있다. 사용자는 디스플레이 화면에 제공된 선택가능한 옵션(예컨대, 메뉴 옵션, 리스팅들 옵션, 아이콘, 하이퍼링크 등)을 선택하는 것 또는 리모콘 또는 다른 사용자 입력 인터페이스 또는 디바이스 상의 전용 버튼(예컨대, GUIDE 버튼)을 누르는 것에 의해 콘텐츠 정보에 액세스하고자 하는 바램을 지시할 수 있다. 사용자의 지시에 응답하여, 미디어 안내 애플리케이션은, 그리드에서 시간 및 채널별로, 시간별로, 채널별로, 소스별로, 콘텐츠 타입별로, 카테고리별로(예컨대, 영화, 스포츠, 뉴스, 어린이, 또는 다른 프로그래밍 카테고리들), 또는 다른 미리 정의된, 사용자에 의해 정의된(user-defined), 또는 다른 조직화 기준들과 같이, 몇 가지 방식들 중 하나로 조직화된 미디어 안내 데이터를 디스플레이 화면에 제공할 수 있다.
도 3은 단일 디스플레이에서 상이한 타입의 콘텐츠에 대한 액세스를 또한 가능하게 해주는 시간 및 채널별로 배열된 프로그램 리스팅들 디스플레이(300)의 예시적인 그리드를 도시하고 있다. 디스플레이(300)는: (1) 채널/콘텐츠 타입 식별자들의 열(column)(304) - (열 내의 셀인) 각각의 채널/콘텐츠 타입 식별자는 이용가능한 상이한 채널 또는 콘텐츠 타입을 식별해줌 -; 및 (2) 시간 식별자들(306)의 행(row) - (행 내의 셀인) 각각의 시간 식별자는 프로그래밍의 시간 블록을 식별해줌 - 를 갖는 그리드(302)를 포함할 수 있다. 그리드(302)는, 프로그램 리스팅들(308)과 같은, 프로그램 리스팅들의 셀들을 또한 포함하며, 여기서 각각의 리스팅은 리스팅들의 관련 채널 및 시간에서 제공된 프로그램의 제목을 제공한다. 사용자 입력 디바이스를 사용하여, 사용자는 하이라이트 영역(310)을 이동시킴으로써 프로그램 리스팅들을 선택할 수 있다. 하이라이트 영역(310)에 의해 선택된 프로그램 리스팅에 관한 정보는 프로그램 정보 영역(312)에 제공될 수 있다. 영역(312)은, 예를 들어, 프로그램 제목, 프로그램 설명, 프로그램이 제공되는 시간(해당되는 경우), 프로그램이 방송 중인 채널(해당되는 경우), 프로그램의 등급, 및 다른 원하는 정보를 포함할 수 있다.
선형 프로그래밍(예컨대, 미리 결정된 시간에 복수의 사용자 장비 디바이스들에게 전송되도록 스케줄링되고 스케줄에 따라 제공되는 콘텐츠)에 대한 액세스를 제공하는 것에 부가하여, 미디어 안내 애플리케이션은 비-선형 프로그래밍(예컨대, 언제든지 사용자 장비 디바이스에 의해 액세스가능하고 스케줄에 따라 제공되지 않는 콘텐츠)에 대한 액세스를 또한 제공한다. 비-선형 프로그래밍은 온-디맨드 콘텐츠(예컨대, VOD), 인터넷 콘텐츠(예컨대, 스트리밍 미디어, 다운로드가능 미디어 등), 로컬적으로 저장된 콘텐츠(예컨대, 앞서 설명된 임의의 사용자 장비 디바이스 또는 다른 스토리지 디바이스 상에 저장된 콘텐츠), 또는 다른 시간-독립적 콘텐츠를 포함한, 상이한 콘텐츠 소스들로부터의 콘텐츠를 포함할 수 있다. 온-디맨드 콘텐츠는 영화 또는 특정의 콘텐츠 제공자에 의해 제공되는 임의의 다른 콘텐츠(예컨대, "The Sopranos" 및 "Curb Your Enthusiasm"을 제공하는 HBO On Demand)를 포함할 수 있다. HBO ON DEMAND는 Time Warner Company L.P. 등에 의해 소유된 서비스 마크이며, THE SOPRANOS 및 CURB YOUR ENTHUSIASM은 Home Box Office, Inc.에 의해 소유된 상표들이다. 인터넷 콘텐츠는, 채팅 세션 또는 웹캐스트와 같은, 웹 이벤트들, 또는 인터넷 웹 사이트 또는 다른 인터넷 액세스(예컨대, FTP)를 통해 스트리밍 콘텐츠 또는 다운로드가능 콘텐츠로서 온-디맨드로 이용가능한 콘텐츠를 포함할 수 있다.
그리드(302)는 온-디맨드 리스팅(314), 녹화된 콘텐츠 리스팅(316), 및 인터넷 콘텐츠 리스팅(318)을 포함하는 비-선형 프로그래밍에 대한 미디어 안내 데이터를 제공할 수 있다. 상이한 타입의 콘텐츠 소스들로부터의 콘텐츠에 대한 미디어 안내 데이터를 결합시키는 디스플레이는 때때로 "혼합 미디어(mixed-media)" 디스플레이라고 지칭된다. 디스플레이(300)와 상이한 디스플레이될 수 있는 미디어 안내 데이터의 타입들의 다양한 치환들(permutations)은 사용자 선택 또는 안내 애플리케이션 정의(예컨대, 녹화된 및 방송 리스팅들만, 온-디맨드 및 방송 리스팅들만 등의 디스플레이)에 기초할 수 있다. 예시된 바와 같이, 리스팅들(314, 316, 및 318)은 이 리스팅들의 선택이 온-디맨드 리스팅들, 녹화된 리스팅들, 또는 인터넷 리스팅들에, 제각기, 전용된 디스플레이에 대한 액세스를 제공할 수 있음을 나타내기 위해 그리드(302)에 디스플레이된 시간 블록 전체에 걸쳐있는 것으로 도시되어 있다. 일부 실시예들에서, 이러한 콘텐츠 타입들에 대한 리스팅들은 그리드(302)에 직접 포함될 수 있다. 부가 미디어 안내 데이터는 사용자가 네비게이션 아이콘들(navigational icons)(320) 중 하나를 선택하는 것에 응답하여 디스플레이될 수 있다. (사용자 입력 디바이스 상의 화살표 키를 누르는 것은 네비게이션 아이콘들(320)을 선택하는 것과 유사한 방식으로 디스플레이에 영향을 줄 수 있다.)
디스플레이(300)는 비디오 영역(322), 및 옵션들 영역(326)을 또한 포함할 수 있다. 비디오 영역(322)은 사용자가 사용자에게 현재 이용가능하거나, 이용가능할 것이거나, 또는 이용가능했던 프로그램들을 보는 것 및/또는 미리보기하는 것을 가능하게 해줄 수 있다. 비디오 영역(322)의 콘텐츠는 그리드(302)에 디스플레이된 리스팅들 중 하나에 대응하거나 또는 그와 독립적일 수 있다. 비디오 영역을 포함한 그리드 디스플레이들은 때때로 PIG(picture-in-guide) 디스플레이들이라고 지칭된다. PIG 디스플레이들 및 그들의 기능들은 2003년 5월 13일자로 등록된(issued) Satterfield 등의 미국 특허 제6,564,378호 및 2001년 5월 29일자로 등록된 Yuen 등의 미국 특허 제6,239,794호에 설명되어 있으며, 이 미국 특허들은 이로써 그 전체가 참고로 본 명세서에 포함된다. PIG 디스플레이들은 본 명세서에 설명된 실시예들의 다른 미디어 안내 애플리케이션 디스플레이 화면들에 포함될 수 있다.
옵션들 영역(326)은 사용자가 상이한 타입의 콘텐츠, 미디어 안내 애플리케이션 디스플레이들, 및/또는 미디어 안내 애플리케이션 특징들에 액세스할 수 있게 해줄 수 있다. 옵션들 영역(326)은 디스플레이(300)(및 본 명세서에 설명된 다른 디스플레이 화면들)의 일부일 수 있거나, 또는 온-스크린 옵션을 선택하는 것 또는 사용자 입력 디바이스 상의 전용 또는 배정가능 버튼을 누르는 것에 의해 사용자에 의해 호출될(invoked) 수 있다. 옵션들 영역(326) 내의 선택가능 옵션들은 그리드(302)에서의 프로그램 리스팅들에 관련된 특징들에 관한 것일 수 있거나, 메인 메뉴 디스플레이로부터 이용가능한 옵션들을 포함할 수 있다. 프로그램 리스팅들에 관련된 특징들은 프로그램을 수신하는 다른 방송 시간들 또는 방식들을 서치하는 것, 프로그램을 녹화하는 것, 프로그램의 시리즈 녹화를 인에이블시키는 것, 프로그램 및/또는 채널을 즐겨찾기(favorite)로서 설정하는 것, 프로그램을 구매하는 것, 또는 다른 특징들을 포함할 수 있다. 메인 메뉴 디스플레이로부터 이용가능한 옵션들은 서치 옵션, VOD 옵션들, 부모 통제 옵션들, 인터넷 옵션들, 클라우드 기반 옵션들, 디바이스 동기화 옵션들, 제2 스크린 디바이스 옵션들, 다양한 타입의 미디어 안내 데이터 디스플레이들에 액세스하기 위한 옵션들, 프리미엄 서비스에 가입하기 위한 옵션들, 사용자의 프로파일을 편집하기 위한 옵션들, 브라우즈 오버레이에 액세스하기 위한 옵션들, 또는 다른 옵션들을 포함할 수 있다.
미디어 안내 애플리케이션은 사용자의 기본설정에 기초하여 개인화될 수 있다. 개인화된 미디어 안내 애플리케이션은 미디어 안내 애플리케이션을 사용하여 개인화된 "경험"을 생성하기 위해 사용자가 디스플레이들 및 특징들을 커스터마이즈할 수 있게 해준다. 이러한 개인화된 경험은 사용자가 이러한 커스터마이제이션들(customizations)을 입력할 수 있게 해주는 것에 의해 그리고/또는 미디어 안내 애플리케이션이 다양한 사용자 기본설정을 결정하기 위해 사용자 활동을 모니터링하는 것에 의해 생성될 수 있다. 사용자들은 로그인하는 것 또는 자신들을 안내 애플리케이션에게 다른 방식으로 식별해주는 것에 의해 자신들의 개인화된 안내 애플리케이션에 액세스할 수 있다. 미디어 안내 애플리케이션의 커스터마이제이션은 사용자 프로파일에 따라 이루어질 수 있다. 커스터마이제이션들은 다양한 프레젠테이션 스킴들(예컨대, 디스플레이들의 컬러 스킴, 텍스트의 글꼴 크기 등), 디스플레이된 콘텐츠 리스팅들의 양태들(예컨대, HDTV만 또는 3D 프로그래밍만, 즐겨찾는 채널 셀렉션들(channel selections)에 기초하여 사용자에 의해 특정된(user-specified) 방송 채널들, 채널들의 디스플레이의 재순서화, 추천된 콘텐츠 등), 원하는 녹화 특징들(예컨대, 특정의 사용자들에 대한 녹화 또는 시리즈 녹화들, 녹화 품질 등), 부모 통제 설정, 인터넷 콘텐츠의 커스터마이즈된 프레젠테이션(예컨대, 소셜 미디어 콘텐츠, 이메일, 전자적으로 전달된 기사들 등의 프레젠테이션) 및 다른 원하는 커스터마이제이션들을 포함할 수 있다.
미디어 안내 애플리케이션은 사용자가 사용자 프로파일 정보를 제공할 수 있게 해줄 수 있거나 사용자 프로파일 정보를 자동으로 컴파일할 수 있다. 미디어 안내 애플리케이션은, 예를 들어, 사용자가 액세스하는 콘텐츠 및/또는 사용자가 안내 애플리케이션과 가질 수 있는 다른 상호작용들을 모니터링할 수 있다. 부가적으로, 미디어 안내 애플리케이션은 (예컨대, www.allrovi.com과 같은, 사용자가 액세스하는 인터넷 상의 다른 웹 사이트들로부터, 사용자가 액세스하는 다른 미디어 안내 애플리케이션들로부터, 사용자가 액세스하는 다른 대화형 애플리케이션들로부터, 사용자의 다른 사용자 장비 디바이스로부터, 기타 등등) 특정의 사용자에 관련된 다른 사용자 프로파일들의 전부 또는 일부를 획득하고, 그리고/또는 미디어 안내 애플리케이션이 액세스할 수 있는 다른 소스들로부터 사용자에 관한 정보를 획득할 수 있다. 그 결과, 사용자는 사용자의 상이한 사용자 장비 디바이스들에 걸쳐 통일된 안내 애플리케이션 경험을 제공받을 수 있다. 이러한 타입의 사용자 경험은 도 6과 관련하여 이하에서 보다 상세히 설명된다. 부가의 개인화된 미디어 안내 애플리케이션 특징들은 2005년 7월 11일자로 출원된 Ellis 등의 미국 특허 출원 공개 제2005/0251827호, 2007년 1월 16일자로 등록된 Boyer 등의 미국 특허 제7,165,098호, 및 2002년 2월 21일자로 출원된 Ellis 등의 미국 특허 출원 공개 제2002/0174430호에 보다 상세히 설명되어 있으며, 이들은 이로써 그 전체가 참고로 본 명세서에 포함된다.
미디어 안내를 제공하기 위한 다른 디스플레이 배열이 도 4에 도시되어 있다. 비디오 모자이크 디스플레이(400)는 콘텐츠 타입, 장르, 및/또는 다른 조직화 기준들에 기초하여 조직화된 콘텐츠 정보에 대한 선택가능 옵션들(402)을 포함한다. 디스플레이(400)에서, 텔레비전 리스팅들(television listings) 옵션(404)이 선택되고, 따라서 방송 프로그램 리스팅들로서 리스팅들(406, 408, 410, 및 412)을 제공한다. 디스플레이(400)에서, 리스팅들은 커버 아트, 콘텐츠로부터의 스틸 이미지들, 비디오 클립 미리보기들, 콘텐츠로부터의 라이브 비디오, 또는 리스팅에서의 미디어 안내 데이터에 의해 설명되는 콘텐츠를 사용자에게 나타내는 다른 타입의 콘텐츠를 포함하는 그래픽 이미지들을 제공할 수 있다. 그래픽 리스팅들 각각은 또한 리스팅과 연관된 콘텐츠에 관한 추가 정보를 제공하기 위해 텍스트를 동반할 수 있다. 예를 들어, 리스팅(408)은 미디어 부분(414) 및 텍스트 부분(416)을 포함하는, 하나 초과의 부분을 포함할 수 있다. 콘텐츠를 전체 화면으로 보기 위해 또는 미디어 부분(414)에 디스플레이된 콘텐츠에 관련된 정보를 보기 위해 (예컨대, 비디오가 디스플레이되는 채널에 대한 리스팅들을 보기 위해) 미디어 부분(414) 및/또는 텍스트 부분(416)이 선택가능할 수 있다.
디스플레이(400)에서의 리스팅들이 상이한 크기들을 갖지만(즉, 리스팅(406)은 리스팅들(408, 410, 및 412)보다 더 큼), 원하는 경우, 모든 리스팅들이 동일한 크기일 수 있다. 관심 정도들을 사용자에게 나타내기 위해 또는, 콘텐츠 제공자에 의해 원하는 바에 따라 또는 사용자 기본설정에 기초하여, 특정 콘텐츠를 강조하기 위해 리스팅들이 상이한 크기들을 가지거나 그래픽적으로 돋보이게(graphically accentuated) 될 수 있다. 콘텐츠 리스팅들을 그래픽적으로 돋보이게 하기 위한 다양한 시스템들 및 방법들은, 예를 들어, 2009년 11월 12일자로 출원된 Yates의 미국 특허 출원 공개 제2010/0153885호에서 논의되며, 이 미국 출원은 이로써 그 전체가 참고로 본 명세서에 포함된다.
사용자들은 그들의 사용자 장비 디바이스들 중 하나 이상으로부터 콘텐츠 및 미디어 안내 애플리케이션(및 이상에서 그리고 이하에서 설명된 그것의 디스플레이 화면들)에 액세스할 수 있다. 도 5는 예시적인 사용자 장비 디바이스(500)의 일반화된 실시예를 도시하고 있다. 사용자 장비 디바이스들의 보다 구체적인 구현들은 도 6과 관련하여 이하에서 논의된다. 사용자 장비 디바이스(500)는 입/출력(이하, "I/O") 경로(502)를 통해 콘텐츠 및 데이터를 수신할 수 있다. I/O 경로(502)는 콘텐츠(예컨대, 방송 프로그래밍, 온-디맨드 프로그래밍, 인터넷 콘텐츠, LAN(local area network) 또는 WAN(wide area network)을 통해 이용가능한 콘텐츠, 및/또는 다른 콘텐츠) 및 데이터를, 프로세싱 회로부(506) 및 스토리지(508)를 포함하는, 제어 회로부(504)에 제공할 수 있다. 제어 회로부(504)는 I/O 경로(502)를 사용하여 커맨드들, 요청들, 및 다른 적당한 데이터를 송신하고 수신하는 데 사용될 수 있다. I/O 경로(502)는 제어 회로부(504)(및 구체적으로는 프로세싱 회로부(506))를 하나 이상의 통신 경로(이하에서 설명됨)에 접속시킬 수 있다. I/O 기능들은 이러한 통신 경로들 중 하나 이상에 의해 제공될 수 있지만, 도면을 과도하게 복잡하게 하는 것을 피하기 위해 도 5에 단일 경로로서 도시되어 있다.
제어 회로부(504)는 프로세싱 회로부(506)와 같은 임의의 적당한 프로세싱 회로부에 기초할 수 있다. 본 명세서에서 지칭된 바와 같이, 프로세싱 회로부는 하나 이상의 마이크로프로세서, 마이크로컨트롤러, 디지털 신호 프로세서, 프로그래머블 로직 디바이스, FPGA(field-programmable gate array), ASIC(application-specific integrated circuit) 등에 기초한 회로부를 의미하는 것으로 이해되어야 하며, 다중 코어 프로세서(예컨대, 듀얼 코어, 쿼드 코어, 헥사 코어, 또는 임의의 적당한 수의 코어들) 또는 수퍼컴퓨터를 포함할 수 있다. 일부 실시예들에서, 프로세싱 회로부는 다수의 개별 프로세서들 또는 프로세싱 유닛들, 예를 들어, 다수의 동일한 타입의 프로세싱 유닛들(예컨대, 2개의 Intel Core i7 프로세서) 또는 다수의 상이한 프로세서들(예컨대, Intel Core i5 프로세서 및 Intel Core i7 프로세서)에 걸쳐 분산될 수 있다. 일부 실시예들에서, 제어 회로부(504)는 메모리(즉, 스토리지(508))에 저장된 미디어 안내 애플리케이션에 대한 명령어들을 실행한다. 구체적으로는, 제어 회로부(504)는 이상에서 그리고 이하에서 논의된 기능들을 수행하도록 미디어 안내 애플리케이션에 의해 명령을 받을 수 있다. 예를 들어, 미디어 안내 애플리케이션은 미디어 안내 디스플레이들을 생성하라는 명령어들을 제어 회로부(504)에 제공할 수 있다. 일부 구현들에서, 제어 회로부(504)에 의해 수행되는 임의의 액션은 미디어 안내 애플리케이션으로부터 수신된 명령어들에 기초할 수 있다.
클라이언트-서버 기반 실시예들에서, 제어 회로부(504)는 안내 애플리케이션 서버 또는 다른 네트워크들 또는 서버들과 통신하기에 적당한 통신 회로부를 포함할 수 있다. 앞서 언급된 기능을 수행하기 위한 명령어들은 안내 애플리케이션 서버 상에 저장될 수 있다. 통신 회로부는 케이블 모뎀, ISDN(integrated services digital network) 모뎀, DSL(digital subscriber line) 모뎀, 전화 모뎀, 이더넷 카드, 또는 다른 장비와의 통신을 위한 무선 모뎀, 또는 임의의 다른 적당한 통신 회로부를 포함할 수 있다. 그러한 통신은 (도 6과 관련하여 보다 상세히 설명되는) 인터넷 또는 임의의 다른 적당한 통신 네트워크들 또는 경로들을 수반할 수 있다. 그에 부가하여, 통신 회로부는 사용자 장비 디바이스들의 피어-투-피어 통신, 또는 서로 멀리 떨어진 위치들에 있는 사용자 장비 디바이스들의 통신을 가능하게 해주는 회로부를 포함할 수 있다(이하에서 보다 상세히 설명됨).
메모리는 제어 회로부(504)의 일부인 스토리지(508)로서 제공된 전자 스토리지 디바이스일 수 있다. 본 명세서에서 지칭된 바와 같이, 문구 "전자 스토리지 디바이스" 또는 "스토리지 디바이스"는, 랜덤 액세스 메모리, 판독 전용 메모리, 하드 드라이브들, 광학 드라이브들, DVD(digital video disc) 레코더들, CD(compact disc) 레코더들, BD(BLU-RAY disc) 레코더들, BLU-RAY 3D 디스크 레코더들, 디지털 비디오 레코더들(DVR, 때때로 개인 비디오 레코더(personal video recorder) 또는 PVR라고 불림), 솔리드 스테이트 디바이스들, 양자 스토리지 디바이스들, 게이밍 콘솔들, 게이밍 매체들, 또는 임의의 다른 적합한 고정식 또는 이동식 스토리지 디바이스들, 및/또는 이들의 임의의 조합과 같은, 전자 데이터, 컴퓨터 소프트웨어, 또는 펌웨어를 저장하기 위한 임의의 디바이스를 의미하는 것으로 이해되어야 한다. 스토리지(508)는 본 명세서에 설명된 다양한 타입의 콘텐츠는 물론 앞서 설명된 미디어 안내 데이터를 저장하는 데 사용될 수 있다. 비휘발성 메모리가 (예컨대, 부트-업 루틴(boot-up routine) 및 다른 명령어들을 론칭하기 위해) 또한 사용될 수 있다. 도 6과 관련하여 설명된, 클라우드 기반 스토리지는 스토리지(508)를 보충하기 위해 또는 스토리지(508) 대신에 사용될 수 있다.
제어 회로부(504)는 비디오 생성 회로부 및, 하나 이상의 아날로그 튜너와 같은, 튜닝 회로부, 하나 이상의 MPEG-2 디코더 또는 다른 디지털 디코딩 회로부, 고화질 튜너들, 또는 임의의 다른 적당한 튜닝 또는 비디오 회로들 또는 그러한 회로들의 조합들을 포함할 수 있다. (예컨대, 오버-디-에어(over-the-air), 아날로그, 또는 디지털 신호들을 저장을 위해 MPEG 신호들로 변환하기 위한) 인코딩 회로부가 또한 제공될 수 있다. 제어 회로부(504)는 콘텐츠를 사용자 장비(500)의 바람직한 출력 포맷으로 업컨버팅(upconverting) 및 다운컨버팅(downconverting)하기 위한 스케일러 회로부(scaler circuitry)를 또한 포함할 수 있다. 회로부(504)는 디지털 신호들과 아날로그 신호들 간을 변환하기 위한 디지털-아날로그 변환기 회로부 및 아날로그-디지털 변환기 회로부를 또한 포함할 수 있다. 튜닝 및 인코딩 회로부는 콘텐츠를 수신하여 디스플레이하기 위해, 재생하기 위해, 또는 녹화하기 위해 사용자 장비 디바이스에 의해 사용될 수 있다. 튜닝 및 인코딩 회로부는 안내 데이터를 수신하는 데 또한 사용될 수 있다. 예를 들어, 튜닝, 비디오 생성, 인코딩, 디코딩, 암호화, 복호화, 스케일러 및 아날로그/디지털 회로부를 포함한, 본 명세서에 설명된 회로부는 하나 이상의 범용 또는 특수 프로세서 상에서 실행되는 소프트웨어를 사용하여 구현될 수 있다. 동시 튜닝 기능들(예컨대, 시청 및 녹화 기능들, PIP(picture-in-picture) 기능들, 다중 튜너 녹화 등)을 핸들링하기 위해 다수의 튜너들이 제공될 수 있다. 스토리지(508)가 사용자 장비(500)와 별개의 디바이스로서 제공되는 경우, (다수의 튜너들을 포함하는) 튜닝 및 인코딩 회로부는 스토리지(508)와 연관될 수 있다.
사용자는 사용자 입력 인터페이스(510)를 사용하여 제어 회로부(504)에게 명령어들을 송신할 수 있다. 사용자 입력 인터페이스(510)는, 리모콘, 마우스, 트랙볼, 키패드, 키보드, 터치 스크린, 터치패드, 스타일러스 입력, 조이스틱, 음성 인식 인터페이스, 또는 다른 사용자 입력 인터페이스들과 같은, 임의의 적당한 사용자 인터페이스일 수 있다. 디스플레이(512)는 독립형 디바이스로서 제공되거나 사용자 장비 디바이스(500)의 다른 요소들과 통합될 수 있다. 예를 들어, 디스플레이(512)는 터치스크린 또는 터치 감응 디스플레이일 수 있다. 이러한 상황에서, 사용자 입력 인터페이스(510)는 디스플레이(512)와 통합되거나 디스플레이(512)와 결합될 수 있다. 디스플레이(512)는 모니터, 텔레비전, 모바일 디바이스용 LCD(liquid crystal display), 비정질 실리콘 디스플레이, 저온 폴리 실리콘 디스플레이, 전자 잉크 디스플레이, 전기 영동 디스플레이, 액티브 매트릭스 디스플레이, 전기 습윤 디스플레이(electro-wetting display), 전기 유체 디스플레이(electrofluidic display), 음극선관 디스플레이, 발광 다이오드 디스플레이, 전자 발광 디스플레이, 플라스마 디스플레이 패널, 고성능 어드레싱 디스플레이(high-performance addressing display), 박막 트랜지스터 디스플레이, 유기 발광 다이오드 디스플레이, 표면 전도 전자 방출 디스플레이(surface-conduction electron-emitter display)(SED), 레이저 텔레비전, 탄소 나노튜브들, 양자점 디스플레이, 간섭계 변조기 디스플레이(interferometric modulator display), 또는 시각적 이미지들을 디스플레이하기 위한 임의의 다른 적당한 장비 중 하나 이상일 수 있다. 일부 실시예들에서, 디스플레이(512)는 HDTV 가능(HDTV-capable)일 수 있다. 일부 실시예들에서, 디스플레이(512)는 3D 디스플레이일 수 있고, 대화형 미디어 안내 애플리케이션 및 임의의 적당한 콘텐츠가 3D로 디스플레이될 수 있다. 비디오 카드 또는 그래픽스 카드는 디스플레이(512)로의 출력을 생성할 수 있다. 비디오 카드는 3D 장면들 및 2D 그래픽들의 가속 렌더링, MPEG-2/MPEG-4 디코딩, TV 출력, 또는 다수의 모니터들을 접속시키는 능력과 같은 다양한 기능들을 제공할 수 있다. 비디오 카드는 제어 회로부(504)와 관련하여 앞서 설명된 임의의 프로세싱 회로부일 수 있다. 비디오 카드는 제어 회로부(504)와 통합될 수 있다. 스피커들(514)은 사용자 장비 디바이스(500)의 다른 요소들과 통합되는 것으로 제공될 수 있거나 독립형 유닛들일 수 있다. 디스플레이(512) 상에 디스플레이되는 비디오들 및 다른 콘텐츠의 오디오 컴포넌트는 스피커들(514)을 통해 재생될 수 있다. 일부 실시예들에서, 오디오는, 오디오를 처리하여 스피커들(514)을 통해 출력하는, 수신기(도시되지 않음)에 분배될 수 있다.
안내 애플리케이션은 임의의 적당한 아키텍처를 사용하여 구현될 수 있다. 예를 들어, 이는 사용자 장비 디바이스(500) 상에 전체적으로 구현된 독립형 애플리케이션일 수 있다. 그러한 접근법에서, 애플리케이션의 명령어들은 로컬적으로(예컨대, 스토리지(508))에 저장되고, 애플리케이션에 의한 사용을 위한 데이터는 (예컨대, 대역외 피드(out-of-band feed)로부터, 인터넷 자원으로부터, 또는 다른 적당한 접근법을 사용하여) 주기적으로 다운로드된다. 제어 회로부(504)는 애플리케이션의 명령어들을 스토리지(508)로부터 리트리브하고 본 명세서에서 논의된 디스플레이들 중 임의의 것을 생성하기 위해 명령어들을 프로세싱할 수 있다. 프로세싱된 명령어들에 기초하여, 제어 회로부(504)는 입력이 사용자 입력 인터페이스(510)로부터 수신될 때 어떤 액션을 수행할지를 결정할 수 있다. 예를 들어, 사용자 입력 인터페이스(510)가 위/아래(up/down) 버튼이 선택되었음을 표시할 때 디스플레이 상의 커서의 위/아래로의 이동이 프로세싱된 명령어들에 의해 표시될 수 있다.
일부 실시예들에서, 미디어 안내 애플리케이션은 클라이언트-서버 기반 애플리케이션이다. 사용자 장비 디바이스(500) 상에 구현된 씩(thick) 또는 씬(thin) 클라이언트에 의한 사용을 위한 데이터는 요청들을 사용자 장비 디바이스(500)에 원격인 서버에 발행함으로써 온-디맨드로 리트리브된다. 클라이언트-서버 기반 안내 애플리케이션의 일 예에서, 제어 회로부(504)는 원격 서버에 의해 제공되는 웹 페이지들을 해석하는 웹 브라우저를 실행한다. 예를 들어, 원격 서버는 애플리케이션에 대한 명령어들을 스토리지 디바이스에 저장할 수 있다. 원격 서버는 저장된 명령어들을 회로부(예컨대, 제어 회로부(504))를 사용하여 프로세싱하고 이상에서 그리고 이하에서 논의된 디스플레이들을 생성할 수 있다. 클라이언트 디바이스는 원격 서버에 의해 생성된 디스플레이들을 수신할 수 있으며, 디스플레이들의 콘텐츠를 장비 디바이스(500) 상에 로컬적으로 디스플레이할 수 있다. 이러한 방식으로, 명령어들의 프로세싱은 서버에 의해 원격적으로 수행되는 반면, 결과적인 디스플레이들은 장비 디바이스(500) 상에 로컬적으로 제공된다. 장비 디바이스(500)는 사용자 입력 인터페이스(510)를 통해 사용자로부터 입력들을 수신하고 대응하는 디스플레이들을 프로세싱하고 생성하기 위해 그 입력들을 원격 서버에게 전송할 수 있다. 예를 들어, 장비 디바이스(500)는 사용자 입력 인터페이스(510)를 통해 위/아래 버튼이 선택되었음을 나타내는 통신을 원격 서버에게 전송할 수 있다. 원격 서버는 그 입력에 따라 명령어들을 프로세싱하고 입력에 대응하는 애플리케이션의 디스플레이(예컨대, 커서를 위/아래로 이동시키는 디스플레이)를 생성할 수 있다. 생성된 디스플레이는 이어서 사용자에게 제시하기 위해 장비 디바이스(500)에게 전송된다.
일부 실시예들에서, 미디어 안내 애플리케이션은 (제어 회로부(504)에 의해 실행되는) 인터프리터(interpreter) 또는 가상 머신에 의해 다운로드되고 해석되거나 다른 방식으로 실행된다. 일부 실시예들에서, 안내 애플리케이션은 EBIF(ETV Binary Interchange Format)로 인코딩되고, 적당한 피드의 일부로서 제어 회로부(504)에 의해 수신되며, 제어 회로부(504) 상에서 실행되는 사용자 에이전트에 의해 해석될 수 있다. 예를 들어, 안내 애플리케이션은 EBIF 애플리케이션일 수 있다. 일부 실시예들에서, 안내 애플리케이션은 제어 회로부(504)에 의해 실행되는 로컬 가상 머신 또는 다른 적당한 미들웨어에 의해 수신되고 실행되는 일련의 자바 기반 파일들에 의해 정의될 수 있다. 그러한 실시예들 중 일부(예컨대, MPEG-2 또는 다른 디지털 미디어 인코딩 스킴들을 이용하는 것들)에서, 안내 애플리케이션은, 예를 들어, 프로그램의 MPEG 오디오 및 비디오 패킷들과 함께 MPEG-2 객체 캐로셀(MPEG-2 object carousel)에 인코딩되어 전송될 수 있다.
도 5의 사용자 장비 디바이스(500)는 도 6의 시스템(600)에서 사용자 텔레비전 장비(602), 사용자 컴퓨터 장비(604), 무선 사용자 통신 디바이스(606), 또는 비-휴대용 게이밍 머신과 같은, 콘텐츠에 액세스하기에 적당한 임의의 다른 타입의 사용자 장비로서 구현될 수 있다. 단순함을 위해, 이러한 디바이스들은 본 명세서에서 집합적으로 사용자 장비 또는 사용자 장비 디바이스들이라고 지칭될 수 있으며, 앞서 설명된 사용자 장비 디바이스들과 실질적으로 유사할 수 있다. 미디어 안내 애플리케이션이 구현될 수 있는 사용자 장비 디바이스들은 독립형 디바이스로서 기능할 수 있거나 디바이스들의 네트워크의 일부일 수 있다. 디바이스들의 다양한 네트워크 구성들이 구현될 수 있으며, 이하에서 보다 상세히 논의된다.
도 5와 관련하여 앞서 설명된 시스템 특징들 중 적어도 일부를 이용하는 사용자 장비 디바이스는 사용자 텔레비전 장비(602), 사용자 컴퓨터 장비(604), 또는 무선 사용자 통신 디바이스(606)로만 분류되지 않을 수 있다. 예를 들어, 사용자 텔레비전 장비(602)는, 일부 사용자 컴퓨터 장비(604)와 같이, 인터넷 콘텐츠에 대한 액세스를 가능하게 해주는 인터넷 가능(Internet-enabled)일 수 있는 반면, 사용자 컴퓨터 장비(604)는, 일부 텔레비전 장비(602)와 같이, 텔레비전 프로그래밍에 대한 액세스를 가능하게 해주는 튜너를 포함할 수 있다. 미디어 안내 애플리케이션은 다양한 상이한 타입의 사용자 장비 상에서 동일한 레이아웃을 가질 수 있거나 사용자 장비의 디스플레이 능력에 맞춰 테일러링될(tailored) 있다. 예를 들어, 사용자 컴퓨터 장비(604) 상에서, 안내 애플리케이션은 웹 브라우저에 의해 액세스되는 웹 사이트로서 제공될 수 있다. 다른 예에서, 안내 애플리케이션은 무선 사용자 통신 디바이스들(606)에 대해 스케일링 다운될(scaled down) 수 있다.
시스템(600)에, 전형적으로 하나 초과의 각각의 타입의 사용자 장비 디바이스가 있지만 도면을 과도하게 복잡하게 하는 것을 피하기 위해 각각의 타입이 단지 하나만 도 6에 도시되어 있다. 그에 부가하여, 각각의 사용자는 하나 초과의 타입의 사용자 장비 디바이스 그리고 또한 하나 초과의 각각의 타입의 사용자 장비 디바이스를 이용할 수 있다.
일부 실시예들에서, 사용자 장비 디바이스(예컨대, 사용자 텔레비전 장비(602), 사용자 컴퓨터 장비(604), 무선 사용자 통신 디바이스(606))는 "제2 스크린 디바이스"라고 지칭될 수 있다. 예를 들어, 제2 스크린 디바이스는 제1 사용자 장비 디바이스 상에 제시된 콘텐츠를 보충할 수 있다. 제2 스크린 디바이스 상에 제시되는 콘텐츠는 제1 디바이스 상에 제시된 콘텐츠를 보충하는 임의의 적당한 콘텐츠일 수 있다. 일부 실시예들에서, 제2 스크린 디바이스는 제1 디바이스의 설정 및 디스플레이 기본설정을 조정하기 위한 인터페이스를 제공한다. 일부 실시예들에서, 제2 스크린 디바이스는 다른 제2 스크린 디바이스들과 상호작용하도록 또는 소셜 네트워크와 상호작용하도록 구성된다. 제2 스크린 디바이스는 제1 디바이스와 동일한 방에, 제1 디바이스와 상이한 방에 그러나 동일한 주택 또는 건물에, 또는 제1 디바이스와 상이한 건물에 위치될 수 있다.
사용자는 또한 가정내 디바이스들 및 원격 디바이스들에 걸쳐 일관된 미디어 안내 애플리케이션 설정을 유지하기 위해 다양한 설정을 설정할 수 있다. 설정은 본 명세서에 설명된 것들은 물론, 채널 및 프로그램 즐겨찾기들, 안내 애플리케이션이 프로그래밍 추천을 하기 위해 이용하는 프로그래밍 기본설정, 디스플레이 기본설정, 및 다른 바람직한 안내 설정을 포함한다. 예를 들어, 사용자가 자신의 사무실에 있는 자신의 개인 컴퓨터 상에서, 예를 들어, 웹 사이트 www.allrovi.com 상에서 하나의 채널을 즐겨찾기로서 설정하는 경우, 동일한 채널이 사용자의 가정내 디바이스들(예컨대, 사용자 텔레비전 장비 및 사용자 컴퓨터 장비)은 물론, 원하는 경우, 사용자의 모바일 디바이스들 상에 즐겨찾기로서 나타날 것이다. 따라서, 하나의 사용자 장비 디바이스 상에서 행해진 변경들은, 동일하거나 상이한 타입의 사용자 장비 디바이스인지에 관계없이, 다른 사용자 장비 디바이스 상에서의 안내 경험을 변경할 수 있다. 그에 부가하여, 행해진 변경들은 사용자에 의해 입력된 설정은 물론, 안내 애플리케이션에 의해 모니터링된 사용자 활동에 기초할 수 있다.
사용자 장비 디바이스는 통신 네트워크(614)에 커플링될 수 있다. 즉, 사용자 텔레비전 장비(602), 사용자 컴퓨터 장비(604), 및 무선 사용자 통신 디바이스(606)는, 제각기, 통신 경로들(608, 610, 및 612)을 통해 통신 네트워크(614)에 커플링된다. 통신 네트워크(614)는 인터넷, 모바일 폰 네트워크, 모바일 음성 또는 데이터 네트워크(예컨대, 4G 또는 LTE 네트워크), 케이블 네트워크, 공중 교환 전화 네트워크, 또는 다른 타입의 통신 네트워크 또는 통신 네트워크들의 조합들을 포함하는 하나 이상의 네트워크일 수 있다. 경로들(608, 610, 및 612)은, 위성 경로, 광 섬유 경로, 케이블 경로, 인터넷 통신(예컨대, IPTV)을 지원하는 경로, (예컨대, 방송 또는 다른 무선 신호들을 위한) 자유 공간 접속들, 또는 임의의 다른 적당한 유선 또는 무선 통신 경로 또는 그러한 경로들의 조합과 같은, 하나 이상의 통신 경로를 개별적으로 또는 함께 포함할 수 있다. 경로(612)는, 도 6에 도시된 예시적인 실시예에서, 그것이 무선 경로임을 나타내기 위해 점선으로 그려져 있고, 경로들(608 및 610)은 그것들이 유선 경로들임을 나타내기 위해 실선으로 그려져 있다(그러나 이 경로들은, 원하는 경우, 무선 경로들일 수 있음). 사용자 장비 디바이스들과의 통신은 이러한 통신 경로들 중 하나 이상에 의해 제공될 수 있지만, 도면을 과도하게 복잡하게 하는 것을 피하기 위해 도 6에 단일 경로로서 도시되어 있다.
비록 사용자 장비 디바이스들 사이에 통신 경로들이 그려져 있지 않지만, 이러한 디바이스들은, 경로들(608, 610, 및 612)과 관련하여 앞서 설명된 것들과 같은, 통신 경로들은 물론, USB 케이블들, IEEE 1394 케이블들, 무선 경로들(예컨대, 블루투스, 적외선, IEEE 802-11x 등), 또는 유선 또는 무선 경로들을 통한 다른 단거리 통신과 같은, 다른 단거리 포인트-투-포인트 통신 통신 경로들을 통해 서로 직접 통신할 수 있다. 블루투스는 Bluetooth SIG, INC.에 의해 소유된 인증 마크이다. 사용자 장비 디바이스들은 또한 통신 네트워크(614)를 경유한 간접 경로를 통해 서로 직접 통신할 수 있다.
시스템(600)은, 제각기, 통신 경로들(620 및 622)을 통해 통신 네트워크(614)에 커플링된 콘텐츠 소스(616) 및 미디어 안내 데이터 소스(618)를 포함한다. 경로들(620 및 622)은 경로들(608, 610, 및 612)과 관련하여 앞서 설명된 통신 경로들 중 임의의 것을 포함할 수 있다. 콘텐츠 소스(616) 및 미디어 안내 데이터 소스(618)와의 통신은 하나 이상의 통신 경로를 통해 교환될 수 있지만, 도면을 과도하게 복잡하게 하는 것을 피하기 위해 도 6에 단일 경로로서 도시되어 있다. 그에 부가하여, 콘텐츠 소스(616) 및 미디어 안내 데이터 소스(618) 각각이 하나 초과 있을 수 있지만, 도면을 과도하게 복잡하게 하는 것을 피하기 위해 각각이 단지 하나만 도 6에 도시되어 있다. (상이한 타입의 이러한 소스들 각각은 이하에서 논의된다.) 원하는 경우, 콘텐츠 소스(616) 및 미디어 안내 데이터 소스(618)는 하나의 소스 디바이스로서 통합될 수 있다. 비록 소스들(616 및 618)과 사용자 장비 디바이스들(602, 604, 및 606) 사이의 통신이 통신 네트워크(614)를 통하는 것으로서 도시되어 있지만, 일부 실시예들에서, 소스들(616 및 618)은 경로들(608, 610, 및 612)과 관련하여 앞서 설명된 것들과 같은 통신 경로들(도시되지 않음)을 통해 사용자 장비 디바이스들(602, 604, 및 606)과 직접 통신할 수 있다.
콘텐츠 소스(616)는 텔레비전 배포 설비, 케이블 시스템 헤드엔드, 위성 배포 설비, 프로그래밍 소스들(예컨대, NBC, ABC, HBO 등과 같은, 텔레비전 방송국들), 중간 배포 설비들 및/또는 서버들, 인터넷 제공자들, 온-디맨드 미디어 서버들, 및 다른 콘텐츠 제공자들을 포함한 하나 이상의 타입의 콘텐츠 배포 장비를 포함할 수 있다. NBC는 National Broadcasting Company, Inc.에 의해 소유된 상표이고, ABC는 American Broadcasting Company, Inc.에 의해 소유된 상표이며, HBO는 Home Box Office, Inc.에 의해 소유된 상표이다. 콘텐츠 소스(616)는 콘텐츠의 창작자(originator)(예컨대, 텔레비전 방송국, 웹캐스트 제공자 등)일 수 있거나 콘텐츠의 창작자가 아닐 수 있다(예컨대, 온-디맨드 콘텐츠 제공자, 다운로드를 위한 방송 프로그램들의 콘텐츠의 인터넷 제공자 등). 콘텐츠 소스(616)는 케이블 소스들, 위성 제공자들, 온-디맨드 제공자들, 인터넷 제공자들, 오버-더-톱(over-the-top) 콘텐츠 제공자들, 또는 다른 콘텐츠 제공자들을 포함할 수 있다. 콘텐츠 소스(616)는 상이한 타입의 콘텐츠(사용자에 의해 선택된 비디오 콘텐츠를 포함함)를, 사용자 장비 디바이스들 중 임의의 것으로부터 멀리 떨어진 위치에, 저장하는 데 사용되는 원격 미디어 서버를 또한 포함할 수 있다. 콘텐츠의 원격 저장, 및 원격적으로 저장된 콘텐츠를 사용자 장비에 제공하는 것을 위한 시스템들 및 방법들은 2010년 7월 20일자로 등록된 Ellis 등의 미국 특허 제7,761,892호와 관련하여 보다 상세히 논의되며, 이 미국 특허는 이로써 그 전체가 참고로 본 명세서에 포함된다.
미디어 안내 데이터 소스(618)는, 앞서 설명된 미디어 안내 데이터와 같은, 미디어 안내 데이터를 제공할 수 있다. 미디어 안내 데이터는 임의의 적당한 접근법을 사용하여 사용자 장비 디바이스들에 제공될 수 있다. 일부 실시예들에서, 안내 애플리케이션은 데이터 피드(예컨대, 연속적인 피드(continuous feed) 또는 트리클 피드(trickle feed))를 통해 프로그램 가이드 데이터를 수신하는 독립형 대화형 텔레비전 프로그램 가이드일 수 있다. 프로그램 스케줄 데이터 및 다른 안내 데이터는 텔레비전 채널 측파대에서, 대역내 디지털 신호를 사용하여, 대역외 디지털 신호를 사용하여, 또는 임의의 다른 적당한 데이터 전송 기법에 의해 사용자 장비에 제공될 수 있다. 프로그램 스케줄 데이터 및 다른 미디어 안내 데이터는 다수의 아날로그 또는 디지털 텔레비전 채널들 상에서 사용자 장비에 제공될 수 있다.
일부 실시예들에서, 미디어 안내 데이터 소스(618)로부터의 안내 데이터는 클라이언트-서버 접근법을 사용하여 사용자들의 장비에 제공될 수 있다. 예를 들어, 사용자 장비 디바이스는 서버로부터 미디어 안내 데이터를 풀링(pull)할 수 있거나, 서버가 미디어 안내 데이터를 사용자 장비 디바이스로 푸싱(push)할 수 있다. 일부 실시예들에서, 사용자의 장비 상에 존재하는 안내 애플리케이션 클라이언트는, 필요할 때, 예를 들어, 안내 데이터가 오래되었을 때 또는 사용자 장비 디바이스가 데이터를 수신하라는 사용자로부터의 요청을 수신할 때, 안내 데이터를 획득하기 위해 소스(618)와의 세션들을 개시할 수 있다. 임의의 적당한 빈도수로(예컨대, 연속적으로, 매일, 사용자에 의해 특정된 시간 기간마다, 시스템에 의해 특정된 시간 기간마다, 사용자 장비로부터의 요청에 응답하여, 기타 등등으로) 미디어 안내가 사용자 장비에 제공될 수 있다. 미디어 안내 데이터 소스(618)는 사용자 장비 디바이스들(602, 604 및 606)에 미디어 안내 애플리케이션 자체 또는 미디어 안내 애플리케이션에 대한 소프트웨어 업데이트들을 제공할 수 있다.
일부 실시예들에서, 미디어 안내 데이터는 시청자 데이터(viewer data)를 포함할 수 있다. 예를 들어, 시청자 데이터는 현재의 및/또는 과거의 사용자 활동 정보(예컨대, 사용자가 전형적으로 어떤 콘텐츠를 시청하는지, 하루 중 어떤 시간들에서 사용자가 콘텐츠를 시청하는지, 사용자가 소셜 네트워크와 상호작용하는지, 어떤 시간들에서 사용자가 정보를 포스팅하기 위해 소셜 네트워크와 상호작용하는지, 사용자가 전형적으로 어떤 타입의 콘텐츠를 시청하는지(예컨대, 유료 TV 또는 무료 TV), 기분, 뇌 활동 정보 등)를 포함할 수 있다. 미디어 안내 데이터는 가입 데이터를 또한 포함할 수 있다. 예를 들어, 가입 데이터는 주어진 사용자가 어느 소스들 또는 서비스들에 가입하는지 및/또는 주어진 사용자가 어느 소스들 또는 서비스들에 이전에 가입했으나 나중에 액세스를 종료했는지(예컨대, 사용자가 프리미엄 채널들에 가입하는지, 사용자가 프리미엄 레벨의 서비스들을 추가했는지, 사용자가 인터넷 속도를 증가시켰는지)를 식별해줄 수 있다. 일부 실시예들에서, 시청자 데이터 및/또는 가입 데이터는 1년 초과의 기간 동안 주어진 사용자의 패턴들을 식별해줄 수 있다. 미디어 안내 데이터는 주어진 사용자가 서비스/소스에 대한 액세스를 종료할 가능성을 나타내는 점수를 생성하는 데 사용되는 모델(예컨대, 생존자 모델(survivor model))을 포함할 수 있다. 예를 들어, 미디어 안내 애플리케이션은 주어진 사용자가 특정의 서비스 또는 소스에 대한 액세스를 종료할지의 가능성을 나타내는 값 또는 점수를 생성하기 위해 모델을 사용하여 시청자 데이터를 가입 데이터와 함께 프로세싱할 수 있다. 상세하게는, 보다 높은 점수는 사용자가 특정의 서비스 또는 소스에 대한 액세스를 종료할 것이라는 보다 높은 신뢰 수준(level of confidence)을 나타낼 수 있다. 점수에 기초하여, 미디어 안내 애플리케이션은 사용자가 액세스를 종료할 가능성이 있을 것으로서 점수에 의해 표시되는 특정의 서비스 또는 소스를 유지하도록 사용자를 유도하는 프로모션들을 생성할 수 있다.
미디어 안내 애플리케이션은, 예를 들어, 사용자 장비 디바이스들 상에 구현된 독립형 애플리케이션들일 수 있다. 예를 들어, 미디어 안내 애플리케이션은 스토리지(508)에 저장되고 사용자 장비 디바이스(500)의 제어 회로부(504)에 의해 실행될 수 있는 소프트웨어 또는 실행가능 명령어들의 세트로서 구현될 수 있다. 일부 실시예들에서, 미디어 안내 애플리케이션들은 클라이언트 애플리케이션만이 사용자 장비 디바이스 상에 존재하고 서버 애플리케이션이 원격 서버 상에 존재하는 클라이언트-서버 애플리케이션들일 수 있다. 예를 들어, 미디어 안내 애플리케이션들은 부분적으로 사용자 장비 디바이스(500)의 제어 회로부(504) 상의 클라이언트 애플리케이션으로서 그리고 부분적으로 원격 서버 상의 제어 회로부 상에서 실행되는 서버 애플리케이션(예컨대, 미디어 안내 데이터 소스(618))으로서 원격 서버 상에 구현될 수 있다. (미디어 안내 데이터 소스(618)와 같이) 원격 서버의 제어 회로부에 의해 실행될 때, 미디어 안내 애플리케이션은 안내 애플리케이션 디스플레이들을 생성하고 생성된 디스플레이들을 사용자 장비 디바이스들에게 전송하도록 제어 회로부에 명령할 수 있다. 서버 애플리케이션은 사용자 장비 상에 저장하기 위한 데이터를 전송하도록 미디어 안내 데이터 소스(618)의 제어 회로부에 명령할 수 있다. 클라이언트 애플리케이션은 안내 애플리케이션 디스플레이들을 생성하도록 수신 사용자 장비의 제어 회로부에 명령할 수 있다.
사용자 장비 디바이스들(602, 604, 및 606)에 전달된 콘텐츠 및/또는 미디어 안내 데이터는 OTT(over-the-top) 콘텐츠일 수 있다. OTT 콘텐츠 전달은, 앞서 설명된 임의의 사용자 장비 디바이스를 포함한, 인터넷 가능 사용자 디바이스들이 케이블 또는 위성 접속들을 통해 수신된 콘텐츠에 부가하여, 앞서 설명된 콘텐츠를 포함한, 인터넷을 통해 전송되는 콘텐츠를 수신할 수 있게 해준다. OTT 콘텐츠는 인터넷 서비스 제공자(ISP)에 의해 제공되는 인터넷 접속을 통해 전달되지만, 서드파티가 콘텐츠를 분배한다. ISP는 콘텐츠의 시청 능력, 저작권, 또는 재분배를 책임지지 않을 수 있으며, OTT 콘텐츠 제공자에 의해 제공된 IP 패킷들을 전송할 수 있을 뿐이다. OTT 콘텐츠 제공자들의 예들은 IP 패킷들을 통해 오디오 및 비디오를 제공하는, YOUTUBE, NETFLIX, 및 HULU를 포함한다. Youtube는 Google Inc.에 의해 소유된 상표이고, Netflix는 Netflix Inc.에 의해 소유된 상표이며, Hulu는 Hulu, LLC에 의해 소유된 상표이다. OTT 콘텐츠 제공자들은 부가적으로 또는 대안적으로 앞서 설명된 미디어 안내 데이터를 제공할 수 있다. 콘텐츠 및/또는 미디어 안내 데이터에 부가하여, OTT 콘텐츠의 제공자들은 미디어 안내 애플리케이션들(예컨대, 웹 기반 애플리케이션들 또는 클라우드 기반 애플리케이션들)을 분배할 수 있거나, 콘텐츠가 사용자 장비 디바이스 상에 저장된 미디어 안내 애플리케이션들에 의해 디스플레이될 수 있다.
미디어 안내 시스템(600)은 콘텐츠에 액세스하고 미디어 안내를 제공하는 목적을 위해 사용자 장비 디바이스들과 콘텐츠 및 안내 데이터의 소스들이 서로 통신할 수 있는 다수의 접근법들 또는 네트워크 구성들을 설명하도록 의도되어 있다. 본 명세서에 설명된 실시예들은 이 접근법들 중 임의의 것 또는 그 서브세트에서, 또는 콘텐츠를 전달하고 미디어 안내를 제공하기 위해 다른 접근법들을 이용하는 시스템에서 적용될 수 있다. 이하의 4가지 접근법은 도 6의 일반화된 예에 대한 특정 예시들을 제공한다.
하나의 접근법에서, 사용자 장비 디바이스들은 홈 네트워크 내에서 서로 통신할 수 있다. 사용자 장비 디바이스들은 앞서 설명된 단거리 포인트-투-포인트 통신 스킴들을 통해 직접, 홈 네트워크 상에 제공된 허브 또는 다른 유사한 디바이스를 통한 간접 경로들을 통해, 또는 통신 네트워크(614)를 통해 서로 통신할 수 있다. 단일 가정 내의 다수의 개인들 각각은 홈 네트워크 상의 상이한 사용자 장비 디바이스들을 동작시킬 수 있다. 그 결과, 다양한 미디어 안내 정보 또는 설정이 상이한 사용자 장비 디바이스들 사이에서 전달되는 것이 바람직할 수 있다. 예를 들어, 사용자들이, 2005년 7월 11일자로 출원된 Ellis 등의 미국 특허 공개 제2005/0251827호에 보다 상세히 설명된 바와 같이, 홈 네트워크 내의 상이한 사용자 장비 디바이스들 상에 일관된 미디어 안내 애플리케이션 설정을 유지하는 것이 바람직할 수 있다. 홈 네트워크 내의 상이한 타입의 사용자 장비 디바이스들은 또한 콘텐츠를 전송하기 위해 서로 통신할 수 있다. 예를 들어, 사용자는 사용자 컴퓨터 장비로부터 휴대용 비디오 플레이어 또는 휴대용 음악 플레이어로 콘텐츠를 전송할 수 있다.
제2 접근법에서, 사용자들은 콘텐츠에 액세스하고 미디어 안내를 획득하는 다수의 타입의 사용자 장비를 가질 수 있다. 예를 들어, 일부 사용자들은 가정내 및 모바일 디바이스들에 의해 액세스되는 홈 네트워크들을 가질 수 있다. 사용자들은 원격 디바이스 상에 구현된 미디어 안내 애플리케이션을 통해 가정내 디바이스들을 제어할 수 있다. 예를 들어, 사용자들은 자신의 사무실에 있는 개인 컴퓨터, 또는 PDA 또는 웹 가능(web-enabled) 모바일 전화와 같은 모바일 디바이스를 통해 웹 사이트 상의 온라인 미디어 안내 애플리케이션에 액세스할 수 있다. 사용자는 사용자의 가정내 장비를 제어하기 위해 온라인 안내 애플리케이션 상에 다양한 설정(예컨대, 녹화, 리마인더(reminders), 또는 다른 설정)을 설정할 수 있다. 온라인 가이드는 직접, 또는 사용자의 가정내 장비 상의 미디어 안내 애플리케이션과 통신하는 것에 의해 사용자의 장비를 제어할 수 있다. 사용자 장비 디바이스들이 서로 멀리 떨어진 위치들에 있는 경우, 사용자 장비 디바이스들이 통신하기 위한 다양한 시스템들 및 방법들은, 예를 들어, 2011년 10월 25일자로 등록된 Ellis 등의 미국 특허 제8,046,801호에서 논의되며, 이 미국 특허는 이로써 그 전체가 참고로 본 명세서에 포함된다.
제3 접근법에서, 가정 내부 및 외부에 있는 사용자 장비 디바이스들의 사용자들은 콘텐츠에 액세스하기 위해 콘텐츠 소스(616)와 직접 통신하는 데 자신의 미디어 안내 애플리케이션을 사용할 수 있다. 구체적으로, 가정 내에서, 사용자 텔레비전 장비(602) 및 사용자 컴퓨터 장비(604)의 사용자들은 바람직한 콘텐츠를 내비게이트하고 찾아내기 위해 미디어 안내 애플리케이션에 액세스할 수 있다. 사용자들은 또한 바람직한 콘텐츠를 내비게이트하고 찾아내기 위해 무선 사용자 통신 디바이스들(606)을 사용하여 가정 외부의 미디어 안내 애플리케이션에 액세스할 수 있다.
제4 접근법에서, 사용자 장비 디바이스들은 클라우드 서비스들에 액세스하기 위해 클라우드 컴퓨팅 환경에서 동작할 수 있다. 클라우드 컴퓨팅 환경에서, 콘텐츠 공유, 저장 또는 분배(예컨대, 비디오 공유 사이트들 또는 소셜 네트워킹 사이트들)를 위한 다양한 타입의 컴퓨팅 서비스들이, "클라우드"라고 지칭되는, 네트워크 액세스가능 컴퓨팅 및 스토리지 자원들의 컬렉션에 의해 제공된다. 예를 들어, 클라우드는 통신 네트워크(614)를 통해 인터넷과 같은 네트워크를 통해 접속된 다양한 타입의 사용자들 및 디바이스들에 클라우드 기반 서비스들을 제공하는, 중앙집중식으로 또는 분산된 위치들에 위치될 수 있는, 서버 컴퓨팅 디바이스들의 컬렉션을 포함할 수 있다. 이러한 클라우드 자원들은 하나 이상의 콘텐츠 소스(616) 및 하나 이상의 미디어 안내 데이터 소스(618)를 포함할 수 있다. 부가적으로 또는 대안적으로, 원격 컴퓨팅 사이트들은, 사용자 텔레비전 장비(602), 사용자 컴퓨터 장비(604), 및 무선 사용자 통신 디바이스(606)와 같은, 다른 사용자 장비 디바이스들을 포함할 수 있다. 예를 들어, 다른 사용자 장비 디바이스들은 비디오의 저장된 사본 또는 스트리밍된 비디오에 대한 액세스를 제공할 수 있다. 그러한 실시예들에서, 사용자 장비 디바이스들은 중앙 서버와 통신하지 않고 피어-투-피어 방식으로 동작할 수 있다.
클라우드는 사용자 장비 디바이스들을 위해, 예들 중에서도 특히, 콘텐츠 저장, 콘텐츠 공유, 또는 소셜 네트워킹 서비스들과 같은, 서비스들에 대한 액세스는 물론, 앞서 설명된 임의의 콘텐츠에 대한 액세스를 제공한다. 서비스들은 클라우드 컴퓨팅 서비스 제공자들을 통해 또는 온라인 서비스들의 다른 제공자들을 통해 클라우드에서 제공될 수 있다. 예를 들어, 클라우드 기반 서비스들은 콘텐츠 저장 서비스, 콘텐츠 공유 사이트, 소셜 네트워킹 사이트, 또는 사용자에 의해 소싱된 콘텐츠(user-sourced content)가 접속된 디바이스들 상에서의 다른 사람들에 의한 시청을 위해 분배되는 다른 서비스들을 포함할 수 있다. 이러한 클라우드 기반 서비스들은 사용자 장비 디바이스가, 콘텐츠를 로컬적으로 저장하고 로컬적으로 저장된 콘텐츠에 액세스하지 않고, 콘텐츠를 클라우드에 저장하고 클라우드로부터 콘텐츠를 수신할 수 있게 해줄 수 있다.
사용자는 콘텐츠를 녹화하기 위해, 캠코더들, 비디오 모드를 갖는 디지털 카메라들, 오디오 레코더들, 모바일 폰들, 및 휴대용 컴퓨팅 디바이스들과 같은, 다양한 콘텐츠 캡처 디바디스들을 사용할 수 있다. 사용자는 클라우드 상의 콘텐츠 저장 서비스에 콘텐츠를 직접, 예를 들어, 사용자 컴퓨터 장비(604) 또는 콘텐츠 캡처 특징을 갖는 무선 사용자 통신 디바이스(606)로부터, 업로드할 수 있다. 대안적으로, 사용자는 먼저 콘텐츠를, 사용자 컴퓨터 장비(604)와 같은, 사용자 장비 디바이스에게 전송할 수 있다. 콘텐츠를 저장하는 사용자 장비 디바이스는 통신 네트워크(614) 상의 데이터 전송 서비스를 사용하여 콘텐츠를 클라우드에 업로드한다. 일부 실시예들에서, 사용자 장비 디바이스 자체는 클라우드 자원이고, 다른 사용자 장비 디바이스들은 사용자가 콘텐츠를 저장한 사용자 장비 디바이스로부터 직접 콘텐츠에 액세스할 수 있다.
클라우드 자원들은, 예를 들어, 웹 브라우저, 미디어 안내 애플리케이션, 데스크톱 애플리케이션, 모바일 애플리케이션, 및/또는 이들의 액세스 애플리케이션들의 임의의 조합을 사용하여 사용자 장비 디바이스에 의해 액세스될 수 있다. 사용자 장비 디바이스는 애플리케이션 전달을 위해 클라우드 컴퓨팅에 의존하는 클라우드 클라이언트일 수 있거나, 사용자 장비 디바이스는 클라우드 자원들에 액세스하지 않고 일부 기능을 가질 수 있다. 예를 들어, 사용자 장비 디바이스 상에서 실행되는 일부 애플리케이션들은 클라우드 애플리케이션들, 즉 인터넷을 통해 서비스로서 전달되는 애플리케이션들일 수 있는 반면, 다른 애플리케이션들은 사용자 장비 디바이스 상에 저장되어 실행될 수 있다. 일부 실시예들에서, 사용자 디바이스는 다수의 클라우드 자원들로부터 동시에 콘텐츠를 수신할 수 있다. 예를 들어, 사용자 디바이스는 제2 클라우드 자원으로부터 콘텐츠를 다운로드하면서 하나의 클라우드 자원으로부터 오디오를 스트리밍할 수 있다. 또는 사용자 디바이스는 보다 효율적인 다운로드를 위해 다수의 클라우드 자원들로부터 콘텐츠를 다운로드할 수 있다. 일부 실시예들에서, 사용자 장비 디바이스들은 도 5와 관련하여 설명된 프로세싱 회로부에 의해 수행되는 프로세싱 동작들과 같은 프로세싱 동작들을 위해 클라우드 자원들을 사용할 수 있다.
본 명세서에서 지칭된 바와 같이, 용어 "~에 응답하여"는 ~의 결과로서 개시됨을 지칭한다. 예를 들어, 제1 액션이 제2 액션에 응답하여 수행된다는 것은 제1 액션과 제2 액션 사이에 중간 단계들(interstitial steps)을 포함할 수 있다. 본 명세서에서 지칭된 바와 같이, 용어 "~에 응답하여 직접"은 ~에 의해 야기됨을 지칭한다. 예를 들어, 제1 액션이 제2 액션에 응답하여 직접 수행된다는 것은 제1 액션과 제2 액션 사이에 중간 단계들을 포함하지 않을 수 있다.
도 7은 본 개시내용의 일부 실시예들에 따른, 사용자 기본설정에 기초하여 미디어 자산들의 출력을 조정하기 위한 예시적인 단계들의 다른 플로차트이다. 예를 들어, 프로세스(700)를 구현하는 미디어 안내 애플리케이션은 제어 회로부(504)(도 5)에 의해 실행될 수 있다. 프로세스(700) 또는 그 임의의 단계가 도 5 및 도 6에 도시된 디바이스들 중 임의의 것 상에서 수행되거나 그에 의해 제공될 수 있다는 점에 유의해야 한다.
프로세스(700)는, 미디어 안내 애플리케이션이 스케줄링된 시간 간격 동안 복수의 콘텐츠 소스들 중 제1 콘텐츠 소스로부터의 제1 미디어 자산을 저장하라는 사용자 요청을 (예컨대, 제어 회로부(504)(도 5)를 통해) 수신하는, 702에서 시작된다. 예를 들어, 미디어 안내 애플리케이션은 (예컨대, 제어 회로부(504)(도 5)를 통해) 오후 4시 내지 6시의 "ESPN" 채널로부터 사용자 입력 인터페이스를 통해(예컨대, 사용자 입력 인터페이스(510)(도 5)를 통해) 특정의 축구 경기 "Michigan 대 USC"를 저장하기 위한 옵션의 사용자 선택을 수신할 수 있다. 사용자는, 특정 팀의 모든 축구 경기들에 대한 시리즈 레코딩 옵션을 통해, 모바일 디바이스를 사용하여 셋톱 박스로부터 원격적으로, 또는 저장될 프로그램들을 선택하기 위한 임의의 다른 방법을 통해, 축구 경기를 프로그램 리스팅 화면에(예컨대, 그리드 가이드(도 3 및 도 4)에) 저장하기 위한 옵션을 선택할 수 있다.
프로세스(700)는, 미디어 안내 애플리케이션이 스케줄링된 시간 간격 동안 제1 콘텐츠 소스로부터의 제1 미디어 자산을 데이터 구조에 엔트리로서 저장하라는 사용자 요청을 (예컨대, 스토리지(508)(도 5)에) 저장하고, 여기서 엔트리는 현재의 콘텐츠 소스를 지시하는 제1 필드를 포함하는, 704로 계속된다. 예를 들어, 미디어 안내 애플리케이션은 (예컨대, 제어 회로부(504)(도 5)를 통해) 사용자가 저장하도록 요청한 미디어 자산들이 전송을 위해 스케줄링될 때 미디어 자산들 및 스케줄링된 간격들의 데이터베이스를 유지할 수 있으며, 이 데이터베이스는 스토리지에(예컨대, 스토리지(508)(도 5)에) 로컬적으로 또는 통신 네트워크를 통해(예컨대, 통신 네트워크(614)(도 6)를 통해) 액세스가능하게 (예컨대, 미디어 안내 데이터 소스(618)(도 6)에) 원격적으로 위치될 수 있다. 특정 예로서, 데이터베이스는 각각의 행이 저장을 위해 스케줄링된 미디어 자산의 식별자, 시작 시간, 종료 시간, 및 미디어 자산이 이용가능한 콘텐츠 소스(즉, 현재의 콘텐츠 소스)를 개별적인 셀들(즉, 필드들)에 포함하는 테이블로서 배열될 수 있다. 미디어 안내 애플리케이션은, SQL 스크립트와 같은, 데이터베이스 질의 언어 스크립트를 (예컨대, 제어 회로부(504)(도 5)를 통해) 실행함으로써 이 정보를 판독/기입할 수 있다. 예를 들어, 미디어 안내 애플리케이션이, 이하에서 추가로 설명되는 바와 같이, 제1 미디어 자산이 상이한 콘텐츠 소스로 재스케줄링되었다고 결정하는 경우, 미디어 안내 애플리케이션은 현재의 콘텐츠 소스를 포함하는 필드를 상이한 콘텐츠 소스로 (예컨대, 제어 회로부(504)(도 5)를 통해) 업데이트할 수 있다.
프로세스(700)는, 미디어 안내 애플리케이션이 제1 콘텐츠 소스로부터의 비디오와 함께 수신된 데이터 패킷들을 (예컨대, 제어 회로부(504)(도 5)를 통해) 모니터링하는, 706으로 계속된다. 예를 들어, 미디어 안내 애플리케이션은 (예컨대, 제어 회로부(504)(도 5)를 통해) 제1 콘텐츠 소스(예컨대, ESPN)로부터 수신된 데이터 패킷들을 체크하여 축구 경기가 제1 콘텐츠 소스로부터 현재 이용가능한지(예컨대, 축구 경기가 ESPN에서 방송 중인지)를 결정하기 위해 프로그램 스크립트를 실행할 수 있다. 미디어 안내 애플리케이션은 (예컨대, 제어 회로부(504)(도 5)를 통해) 데이터 패킷들을 연속적으로, 또는 계산 비용을 감소시키기 위해 미리 결정된 간격들 동안 모니터링할 수 있다.
일부 실시예들에서, 미디어 안내 애플리케이션은 도 1에서 설명된 바와 같이 스케줄링된 시간 간격 외에서 제1 콘텐츠 소스로부터 수신된 데이터 패킷들을 (예컨대, 제어 회로부(504)(도 5)를 통해) 모니터링한다. 미디어 안내 애플리케이션은 이어서 저장되도록 스케줄링된 미디어 자산이 그의 스케줄링된 타임슬롯보다 오래 이어졌고 그리고/또는 그의 스케줄링된 타임슬롯 이전에 시작되었는지를 (예컨대, 제어 회로부(504)(도 5)를 통해) 결정할 수 있다. 미디어 안내 애플리케이션은, 스케줄링된 시간 간격 외의 제1 시간 간격 동안, 제1 콘텐츠 소스로부터의 비디오와 함께 수신된 데이터 패킷들을 (예컨대, 제어 회로부(504)(도 5)를 통해) 모니터링한다. 예를 들어, 미디어 안내 애플리케이션은 프로그램이 시작되도록 스케줄링된 것보다 설정된 시간 전에 제1 콘텐츠 소스로부터의 비디오와 함께 수신된 데이터 패킷들을 (예컨대, 제어 회로부(504)(도 5)를 통해) 모니터링할 수 있으며, 이 설정된 시간은 사용자 커스터마이즈가능할 수 있다(예컨대, 미디어 자산이 시작되도록 스케줄링된 것보다 30분 전). 예시적인 예로서, 미디어 안내 애플리케이션은 스케줄링된 제1 미디어 자산보다 이전에 종료되도록 스케줄링된 스포츠 이벤트가 예상보다 일찍 종료되는 경우 경기전 장면 또는 정보를 (예컨대, 스토리지(508)(도 5)에) 저장할 수 있다.
대안적으로 또는 부가적으로, 미디어 안내 애플리케이션은 미디어 자산의 스케줄링된 종료 시간 이후에 제1 콘텐츠 소스로부터의 비디오와 함께 수신된 데이터 패킷들을 (예컨대, 제어 회로부(504)(도 5)를 통해) 모니터링한다. 예를 들어, 저장되도록 스케줄링된 제1 미디어 자산 자체가 스케줄링된 종료 시간을 넘어 이어질 수 있다. 이 상황에서, 미디어 안내 애플리케이션은 앞서 설명된 바와 같이 제1 콘텐츠 소스로부터 수신된 데이터 패킷들을 (예컨대, 제어 회로부(504)(도 5)를 통해) 계속 모니터링하고 제1 콘텐츠 소스로부터의 비디오와 함께 수신된 데이터 패킷들이 더 이상 미디어 자산의 식별자와 매칭하지 않을 때까지(예컨대, 미디어 자산이 종료되었음을 지시함) 미디어 자산을 계속 저장할 수 있다. 대안적으로 또는 부가적으로, 미디어 안내 애플리케이션은 종료 시에 또는 스케줄링된 시간 간격 후에 앞서 설명된 바와 같이 복수의 콘텐츠 소스들을 서치함으로써 미디어 자산이 종료되었고 다른 콘텐츠 소스로 재스케줄링되지 않았다고 (예컨대, 제어 회로부(504)(도 5)를 통해) 결정할 수 있다.
프로세스(700)는, 미디어 안내 애플리케이션이 모니터링된 데이터 패킷들로부터 제1 미디어 자산 지시자를 (예컨대, 제어 회로부(504)(도 5)를 통해) 추출하는, 708로 계속된다. 예를 들어, 미디어 안내 애플리케이션은, 선언적 "Select" 커맨드를 이용하여 SQL 스크립트를 실행함으로써, 미디어 자산에 대한 오디오비주얼 데이터와 함께 데이터 패킷에서 전송된 테이블 내의 필드로부터 미디어 자산 지시자를 (예컨대, 제어 회로부(504)(도 5)를 통해) 추출할 수 있다. 식별자는 제1 미디어 자산에 고유하여, 미디어 안내 애플리케이션이 제1 미디어 자산을 다른 미디어 자산들과 구별할 수 있게 해주며, 식별자는 미디어 자산의 이름이거나, 콘텐츠 소스로부터의 스케줄링된 전송 시간에 기초한 자동으로 해싱된 정수일 수 있다. 일부 실시예들에서, 미디어 안내 애플리케이션은 (예컨대, 제어 회로부(504)(도 5)를 통해) 제1 콘텐츠 소스로부터의 비디오에 관련된 정보를 포함하는 테이블을 수신한다. 예를 들어, 테이블은, 이하에서 도 2에 추가로 설명되는 바와 같이, 프로그램의 지시자(예컨대, 프로그램에 대응하는 고유한 영숫자 코드) 및 프로그램의 설명과 같은, 제1 콘텐츠 소스로부터 현재 수신되고 있는 프로그램에 관련된 메타데이터를 포함하는 행들로 조직화될 수 있다. 미디어 안내 애플리케이션은 이어서 제1 미디어 자산 지시자에 대응하는 테이블 내의 필드로부터의 값을 리트리브할 수 있다. 예를 들어, 앞서 설명된 바와 같이, 미디어 안내 애플리케이션은, "FTBL1485"와 같은, 지시자를 리트리브할 수 있다.
프로세스(700)는, 미디어 안내 애플리케이션이 추출된 제1 미디어 자산 지시자를 제1 미디어 자산의 식별자와 (예컨대, 제어 회로부(504)(도 5)를 통해) 비교하는, 710로 계속된다. 예를 들어, 미디어 안내 애플리케이션은 (예컨대, 메모리(예컨대, 스토리지(508))에 로컬적으로, 또는 통신 네트워크(예컨대, 통신 네트워크(614))를 통해 액세스가능한 미디어 안내 데이터 소스(예컨대, 미디어 안내 데이터 소스(618))에 원격적으로 저장된) 미디어 자산들의 식별자들을 포함하는 데이터베이스에 (예컨대, 제어 회로부(504)(도 5)를 통해) 액세스하고 미디어 자산 스트림으로부터 추출된 미디어 자산 지시자가 데이터베이스에 저장된 제1 미디어 자산의 식별자와 매칭하는지를 (예컨대, 문자 매칭을 통해) 결정할 수 있다.
일부 실시예들에서, 미디어 안내 애플리케이션은, 사용자 요청으로, 제1 미디어 자산의 식별자를 (예컨대, 제어 회로부(504)(도 5)를 통해) 저장한다. 예를 들어, 미디어 안내 애플리케이션이 축구 경기를 저장하는 (예컨대, 사용자 입력 인터페이스(510)(도 5)로부터의) 사용자 선택을 (예컨대, 제어 회로부(504)(도 5)를 통해) 수신할 때, 미디어 안내 애플리케이션은 축구 경기를 제공하는 콘텐츠 소스로부터의 것일 수 있는 축구 경기의 식별자를 저장한다. 미디어 안내 애플리케이션은 제1 미디어 자산의 식별자의 문자들을 추출된 제1 미디어 자산 지시자의 문자들과 (예컨대, 제어 회로부(504)(도 5)를 통해) 비교할 수 있다. 예를 들어, 미디어 안내 애플리케이션은, "FTBL1485"와 같은, 추출된 지시자의 각각의 문자를 저장된 식별자와 (예컨대, 제어 회로부(504)(도 5)를 통해) 비교할 수 있다. 임계 개수 또는 퍼센티지의 문자들이 매칭하는 경우, 미디어 안내 애플리케이션은 추출된 지시자가 저장된 식별자와 매칭한다고 (예컨대, 제어 회로부(504)(도 5)를 통해) 결정할 수 있다.
프로세스(700)는, 미디어 안내 애플리케이션이 추출된 미디어 자산 지시자가 제1 미디어 자산의 식별자에 대응하는지를 (예컨대, 제어 회로부(504)(도 5)를 통해) 결정하는, 712로 계속된다. 예를 들어, 미디어 안내 애플리케이션은 추출된 지시자가 제1 미디어 자산의 저장된 식별자와 매칭하는지(예컨대, "FTBL1485"가 추출된 지시자 및 저장된 식별자 둘 다인지)를 출력하는 프로그램 스크립트를 (예컨대, 제어 회로부(504)(도 5)를 통해) 실행할 수 있다. 미디어 안내 애플리케이션은 추출된 지시자가 저장된 식별자와 매칭하는지에 기초한 불 결과를 실행된 프로그램 스크립트의 출력으로서 (예컨대, 제어 회로부(504)(도 5)를 통해) 수신할 수 있다.
미디어 안내 애플리케이션이 추출된 미디어 자산 지시자가 제1 미디어 자산의 식별자에 대응한다고 결정하는 경우, 프로세스(700)는, 미디어 안내 애플리케이션이 저장된 엔트리의 제1 필드에 지시된 제1 콘텐츠 소스로부터의 제1 미디어 자산을 (예컨대, 제어 회로부(504)(도 5)를 통해) 저장하는, 714로 계속된다. 예를 들어, 추출된 식별자가 제1 미디어 자산에 대응하는 저장된 식별자와 매칭한다고 결정할 때, 미디어 안내 애플리케이션은, 저장된 엔트리의 제1 필드에 지시된 바와 같이, 원래 스케줄링된 콘텐츠 소스(예컨대, ESPN)로부터 수신된 축구 경기를 (예컨대, 스토리지(508)(도 5)에) 저장할 수 있다. 미디어 안내 애플리케이션은 제1 미디어 자신이 제1 콘텐츠 소스로부터 더 이상 전송되고 있지 않고 상이한 콘텐츠 소스로부터 전송되고 있는지를 결정하기 위해 스케줄링된 시간 간격 전체에 걸쳐 제1 콘텐츠 소스로부터 수신된 데이터 패킷들을 (예컨대, 제어 회로부(504)(도 5)를 통해) 계속 모니터링할 수 있다(예컨대, 프로세스(700)는 단계(706)로 되돌아갈 수 있다).
미디어 안내 애플리케이션이 추출된 미디어 자산 지시자가 제1 미디어 자산의 식별자에 대응하지 않는다고 결정하는 경우, 프로세스(700)는, 미디어 안내 애플리케이션이 제1 미디어 자산의 식별자에 대응하는 제2 미디어 자산 지시자를 포함하는 제2 데이터 패킷이 있는지 복수의 콘텐츠 소스들 상에서 수신된 데이터 패킷들을 (예컨대, 제어 회로부(504)(도 5)를 통해) 서치하는, 716으로 계속된다. 예를 들어, 미디어 안내 애플리케이션은 ESPN으로부터 현재 수신되는 미디어 자산으로부터의 추출된 지시자가 축구 경기의 식별자와 매칭하지 않는 것에 기초하여(예컨대, 앞서 설명된 바와 같이 데이터베이스와의 비교에 기초하여) ESPN에서 오후 4시에 방송하기로 스케줄링된 축구 경기가 현재 방송 중이 아니라고 (예컨대, 제어 회로부(504)(도 5)를 통해) 결정할 수 있다. 이 결정에 응답하여, 미디어 안내 애플리케이션은, 앞서 설명된 바와 같이, 데이터 패킷들로부터 지시자들을 추출하고 추출된 지시자들을 미디어 자산의 식별자와 비교함으로써 미디어 자산이 이용가능한 콘텐츠 소스를 발견하기 위해 사용자가 가입한 다른 콘텐츠 소스들을 (예컨대, 제어 회로부(504)(도 5)를 통해) 스캔할 수 있다.
프로세스(700)는, 미디어 안내 애플리케이션이 복수의 콘텐츠 소스들 중 제2 콘텐츠 소스로부터 수신된 제2 데이터 패킷이 제1 미디어 자산의 식별자에 대응하는 제2 미디어 자산 지시자를 포함하는지를 (예컨대, 제어 회로부(504)(도 5)를 통해) 결정하는, 718로 계속된다. 예를 들어, 미디어 안내 애플리케이션은, 앞서 설명된 바와 같이, 제2 콘텐츠 소스로부터 수신된 데이터 패킷으로부터 미디어 자산 지시자(예컨대, "FTBL1485")를 (예컨대, 제어 회로부(504)(도 5)를 통해) 추출하고 그것이 데이터 구조에 저장된 제1 미디어 자산의 식별자와 (예컨대, 문자 매칭을 통해) 매칭하는지를 결정할 수 있다.
미디어 안내 애플리케이션이 복수의 콘텐츠 소스들 중 제2 콘텐츠 소스로부터 수신된 제2 데이터 패킷이 제1 미디어 자산의 식별자에 대응하는 제2 미디어 자산 지시자를 포함한다고 결정하는 경우, 프로세스(700)는, 미디어 안내 애플리케이션이 제1 미디어 자산이 제2 콘텐츠 소스로부터 전송되고 있음을 지시하기 위해 저장된 엔트리의 제1 필드 내의 현재의 콘텐츠 소스를 (예컨대, 제어 회로부(504)(도 5)를 통해) 업데이트하는, 724로 계속된다. 예를 들어, 축구 경기가 ESPN 대신에 ESPN2에서 방송 중이라고 콘텐츠 소스 "ESPN2"로부터 추출된 데이터 패킷들로부터 결정할 때, 미디어 안내 애플리케이션은 축구 경기가 상이한 콘텐츠 소스인 ESPN2로부터 방송되고 있음을 반영하기 위해 데이터 구조에 저장된 엔트리 내의 현재의 콘텐츠 소스에 대응하는 필드를 (예컨대, 제어 회로부(504)(도 5)를 통해) 업데이트할 수 있다. 특정 예로서, 미디어 안내 애플리케이션은 축구 경기에 대한 저장된 엔트리와 연관된 제1 필드인 콘텐츠 소스 필드에 저장된 값을 업데이트하기 위해 프로그램 스크립트를 (예컨대, 제어 회로부(504)(도 5)를 통해) 실행할 수 있다.
프로세스(700)는 이어서, 미디어 안내 애플리케이션이 현재의 콘텐츠 소스로서 저장된 엔트리의 제1 필드에 지시된 제2 콘텐츠 소스로부터 수신된 제1 미디어 자산을 (예컨대, 스토리지(508)(도 5)에) 저장하는, 726으로 계속된다. 예를 들어, 미디어 안내 애플리케이션은 데이터베이스 내의 엔트리의 제1 필드에 저장되어 있는 업데이트된 현재의 콘텐츠 소스 값에 기초하여 ESPN 대신에 ESPN2로부터의 축구 경기를 (예컨대, 스토리지(508)(도 5)에) 저장할 수 있다. 일부 실시예들에서, 미디어 안내 애플리케이션은 제1 미디어 자산이 다시 제1 콘텐츠 소스 또는 다른 콘텐츠 소스로 스케줄링되었는지를 결정하기 위해 제2 콘텐츠 소스로부터 현재 수신되고 있는 미디어 자산의 데이터 패킷들을 (예컨대, 제어 회로부(504)(도 5)를 통해) 계속 모니터링할 수 있다. 예를 들어, 축구 경기가 ESPN2로 재스케줄링된 이유가 오후 4시에 종료될 것으로 스케줄링된 ESPN에서의 스포츠 이벤트가 오래 이어졌기 때문일 수 있다. 이 상황에서, 제2 콘텐츠 소스로부터의 제1 미디어 자산(예컨대, ESPN2로부터의 축구 경기)을 (예컨대, 스토리지(508)(도 5)에) 저장하는 동안, 미디어 안내 애플리케이션은 축구 경기가 ESPN2로부터 여전히 수신되고 있는지를 (예컨대, 제어 회로부(504)(도 5)를 통해) 계속 모니터링할 수 있다. 10분 후에, ESPN에서의 경기가 끝날 수 있고 "Michigan 대 USC" 축구 경기가 ESPN2로부터 다시 ESPN으로 스케줄링될 수 있다. 스케줄링된 시간 간격 동안 미디어 자산의 오디오비주얼 데이터와 함께 수신된 미디어 자산 지시자를 계속 모니터링함으로써, 미디어 안내 애플리케이션은 언제라도 콘텐츠 소스 변경을 (예컨대, 제어 회로부(504)(도 5)를 통해) 검출하고, 미디어 자산이 현재 이용가능한 콘텐츠 소스로부터 미디어 자산을 발견하여 저장할 수 있다.
일부 실시예들에서, 미디어 안내 애플리케이션은 상이한 콘텐츠 소스들로부터의 다수의 세그먼트들 내의 미디어 자산을 (예컨대, 스토리지(508)(도 5)에) 저장할 수 있다. 예를 들어, 축구 경기가 ESPN2에서 시작될 수 있지만, ESPN에서 오래 이어진 프로그램이 끝났기 때문에 5분 후에 ESPN으로 이동될 수 있다. 이러한 상황에서, 미디어 안내 애플리케이션은, 앞서 논의된 바와 같이, 제2 콘텐츠 소스로부터의 미디어 자산의 제1 세그먼트를 (예컨대, 스토리지(508)(도 5)에) 저장할 수 있다. 예를 들어, 미디어 안내 애플리케이션은, 원래 스케줄링된 바와 같은 ESPN 대신에, 경기의 시작 시에 ESPN2로부터 수신된 축구 경기를 (예컨대, 스토리지(508)(도 5)에) 저장할 수 있다. 미디어 안내 애플리케이션은 이어서 제1 콘텐츠 소스로부터 수신된 제1 미디어 자산의 제2 세그먼트를 (예컨대, 스토리지(508)(도 5)에) 저장할 수 있다. 예를 들어, 미디어 안내 애플리케이션은, 앞서 논의된 바와 같이(예컨대, 단계(718)), 축구 경기가 다시 ESPN으로 스케줄링되었다고 결정할 수 있고 ESPN으로부터 수신된 축구 경기의 제2 세그먼트를 (예컨대, 스토리지(508)(도 5)에) 저장할 수 있다. 미디어 안내 애플리케이션은 이어서 제1 세그먼트와 제2 세그먼트를, 단일의 저장된 파일로, (예컨대, 제어 회로부(504)(도 5)를 통해) 스티칭한다. 예를 들어, 미디어 안내 애플리케이션은 전체 경기에 대한 단일의 저장된 파일이 사용자에 의해 액세스될 수 있도록 축구 경기의 2개의 저장된 세그먼트를 (예컨대, 제어 회로부(504)(도 5)를 통해) 결합시킨다. 미디어 안내 애플리케이션은 단일의 저장된 파일이 제1 콘텐츠 소스 및 제2 콘텐츠 소스로부터 생성되었다는 지시를, 단일의 저장된 파일에, (예컨대, 스토리지(508)(도 5)에) 부가적으로 저장한다. 예를 들어, 미디어 안내 애플리케이션은 저장된 파일이 다수의 콘텐츠 소스들로부터 만들어졌다는 지시를 (예컨대, 스토리지(508)(도 5)에) 저장할 수 있으며, 따라서 사용자는 그 사실을 경고받게 된다.
일부 실시예들에서, 2개의 저장된 세그먼트를 함께 스티칭할 때, 미디어 안내 애플리케이션은 제1 세그먼트와 함께 저장된 메타데이터로부터 제1 세그먼트에 대한 제1 타임 스탬프를 (예컨대, 제어 회로부(504)(도 5)를 통해) 추출한다. 예를 들어, 미디어 안내 애플리케이션은 제1 세그먼트가 "19:00:00"(HH:MM:SS)에서 시작하여 저장되었음을 (예컨대, 제어 회로부(504)(도 5)를 통해) 추출할 수 있다. 미디어 안내 애플리케이션은 제2 세그먼트와 함께 저장된 메타데이터로부터 제2 세그먼트에 대한 제2 타임 스탬프를 (예컨대, 제어 회로부(504)(도 5)를 통해) 추출한다. 예를 들어, 미디어 안내 애플리케이션은 제2 세그먼트가 "19:05:00"(HH:MM:SS)에서 시작하여 저장되었음을 (예컨대, 제어 회로부(504)(도 5)를 통해) 추출할 수 있다. 미디어 안내 애플리케이션은 이어서 제1 타임 스탬프와 제2 타임 스탬프를 (예컨대, 제어 회로부(504)(도 5)를 통해) 비교하여 어느 것이 더 빠른지를 결정한다. 예를 들어, 미디어 안내 애플리케이션은, 2개의 추출된 타임 스탬프를 감산하는 것에 기초하여, 감산으로부터 획득된 결과가 포지티브인지 네거티브인지에 기초하여 어느 것이 더 빠른지를 (예컨대, 제어 회로부(504)(도 5)를 통해) 결정할 수 있다. 미디어 안내 애플리케이션은, 제1 타임 스탬프가 더 빠르다고 결정하는 것에 응답하여, 제2 세그먼트를 제1 세그먼트의 끝부분에 (예컨대, 제어 회로부(504)(도 5)를 통해) 추가한다. 예를 들어, 미디어 안내 애플리케이션은 ESPN으로부터 저장된 제2 세그먼트의 시작부분을 축구 경기의 ESPN2으로부터 저장된 제1 세그먼트의 끝부분에 (예컨대, 제어 회로부(504)(도 5)를 통해) 스티칭한다.
미디어 안내 애플리케이션이 복수의 콘텐츠 소스들 중 제2 콘텐츠 소스로부터 수신된 제2 데이터 패킷이 제1 미디어 자산의 식별자에 대응하는 제2 미디어 자산 지시자를 포함하지 않는다고 결정하는 경우, 프로세스(700)는, 미디어 안내 애플리케이션이 서치되지 않은 임의의 부가 콘텐츠 소스들이 있는지를 (예컨대, 제어 회로부(504)(도 5)를 통해) 결정하는, 720으로 계속된다. 예를 들어, 미디어 안내 애플리케이션은 사용자가 가입하는 콘텐츠 소스들로부터 미디어 자산 지시자들을 포함하는 데이터 패킷들을 반복적으로 수신하고 모든 콘텐츠 소스들로부터의 미디어 자산 지시자들을 포함하는 데이터 패킷들이 체크되었을 때 종료되는 "for" 루프를 포함하는 프로그램 스크립트를 (예컨대, 제어 회로부(504)(도 5)를 통해) 실행할 수 있다. 대안적으로 또는 부가적으로, 미디어 안내 애플리케이션은 데이터 패킷들이 추출된 콘텐츠 소스들의 리스트를 (예컨대, 스토리지(508)(도 5)에) 유지하고, 사용자가 가입한 임의의 콘텐츠 소스들이 아직 체크되지 않았는지를 결정할 수 있다.
미디어 안내 애플리케이션이 서치되지 않은 임의의 부가 콘텐츠 소스들이 없다고 결정하는 경우, 프로세스(700)는, 미디어 안내 애플리케이션이 녹화할 제1 미디어 자산이 없음을 (예컨대, 제어 회로부(504)(도 5)를 통해) 리턴하는, 722로 계속된다. 예를 들어, 미디어 안내 애플리케이션은 축구 경기가 사용자에게 이용가능한 임의의 콘텐츠 소스로부터 전송되고 있지 않다고 (예컨대, 제어 회로부(504)(도 5)를 통해) 결정할 수 있다. 대안적으로 또는 부가적으로, 축구 경기가 사용자에게 이용가능한 임의의 콘텐츠 소스로부터 전송되고 있지 않다고 결정을 내릴 때, 미디어 안내 애플리케이션은 축구 경기가 스케줄 변경으로 인해 저장될 수 없다는 통지를 사용자에게 (예컨대, 통신 네트워크(614)(도 6)를 통해) 전송할 수 있다.
미디어 안내 애플리케이션이 서치되지 않은 부가의 콘텐츠 소스들이 있다고 결정하는 경우, 프로세스(700)는, 미디어 안내 애플리케이션이 제1 미디어 자산의 식별자에 대응하는 제2 미디어 자산 지시자를 포함하는 제2 데이터 패킷이 있는지 서치되지 않은 복수의 콘텐츠 소스들 상에서 수신된 데이터 패킷들을 (예컨대, 제어 회로부(504)(도 5)를 통해) 서치하는, 716으로 돌아간다. 예를 들어, 미디어 안내 애플리케이션은, 앞서 설명된 바와 같이, 축구 경기의 저장된 식별자에 대응하는 미디어 자산 지시자가 있는지 상이한 콘텐츠 소스들로부터 수신된 데이터 패킷들을 (예컨대, 제어 회로부(504)(도 5)를 통해) 계속 서치할 수 있다.
도 7의 단계들 또는 설명들이 본 개시내용의 임의의 다른 실시예에 대해 사용될 수 있는 것이 고려된다. 그에 부가하여, 도 7과 관련하여 설명된 단계들 및 설명들은 본 개시내용의 목적들을 달성하기 위해 대안의 순서들로 또는 병렬로 행해질 수 있다. 예를 들어, 이러한 단계들 각각은 시스템 또는 방법의 지연을 감소시키거나 속도를 증가시키기 위해 임의의 순서 또는 병렬로 또는 실질적으로 동시에 수행될 수 있다. 예를 들어, 각각이 저장을 위해 상이한 미디어 자산들을 수신하도록 스케줄링된 셋톱 박스 내의 다수의 튜너들에 대해 프로세스(700)의 다수의 인스턴스들이 실행될 수 있다. 게다가, 도 5 및 도 6과 관련하여 논의된 디바이스들 또는 장비 중 임의의 것이 도 7에서의 단계들 중 하나 이상을 수행하는 데 사용될 수 있음에 유의해야 한다.
도 8은 본 개시내용의 일부 실시예들에 따른, 복수의 콘텐츠 소스들로부터 수신된 데이터 패킷들을 서치하기 위한 예시적인 단계들의 플로차트이다. 예를 들어, 프로세스(800)를 구현하는 미디어 안내 애플리케이션은 제어 회로부(504)(도 5)에 의해 실행될 수 있다. 프로세스(800) 또는 그 임의의 단계가 도 5 및 도 6에 도시된 디바이스들 중 임의의 것 상에서 수행되거나 그에 의해 제공될 수 있다는 점에 유의해야 한다. 프로세스(800)는, 미디어 안내 애플리케이션이 제1 미디어 자산의 식별자에 대응하는 제2 미디어 자산 지시자를 포함하는 제2 데이터 패킷이 있는지 복수의 콘텐츠 소스들 상에서 수신된 데이터 패킷들을 서치하기 위한 프로세스를 시작하는, 802에서 시작된다. 예를 들어, 미디어 안내 애플리케이션은 필요한 변수를 초기화하고 프로세스(800)를 실행하기 위한 특정의 메소드를 호출하는 프로그램 스크립트를 (예컨대, 제어 회로부(504)(도 5)를 통해) 실행할 수 있다.
프로세스(800)는, 미디어 안내 애플리케이션이 복수의 콘텐츠 소스들에 대한 정보를 포함하는 데이터베이스에 (예컨대, 제어 회로부(504)(도 5)를 통해) 액세스하고, 여기서 그 정보는 복수의 콘텐츠 소스들 중 각각의 콘텐츠 소스와 유사한 복수의 콘텐츠 소스들의 서브세트들의 지시들을 포함하는, 804로 계속된다. 예를 들어, 미디어 안내 애플리케이션은 메모리(예컨대, 스토리지(508)(도 5))에 로컬적으로 또는 통신 네트워크(예컨대, 통신 네트워크(614)(도 6))를 통해 액세스가능한 미디어 안내 데이터 소스(예컨대, 미디어 안내 데이터 소스(618)(도 6))에 원격적으로 저장된 데이터베이스에 액세스할 수 있다. 데이터베이스는 자기 참조 방식으로 설계될 수 있으며, 여기서 각각의 콘텐츠 소스에 대한 식별자들 및 정보는 단일 테이블에 비-연속적으로 포함되고 테이블 내의 유사한 콘텐츠 소스들에 대응하는 적절한 필드들에 포인터들을 통해 링크될 수 있다.
프로세스(800)는, 미디어 안내 애플리케이션이 제2 콘텐츠 소스가 제1 콘텐츠 소스와 유사하다는 지시를 제1 콘텐츠 소스와 연관된 데이터베이스 내의 필드로부터 (예컨대, 제어 회로부(504)(도 5)를 통해) 리트리브하는, 806으로 계속된다. 예를 들어, 미디어 안내 애플리케이션은 제1 콘텐츠 소스와 연관된 필드로부터 제2 콘텐츠 소스의 식별자를 (예컨대, 선언적 "Select" 명령문을 통해) 리트리브하는, SQL 스크립트와 같은, 데이터베이스 질의 언어 스크립트를 (예컨대, 제어 회로부(504)(도 5)를 통해) 실행할 수 있다. 식별자는 콘텐츠 소스를 고유하게 식별해주는 영숫자 또는 다른 문자들의 임의의 조합일 수 있다. 예를 들어, 식별자는 주파수(예컨대, 54 MHz), OTA 채널의 호출 부호(call sign)(예컨대, WXYZ)일 수 있거나, 식별자는 채널의 이름(예컨대, ESPN)일 수 있다.
프로세스(800)는, 미디어 안내 애플리케이션이 제2 콘텐츠 소스를 (예컨대, 제어 회로부(504)(도 5)를 통해) 수신하는, 808로 계속된다. 예를 들어, 앞서 설명된 바와 같이, 미디어 안내 애플리케이션은 어떤 미디어 자산이 제2 콘텐츠 소스에 의해 현재 전송되고 있는지를 결정하기 위해 제2 콘텐츠 소스로부터 (예컨대, 도 2에 도시된 바와 같은) 미디어 자산 정보 데이터 패킷들을 수신할 수 있다.
프로세스(800)는, 미디어 안내 애플리케이션이 제2 미디어 소스 지시자를 제2 콘텐츠 소스로부터 수신된 데이터 패킷들로부터 (예컨대, 제어 회로부(504)(도 5)를 통해) 추출하는, 810으로 계속된다. 도 1 및 도 6에서 앞서 설명된 바와 같이, 미디어 안내 애플리케이션은 어떤 미디어 자산이 제2 콘텐츠 소스로부터 현재 전송되고 있는지를 결정하기 위해 제2 미디어 자산 지시자를 제2 콘텐츠 소스로부터 수신된 데이터 패킷들로부터 (예컨대, 제어 회로부(504)(도 5)를 통해) 추출할 수 있다. 예를 들어, 미디어 안내 애플리케이션은 지시자 "Soccer123"을 (예컨대, 제어 회로부(504)(도 5)를 통해) 추출할 수 있다.
프로세스(800)는, 미디어 안내 애플리케이션이 추출된 제2 미디어 자산 지시자가 제1 미디어 자산의 식별자에 대응하는지를 (예컨대, 제어 회로부(504)(도 5)를 통해) 결정하는, 812로 계속된다. 도 1 및 도 7에서 앞서 설명된 바와 같이, 미디어 안내 애플리케이션은 추출된 지시자(예컨대, "Soccer 123")를 사용자가 저장하도록 요청한 제1 미디어 자산의 식별자와 (예컨대, 제어 회로부(504)(도 5)를 통해) 비교한다. 예를 들어, 미디어 안내 애플리케이션은 추출된 지시자 "Soccer123"의 문자들을 저장된 식별자 "Football678"의 문자들과 (예컨대, 제어 회로부(504)(도 5)를 통해) 비교하고 임계 개수의 문자들이 매칭하는지를 결정할 수 있다.
추출된 제2 미디어 자산 지시자가 제1 미디어 자산의 식별자에 대응하지 않는 경우, 프로세스(800)는, 미디어 안내 애플리케이션이 제1 미디어 자산이 제2 콘텐츠 소스로부터 이용가능하지 않음을 (예컨대, 제어 회로부(504)(도 5)를 통해) 리턴하는, 814로 계속된다. 예를 들어, 미디어 안내 애플리케이션이 제2 미디어 자산 지시자와 제1 미디어 자산의 식별자 사이에서 임계 개수의 문자들이 매칭하지 않는다고 (예컨대, 제어 회로부(504)(도 5)를 통해) 결정하는 경우, 미디어 안내 애플리케이션은 미디어 자산이 제2 콘텐츠 소스로부터 이용가능하지 않음을 리턴할 수 있다. 미디어 안내 애플리케이션은 단계(804)로 되돌아가서 그 콘텐츠 소스들로부터 수신된 데이터 패킷들이 제1 미디어 자산이 현재 전송되고 있음을 나타내는지를 결정하기 위해 모든 콘텐츠 소스들이 체크되었는지를 (예컨대, 제어 회로부(504)(도 5)를 통해) 결정할 수 있다. 미디어 안내 애플리케이션은, 제1 콘텐츠 소스와 연관된 각각의 콘텐츠 소스가 체크될 때까지 또는 사용자에 이용가능한 모든 콘텐츠 소스들이 체크될 때까지 (예컨대, 제어 회로부(504)(도 5)를 통해) 프로세스(800)를 통해 루프를 돌기(loop) 위해 프로그램 스크립트를 실행할 수 있다.
추출된 제2 미디어 자산 지시자가 제1 미디어 자산의 식별자에 대응하는 경우, 프로세스(800)는, 미디어 안내 애플리케이션이 제1 미디어 자산이 제2 콘텐츠 소스로부터 이용가능함을 (예컨대, 제어 회로부(504)(도 5)를 통해) 리턴하는, 816로 계속된다. 예를 들어, 미디어 안내 애플리케이션이 제2 미디어 자산 지시자와 제1 미디어 자산의 식별자 사이에서 임계 개수의 문자들이 매칭한다고 (예컨대, 제어 회로부(504)(도 5)를 통해) 결정하는 경우, 미디어 안내 애플리케이션은 미디어 자산이 제2 콘텐츠 소스로부터 이용가능함을 리턴할 수 있다. 미디어 안내 애플리케이션은 이어서 프로세스(800)를 (예컨대, 제어 회로부(504)(도 5)를 통해) 종료하고 제2 콘텐츠 소스로부터의 제1 미디어 자산을 녹화하기 위해 새로운 프로세스를 실행할 수 있다.
도 8의 단계들 또는 설명들이 본 개시내용의 임의의 다른 실시예에 대해 사용될 수 있는 것이 고려된다. 그에 부가하여, 도 8과 관련하여 설명된 단계들 및 설명들은 본 개시내용의 목적들을 달성하기 위해 대안의 순서들로 또는 병렬로 행해질 수 있다. 예를 들어, 이러한 단계들 각각은 시스템 또는 방법의 지연을 감소시키거나 속도를 증가시키기 위해 임의의 순서 또는 병렬로 또는 실질적으로 동시에 수행될 수 있다. 예를 들어, 셋톱 박스 내의 다수의 튜너들 각각이 상이한 콘텐츠 소스들을 병렬로 수신하도록 프로세스(800)의 다수의 인스턴스들이 실행될 수 있다. 이것은 미디어 안내 애플리케이션이 제1 미디어 소스가 그 콘텐츠 소스들로부터 전송되고 있는지를 결정하기 위해 제1 콘텐츠 소스와 연관된 다수의 콘텐츠 소스들을 병렬로 체크할 수 있게 해준다. 게다가, 도 5 및 도 6과 관련하여 논의된 디바이스들 또는 장비 중 임의의 것이 도 8에서의 단계들 중 하나 이상을 수행하는 데 사용될 수 있음에 유의해야 한다.
도 9는 본 개시내용의 일부 실시예들에 따른, 저장된 미디어 자산이 미디어 자산의 완전한 버전인지를 결정하기 위한 예시적인 단계들의 플로차트이다. 예를 들어, 프로세스(900)를 구현하는 미디어 안내 애플리케이션은 제어 회로부(504)(도 5)에 의해 실행될 수 있다. 프로세스(900) 또는 그 임의의 단계가 도 5 및 도 6에 도시된 디바이스들 중 임의의 것 상에서 수행되거나 그에 의해 제공될 수 있다는 점에 유의해야 한다. 프로세스(900)는, 미디어 안내 애플리케이션이 저장된 제1 미디어 자산이 완전한지를 결정하기 위한 프로세스를 시작하는, 902에서 시작된다. 예를 들어, 미디어 안내 애플리케이션은 필요한 변수를 초기화하고 프로세스(900)를 실행하기 위한 특정의 메소드를 호출하는 프로그램 스크립트를 (예컨대, 제어 회로부(504)(도 5)를 통해) 실행할 수 있다.
프로세스(900)는, 미디어 안내 애플리케이션이 저장된 제1 미디어 자산의 지속기간을 (예컨대, 제어 회로부(504)(도 5)를 통해) 결정하는, 904로 계속된다. 예를 들어, 미디어 안내 애플리케이션은 저장된 제1 미디어 자산과 함께 (예컨대, 스토리지(508)(도 5)에) 저장된 메타데이터인, "7100초"일 수 있는, "program_length" 변수에 저장된 값을 (예컨대, 제어 회로부(504)(도 5)를 통해) 리트리브할 수 있다. 대안적으로 또는 부가적으로, 미디어 안내 애플리케이션은 제1 미디어 자산이 처음으로 저장된 시작 시간 및 미디어 안내 애플리케이션에 의해 저장되는 것이 중지된 종료 시간을 (예컨대, 제어 회로부(504)(도 5)를 통해) 리트리브하고 2개의 값을 차감하는 것을 통해 지속기간을 산출할 수 있다.
프로세스(900)는, 미디어 안내 애플리케이션이 저장된 제1 미디어 자산의 지속기간을 스케줄링된 시간 간격과 (예컨대, 제어 회로부(504)(도 5)를 통해) 비교하는, 906로 계속된다. 예를 들어, 미디어 안내 애플리케이션은 스케줄링된 시간 간격의 길이로부터 저장된 제1 미디어 자산의 지속기간을 (예컨대, 제어 회로부(504)(도 5)를 통해) 차감할 수 있다. 특정 예로서, 저장된 제1 미디어 자산의 지속기간이 7100초이고 스케줄링된 시간 간격의 길이가 7200초인 경우, 미디어 안내 애플리케이션은 저장된 제1 미디어 자산이 스케줄링된 시간 간격보다 100초 더 짧다고 (예컨대, 제어 회로부(504)(도 5)를 통해) 결정할 수 있으며, 이는 제1 미디어 자산의 일부분이 저장되지 않았음을 나타낼 수 있다.
프로세스(900)는, 미디어 안내 애플리케이션이 저장된 제1 미디어 자산의 지속기간이 스케줄링된 시간 간격보다 짧은지를 (예컨대, 제어 회로부(504)(도 5)를 통해) 결정하는, 908로 계속된다. 예를 들어, 앞서 설명된 바와 같이, 미디어 안내 애플리케이션은 저장된 제1 미디어 자산이 짧은 경우 스케줄링된 시간 간격의 길이로부터 저장된 제1 미디어 자산의 지속기간을 차감한 결과로서, 포지티브 값을 (예컨대, 제어 회로부(504)(도 5)를 통해) 산출할 수 있다. 이와 달리, 값이 네거티브인 경우, 저장된 제1 미디어 자산이 스케줄링된 시간 간격보다 길며, 어쩌면 제1 미디어 자산이 그 전체가 올바르게 저장되었음을 나타낸다. 일부 실시예들에서, 앞서 설명된 바와 같이, 보다 정확한 비교 및 결정을 하기 위해 사용될 수 있는 제1 미디어 자산의 실제 지속기간이 제1(및/또는 제2) 콘텐츠 소스로부터 미디어 안내 애플리케이션에 의해 (예컨대, 제어 회로부(504)(도 5)를 통해) 수신될 수 있다.
미디어 안내 애플리케이션이 저장된 미디어 자산의 지속기간이 스케줄링된 시간 간격보다 짧지 않다고 결정하는 경우, 프로세스(900)는, 미디어 안내 애플리케이션이 저장된 제1 미디어 자산이 완전함을 (예컨대, 제어 회로부(504)(도 5)를 통해) 리턴하는, 910으로 계속된다. 예를 들어, 미디어 안내 애플리케이션에 의해 산출된 값이 앞서 설명된 바와 같이 네거티브인 경우, 미디어 안내 애플리케이션은 저장된 제1 미디어 자산이 완전함을 (예컨대, 제어 회로부(504)(도 5)를 통해) 리턴하고 프로세스(900)를 종료할 수 있다.
미디어 안내 애플리케이션이 저장된 미디어 자산의 지속기간이 스케줄링된 시간 간격보다 짧다고 결정하는 경우, 프로세스(900)는, 미디어 안내 애플리케이션이 저장된 제1 미디어 자산의 지속기간과 스케줄링된 시간 간격 사이의 차이를 임계 차이와 (예컨대, 제어 회로부(504)(도 5)를 통해) 비교하는, 912로 계속된다. 예를 들어, 미디어 안내 애플리케이션은 임계 차이에 대응하는 사용자 프로파일에 저장된 값을 (예컨대, 제어 회로부(504)(도 5)를 통해) 리트리브할 수 있다. 사용자가, 저장된 미디어 자산이 필수적인 양의 콘텐츠를 누락하고 있다(예컨대, 그것이 완전하지 않다고)고 결정하기 전에, 미디어 자산의 어떤 비율이 저장된 미디어 자산으로부터 누락되어도 용인가능한지를 결정하도록, 임계 차이가 사용자에 의해 조정가능할 수 있다. 특정 예로서, 미디어 안내 애플리케이션은 임계 차이 "60초"를 (예컨대, 제어 회로부(504)(도 5)를 통해) 리트리브할 수 있다. 미디어 안내 애플리케이션은 이어서 임계 차이(예컨대, 60초)를 단계(906)에서 앞서 결정된 차이(예컨대, 100초)와 (예컨대, 제어 회로부(504)(도 5)를 통해) 비교할 수 있다.
프로세스(900)는, 미디어 안내 애플리케이션이 저장된 제1 미디어 자산의 지속기간과 스케줄링된 시간 간격 사이의 차이가 임계 차이를 충족시키는지를 (예컨대, 제어 회로부(504)(도 5)를 통해) 결정하는, 914로 계속된다. 예를 들어, 미디어 안내 애플리케이션은 단계(906)에서 결정된 차이로부터 임계 차이를 (예컨대, 제어 회로부(504)(도 5)를 통해) 차감하여 그 값이 포지티브인지 네거티브인지를 결정할 수 있다. 미디어 안내 애플리케이션이 네거티브 값을 산출하는 경우, 미디어 안내 애플리케이션은 임계 차이가 충족되지 않는다고 (예컨대, 제어 회로부(504)(도 5)를 통해) 결정할 수 있다. 미디어 안내 애플리케이션이 포지티브 또는 제로 값을 산출하는 경우, 미디어 안내 애플리케이션은 임계 차이가 충족된다고 (예컨대, 제어 회로부(504)(도 5)를 통해) 결정할 수 있다.
미디어 안내 애플리케이션이 저장된 미디어 자산의 지속기간과 스케줄링된 시간 간격 사이의 차이가 임계 차이를 충족시키지 않는다고 결정하는 경우, 프로세스(900)는, 미디어 안내 애플리케이션이 저장된 제1 미디어 자산이 완전함을 (예컨대, 제어 회로부(504)(도 5)를 통해) 리턴하는, 910으로 계속된다. 예를 들어, 미디어 안내 애플리케이션에 의해 산출된 값이 앞서 설명된 바와 같이 임계 차이를 충족시키지 않는 경우, 미디어 안내 애플리케이션은 저장된 제1 미디어 자산이 완전함을 (예컨대, 제어 회로부(504)(도 5)를 통해) 리턴하고 프로세스(900)를 종료할 수 있다.
미디어 안내 애플리케이션이 저장된 미디어 자산의 지속기간과 스케줄링된 시간 간격 사이의 차이가 임계 차이를 충족시킨다고 결정하는 경우, 프로세스(900)는, 미디어 안내 애플리케이션이 저장된 제1 미디어 자산이 완전하지 않음을 (예컨대, 제어 회로부(504)(도 5)를 통해) 리턴하는, 910으로 계속된다. 예를 들어, 미디어 안내 애플리케이션에 의해 산출된 값이 앞서 설명된 바와 같이 임계 차이를 충족시키는 경우, 미디어 안내 애플리케이션은 저장된 제1 미디어 자산이 완전하지 않음을 (예컨대, 제어 회로부(504)(도 5)를 통해) 리턴할 수 있고 프로세스(900)를 종료할 수 있다.
일부 실시예들에서, 저장된 미디어 자산의 지속기간과 스케줄링된 시간 간격 사이의 차이가 임계 차이를 충족시킨다고 결정하는 것에 응답하여, 미디어 안내 애플리케이션은, 미디어 안내 데이터베이스로부터 리트리브된 미디어 자산 리스팅들로부터(예컨대, 미디어 안내 데이터 소스(618)(도 6)로부터), 제1 미디어 자산이 미래의 시간에 이용가능한지를 (예컨대, 제어 회로부(504)(도 5)를 통해) 부가적으로 결정한다. 예를 들어, 미디어 안내 애플리케이션은 임계치(예컨대, 5분)를 초과하는 축구 경기의 일부분(예컨대, 1시간)이 저장되지 않았을 수 있다고 (예컨대, 제어 회로부(504)(도 5)를 통해) 결정하고, 이어서 미디어 자산이 미래의 시간에 이용가능한지(예컨대, 재방송)를 결정하기 위해 미디어 안내 데이터 소스로부터 리스팅들을 리트리브할 수 있다. 미디어 안내 애플리케이션은 미디어 자산이 미래의 시간에 이용가능하다고 결정을 내리기 위해 미디어 자산의 식별자의 문자들을 개별 리스팅들과 (예컨대, 제어 회로부(504)(도 5)를 통해) 비교할 수 있다. 미디어 안내 애플리케이션은, 제1 미디어 자산이 미래의 시간에 제3 콘텐츠 소스로부터 이용가능하다고 결정하는 것에 응답하여, 제3 콘텐츠 소스로부터의 제1 미디어 자산을 저장하라는 (예컨대, 제어 회로부(504)(도 5)를 통한) 제2 요청을 (예컨대, 도 7에서 앞서 논의된 바와 같은, 테이블과 같은, 데이터 구조에) 저장한다. 예를 들어, 미디어 안내 애플리케이션은 미디어 자산이, 제1, 제2, 또는 상이한 콘텐츠 소스일 수 있는, 제3 콘텐츠 소스로부터 이용가능하다고 (예컨대, 제어 회로부(504)(도 5)를 통해) 결정하고, 제3 콘텐츠 소스(예컨대, ABC)로부터의 미디어 자산을 저장하라는 요청을 스케줄링할 수 있다. 미디어 자산의 재방송을 스케줄링함으로써, 미디어 안내 애플리케이션은 원래의 저장된 미디어 자산이 완전했는지(예컨대, 그것이 그의 스케줄링된 간격보다 일찍 종료되었는지) 또는 그것이 미디어 자산의 일부분을 누락했는지를 (예컨대, 제어 회로부(504)(도 5)를 통해) 결정할 수 있다.
일부 실시예들에서, 미디어 안내 애플리케이션은 미래의 시간에 스케줄링된 미디어 자산의 일부분만을 저장한다. 미디어 안내 애플리케이션은, 저장된 미디어 자산의 복수의 프레임들 중 각각의 프레임에 대해 저장된 메타데이터로부터, 복수의 프레임들 중 각각의 프레임과 연관된 시간들을 (예컨대, 제어 회로부(504)(도 5)를 통해) 리트리브한다. 예를 들어, 미디어 안내 애플리케이션에 의해 수신되고 저장된 각각의 프레임은 프레임이 콘텐츠 소스로부터 전송된 시간을 갖는 관련 메타데이터(예컨대, HH:MM:SS:FF 포맷으로 되어 있음, 여기서 FF는 프레임 번호임)를 가질 수 있다. 미디어 안내 애플리케이션은 제1 미디어 자산의 일부분이 제1 프레임과 제2 프레임 사이에서 누락되었다고 (예컨대, 제어 회로부(504)(도 5)를 통해) 결정할 수 있다. 예를 들어, 미디어 안내 애플리케이션은 관련 시간 19:05:00:01을 갖는 프레임 이후에, 다음의 프레임이 관련 시간 19:10:00:01을 갖는다고 검출할 수 있으며, 미디어 안내 애플리케이션은 일부분(예컨대, 5분의 미디어 자산)이 저장된 미디어 자산으로부터 누락되었다고 (예컨대, 제어 회로부(504)(도 5)를 통해) 결정할 수 있다. 미디어 안내 애플리케이션은 이어서, 제2 요청으로, 제1 미디어 자산의 제1 부분만을 저장하라는 명령을 (예컨대, 스토리지(508)(도 5)에) 저장할 수 있다. 예를 들어, 스토리지 집약적일 수 있는, 전체 미디어 자산을 또다시 저장하지 않으면서 미디어 자산의 완전한 버전을 생성하기 위해, 미디어 안내 애플리케이션은 저장된 제1 미디어 자산으로부터 누락된 미디어 자산의 프레임들(예컨대, 제1 부분)만을 저장하라는 명령을 저장한다.
도 9의 단계들 또는 설명들이 본 개시내용의 임의의 다른 실시예에 대해 사용될 수 있는 것이 고려된다. 그에 부가하여, 도 9과 관련하여 설명된 단계들 및 설명들은 본 개시내용의 목적들을 달성하기 위해 대안의 순서들로 또는 병렬로 행해질 수 있다. 예를 들어, 이러한 단계들 각각은 시스템 또는 방법의 지연을 감소시키거나 속도를 증가시키기 위해 임의의 순서 또는 병렬로 또는 실질적으로 동시에 수행될 수 있다. 예를 들어, 다수의 저장된 미디어 자산들이 완전성에 대해 병렬로 체크되도록 프로세스(900)의 다수의 인스턴스들이 실행될 수 있다. 게다가, 도 5 및 도 6과 관련하여 논의된 디바이스들 또는 장비 중 임의의 것이 도 9에서의 단계들 중 하나 이상을 수행하는 데 사용될 수 있음에 유의해야 한다.
본 개시내용의 앞서 설명된 실시예들은 제한이 아니라 예시의 목적을 위해 제시된 것이며, 본 개시내용은 이하의 청구항들에 의해서만 제한된다. 게다가, 임의의 일 실시예에서 설명된 특징들 및 제한들이 본 명세서에서의 임의의 다른 실시예에 적용될 수 있으며, 일 실시예에 관련된 플로차트들 또는 예들이 임의의 다른 실시예와 적당한 방식으로 결합되거나, 상이한 순서들로 행해지거나, 또는 병렬로 행해질 수 있다는 점에 유의해야 한다. 그에 부가하여, 본 명세서에 설명된 시스템들 및 방법들은 실시간으로 수행될 수 있다. 앞서 설명된 시스템들 및/또는 방법들이 다른 시스템들 및/또는 방법들에 적용될 수 있거나 그에 따라 사용될 수 있음에 또한 유의해야 한다.

Claims (51)

  1. 하나의 콘텐츠 소스로부터의 저장되도록 스케줄링된 미디어 자산이 다른 콘텐츠 소스로부터의 전송을 위해 재스케줄링되었다고 결정하기 위한 방법으로서,
    제1 콘텐츠 소스로부터의 전송을 위해 스케줄링된 제1 미디어 자산을 저장하라는 사용자 요청을 수신하는 단계;
    상기 제1 콘텐츠 소스로부터의 비디오와 함께 수신된 데이터 패킷에 기초하여 상기 미디어 자산이 상기 제1 콘텐츠 소스로부터 현재 전송되고 있는지를 결정하는 단계;
    상기 미디어 자산이 상기 제1 콘텐츠 소스로부터 현재 전송되고 있지 않다고 결정하는 것에 응답하여, 상기 미디어 자산이 제2 콘텐츠 소스로부터 현재 전송되고 있음을 지시하는(indicate) 정보가 있는지 복수의 콘텐츠 소스들로부터 수신된 데이터 패킷들을 서치(search)하는 단계; 및
    상기 제1 미디어 자산을 저장하기 위해 상기 제2 콘텐츠 소스에 액세스하는 단계
    를 포함하는, 방법.
  2. 하나의 콘텐츠 소스로부터의 저장되도록 스케줄링된 미디어 자산이 다른 콘텐츠 소스로부터의 전송을 위해 재스케줄링되었다고 결정하기 위한 방법으로서,
    스케줄링된 시간 간격 동안 복수의 콘텐츠 소스들 중 제1 콘텐츠 소스로부터의 제1 미디어 자산을 저장하라는 사용자 요청을 수신하는 단계;
    상기 스케줄링된 시간 간격 동안 상기 제1 콘텐츠 소스로부터의 상기 제1 미디어 자산을 데이터 구조에 엔트리로서 저장하라는 상기 사용자 요청을 저장하는 단계 - 상기 엔트리는 현재의 콘텐츠 소스를 지시하는 제1 필드를 포함함 -;
    상기 스케줄링된 시간 간격 동안:
    상기 제1 콘텐츠 소스로부터의 비디오와 함께 수신된 데이터 패킷들을 모니터링하는 단계;
    상기 모니터링된 데이터 패킷들로부터 제1 미디어 자산 지시자를 추출하는 단계; 및
    상기 추출된 제1 미디어 자산 지시자를 상기 제1 미디어 자산의 식별자와 비교하는 단계;
    상기 추출된 미디어 자산 지시자가 상기 제1 미디어 자산의 상기 식별자에 대응하지 않는다고 결정하는 것에 응답하여, 상기 제1 미디어 자산의 상기 식별자에 대응하는 제2 미디어 자산 지시자를 포함하는 제2 데이터 패킷이 있는지 상기 복수의 콘텐츠 소스들 상에서 수신된 데이터 패킷들을 서치하는 단계;
    상기 복수의 콘텐츠 소스들 중 제2 콘텐츠 소스로부터 수신된 상기 제2 데이터 패킷이 상기 제1 미디어 자산의 상기 식별자에 대응하는 상기 제2 미디어 자산 지시자를 포함한다고 결정하는 것에 응답하여, 상기 제1 미디어 자산이 상기 제2 콘텐츠 소스로부터 전송되고 있음을 지시하기 위해 상기 저장된 엔트리의 상기 제1 필드 내의 상기 현재의 콘텐츠 소스를 업데이트하는 단계; 및
    상기 저장된 엔트리의 상기 제1 필드에 지시된 상기 현재의 콘텐츠 소스로부터의 상기 제1 미디어 자산을 저장하는 단계
    를 포함하는, 방법.
  3. 제2항에 있어서,
    상기 스케줄링된 시간 간격 외의 제1 시간 간격 동안:
    상기 제1 콘텐츠 소스로부터의 상기 비디오와 함께 수신된 상기 데이터 패킷들을 모니터링하는 단계;
    상기 모니터링된 데이터 패킷들로부터 상기 제1 미디어 자산 지시자를 추출하는 단계; 및
    상기 추출된 제1 미디어 자산 지시자를 상기 제1 미디어 자산의 상기 식별자와 비교하는 단계;
    상기 추출된 제1 미디어 자산 지시자가 상기 제1 미디어 자산의 상기 식별자에 대응한다고 결정하는 것에 응답하여, 상기 저장된 엔트리의 상기 제1 필드에 지시된 상기 제1 콘텐츠 소스로부터의 상기 제1 미디어 자산을 저장하는 단계
    를 더 포함하는, 방법.
  4. 제2항에 있어서, 상기 제1 미디어 자산의 상기 식별자에 대응하는 상기 제2 미디어 자산 지시자를 포함하는 상기 제2 데이터 패킷이 있는지 상기 복수의 콘텐츠 소스들 상에서 수신된 상기 데이터 패킷들을 서치하는 단계는:
    복수의 콘텐츠 소스들에 대한 정보를 포함하는 데이터베이스에 액세스하는 단계 - 상기 정보는 상기 복수의 콘텐츠 소스들의 각각의 콘텐츠 소스와 유사한 상기 복수의 콘텐츠 소스들의 서브세트들의 지시들(indications)을 포함함 -;
    상기 제2 콘텐츠 소스가 상기 제1 콘텐츠 소스와 유사하다는 지시를 상기 제1 콘텐츠 소스와 연관된 상기 데이터베이스 내의 필드로부터 리트리브(retrieve)하는 단계; 및
    상기 제1 미디어 자산의 상기 식별자에 대응하는 상기 제2 미디어 자산 지시자가 있는지 상기 제2 콘텐츠 소스로부터의 데이터 패킷들을 서치하는 단계를 포함하는, 방법.
  5. 제2항에 있어서, 상기 모니터링된 데이터 패킷들로부터 상기 제1 미디어 자산 지시자를 추출하는 단계는:
    상기 제1 콘텐츠 소스로부터의 상기 비디오에 관련된 정보를 포함하는 테이블을 수신하는 단계; 및
    상기 제1 미디어 자산 지시자에 대응하는 상기 테이블 내의 필드로부터의 값을 리트리브하는 단계를 포함하는, 방법.
  6. 제2항에 있어서, 상기 추출된 제1 미디어 자산 지시자를 상기 제1 미디어 자산의 상기 식별자와 비교하는 단계는:
    상기 사용자 요청으로, 상기 제1 미디어 자산의 상기 식별자를 저장하는 단계; 및
    상기 제1 미디어 자산의 상기 식별자의 문자들을 상기 추출된 제1 미디어 자산 지시자의 문자들과 비교하는 단계를 포함하는, 방법.
  7. 제2항에 있어서, 상기 저장된 제1 미디어 자산은 상기 제2 콘텐츠 소스로부터의 상기 제1 미디어 자산의 제1 세그먼트이고,
    상기 제1 콘텐츠 소스로부터 수신된 상기 제1 미디어 자산의 제2 세그먼트를 저장하는 단계;
    상기 제1 세그먼트와 상기 제2 세그먼트를, 단일의 저장된 파일로, 스티칭(stitching)하는 단계; 및
    상기 단일의 저장된 파일이 상기 제1 콘텐츠 소스 및 상기 제2 콘텐츠 소스로부터 생성되었다는 지시를, 상기 단일의 저장된 파일에, 저장하는 단계를 더 포함하는, 방법.
  8. 제7항에 있어서, 상기 제1 세그먼트와 상기 제2 세그먼트를, 상기 단일의 저장된 파일로, 스티칭하는 단계는:
    상기 제1 세그먼트와 함께 저장된 메타데이터로부터 상기 제1 세그먼트에 대한 제1 타임 스탬프를 추출하는 단계;
    상기 제2 세그먼트와 함께 저장된 메타데이터로부터 상기 제2 세그먼트에 대한 제2 타임 스탬프를 추출하는 단계;
    상기 제1 타임 스탬프와 상기 제2 타임 스탬프를 비교하여 어느 것이 더 빠른지를 결정하는 단계;
    상기 제1 타임 스탬프가 더 빠르다고 결정하는 것에 응답하여, 상기 제2 세그먼트를 상기 제1 세그먼트의 끝부분에 추가하는 단계를 포함하는, 방법.
  9. 제2항에 있어서,
    상기 저장된 제1 미디어 자산의 지속기간을 상기 스케줄링된 시간 간격과 비교하는 단계;
    상기 저장된 제1 미디어 자산의 상기 지속기간이 상기 스케줄링된 시간 간격보다 짧다고 결정하는 것에 응답하여:
    상기 저장된 제1 미디어 자산의 상기 지속기간과 상기 스케줄링된 시간 간격 사이의 차이를 임계 차이와 비교하는 단계; 및
    상기 저장된 제1 미디어 자산의 상기 지속기간과 상기 스케줄링된 시간 간격 사이의 상기 차이가 상기 임계 차이를 충족시킨다고 결정하는 것에 응답하여, 상기 저장된 제1 미디어 자산이 완전하지 않다고 결정하는 단계
    를 더 포함하는, 방법.
  10. 제9항에 있어서,
    상기 저장된 미디어 자산의 상기 지속기간과 상기 스케줄링된 시간 간격 사이의 상기 차이가 상기 임계 차이를 충족시킨다고 결정하는 것에 응답하여:
    미디어 안내 데이터베이스로부터 리트리브된 미디어 자산 리스팅들로부터, 상기 제1 미디어 자산이 미래의 시간에 이용가능한지를 결정하는 단계;
    상기 제1 미디어 자산이 미래의 시간에 제3 콘텐츠 소스로부터 이용가능하다고 결정하는 것에 응답하여, 상기 제3 콘텐츠 소스로부터의 상기 제1 미디어 자산을 저장하라는 제2 요청을 저장하는 단계
    를 더 포함하는, 방법.
  11. 제10항에 있어서, 상기 제3 콘텐츠 소스로부터의 상기 제1 미디어 자산을 저장하라는 상기 제2 요청을 저장하는 단계는:
    상기 저장된 미디어 자산의 복수의 프레임들 중 각각의 프레임에 대해 저장된 메타데이터로부터, 상기 복수의 프레임들 중 각각의 프레임과 연관된 시간들을 리트리브(retrieve)하는 단계;
    상기 제1 미디어 자산의 일부분이 제1 프레임과 제2 프레임 사이에서 누락되었다고 결정하는 단계; 및
    상기 제2 요청으로, 상기 제1 미디어 자산의 제1 부분만을 저장하라는 명령(instruction)을 저장하는 단계를 포함하는, 방법.
  12. 하나의 콘텐츠 소스로부터의 저장되도록 스케줄링된 미디어 자산이 다른 콘텐츠 소스로부터의 전송을 위해 재스케줄링되었다고 결정하기 위한 시스템으로서,
    스토리지 회로부;
    제어 회로부
    를 포함하고, 상기 제어 회로부는:
    스케줄링된 시간 간격 동안 복수의 콘텐츠 소스들 중 제1 콘텐츠 소스로부터의 제1 미디어 자산을 저장하라는 사용자 요청을 수신하고;
    상기 스케줄링된 시간 간격 동안 상기 제1 콘텐츠 소스로부터의 상기 제1 미디어 자산을 데이터 구조에 엔트리로서 저장하라는 상기 사용자 요청을 저장하며 - 상기 엔트리는 현재의 콘텐츠 소스를 지시하는 제1 필드를 포함함 -;
    상기 스케줄링된 시간 간격 동안:
    상기 제1 콘텐츠 소스로부터의 비디오와 함께 수신된 데이터 패킷들을 모니터링하고;
    상기 모니터링된 데이터 패킷들로부터 제1 미디어 자산 지시자를 추출하며;
    상기 추출된 제1 미디어 자산 지시자를 상기 제1 미디어 자산의 식별자와 비교하고;
    상기 추출된 미디어 자산 지시자가 상기 제1 미디어 자산의 상기 식별자에 대응하지 않는다고 결정하는 것에 응답하여, 상기 제1 미디어 자산의 상기 식별자에 대응하는 제2 미디어 자산 지시자를 포함하는 제2 데이터 패킷이 있는지 상기 복수의 콘텐츠 소스들 상에서 수신된 데이터 패킷들을 서치하며;
    상기 복수의 콘텐츠 소스들 중 제2 콘텐츠 소스로부터 수신된 상기 제2 데이터 패킷이 상기 제1 미디어 자산의 상기 식별자에 대응하는 상기 제2 미디어 자산 지시자를 포함한다고 결정하는 것에 응답하여, 상기 제1 미디어 자산이 상기 제2 콘텐츠 소스로부터 전송되고 있음을 지시하기 위해 상기 저장된 엔트리의 상기 제1 필드 내의 상기 현재의 콘텐츠 소스를 업데이트하고;
    상기 저장된 엔트리의 상기 제1 필드에 지시된 상기 현재의 콘텐츠 소스로부터의 상기 제1 미디어 자산을 저장하도록 구성된, 시스템.
  13. 제12항에 있어서, 상기 제어 회로부는 또한:
    상기 스케줄링된 시간 간격 외의 제1 시간 간격 동안:
    상기 제1 콘텐츠 소스로부터의 상기 비디오와 함께 수신된 상기 데이터 패킷들을 모니터링하고;
    상기 모니터링된 데이터 패킷들로부터 상기 제1 미디어 자산 지시자를 추출하며;
    상기 추출된 제1 미디어 자산 지시자를 상기 제1 미디어 자산의 상기 식별자와 비교하고;
    상기 추출된 제1 미디어 자산 지시자가 상기 제1 미디어 자산의 상기 식별자에 대응한다고 결정하는 것에 응답하여, 상기 저장된 엔트리의 상기 제1 필드에 지시된 상기 제1 콘텐츠 소스로부터의 상기 제1 미디어 자산을 저장하도록 구성되는, 시스템.
  14. 제12항에 있어서, 상기 제1 미디어 자산의 상기 식별자에 대응하는 상기 제2 미디어 자산 지시자를 포함하는 상기 제2 데이터 패킷이 있는지 상기 복수의 콘텐츠 소스들 상에서 수신된 상기 데이터 패킷들을 서치하도록 구성된 상기 제어 회로부는 또한:
    복수의 콘텐츠 소스들에 대한 정보를 포함하는 데이터베이스에 액세스하고 - 상기 정보는 상기 복수의 콘텐츠 소스들의 각각의 콘텐츠 소스와 유사한 상기 복수의 콘텐츠 소스들의 서브세트들의 지시들을 포함함 -;
    상기 제2 콘텐츠 소스가 상기 제1 콘텐츠 소스와 유사하다는 지시를 상기 제1 콘텐츠 소스와 연관된 상기 데이터베이스 내의 필드로부터 리트리브하며;
    상기 제1 미디어 자산의 상기 식별자에 대응하는 상기 제2 미디어 자산 지시자가 있는지 상기 제2 콘텐츠 소스로부터의 데이터 패킷들을 서치하도록 구성되는, 시스템.
  15. 제12항에 있어서, 상기 모니터링된 데이터 패킷들로부터 상기 제1 미디어 자산 지시자를 추출하도록 구성된 상기 제어 회로부는 또한:
    상기 제1 콘텐츠 소스로부터의 상기 비디오에 관련된 정보를 포함하는 테이블을 수신하고;
    상기 제1 미디어 자산 지시자에 대응하는 상기 테이블 내의 필드로부터의 값을 리트리브하도록 구성되는, 시스템.
  16. 제12항에 있어서, 상기 추출된 제1 미디어 자산 지시자를 상기 제1 미디어 자산의 상기 식별자와 비교하도록 구성된 상기 제어 회로부는 또한:
    상기 사용자 요청으로, 상기 제1 미디어 자산의 상기 식별자를 저장하고;
    상기 제1 미디어 자산의 상기 식별자의 문자들을 상기 추출된 제1 미디어 자산 지시자의 문자들과 비교하도록 구성되는, 시스템.
  17. 제12항에 있어서, 상기 저장된 제1 미디어 자산은 상기 제2 콘텐츠 소스로부터의 상기 제1 미디어 자산의 제1 세그먼트이고, 상기 제어 회로부는 또한:
    상기 제1 콘텐츠 소스로부터 수신된 상기 제1 미디어 자산의 제2 세그먼트를 저장하고;
    상기 제1 세그먼트와 상기 제2 세그먼트를, 단일의 저장된 파일로, 스티칭하며;
    상기 단일의 저장된 파일이 상기 제1 콘텐츠 소스 및 상기 제2 콘텐츠 소스로부터 생성되었다는 지시를, 상기 단일의 저장된 파일에, 저장하도록 구성되는, 시스템.
  18. 제17항에 있어서, 상기 제1 세그먼트와 상기 제2 세그먼트를, 상기 단일의 저장된 파일로, 스티칭하도록 구성된 상기 제어 회로부는 또한:
    상기 제1 세그먼트와 함께 저장된 메타데이터로부터 상기 제1 세그먼트에 대한 제1 타임 스탬프를 추출하고;
    상기 제2 세그먼트와 함께 저장된 메타데이터로부터 상기 제2 세그먼트에 대한 제2 타임 스탬프를 추출하며;
    상기 제1 타임 스탬프와 상기 제2 타임 스탬프를 비교하여 어느 것이 더 빠른지를 결정하고;
    상기 제1 타임 스탬프가 더 빠르다고 결정하는 것에 응답하여, 상기 제2 세그먼트를 상기 제1 세그먼트의 끝부분에 추가하도록 구성되는, 시스템.
  19. 제12항에 있어서, 상기 제어 회로부는 또한:
    상기 저장된 제1 미디어 자산의 지속기간을 상기 스케줄링된 시간 간격과 비교하고;
    상기 저장된 제1 미디어 자산의 상기 지속기간이 상기 스케줄링된 시간 간격보다 짧다고 결정하는 것에 응답하여:
    상기 저장된 제1 미디어 자산의 상기 지속기간과 상기 스케줄링된 시간 간격 사이의 차이를 임계 차이와 비교하며;
    상기 저장된 제1 미디어 자산의 상기 지속기간과 상기 스케줄링된 시간 간격 사이의 상기 차이가 상기 임계 차이를 충족시킨다고 결정하는 것에 응답하여, 상기 저장된 제1 미디어 자산이 완전하지 않다고 결정하도록 구성되는, 시스템.
  20. 제19항에 있어서, 상기 제어 회로부는 또한:
    상기 저장된 미디어 자산의 상기 지속기간과 상기 스케줄링된 시간 간격 사이의 상기 차이가 상기 임계 차이를 충족시킨다고 결정하는 것에 응답하여:
    미디어 안내 데이터베이스로부터 리트리브된 미디어 자산 리스팅들로부터, 상기 제1 미디어 자산이 미래의 시간에 이용가능한지를 결정하고;
    상기 제1 미디어 자산이 미래의 시간에 제3 콘텐츠 소스로부터 이용가능하다고 결정하는 것에 응답하여, 상기 제3 콘텐츠 소스로부터의 상기 제1 미디어 자산을 저장하라는 제2 요청을 저장하도록 구성되는, 시스템.
  21. 제20항에 있어서, 상기 제3 콘텐츠 소스로부터의 상기 제1 미디어 자산을 저장하라는 상기 제2 요청을 저장하도록 구성된 상기 제어 회로부는 또한:
    상기 저장된 미디어 자산의 복수의 프레임들 중 각각의 프레임에 대해 저장된 메타데이터로부터, 상기 복수의 프레임들 중 각각의 프레임과 연관된 시간들을 리트리브하고;
    상기 제1 미디어 자산의 일부분이 제1 프레임과 제2 프레임 사이에서 누락되었다고 결정하며;
    상기 제2 요청으로, 상기 제1 미디어 자산의 제1 부분만을 저장하라는 명령을 저장하도록 구성되는, 시스템.
  22. 하나의 콘텐츠 소스로부터의 저장되도록 스케줄링된 미디어 자산이 다른 콘텐츠 소스로부터의 전송을 위해 재스케줄링되었다고 결정하기 위한 시스템으로서,
    스케줄링된 시간 간격 동안 복수의 콘텐츠 소스들 중 제1 콘텐츠 소스로부터의 제1 미디어 자산을 저장하라는 사용자 요청을 수신하기 위한 수단;
    상기 스케줄링된 시간 간격 동안 상기 제1 콘텐츠 소스로부터의 상기 제1 미디어 자산을 데이터 구조에 엔트리로서 저장하라는 상기 사용자 요청을 저장하기 위한 수단 - 상기 엔트리는 현재의 콘텐츠 소스를 지시하는 제1 필드를 포함함 -;
    상기 스케줄링된 시간 간격 동안:
    상기 제1 콘텐츠 소스로부터의 비디오와 함께 수신된 데이터 패킷들을 모니터링하기 위한 수단;
    상기 모니터링된 데이터 패킷들로부터 제1 미디어 자산 지시자를 추출하기 위한 수단; 및
    상기 추출된 제1 미디어 자산 지시자를 상기 제1 미디어 자산의 식별자와 비교하기 위한 수단;
    상기 추출된 미디어 자산 지시자가 상기 제1 미디어 자산의 상기 식별자에 대응하지 않는다고 결정하는 것에 응답하여, 상기 제1 미디어 자산의 상기 식별자에 대응하는 제2 미디어 자산 지시자를 포함하는 제2 데이터 패킷이 있는지 상기 복수의 콘텐츠 소스들 상에서 수신된 데이터 패킷들을 서치하기 위한 수단;
    상기 복수의 콘텐츠 소스들 중 제2 콘텐츠 소스로부터 수신된 상기 제2 데이터 패킷이 상기 제1 미디어 자산의 상기 식별자에 대응하는 상기 제2 미디어 자산 지시자를 포함한다고 결정하는 것에 응답하여, 상기 제1 미디어 자산이 상기 제2 콘텐츠 소스로부터 전송되고 있음을 지시하기 위해 상기 저장된 엔트리의 상기 제1 필드 내의 상기 현재의 콘텐츠 소스를 업데이트하기 위한 수단; 및
    상기 저장된 엔트리의 상기 제1 필드에 지시된 상기 현재의 콘텐츠 소스로부터의 상기 제1 미디어 자산을 저장하기 위한 수단
    을 포함하는, 시스템.
  23. 제22항에 있어서,
    상기 스케줄링된 시간 간격 외의 제1 시간 간격 동안:
    상기 제1 콘텐츠 소스로부터의 상기 비디오와 함께 수신된 상기 데이터 패킷들을 모니터링하기 위한 수단;
    상기 모니터링된 데이터 패킷들로부터 상기 제1 미디어 자산 지시자를 추출하기 위한 수단; 및
    상기 추출된 제1 미디어 자산 지시자를 상기 제1 미디어 자산의 상기 식별자와 비교하기 위한 수단;
    상기 추출된 제1 미디어 자산 지시자가 상기 제1 미디어 자산의 상기 식별자에 대응한다고 결정하는 것에 응답하여, 상기 저장된 엔트리의 상기 제1 필드에 지시된 상기 제1 콘텐츠 소스로부터의 상기 제1 미디어 자산을 저장하기 위한 수단
    을 더 포함하는, 시스템.
  24. 제22항에 있어서, 상기 제1 미디어 자산의 상기 식별자에 대응하는 상기 제2 미디어 자산 지시자를 포함하는 상기 제2 데이터 패킷이 있는지 상기 복수의 콘텐츠 소스들 상에서 수신된 상기 데이터 패킷들을 서치하기 위한 수단은:
    복수의 콘텐츠 소스들에 대한 정보를 포함하는 데이터베이스에 액세스하기 위한 수단 - 상기 정보는 상기 복수의 콘텐츠 소스들의 각각의 콘텐츠 소스와 유사한 상기 복수의 콘텐츠 소스들의 서브세트들의 지시들을 포함함 -;
    상기 제2 콘텐츠 소스가 상기 제1 콘텐츠 소스와 유사하다는 지시를 상기 제1 콘텐츠 소스와 연관된 상기 데이터베이스 내의 필드로부터 리트리브하기 위한 수단; 및
    상기 제1 미디어 자산의 상기 식별자에 대응하는 상기 제2 미디어 자산 지시자가 있는지 상기 제2 콘텐츠 소스로부터의 데이터 패킷들을 서치하기 위한 수단을 포함하는, 시스템.
  25. 제22항에 있어서, 상기 모니터링된 데이터 패킷들로부터 상기 제1 미디어 자산 지시자를 추출하기 위한 수단은:
    상기 제1 콘텐츠 소스로부터의 상기 비디오에 관련된 정보를 포함하는 테이블을 수신하기 위한 수단; 및
    상기 제1 미디어 자산 지시자에 대응하는 상기 테이블 내의 필드로부터의 값을 리트리브하기 위한 수단을 포함하는, 시스템.
  26. 제22항에 있어서, 상기 추출된 제1 미디어 자산 지시자를 상기 제1 미디어 자산의 상기 식별자와 비교하기 위한 수단은:
    상기 사용자 요청으로, 상기 제1 미디어 자산의 상기 식별자를 저장하기 위한 수단; 및
    상기 제1 미디어 자산의 상기 식별자의 문자들을 상기 추출된 제1 미디어 자산 지시자의 문자들과 비교하기 위한 수단을 포함하는, 시스템.
  27. 제22항에 있어서, 상기 저장된 제1 미디어 자산은 상기 제2 콘텐츠 소스로부터의 상기 제1 미디어 자산의 제1 세그먼트이고,
    상기 제1 콘텐츠 소스로부터 수신된 상기 제1 미디어 자산의 제2 세그먼트를 저장하기 위한 수단;
    상기 제1 세그먼트와 상기 제2 세그먼트를, 단일의 저장된 파일로, 스티칭하기 위한 수단; 및
    상기 단일의 저장된 파일이 상기 제1 콘텐츠 소스 및 상기 제2 콘텐츠 소스로부터 생성되었다는 지시를, 상기 단일의 저장된 파일에, 저장하기 위한 수단을 더 포함하는, 시스템.
  28. 제27항에 있어서, 상기 제1 세그먼트와 상기 제2 세그먼트를, 상기 단일의 저장된 파일로, 스티칭하기 위한 수단은:
    상기 제1 세그먼트와 함께 저장된 메타데이터로부터 상기 제1 세그먼트에 대한 제1 타임 스탬프를 추출하기 위한 수단;
    상기 제2 세그먼트와 함께 저장된 메타데이터로부터 상기 제2 세그먼트에 대한 제2 타임 스탬프를 추출하기 위한 수단;
    상기 제1 타임 스탬프와 상기 제2 타임 스탬프를 비교하여 어느 것이 더 빠른지를 결정하기 위한 수단;
    상기 제1 타임 스탬프가 더 빠르다고 결정하는 것에 응답하여, 상기 제2 세그먼트를 상기 제1 세그먼트의 끝부분에 추가하기 위한 수단을 포함하는, 시스템.
  29. 제22항에 있어서,
    상기 저장된 제1 미디어 자산의 지속기간을 상기 스케줄링된 시간 간격과 비교하기 위한 수단;
    상기 저장된 제1 미디어 자산의 상기 지속기간이 상기 스케줄링된 시간 간격보다 짧다고 결정하는 것에 응답하여:
    상기 저장된 제1 미디어 자산의 상기 지속기간과 상기 스케줄링된 시간 간격 사이의 차이를 임계 차이와 비교하기 위한 수단; 및
    상기 저장된 제1 미디어 자산의 상기 지속기간과 상기 스케줄링된 시간 간격 사이의 상기 차이가 상기 임계 차이를 충족시킨다고 결정하는 것에 응답하여, 상기 저장된 제1 미디어 자산이 완전하지 않다고 결정하기 위한 수단
    을 더 포함하는, 시스템.
  30. 제29항에 있어서,
    상기 저장된 미디어 자산의 상기 지속기간과 상기 스케줄링된 시간 간격 사이의 상기 차이가 상기 임계 차이를 충족시킨다고 결정하는 것에 응답하여:
    미디어 안내 데이터베이스로부터 리트리브된 미디어 자산 리스팅들로부터, 상기 제1 미디어 자산이 미래의 시간에 이용가능한지를 결정하기 위한 수단;
    상기 제1 미디어 자산이 미래의 시간에 제3 콘텐츠 소스로부터 이용가능하다고 결정하는 것에 응답하여, 상기 제3 콘텐츠 소스로부터의 상기 제1 미디어 자산을 저장하라는 제2 요청을 저장하기 위한 수단
    을 더 포함하는, 시스템.
  31. 제30항에 있어서, 상기 제3 콘텐츠 소스로부터의 상기 제1 미디어 자산을 저장하라는 상기 제2 요청을 저장하기 위한 수단은:
    상기 저장된 미디어 자산의 복수의 프레임들 중 각각의 프레임에 대해 저장된 메타데이터로부터, 상기 복수의 프레임들 중 각각의 프레임과 연관된 시간들을 리트리브하기 위한 수단;
    상기 제1 미디어 자산의 일부분이 제1 프레임과 제2 프레임 사이에서 누락되었다고 결정하기 위한 수단; 및
    상기 제2 요청으로, 상기 제1 미디어 자산의 제1 부분만을 저장하라는 명형을 저장하기 위한 수단을 포함하는, 시스템.
  32. 하나의 콘텐츠 소스로부터의 저장되도록 스케줄링된 미디어 자산이 다른 콘텐츠 소스로부터의 전송을 위해 재스케줄링되었다고 결정하기 위한 명령어들이 인코딩되어 있는 비일시적 컴퓨터 판독가능 매체로서, 상기 명령어들은:
    스케줄링된 시간 간격 동안 복수의 콘텐츠 소스들 중 제1 콘텐츠 소스로부터의 제1 미디어 자산을 저장하라는 사용자 요청을 수신하기 위한 명령어;
    상기 스케줄링된 시간 간격 동안 상기 제1 콘텐츠 소스로부터의 상기 제1 미디어 자산을 데이터 구조에 엔트리로서 저장하라는 상기 사용자 요청을 저장하기 위한 명령어 - 상기 엔트리는 현재의 콘텐츠 소스를 지시하는 제1 필드를 포함함 -;
    상기 스케줄링된 시간 간격 동안:
    상기 제1 콘텐츠 소스로부터의 비디오와 함께 수신된 데이터 패킷들을 모니터링하기 위한 명령어;
    상기 모니터링된 데이터 패킷들로부터 제1 미디어 자산 지시자를 추출하기 위한 명령어; 및
    상기 추출된 제1 미디어 자산 지시자를 상기 제1 미디어 자산의 식별자와 비교하기 위한 명령어;
    상기 추출된 미디어 자산 지시자가 상기 제1 미디어 자산의 상기 식별자에 대응하지 않는다고 결정하는 것에 응답하여, 상기 제1 미디어 자산의 상기 식별자에 대응하는 제2 미디어 자산 지시자를 포함하는 제2 데이터 패킷이 있는지 상기 복수의 콘텐츠 소스들 상에서 수신된 데이터 패킷들을 서치하기 위한 명령어;
    상기 복수의 콘텐츠 소스들 중 제2 콘텐츠 소스로부터 수신된 상기 제2 데이터 패킷이 상기 제1 미디어 자산의 상기 식별자에 대응하는 상기 제2 미디어 자산 지시자를 포함한다고 결정하는 것에 응답하여, 상기 제1 미디어 자산이 상기 제2 콘텐츠 소스로부터 전송되고 있음을 지시하기 위해 상기 저장된 엔트리의 상기 제1 필드 내의 상기 현재의 콘텐츠 소스를 업데이트하기 위한 명령어; 및
    상기 저장된 엔트리의 상기 제1 필드에 지시된 상기 현재의 콘텐츠 소스로부터의 상기 제1 미디어 자산을 저장하기 위한 명령어를 포함하는, 비일시적 컴퓨터 판독가능 매체.
  33. 제32항에 있어서, 상기 명령어들은:
    상기 스케줄링된 시간 간격 외의 제1 시간 간격 동안:
    상기 제1 콘텐츠 소스로부터의 상기 비디오와 함께 수신된 상기 데이터 패킷들을 모니터링하기 위한 명령어;
    상기 모니터링된 데이터 패킷들로부터 상기 제1 미디어 자산 지시자를 추출하기 위한 명령어; 및
    상기 추출된 제1 미디어 자산 지시자를 상기 제1 미디어 자산의 상기 식별자와 비교하기 위한 명령어;
    상기 추출된 제1 미디어 자산 지시자가 상기 제1 미디어 자산의 상기 식별자에 대응한다고 결정하는 것에 응답하여, 상기 저장된 엔트리의 상기 제1 필드에 지시된 상기 제1 콘텐츠 소스로부터의 상기 제1 미디어 자산을 저장하기 위한 명령어를 더 포함하는, 비일시적 컴퓨터 판독가능 매체.
  34. 제32항에 있어서, 상기 제1 미디어 자산의 상기 식별자에 대응하는 상기 제2 미디어 자산 지시자를 포함하는 상기 제2 데이터 패킷이 있는지 상기 복수의 콘텐츠 소스들 상에서 수신된 상기 데이터 패킷들을 서치하기 위한 명령어는:
    복수의 콘텐츠 소스들에 대한 정보를 포함하는 데이터베이스에 액세스하기 위한 명령어 - 상기 정보는 상기 복수의 콘텐츠 소스들의 각각의 콘텐츠 소스와 유사한 상기 복수의 콘텐츠 소스들의 서브세트들의 지시들을 포함함 -;
    상기 제2 콘텐츠 소스가 상기 제1 콘텐츠 소스와 유사하다는 지시를 상기 제1 콘텐츠 소스와 연관된 상기 데이터베이스 내의 필드로부터 리트리브하기 위한 명령어; 및
    상기 제1 미디어 자산의 상기 식별자에 대응하는 상기 제2 미디어 자산 지시자가 있는지 상기 제2 콘텐츠 소스로부터의 데이터 패킷들을 서치하기 위한 명령어를 포함하는, 비일시적 컴퓨터 판독가능 매체.
  35. 제32항에 있어서, 상기 모니터링된 데이터 패킷들로부터 상기 제1 미디어 자산 지시자를 추출하기 위한 명령어는:
    상기 제1 콘텐츠 소스로부터의 상기 비디오에 관련된 정보를 포함하는 테이블을 수신하기 위한 명령어; 및
    상기 제1 미디어 자산 지시자에 대응하는 상기 테이블 내의 필드로부터의 값을 리트리브하기 위한 명령어를 포함하는, 비일시적 컴퓨터 판독가능 매체.
  36. 제32항에 있어서, 상기 추출된 제1 미디어 자산 지시자를 상기 제1 미디어 자산의 상기 식별자와 비교하기 위한 명령어는:
    상기 사용자 요청으로, 상기 제1 미디어 자산의 상기 식별자를 저장하기 위한 명령어; 및
    상기 제1 미디어 자산의 상기 식별자의 문자들을 상기 추출된 제1 미디어 자산 지시자의 문자들과 비교하기 위한 명령어를 포함하는, 비일시적 컴퓨터 판독가능 매체.
  37. 제32항에 있어서, 상기 저장된 제1 미디어 자산은 상기 제2 콘텐츠 소스로부터의 상기 제1 미디어 자산의 제1 세그먼트이고, 상기 명령어들은:
    상기 제1 콘텐츠 소스로부터 수신된 상기 제1 미디어 자산의 제2 세그먼트를 저장하기 위한 명령어;
    상기 제1 세그먼트와 상기 제2 세그먼트를, 단일의 저장된 파일로, 스티칭하기 위한 명령어; 및
    상기 단일의 저장된 파일이 상기 제1 콘텐츠 소스 및 상기 제2 콘텐츠 소스로부터 생성되었다는 지시를, 상기 단일의 저장된 파일에, 저장하기 위한 명령어를 더 포함하는, 비일시적 컴퓨터 판독가능 매체.
  38. 제37항에 있어서, 상기 제1 세그먼트와 상기 제2 세그먼트를, 상기 단일의 저장된 파일로, 스티칭하기 위한 명령어는:
    상기 제1 세그먼트와 함께 저장된 메타데이터로부터 상기 제1 세그먼트에 대한 제1 타임 스탬프를 추출하기 위한 명령어;
    상기 제2 세그먼트와 함께 저장된 메타데이터로부터 상기 제2 세그먼트에 대한 제2 타임 스탬프를 추출하기 위한 명령어;
    상기 제1 타임 스탬프와 상기 제2 타임 스탬프를 비교하여 어느 것이 더 빠른지를 결정하기 위한 명령어;
    상기 제1 타임 스탬프가 더 빠르다고 결정하는 것에 응답하여, 상기 제2 세그먼트를 상기 제1 세그먼트의 끝부분에 추가하기 위한 명령어를 포함하는, 비일시적 컴퓨터 판독가능 매체.
  39. 제32항에 있어서, 상기 명령어들은:
    상기 저장된 제1 미디어 자산의 지속기간을 상기 스케줄링된 시간 간격과 비교하기 위한 명령어;
    상기 저장된 제1 미디어 자산의 상기 지속기간이 상기 스케줄링된 시간 간격보다 짧다고 결정하는 것에 응답하여:
    상기 저장된 제1 미디어 자산의 상기 지속기간과 상기 스케줄링된 시간 간격 사이의 차이를 임계 차이와 비교하기 위한 명령어; 및
    상기 저장된 제1 미디어 자산의 상기 지속기간과 상기 스케줄링된 시간 간격 사이의 상기 차이가 상기 임계 차이를 충족시킨다고 결정하는 것에 응답하여, 상기 저장된 제1 미디어 자산이 완전하지 않다고 결정하기 위한 명령어를 더 포함하는, 비일시적 컴퓨터 판독가능 매체.
  40. 제39항에 있어서, 상기 명령어들은:
    상기 저장된 미디어 자산의 상기 지속기간과 상기 스케줄링된 시간 간격 사이의 상기 차이가 상기 임계 차이를 충족시킨다고 결정하는 것에 응답하여:
    미디어 안내 데이터베이스로부터 리트리브된 미디어 자산 리스팅들로부터, 상기 제1 미디어 자산이 미래의 시간에 이용가능한지를 결정하기 위한 명령어;
    상기 제1 미디어 자산이 미래의 시간에 제3 콘텐츠 소스로부터 이용가능하다고 결정하는 것에 응답하여, 상기 제3 콘텐츠 소스로부터의 상기 제1 미디어 자산을 저장하라는 제2 요청을 저장하기 위한 명령어를 더 포함하는, 비일시적 컴퓨터 판독가능 매체.
  41. 제40항에 있어서, 상기 제3 콘텐츠 소스로부터의 상기 제1 미디어 자산을 저장하라는 상기 제2 요청을 저장하기 위한 명령어는:
    상기 저장된 미디어 자산의 복수의 프레임들 중 각각의 프레임에 대해 저장된 메타데이터로부터, 상기 복수의 프레임들 중 각각의 프레임과 연관된 시간들을 리트리브하기 위한 명령어;
    상기 제1 미디어 자산의 일부분이 제1 프레임과 제2 프레임 사이에서 누락되었다고 결정하기 위한 명령어; 및
    상기 제2 요청으로, 상기 제1 미디어 자산의 제1 부분만을 저장하라는 명령을 저장하기 위한 명령어를 포함하는, 비일시적 컴퓨터 판독가능 매체.
  42. 하나의 콘텐츠 소스로부터의 저장되도록 스케줄링된 미디어 자산이 다른 콘텐츠 소스로부터의 전송을 위해 재스케줄링되었다고 결정하기 위한 방법으로서,
    스케줄링된 시간 간격 동안 복수의 콘텐츠 소스들 중 제1 콘텐츠 소스로부터의 제1 미디어 자산을 저장하라는 사용자 요청을 수신하는 단계;
    상기 스케줄링된 시간 간격 동안:
    상기 제1 콘텐츠 소스로부터의 비디오와 함께 수신된 데이터 패킷들을 모니터링하는 단계;
    상기 모니터링된 데이터 패킷들로부터 제1 미디어 자산 지시자를 추출하는 단계; 및
    상기 추출된 제1 미디어 자산 지시자를 상기 제1 미디어 자산의 식별자와 비교하는 단계;
    상기 추출된 미디어 자산 지시자가 상기 제1 미디어 자산의 상기 식별자에 대응하지 않는다고 결정하는 것에 응답하여, 상기 제1 미디어 자산의 상기 식별자에 대응하는 제2 미디어 자산 지시자를 포함하는 제2 데이터 패킷이 있는지 상기 복수의 콘텐츠 소스들 상에서 수신된 데이터 패킷들을 서치하는 단계;
    상기 복수의 콘텐츠 소스들 중 제2 콘텐츠 소스로부터 수신된 상기 제2 데이터 패킷이 상기 제1 미디어 자산의 상기 식별자에 대응하는 상기 제2 미디어 자산 지시자를 포함한다고 결정하는 것에 응답하여, 상기 제2 콘텐츠 소스로부터 수신된 상기 제1 미디어 자산을 저장하는 단계
    를 포함하는, 방법.
  43. 제42항에 있어서,
    상기 스케줄링된 시간 간격 외의 제1 시간 간격 동안:
    상기 제1 콘텐츠 소스로부터의 상기 비디오와 함께 수신된 상기 데이터 패킷들을 모니터링하는 단계;
    상기 모니터링된 데이터 패킷들로부터 상기 제1 미디어 자산 지시자를 추출하는 단계; 및
    상기 추출된 제1 미디어 자산 지시자를 상기 제1 미디어 자산의 상기 식별자와 비교하는 단계;
    상기 추출된 제1 미디어 자산 지시자가 상기 제1 미디어 자산의 상기 식별자에 대응한다고 결정하는 것에 응답하여, 상기 제1 콘텐츠 소스로부터의 상기 제1 미디어 자산을 저장하는 단계
    를 더 포함하는, 방법.
  44. 제42항 및 제43항 중 어느 한 항에 있어서,
    복수의 콘텐츠 소스들에 대한 정보를 포함하는 데이터베이스에 액세스하는 단계 - 상기 정보는 상기 복수의 콘텐츠 소스들의 각각의 콘텐츠 소스와 유사한 상기 복수의 콘텐츠 소스들의 서브세트들의 지시들을 포함함 -;
    상기 제2 콘텐츠 소스가 상기 제1 콘텐츠 소스와 유사하다는 지시를 상기 제1 콘텐츠 소스와 연관된 상기 데이터베이스 내의 필드로부터 리트리브하는 단계; 및
    상기 제1 미디어 자산의 상기 식별자에 대응하는 상기 제2 미디어 자산 지시자가 있는지 상기 제2 콘텐츠 소스로부터의 데이터 패킷들을 서치하는 단계
    를 더 포함하는, 방법.
  45. 제42항 내지 제44항 중 어느 한 항에 있어서,
    상기 제1 콘텐츠 소스로부터의 상기 비디오에 관련된 정보를 포함하는 테이블을 수신하는 단계; 및
    상기 제1 미디어 자산 지시자에 대응하는 상기 테이블 내의 필드로부터의 값을 리트리브하는 단계
    를 더 포함하는, 방법.
  46. 제42항 내지 제45항 중 어느 한 항에 있어서,
    상기 사용자 요청으로, 상기 제1 미디어 자산의 상기 식별자를 저장하는 단계; 및
    상기 제1 미디어 자산의 상기 식별자의 문자들을 상기 추출된 제1 미디어 자산 지시자의 문자들과 비교하는 단계
    를 더 포함하는, 방법.
  47. 제42항 내지 제46항 중 어느 한 항에 있어서,
    상기 제1 콘텐츠 소스로부터 수신된 상기 제1 미디어 자산의 제2 세그먼트를 저장하는 단계;
    상기 제1 세그먼트와 상기 제2 세그먼트를, 단일의 저장된 파일로, 스티칭하는 단계; 및
    상기 단일의 저장된 파일이 상기 제1 콘텐츠 소스 및 상기 제2 콘텐츠 소스로부터 생성되었다는 지시를, 상기 단일의 저장된 파일에, 저장하는 단계
    를 더 포함하는, 방법.
  48. 제47항에 있어서,
    상기 제1 세그먼트와 함께 저장된 메타데이터로부터 상기 제1 세그먼트에 대한 제1 타임 스탬프를 추출하는 단계;
    상기 제2 세그먼트와 함께 저장된 메타데이터로부터 상기 제2 세그먼트에 대한 제2 타임 스탬프를 추출하는 단계;
    상기 제1 타임 스탬프와 상기 제2 타임 스탬프를 비교하여 어느 것이 더 빠른지를 결정하는 단계;
    상기 제1 타임 스탬프가 더 빠르다고 결정하는 것에 응답하여, 상기 제2 세그먼트를 상기 제1 세그먼트의 끝부분에 추가하는 단계
    를 더 포함하는, 방법.
  49. 제42항 내지 제48항 중 어느 한 항에 있어서,
    상기 저장된 제1 미디어 자산의 지속기간을 상기 스케줄링된 시간 간격과 비교하는 단계;
    상기 저장된 제1 미디어 자산의 상기 지속기간이 상기 스케줄링된 시간 간격보다 짧다고 결정하는 것에 응답하여:
    상기 저장된 제1 미디어 자산의 상기 지속기간과 상기 스케줄링된 시간 간격 사이의 차이를 임계 차이와 비교하는 단계; 및
    상기 저장된 제1 미디어 자산의 상기 지속기간과 상기 스케줄링된 시간 간격 사이의 상기 차이가 상기 임계 차이를 충족시킨다고 결정하는 것에 응답하여, 상기 저장된 제1 미디어 자산이 완전하지 않다고 결정하는 단계
    를 더 포함하는, 방법.
  50. 제49항에 있어서,
    상기 저장된 미디어 자산의 상기 지속기간과 상기 스케줄링된 시간 간격 사이의 상기 차이가 상기 임계 차이를 충족시킨다고 결정하는 것에 응답하여:
    미디어 안내 데이터베이스로부터 리트리브된 미디어 자산 리스팅들로부터, 상기 제1 미디어 자산이 미래의 시간에 이용가능한지를 결정하는 단계;
    상기 제1 미디어 자산이 미래의 시간에 제3 콘텐츠 소스로부터 이용가능하다고 결정하는 것에 응답하여, 상기 제3 콘텐츠 소스로부터의 상기 제1 미디어 자산을 저장하라는 제2 요청을 저장하는 단계
    를 더 포함하는, 방법.
  51. 제50항에 있어서, 상기 제3 콘텐츠 소스로부터의 상기 제1 미디어 자산을 저장하라는 상기 제2 요청을 저장하는 단계는:
    상기 저장된 미디어 자산의 복수의 프레임들 중 각각의 프레임에 대해 저장된 메타데이터로부터, 상기 복수의 프레임들 중 각각의 프레임과 연관된 시간들을 리트리브하는 단계;
    상기 제1 미디어 자산의 일부분이 제1 프레임과 제2 프레임 사이에서 누락되었다고 결정하는 단계; 및
    상기 제2 요청으로, 상기 제1 미디어 자산의 제1 부분만을 저장하라는 명령을 저장하는 단계를 포함하는, 방법.
KR1020197006922A 2016-08-17 2017-08-16 상이한 소스로부터의 전송을 위해 재스케줄링된 미디어 자산을 저장하기 위한 시스템 및 방법 KR20190039986A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/239,336 2016-08-17
US15/239,336 US11134283B2 (en) 2016-08-17 2016-08-17 Systems and methods for storing a media asset rescheduled for transmission from a different source
PCT/US2017/047215 WO2018035262A1 (en) 2016-08-17 2017-08-16 Systems and methods for storing a media asset rescheduled for transmission from a different source

Publications (1)

Publication Number Publication Date
KR20190039986A true KR20190039986A (ko) 2019-04-16

Family

ID=59738463

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197006922A KR20190039986A (ko) 2016-08-17 2017-08-16 상이한 소스로부터의 전송을 위해 재스케줄링된 미디어 자산을 저장하기 위한 시스템 및 방법

Country Status (10)

Country Link
US (2) US11134283B2 (ko)
EP (1) EP3501175A1 (ko)
JP (1) JP2019525661A (ko)
KR (1) KR20190039986A (ko)
CN (1) CN109792555A (ko)
AU (1) AU2017313769A1 (ko)
BR (1) BR112019003057A2 (ko)
CA (1) CA3033361A1 (ko)
MX (1) MX2019001935A (ko)
WO (1) WO2018035262A1 (ko)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8867106B1 (en) 2012-03-12 2014-10-21 Peter Lancaster Intelligent print recognition system and method
US10652170B2 (en) 2017-06-09 2020-05-12 Google Llc Modification of audio-based computer program output
US10614122B2 (en) 2017-06-09 2020-04-07 Google Llc Balance modifications of audio-based computer program output using a placeholder field based on content
US10600409B2 (en) 2017-06-09 2020-03-24 Google Llc Balance modifications of audio-based computer program output including a chatbot selected based on semantic processing of audio
US10657173B2 (en) * 2017-06-09 2020-05-19 Google Llc Validate modification of audio-based computer program output
DE102018207791A1 (de) * 2018-05-17 2019-11-21 Continental Teves Ag & Co. Ohg Verfahren zur Authentifizierung eines von einem Kfz-System eines Fahrzeugs erzeugten Diagnosefehlercodes
WO2020068071A1 (en) * 2018-09-26 2020-04-02 Rovi Guides, Inc. Systems and methods for resolving recording conflicts
US11593843B2 (en) 2020-03-02 2023-02-28 BrandActif Ltd. Sponsor driven digital marketing for live television broadcast
US11301906B2 (en) 2020-03-03 2022-04-12 BrandActif Ltd. Method and system for digital marketing and the provision of digital content
SG10202001898SA (en) 2020-03-03 2021-01-28 Gerard Lancaster Peter Method and system for digital marketing and the provision of digital content
US11854047B2 (en) 2020-03-03 2023-12-26 BrandActif Ltd. Method and system for digital marketing and the provision of digital content

Family Cites Families (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6239794B1 (en) 1994-08-31 2001-05-29 E Guide, Inc. Method and system for simultaneously displaying a television program and information about the program
US6208799B1 (en) * 1997-04-29 2001-03-27 Time Warner Entertainment Company L.P. VCR recording timeslot adjustment
US6564378B1 (en) 1997-12-08 2003-05-13 United Video Properties, Inc. Program guide system with browsing display
CN1867068A (zh) 1998-07-14 2006-11-22 联合视频制品公司 交互式电视节目导视系统及其方法
AR020608A1 (es) 1998-07-17 2002-05-22 United Video Properties Inc Un metodo y una disposicion para suministrar a un usuario acceso remoto a una guia de programacion interactiva por un enlace de acceso remoto
CA2865444C (en) 1998-07-17 2017-11-28 United Video Properties, Inc. Interactive television program guide system having multiple devices within a household
US7165098B1 (en) 1998-11-10 2007-01-16 United Video Properties, Inc. On-line schedule system with personalization features
US6681396B1 (en) * 2000-02-11 2004-01-20 International Business Machines Corporation Automated detection/resumption of interrupted television programs
US6795639B1 (en) 2000-09-19 2004-09-21 Koninklijke Philips Electronics N.V. Follow up correction to EPG for recording systems to reset requests for recording
KR101548473B1 (ko) 2001-02-21 2015-08-28 로비 가이드스, 인크. 개인용 비디오 녹화 특징을 갖는 대화식 프로그램 가이드를 위한 시스템 및 방법
DE10163152A1 (de) * 2001-12-20 2003-07-03 Thomson Brandt Gmbh MPEG-Video-Aufzeichnungsträger und Wiedergabegerät
US8229283B2 (en) * 2005-04-01 2012-07-24 Rovi Guides, Inc. System and method for quality marking of a recording
US7765235B2 (en) * 2005-12-29 2010-07-27 Rovi Guides, Inc. Systems and methods for resolving conflicts and managing system resources in multimedia delivery systems
US20100153885A1 (en) 2005-12-29 2010-06-17 Rovi Technologies Corporation Systems and methods for interacting with advanced displays provided by an interactive media guidance application
US10102351B2 (en) * 2006-04-04 2018-10-16 Apple Inc. Decoupling rights in a digital content unit from download
CN101421723A (zh) * 2006-04-10 2009-04-29 雅虎公司 用于优化对源自客户端和服务器的媒体资产的编辑的客户端侧编辑应用
US20070245019A1 (en) * 2006-04-12 2007-10-18 United Video Properties, Inc. Interactive media content delivery using a backchannel communications network
US20080141317A1 (en) 2006-12-06 2008-06-12 Guideworks, Llc Systems and methods for media source selection and toggling
JP4600511B2 (ja) * 2008-04-23 2010-12-15 沖電気工業株式会社 コーデック変換装置、ゲートウェイ装置及びコーデック変換方法
US8989561B1 (en) * 2008-05-29 2015-03-24 Rovi Guides, Inc. Systems and methods for alerting users of the postponed recording of programs
US9374553B2 (en) 2008-08-06 2016-06-21 Rovi Guides, Inc. Systems and methods for identifying and merging recorded segments belonging to the same program
US8380050B2 (en) * 2010-02-09 2013-02-19 Echostar Technologies Llc Recording extension of delayed media content
GB2486025B (en) 2010-12-03 2014-09-17 Samsung Electronics Co Ltd Content searching
US9262539B2 (en) * 2011-04-29 2016-02-16 Ufaceme, Inc. Mobile device and system for recording, reviewing, and analyzing human relationship
US8925022B2 (en) * 2011-05-25 2014-12-30 Motorola Mobility Llc Method and apparatus for transferring content
US9342599B2 (en) * 2011-05-25 2016-05-17 Thomas Stetson Elliott Methods and systems for centralized audio and video news product collection, optimization, storage, and distribution
US8554049B2 (en) * 2011-12-28 2013-10-08 United Video Properties, Inc. Systems and methods for synchronizing playback at multiple locations
US9560392B2 (en) * 2012-09-07 2017-01-31 Google Inc. Dynamic bit rate encoding
US9351043B2 (en) 2012-09-18 2016-05-24 Centurylink Intellectual Property Llc Metadata system for real-time updates to electronic program guides
US20140223481A1 (en) * 2013-02-07 2014-08-07 United Video Properties, Inc. Systems and methods for updating a search request
US9584387B1 (en) * 2013-03-15 2017-02-28 Google Inc. Systems and methods of sending a packet in a packet-switched network through a pre-determined path to monitor network health
US9257148B2 (en) * 2013-03-15 2016-02-09 JBF Interlude 2009 LTD System and method for synchronization of selectably presentable media streams
US8973038B2 (en) * 2013-05-03 2015-03-03 Echostar Technologies L.L.C. Missed content access guide
US9066132B2 (en) * 2013-05-13 2015-06-23 Rovi Guides, Inc. Systems and methods for recording content from a different source when previous content runs over
US9648387B2 (en) * 2013-07-31 2017-05-09 Time Warner Cable Enterprises Llc Methods and apparatus for enhancing network reliability and/or enabling phased deployment of video services
JP2015197721A (ja) * 2014-03-31 2015-11-09 富士通株式会社 記憶装置調整装置、階層ストレージ設計プログラム及び階層ストレージ設計方法
US9933950B2 (en) * 2015-01-16 2018-04-03 Sandisk Technologies Llc Storage operation interrupt
US10142585B2 (en) * 2015-04-28 2018-11-27 Rovi Guides, Inc. Methods and systems for synching supplemental audio content to video content
US20170085937A1 (en) * 2015-09-22 2017-03-23 Samuel H. Russ Managing DVR Recordings during Changes in Schedule
US10075751B2 (en) 2015-09-30 2018-09-11 Rovi Guides, Inc. Method and system for verifying scheduled media assets
US20170131851A1 (en) * 2015-11-10 2017-05-11 FLX Media, LLC Integrated media display and content integration system
US9973785B1 (en) * 2015-12-28 2018-05-15 Amazon Technologies, Inc. Automatic failover for live video streaming

Also Published As

Publication number Publication date
US11134283B2 (en) 2021-09-28
WO2018035262A1 (en) 2018-02-22
US20210392387A1 (en) 2021-12-16
US20180054639A1 (en) 2018-02-22
EP3501175A1 (en) 2019-06-26
AU2017313769A1 (en) 2019-02-28
CN109792555A (zh) 2019-05-21
BR112019003057A2 (pt) 2019-05-21
MX2019001935A (es) 2019-10-09
JP2019525661A (ja) 2019-09-05
CA3033361A1 (en) 2018-02-22

Similar Documents

Publication Publication Date Title
US11595728B2 (en) Systems and methods for loading interactive media guide data based on user history
EP3566457B1 (en) Systems and methods for predicting viewing behavior
US20210392387A1 (en) Systems and methods for storing a media asset rescheduled for transmission from a different source
US20170251260A1 (en) Systems and methods for synchronizing media asset playback on multiple devices
US9451315B2 (en) Systems and methods for generating for display an interactive media guide based on user history
US10419794B2 (en) Systems and methods for synchronizing media asset playback from multiple sources
US11600304B2 (en) Systems and methods for determining playback points in media assets
US10104439B2 (en) Systems and methods for navigation of groups of media assets
US20230370688A1 (en) Systems and methods for sorting favorite content sources
US20170251235A1 (en) Systems and methods for synchronizing media asset playback on multiple devices
US11863847B2 (en) Methods and system for presenting search results
US20240015356A1 (en) Systems and methods for retrieving segmented media guidance data
US20200169769A1 (en) Systems and methods for managing recorded media assets through advertisement insertion