KR20100051723A - 콘텐츠 전달 방법 및 시스템 - Google Patents
콘텐츠 전달 방법 및 시스템 Download PDFInfo
- Publication number
- KR20100051723A KR20100051723A KR1020107005809A KR20107005809A KR20100051723A KR 20100051723 A KR20100051723 A KR 20100051723A KR 1020107005809 A KR1020107005809 A KR 1020107005809A KR 20107005809 A KR20107005809 A KR 20107005809A KR 20100051723 A KR20100051723 A KR 20100051723A
- Authority
- KR
- South Korea
- Prior art keywords
- data
- content
- file
- player
- reference file
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/4302—Content synchronisation processes, e.g. decoder synchronisation
- H04N21/4307—Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen
- H04N21/43072—Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen of multiple content streams on the same device
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/472—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
- H04N21/47217—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for controlling playback functions for recorded or on-demand content, e.g. using progress bars, mode or play-point indicators or bookmarks
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B27/00—Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
- G11B27/10—Indexing; Addressing; Timing or synchronising; Measuring tape travel
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/236—Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
- H04N21/2368—Multiplexing of audio and video streams
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/434—Disassembling 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/4341—Demultiplexing of audio and video streams
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/45—Management 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/462—Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities
- H04N21/4622—Retrieving content or additional data from different sources, e.g. from a broadcast channel and the Internet
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/61—Network physical structure; Signal processing
- H04N21/6106—Network physical structure; Signal processing specially adapted to the downstream path of the transmission network
- H04N21/6125—Network physical structure; Signal processing specially adapted to the downstream path of the transmission network involving transmission via Internet
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/643—Communication protocols
- H04N21/64322—IP
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/81—Monomedia components thereof
- H04N21/8166—Monomedia components thereof involving executable data, e.g. software
- H04N21/8193—Monomedia components thereof involving executable data, e.g. software dedicated tools, e.g. video decoder software or IPMP tool
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/85—Assembly of content; Generation of multimedia applications
- H04N21/854—Content authoring
- H04N21/8543—Content authoring using a description language, e.g. Multimedia and Hypermedia information coding Expert Group [MHEG], eXtensible Markup Language [XML]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/85—Assembly of content; Generation of multimedia applications
- H04N21/858—Linking data to content, e.g. by linking an URL to a video object, by creating a hotspot
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Human Computer Interaction (AREA)
- Information Transfer Between Computers (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
디스플레이, 및 플레이어를 포함하는 장치 디스플레이 제어기를 가진 데이터 네트워크 접속형 장치 상에서 비디오 콘텐츠를 제공하는 방법 및 시스템이 제공된다. 이 방법은 상기 데이터 네트워크 접속형 장치가 복수의 플레이어 제어 파라미터 값들 및 하나 이상의 콘텐츠 소스들에 대한 링킹 데이터를 포함하는 참조 파일을 액세스하는 단계를 포함한다. 상기 재생 제어 파라미터 값들에 기초하여 재생 제어 커맨드들이 상기 플레이어에 제공된다. 상기 링킹 데이터를 이용하여 상기 데이터 네트워크를 통해 하나 이상의 콘텐츠 소스들로부터 상기 플레이어가 콘텐츠 데이터를 획득하고, 상기 플레이어 제어 커맨드들에 따라 상기 디스플레이 상에서 각각의 소스로부터 획득된 콘텐츠를 재생한다. 참조 파일은 기존의 참조 파일 또는 비디오 콘텐츠 데이터를 재생하라는 요청에 응답하여 생성된 참조 파일일 수 있다. 참조 파일 컴파일러가 참조 파일을 발생하기 위해 제공된다.
Description
본 출원은 2007년 8월 17일에 출원된 미국 가출원 제60/956,405호에 기초하는 것으로 그 출원의 출원일의 이익을 청구하고, 그 내용은 참고 문헌으로서 여기에 포함된다.
본 발명의 기술 분야는 디지털 비디오 콘텐츠 전달이다. 본 발명의 애플리케이션의 일 예는 인터넷 텔레비전 전달을 위한 것이다.
인터넷과 같은 네트워크 상에서 액세스 가능한 콘텐츠를 제공하는 것은 알려져 있다. 퍼스널 컴퓨터와 같은 장치 상에서 인터넷을 통해 콘텐츠를 액세스하는 일반적인 방식은 원하는 콘텐츠를 찾기 위해 웹 브라우저 및 검색 엔진을 사용하는 것이다. 콘텐츠가 영화 또는 비디오 클립과 같은 비디오 콘텐츠인 경우, 콘텐츠는 웹 브라우저에서 제공되는 플러그 인(plug-in)으로도 알려진 비디오 플레이어 애플리케이션을 사용하여 시청할 수 있다. 비디오 콘텐츠의 재생은 플러그인 플레이어를 사용하여 웹 사이트를 통해 제어된다. 시청 경험의 품질 문제는 영상의 낮은 해상도 또는 영상의 픽실레이션(pixilation), 동영상의 지터 또는 정지(halting)를 포함할 수 있으며, 이러한 문제들은 종종 대역폭 제한 또는 처리 용량에 기인한다.
알려진 시스템은 특정 포맷 비디오 데이터 파일들을 재생하도록 설계된 특정 플레이어에 의해 재생될 수 있는, 인터넷을 통해 사용자들에게 제공하기 위한 특정 포맷으로 비디오 데이터를 컴파일링 및 포매팅함으로써 상기 문제를 극복하려고 시도한다. 이 시스템은 사용자 입장에서는 상기 특정 플레이어를 구입해야 하고, 비디오 콘텐츠 제공자 입장에서는 그 플레이어와 함께 사용하기 위해 비디오 콘텐츠를 재 포맷팅해야 한다는 단점들이 있다.
향상된 인터넷 비디오 콘텐츠 액세스 및 시청 경험을 제공하는 시스템이 필요하다.
본 발명의 일 양태에 따라, 디스플레이, 및 플레이어를 포함하는 장치 디스플레이 제어기를 가진 데이터 네트워크 접속형 장치 상에서 비디오 콘텐츠를 제공하는 방법이 제공되어 있고, 이 방법은 상기 데이터 네트워크 접속형 장치가 복수의 플레이어 제어 파라미터 값들 및 하나 이상의 콘텐츠 소스들에 대한 링킹 데이터를 포함하는 참조 파일을 액세스하는 단계; 상기 재생 제어 파라미터 값들에 기초하여 재생 제어 커맨드들을 상기 플레이어에 제공하는 단계; 상기 링킹 데이터를 이용하여 상기 데이터 네트워크를 통해 하나 이상의 콘텐츠 소스들로부터 상기 플레이어가 콘텐츠 데이터를 획득하는 단계; 및 상기 플레이어 제어 커맨드들에 따라 상기 디스플레이 상에서 각각의 소스로부터 획득된 콘텐츠를 재생하는 단계를 포함한다.
참조 파일은 기존의 참조 파일 또는 비디오 콘텐츠 데이터를 재생하라는 요청에 응답하여 생성된 참조 파일일 수 있다. 상기 방법은 참조 파일을 생성하는 단계를 더 포함할 수 있다.
일부 실시예들에서, 참조 파일은 타겟 장치에 의한 비디오 콘텐츠 데이터를 재생하기 위한 요청에 응답하여 생성된다. 이 실시예에서, 상기 방법은 타겟 장치 미디어 플레이어 능력을 판독할지를 타겟 장치에 질문함으로써, 참조 파일이 타겟 장치에 대해 적응되어 생성될 수 있도록 하는 단계를 포함할 수 있다.
본 발명의 다른 양태에 따라, 비디오 콘텐츠에 대한 액세스를 제공하는 방법이 제공되어 있으며, 이 방법은 데이터 네트워크를 통해 액세스 가능한 비디오 콘텐츠 데이터를 저장하는 단계; 링킹 데이터 및 플레이어 제어 파라미터 값들을 포함하는 참조 파일을 제공하되, 상기 링킹 데이터는 지정된 비디오 콘텐츠에 대한 링크 데이터를 포함하는 단계; 및 상기 참조 파일을 액세스 가능하게 하는 단계를 포함하고, 사용자 장치에 의한 상기 참조 파일의 액세스는 상기 사용자 장치가 적어도 상기 지정된 비디오 콘텐츠 데이터에 링크되어 상기 지정된 비디오 콘텐츠 데이터를 재생하도록 해 준다.
본 발명의 다른 양태에 따라, 데이터 네트워크를 통해 비디오 콘텐츠를 제공하는 시스템이 제공되어 있고, 이 시스템은 제어 명령들을 사용자 장치 상에 설치된 플레이어에 제공하도록 적응된 플레이어 인터페이스; 및 참조 파일을 포함하고, 상기 참조 파일은, 플레이어 제어 파라미터 값들; 및 비디오 콘텐츠에 대한 소스를 포함한 하나 이상의 콘텐츠 소스들에 대한 링킹 데이터를 포함하고, 참조 파일이 플레이어 인터페이스에 제공될 때, 상기 플레이어 인터페이스는 상기 플레이어 제어 파라미터 값들 및 링킹 데이터를 이용하여, 상기 사용자 장치 상에 설치된 상기 플레이어에게, 상기 링킹 데이터에 따라 상기 하나 이상의 소스들로부터 비디오 콘텐츠 데이터를 획득하고, 상기 플레이어 제어 파라미터 값들에 따라 상기 사용자 장치 상에서 상기 비디오 콘텐츠를 재생하도록 지시한다.
본 발명의 다른 양태에 따라, 네트워크 상에 저장된 비디오 콘텐츠가 적어도 하나의 비디오 콘텐츠 소스로부터 액세스되는 경우를 정의하는 링킹 데이터를 수신하고, 커맨드들을 각각의 비디오 콘텐츠 소스로부터 획득된 비디오 콘텐츠를 재생하는 장치 플레이어에 제공하기 위해 플레이어 인터페이스가 사용하는 제어 파라미터 값들을 정의하며, 상기 링킹 데이터 및 플레이어 제어 파라미터 값들을 포함하는 참조 파일을 컴파일링하도록 적응된 참조 파일 컴파일러가 제공되어 있다.
이 문서의 콘텍스트에서, 플레이어 제어 파라미터 값들은 비디오 및 오디오 데이터를 재생하는 양태들을 제어하고, 사용자 상호작용 실시예들에서 사용자 입력들에 응답하여 취해질 동작들과 같은 연관된 기능들을 제어하기 위해 사용되는 데이터를 말한다. 예컨대, 플레이어 제어 파라미터 값들은 비디오 콘텐츠를 재생하기 위한 픽셀들에서의 디스플레이 치수를 정의하는 값들 또는 플레이어 설정을 정의하는데 사용되는 플래그들(flag)을 포함할 수 있다.
명세서 전반에 걸쳐서, 용어 비디오 콘텐츠 파일은 데이터 파일에 컴퓨터 판독가능 형태로 저장된 영화, 텔레비전 프로그램 또는 영화 클립과 같은 오디오/비주얼 콘텐츠를 언급하는데 사용된다. 오디오/비주얼 데이터는, 오디오 비주얼 콘텐츠의 일부, 예컨대 하나 이상의 비디오 트랙들, 하나 이상의 오디오 트랙들, 및 재생 중에 오디오 및 비디오의 동기화에 사용되는 하나 이상의 타이밍 트랙들을 각각 포함하는 하나 이상의 트랙들로서 데이터 파일에 저장될 수 있다.
비디오 콘텐츠 재생은 디스플레이 상에서 또는 프로젝터를 사용하여 비주얼 영상들을 렌더링하고, 예컨대 스피커들 또는 헤드폰들을 사용하여 오디오 콘텐츠를 청각적으로 렌더링함으로써 인간 인지를 위해 오디오/비주얼 콘텐츠를 재생하는 것을 말하는 것으로 당업자에 의해 명확하게 이해되어야 한다.
본 발명에 따른 컨텐츠 전달 방법 및 시스템에서 링킹 데이터 및 플레이어 제어 파라미터 값들을 포함하는 참조 파일을 제공하는데 있어서의 이점은 비디오 콘텐츠 제공자는 비디오 콘텐츠 데이터 파일에 대한 제어를 포기할 필요가 없다는 것이다. 또한, 파일 포맷이 대안 파일 포맷으로 변환될 수 있도록 하는 것은, 콘텐츠 소유자가 각각의 특정 플레이어를 위해 데이터를 포매팅할 필요가 없게 하여, 비디오 콘텐츠 제공자가 자신을 상이한 파일 포맷들을 사용할 수 있는 다른 콘텐츠 제공자들과 연계시킬 수 있도록 한다는 점에 그 이점이 있다.
도 1은 본 발명의 시스템의 일 실시예의 블록도.
도 2는 본 발명의 일 실시예에 따른 참조 파일의 생성을 예시한 플로 차트.
도 3은 참조 파일을 이용한 콘텐츠 액세스 및 사용자 장치 디스플레이 상에서의 콘텐츠 제공을 예시한 플로 차트.
도 4는 본 발명의 일 실시예의 애플리케이션의 예시도.
도 2는 본 발명의 일 실시예에 따른 참조 파일의 생성을 예시한 플로 차트.
도 3은 참조 파일을 이용한 콘텐츠 액세스 및 사용자 장치 디스플레이 상에서의 콘텐츠 제공을 예시한 플로 차트.
도 4는 본 발명의 일 실시예의 애플리케이션의 예시도.
이하, 본 발명의 모든 양태들을 포함하는 일 실시예에 대해 첨부 도면을 참조하여 단지 예로서 설명한다.
본 발명의 실시예들은 디스플레이, 및 플레이어를 포함하는 장치 디스플레이 제어기를 가진 사용자 장치 상에서의 디스플레이를 위해 데이터 네트워크를 통해 비디오 콘텐츠를 제공하는 방법 및 시스템을 제공한다. 복수의 플레이어 제어 파라미터 값들 및 하나 이상의 콘텐츠 소스들에 대한 링킹 데이터를 포함하는 참조 파일이 제공된다. 장치 플레이어는 사용자 장치 상에서의 디스플레이를 위해 콘텐츠를 획득하는데 참조 파일로부터의 링킹 데이터를 이용한다. 플레이어 인터페이스는 디스플레이 상에서 각각의 소스로부터 획득된 콘텐츠의 프리젠테이션(presentation)을 제어하기 위해 재생 제어 파라미터 값들에 기초하여 재생 제어 커맨드들을 플레이어에 제공한다.
참조 파일은 미리 준비되고 저장되며, 예컨대 웹 사이트를 통해 사용자 장치들에 의해 데이터 네트워크를 통해 액세스 가능하다. 대안으로, 참조 파일은 요청에 응답하여 생성될 수 있다.
시스템의 일 실시예가 도 1에 블록도 형태로 예시되어 있다. 시스템(100)은 디스플레이 제어 명령들을 사용자 장치(140) 상의 플레이어(145)에 제공하는데 적합한 플레이어 인터페이스(120), 및 지원 서버(110)를 포함한다.
지원 서버(110)는 지정된 비디오 콘텐츠 파일(132)에 대해 참조 파일(135)을 생성하도록 적응된 참조 파일 컴파일러(112)를 갖고 있다. 참조 파일(135)은 플레이어 제어 파라미터 값들, 및 지정된 비디오 콘텐츠 파일(132)에 대한 소스(130)를 포함한 하나 이상의 콘텐츠 소스들에 대한 링킹 데이터를 포함한다. 플레이어 인터페이스(120)는 사용자 장치(140) 상에 설치된 플레이어(145)에게 하나 이상의 데이터 소스들로부터 비디오 콘텐츠 데이터를 획득하여 비디오 콘텐츠를 재생하도록 지시하는데 플레이어 제어 파라미터 값들 및 링킹 데이터를 이용한다.
시스템의 일부 실시예들은 데이터 네트워크를 통해 액세스 가능한 기존의 참조 파일들을 제공하고, 다른 실시예들은 요구에 따라, 예컨대 비디오 콘텐츠 파일을 다운로드 및 재생하라는 요청에 응답하여, 참조 파일들을 생성한다.
도 1은 참조 파일들이 생성되어 비디오 콘텐츠 소스 서버(130) 상에 저장되고, 따라서 기존의 참조 파일들이 사용자들에 의해 액세스될 수 있는 예를 예시한다.
사용자에 의해 비디오 콘텐츠 파일을 재생하는 프로세스의 일 예가 도 2에 예시되어 있다. 링킹 데이터 및 플레이어 제어 파라미터 값들을 포함하는 참조 파일(135)은 사용자 장치(210)에 의해 액세스되는 방식으로 제공되는데, 예컨대 도 1에 예시된 바와 같이 참조 파일은 인터넷 웹 사이트(138)로부터 하이퍼링크(136)를 통해 액세스 가능하다. 사용자는 하이퍼링크(136)를 통해 참조 파일(135)을 액세스한다(220).
사용자가 참조 파일(220)을 액세스하면, 참조 파일(135)은 플레이어 인터페이스(120)에 의해 판독된다. 플레이어 인터페이스(120)는 플레이어(145)가 이미 실행중이 아니면 사용자 장치가 플레이어(145)를 개시시키게 한다(230).
플레이어(145)는 사용자 장치의 운영체제에 내장될 수 있음을 이해해야 한다. 예컨대, 플레이어는 비디오 콘텐츠 데이터를 디코딩하고, 비디오 콘텐츠를 디스플레이하기 위해 장치 디스플레이 하드웨어를 구동한다. 플레이어는 운영체제 커널(kernel)의 기능으로서, 미들웨어에서는 애플리케이션 프로그래밍 인터페이스(application programming interface; API) 등으로서 구현될 수 있다. 플레이어 인터페이스(120)는 플레이어(145)를 제어하는, 예컨대 사용자에 의해 입력되는 커맨드들 또는 참조 파일로부터 판독되는 제어 파라미터 값들을 해석하고 적합한 제어 명령들을 플레이어(145)에 제공하는 고급 기능들을 제공하는 사용자 장치 상에서 구동되는 애플리케이션일 수 있다.
링킹 데이터(Linking Data)에 기초하여, 플레이어(145)는 하나 이상의 콘텐츠 소스들로부터 직접 콘텐츠 데이터를 획득할 수 있다(240). 이와 같이, 사용자 장치는 콘텐츠 제공자 서버(130) 상의 콘텐츠 데이터 파일(132)에 직접 링크될 수 있다.
콘텐츠 데이터 획득(240)의 타이밍 및 방식은 각각의 콘텐츠 소스와 연관된 파라미터 값들에 따라 제어될 수 있고, 예컨대 콘텐츠는 하나 이상의 소스들로부터 순차적으로 특별한 순서로 다운로드될 수 있으며, 데이터는 하나 이상의 소스들로부터 획득될 때 재생될 데이터 스트림으로서 획득될 수 있다.
플레이어 인터페이스(120)는 플레이어(260)를 제어하는데 필요한 경우 참조 파일로부터 플레이어 제어 파라미터 값들을 판독할 수 있다(250). 예컨대, 참조 파일(135)은 액세스시 초기에 실행되어야 하는 글로벌 커맨드(Global Command)들에 대한 파라미터 값들, 및 나중에 또는 일정 이벤트들에 응답하여, 예컨대 특정 콘텐츠 파일의 재생의 시작 또는 종료시, 사용자 명령에 응답하여, 또는 주어진 시간 기간 후에 실행될 수 있는 명령들에 대한 다른 파라미터 값들을 포함할 수 있다.
일부 실시예들에서, 플레이어 인터페이스는 플레이어를 제어하고 사용자 장치 하드웨어 상에서 실행되는 외부 사용자 입력들을 해석하기 위한 소프트웨어 또는 미들웨어 애플리케이션이다. 대안 실시예들에서, 플레이어 인터페이스는 네트워크 서버 상에서 실행되는 애플리케이션일 수 있고, 플레이어 제어 명령들은 네트워크를 통해 사용자 장치 플레이어에 전달된다. 플레이어 인터페이스는 참조 파일에 포함된 플레이어 제어 파라미터 값들 및 링킹 데이터를 해석하고 필요한 경우 제어 명령들을 장치 플레이어에 제공하도록 적응된 애플리케이션이다. 플레이어 인터페이스는 일부 실시예들에서는, 예컨대 비디오 콘텐츠가 최소 사용자 대화 기능으로 또는 사용자 대화 기능 없이 간단히 재생되는 실시예에서는 선택적일 수 있다. 이 경우에, 참조 파일은, 플레이어가 마치 재생을 위해 장치 메모리에 저장된 비디오 파일을 여는 것처럼 참조 파일을 간단히 판독하고, 콘텐츠 데이터에 링크되고, 어떤 다른 제어 명령들을 요구하지 않고 콘텐츠 데이터를 재생할 수 있도록 구성된다. 대안 실시예에서, 플레이어 기능 및 플레이어 인터페이스 기능은 예컨대 텔레비전 셋탑 박스의 경우에 장치 운영체제의 핵심 구성요소들일 수 있다. 이 경우에, 플레이어 기능 및 플레이어 인터페이스 기능은 모두 장치 운영체제로 구현된다.
참조 파일은 예컨대 실행가능 스크립트들 또는 기계 판독가능한 실행가능 명령들로서 제공되는 커맨드들을 포함한다. 이러한 커맨드들은 플레이어 제어 기능 또는 다른 기능들, 예컨대 과금, 소비자 피드백(feedback), 상호작용(interactivity), 또는 DRM(digital rights management)을 위해 사용될 수 있다. 이들 커맨드는 플레이어 인터페이스에 의해 해석될 수 있고, 필요한 경우, 플레이어 인터페이스는 스크립트들에 따라 플레이어를 제어할 수 있다. 일부 경우들에서, 스크립트들은 플레이어로 전달될 정보를 요구하지 않을 수 있다. 예컨대, DRM 또는 과금의 경우에, 스크립트는 영화 재생이 시작 및 정지될 때 또는 영화가 전부 재생되었을 때 플레이어 인터페이스에게 데이터를 네트워크를 통해 모니터링 서비스에 제공하도록 지시할 수 있고, 다음에 이 데이터는 사용자 계정에 과금하거나 DRM 수익 배분을 위해 영화 재생을 기록하는데 사용될 수 있다. 이 경우에 플레이어는 명령을 요구하지 않음을 이해해야 한다.
참조 파일은 콘텐츠 데이터 파일의 파일 포매팅에 관련된 파라미터 값들 및 제어 커맨드들을 포함할 수 있다. 일부 실시예들에서, 파라미터 값들 및 제어 커맨드들은 파일 포맷들의 변환에 관련될 수 있다. 예컨대, 한 장치는 다른 장치의 파일 포맷 또는 콘텐츠 데이터 파일이 콘텐츠 파일 서버에 저장된 포맷과는 다른 파일 포맷을 요구할 수 있다.
타겟 장치용의 참조 파일은 콘텐츠 데이터 파일 포맷을 저장된 포맷으로부터 타겟 장치에 의해 재생 가능한 포맷으로 변환하는 변환 비디오 구조를 포함할 수 있다. 예컨대, 콘텐츠 데이터 서버 상에 .mov 포맷으로 저장된 비디오 및 오디오 콘텐츠 데이터가 마치 파일이 어도비 플래시 포맷(Adobe Flash Format)인 것처럼 타겟 장치에 의해 재생되게 한다. 이는 일 실시예에서 참조 파일이 콘텐츠 서버 상에 저장된 콘텐츠 데이터 파일의 포맷에 관계없이 타겟 장치 플레이어와 호환되는 컨테이너(Container) 파일 포맷으로 생성됨으로써 달성된다. 참조 파일에 포함된 링킹 데이터는 타겟 장치에 스트리밍되는 비디오 및 오디오 데이터를 저장하는 콘텐츠 데이터 파일의 부분들에만 링크되도록 적응(Adapted)될 수 있으며, 따라서 타겟 장치와의 호환을 위해 선택된, 참조 파일에서 사용되는 컨테이너 파일 포맷의 콘텐츠 데이터 파일로부터 비디오 및 오디오 데이터를 재생하고 있는 것으로 타겟 장치에게는 보일 수 있다.
일 실시예에서, 참조 파일의 제어 파라미터 값들은 참조 파일이 플레이어에게 오리지널 콘텐츠 데이터 파일의 구조와는 다른 구조를 가진 콘텐츠 데이터 파일로서 나타나게 하는 변환된 비디오 구조를 제공한다. 대안으로, 커맨드 명령들은 파일을 한 포맷으로부터 다른 포맷으로 변환할 때 사용하기 위해 참조 파일에서 제공될 수 있다. 대안 실시예들의 변환된 비디오 구조 및 제어 커맨드들은 동일한 비디오 콘텐츠가 콘텐츠 제공자 서버에 저장된 콘텐츠 데이터 파일과는 다른 파일 포맷을 이용하여 플레이어에게 전달되게 함을 이해해야 한다. 이는 콘텐츠 서비스 제공자가 사용자 장치들과의 호환성을 보장하기 위해 동일 콘텐츠 데이터를 복수의 상이한 파일 포맷들로 저장할 필요가 없다는 이점이 있다.
참조 파일 컴파일러(112)에 의해 참조 파일(135)을 생성하는 프로세스가 도 3에 예시되어 있다. 비디오 콘텐츠 데이터 파일(132)이 비디오 콘텐츠 제공자가 원하는 포맷으로 비디오 콘텐츠 제공자 서버(130) 상에 저장된다. 이 저장된 비디오 콘텐츠 데이터 파일(132)에 대한 링크는 참조 파일 컴파일러(112)에 제공된다(300). 비디오 콘텐츠 제공자는 또한 비디오 콘텐츠 데이터 파일에 대한 제어 또는 포매팅 정보를 지정하고, 부가 정보를 제공할 수 있다(310). 예컨대, 비디오 콘텐츠 제공자는 사용자 장치의 디스플레이 치수가 비디오 영상의 종횡비와 매칭되지 않는 경우 비디오를 잘라내지 않고 비디오를 "레터 박스(letterbox)" 포맷으로 디스플레이해야 함을 지정할 수 있고, 또는 서라운드 사운드가 이용할 수 있는 경우 서라운드 사운드를 자동적으로 사용해야 함을 지정할 수 있다. 비디오 콘텐츠 제공자에 의해 제공되는 다른 정보의 다른 예들은 영화에 대한 대안 언어 자막들 또는 사운드 트랙들과 같은 부가 정보에 대한 링크들을 포함할 수 있다.
콘텐츠 제공자 서버(130) 상에 저장된 콘텐츠 데이터 파일(132)은 임의 개수의 데이터 파일 포맷들, 예컨대 .mov 포맷, 어도비 플래시 플레이어 포맷 등으로 저장될 수 있다. 그러나, 비디오 콘텐츠가 저장된 데이터 파일 포맷은 타겟 장치와 호환되지 않는 포맷일 수 있다. 예컨대, 타겟 사용자 장치는, 파일 타입을 판독하고 파일을 오픈(Open)하기에 적합한 소프트웨어를 이용함으로써 많은 상이한 파일 포맷들로부터 비디오 콘텐츠를 재생하도록 된 퍼스널 컴퓨터(PC)일 수 있다. 그러나, 타겟 장치가 텔레비전 셋탑 박스인 경우, 장치가 처리하는 파일 타입들의 수는 제한될 수 있고, 또한 상이한 파일 포맷들과의 호환성을 위해 장치 소프트웨어를 업그레이드하는 사용자의 능력이 크게 제한된다. 콘텐츠 데이터 파일이 타겟 장치 소프트웨어와 호환되지 않는 포맷인 경우, 전형적으로 사용자는 파일이 재생될 수 있기 전에 장치 소프트웨어를 업데이트하는 것이 필요하다. 참조 파일 컴파일러의 일부 실시예들은 달리 호환되지 않는 파일 포맷인 비디오 콘텐츠가 타겟 장치에 의해 재생되도록 하기 위해 변환된 비디오 구조를 제공하는 참조 파일이 생성되게 한다.
콘텐츠 데이터 파일들은, 전형적으로, 여기서 컨테이너 파일 포맷 또는 데이터 파일 포맷이라고 하는 정의된 데이터 구조를 갖고 있다. 인코딩된 오디오 및 비디오 데이터는 정의된 데이터 구조 내에 데이터의 요소들로서 저장된다. 컨테이너 파일 포맷들은 표준 또는 소유(proprietary) 사양들에서 정의될 수 있다. 플레이어 장치들의 제조업체들은 정의된 컨테이너 파일 데이터 구조에 기초하여 콘텐츠 데이터를 재생하기 위해 파일로부터 데이터를 해석할 수 있도록 플레이어 장치를 적응시킬 수 있다. 바꾸어 말하면 플레이어 장치가 컨테이너 파일 포맷과 호환되게 만든다. 오디오/비주얼 데이터는 코덱으로도 알려진 인코딩 및 압축 기법을 이용하여 저장되며, 오디오 및 비디오 데이터 구성 요소들을 인코딩하기 위해 다른 코덱들이 사용될 수 있다. 또한, 코덱들은 소유 또는 표준 사양들에서 정의될 수 있으며, 따라서 플레이어들은 인코딩된 데이터를 정확하게 디코딩하고 오디오 비주얼 콘텐츠를 재생하기 위한 하나 이상의 상이한 코덱들을 디코딩하도록 적응될 수 있다. 플레이어 장치들 또한 전형적으로 콘텐츠 데이터 파일을 판독하여 컨테이너 파일 포맷에 따라 해석 및 디코딩하는 파일 처리 기능들; 및 디코딩 코덱에 따라 오디오/비주얼 데이터를 디코딩하고 비디오 및 오디오 콘텐츠를 디스플레이 및 재생하기 위해 장치 하드웨어를 구동하는 렌더링(Rendering) 기능들을 갖고 있다. 컨테이너 파일 포맷 내에 저장된 인코딩된 오디오 및 비디오 데이터는, 플레이어 장치가 컨테이너 파일 구조와 호환되지 않아 오디오/비주얼 콘텐츠를 재생하기 위해 콘텐츠 데이터 파일을 해석할 수 없지만, 플레이어 장치가 호환되는 코덱을 사용할 수 있다.
참조 컴파일러는 타겟 장치와 호환되는 컨테이너 파일 포맷을 이용하여 변환된 비디오 구조를 구성하고, 타겟 장치 플레이어가 콘텐츠 데이터 서버 상에 저장된 비디오 콘텐츠 데이터 파일의 인코딩된 오디오/비주얼 데이터부들에 직접 링크되어 액세스하도록, 링킹 데이터를 이 변환된 비디오 구조 내에 포함시키도록 적응될 수 있다. 참조 파일 컴파일러의 대안 실시예들은 참조 파일을 발생할 수 있고, 참조 파일은 호환되는 컨테이너 파일 포맷을 이용하는 변환된 비디오 구조가 타겟 장치 메모리 내에 구성되도록 하기 위한 제어 커맨드들, 및 장치 플레이어가 콘텐츠 데이터 서버 상에 저장된 비디오 콘텐츠 데이터 파일의 인코딩된 오디오/비주얼 데이터부들에 직접 링크되도록 하기 위한 링킹 데이터를 포함한다.
도 6에 예시된 바와 같이, 비디오 콘텐츠 데이터 파일(600)은 정의된 콘텐츠 데이터 파일 포맷 사양 및 코덱 사양에 따른 데이터 구조를 갖고 있다. 데이터 파일(600)은 컨테이너 파일 타입(611)을 식별하는 파일 식별부(610)를 포함하고 컨테이너 파일 헤더(612)를 포함한다. 오디오 및 비디오 데이터는 컨테이너 파일 포맷에 따라 포매팅된 트랙 내 파일에 저장된다. 예시된 파일은 하나의 오디오 트랙(620) 및 하나의 비디오 트랙(630)을 갖고 있다. 파일은 파일 메타 데이터(File Meta Data), 사용자 데이터, 모든 프레임 재생과 같은 재생 커맨드들, 프레임들의 재생 선택, 디폴트 윈도우(Default Window) 위치 등과 같은 부가 데이터(660)를 포함할 수 있다. 파일에 대한 사용자 데이터는 제작자 데이터, 저작권 설명, 영화 감독, 레코드 회사, 키워드들 또는 타이틀들 및 콘텐츠 등과 같은 전체 파일에 대해 관련된 정보를 포함할 수 있다.
오디오 트랙(620)은 오디오 트랙에 대한 정의부(640), 오디오 샘플 테이블(645) 및 선택적 메타 데이터 및 사용자 데이터(648)를 포함한다. 정의부(640)는 요구된 컨테이너 파일 포맷에 따라 오디오 트랙 정보를 제공하고, 오디오 샘플 테이블(645)은 코덱 인코딩된 오디오 데이터 샘플들을 포함한다. 비디오 트랙(630)은 또한 컨테이너 파일 포맷에 따라 비디오 트랙 정보를 제공하고, 코딩된 인코딩 비디오 데이터 샘플들을 포함하는 비디오 샘플 테이블(655), 및 선택적 메타데이터 및 사용자 데이터(658)를 제공하는 정의부(650)를 포함한다.
참조 파일 컴파일러는 오디오 트랙 및 비디오 트랙에 대한 콘텐츠 데이터 파일 식별부(610) 및 정의부들(640, 650)을 판독하고 이들 부분 내의 데이터를 해석하도록 적응된다. 이는 데이터 요소 값들을 판독하는 것 및 이들 값들을 적합한 제어 파라미터 값들과 동일시하는 것을 포함할 수 있다. 이는 또한 콘텐츠 데이터 파일의 맵핑을 포함할 수 있다. 맵핑으로부터, 참조 파일 컴파일러는 인코딩된 비디오 및 오디오 데이터를 포함하는 콘텐츠 데이터 파일의 오디오 및 비디오 샘플 테이블부들(645, 655)을 식별할 수 있다. 오디오 트랙 및 비디오 트랙과 연관된 동기화 트랙들, 사용자 데이터 또는 메타 데이터(648, 658)와 같은 어떤 부가 관련 데이터가 또한 식별될 수 있다. 예컨대, 동기화 데이터는 상이한 언어들의 자막들을 영화와 동기화시키는데 사용되는 타이밍 데이터일 수 있다. 트랙에 대한 메타 데이터는 트랙 길이, 사용되는 코덱 등과 같은 트랙에 대한 데이터에 관련된 정보를 포함할 수 있다. 각각의 트랙에 대한 사용자 데이터는 사용자의 또는 사용자가 관심 있어 하는 트랙에 관련된 정보를 포함할 수 있고, 예컨대 오디오 트랙 용의 그리고 장면 타이틀들 또는 콘텐츠 키워드들과 같은 영화 트랙 정보용의 컴포저(composer)/어레인저(arranger)가 탐색 또는 장면 선택을 위해 사용될 수 있다. 대안으로, 부가 데이터는 상호작용 기능에 관련될 수 있다. 데이터 파일은 커맨드들의 성질에 따라 참조 파일에 임포팅(import)되거나 되지 않을 수 있는 제어 명령들을 포함할 수 있다.
다음에, 참조 파일 컴파일러는 변환된 비디오 구조를 타겟 장치 호환성이 알려진 타겟 장치와 호환되는 포맷으로 형성할 수 있다. 참조 파일 컴파일러(112)는 타겟 장치와의 호환을 위해 선택된 데이터 구조에 따라 콘텐츠 데이터 파일의 오디오 트랙 및 비디오 트랙의 데이터 파일 식별부(610) 및 정의부들(640, 650)로부터 판독된 데이터를 동등한 식별 및 정의 데이터 요소들 또는 적합한 제어 파라미터 값들로 변환한다.
필요한 경우, 참조 파일 컴파일러는 어떤 원하는 글로벌 또는 일반 제어 파라미터 값들에 기초하여 또는 대안으로 콘텐츠 제공자 명령들에 따라 적합한 제어 파라미터 값들을 추가할 수 있다. 참조 파일들에 적용될 수 있는 글로벌 파라미터 값들의 일 예는 콘텐츠를 재생하기 위한 디스플레이 영역을 정의하는, 콘텐츠의 자동 재생을 위한 파라미터 값들, 및 재생 종료시 빠져나갈지 아니면 메뉴로 복귀할지를 나타내는 파라미터 값들이다.
참조 파일 컴파일러는 콘텐츠 파일 맵핑에 기초하여 링킹 데이터를 삽입한다. 링킹 데이터는 인코딩된 비디오 및 오디오 데이터를 포함하는 콘텐츠 데이터 파일의 오디오 및 비디오 샘플 테이블부들(645, 655)에 특정된다. 이와 같이 참조 파일은 오리지널 콘텐츠 데이터 파일 구조 내의 실제 비디오 및 오디오 데이터를 저장하는 콘텐츠 데이터 파일의 부분들의 주소들에 링크된다. 예컨대, 링킹 데이터는 오디오 또는 비디오 샘플 테이블이 저장된 서버 메모리 내의 특정 목적지 서버 주소 및 상대 또는 절대 주소를 정의할 수 있다. 그러므로, 링크 데이터는 콘텐츠 서버 상에서 콘텐츠 데이터 파일 구조의 정의부들 또는 어떤 헤더 요소들에 대한 것이 아니다. 링킹 데이터는 콘텐츠 데이터 파일 주소 맵핑에 따라 복수의 주소들에 대한 링크들을 포함할 수 있다.
오디오 및 비디오 샘플 테이블들(645, 655)은 재생을 위해 오디오 및 비디오 데이터의 코덱 디코딩에 필요한 모든 데이터를 포함함을 이해해야 한다. 이와 같이, 변환된 비디오 구조는 플레이어가 자신이 해석할 수 있는 컨테이너 파일 포맷의 인코딩된 오디오 및 비디오 데이터를 액세스할 수 있도록 생성된 컨테이너 파일이다. 예컨대, 오리지널 콘텐츠 파일은 .mov 컨테이너 파일 포맷을 가지고 있고, 변환된 비디오 구조의 컨테이너 파일 포맷은 어도비(Adobe) 플래시 포맷일 수 있다. 어도비 플래시 컨테이너 파일 내에는, 전체 샘플 테이블들 자체보다는 오리지널 .mov 파일의 샘플 테이블들에 대한 링크들이 저장된다. 플레이어가 참조 파일을 로딩하면, 플레이어는 인코딩된 오디오 및 비디오 데이터를 버퍼링, 디코딩 및 렌더링하기 위해 로컬 메모리 내의 주소가 아닌 .mov 파일 내에서 콘텐츠 서버 상에 저장된 샘플 테이블들에 링크된다.
링킹 데이터는 또한 동일한 서버 상에 각각 저장되거나 저장되지 않을 수 있는 복수의 샘플 테이블에 링크될 수 있다. 예컨대, 각각 동일한 영화의 두 영화 파일들은 2개의 상이한 서버들 상에 저장될 수 있다. 제1 서버는 높은 다운로드 속도 및 이 서버로부터 다운로드되는 데이터에 대해 발생하는 프리미엄 요금을 위해 적응될 수 있다. 제2 서버는 보다 낮은 다운로드 속도를 갖지만, 데이터 다운로드에 대해 발생하는 요금이 적다. 참조 파일 컴파일러는 인코딩된 오디오 및 비디오 데이터의 일부를 위한 제1 서버에 대한 링크 및 남아 있는 오디오 및 비디오 데이터를 위한 제2 서버에 대한 링크를 포함하는 참조 파일을 구성하도록 적응될 수 있다. 예컨대, 참조 파일은 영화의 처음 5분 동안 제1 서버 상의 인코딩된 오디오 및 비디오 데이터 샘플들에 링크된 다음에, 영화의 나머지 부분을 위해 제2 서버 상의 인코딩된 오디오 및 비디오 데이터 샘플들에 링크될 수 있다. 이에 따라, 높은 다운로드 속도는 사용자를 위해 영화를 빠르게 재생하는데 이용될 수 있고, 제2 서버의 보다 낮은 다운로드 속도는 사용자의 시청 경험을 달성할 것으로 기대되지 않으며, 제1 서버로부터 다운로드된 이전 장면들이 시청되고 있는 동안 제2 서버로부터 데이터가 다운로드되어 임시/버퍼 메모리에 저장될 수 있다. 보다 느린 다운로드 속도는 비교적 느린 실시간 영화 재생에 의해 보상된다.
타겟 장치 호환성이 알려지지 않은 대안 환경에서, 참조 컴파일러는 타겟 장치 메모리에 변환된 비디오 구조를 구성하기 위한 제어 명령들을 발생할 수 있다. 이 경우에, 타겟 포맷이 알려지지 않았으므로, 참조 파일 컴파일러는 콘텐츠 데이터 파일의 오디오 트랙 및 비디오 트랙에 대한 데이터 파일 식별부(610) 및 정의부들(640, 650)로부터 판독된 데이터 요소들, 오디오 및 비디오 데이터 샘플 테이블들(645, 655)의 맵핑, 및 참조 파일 컴파일러에서 지정된 일반 플레이어 제어 명령들에 기초하여 변환된 비디오 구조를 구성하기 위한 명령들을 발생할 수 있다.
제어 명령들은 타겟 장치 메모리에 변환된 비디오 구조를 구성하고, 인코딩된 오디오 및 비디오 콘텐츠가 저장된 콘텐츠 데이터 파일 내의 주소들로의 직접 링크시키기 위해 위에서 설명된 바와 같이 오리지널 콘텐츠 데이터 파일로부터 판독된 데이터 및 링킹 데이터에 기초하여 상기 변환된 비디오 구조를 파라미터 값들로 파퓰레이팅(populating)하기 위한 명령들 및 파라미터 값들을 포함하는 스크립트로서 발생될 수 있다. 예컨대, 제어 명령들은 규칙 엔진을 구성할 수 있어, 적합한 변환된 비디오 구조가 타겟 장치 플레이어의 질의로부터 획득된 데이터에 따라 규칙들을 적용함으로써 구성된다. 스크립트는 장치 플레이어에 의해 해석될 수 있는 기계판독가능 형태로 또는 일반 스크립트로서 생성될 수 있다. 일반 스크립트는 참조 파일에 저장하기 위해 기계 실행가능 형태로 컴파일링될 수 있다. 예컨대, 일반 스크립트는 타겟 장치에 의해 실행될 수 있는 아톰들로도 알려진 하나 이상의 기계판독가능 이진 명령들로 컴파일링될 수 있다.
참조 파일은 변환된 비디오 구조 또는 변환된 비디오 구조 자체를 구성하기 위한 명령들 이외에 명령들을 포함할 수 있음을 이해해야 한다.
참조 파일 컴파일러(112)는 어떤 콘텐츠 제공자 지정된 제어 및 포매팅 명령들을 참조 파일에 저장될 적합한 플레이어 제어 파라미터 값들로 변환할 수 있다(315). 어떤 원하는 글로벌 또는 일반 제어 파라미터 값들이 또한 추가될 수 있다(320). 모든 참조 파일들에 적용될 수 있는 글로벌 파라미터 값들의 일 예는 콘텐츠의 자동 재생을 풀 화면 모드로 지정하고 재생 종료시 풀 화면 모드를 종료하기 위한 파라미터 값들이다.
선택적으로, 참조 컴파일러는 광고 콘텐츠와 같은 부가 콘텐츠에 대한 링크들를 추가할 수 있다(330). 부가 콘텐츠는 비디오 콘텐츠 제공자에 의해 지정될 수 있는데, 예컨대 속편 또는 임박한 개봉 영화의 예고편, 사용자 구동 콘텐츠, DRM을 위해 사용된 지문, 영화와 연관된 광고, 영화로부터의 음악 사운드 트랙 모음을 구매하기 위한 링크, 삭제된 장면들, 배우 및 감독과의 인터뷰 등과 같은 영화에 대한 부가 정보이다. 예컨대, 콘텐츠 제공자 웹 사이트는 사용자가 생성한 비디오 클립들, 아웃테이크(outtakes), 감독의 논평, 미디어 기사 또는 리뷰 등과 같은 일부 부가 콘텐츠를 "픽 리스트(pick list)"로부터 선택할 수 있도록 해 줄 수 있다. 속편의 예고편 및 DRM 지문과 같은 다른 부가 콘텐츠에 대한 링크들이 콘텐츠 제공자 제어 명령들에 따라 자동으로 추가될 수 있다. 부가 콘텐츠에 대한 링크들은 복수의 상이한 서버들로 향할 수 있다.
부가 콘텐츠는 또한 영화 내의 에러에 대한 논평 또는 북마크들 또는 시청자들의 흥미로운 소감과 같은, 사용자가 생성한 콘텐츠일 수 있다. 예컨대, 사용자는 재미있는 콘티(continuity) 에러를 발견한 특별한 장면에서 영화를 중지시킬 수 있고, 사용자는 영화 내의 시간을 나타내는 타임 스탬프, 및 사용자가 북마크와 연관시키기 위해 선택한 논평 또는 다른 데이터를 포함하는 북마크를 생성할 수 있다. 사용자들이 영화를 시청하는 동안에 시간 데이터를 캡처하여 북마크들을 생성할 수 있도록 해 주기 위해 북마크 툴, 예컨대 소프트웨어 애플리케이션이 제공될 수 있다. 하나 이상의 북마크들이 파일에 저장될 수 있고, 파일 자체 또는 파일에 대한 링킹 데이터는 콘텐츠 제공자 또는 지원 서버에 제공될 수 있다.
북마크 파일에 대한 링크는 콘텐츠 데이터를 위해 컴파일링된 참조 파일에 포함될 수 있다. 예컨대, 참조 파일 컴파일러에는, 콘텐츠 제공자에 의해 북마크 파일에 대한 링킹 데이터가 제공될 수 있고, 또는 참조 파일 컴파일러는 지원 서버 상에서 북마크 파일들을 검색하고 북마크 파일들에 대한 링킹 데이터를 참조 파일에 포함시키도록 적응될 수 있다. 대안으로, 북마크 파일은 참조 파일의 발생을 트리거하는데 사용될 수 있다. 예컨대, 영화 또는 영화의 특별한 장면들에 대한 참조 파일은 지원 서버로부터의 북마크 또는 북마크 파일의 선택에 응답하여 발생될 수 있다. 이 예에서, 북마크 파일 액세스는 참조 파일 컴파일러에 대한 하이퍼링크를 활성화시킬 수 있다. 다음에, 참조 파일 컴파일러는 참조 파일을, 북마크로부터의 시간 데이터에 기초하여 북마크와 연관된 영화 파일 인코딩 샘플 데이터 파일들의 특정 영역에 대한 링크들을 포함하는 변환된 비디오 구조의 형태로 발생할 수 있다. 참조 파일은 또한 북마크 파일 콘텐츠에 대한 링크들을 포함할 수 있다. 참조 파일만이 북마크와 연관된 영화의 일부분에 연관되는 경우, 참조 파일은 또한 콘텐츠 데이터 제공자에 대한 링크가 미리 저장된 참조 파일을 액세스하거나 전체 영화에 대한 새로운 참조 파일을 발생함으로써 동일한 변환된 파일 구조를 통해 전체 영화를 액세스할 수 있도록 해 주는 제어 파라미터 값들을 포함할 수 있다.
부가 콘텐츠는 광고 콘텐츠와 같이 비디오 콘텐츠 제공자와는 무관할 수 있다. 위에서 설명된 비디오 콘텐츠 파일에 대한 링크와 유사하게, 부가 콘텐츠 파일에 대한 직접적인 링크가 제공될 수 있다. 이 부가 링크는 비디오 콘텐츠와 동일한 데이터베이스 또는 서버 상에 저장된 파일에 대한 링크 또는 다른 위치에 있는 다른 서버에 대한 링크일 수 있다.
대안으로, 부가 콘텐츠를 제어하는 서버에 대한 링크가 사용될 수 있다. 이 예에서, 실제 콘텐츠 파일은 지정되지 않고, 오히려 목적지 서버에 대한 링크가 지정되며, 서버는, 예컨대 콘텐츠 데이터를 선택하고 선택된 콘텐츠를 이 링크를 통해 스트리밍함으로써, 이 링크를 통해 콘텐츠가 사용자 장치에게 제공되도록 콘텐츠를 제어한다. 예컨대, 콘텐츠는 많은 나라의 사람들이 흥미로워하는 월드컵 스포츠 이벤트일 수 있다. 이벤트는 많은 상이한 나라들의 많은 상이한 회사들에 의해 후원될 수 있다. 후원자들은, 스포츠 이벤트 콘텐츠를 다운로드 및 재생하는 사용자와 함께 다운로드 및 재생을 위해 링크될 수 있는 광고 자료를 제공할 수 있다. 그러나, 후원 회사들 중 일부는 콘텐츠가 다운로드되는 일부 나라에서는, 예컨대 담배 광고를 금지하는 호주에서는, 광고를 할 수 없고, 또는 후원 회사들은 언어, 문화 또는 종교 차이를 수용하는데 대안 광고들을 일부 나라에서 사용할 수 있다. 참조 파일이 스포츠 이벤트용으로 준비될 때, 부가 콘텐츠에 대한 링크가 사용자를 위해 적합한 콘텐츠를 선택하기 위한 규칙 엔진을 가진 광고 콘텐츠 서버에 대한 링크로서 포함될 수 있다.
부가 콘텐츠 링크 데이터는 참조 파일 정보에 추가되며(340), 부가 콘텐츠에 대한 어떤 플레이어 제어 명령들이 플레이어 제어 파라미터 값들로 변환된다(350). 다음에, 참조 파일은 컴파일링되어(360), 링킹 데이터 및 파라미터 값들이 참조 파일(135)을 형성하기 위해 적합하게 정렬, 포매팅 및 저장된다.
참조 파일이 미리 준비된 일 실시예에서는, 참조 파일은 비디오 콘텐츠 제공자에 제공될 수 있다(365). 다음에, 비디오 콘텐츠 제공자는 참조 파일을, 예컨대 웹 사이트, 이메일, TV 방송 또는 내로우캐스트(narrowcast) 네트워크를 통해 또는 플로피 디스크, 광 디스크 또는 메모리 스틱와 같은 컴퓨터 판독가능 장치 상에 저장된 파일로서 사용자 장치들에 제공할 수 있다.
참조 파일들이 요구에 따라 발생되는 대안 실시예에서, 참조 파일은, 예컨대 네트워크를 통해, 직접 사용자 장치로 제공될 수 있다.
링킹 데이터 및 플레이어 제어 파라미터 값들을 포함하는 참조 파일을 제공하는 이점은 비디오 콘텐츠 제공자는 비디오 콘텐츠 데이터 파일에 대한 제어를 포기할 필요가 없다는 것이다. 또한, 파일 포맷이 대안 파일 포맷으로 변환될 수 있도록 하는 것은, 콘텐츠 소유자가 각각의 특정 플레이어를 위해 데이터를 포매팅할 필요가 없게 하여, 비디오 콘텐츠 제공자가 자신을 상이한 파일 포맷들을 사용할 수 있는 다른 콘텐츠 제공자들과 연계시킬 수 있도록 한다는 점에서 이점이 있다. 비디오 콘텐츠 데이터 파일(132)은 콘텐츠 제공자의 서버(130) 상에 오리지널 파일 포맷으로 저장되어 있다. 콘텐츠 제공자는 링크 정보 및 어떤 요구된 제어 정보만을 참조 파일 컴파일러(112)에 제공한다.
일단 비디오 콘텐츠 파일에 대한 참조 파일(135)이 생성되면, 이 참조 파일(135)은 콘텐츠 제공자에게 다시 보내지거나 최종 사용자에게 전송될 수 있다. 이 참조 파일은 특정 명령들을 포함하며, 이에 따라 최종 사용자는 최종 사용자가 사용하고 있는 장치, 플레이어 또는 운영체제에 적합한 비디오 파일 구조의 링크된 콘텐츠를 수신할 수 있다. 콘텐츠 제공자는 또한, 참조 파일(135)의 인스턴시에이션(instantiation)이 콘텐츠 제공자의 엔드 포인트(end point)으로부터 작동될 때, 참조 파일에 대한 사용자 액세스에 대해 제어를 유지한다.
각각의 참조 파일(135)은 적어도 하나의 콘텐츠 파일에 대한 링킹 데이터를 포함한다. 도시된 예에서, 참조 파일은 비디오 콘텐츠 파일(132)에 대한 링킹 데이터를 포함한다. 비디오 콘텐츠 파일(132)에 대한 링킹 데이터는 데이터 네트워크를 통해 비디오 콘텐츠 파일(135) 자체의 위치로 링크시키는 정보, 또는 비디오 콘텐츠 소스 파일(135)에 대한 액세스를 가능하게 하는 비디오 콘텐츠 소스 서버(130)에 대한 링크 및 다른 정보일 수 있다.
예컨대, 비디오 콘텐츠 소스 제공자가 비디오 콘텐츠 소스 파일(135)에 대한 액세스를 제어하기 위해 DRM(digital rights management)을 구현하는 경우, 링킹 데이터는 비디오 콘텐츠 제공자 서버(130) 상의 DRM 포털에 대한 링크 및 지정된 비디오 콘텐츠를 식별하는 정보를 포함할 수 있다. 이에 따라, 비디오 콘텐츠 제공자는 적합한 허가를 보장할 수 있고, 비디오 콘텐츠 데이터에 대한 액세스가 주어지기 전에 지불이 제공된다. DRM 허가를 위해 필요한 데이터는 또한 참조 파일이 생성되고 있을 때 콘텐츠 제공자에 의해 지정될 수 있고, 참조 파일 자체에 파라미터 값들로서 포함될 수 있다. 참조 파일은 원격 플랫폼을 통해 생성될 수 있으며, 이 원격 플랫폼은 DRM을 인증하기 위한 인증을 이용할 수 있고, 참조 파일을 생성할지 아니면 DRM 인증의 결과에 기초하여 참조 파일을 통한 콘텐츠 액세스를 허용할지를 결정할 수 있다.
링킹 데이터는 복수의 상이한 콘텐츠 타입들 및 포맷들, 예컨대 영화, 광고, 텍스트 등을 가진 복수의 콘텐츠 소스들에 대한 링크들을 포함할 수 있다. 각각의 콘텐츠 파일은 개별적인 콘텐츠 데이터 스트림으로 획득된다. 콘텐츠 파일들은 콘텐츠 데이터 파일, 예컨대 벡터 그래픽용의 ".eps" 파일들, 텍스트용의 ".txt" 파일들, 영화 파일들용의 MPEG4 등의 원래 있던 포맷으로 획득될 수 있다. 이와 같이, 흔히 사용되는 데이터 포맷들은 콘텐츠 제공자들에 의해 사용될 수 있고 콘텐츠 제공자는 콘텐츠 데이터의 선호 포맷을 선택할 수 있다. 흔히 사용되는 데이터 포맷들을 이용하는 다른 이점은 사용자 장치의 원래 있던 플레이어는 일반적으로 콘텐츠를 재생하기 위해 이들 데이터 포맷들을 해석하도록 적응되어 있어야 한다는 것이다. 이에 따라, 특정 콘텐츠 포맷 타입들을 위한 부가 플레이어들을 사용자 장치에 로딩하거나 웹사이트 플러그 인을 통해 콘텐츠를 시청할 필요가 없다. 사용자 장치 플레이어가 콘텐츠 데이터를 인코딩하기 위해 사용되는 코덱과 호환되나 콘텐츠 데이터 파일 포맷과는 호환되지 않은 환경에서, 콘텐츠는 여전히 플레이어 장치와의 호환을 위해 파일 포맷을 변환하기 위한 변환된 비디오 구조를 제공하는 참조 파일에 의해 재생될 수 있다.
도 1에 예시된 실시예는 사용자 장치 상에 이미 설치된 일반적인 또는 원래 있던 미디어 플레이어(145)가 참조 파일(135)을 해석하여 제어 커맨드를 플레이어(145)에 제공하기 위해 플레이어 인터페이스(120)를 사용함으로써 콘텐츠를 재생하는데 사용될 수 있도록 한다. 플레이어 인터페이스(120)는 사용자 장치에 설치되도록 적응된 소프트웨어 애플리케이션으로서 또는 사용자 장치에 의해 액세스되는 서버 제공 기능으로서 제공될 수 있다. 예컨대, 비디오 콘텐츠 제공자 웹 사이트에 들어가거나 인터넷 텔레비전(IPTV) 계정에 로그인하는 것은 사용자 장치(140)에 의한 플레이어 인터페이스(120) 액세스를 포함할 수 있으며, 따라서 사용자가 시청할 콘텐츠를 선택하고 콘텐츠 참조 파일(135)을 액세스할 때, 플레이어 인터페이스는 콘텐츠를 재생하는 사용자 장치 플레이어(145)를 개시 및 제어하라는 명령을 발생할 수 있다.
서버 기반 플레이어 인터페이스(120)는 지원 서버(110) 상에 존재할 수 있다. 다른 실시예들에서, 플레이어 인터페이스(120)는 콘텐츠 제공자 서버(130), 네트워크 제공자 서버, IPTV 서비스 제공자 서버, 또는 다른 서버로부터 제한 없이 제공될 수 있다. 플레이어 인터페이스가 사용자 장치 상에 설치되는 경우(140), 플레이어 인터페이스(120)는 휴대형 메모리 장치, 또는 디스크 또는 어떤 다른 적합한 수단과 같은 컴퓨터 판독가능 기억 매체에 저장된, 네트워크를 통해 서버로부터 이메일로 다운로드 가능한 파일로서 제공될 수 있는 애플리케이션으로서 제공될 수 있다.
본 발명의 일 실시예에서, 플레이어 인터페이스(120)는 사용자 장치에게 장치 능력을 결정할지를 질의한다. 장치 능력은 장치에 원래 있던 또는 사용자 장치 상에 설치된, 바람직하게는 장치 하드웨어 및 운영체제에 최적화된 비디오 및 오디오 플레이어들을 결정할 뿐만 아니라, 하드웨어 및 펌웨어 구성, 예컨대 메모리 크기, 버퍼 크기 및 액세스 속도, 프로세서 속도, 디스플레이 크기 및 해상도, 운영체제 버전 등을 포함할 수 있다. 플레이어 인터페이스는 또한 네트워크 능력, 예컨대 사용자 장치를 위한 이용가능한 대역폭 및 데이터 다운로드 속도를 결정할 수 있다. 플레이어 인터페이스는 적합한 제어 커맨드들을 콘텐츠를 재생하는 사용자 장치 상의 플레이어에게 제공하는데 이 정보를 이용할 수 있다. 이는 사용자 장치의 능력 및 데이터 다운로드 속도와 같은 외부 인자들에 기초하여 플레이어 및 플레이어 인터페이스가 콘텐츠 재생 품질을 최적화하게 하는 이점이 있다.
사용자에 의해 비디오 콘텐츠 파일을 재생하는 프로세스가 도 2에 예시되어 있다. 링킹 데이터 및 플레이어 제어 파라미터 값들을 포함하는 참조 파일이 사용자 장치(200)에 의해 액세스되는 방식으로 제공된다. 도 1에 도시된 예에서, 참조 파일(135) 및 참조 파일(135)에 의해 링크된 비디오 파일(132)은 비디오 콘텐츠 소스 제공자 서버 상에 저장된다. 참조 파일은 비디오 콘텐츠 제공자의 웹 페이지(138)로부터 하이퍼링크(136)를 통해 액세스된다.
사용자는, 플레이어 인터페이스(120)가 제어 참조 파일로부터 파라미터 값들(135)을 판독(192)하고, 이들 파라미터 값들에 따라 사용자 장치(140) 상의 플레이어(145)를 개시(230)하도록 해 주는 하이퍼링크(136)를 통해 참조 파일(135)을 액세스한다(220). 플레이어 인터페이스(120)는 플레이어에게 비디오 콘텐츠 소스 서버(132)로부터 비디오 파일(132)을 획득(240)하도록 지시하는데 참조 파일로부터의 링킹 데이터를 이용한다.
비디오 파일은 비디오 파일을 데이터 스트림(170)으로서 획득하는 것을 시작하는 사용자 장치(140)에 의해 직접 링크되고, 장치 메모리 및/또는 버퍼(142)에 저장된다. 이 방법은 비디오 파일이 링크되어 비디오 콘텐츠 제공자 서버 상에 저장된 포맷과 동일한 포맷으로 사용자 장치에 데이터 스트림으로 다운로드되도록 해 준다.
하나보다 많은 콘텐츠 데이터 파일에 대한 링킹 데이터가 존재하는 경우에는, 플레이어 인터페이스는 플레이어에게 동일한 기술을 이용하여 각각의 콘텐츠 소스에 대한 데이터 스트림을 획득하도록 지시한다. 이들 데이터 스트림들은 동시에 획득될 수 있다. 복수의 콘텐츠 파일들로부터의 콘텐츠 데이터가 순차적으로 다운로드되는 복수의 데이터 스트림들 또는 하나 이상의 파일들로서 동시에 획득되는지가 참조 파일에 저장되거나 플레이어 인터페이스에 의해 콘텐츠 데이터 소스들로부터 액세스되는 플레이어 제어 파라미터 값들에 기초하여 제어될 수 있다. 각각의 콘텐츠 파일은 주어진 파일 포맷으로 개별적으로 획득된다. 이와 같이 상이한 포맷을 각각 가진 복수의 파일들이 동시에 획득 및 재생될 수 있다.
플레이어 인터페이스는 플레이어 제어 파라미터 값들을 판독하고(250), 비디오 콘텐츠를 재생하기 위해 이들 파라미터 값들에 기초하여 커맨드들을 플레이어에 제공한다(260). 플레이어 제어 커맨드들은 디스플레이(148) 상에서의 비디오 콘텐츠의 프리젠테이션을 제어하는데 사용될 수 있다. 콘텐츠는 데이터 스트림이 획득되고 있을 때 제공될 수 있다.
이 방법의 이점은 사용자 장치 하드웨어에 원래 있던 플레이어가 비디오 콘텐츠를 디스플레이 상에서 제공하는데 사용될 수 있다는 것이다. 이에 따라, 화질에 영향을 주는 인자들에 대한 상당량의 제어가 사용자 장치의 하드웨어 및 처리 능력을 위해 최적화될 수 있다. 예컨대, 버퍼 크기는 지터 또는 중단을 최소화하기 위해 데이터 다운로드 및 처리 속도에 따라 조절될 수 있고, 또는 픽셀 크기가 조절되거나 픽셀 해상도가 디스플레이 능력 및 화면 크기에 기초하여 개선될 수 있다. 비디오 파일이 사용자 장치 자체의 드라이브에 설치된 디스크로부터 재생되는 것과 유사하게, 비디오 콘텐츠 데이터는 데이터 스트림으로서 획득되어, 모든 암호 해독 및 재생 처리가 사용자 장치 하드웨어에 의해 수행될 수 있다.
플레이어 제어 파라미터 값들은 비디오 콘텐츠가 재생될 때 어떻게 디스플레이 상에서 제공되어야 하는지, 예컨대 비디오 콘텐츠가 풀 화면 모드로 재생되어야 하고 플레이어는 일단 파일이 재생되면 노멀 화면 디스플레이로 전환해야 함을 나타낸다. 플레이어 인터페이스(120)는 플레이어에게 콘텐츠 데이터를 재생하도록 지시하는데 플레이어 제어 파라미터 값들을 이용한다.
참조 파일이 사용자 요청에 응답하여 생성되는 시스템의 실시예가 도 5에 예시되어 있다. 예시된 시스템(510)은 참조 파일 컴파일러(512) 및 선택적 콘텐츠 링커(515)를 포함한다. 비디오 콘텐츠 데이터는 비디오 콘텐츠 소스 서버(530) 상에 제공되고, 다른 콘텐츠는 하나 이상의 부가 콘텐츠 데이터 소스들(550, 555, 557) 상에 저장된다. 사용자는 콘텐츠를 재생하는 네트워크 연결형 장치(540)를 가지며, 예컨대 장치는 컴퓨터, 모바일 폰, 또는 TV 및 셋탑 박스일 수 있다. 사용자 장치는 메모리(542), 플레이어(545), 및 디스플레이(548)를 갖고 있다. 플레이어(545)는 사용자를 위해 콘텐츠를 렌더링하기 위해 콘텐츠 데이터를 디코딩하고 디스플레이(548)를 구동하는 기능들을 수행한다. 플레이어는 장치 운영체제 또는 미들웨어에 내장될 수 있다.
이 시스템에서 콘텐츠를 액세스 및 재생하는 프로세스의 일 예가 도 7에 예시되어 있다. 이 예에서, 사용자는 비디오 콘텐츠 서버(530) 상에서 웹 페이지(538) 상의 메뉴 또는 링크(536) 상의 아이템을 선택함으로써 비디오 콘텐츠를 요청한다(705). 사용자가 링크(536)를 액세스하면, 예컨대 사용자를 참조 파일 컴파일러 서버로 다시 향하게 하기 위해 하이퍼링크에 의해 비디오 콘텐츠 서버(530)가 참조 파일 컴파일러(512)에 링크된다(560, 710). 비디오 콘텐츠 서버(530)와 참조 파일 컴파일러(512) 간에 교환된 데이터는 사용자 장치의 주소, 예컨대 IP 주소; 및 비디오 콘텐츠 서버 상에서의 비디오 데이터 파일에 대한 식별 데이터를 포함할 수 있다. 제어 또는 DRM 정보와 같은 다른 데이터가 또한 참조 파일 컴파일러에 제공될 수 있다.
참조 파일 컴파일러(512)는 사용자 장치(540)에게 플레이어가 호환되는 컨테이너 파일 및 코덱 타입들, 픽셀들에서의 디스플레이 치수, 버퍼 크기 등과 같은 장치 능력을 결정할지를 질문할 수 있다(715). 언어 설정, 로컬 시간 및 나이관련 콘텐츠 검열/제한 설정과 같은 정보가 또한 사용자 장치로부터 판독될 수 있다. 사용자 장치의 질문은 또한 이용가능한 대역폭, 네트워크 지연시간 등과 같은 네트워크 환경에 관한 부가 정보를 제공할 수 있다.
참조 파일 컴파일러는 비디오 콘텐츠 데이터 파일(532)의 포맷을 체크한다(720). 참조 파일 컴파일러에는 또한 플레이어 제어 명령들, 후원자 광고 링크들, 자막 링크들, 등급 정보, 마켓 특정 콘텐츠 편집 등과 같은 부가 콘텐츠 제공자 정보가 제공될 수 있다(725). 예컨대, 편집 리스트는 미성년자인 시청자를 위해 삭제 또는 건너 띌 장면들을 지정할 수 있다.
참조 파일 컴파일러는 비디오 콘텐츠 데이터 파일(532)의 포맷이 장치 플레이어(545)와 호환되는지를 결정한다(730). 참조 파일 컴파일러는 컨테이너 파일 내의 비디오 및 오디오 데이터를 인코딩하는데 사용되는 컨테이너 파일 포맷 및 코덱과의 호환성에 대해 체크할 수 있다.
컨테이너 파일도 코덱도 사용자 장치와 호환되지 않는 경우에는, 에러 메시지가 사용자에게 전송될 수 있다(795).
컨테이너 파일 포맷이 사용자 장치와 호환되는 경우에는, 참조 파일이 컨테이너 파일에 링크되도록 구성될 수 있다. 이 경우에, 참조 파일 컴파일러는 콘텐츠 제공자에 의해 지정된 제어 명령들, 참조 파일 컴파일러에 지정된 일반 제어 명령들에 기초하여, 또는 질문 동안에 타겟 사용자 장치로부터 판독된 정보에 기초하여, 제어 파라미터 값들을 포함할 수 있는 파일 헤더를 생성한다(735). 예컨대, 플레이어 제어 파라미터 값들은 비디오 데이터를 렌더링하기 위한 비디오 면의 치수를 정의하는데 사용될 수 있으며, 비디오 면은 오리지널 소스 콘텐츠의 종횡비 및 타겟 장치 디스플레이의 치수에 기초한다. 파라미터 값들과 같은 데이터를 정의하면, 플레이어가 영상과 디스플레이 간의 종횡비 차이를 고려하지 않고 또는 그 차이를 보상하지 않고 타겟 디스플레이 치수와 매칭시키기 위해 간단히 영상을 늘림으로 인해 일부 플레이어들의 경우에 존재할 수 있는 영상 왜곡 문제가 해소될 수 있다.
비디오 콘텐츠 데이터 파일에 링크될 링킹 데이터가 참조 파일에 삽입된다(740). 링킹 데이터는 비디오 데이터 파일(532)의 전체 또는 비디오 데이터 파일의 특정 트랙들에 링크될 수 있다. 예컨대, 비디오 데이터 파일은 각각 상이한 언어로 된 많은 대안 오디오 트랙들을 포함할 수 있고, 참조 파일 컴파일러는 사용자 장치의 언어 설정에 기초하여 특정 오디오 트랙을 선택할 수 있다. 이 경우에, 트랙 헤더부가 장치 플레이어와 호환되는 포맷일 때, 링킹 데이터는 단지 실제 샘플 데이터보다는 헤더부에 링크될 수 있다. 부가 콘텐츠 및 부가 콘텐츠와 연관된 어떤 제어 파라미터 값들에 대한 링크들이 또한 참조 파일에 포함될 수 있다.
플레이어 및 비디오 콘텐츠 데이터 파일 컨테이너 포맷이 호환되지 않으나(730), 오디오 및 비주얼 코덱들이 플레이어와 호환되는 경우, 참조 파일은 플레이어 장치가 코덱 인코딩된 데이터에 링크될 수 있는 변환된 파일 구조로서 구성된다. 이 경우에, 참조 파일 컴파일러는 헤더부들로부터 어떤 관련 제어 데이터를 추출하고 데이터 파일의 코딩된 인코딩된 부분들을 맵핑시키기 위해 콘텐츠 데이터 파일을 판독한다(750). 다음에, 플레이어와 호환되는 컨테이너 파일 포맷을 가진 변환된 비디오 구조가 구성된다(755). 비디오 콘텐츠 데이터 파일로부터 판독된 데이터에 기초한 제어 파라미터 값들, 및 어떤 일반 제어 커맨드들이 변환된 비디오 구조를 파퓰레이팅하는데 사용될 수 있다. 제어 파라미터 값들은 또한 타겟 장치의 질문 동안에 수집된 정보에 기초하여 타겟 장치에 맞춤 구성될 수 있다.
콘텐츠 데이터 파일의 선택된 코덱 인코딩된 비디오 및 오디오 데이터부들에 대한 링크들이 참조 파일에 포함된다(760). 이에 따라, 위에서 설명된 바와 같이, 플레이어는 콘텐츠 데이터 파일 내의 오디오 및 비디오 샘플 테이블들에 링크될 수 있어, 플레이어가 콘텐츠 데이터 컨테이너 파일 포맷을 해석할 필요가 없다. 링킹 데이터는 비디오 콘텐츠 데이터 파일 내의 모든 인코딩된 샘플 데이터 테이블들에 또는 선택된 샘플 테이블들에만 링크될 수 있으며, 예컨대 일부 장면들이 검열 때문에 생략되는 경우에, 이들 장면에 대한 샘플 테이블들은 링크되지 않을 수 있다. 자막 트랙과 같은 오디오 및 비디오 콘텐츠와 연관된 데이터에 대한 링크들은 또한 포함될 수 있다. 어떤 부가 콘텐츠에 대한 링크들은 또한 변환된 비디오 구조에 추가될 수 있다(765). 부가 콘텐츠에 대한 링크들은 또한 변환된 비디오 구조의 콘텍스트 내에 재생될 수 있는 오디오 및 비디오 샘플 테이블들에 대한 링크들일 수 있음을 이해해야 한다. 부가 콘텐츠는 하나 이상의 부가 콘텐츠 데이터 소스들(550, 556, 558)로부터 부가 콘텐츠를 선택하도록 된 콘텐츠 링커(515)를 통해 링크될 수 있다. 변환된 비디오 구조를 위해, 콘텐츠 링커는 부가 콘텐츠 데이터 서버들(550, 555, 557) 상에서 인코딩된 비디오 및 오디오 데이터 샘플 테이블들에 링크(551, 556, 558)되도록 적응될 수 있음을 이해해야 한다. 대안으로, 콘텐츠 링커는 컨테이너 파일들 내의 부가 콘텐츠 데이터 컨테이너 파일들 또는 트랙들에 링크될 수 있다. 콘텐츠 링커에 의해 선택된 링크들은 사용되는 참조 파일의 타입의 식별 또는 제어 파라미터 값들에 기초한다. 대안으로, 콘텐츠 링커에 대한 상이한 링크들은 단지 샘플 테이블들에 또는 트랙들 또는 컨테이너 파일들에 링크할지를 나타내는데 사용될 수 있다.
이진 스크립트들 또는 아톰(atom)들의 형태의 부가 제어 커맨드들이 또한 참조 파일에 포함될 수도 있다(770). 다음에, 참조 파일(535)은 참조 파일 컴파일러에 의해 타겟 장치에 전달되어(775), 장치 메모리(542)에 저장된다. 참조 파일(535)이 자동으로 또는 사용자 명령에 응답하여 열리고(780), 플레이어(545)가 활성화된다. 플레이어는 참조 파일(535) 내의 링킹 데이터에 기초하여 콘텐츠 제공자 서버(530) 상의 비디오 데이터 파일(532)에 링크된다(785). 플레이어는 참조 파일에 포함된 링킹 데이터에 따라 비디오 데이터 파일(532), 특정 트랙들 또는 비디오 파일 내의 인코딩된 오디오 및 비주얼 샘플 데이터 테이블들(531)에 링크된다(570). 플레이어는 부가 콘텐츠의 경우에 비디오 콘텐츠 서버 또는 다른 서버들로부터 직접 데이터를 획득한다. 데이터는 장치 버퍼 메모리에 다운로드되고, 이 데이터 획득은 플레이어의 입장에서는 데이터가 DVD 리더, 하드 디스크 또는 비디오 카메라와 같은 연결된 하드웨어로부터 버퍼로 판독되는 것과 유사하다. 데이터는 네트워크로부터 다운로드될 때 버퍼 메모리에 저장되고, 플레이어는 사용자를 위해 콘텐츠 디코딩 및 렌더링하기 위해 버퍼 메모리로부터 데이터를 판독한다(790).
플레이어 또는 운영체제에 원래 있던 구조를 가진 참조 파일을 제공함으로써, 플레이어 또는 운영체제는 통상 타겟 장치 상에서 재생 가능한 포맷으로는 저장될 수 없는 콘텐츠 소스 제공자로부터의 인코딩된 오디오 및 비디오 데이터를 해석 및 재생할 수 있음을 이해해야 한다.
복수의 콘텐츠 데이터 스트림들이 존재하는 일 실시예에서, 재생 제어 파라미터 값들은 둘 이상의 데이터 스트림들로부터 콘텐츠를 동시에 제공하기 위한 명령들을 포함할 수 있다. 각각의 스트림으로부터의 데이터는 각각의 데이터 스트림와 연관된 플레이어 제어 파라미터 값들에 따라 별도로 디코딩되어 제공된다. 예컨대, 제어 파라미터 값들은 각각의 콘텐츠 데이터 스트림에 대한 비디오 면의 치수를 정의함으로써 복수의 콘텐츠 데이터 스트림들에 대해 상이한 종횡비들을 관리하는데 이용될 수 있어, 콘텐츠는 정의된 비디오 면으로 렌더링될 수 있다. 이에 따라, 플레이어의 장치의 해상도를 변화시키지 않고도 상이한 종횡비 콘텐츠가 디스플레이 상에서 디스플레이될 수 있다. 각각의 비디오 면들은 넓힘으로 인한 디스플레이된 영상들의 왜곡을 회피하도록 정의될 수 있다.
각각의 데이터 스트림으로부터의 콘텐츠는 별도의 계층에서 동시에 제공될 수 있으며, 예컨대 하나의 데이터 스트림으로부터의 콘텐츠는 다른 데이터 스트림으로부터의 콘텐츠 상에 오버레이되어 디스플레이된다. 대안으로, 상이한 데이터 스트림들로부터의 콘텐츠는 디스플레이 상의 상이한 영역들에 디스플레이될 수 있으며 또는 콘텐츠 오버레이 및 화면 분할의 조합이 사용될 수도 있다. 파라미터 값들은 콘텐츠 데이터 스트림이 어느 계층으로서 제공되어야 하는지 및 콘텐츠의 계층들이 디스플레이 상에서 제공될 때 어떻게 겹쳐지는지를 정의하는데 사용될 수 있다. 참조 파일에 저장된 것에 부가적인, 제어 커맨드들 또는 동기화 데이터와 같은 데이터는 또한 복수의 데이터 스트림들의 조화(coordination) 및 프리젠테이션을 위한 요건에 기초하여 사용자 장치 또는 플레이어 인터페이스에 지원 서버 또는 콘텐츠 소스 서버에 의해 제공될 수 있다.
복수의 데이터 스트림들로부터 콘텐츠를 재생하는 일 예가 도 4에 예시되어 있다. 도 4의 예에서, 제1 콘텐츠 데이터는 비디오 콘텐츠 제공자 네트워크 데이터베이스(432)에 저장된 영화 파일이다. 영화 파일에 대한 링크 데이터는 영화 제공자 웹 사이트(438) 상에서 하이퍼링크(436c)를 통해 링크된 참조 파일(435c)에 포함된다. 참조 파일(435c)은 또한 지원 서버(410)의 콘텐츠 링커(415)에 대한 링킹 데이터를 포함한다.
이 실시예에서, 콘텐츠 링커는 영화에 대한 부가 데이터에 대한 콘텐츠 소스들을 선택하는 소스 선택기(417), 및 선택된 소스들로부터의 부가 콘텐츠가 사용자 장치(440)에 의해 데이터 스트림들로서 획득되는 데이터 공급 스트리머(416)를 포함한다. 소스 선택기(417)는 지정된 기준들에 기초하여 영화에 대한 부가 콘텐츠로서 제공하기 위해 하나 이상의 콘텐츠 소스 제공자들 또는 특별한 콘텐츠 데이터 파일들을 선택하도록 적응될 수 있다. 소스 선택기(417)는 하나보다 많은 부가 콘텐츠 소스들(450, 455, 458)을 선택할 수 있다. 데이터 공급 스트리머(416)를 통해 각각의 콘텐츠 소스(450, 455, 458)로부터 사용자 장치(440)에 다운로드될 콘텐츠 데이터 파일들은 각각의 콘텐츠 소스 제공자(450, 455, 458)에 의해 또는 소스 선택기(417)에 의해 선택될 수 있다. 부가 콘텐츠 데이터를 선택하기 위해 소스 선택기(417) 또는 콘텐츠 소스들(450, 455, 458)이 사용하는 선택 기준은 콘텐츠를 재생하기 위한 참조 파일을 선택하는 사용자와 연관된 어떤 정보에 기초할 수 있다. 각각의 부가 콘텐츠 소스에 대해 상이한 선택 기준들이 사용될 수 있다. 부가 콘텐츠 데이터를 선택하는데 사용될 수 있는 정보의 타입들의 일부 예들은 사용자 장치에 저장된 사용자 선호도; 네트워크 액세스 계정으로부터의 사용자 프로필 정보; 인터넷 텔레비전 (IPTV) 계정 정보; 참조 파일로부터의 파라미터 값들; 네트워크 제공자 정보; 및 사용자 지리적 위치 정보를 포함하나 이에 한정되지 않는다.
도 4에 도시된 예를 참조하면, 선택된 부가 콘텐츠 소스들은 광고들을 제공하는 콘텐츠 소스 A(450), 자막들을 제공하는 콘텐츠 소스 B(455), 및 네트워크 캐리어 로고의 사진 파일을 저장하는 서버인 콘텐츠 소스 C(458)이다.
이들 소스들 각각은 상이한 기준들을 이용하여 선택될 수 있다. 예컨대, 사용자 계정 정보, 또는 커맨드 또는 질의에 대한 응답과 같은 사용자 입력은 영화에 자막들이 필요한지의 여부를 결정하는데 사용될 수 있으며, 이에 기초하여, 콘텐츠 소스 B(455), 즉 자막 서버가 선택된다. 영화는 참조 파일로부터의 데이터를 이용하여 식별되고, 사용자 프로필에 저장된 언어 선호도 정보에 기초하여 적합한 자막 언어가 자동적으로 선택될 수 있다. 콘텐츠 소스 C(458)는 사용자의 로컬 캐리어 네트워크 서비스 제공자 또는 인터넷 서비스 제공자(ISP)와 같은 사용되는 캐리어 네트워크 제공자에 기초하여 재생되는 어떤 콘텐츠를 위해 자동적으로 선택될 수 있다. 이와 같이, 비디오 파일 콘텐츠 서버는 미국에 위치될 수 있지만, 호주에 있는 사용자는 콘텐츠를 획득하기 위해 텔스트라(Telstra) 네트워크를 사용하고 있으며, 이에 기초하여 소스 선택기는 부가 콘텐츠로서 디스플레이하기 위해 텔스트라 네트워크 로고를 선택할 수 있다. 광고주, 즉 콘텐츠 소스 A(450)는, 예컨대 광고주가 IPTV 액세스를 후원하여 사용자들이 또한 광고들을 보아야만 한 것에 대한 보답으로 사용자들이 영화들을 무료로 시청할 수 있는 경우에, 사용자가 콘텐츠를 액세스할 때마다 지원 서버에 의해 자동으로 선택될 수 있다. 또한, 광고주(450)는 특별한 비디오 콘텐츠 소스 제공자의 후원, 사용자 통계(demographic) 정보, 선택된 영화, 사용자의 지리적 위치 등과 같은 선택 기준에 기초하여 복수의 광고주들로부터 선택될 수 있다.
콘텐츠 링커(415)는 선택된 부가 콘텐츠 소스들(450, 455, 458)에 대한 링크들을 설정하고, 데이터 공급 스트리머(416)는 부가 콘텐츠 소스들(450, 455, 458) 각각으로부터 사용자 장치(440)로의 개별적인 콘텐츠 데이터 스트림들로서의 데이터의 다운로드를 제어한다. 각각의 콘텐츠 소스(450, 455, 458)에 대한 콘텐츠 데이터 스트림은 각각 다른 포맷을 가질 수 있다.
하나 이상의 소스들로부터의 데이터의 사용자에의 프리젠테이션이 동기화되어야 하는 경우, 동기화기(418)는 부가 제어 데이터를 사용자 장치(440) 및 플레이어 인터페이스(420)에 제공하도록 적응된다. 예컨대, 비디오 콘텐츠 제공자(430)와 광고주(450) 간의 후원 합의에 따라 무료 계정을 가진 사용자들에게는 영화 재생 전에 광고가 재생되어야 하면, 동기화기는 플레이어에게 영화 콘텐츠 데이터를 재생하기 전에 특별한 시간 기간, 즉 광고 길이 동안 콘텐츠 소스 A로부터 공급되는 콘텐츠 데이터를 재생하도록 명령할 것을 플레이어 인터페이스(420)에게 지시할 수 있다. 영화가 광고들을 재생하기 위한 주어진 간격으로 인터럽트되어야 하면, 동기화기는 이 데이터를, 예컨대 플레이어를 인터럽트하는데 사용될 인터럽트 간격들 및 인터럽트 지속기간들의 집합으로서 또는 플레이어로 다운로드할 시간 트랙으로서 플레이어 인터페이스에 제공할 수 있으며, 이에 따라 플레이어는 지정된 시간에 영화 콘텐츠에서 광고 콘텐츠의 재생 간을 자동으로 전환할 것이다.
복수의 콘텐츠 소스들로부터의 콘텐츠가 복수의 계층들에서 동시에 재생되는 실시예들에서, 시간 트랙은 또한 복수의 계층들에 대한 재생 명령들을 동기화하는데, 예컨대, 자막들의 텍스트 파일의 재생을 영화 재생과 동기화시키는데 사용될 수 있다. 대안으로, 타이밍 데이터는 상이한 콘텐츠 데이터 스트림들 간의 전환을 위해 사용될 수 있고, 예컨대, 광고 콘텐츠는 스케줄링된 간격으로 재생될 수 있다.
도 4의 예에서, 각각의 데이터 소스로부터의 콘텐츠에는 별도의 계층이 할당된다. 이 설명의 콘텍스트에서, 용어 "계층(layer)"은 동시에 또는 조화된 방식으로 디스플레이된 비디오 콘텐츠의 별도의 부분들을 언급하는데 사용된다. 예컨대, 상이한 콘텐츠가 동시에 디스플레이되는 경우, 상이한 콘텐츠 계층들은 디스플레이될 때 서로 겹쳐지거나 또는 오버레이된 것으로 나타난다. 각각의 계층의 콘텐츠는 상이한 데이터 소스로부터 획득될 수 있다. 대안으로, 둘 이상의 계층들은 동일한 데이터 소스로부터 획득된 상이한 트랙들일 수 있다.
도 4의 예에서, 제1 계층은 비디오 파일 데이터베이스(432)로부터 획득된 영화 데이터이다. 제2 계층은 콘텐츠 소스 C(458)로부터 획득된 후원자에 대한 광고 로고를 포함하는 사진이고, 제3 계층은 콘텐츠 소스 B(455)로부터 획득된 텍스트 자막들이며, 제4 계층은 콘텐츠 소스 A(450)로부터 획득된 광고 콘텐츠이다. 제2, 제3 및 제4 계층의 콘텐츠는 모두 지원 서버(410)의 콘텐츠 링커(415) 및 데이터 스트림 공급기(416)를 통해 별도의 데이터 스트림들로서 획득된다. 콘텐츠 데이터 스트림들의 각각, 및 어떤 첨부 동기화 데이터는 다운로드되어, 플레이어(445)에 의해 별도의 계층들로서 재생하기 위해 사용자 장치(440)의 메모리(442)에 별도로 버퍼링된다
화면 영상(460)은 오버레이된 계층들이 재생될 때 사용자 장치(440)의 디스플레이(448) 상에서 어떻게 제공될 수 있는지에 대한 예를 예시한다.
영화는 비디오 콘텐츠를 풀 화면 모드로 재생하는 것과 같이 이 제1 계층에 대한 플레이어 제어 명령들에 따라 재생된다.
제2 계층 콘텐츠의 로고는, 사진이 디스플레이의 상부 좌측 코너와 같은 디스플레이의 지정된 영역(468)에서 비디오 콘텐츠 상에 반투명 워터마크로서 디스플레이되는 것과 같이, 제2 계층에 대한 플레이어 제어 명령들에 따라 재생된다. 지정된 영역은 주어진 크기 및 상대적인 디스플레이 위치, 주어진 위치에서의 디스플레이 영역의 비율 등을 이용하여, 픽셀 좌표들을 이용하여 정의될 수 있다.
이 예에서, 제3 계층의 자막 콘텐츠는 텍스트 파일이고, 영화에서 말해지는 라인들의 대응하는 타이밍에 기초하여 텍스트의 각각의 라인의 디스플레이를 위한 타이밍을 정의하는 시간 코드 트랙을 이용하여 영화와 동기화된다. 이와 같이 자막들은 영화와 동기화되어 재생된다. 영화상에 겹쳐진 자막들을 디스플레이하기 위한 디스플레이 영역(465)은 플레이어 제어 파라미터 값들에 예컨대 참조 파일(435c)에 저장된 파라미터 값들로서 또는 사용자 선호도로서 정의될 수 있다.
이 예에서, 계층(4)의 광고 콘텐츠는 영화상에서 제품 배치 오버레이(Product Placement Overlay)로서 재생된다. 화면(460)에서, 트럭(461)이 제1 계층의 영화의 일부로서 디스플레이된다. 제품명 및 로고의 사진과 같은 광고 콘텐츠는 트럭(461)의 측면에 대응하는 지정된 영역(463)에서 제공될 수 있다. 지정된 영역(463)은 또한 광고가 사용자에게는 영화의 일부로서 보일 수 있도록 화면을 가로질러 이동할 때 트럭(461)의 위치에 대응하는 복수의 후속 프레임들에 대해 지정될 수 있다. 시간 코드 트랙은 광고 재생을 영화 재생과 동기화시키는데 사용될 수 있다. 또한, 광고 콘텐츠는 영화의 장면 내의 TV 화면과 같은 영화의 콘텍스트에서의 디스플레이의 지정된 영역에서 제공될 수 있는, 또는 다른 콘텐츠와 무관하게 예컨대 디스플레이의 상부를 가로지르는 배너에서 제공될 수 있는 동영상 또는 정지 콘텐츠를 포함할 수 있다. 단일 소스로부터의 광고 콘텐츠를 위해, 광고 콘텐츠를 제공하기 위한 복수의 상이한 기술들이 사용될 수 있다. 광고 콘텐츠가 디스플레이되는 방식은 플레이어 제어 커맨드들에 기초한다. 연관된 한 세트의 제어 명령들을 각각 가진 복수의 데이터 파일들이 단일 콘텐츠 제공자로부터 얻어질 수 있다. 각각의 콘텐츠 데이터 파일의 포맷은 다른 포맷들과 무관하다.
이 방식으로 각각의 계층에 대한 데이터 스트림은 계층별로 독립적으로 획득 및 디코딩되며, 플레이어 제어 명령들에 따라 디스플레이 상에서 동시에 제공된다. 이와 같이, 디스플레이 상에서의 프리젠테이션 전에 복수의 데이터 스트림들로부터의 데이터의 모음 또는 조합은 없다. 각각의 데이터 스트림은 별도의 계층으로서 처리 및 제공된다. 이에 따라, 복수의 소스들로부터의 콘텐츠의 유연한 조합이 가능하다. 또한, 하나의 소스로부터의 콘텐츠 데이터는 서로 무관하게 수정될 수 있다. 이와 같이, 콘텐츠는 영화 파일의 재포매팅을 요구하지 않고 광고주에 의해 필요에 따라 수정될 수 있다. 이에 따라, 또한 각각의 계층에 대한 데이터 소스들의 선택은 정의된 선택 기준들에 기초하여 사용자별로 개별적으로 수행될 수 있다.
또한, 부가 데이터 콘텐츠의 선택 및 동기화를 수행하는데 지원 서버와 같은 중재 서버를 사용하면, 부가 데이터 소스들 및 이들의 선택을 위한 기준은 새로운 참조 파일의 발생을 요구하지 않고 쉽게 수정될 수 있다. 예컨대, IPTV 서비스의 비디오 콘텐츠 제공자 네트워크에 대한 후원자들이 기존의 참조 파일들의 재발생을 요구하지 않고 변경될 수 있다.
콘텐츠의 각각의 계층이 사용자 장치 플레이어에 의해 개별적으로 다운로드되어 디코딩됨에 따라, 콘텐츠 제공자들은 미리 결정된 파일 포맷의 이용에 한정되지 않는다.
다른 하나 이상의 계층들이 또한 사용자에 의해 디스플레이되는 콘텐츠 데이터와의 상호작용에 부응하기 위해 제공될 수 있다. 예컨대, 광고는 사용자가 다른 정보에 대한 요청을 전송하거나, 공급을 받아들이거나, 구입할 수 있도록 해 주는 링킹 데이터를 포함할 수 있다. 이 실시예에서, 사용자에게는, 사용자가 콘텐츠 가 재생되는 동안 요청들 또는 데이터를 입력할 수 있도록 해 주는 인터페이스가 제공된다. 예컨대, 사용자는 광고된 아이템을 선택 및 구입하기 위해 광고 상에서 포인터를 이용시키는데 PC 마우스를 사용할 수 있다. 선택 버튼이 눌릴 때의 마우스의 위치에 기초하여, 인터페이스는 어떤 아이템이 선택되는지를 결정하고, 네트워크를 통해 광고주에게 사용자 요청에 관한 정보를 자동적으로 전송하기 위해 연관된 애플리케이션 또는 스크립트에 따라서 동작들을 수행할 수 있다.
시스템은 또한 소비자 행동들을 모니터링하기 위해 또는 과금하기 위해 사용될 수 있는 트래킹 기능들을 포함할 수 있다. 예컨대, 참조 파일 내의 스크립트는 지원 서버 또는 콘텐츠 제공자 서버에 포함된 트래킹 모듈에 전송될 데이터를 트리거시킬 수 있고, 데이터는 과금 이벤트를 트리거하는데 사용될 수 있다. 대안으로, 지원 서버는 각각의 광고 데이터 제공자로부터 다운로드되는 광고 데이터의 양을 모니터링하는 트래킹 모듈을 포함할 수 있고, 이로부터 비디오 콘텐츠 제공자가 다운로드를 트리거시킨 참조 파일과 연관되는지를 식별할 수 있으며, 그 양은 광고주들과 비디오 콘텐츠 제공자들 간의 사용 기반 송금 또는 과금을 위해 이용될 수 있다.
본 발명의 실시예들은 시스템이 어떤 선택된 시스템 아키텍처에서 쉽게 동작하게 하는 개방형 API(애플리케이션 프로그래밍 인터페이스) 구조를 사용하여 구현될 수 있다. 또한 개방형 API 구조는 또한 시스템이 복수의 네트워크 아키텍처들과 호환되게 한다. 플레이어 인터페이스는 자바와 같은 언어를 이용하여 소프트웨어 애플리케이션으로서 구현될 수 있다.
참조 파일 컴파일러는 지원 서버의 선택적 기능일 수 있다. 참조 파일 컴파일러의 실시예는 또한 독립적인 모듈로서 제공될 수 있다. 예컨대, 참조 파일 컴파일러는, 비디오 콘텐츠 제공자들이 자신들의 참조 파일들을 준비할 수 있도록 하기 위해 비디오 콘텐츠 제공자들에 소프트웨어 애플리케이션으로서 제공될 수 있다.
본 발명은 특정 예들 및 실시예들을 참조하여 설명되었지만, 설명된 시스템 및 방법에 대해 행해진 적응들이 본 발명의 실시예들의 범위 내에서 예상된다는 것은 당업자는 쉽게 이해해야 한다.
예 1
커맨드들, 파라미터 값들 및 링킹 데이터 중 일부를 삽입하기 위해 참조 파일을 준비하는데 사용되는 스크립트들의 일 예가 아래에 도시되어 있다. 이 예에서, 참조 파일은 퀵타임TM 스크립트 언어를 사용하여 준비된다. 애플 컴퓨터TM에 의해 개발된, 퀵타임TM은 프로그래머들이 플레이어에 대한 명령들의 스크립트 파일들을 준비하도록 해 주는 연관된 스크립트 언어를 가진 미디어 플레이어이다.
이 예는 퀵타임TM을 이용하여 주어지지만, 이는 하나의 가능한 구현에 불과하며 당업자는 참조 파일들, 플레이어 및 플레이어 인터페이스는 어떤 적합한 언어 및 툴을 사용하여 구현될 수 있음을 인식할 것이다. 모든 가능한 변형예들이 본 발명의 범위 내에서 예상된다.
property overlay_offset : 0
property target_URL : "http://"
tell application "QuickTime Player"
if not (exists movie 1) then return
stop every movie
-- this routine uses the gestaltVersion_info() sub-routine
copy my gestaltVersion_info("sysv", 4) to {system_version, system_string}
if the system_version is less than "0860" then
display dialog "This script requires Mac OS 8.6 or higher." & ¬
return & return & "The currently installed version is: " & ¬
system_string buttons {"Cancel"} default button 1
end if
open overlay_file
set open movie in new player to the stored_status
-- EXTRACT THE DIMENSIONS OF THE OVERLAY FILE
copy the natural dimensions of movie 1 to {overlay_width, overlay_height}
close movie 1 saving no
on error
display dialog "There was a problem opening the overlay file." buttons {"Cancel"} default button 1
end try
display dialog "Place the overlay image at the bottom left or bottom right of the movie?" buttons {"Cancel", "Left", "Right"} default button 3
set the overlay_postion to the button returned of the result
-- PROMPT FOR THE OVERLAY LINK
repeat
display dialog "Enter the overlay URL link:" default answer target_URL
set the target_URL to the text returned of the result
if the target_URL is not "" then exit repeat
end repeat
--PROMPT FOR NEW PAGE OR SAME PAGE
display dialog "Open the URL in the same page as the movie or a new page?" buttons {"Cancel", "Same", "New"} default button 3
set the destination_page to the button returned of the result
if the destination_page is "Same" then
set the display_method to "pause"
else
set the display_method to "new"
end if
try
set this_file to the original file of movie 1
-- extract the file name and parent folder
set AppleScript's text item delimiters to ":"
set the movie_filename to the last text item of (this_file as text)
set the parent_folder to ((text items 1 thru -2 of (this_file as text)) as string) & ":"
set AppleScript's text item delimiters to ""
set the temp_filename to the movie_filename
-- remove the .mov extension
if the movie_filename ends with ".mov" then
set the temp_filename to ((characters 1 thru -5 of movie_filename) as string)
end if
-- shorten the movie name
if the length of the the movie_filename is greater than 29 then
set the temp_filename to ((characters 1 thru 20 of movie_filename) as string)
end if
set the caption_filename to (the temp_filename & ".txt")
-- shorten the movie name
if the length of the the movie_filename is greater than 23 then
set the temp_filename to ((characters 1 thru 23 of movie_filename) as string)
end if
-- add the identifier extension
set SMIL_filename to (the temp_filename & "-smi.mov")
repeat
-- check the file name
tell application "Finder"
set file_exists to (exists file SMIL_filename of folder parent_folder)
end tell
if file_exists is true then
display dialog "The file name to be used for the finished SMIL file is already in use. " & ¬
"Enter another:" default answer SMIL_filename buttons {"Cancel", "Replace", "OK"} default button 3
copy the result as list to {this_text, button_pressed}
if the button_pressed is "Replace" then
tell application "Finder"
try
move (file SMIL_filename of folder parent_folder) to the trash
end try
exit repeat
end tell
else if the length of this_text is greater than 31 then
display dialog "The name must be less than 31 characters."
else if this_text contains ":" then
display dialog "A file name cannot contain a colon (:)."
else if this_text is not "" then
set the SMIL_filename to this_text
end if
else
exit repeat
end if
-- this routine uses the gestaltVersion_info() sub-routine
copy my gestaltVersion_info("qtim", 8) to {QT_version, QT_string}
if the QT_version is less than "0500" then
display dialog "This script requires QuickTime 5.0 or higher." & ¬
return & return & "The currently installed version is: " & ¬
QT_string buttons {"Cancel"} default button 1
end if
tell movie 1
set auto_play_status to auto play
set close_status to close when done
set auto_close_status to auto close when done
set quit_status to quit when done
set auto_quit_status to auto quit when done
set auto_present_status to auto present
set presentation_size to presentation size
set presentation_mode to presentation mode
end tell
display dialog "Playback Properties" & return & return & ¬
"Auto Play: " & auto_play_status & return & ¬
"Close When Done: " & close_status & return & ¬
"Auto Close When Done: " & auto_close_status & return & ¬
"Quit When Done: " & quit_status & return & ¬
"Auto Quit When Done: " & auto_quit_status & return & ¬
"Auto Present: " & auto_present_status & return & ¬
"Presentation Size: " & presentation_size & return & ¬
"Presentation Mode: " & presentation_mode buttons {"OK"} default button 1
end tell
on gestaltVersion_info(gestalt_code, string_length)
try
tell application "Finder" to ¬
copy my NumToHex((system attribute gestalt_code), ¬
string_length) to {a, b, c, d}
set the numeric_version to {a, b, c, d} as string
if a is "0" then set a to ""
set the version_string to (a & b & "." & c & "." & d) as string
return {numeric_version, version_string}
on error
return {"", "unknown"}
end try
end gestaltVersion_info
on NumToHex(hexData, stringLength)
set hexString to {}
repeat with i from stringLength to 1 by -1
set hexString to ((hexData mod 16) as string) & hexString
set hexData to hexData div 16
end repeat
return (hexString as string)
end NumToHex
Claims (40)
- 디스플레이, 및 플레이어를 포함하는 장치 디스플레이 제어기를 가진 데이터 네트워크 접속형 장치 상에서 비디오 콘텐츠를 제공하는 방법에 있어서,
상기 데이터 네트워크 접속형 장치가 복수의 플레이어 제어 파라미터 값들 및 하나 이상의 콘텐츠 소스들에 대한 링킹 데이터를 포함하는 참조 파일을 액세스하는 단계;
상기 재생 제어 파라미터 값들에 기초하여 재생 제어 커맨드들을 상기 플레이어에 제공하는 단계;
상기 링킹 데이터를 이용하여 상기 데이터 네트워크를 통해 하나 이상의 콘텐츠 소스들로부터 상기 플레이어가 콘텐츠 데이터를 획득하는 단계; 및
상기 플레이어 제어 커맨드들에 따라 상기 디스플레이 상에서 각각의 소스로부터 획득된 콘텐츠를 재생하는 단계를 포함하는 비디오 콘텐츠 제공 방법. - 제1항에 있어서,
상기 참조 파일을 발생하는 단계를 더 포함하는 비디오 콘텐츠 제공 방법. - 제2항에 있어서,
상기 참조 파일을 발생하는 단계는 상기 콘텐츠 소스들 중 하나로부터의 콘텐츠 데이터 파일을 액세스하라는 상기 사용자에 의한 요청에 응답하여 발생하는 비디오 콘텐츠 제공 방법. - 제3항에 있어서,
상기 콘텐츠 데이터 파일이 상기 장치 플레이어와 호환가능한 포맷으로 저장되어 있는지의 여부를 결정하고, 상기 콘텐츠 데이터 파일 포맷이 상기 장치 플레이어와 호환되지 않는 경우에, 상기 플레이어와 호환되는 변환된 비디오 구조를 가진 참조를 발생하는 단계를 더 포함하고, 링킹 데이터는 상기 콘텐츠 데이터 파일 내의 코덱 인코딩된 데이터에 링크되는 비디오 콘텐츠 제공 방법. - 제1항에 있어서,
상기 참조 파일은 상기 네트워크 접속형 장치가 상기 장치 플레이어와 호환되지 않는 데이터 파일 포맷을 가진 어떤 콘텐츠를 위해 상기 플레이어와 호환되는 변환된 비디오 구조를 구성하게 하도록 적응된 제어 파라미터 값들을 포함하고, 상기 콘텐츠 데이터 파일 내의 코덱 인코딩된 데이터에 링크된 링킹 데이터를 이용하는 비디오 콘텐츠 제공 방법. - 제1항에 있어서,
콘텐츠는 하나 이상의 데이터 스트림들로서 획득되고, 각각의 스트림은 프리젠테이션을 위해 콘텐츠의 다른 계층을 나타내는 비디오 콘텐츠 제공 방법. - 제6항에 있어서,
둘 이상의 콘텐츠 계층들은 재생 제어 파라미터들에 기초하여 상기 디스플레이 상에 동시에 제공되는 비디오 콘텐츠 제공 방법. - 제6항에 있어서,
각각의 데이터 스트림은 다른 데이터 포맷을 가진 비디오 콘텐츠 제공 방법. - 제6항에 있어서,
하나 이상의 데이터 스트림들은 지원 서버에 대한 링크를 통해 제공되고, 상기 지원 서버는 제공될 상기 하나 이상의 데이터 스트림을 선택하는 비디오 콘텐츠 제공 방법. - 제9항에 있어서,
상기 지원 서버에 의해 선택된 상기 하나 이상의 데이터 스트림들은 사용자 데이터, 콘텐츠 제공자 데이터, 네트워크 서비스 제공자 데이터, 또는 지리적 데이터 중 하나 이상을 포함하나 이에 한정되지 않은 정의된 기준들에 기초하여 선택되는 비디오 콘텐츠 제공 방법. - 제6항에 있어서,
하나의 데이터 스트림은 계층 프리젠테이션 제어 데이터를 포함하는 비디오 콘텐츠 제공 방법. - 제11항에 있어서,
상기 계층 프리젠테이션 제어 데이터는 계층 동기화 데이터를 포함하는 비디오 콘텐츠 제공 방법. - 제1항에 있어서,
상기 참조 파일은 비디오 콘텐츠 제공자 웹 사이트를 통해 액세스되는 비디오 콘텐츠 제공 방법. - 제13항에 있어서,
적어도 상기 링킹 데이터는 상기 비디오 콘텐츠 제공자 웹 사이트를 통해 액세스되는 비디오 파일에 대한 적어도 하나의 링크를 포함하는 비디오 콘텐츠 제공 방법. - 제1항에 있어서,
상기 참조 파일의 액세스에 응답하여 상기 사용자 장치 상의 상기 플레이어를 개시시키는 단계를 더 포함하는 비디오 콘텐츠 제공 방법. - 비디오 콘텐츠에 대한 액세스를 제공하는 방법에 있어서,
데이터 네트워크를 통해 액세스 가능한 비디오 콘텐츠 데이터를 저장하는 단계;
링킹 데이터 및 플레이어 제어 파라미터 값들을 포함하는 참조 파일을 제공하되, 상기 링킹 데이터는 지정된 비디오 콘텐츠에 대한 링크 데이터를 포함하는 단계; 및
상기 참조 파일을 액세스 가능하게 하는 단계를 포함하고, 사용자 장치에 의한 상기 참조 파일의 액세스는 상기 사용자 장치가 적어도 상기 지정된 비디오 콘텐츠 데이터에 링크되어 상기 지정된 비디오 콘텐츠 데이터를 재생하도록 해 주는 액세스 제공 방법. - 제16항에 있어서,
상기 참조 파일을 제공하는 단계는,
각각의 파일이 액세스될 수 있는 경우를 정의하는 적어도 하나의 지정된 비디오 콘텐츠 파일에 대한 링킹 데이터를 제공하는 단계;
상기 지정된 비디오 콘텐츠 파일을 재생하는 플레이어가 사용하는 제어 파라미터 값들을 정의하는 단계; 및
상기 링킹 데이터 및 플레이어 제어 파라미터 값들을 포함하는 참조 파일을 컴파일링하는 단계를 포함하는 액세스 제공 방법. - 제17항에 있어서,
상기 참조 파일을 생성하는 단계는 하나 이상의 콘텐츠 소스들로부터의 콘텐츠에 대한 액세스를 선택적으로 제공하도록 적응된 지원 서버에 링킹 데이터를 제공하는 단계를 포함하는 액세스 제공 방법. - 제18항에 있어서,
상기 지원 서버는 콘텐츠 재생 동기화 데이터, 커맨드들, 및 다른 제어 파라미터 값들을 포함하나 이에 한정되지 않는, 플레이어가 사용하는 부가 제어 데이터를 제공하도록 또한 적응된 액세스 제공 방법. - 제17항에 있어서,
비디오 콘텐츠 파일에 대한 상기 링킹 데이터는 DRM(digital right management) 포털에 대한 링크이며, 상기 DRM 포털을 통해 상기 콘텐츠 파일이 액세스될 수 있는 액세스 제공 방법. - 제16항에 있어서,
상기 참조 파일을 제공하는 단계는 상기 참조 파일을 데이터 네트워크를 통해 사용자에 의해 액세스 가능한 서버 상에 저장하는 단계를 포함하는 액세스 제공 방법. - 제16항에 있어서,
상기 참조 파일을 제공하는 단계는 상기 저장된 콘텐츠 데이터를 액세스하라는 상기 사용자에 의한 요청에 응답하여 참조 파일을 발생하는 단계를 포함하는 액세스 제공 방법. - 제22항에 있어서,
상기 콘텐츠 데이터 파일이 상기 장치 플레이어와 호환가능한 포맷으로 저장되어 있는지의 여부를 결정하고, 상기 콘텐츠 데이터 파일 포맷이 상기 장치 플레이어와 호환되지 않는 경우에, 상기 플레이어와 호환되는 변환된 비디오 구조를 가진 참조를 발생하는 단계를 더 포함하고, 링킹 데이터는 상기 콘텐츠 데이터 파일 내의 코덱 인코딩된 데이터에 링크되는 액세스 제공 방법. - 제16항에 있어서,
상기 참조 파일은 상기 네트워크접속형 장치가 상기 장치 플레이어와 호환되지 않는 데이터 파일 포맷을 가진 어떤 콘텐츠를 위해 상기 플레이어와 호환되는 변환된 비디오 구조를 구성하게 하도록 적응된 제어 파라미터 값들을 포함하고, 상기 콘텐츠 데이터 파일 내의 코덱 인코딩된 데이터에 링크된 링킹 데이터를 이용하는 액세스 제공 방법. - 데이터 네트워크를 통해 비디오 콘텐츠를 제공하는 시스템에 있어서,
제어 명령들을 사용자 장치 상에 설치된 플레이어에 제공하도록 적응된 플레이어 인터페이스; 및
참조 파일을 포함하고,
상기 참조 파일은,
플레이어 제어 파라미터 값들; 및
비디오 콘텐츠에 대한 소스를 포함한 하나 이상의 콘텐츠 소스들에 대한 링킹 데이터를 포함하고,
참조 파일이 플레이어 인터페이스에 제공될 때, 상기 플레이어 인터페이스는 상기 플레이어 제어 파라미터 값들 및 링킹 데이터를 이용하여, 상기 사용자 장치 상에 설치된 상기 플레이어에게,
상기 링킹 데이터에 따라 상기 하나 이상의 소스들로부터 비디오 콘텐츠 데이터를 획득하고,
상기 플레이어 제어 파라미터 값들에 따라 상기 사용자 장치 상에서 상기 비디오 콘텐츠를 재생하도록 지시하는 시스템. - 제25항에 있어서,
상기 저장된 콘텐츠 데이터를 액세스하라는 상기 사용자에 의한 요청에 응답하여 참조 파일을 발생하도록 적응된 참조 파일 컴파일러를 더 포함하는 시스템. - 제26항에 있어서,
상기 참조 파일 컴파일러는 상기 콘텐츠 데이터 파일이 상기 장치 플레이어와 호환가능한 포맷으로 저장되어 있는지의 여부를 결정하고, 상기 콘텐츠 데이터 파일 포맷이 상기 장치 플레이어와 호환되지 않는 경우에, 상기 플레이어와 호환되는 변환된 비디오 구조를 가진 참조를 발생하도록 적응되고, 링킹 데이터는 상기 콘텐츠 데이터 파일 내의 코덱 인코딩된 데이터에 링크되는 시스템. - 제25항에 있어서,
상기 참조 파일은 상기 네트워크접속형 장치가 상기 장치 플레이어와 호환되지 않는 데이터 파일 포맷을 가진 어떤 콘텐츠를 위해 상기 플레이어와 호환되는 변환된 비디오 구조를 구성하게 하도록 적응된 제어 파라미터 값들을 포함하고, 상기 콘텐츠 데이터 파일 내의 코덱 인코딩된 데이터에 링크된 링킹 데이터를 이용하는 시스템. - 제25항에 있어서,
콘텐츠 소스 링커를 가진 지원 서버를 더 포함하며, 상기 지원 서버는 하나 이상의 콘텐츠 소스들로부터의 콘텐츠에 대한 액세스를 사용자 장치에 선택적으로 제공하는 시스템. - 제29항에 있어서,
상기 지원 서버는 동기화 제어 데이터를 제공하는 콘텐츠 동기화기를 포함하는 시스템. - 제30항에 있어서,
상기 동기화 제어 데이터는 상기 참조 파일에 저장하는 제어 파라미터 값들, 사용자 장치로의 다운로드를 위한 동기화 데이터 파일, 또는 상기 플레이어 인터페이스에 대한 제어 커맨드 데이터 중 하나 이상을 포함하나 이에 한정되지 않는 시스템. - 제25항에 있어서,
상기 플레이어 인터페이스는 사용자 장치 상에 설치되는 시스템. - 제25항에 있어서,
상기 플레이어 인터페이스는 서버를 통해 사용자 장치에 의해 액세스되는 시스템. - 제29항에 있어서,
상기 지원 서버는 지정된 데이터 네트워크 액세스 가능 비디오 콘텐츠에 대한 참조 파일을 생성하도록 적응된 참조 파일 컴파일러를 더 포함하는 시스템. - 네트워크 상에 저장된 비디오 콘텐츠가 적어도 하나의 비디오 콘텐츠 소스로부터 액세스되는 경우를 정의하는 링킹 데이터를 수신하고,
커맨드들을 각각의 비디오 콘텐츠 소스로부터 획득된 비디오 콘텐츠를 재생하는 장치 플레이어에 제공하기 위해 플레이어 인터페이스가 사용하는 제어 파라미터 값들을 정의하며,
상기 링킹 데이터 및 플레이어 제어 파라미터 값들을 포함하는 참조 파일을 컴파일링하도록 적응된 참조 파일 컴파일러. - 제35항에 있어서,
플레이어를 가진 사용자 장치로부터 상기 네트워크를 통해 수신된 상기 저장된 콘텐츠 데이터에 대한 액세스 요청에 응답하여 참조 파일을 발생하도록 적응된 참조 파일 컴파일러. - 제36항에 있어서,
상기 참조 파일 컴파일러는 상기 콘텐츠 데이터 파일이 상기 장치 플레이어와 호환가능한 포맷으로 저장되어 있는지의 여부를 결정하고, 상기 콘텐츠 데이터 파일 포맷이 상기 장치 플레이어와 호환되지 않는 경우에, 상기 플레이어와 호환되는 변환된 비디오 구조를 가진 참조를 발생하도록 적응되고, 링킹 데이터는 상기 콘텐츠 데이터 파일 내의 코덱 인코딩된 데이터에 링크되는 참조 파일 컴파일러. - 제35항에 있어서,
상기 참조 파일은 상기 네트워크 접속형 장치가 상기 장치 플레이어와 호환되지 않는 데이터 파일 포맷을 가진 어떤 콘텐츠를 위해 상기 플레이어와 호환되는 변환된 비디오 구조를 구성하게 하도록 적응된 제어 파라미터 값들을 포함하고, 상기 콘텐츠 데이터 파일 내의 코덱 인코딩된 데이터에 링크된 링킹 데이터를 이용하는 참조 파일 컴파일러. - 제35항에 있어서,
비디오 콘텐츠 데이터 소스와 연관된 플레이어 제어 정보를 수신하고 상기 플레이어 제어 정보에 기초하여 플레이어 제어 파라미터 값들을 정의하도록 또한 적응된 참조 파일 컴파일러. - 제35항에 있어서,
플레이어 제어 파라미터 값들은 복수의 동시 재생가능 프리젠테이션 계층들을 정의하고, 각각의 계층은 콘텐츠 소스에 대한 링킹 데이터와 연관되는 참조 파일 컴파일러.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US95640507P | 2007-08-17 | 2007-08-17 | |
US60/956,405 | 2007-08-17 | ||
PCT/AU2008/001190 WO2009023902A1 (en) | 2007-08-17 | 2008-08-15 | Method and system for content delivery |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20100051723A true KR20100051723A (ko) | 2010-05-17 |
KR101299639B1 KR101299639B1 (ko) | 2013-08-23 |
Family
ID=40377741
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020107005809A KR101299639B1 (ko) | 2007-08-17 | 2008-08-15 | 콘텐츠 전달 방법 및 시스템 |
Country Status (9)
Country | Link |
---|---|
US (5) | US8893203B2 (ko) |
EP (1) | EP2188808B1 (ko) |
KR (1) | KR101299639B1 (ko) |
CN (1) | CN101849261B (ko) |
AU (1) | AU2008288676B2 (ko) |
CA (1) | CA2696970C (ko) |
DK (1) | DK2188808T3 (ko) |
HK (1) | HK1149111A1 (ko) |
WO (1) | WO2009023902A1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015126057A1 (ko) * | 2014-02-24 | 2015-08-27 | 엘지전자(주) | 저장 매체 내 컨텐트를 변환하여 재생하는 방법 및 장치 |
Families Citing this family (74)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8185815B1 (en) * | 2007-06-29 | 2012-05-22 | Ambrosia Software, Inc. | Live preview |
CA2696970C (en) | 2007-08-17 | 2015-04-28 | Phoenix Myrrh Technology Pty Ltd. | Method and system for content delivery |
US9002974B1 (en) * | 2007-10-16 | 2015-04-07 | Sprint Communications Company L.P. | Script server for efficiently providing multimedia services in a multimedia system |
US9078024B2 (en) * | 2007-12-18 | 2015-07-07 | Broadcom Corporation | Video processing system with user customized graphics for use with layered video coding and methods for use therewith |
JP2009199441A (ja) * | 2008-02-22 | 2009-09-03 | Ntt Docomo Inc | 映像編集装置、端末装置及びguiプログラム送信方法 |
US20090282422A1 (en) * | 2008-05-07 | 2009-11-12 | Ryan Steelberg | Open API digital video recorder and method of making and using same |
US8179983B2 (en) * | 2008-05-20 | 2012-05-15 | Broadcom Corporation | Video processing system with layered video coding for fast channel change and methods for use therewith |
US8641203B2 (en) | 2008-06-17 | 2014-02-04 | The Invention Science Fund I, Llc | Methods and systems for receiving and transmitting signals between server and projector apparatuses |
US20090309826A1 (en) | 2008-06-17 | 2009-12-17 | Searete Llc, A Limited Liability Corporation Of The State Of Delaware | Systems and devices |
US8733952B2 (en) | 2008-06-17 | 2014-05-27 | The Invention Science Fund I, Llc | Methods and systems for coordinated use of two or more user responsive projectors |
US8723787B2 (en) | 2008-06-17 | 2014-05-13 | The Invention Science Fund I, Llc | Methods and systems related to an image capture projection surface |
US20090310103A1 (en) * | 2008-06-17 | 2009-12-17 | Searete Llc, A Limited Liability Corporation Of The State Of Delaware | Methods and systems for receiving information associated with the coordinated use of two or more user responsive projectors |
US8608321B2 (en) | 2008-06-17 | 2013-12-17 | The Invention Science Fund I, Llc | Systems and methods for projecting in response to conformation |
US8955984B2 (en) | 2008-06-17 | 2015-02-17 | The Invention Science Fund I, Llc | Projection associated methods and systems |
US8944608B2 (en) | 2008-06-17 | 2015-02-03 | The Invention Science Fund I, Llc | Systems and methods associated with projecting in response to conformation |
US8602564B2 (en) | 2008-06-17 | 2013-12-10 | The Invention Science Fund I, Llc | Methods and systems for projecting in response to position |
US8936367B2 (en) | 2008-06-17 | 2015-01-20 | The Invention Science Fund I, Llc | Systems and methods associated with projecting in response to conformation |
US7769049B2 (en) * | 2008-10-17 | 2010-08-03 | Ixia | Traffic generator using parallel coherent transmit engines |
US8584186B2 (en) * | 2008-11-18 | 2013-11-12 | At&T Intellectual Property I, L.P. | Method and apparatus to provide supplemental media content |
GB2473912A (en) | 2009-09-10 | 2011-03-30 | Miniweb Technologies Ltd | User-driven transition or skip between content items |
US8521899B2 (en) * | 2010-05-05 | 2013-08-27 | Intel Corporation | Multi-out media distribution system and method |
US10515523B2 (en) | 2010-07-21 | 2019-12-24 | D-Box Technologies Inc. | Media recognition and synchronization to a motion signal |
US20120038825A1 (en) * | 2010-08-16 | 2012-02-16 | Uri Kanonich | Circuits systems & method for computing over a wireless communication architecture |
US9602849B2 (en) | 2010-09-17 | 2017-03-21 | Futurewei Technologies, Inc. | Method and apparatus for scrub preview services |
KR20120035406A (ko) * | 2010-10-05 | 2012-04-16 | 삼성전자주식회사 | 동영상 파일 재생 방법 및 장치 |
CN102065339B (zh) * | 2010-11-09 | 2013-03-20 | 中国电信股份有限公司 | 音视频媒体流的播放方法与*** |
US8589376B2 (en) * | 2010-11-23 | 2013-11-19 | Larry Deutsch | Method and apparatus to search data and notify and update a user |
KR20120066461A (ko) * | 2010-12-14 | 2012-06-22 | 한국전자통신연구원 | 콘텐츠 변환 장치 및 방법 |
US9767195B2 (en) | 2011-04-21 | 2017-09-19 | Touchstream Technologies, Inc. | Virtualized hosting and displaying of content using a swappable media player |
US8904289B2 (en) * | 2011-04-21 | 2014-12-02 | Touchstream Technologies, Inc. | Play control of content on a display device |
CN104025017A (zh) * | 2011-07-22 | 2014-09-03 | 谷歌公司 | 链接内容文件 |
US9800688B2 (en) | 2011-09-12 | 2017-10-24 | Microsoft Technology Licensing, Llc | Platform-enabled proximity service |
CN103197980B (zh) * | 2012-01-10 | 2016-03-30 | 华为终端有限公司 | 一种呈现增强现实技术内容的方法、装置及*** |
CN103297855B (zh) * | 2012-03-02 | 2015-05-20 | 腾讯科技(深圳)有限公司 | 一种应用展示方法以及一种终端 |
US20130290818A1 (en) * | 2012-04-27 | 2013-10-31 | Nokia Corporation | Method and apparatus for switching between presentations of two media items |
US10356204B2 (en) | 2012-12-13 | 2019-07-16 | Microsoft Technology Licensing, Llc | Application based hardware identifiers |
US9275233B1 (en) * | 2012-12-21 | 2016-03-01 | Emc Corporation | Generation and use of a modified protected file |
US20140195675A1 (en) * | 2013-01-09 | 2014-07-10 | Giga Entertainment Media Inc. | Simultaneous Content Data Streaming And Interaction System |
US11375347B2 (en) | 2013-02-20 | 2022-06-28 | Disney Enterprises, Inc. | System and method for delivering secondary content to movie theater patrons |
US20140317480A1 (en) * | 2013-04-23 | 2014-10-23 | Microsoft Corporation | Automatic music video creation from a set of photos |
US9858247B2 (en) * | 2013-05-20 | 2018-01-02 | Microsoft Technology Licensing, Llc | Runtime resolution of content references |
WO2015096871A1 (en) * | 2013-12-26 | 2015-07-02 | Arcelik Anonim Sirketi | Image display device with program-based automatic audio signal and subtitle switching function |
US10506053B2 (en) * | 2014-03-07 | 2019-12-10 | Comcast Cable Communications, Llc | Location aware security system |
US20150261425A1 (en) * | 2014-03-14 | 2015-09-17 | Apple Inc. | Optimized presentation of multimedia content |
US9769228B2 (en) * | 2014-04-21 | 2017-09-19 | Futurewei Technologies, Inc. | System and method for servicing one or more user equipments through one or more streams |
US10021434B2 (en) | 2014-05-30 | 2018-07-10 | Apple Inc. | Movie package file format |
US9516269B2 (en) * | 2014-06-04 | 2016-12-06 | Apple Inc. | Instant video communication connections |
US9426523B2 (en) | 2014-06-25 | 2016-08-23 | International Business Machines Corporation | Video composition by dynamic linking |
US10506295B2 (en) * | 2014-10-09 | 2019-12-10 | Disney Enterprises, Inc. | Systems and methods for delivering secondary content to viewers |
WO2016149093A1 (en) * | 2015-03-13 | 2016-09-22 | Zype Inc. | Technologies for on-demand content player selection |
US10313765B2 (en) | 2015-09-04 | 2019-06-04 | At&T Intellectual Property I, L.P. | Selective communication of a vector graphics format version of a video content item |
CN106604129B (zh) * | 2015-10-20 | 2019-08-20 | 北京国双科技有限公司 | 检测视频播放状态的方法和装置 |
CN105516734B (zh) * | 2015-12-10 | 2019-11-15 | 腾讯科技(深圳)有限公司 | 一种视频可播放性的检测方法和装置 |
US10771843B2 (en) | 2015-12-15 | 2020-09-08 | Telefonaktiebolaget Lm Ericsson (Publ) | Media distribution with sample variants for normalized encryption |
US9755740B2 (en) | 2015-12-30 | 2017-09-05 | Surefire Llc | Receivers for optical narrowcasting |
WO2017158538A1 (en) * | 2016-03-16 | 2017-09-21 | Patil Mrityunjay | A method and a system for enabling an user to consume a video or audio content understandable with respect to a preferred language |
US9917652B1 (en) | 2017-06-06 | 2018-03-13 | Surefire Llc | Adaptive communications focal plane array |
CN111052112B (zh) * | 2017-06-06 | 2023-04-14 | 李纽斯(澳大利亚)控股有限公司 | 内容交易共识的***和方法 |
US10636449B2 (en) * | 2017-11-06 | 2020-04-28 | International Business Machines Corporation | Dynamic generation of videos based on emotion and sentiment recognition |
US10250948B1 (en) | 2018-01-05 | 2019-04-02 | Aron Surefire, Llc | Social media with optical narrowcasting |
US10236986B1 (en) | 2018-01-05 | 2019-03-19 | Aron Surefire, Llc | Systems and methods for tiling free space optical transmissions |
US10473439B2 (en) | 2018-01-05 | 2019-11-12 | Aron Surefire, Llc | Gaming systems and methods using optical narrowcasting |
US20190238950A1 (en) * | 2018-01-31 | 2019-08-01 | Qualcomm Incorporated | Dynamic conditional advertisement insertion |
CN109257646B (zh) * | 2018-10-15 | 2020-09-22 | Oppo广东移动通信有限公司 | 视频处理方法、装置、电子设备及计算机可读介质 |
CN111191271B (zh) * | 2018-11-15 | 2023-06-23 | 国际商业机器公司 | 一种计算机实现的方法、***和存储介质 |
US10743041B1 (en) | 2019-01-31 | 2020-08-11 | DISH Technologies L.L.C. | Systems and methods for facilitating adaptive content splicing |
US11205457B2 (en) | 2019-09-12 | 2021-12-21 | International Business Machines Corporation | Automatic detection and remediation of video irregularities |
US10880351B1 (en) | 2019-10-16 | 2020-12-29 | Dish Network L.L.C. | Systems and methods for adapting content items to endpoint media devices |
US11638049B2 (en) | 2019-10-16 | 2023-04-25 | Dish Network L.L.C. | Systems and methods for content item recognition and adaptive packet transmission |
US11303943B2 (en) | 2019-10-16 | 2022-04-12 | Dish Network L.L.C. | Systems and methods for facilitating adaptive content items for delivery in a packet stream |
US11218525B2 (en) | 2020-01-21 | 2022-01-04 | Dish Network L.L.C. | Systems and methods for adapting content delivery based on endpoint communications |
US11245946B2 (en) | 2020-01-21 | 2022-02-08 | Dish Network L.L.C. | Systems and methods for adapting content items to secured endpoint media device data |
US11012737B1 (en) | 2020-04-27 | 2021-05-18 | Dish Network L.L.C. | Systems and methods for audio adaptation of content items to endpoint media devices |
US20230300409A1 (en) * | 2022-03-21 | 2023-09-21 | Amdocs Development Limited | System, method, and computer program for online data transfer |
Family Cites Families (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6141693A (en) * | 1996-06-03 | 2000-10-31 | Webtv Networks, Inc. | Method and apparatus for extracting digital data from a video stream and using the digital data to configure the video stream for display on a television set |
US20030161614A1 (en) * | 1997-11-28 | 2003-08-28 | Kabushiki Kaisha Toshiba | Method and apparatus for playing back data recorded on a recoding medium |
US6970602B1 (en) * | 1998-10-06 | 2005-11-29 | International Business Machines Corporation | Method and apparatus for transcoding multimedia using content analysis |
US7178106B2 (en) * | 1999-04-21 | 2007-02-13 | Sonic Solutions, A California Corporation | Presentation of media content from multiple media sources |
JP2001101190A (ja) * | 1999-07-29 | 2001-04-13 | Jisedai Joho Hoso System Kenkyusho:Kk | 受信装置および受信方法 |
US7949722B1 (en) * | 1999-09-29 | 2011-05-24 | Actv Inc. | Enhanced video programming system and method utilizing user-profile information |
US6389467B1 (en) * | 2000-01-24 | 2002-05-14 | Friskit, Inc. | Streaming media search and continuous playback system of media resources located by multiple network addresses |
US7962948B1 (en) * | 2000-04-07 | 2011-06-14 | Virage, Inc. | Video-enabled community building |
US7548565B2 (en) * | 2000-07-24 | 2009-06-16 | Vmark, Inc. | Method and apparatus for fast metadata generation, delivery and access for live broadcast program |
AU2001283004A1 (en) | 2000-07-24 | 2002-02-05 | Vivcom, Inc. | System and method for indexing, searching, identifying, and editing portions of electronic multimedia files |
US20020147985A1 (en) * | 2001-04-05 | 2002-10-10 | Koji Miyajima | Video distribution system and video distribution method |
CN1406055A (zh) * | 2001-08-15 | 2003-03-26 | 丽台科技股份有限公司 | 影音式网络摄像机 |
US20030110503A1 (en) * | 2001-10-25 | 2003-06-12 | Perkes Ronald M. | System, method and computer program product for presenting media to a user in a media on demand framework |
KR20040067874A (ko) * | 2001-11-12 | 2004-07-30 | 소니 가부시끼 가이샤 | 정보 전달 시스템 및 방법, 정보 처리 장치 및 방법 |
US20030145338A1 (en) * | 2002-01-31 | 2003-07-31 | Actv, Inc. | System and process for incorporating, retrieving and displaying an enhanced flash movie |
JP4335492B2 (ja) | 2002-03-05 | 2009-09-30 | キヤノン株式会社 | 動画像管理方法及び装置 |
US7774343B2 (en) * | 2002-04-15 | 2010-08-10 | Microsoft Corporation | Multiple media vendor support |
WO2003104942A2 (en) * | 2002-06-07 | 2003-12-18 | Yahoo. Inc. | Method and system for controling and monitoring a web-cast |
KR20040000584A (ko) | 2002-06-21 | 2004-01-07 | 엘지전자 주식회사 | 밀폐형 압축기의 흡입손실 저감구조 |
KR100429812B1 (ko) | 2002-06-25 | 2004-05-03 | 삼성전자주식회사 | 컬러 화상형성장치의 현상기 구동장치 |
US20040049624A1 (en) * | 2002-09-06 | 2004-03-11 | Oak Technology, Inc. | Network to computer internal interface |
US20040073941A1 (en) * | 2002-09-30 | 2004-04-15 | Ludvig Edward A. | Systems and methods for dynamic conversion of web content to an interactive walled garden program |
US8631451B2 (en) * | 2002-12-11 | 2014-01-14 | Broadcom Corporation | Server architecture supporting adaptive delivery to a variety of media players |
KR100461541B1 (ko) | 2002-12-26 | 2004-12-17 | 한국전자통신연구원 | 방송 프로그램에 정보 제공을 위한 메타데이터 송/수신장치 및 그 방법 |
KR100589823B1 (ko) | 2003-02-19 | 2006-06-14 | 비브콤 인코포레이티드 | 생방송 프로그램에 대한 빠른 메타데이터 서비스 제공방법, 하이라이트 실시간 생성 방법 및 방송 프로그램스트림 임의 접근 방법 |
JP2005005810A (ja) * | 2003-06-09 | 2005-01-06 | Canon Inc | メディアデータ管理方法、ディスク録画装置、ディスク再生装置、メディアデータ管理システム、コンピュータプログラム及びコンピュータ読み取り可能な記録媒体 |
US7653288B2 (en) * | 2003-08-16 | 2010-01-26 | Samsung Electronics Co., Ltd. | Information storage medium having data structure for being reproduced adaptively according to player profile information, method for reproducing AV data in interactive mode |
US20050076364A1 (en) * | 2003-08-29 | 2005-04-07 | Derek Dukes | System and method for customizing a multimedia interface |
US20060146772A1 (en) * | 2005-01-04 | 2006-07-06 | Ziv Geva | Digital media interface/player device |
US7654462B2 (en) * | 2005-02-16 | 2010-02-02 | Casey Steven M | Mobile device base station for enhanced signal strength for on-demand media services |
US20070124781A1 (en) * | 2005-11-30 | 2007-05-31 | Qwest Communications International Inc. | Networked content storage |
US7941824B2 (en) * | 2006-08-28 | 2011-05-10 | At&T Intellectual Property I, Lp | Methods, systems and computer program products for providing a media file to a designated set-top box |
US8151310B2 (en) * | 2006-10-13 | 2012-04-03 | Schlumberger Technology Corporation | Video delivery of oilfield data |
US8973072B2 (en) * | 2006-10-19 | 2015-03-03 | Qualcomm Connected Experiences, Inc. | System and method for programmatic link generation with media delivery |
CA2696970C (en) | 2007-08-17 | 2015-04-28 | Phoenix Myrrh Technology Pty Ltd. | Method and system for content delivery |
-
2008
- 2008-08-15 CA CA2696970A patent/CA2696970C/en active Active
- 2008-08-15 DK DK08782938.8T patent/DK2188808T3/en active
- 2008-08-15 AU AU2008288676A patent/AU2008288676B2/en active Active
- 2008-08-15 KR KR1020107005809A patent/KR101299639B1/ko active IP Right Grant
- 2008-08-15 WO PCT/AU2008/001190 patent/WO2009023902A1/en active Application Filing
- 2008-08-15 US US12/670,430 patent/US8893203B2/en active Active
- 2008-08-15 CN CN2008801103648A patent/CN101849261B/zh active Active
- 2008-08-15 EP EP08782938.8A patent/EP2188808B1/en active Active
-
2011
- 2011-03-29 HK HK11103186.5A patent/HK1149111A1/xx unknown
-
2013
- 2013-03-15 US US13/833,810 patent/US9544657B2/en active Active
- 2013-03-15 US US13/833,431 patent/US9516392B2/en active Active
-
2016
- 2016-10-28 US US15/337,896 patent/US9918134B2/en active Active
- 2016-11-22 US US15/359,085 patent/US9955222B2/en active Active
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015126057A1 (ko) * | 2014-02-24 | 2015-08-27 | 엘지전자(주) | 저장 매체 내 컨텐트를 변환하여 재생하는 방법 및 장치 |
US9858960B2 (en) | 2014-02-24 | 2018-01-02 | Lg Electronics Inc. | Method and apparatus for converting and reproducing contents in storage medium |
Also Published As
Publication number | Publication date |
---|---|
EP2188808B1 (en) | 2016-07-06 |
US20170048594A1 (en) | 2017-02-16 |
US20170078754A1 (en) | 2017-03-16 |
CN101849261B (zh) | 2013-10-30 |
KR101299639B1 (ko) | 2013-08-23 |
US20100257569A1 (en) | 2010-10-07 |
US9516392B2 (en) | 2016-12-06 |
EP2188808A1 (en) | 2010-05-26 |
US8893203B2 (en) | 2014-11-18 |
US9918134B2 (en) | 2018-03-13 |
DK2188808T3 (en) | 2016-10-03 |
US20130276034A1 (en) | 2013-10-17 |
CN101849261A (zh) | 2010-09-29 |
CA2696970C (en) | 2015-04-28 |
US9955222B2 (en) | 2018-04-24 |
AU2008288676A1 (en) | 2009-02-26 |
US20130291042A1 (en) | 2013-10-31 |
CA2696970A1 (en) | 2010-02-26 |
AU2008288676B2 (en) | 2010-07-08 |
EP2188808A4 (en) | 2010-09-22 |
WO2009023902A1 (en) | 2009-02-26 |
HK1149111A1 (en) | 2011-09-23 |
US9544657B2 (en) | 2017-01-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101299639B1 (ko) | 콘텐츠 전달 방법 및 시스템 | |
JP5017352B2 (ja) | 出力制御装置 | |
US20120284744A1 (en) | Automated playlist generation | |
US20090307258A1 (en) | Multimedia distribution and playback systems and methods using enhanced metadata structures | |
US8584169B1 (en) | System and method for creating and managing custom media channels | |
JP2004517532A (ja) | 非侵入的且つ視聴者主体で使用するために再利用可能なオブジェクトベースの製品情報をオーディオビジュアル番組に埋め込む方法 | |
JP2008501255A (ja) | 放送コンテンツと対応するネットワークコンテンツとの同期化 | |
US20130191751A1 (en) | Systems and methods for mapping media content to web sites | |
US20090106639A1 (en) | System and Method for an Extensible Media Player | |
JP2006311592A (ja) | ストリーム再生制御装置及びコンピュータプログラム | |
JP2007228619A (ja) | 記憶・出力装置 | |
CN101516024B (zh) | 信息提供装置、流输出装置及流输出方法 | |
WO2006079938A2 (en) | Method and apparatus for playing back digital program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
A302 | Request for accelerated examination | ||
E902 | Notification of reason for refusal | ||
AMND | Amendment | ||
E601 | Decision to refuse application | ||
AMND | Amendment | ||
X701 | Decision to grant (after re-examination) | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20160715 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20170811 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20180809 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20190718 Year of fee payment: 7 |