KR20130061171A - 스트리밍 디지털 컨텐츠의 동기화된 재생을 위한 시스템 및 방법 - Google Patents

스트리밍 디지털 컨텐츠의 동기화된 재생을 위한 시스템 및 방법 Download PDF

Info

Publication number
KR20130061171A
KR20130061171A KR1020137006434A KR20137006434A KR20130061171A KR 20130061171 A KR20130061171 A KR 20130061171A KR 1020137006434 A KR1020137006434 A KR 1020137006434A KR 20137006434 A KR20137006434 A KR 20137006434A KR 20130061171 A KR20130061171 A KR 20130061171A
Authority
KR
South Korea
Prior art keywords
playback
digital content
time
server
content
Prior art date
Application number
KR1020137006434A
Other languages
English (en)
Other versions
KR101454136B1 (ko
Inventor
엘리 첸
그레그 피터스
Original Assignee
넷플릭스, 인크.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 넷플릭스, 인크. filed Critical 넷플릭스, 인크.
Publication of KR20130061171A publication Critical patent/KR20130061171A/ko
Application granted granted Critical
Publication of KR101454136B1 publication Critical patent/KR101454136B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/12Synchronisation of different clock signals provided by a plurality of clock generators
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B7/00Radio transmission systems, i.e. using radiation field
    • H04B7/14Relay systems
    • H04B7/15Active relay systems
    • H04B7/204Multiple access
    • H04B7/212Time-division multiple access [TDMA]
    • 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/242Synchronization processes, e.g. processing of PCR [Program Clock References]
    • 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/254Management at additional data server, e.g. shopping server, rights management server
    • 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/4302Content synchronisation processes, e.g. decoder synchronisation
    • H04N21/4305Synchronising client clock from received content stream, e.g. locking decoder clock with encoder clock, extraction of the PCR packets
    • 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/4302Content synchronisation processes, e.g. decoder synchronisation
    • H04N21/4307Synchronising 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/43076Synchronising 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 the same content streams on multiple devices, e.g. when family members are watching the same movie on different devices
    • 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
    • H04N21/4325Content retrieval operation from a local storage medium, e.g. hard-disk by playing back content from the storage medium
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/65Transmission of management data between client and server
    • H04N21/654Transmission by server directed to the client
    • H04N21/6543Transmission by server directed to the client for forcing some client operations, e.g. recording
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/65Transmission of management data between client and server
    • H04N21/658Transmission by the client directed to the server
    • H04N21/6581Reference data, e.g. a movie identifier for ordering a movie or a product identifier in a home shopping application

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

본 발명의 일 실시예는 둘 이상의 상이한 컨텐츠 플레이어 상에서의 디지털 컨텐츠의 재생을 동기화하기 위한 기술을 제시한다. 각각의 컨텐츠 플레이어는 로컬 시간 신호를 시간 서버에 의해 유지되는 시간 기준 신호에 동기화한다. 컨텐츠 재생에 관련된 동작들은 주어진 컨텐츠 플레이어를 위한 각각의 로컬 시간 신호에 대하여 동기화되고, 그것은 그에 의해 연관된 컨텐츠 플레이어들의 그룹을 위한 재생을 동기화한다. 각각의 컨텐츠 플레이어는 유리하게는 상이한 재생 옵션들을 갖고서 구성될 수 있고, 그에 의해 각각의 사용자가 단 한 세트의 재생 옵션을 제공하는 종래 기술의 해법으로 가능하던 것보다 양호한 공유 보기 경험을 가질 수 있게 한다.

Description

스트리밍 디지털 컨텐츠의 동기화된 재생을 위한 시스템 및 방법{A SYSTEM AND METHOD FOR SYNCHRONIZED PLAYBACK OF STREAMING DIGITAL CONTENT}
<관련 출원>
본 출원은 2010년 8월 13일자로 출원된 미국 특허 출원 제12/856,466호의 우선권을 주장하며, 그것은 본 명세서에 참조로서 통합된다.
<기술분야>
본 발명의 실시예들은 일반적으로 디지털 미디어에 관한 것이고, 더 구체적으로는 스트리밍 디지털 컨텐츠의 동기화된 재생을 위한 시스템 및 방법에 관한 것이다.
소비자 컨텐츠 전달을 위한 하나의 인기있는 모델은 디지털 컨텐츠 파일들을 컨텐츠 서버로부터 통신 네트워크를 통해 직접 컨텐츠 플레이어에 전송하는 것을 수반한다. 컨텐츠 서버는 전형적으로 통신 네트워크를 통해 컨텐츠 플레이어에 다운로드될 수 있는 디지털 컨텐츠 파일들을 저장하도록 구성된 안전한 기계실 내의 컴퓨터 시스템이다. 각각의 디지털 컨텐츠 파일은 사용자들이 친숙해 할 "바람과 함께 사라지다"와 같은 특정한 식별 타이틀에 연관된다. 주어진 디지털 컨텐츠 파일은 사용자에 의해 선택될 수 있고, 재생 전에 또는 재생 동안 컨텐츠 서버로부터 컨텐츠 플레이어로 다운로드될 수 있다.
컨텐츠 플레이어는 범용 플랫폼 상의 컴퓨터 애플리케이션, 또는 디지털 컨텐츠 파일을 재생하도록 구성된 전용 디바이스로서 구현될 수 있다. 디지털 컨텐츠 파일들은 디지털 인코딩된 노래 및 사운드 트랙, 영화, 텔레비전 프로그램 등을 포함할 수 있다. 컨텐츠 플레이어는 전형적으로 디지털 컨텐츠 파일의 적어도 입부를 다운로드하고 저장하여, 타이틀의 중단없는(uninterrupted) 재생을 용이하게 한다. 주어진 타이틀에 대하여, 사용자는 전형적으로 재생 옵션의 선택권을 제공받는다. 예를 들어, 사용자는 주어진 타이틀을 특정 언어로 보기를 선택하거나, 지정된 언어로 된 자막과 함께 보기를 선택할 수 있다.
때로는, 타이틀은 둘 이상의 사용자가 타이틀을 동시에 보는 설정으로 재생될 수 있다. 예를 들어, 복수의 사용자가 거실에서 대형 화면의 텔레비전으로 영화 또는 텔레비전 프로그램을 함께 보기를 원할 수 있다. 많은 흔한 시나리오에서, 사용자들 중 두 명은 상충되는 보기 옵션을 선택하고 싶어할 수 있다. 예를 들어, 한 사용자는 특정 영화를 자막을 켜고서 보고 싶어할 수 있는 반면에, 다른 사용자는 자신의 보기 경험이 자막으로 어수선해지는 것을 원하지 않을 수 있다. 다른 예로서, 한 사용자는 감독의 코멘터리를 포함하는 사운드 트랙으로 영화를 보고 싶어할 수 있는 반면에, 다른 사용자는 영화를 위한 정규 사운드 트랙만을 듣고 싶어할 수 있다. 각각의 사례에서, 사용자들이 상충하는 보기 선호(viewing preference)를 갖기 때문에, 적어도 한 명의 사용자는 다른 사용자를 위해 자신의 보는 즐거움을 희생해야 한다.
앞에서 설명한 바와 같이, 본 기술분야에서는 둘 이상의 사용자가 사용자들 각각의 보기 선호를 존중하면서도 보기 경험을 공유할 수 있게 하는 기술이 필요하다.
본 발명의 일 실시예는 복수의 엔드포인트 디바이스에 걸쳐서 동기하여 디지털 컨텐츠 타이틀을 재생하기 위한 방법을 제공한다. 방법은 로컬 시간 신호를 원격 시간 서버에 의해 생성된 시간 기준 신호에 동기화하는 단계; 재생 세션 식별자를 컨텐츠 서버에 전송하는 단계 - 재생 세션 식별자는 디지털 컨텐츠 타이틀을 위한 고유 재생 세션에 연관됨 - ; 재생 커맨드 및 재생 커맨드를 실행하기 위한 지정된 시간을 포함하는 서버측 이벤트를 수신하는 단계; 및 로컬 시간 신호에 기초하여 지정된 시간에서의 실행을 위해 재생 커맨드를 스케줄링하는 단계를 포함한다.
다른 실시예들은 프로세싱 유닛이 개시된 방법들의 하나 이상의 양태 또는 개시된 방법들의 하나 이상의 양태를 구현하도록 구성된 시스템을 구현할 수 있게 하는 명령어들을 포함하는 컴퓨터 판독가능한 매체를 포함하되, 이에 한정되는 것은 아니다.
개시된 시스템들 및 기술들의 한가지 이점은 복수의 사용자가 그들의 개별 보기 선호에 기초하여 공통의 보기 경험을 공유할 수 있게 된다는 것이다. 이것은 모든 사용자로 하여금 강제로 하나의 공통적인 세트의 보기 선호를 공유하게 하는 종래 기술의 해법과는 대조적이다.
본 발명의 상기 언급된 특징들이 상세하게 이해될 수 있도록, 위에서 간략하게 요약된 본 발명의 더 구체적인 설명은 실시예들을 참조할 수 있으며, 그 실시예들 중 일부는 첨부 도면들에 도시되어 있다. 그러나, 첨부 도면들은 본 발명의 전형적인 실시예들만을 도시한 것이고, 따라서 본 발명은 동등하게 유효한 다른 실시예들도 인정할 수 있으므로, 그것의 범위를 한정하는 것으로서 고려되어서는 안 된다는 점에 유의해야 한다.
도 1은 본 발명의 하나 이상의 양태를 구현하도록 구성된 컨텐츠 배포 시스템을 도시한다.
도 2는 본 발명의 일 실시예에 따른 컨텐츠 서버의 더 상세한 도면이다.
도 3은 본 발명의 일 실시예에 따른 도 1의 컨텐츠 플레이어의 더 상세한 도면이다.
도 4는 본 발명의 일 실시예에 따른 동기화된 재생 이벤트를 도시한다.
도 5는 본 발명의 일 실시예에 따른 동기화된 재생을 수행하기 위한 방법 단계들의 흐름도이다.
이하의 설명에서, 본 발명의 더 완전한 이해를 제공하기 위해 다수의 특정한 상세가 제시된다. 그러나, 본 기술분야의 숙련된 자는 본 발명이 이러한 구체적인 상세 중 하나 이상이 없더라도 실시될 수 있음을 알 것이다. 다른 경우들에서, 본 발명을 모호하게 하는 것을 피하기 위해, 잘 알려진 특징들은 설명되지 않는다.
도 1은 본 발명의 하나 이상의 양태를 구현하도록 구성된 컨텐츠 배포 시스템(100)을 도시한다. 컨텐츠 배포 시스템(100)은 컨텐츠 서버(105), 통신 네트워크(150) 및 컨텐츠 플레이어들(110)을 포함한다. 컨텐츠 서버(105)는 하나 이상의 컨텐츠 서버 시스템을 포함하며, 그들 각각은 컴퓨터 서버를 이용하여 구현된다. 각각의 컴퓨터 서버는 하드웨어 컴퓨터 시스템, 또는 하나 이상의 하드웨어 컴퓨터 시스템의 임의의 컬렉션(collection)에서 실행되는 가상 컴퓨터 시스템을 포함할 수 있다. 각각의 컨텐츠 서버 시스템은 파일 서버(130), 시간 서버(132), 디렉토리 서버(134) 또는 그들의 임의의 조합을 구현할 수 있다.
통신 네트워크(150)는 컨텐츠 서버(105)와 컨텐츠 플레이어(110) 사이에서 디지털 데이터를 전송하도록 구성된, 기술적으로 실현가능한 임의의 시스템을 이용하여 구현될 수 있다. 일 실시예에서, 통신 네트워크(150)는 실질적으로 산업 표준의 인터넷 프로토콜(IP)에 기초하는 스위칭 및 라우팅 네트워크를 포함한다. 대중적인 "인터넷" 통신 네트워크는 적합한 IP 기반 통신 네트워크의 일례이다.
일 실시예에서, 파일 서버들(130), 시간 서버(132) 및 디렉토리 서버(134)는 통신 네트워크(150)에 연결된 독립적인 컴퓨터 시스템들 상에서 실행되는 애플리케이션들로서 구현된다. 대안적인 실시예에서, 파일 서버들(130), 시간 서버(132) 및 디렉토리 서버(134) 중 하나 이상은 통신 네트워크(150)에 연결된 컴퓨터 시스템 상에서 실행되는 애플리케이션들로서 구현된다. 상기 실시예들 둘 다에서, 컴퓨터 시스템들 각각은 독립적인 하드웨어 컴퓨터 시스템, 또는 하나 이상의 독립적인 하드웨어 컴퓨터 시스템을 포함하는 임의의 하드웨어 구성에 의해 호스트되는 가상 컴퓨터 시스템일 수 있다.
파일 서버들(130)은 컨텐츠 플레이어들(110)로의 다운로드를 위한 디지털 컨텐츠 파일들을 저장하고 검색하도록 구성된다. 복수의 파일 서버(130-1, 130-2 등)는 총 다운로드 대역폭을, 예를 들어 전체 다운로드 수요의 함수로서 확대하기 위해 이용될 수 있다. 디렉토리 서버(134)는 컨텐츠 플레이어(110)가 타이틀 카탈로그 내에서 특정 타이틀을 찾고, 파일 서버들(130) 중 하나로부터 하나 이상의 대응 디지털 컨텐츠 파일의 다운로드를 개시할 수 있게 하는, 기술적으로 실현가능한 임의의 메커니즘을 구현한다. 특정 타이틀은 상이한 인코딩 포맷들에 대응하는 하나 이상의 관련 디지털 컨텐츠 파일을 가질 수 있다. 예를 들어, 특정 타이틀은 상이한 해상도들 및 프레임 레이트들로 인코딩된 비디오를 포함하는 복수의 연관된 디지털 컨텐츠 파일을 가질 수 있다. 다른 예로서, 특정 타이틀은 상이한 언어들로 더빙된 오디오 트랙들을 포함하는 복수의 연관된 디지털 컨텐츠 파일을 가질 수 있다.
시간 서버(132)는 경과 시간의 균일하게 양자화된 타임 스텝들(uniformly quantized time steps)을 표현하는 단조 증가 시간값(monotonically increasing time value)에 의해 특징지어지는 시간 기준 신호를 생성하도록 구성된다. 예를 들어, 시간 기준 신호는 소정의 기준 시간 이후에 경과된 초(seconds) 및 몇 분의 몇 초(fractions of a second)를 표현할 수 있다. 시간 서버(132)는 컨텐츠 플레이어들(110)로부터의 시간 동기화 요청에 응답하여, 컨텐츠 플레이어들(110) 각각이 시간 기준 신호에 동기화되는 로컬 시간 신호를 생성할 수 있게 하도록 구성된다.
본 기술분야의 숙련된 자들은 기술적으로 실현가능한 임의의 시간 동기화 프로토콜이 시간 서버(132)와 컨텐츠 플레이어들(110) 사이에서 이용될 수 있음을 알 것이다. 한 예시적인 시간 동기화 프로토콜은 산업 표준의 네트워크 시간 프로토콜(network time protocol: NTP)이며, 이것은 클라이언트 디바이스 내의 로컬 시간 신호를, 중간의 IP 기반 통신 네트워크를 통해 하나 이상의 서버 디바이스 내의 시간 기준 신호에 동기화시키기 위해 관습적으로 이용된다.
컨텐츠 플레이어들(110)은 파일 서버들(130)로부터 입수가능한 디지털 컨텐츠 파일들을 위한 재생 애플리케이션을 구현한다. 주어진 디지털 컨텐츠 파일은 오디오 재생, 비디오 재생, 또는 결합된 오디오 및 비디오 재생을 위한 데이터를 포함할 수 있다. 비디오 및 오디오 컨텐츠의 재생은 로컬 시간 신호를 통해 동기화된다. 디지털 컨텐츠 파일은 또한 자막, 비디오 오버레이(video overlay), 프로그램적으로 생성된 거동(behavior) 및 그와 유사한 것과 같은 대안적인 컨텐츠도 포함할 수 있다. 대안적인 컨텐츠의 재생은 로컬 시간 신호를 통해 재생 비디오 및 오디오 컨텐츠에 동기화된다.
각각의 컨텐츠 플레이어(110)는 로컬 시간 신호를 시간 서버(132)에 의해 생성된 시간 기준 신호에 동기화하도록 구성된 시간 동기화 클라이언트를 포함한다. 특정 컨텐츠 플레이어(110) 내의 각각의 재생 애플리케이션은 그 컨텐츠 플레이어(110)를 위한 각각의 시간 동기화 클라이언트에 의해 생성된 로컬 시간 신호를 수신한다. 각각의 디지털 컨텐츠 파일의 재생은 예를 들어 비디오, 오디오 및 자막 재생을 동기화하기 위해 로컬 시간 신호에 따라 동기화된다.
컨텐츠 플레이어들(110)이 그들 각자의 로컬 시간 신호들을 시간 서버(132)의 시간 기준 신호에 동기화한 것의 결과로서, 컨텐츠 플레이어들(110)에 의해 생성된 로컬 시간 신호들은 서로에 대해서도 동기화된다. 그러므로, 디지털 컨텐츠 재생은 예를 들어 컨텐츠 플레이어(110-2) 상에서의 자막 재생을 컨텐츠 플레이어(110-1) 상에서의 비디오 재생에 동기화하기 위해, 이롭게도 컨텐츠 플레이어들 간에서 동기화될 수 있다. 다른 예로서, 컨텐츠 플레이어(110-1)는 오디오 재생을 영어와 같은 한 언어로 개시하면서 소정 타이틀의 동기화된 비디오 및 오디오 재생을 수행할 수 있는 한편, 컨텐츠 플레이어(110-2)는 동일 타이틀의 동기화된 오디오 재생을 프랑스어와 같은 다른 언어로 수행할 수 있다.
일 실시예에서, 특정 컨텐츠 플레이어(110-1)가 주 컨텐츠 플레이어로서 임의로 지정되고, 다른 컨텐츠 플레이어(110-2)는 보조 컨텐츠 플레이어로서 임의로 지정된다. 사용자는 타이틀을 선택하고 그 타이틀에 연관된 디지털 컨텐츠를 위한 재생의 소정 양태들을 관리하기 위해 주 컨텐츠 플레이어를 조작한다. 예를 들어, 주 컨텐츠 플레이어는 타이틀이 언제 재생, 정지되어야 할지 등을 결정하기 위해 이용될 수 있다. 주 컨텐츠 플레이어는 선택된 타이틀에 연관된 비디오 및 오디오를 거실에서 둘 이상의 사용자가 보고 있는 대형 텔레비전 화면 상에 재생하는 것과 같은 주 보기 경험을 생성한다. 주 컨텐츠 플레이어는 대응하는 로컬 시간 신호에 따라, 선택된 타이틀의 재생을 수행한다. 각각의 컨텐츠 플레이어가 그들의 동기화된 로컬 시간 신호에 따라 선택된 타이틀을 위한 재생을 수행하므로, 둘 이상의 컨텐츠 플레이어(110)는 각각 선택된 타이틀의 동기화된 재생을 수행할 수 있다. 중요한 것은, 각각의 컨텐츠 플레이어(110)가 선택된 보기 옵션들의 고유한 세트와 함께, 선택된 타이틀의 동기화된 재생을 수행할 수 있다는 것이다.
도 2는 본 발명의 일 실시예에 따른 컨텐츠 서버 시스템(200)의 더 상세한 도면이다. 컨텐츠 서버 시스템(200)은 도 1의 컨텐츠 서버(105)의 핵심 기능들을 구현한다. 컨텐츠 서버 시스템(200)은 중앙 프로세싱 유닛(CPU)(210), 네트워크 인터페이스(218), 상호접속부(220), 메모리 서브시스템(230) 및 대용량 저장 시스템(240)을 포함하되, 이에 한정되는 것은 아니다.
CPU(210)는 메모리 서브시스템(230) 내에 저장된 프로그래밍 명령어들을 검색하고 실행하도록 구성된다. CPU(210)는 상호접속부(220)를 통해 메모리 서브시스템(230)으로부터 프로그래밍 명령어들을 검색한다. 상호접속부(220)는 CPU(210)와 컨텐츠 서버 시스템(200) 내의 다른 서브시스템들 간에서, 프로그래밍 명령어 및 애플리케이션 데이터와 같은 데이터의 전송을 용이하게 하도록 구성된다. 다른 서브시스템들은 네트워크 인터페이스(218), 메모리 서브시스템(230) 및 대용량 저장 시스템(240)을 포함하되, 이에 한정되는 것은 아니다.
대용량 저장 시스템(240)은 비휘발성 데이터를 저장하도록 구성된다. 대용량 저장 시스템(240)은 단일 저장 디바이스, 저장 디바이스 어레이, 또는 독립적인 저장 디바이스들 또는 저장 디바이스 어레이들의 컬렉션을 이용하여 구현될 수 있다. 각각의 저장 디바이스는 적어도 하나의 자기 하드 디스크 드라이브, 플래시 드라이브 또는 기술적으로 실현가능한 임의의 다른 비휘발성 저장 모듈을 포함할 수 있다. 비휘발성 데이터는 운영 체제 부트 이미지(244), 애플리케이션들(246), 애플리케이션 데이터(248) 및 로컬로 저장된 디지털 컨텐츠 파일들(242)을 포함할 수 있는데, 이에 한정되는 것은 아니다. 대용량 저장 시스템(240)은 상호접속부(220)를 통해 CPU(210)에 연결된다.
네트워크 인터페이스(218)는 통신 네트워크(150)를 통해 데이터 패킷들을 전송 및 수신하도록 구성된다. 일 실시예에서, 네트워크 인터페이스(218)는 잘 알려진 이더넷 표준을 이용하여 통신하도록 구성된다. 네트워크 인터페이스(218)는 상호접속부(220)를 통해 CPU(210)에 연결된다.
메모리 서브시스템(230)은 운영 체제(232) 및 애플리케이션들(234-238)을 위한 프로그래밍 명령어들 및 데이터를 저장한다. 운영 체제(232)는 메모리 서브시스템(230) 내에서의 실행을 위해 운영 체제(OS) 부트 이미지(244)로부터 로딩된다. 애플리케이션들(234-238)은 애플리케이션 이미지들(246)로부터 실행을 위해 로딩된다. 운영 체제(232)는 네트워크 인터페이스(218) 및 대용량 저장 시스템(240)을 포함하는 하드웨어 디바이스들을 관리하는 기능과 같은 시스템 관리 기능들을 수행한다. 운영 체제(232)는 또한 애플리케이션들(234-238)을 위한 런타임 모델을 제공한다. 본 기술분야의 숙련된 자들은 본 기술분야에 알려져 있는 다양한 운영 체제 및 런타임 모델들이 컨텐츠 서버 시스템(200)에 통합되기에 적합하며, 또는 운영 체제(232)를 위한 예시적인 모델의 역할을 할 수 있음을 알아차릴 것이다.
파일 서버 애플리케이션(234)은 도 1의 파일 서버들(130)에 대하여 앞에서 설명된 바와 같이 파일 다운로드 기능들을 수행하도록 구성된다. 시간 서버 애플리케이션(236)은 시간 서버(132)에 대하여 앞에서 설명된 바와 같이 시간 서버 기능들을 수행하도록 구성된다. 디렉토리 서버 애플리케이션(238)은 디렉토리 서버(134)에 대하여 앞에서 설명된 바와 같이 디렉토리 서버 기능들을 수행하도록 구성된다. 본 기술분야의 숙련된 자들은 애플리케이션들(234-238)의 하나 이상의 인스턴스 중 임의의 하나 또는 그들의 컬렉션이 하나 이상의 하드웨어 또는 가상 컴퓨터 시스템들의 임의의 컬렉션 상에서 실행되도록 구성될 수 있음을 알아차릴 것이다. 또한, 컴퓨터 시스템들은 예를 들어 파일 서버(130)와 컨텐츠 플레이어(110) 간의 장거리 대역폭(long haul bandwidth) 요건들을 경감시키도록 지리적으로 분산될 수 있다. 컨텐츠 전달 네트워크(CDN)는 다양한 다운로드 수요 요건들을 만족시키기 위해 스케일가능한 다운로드 대역폭 용량을 제공할 수 있는 복수의 파일 서버(130) 인스턴스들을 포함하도록 구현 및 구성될 수 있다.
도 3은 본 발명의 일 실시예에 따른 도 1의 컨텐츠 플레이어(110)의 더 상세한 도면이다. 컨텐츠 플레이어(110)는 중앙 프로세싱 유닛(CPU)(310), 그래픽 서브시스템(312), 오디오 서브시스템(314), 입력/출력(I/O) 디바이스 인터페이스(315), 네트워크 인터페이스(318), 상호접속부(320) 및 메모리 서브시스템(330)을 포함한다. 컨텐츠 플레이어(110)는 또한 대용량 저장 유닛(316)을 포함할 수 있는데, 이에 한정되는 것은 아니다.
CPU(310)는 메모리 서브시스템(330) 내에 저장된 프로그래밍 명령어들을 검색하고 실행하도록 구성된다. CPU(310)는, CPU(310)와 다른 서브시스템들 간에서의 프로그래밍 명령어 및 애플리케이션 데이터와 같은 데이터의 전송을 용이하게 하도록 구성된 상호접속부(320)를 통해 메모리 서브시스템(330)으로부터 프로그래밍 명령어들을 검색한다. 다른 서브시스템들은, 그래픽 서브시스템(312), 오디오 서브시스템(314), I/O 디바이스 인터페이스(315), 대용량 저장 유닛(316), 네트워크 인터페이스(318) 및 메모리 서브시스템(330)을 포함하되, 이에 한정되는 것은 아니다.
그래픽 서브시스템(312)은 그래픽 이미지들의 시퀀스와 같은 비디오 데이터의 프레임들을 생성하고, 비디오 데이터의 프레임들을 디스플레이 디바이스(360)에 전송하도록 구성된다. 그래픽 서브시스템(312)은 상호접속부(320)를 통해 CPU(310)에 연결된다. 일 실시예에서, 그래픽 서브시스템(312)은 CPU(310)와 함께 집적 회로 내에 임베드된다. 디스플레이 디바이스(360)는 디스플레이할 이미지를 생성하기 위한, 기술적으로 실현가능한 임의의 수단을 포함할 수 있다. 예를 들어, 디스플레이 디바이스(360)는 액정 디스플레이(LCD) 기술, 음극선 기술 및 발광 다이오드(LED) 디스플레이 기술(유기 또는 무기)을 이용하여 비디오 데이터 프레임의 시각적 표현을 만들어낼 수 있다.
오디오 서브시스템(314)은 디지털 오디오 스트림에 대응하는 하나 이상의 전기 오디오 신호를 생성하도록 구성된다. 예를 들어, 오디오 서브시스템(314)은 디지털 오디오 스트림을 포함하는 이진 디지털 값들의 시퀀스를 수신할 수 있고, 이진 디지털 값들에 대응하는 하나 이상의 아날로그 전기 오디오 신호를 생성할 수 있다. 오디오 디바이스(362)는 전기 오디오 신호에 응답하여 음향 출력을 생성하도록 구성된 스피커 또는 이어폰을 포함한다. 대안적인 실시예들에서, 디스플레이 디바이스(360)는 단일 유닛 내에 오디오 디바이스(362)를 포함할 수 있다. 텔레비전은 디스플레이 디바이스(360)와 같은 디스플레이 디바이스, 및 오디오 디바이스(362)와 같은 오디오 디바이스 둘 다를 포함하는, 본 기술분야에 알려진 디바이스의 일례이다.
입력/출력(I/O) 디바이스 인터페이스(315)는 사용자 I/O 디바이스들(364)로부터 입력 데이터를 수신하고, 상호접속부(320)를 통해 CPU(310)에 입력 데이터를 전송하도록 구성된다. 예를 들어, 사용자 I/O 디바이스들(364)은 하나 이상의 버튼, 키보드 및 마우스, 터치 스크린, 또는 임의의 다른 포인팅 디바이스를 포함할 수 있다. 사용자 I/O 디바이스들(364)은 또한 발광 다이오드, 액정 디스플레이 인디케이터 등과 같은 인디케이터 디바이스들을 포함할 수 있다.
대용량 저장 유닛(316)은 비휘발성 데이터를 저장하도록 구성된다. 대용량 저장 유닛(316)은 단일 저장 디바이스 또는 저장 디바이스들의 어레이를 이용하여 구현될 수 있다. 각각의 저장 디바이스는 자기 하드 디스크 드라이브, 플래시 드라이브, 또는 기술적으로 실현가능한 임의의 다른 비휘발성 저장 디바이스를 포함할 수 있다. 비휘발성 데이터는 운영 체제의 부트 이미지, 애플리케이션, 애플리케이션 데이터, 및 로컬로 저장된 디지털 컨텐츠 파일을 포함할 수 있는데, 이에 한정되는 것은 아니다. 대용량 저장 유닛(316)은 상호접속부(320)를 통해 CPU(310)에 연결된다. 네트워크 인터페이스(318)는 통신 네트워크(150)를 통해 데이터 패킷을 전송하고 수신하도록 구성된다. 일 실시예에서, 네트워크 인터페이스(318)는 공지된 이더넷 표준을 이용하여 통신하도록 구성된다. 네트워크 인터페이스(318)는 상호접속부(320)를 통해 CPU(310)에 연결된다.
메모리 서브시스템(330)은 운영 체제(332), 및 재생 애플리케이션(336)과 같은 애플리케이션들을 포함하는 프로그래밍 명령어 및 데이터를 포함한다. 운영 체제(332)는 네트워크 인터페이스(318), 대용량 저장 유닛(316), I/O 디바이스 인터페이스(315), 오디오 서브시스템(314) 및 그래픽 서브시스템(312)을 포함하는 하드웨어 디바이스들을 관리하는 기능과 같은 시스템 관리 기능들을 수행한다. 운영 체제(332)는 또한 사용자 인터페이스(334), 재생 애플리케이션(336), 및 시간 동기화 클라이언트(338)를 위한 런타임 모델을 제공한다. 사용자 인터페이스(334)는 컨텐츠 플레이어(110)와의 사용자 상호작용을 위해 윈도우 및 오브젝트 메타포(window and object metaphor)와 같은 특정 구조를 제공한다. 본 기술분야의 숙련된 자들은 본 기술분야에 알려진 다양한 운영 체제 및 런타임 모델이 컨텐츠 플레이어(110)에 통합되기에 적합하며, 또는 운영 체제(332)를 위한 예시적인 모델의 역할을 할 수 있음을 알 것이다.
재생 애플리케이션(336)은 네트워크 인터페이스(318)를 통해 하나 이상의 파일 서버(130)로부터 도 2의 디지털 컨텐츠 파일들(242)과 같은 디지털 컨텐츠 파일들을 검색하고, 디스플레이 디바이스(360) 및 오디오 디바이스(362)에 디지털 컨텐츠 파일들을 재생하도록 구성된다. 재생 애플리케이션(336)은 디렉토리 서버(134)로부터 타이틀 및 카탈로그 정보를 요청하고, 이 정보를 사용자 인터페이스(334)를 통해 사용자에게 제공한다. 사용자는 재생할 하나 이상의 타이틀을 선택하기 위해 사용자 인터페이스(334)와 상호작용할 수 있다. 일 실시예에서, 사용자 인터페이스(334)는 디스플레이 디바이스(360) 상에 그래픽 사용자 인터페이스를 생성하도록 구성된다. 사용자는 사용자 인터페이스(334)와 함께 사용자 I/O 디바이스들(364)을 조작하여, 재생할 하나 이상의 타이틀을 선택한다. 그러면, 재생 애플리케이션(336)은 재생을 위해 선택된 타이틀들에 연관된 디지털 컨텐츠 파일들을 검색한다. 재생 애플리케이션(336)은 하나 이상의 선택된 타이틀에 관련된 각각의 디지털 컨텐츠 파일의 다운로드를 위해, 디렉토리 서버(134)에 의해 제공되는 하나 이상의 파일 서버(130)의 리스트로부터 특정 파일 서버(130)를 선택할 수 있다. 디지털 컨텐츠 파일들은 다운로드되고 디코딩되어, 그래픽 서브시스템(312)을 통해 디스플레이 디바이스(360)에 재생되고, 오디오 서브시스템(314)을 통해 오디오 디바이스(362)에 재생된다.
재생 애플리케이션(336)은 하나 이상의 디지털 컨텐츠 파일을 위한 데이터를 다운로드하여, 네트워크 지터를 버퍼링할 수 있는 하나 이상의 탄성 버퍼(elasticity buffer)에 저장한다. 네트워크 지터를 버퍼링하는 것은 재생 품질을 저하시킬 수 있는 재생 지터를 방지하는 역할을 한다. 일 실시예에서, 오디오 버퍼(340), 비디오 버퍼(344) 및 이벤트 버퍼(350)는 그들 각자의 데이터 유형을 위한 탄성 버퍼로서 작용하도록 구성된다. 오디오 버퍼(340), 비디오 버퍼(344) 및 이벤트 버퍼(350)는 독립적인 버퍼들로서 구조화될 수 있다. 대안적으로, 오디오 버퍼(340), 비디오 버퍼(344) 및 이벤트 버퍼(350) 중 둘 이상은 하나의 단일화된 버퍼 구조로 결합된다.
오디오 버퍼(340)는 인코딩된 디지털 오디오 데이터를 저장하고, 데이터를 오디오 디코더(342)에 전송하며, 그 디코더는 데이터를 디코딩하여 디코딩된 디지털 오디오 스트림을 생성한다. 인코딩된 디지털 오디오 데이터는 전송을 위해 압축, 암호화 및 다르게 포맷될 수 있다. 디코딩된 디지털 오디오 스트림은 오디오 크기 값을 표현하는 디지털 값들을 포함한다. 디코딩된 디지털 오디오 스트림은 오디오 서브시스템(314)에 전송되고, 그것은 오디오 디바이스(362)를 구동하기 위해 이용되는 전기 오디오 출력 신호를 생성한다. 오디오 크기 값들은 순서대로 취하면, 오디오 디바이스(362)에 의해 생성될 원하는 음향 출력 신호를 정의한다. 일 실시예에서, 인코딩된 디지털 오디오 데이터는 또한 에러 정정 코드들을 포함한다.
비디오 버퍼(344)는 인코딩된 디지털 비디오 데이터를 저장하고, 디코딩된 디지털 비디오 스트림을 생성하기 위해 데이터를 디코딩하는 비디오 디코더(346)에 그 데이터를 전송한다. 인코딩된 디지털 비디오 데이터는 전송을 위해 압축되고 암호화되고 다르게 포맷될 수 있다. 디코딩된 디지털 비디오 스트림은 2차원 디지털 비디오 프레임들의 시퀀스를 포함한다. 일 실시예에서, 비디오 디코더(346)는 인코딩된 디지털 비디오 데이터를 디코딩하는 데에 도움을 주기 위해 그래픽 서브시스템(312)으로부터의 하드웨어 자원들을 이용한다. 디지털 비디오 프레임들은, 차례로 취해진 경우, 디스플레이 디바이스(360)에 의해 디스플레이될 원하는 비디오 시퀀스를 정의한다. 그래픽 서브시스템(312)은 디코딩된 디지털 비디오 스트림을 수신하고, 그에 응답하여 디스플레이 디바이스를 구동하기에 적합한 비디오 신호를 생성한다. 비디오 신호는 컴포넌트 비디오, RGB 비디오, HDMI 비디오 등과 같은 임의의 표준을 따를 수 있다. 일 실시예에서, 인코딩된 디지털 비디오 데이터는 또한 에러 정정 코드들을 포함한다. 소정의 실시예들에서, 디지털 비디오 데이터는 적절한 디스플레이 디바이스 상에서 편광 안경과 같은 입체 안경을 통해서 볼 때 3차원 모습을 만들어내는 입체 영상들을 포함한다. 소정의 대안적인 실시예들에서, 디지털 비디오 데이터는 본 발명의 교시에 따라 동기하여 렌더링, 애니메이션화 또는 다르게 실행될 수 있는 3차원 컨텐츠를 포함한다.
이벤트 버퍼(350)는 컨텐츠 재생 동안 컨텐츠 재생의 정상적인 흐름을 변경하도록 발생될 수 있는 이벤트들에 관련된 이벤트 데이터를 저장한다. 예를 들어, 이벤트 버퍼(350)는 재생 동안 디스플레이될 자막 텍스트의 비디오 오버레이들을 생성하기 위해 이용되는 자막 데이터를 저장할 수 있다. 이벤트 디코더(352)는 이벤트 데이터를 디코딩하고, 이벤트 데이터에 기초하여 동작들을 생성한다. 이벤트 디코더는 CPU(310) 상에서 수행되는 계산들을 통해, 또는 그래픽 서브시스템(312)에 의해 수행되는 계산들을 통해, 비디오 오버레이들을 생성할 수 있다. 일 실시예에서, 이벤트 디코더(352)는 또한 현재의 재생 동작을 재생, 일시정지 또는 다르게 변경하는 커맨드들과 같이, 선택된 타이틀의 재생에 관련된 이벤트들을 디코딩할 수 있다. 예를 들어, 이벤트 디코더(352)가 일시정지 커맨드를 수신한 경우, 이벤트 디코더(352)는 일시정지 커맨드에 연관된 타임스탬프에 의해 나타내어지는 소정 시간에 일시정지할 것을 재생 애플리케이션(336)에게 시그널링한다.
시간 동기화 클라이언트(338)는 시간 서버(132)에 의해 생성된 시간 기준 신호에 동기화된 로컬 시간 신호를 생성하도록 구성된다. 앞에서 설명된 바와 같이, 컨텐츠 배포 시스템(100) 내의 각각의 컨텐츠 플레이어(110)에 의해 생성되는 각각의 로컬 시간 신호는 상이한 임의의 컨텐츠 플레이어(110)에 의해 생성된 서로 다른 로컬 시간 신호와 명목상 동기화된다.
오디오 버퍼(340), 비디오 버퍼(344) 및 이벤트 버퍼(350)에 저장된 데이터는 시간 코드들로 표시된다. 시간 코드들은 비디오 및 오디오 재생을 동기화하고, 비디오 및 자막 재생을 동기화하기 위해 이용되는데, 이에 한정되는 것은 아니다. 시간 코드들은 시간 동기화 클라이언트(338)에 의해 생성되는 로컬 시간 신호에 대하여 해석된다. 일 실시예에서, 각각의 디지털 컨텐츠 파일 내의 소정의 시간 코드들은 타이틀에 대한 경과 시간에 대하여 포맷된다. 소정의 다른 시간 코드들은 각각의 컨텐츠 플레이어(110) 내에서 로컬 시간 신호로서 이용가능한 시간 기준 신호에 대하여 포맷된다. 타이틀에 대한 시작 시간은 로컬 시간 신호에 대하여 유지되고, 타이틀에 대한 경과 시간은 로컬 시간 신호에 대하여 설명된다. 경과 시간과 로컬 시간 신호 간의 관계를 유지하기 위해, 일시정지, 빨리 감기 또는 역방향 재생을 포함하는 재생이 추적된다.
일 실시예에서, 본 기술분야에서 "서버측 이벤트"라고 알려져 있는 메커니즘은 컨텐츠 플레이어들(110) 내에서 동작들을 트리거(trigger)하기 위해 이용된다. 서버측 이벤트는 언제라도 발생할 수 있으며, 서버측 이벤트 메커니즘의 종래의 구현은 컨텐츠 플레이어(110)가 서버측 이벤트들을 생성하도록 구성된 관련 서버를 폴링(polling)할 것을 요구하지 않는다. 대신에, 서버는 컨텐츠 플레이어(110)에 이벤트를 전송하고, 그것은 이벤트에 적절하게 응답할 수 있다.
예를 들어, 컨텐츠 플레이어(110-1)가 재생을 제어하고 있고(주 컨텐츠 플레이어임), 컨텐츠 플레이어(110-1)를 조작하는 사용자에 의해 일시정지가 발행된 경우, 컨텐츠 플레이어(110-1)는 일시정지 요청 커맨드를 컨텐츠 서버 시스템(200)에 전송하고, 그러면 그것은 서버측 이벤트로서 포맷된 일시정지 커맨드를 타임스탬프와 함께, 컨텐츠 플레이어(110-1)와 함께 재생 세션에 참여하고 있는 각각의 컨텐츠 플레이어(110)에 전송한다. 타임스탬프는 참여 중인 컨텐츠 플레이어들(110)에 대하여 재생의 일시정지가 언제 발생해야 하는지를, 각각의 개별 로컬 시간 신호에 대하여 나타낸다. 예를 들어, 타임스탬프는 일시정지가 요청되고 나서 수백 밀리초 이후로 스케줄링될 수 있다. 임박한 일시정지 커맨드를 스케줄링하는 서버측 이벤트를 수신하면, 각각의 참여 중인 컨텐츠 플레이어(110)는 일시정지 커맨드 내에 임베드된 타임스탬프 값에 기초하여, 서로 다른 컨텐츠 플레이어(110)와 동기하여 일시정지한다.
다른 예에서, 사용자는 컨텐츠 플레이어(110-1)에게 재생이 시작되어야 함을 나타낸다. 이에 응답하여, 컨텐츠 플레이어(110-1)는 재생 커맨드를 컨텐츠 서버 시스템(200)에 전송하고, 그것은 서버측 이벤트로서 포맷된, 타임 스탬핑된 재생 커맨드를 각각의 참여 중인 컨텐츠 플레이어(110)에 전송함으로써 재생을 개시한다. 그러면, 참여 중인 컨텐츠 플레이어들(110)은 재생 커맨드 내에 임베드된 타임스탬프에 기초하여 동시에 재생을 시작할 수 있다. 흔한 시나리오에서, 컨텐츠 플레이어들(110)은 재생 시작 훨씬 전에 버퍼링한다. 그러나, 미리 버퍼링하는 것은 참여 중인 컨텐츠 플레이어들(110) 간의 재생의 동기화된 시작에는 영향을 주지 않는다. 일 실시예에서, 오디오 버퍼(340) 및 비디오 버퍼(344)는 재생 전에 임의적으로 컨텐츠를 버퍼링하도록 허용되고, 재생이 중단된 때에도 버퍼링을 계속하도록 허용된다. 이벤트 버퍼(350)는 들어오는 서버측 이벤트들을 버퍼링하기 위해 이용되고, 관련 동작들은 가능한 한 빠르게 스케줄링된다. 동작들의 스케줄이 유지되고, 나중에 도착한 서버측 이벤트들은 이미 스케줄링된 이벤트들을 대체할 필요가 있는 동작들을 포함할 수 있다.
주어진 모델의 컨텐츠 플레이어(110)는 소정의 재생 기능들을 갖도록 구성된다. 예를 들어, 특정 모델의 컨텐츠 플레이어(110)는 소정 범위의 가능한 디스플레이 해상도 및 비디오 디코더 옵션, 소정 셀렉션의 오디오 디코더, 소정의 디지털 권한 관리 기능 등을 가질 수 있다. 특정 타이틀의 적절한 재생을 용이하게 하기 위해, 각각의 컨텐츠 플레이어(110)는 모델 유형 또는 기능 세트를 컨텐츠 서버(105)에 광고한다. 기술적으로 실현가능한 임의의 기술이 모델 유형 또는 기능 세트를 광고하기 위해 이용될 수 있다. 이에 응답하여, 컨텐트 서버(105)는 컨텐츠 플레이어(110)에 다운로드할 선택된 타이틀에 연관된 디지털 컨텐츠 파일들의 적절한 세트를 선택한다. 예를 들어, 컨텐츠 플레이어(110)가 1024 픽셀의 수평 화면 해상도를 갖는 경우, 1024 픽셀의 수평 화면 해상도를 위해 인코딩된 디지털 컨텐츠 파일(242)이 컨텐츠 플레이어(110)에 다운로드되도록 선택될 수 있다.
각각의 컨텐츠 플레이어 모델 또는 기능 세트와는 독립적으로, 각각의 컨텐츠 플레이어(110)는 통신 네트워크(150)를 통해 상이한 레벨의 대역폭 용량에의 액세스 권한을 가질 수 있다. 그러한 것으로서, 낮은 대역폭 용량을 갖는 하나의 컨텐츠 플레이어(110)는 훨씬 더 높은 대역폭 용량에의 액세스 권한을 갖는 동일 컨텐츠 플레이어(110)보다 낮은 비트 레이트로 인코딩된 디지털 컨텐츠 파일을 다운로드할 필요가 있을 수 있다.
도 4는 본 발명의 일 실시예에 따른 동기화된 재생 이벤트를 도시한다. 도시된 바와 같이, 타이밍 마커들(T1, T2 등)은 시간(410)에 대해 참조되고, 이것은 시간 기준 신호에 직접 대응하며, 따라서 각각의 동기화된 로컬 시간 신호에도 대응한다. 재생 이벤트(이 경우에서는 "재생" 또는 "일시정지"와 같은 사용자가 개시한 이벤트)는 컨텐츠 플레이어(420)에 의해 요청된다.
컨텐츠 서버(420)는 도 1의 임의의 컨텐츠 플레이어(110)이다. 재생 이벤트는 시간 T1에서 이벤트 요청(430)으로서 이벤트 서버(422)에 전송된다. 이벤트 요청(430)은 재생, 일시정지 등과 같은 특정 재생 커맨드를, 각각의 참여 중인 컨텐츠 플레이어(420, 424) 상에서 실행될 재생 커맨드를 위한 스케줄링된 이벤트 시간(450)과 번들링(bundling)한다. 일 실시예에서, 이벤트 서버(422)는 도 1의 컨텐츠 서버(105)에 연관된 서버이다. 예를 들어, 재생할 선택된 타이틀을 다운로드하도록 스케줄링된 특정 파일 서버(130)는 하나 이상의 관련된 재생 세션을 위한 이벤트 서버(422)의 역할을 할 수 있다. 대안적인 실시예에서, 이벤트 서버(422)는 별개의 구별되는 서버 머신으로서 구현될 수 있다.
이벤트 서버(422)는 시간 T2에서 이벤트 요청(430)을 수신한다. T2와 T1 간의 시간 차이는 대략적으로, 컨텐츠 플레이어(420)로부터 이벤트 서버(422)로 전송되는 데이터에 대한, 통신 네트워크(150)를 통한 네트워크 대기시간을 나타낸다. 이벤트 요청(430)에 응답하여, 이벤트 서버(422)는 시간 T3에서 이벤트 커맨드(432)를 전송하고, 시간 T4에서 이벤트 커맨드(434)를 전송한다. 이벤트 커맨드들(432, 434)은 특정 재생 커맨드 및 스케줄링된 이벤트 시간(450) 둘 다를 포함한다. 컨텐츠 플레이어(420)는 스케줄링된 이벤트 시간(450)인 T7 훨씬 전의 시간 T5에서 이벤트 커맨드(434)를 수신한다. 컨텐츠 플레이어(424)는 역시 T7 훨씬 전의 시간 T6에서 이벤트 커맨드(432)를 수신한다. T5와 T3 간의 시간 차이는 대략적으로, 이벤트 서버(422)로부터 컨텐츠 플레이어(420)로 전송되는 데이터에 대한, 통신 네트워크(150)를 통한 네트워크 대기시간을 나타낸다. 마찬가지로, T6와 T4 간의 차이는 이벤트 서버(422)로부터 컨텐츠 플레이어(420)로 전송되는 데이터에 대한 네트워크 대기시간을 나타낸다. 각각의 대기시간(T6-T4 및 T5-T3)은 서로 다를 수 있으므로, T7은 어느 것이든 가장 긴 대기시간보다 나중으로 스케줄링되어야 한다. 컨텐츠 플레이어들(420 및 422)은 둘 다 동기화된 로컬 시간 신호를 유지하므로, 이벤트 커맨드들(432, 434)은 둘 다 이벤트 커맨드들을 위한 스케줄링된 이벤트 시간(450)인 T7에서 실행될 것이다.
위에서 설명된 것과 같은 사용자가 개시한 이벤트들에 더하여, 타이틀의 재생에 관련된 다른 이벤트들도 컨텐츠 플레이어들(420, 424)에 의해 스케줄링되고 실행될 수 있다. 예를 들어, 순차적인 비디오, 오디오 및 자막 세그먼트들의 재생이 컨텐츠 플레이어들(420, 424) 상에서의 동기화된 재생을 위해 스케줄링될 수 있다. 일 실시예에서, 특정 디지털 컨텐츠 파일을 위한 시작 시간은 시간 기준 신호에 대하여 결정되는 한편, 디지털 컨텐츠의 재생은 디지털 컨텐츠 파일 내의 상대적인 타임 스탬프들에 기초한다. 동기화된 재생 경험을 유지하기 위해, 재생을 시작 또는 중단하거나 상이한 속도들로 재생하는 것과 같은 동작들은 시간 기준 신호에 대하여 설명된다.
본 기술분야의 숙련된 자는 2개의 컨텐츠 플레이어(420, 424)와 관련하여 위에서 설명된 동기화된 재생이 본 발명의 범위를 벗어나지 않고서 임의의 많은 개수의 컨텐츠 플레이어를 포함하도록 쉽게 일반화될 수 있음을 알 것이다.
도 5는 본 발명의 일 실시예에 따라 동기화된 재생을 수행하기 위한 방법 단계들(500)의 흐름도이다. 방법 단계들이 도 1-3의 시스템과 함께 설명되지만, 본 기술분야의 숙련된 자들은 방법 단계들을 임의의 순서로 수행하도록 구성된 임의의 시스템이 본 발명의 범위 내에 포함된다는 것을 이해할 것이다.
도 1에 설명된 바와 같이, 컨텐츠 플레이어들(110)은 특정 타이틀을 동기하여 재생하도록 구성될 수 있다. 타이틀은 도 2의 하나 이상의 연관된 디지털 컨텐츠 파일(242)을 포함한다. 특정 타이틀에 연관된 디지털 컨텐츠 파일들(242)은 인코딩, 포맷, 언어, 해상도, 비트 레이트 또는 기술적으로 구별되는 임의의 다른 인자에 기초하여 달라질 수 있다. 재생 전에, 컨텐츠 플레이어들(110) 각각은 컨텐츠 플레이어(110)의 개별 재생 특성에 기초하여, 다운로드 및 재생에 적절한 컨텐츠 파일(242)에 지향된다. 방법 단계들(500)은 컨텐츠 플레이어들(110) 각각에 의해 독립적으로 수행되며, 컨텐츠 플레이어들(110) 간에서 재생을 동기화하는 이로운 효과를 갖는다. 중요한 것은, 임의의 재생 특성 및 선호를 갖는 다양한 컨텐츠 플레이어들에 걸쳐서 동기화된 재생이 수행될 수 있다는 것이다.
방법은 도 3의 재생 애플리케이션(336)이, 시간 동기화 클라이언트(338)가 컨텐츠 플레이어(110) 내의 로컬 시간 신호를 시간 서버(132)에 의해 생성된 시간 기준 신호에 동기화할 것을 기다리는 단계(510)에서 시작한다. 로컬 시간 신호가 시간 서버(132)에 동기화되고 나면, 동기화된 재생은 컨텐츠 플레이어(110)에서 개시할 수 있다.
단계(512)에서, 컨텐츠 플레이어(110)는 컨텐츠 플레이어(110)를 위한 재생 특성을 컨텐츠 서버(105)에 전송한다. 재생 특성은 제품 모델, 이용가능한 디스플레이 해상도, 지원되는 비디오 및 오디오 포맷, 선호되는 오디오 트랙 언어, 자막 선호를 포함할 수 있는데, 이에 한정되는 것은 아니다. 단계(514)에서, 컨텐츠 플레이어(110)는 세션 정보를 컨텐츠 서버(105)에 전송한다. 세션 정보는 컨텐츠 플레이어(110)를 특정한 동기화된 재생 세션에 연계시킨다. 세션 정보는 특정 사용자 계정 이름, 세션 식별 코드, 또는 주어진 컨텐츠 플레이어(110)를 동기화된 재생 세션에 연관시키는, 기술적으로 실현가능한 임의의 다른 세션 식별자일 수 있다. 재생 세션은 특정 타이틀을 그 타이틀의 재생을 관리하는 관련 서버측 이벤트들에 연관시킨다. 방법 단계들(500)을 수행하는 각각의 컨텐츠 플레이어(110)는 컨텐츠 플레이어를 위한 재생 특성에 기초하여 특정 타이틀에 연관된 상이한 디지털 컨텐츠 파일(242)에 지향될 수 있다. 재생을 관리하는 서버측 이벤트들은 동기화된 재생 세션에 연계된 모든 컨텐츠 플레이어들(110)에 전송된다.
일 실시예에서, 컨텐츠 서버(105) 내의 디렉토리 서버(134)는 각각의 컨텐츠 플레이어(110)를 위한 특정 디지털 컨텐츠 파일(242)을 선택한다. 대안적인 실시예에서, 각각의 파일 서버(130)는 파일 서버(130)와 통신을 구축한 각각의 컨텐츠 플레이어(110)에 대한 특정 디지털 컨텐츠 파일(242)을 선택한다.
단계(516)에서, 서버측 이벤트가 수신되지 않은 경우, 방법은 단계(516)로 되돌아간다. 일 실시예에서, 단계(516)는 재생 애플리케이션(336)에 의해 실행되는 블로킹 판독(blocking read)으로서 구현될 수 있다. 블로킹 판독은 재생 애플리케이션(336)이 도 4의 이벤트 서버(422)와 같은 이벤트 서버로부터 발원한 들어오는 이벤트를 기다리게 할 수 있다. 그렇지 않고 서버측 이벤트가 수신되지 않으면, 방법은 단계(520)로 진행한다.
단계(520)에서, 새로운 디지털 컨텐츠가 재생을 위해 지정된 경우, 방법은 단계(522)로 진행한다. 예를 들어, 주어진 타이틀을 위한 재생의 시작에서, 디지털 컨텐츠 파일(242) 내의 데이터의 하나 이상의 세그먼트는 재생할 새로운 디지털 컨텐츠를 포함할 수 있다. 타이틀의 재생 동안, 새로운 컨텐츠가 동기화된 재생을 위해 지정될 수 있고, 그러한 추가의 컨텐츠는 디지털 컨텐츠 파일(242)의 세그먼트들, 광고 컨텐츠, 또는 타이틀에 관련된 정보 자료를 포함할 수 있다. 단계(522)에서, 재생 애플리케이션(336)은 파일 서버(130)로부터 재생할 새로운 디지털 컨텐츠를 다운로드하고 버퍼링하는 프로세스를 개시한다.
단계(524)에서, 재생 이벤트는 실행을 위해 스케줄링되고, 이에 의해 실행 시간은 동기화된 로컬 시간 신호에 대해 참조된다. 새로운 디지털 컨텐츠의 재생은 로컬 시간 신호에 대해 참조되는 스케줄링된 실행 시간에서 개시된다. 디지털 컨텐츠의 재생 및 관련 이벤트들의 실행은 지정된 시간에서 실행 또는 재생되도록 스케줄러에 의해 트리거되는 하나 이상의 스레드에 의해 수행된다. 구체적으로, 재생 애플리케이션(336)은 복수의 스레드를 포함할 수 있는데, 하나 이상의 스레드는 이벤트 및 실행을 스케줄링하도록 할당되고, 하나 이상의 스레드는 디지털 컨텐츠를 다운로드하고 버퍼링하도록 할당되며, 하나 이상의 스레드는 디지털 컨텐츠를 재생하도록 할당된다.
단계(530)에서, 디지털 컨텐츠의 각각의 상이한 항목이 결말까지 재생되지 않은 경우, 방법은 단계(516)로 되돌아간다. 그러나, 디지털 컨텐츠가 결말까지 재생된 경우, 방법은 단계(590)에서 종료된다.
단계(520)로 되돌아가면, 다운로드할 새로운 디지털 컨텐츠가 지정되지 않으면, 방법은 단계(524)로 진행한다.
본 발명의 일 실시예는 컨텐츠 플레이어(110) 내에 상주하는 적어도 하나의 컴퓨터 판독가능한 저장 매체 상에 저장된 프로그램 제품으로서 구현된다. 그러한 실시예에서, 컨텐츠 플레이어(110)는 "스마트폰"과 같은 개인용 컴퓨터 또는 모바일 컴퓨팅 플랫폼과 같은 범용 컴퓨팅 플랫폼, 또는 셋탑 박스와 같은 임베드된 컴퓨터 플랫폼을 포함한다. 저장된 프로그램 제품은 도 5의 방법이 컨텐츠 플레이어(110)에 의해 구현될 수 있게 한다. 대안적인 실시예에서, 프로그램 제품은 컴퓨터 디바이스 내의 메모리에 다운로드된다. 예를 들어, 다운로드된 프로그램 제품은 인터넷 웹 사이트 내에 임베드된 실행가능한 명령어들일 수 있다. 그러한 실시예에서, 컨텐츠 플레이어(110)는 컴퓨터 디바이스를 포함한다. 다운로드된 프로그램 제품은 도 5의 방법이 컨텐츠 플레이어(110)에 의해 구현될 수 있게 한다.
요약하면, 동기화된 디지털 컨텐츠 재생을 구현하기 위한 기술이 개시된다. 기술은 대응하는 로컬 시간 신호를 시간 기준 신호에 각각 동기화시키는 복수의 컨텐츠 플레이어를 수반한다. 그러면, 로컬 시간 신호들은 비디오, 오디오, 자막, 및 비디오 및 오디오 컨텐츠에 시간상 상호관련될 수 있는 임의의 다른 관련 컨텐츠를 포함할 수 있는 디지털 컨텐츠의 재생에 관련된 이벤트들을 스케줄링하고 실행하기 위한 로컬 시간 기준으로서 이용된다. 서버측 이벤트는 재생할 디지털 컨텐츠를 다운로드하고 버퍼링하고 스케줄링함으로써 각각 응답하는 복수의 컨텐츠 플레이어에 전송된다. 디지털 컨텐츠 재생의 스케줄링은 동기화된 로컬 시간 신호들에 대한 것이므로, 디지털 컨텐츠의 재생은 복수의 컨텐츠 플레이어에 대해 동기화된다.
개시된 시스템 및 방법의 한가지 이점은 복수의 사용자가 그들의 개별 보기 선호에 기초하여 공통의 보기 경험을 공유할 수 있게 된다는 것이다. 이것은 모든 사용자로 하여금 강제로 하나의 공통적인 세트의 보기 선호를 공유하게 하는 종래 기술의 해법과는 대조적이다.
상기는 본 발명의 실시예들에 관한 것이지만, 본 발명의 다른 추가 실시예들도 기본적인 범위를 벗어나지 않고서 생각해낼 수 있다. 예를 들어, 본 발명의 양태들은 하드웨어 또는 소프트웨어, 또는 하드웨어와 소프트웨어의 조합으로 구현될 수 있다. 본 발명의 일 실시예는 컴퓨터 시스템과의 사용을 위해 프로그램 제품으로서 구현될 수 있다. 프로그램 제품의 프로그램(들)은 실시예들(여기에 설명된 방법들을 포함함)의 기능을 정의하고, 다양한 컴퓨터 판독가능한 저장 매체 상에 포함될 수 있다. 예시적인 컴퓨터 판독가능한 저장 매체는 (ⅰ) 정보가 영구적으로 저장되는 기입불가능 저장 매체(예를 들어, CD-ROM 드라이브에 의해 판독가능한 CD-ROM 디스크, 플래시 메모리, ROM 칩 또는 임의의 유형의 고상 비휘발성 반도체 메모리와 같은, 컴퓨터 내의 판독 전용 메모리 디바이스들); 및 (ⅱ) 변경가능한 정보가 저장되는 기입가능 저장 매체(예를 들어, 하드디스크 드라이브 또는 디스켓 드라이브 내의 플로피 디스크, 또는 임의의 유형의 고상 랜덤 액세스 반도체 메모리)를 포함하지만, 그에 한정되지는 않는다. 그러한 컴퓨터 판독가능한 저장 매체는 본 발명의 기능들을 지시하는 명령어들을 포함할 때, 본 발명의 실시예들이다.
상기를 고려하여, 본 발명의 범위는 이하의 청구항들에 의해 결정된다.

Claims (21)

  1. 복수의 엔드포인트 디바이스에 걸쳐서 동기하여 디지털 컨텐츠 타이틀을 재생하기 위한 방법으로서,
    재생 세션 식별자를 컨텐츠 서버에 전송하는 단계 - 상기 재생 세션 식별자는 상기 디지털 컨텐츠 타이틀을 위한 고유 재생 세션에 연관됨 - ;
    재생 커맨드 및 상기 재생 커맨드를 실행하기 위한 지정된 시간을 포함하는 서버측 이벤트를 수신하는 단계; 및
    원격 시간 서버에 의해 생성된 시간 기준 신호에 동기화되어 있는 로컬 시간 신호에 기초하여 상기 지정된 시간에서의 실행을 위해 상기 재생 커맨드를 스케줄링하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서,
    상기 로컬 시간 신호는 상기 로컬 시간 신호를 생성한 로컬 시간 클라이언트와 상기 원격 시간 서버 사이에 설정된 시간 동기화 프로토콜을 통해 동기화되는 방법.
  3. 제2항에 있어서,
    상기 시간 동기화 프로토콜은 산업 표준 네트워크 시간 프로토콜을 포함하는 방법.
  4. 제1항에 있어서,
    하나 이상의 재생 특성을 상기 컨텐츠 서버에 전송하는 단계를 더 포함하는 방법.
  5. 제4항에 있어서,
    상기 하나 이상의 재생 특성은 제품 모델, 이용가능한 디스플레이 해상도, 지원되는 비디오 포맷, 지원되는 오디오 포맷, 자막 선호(subtitle preference), 및 선호되는 오디오 트랙 언어 중 적어도 하나를 포함하는 방법.
  6. 제4항에 있어서,
    상기 디지털 컨텐츠 타이틀은 복수의 디지털 컨텐츠 파일을 포함하고,
    상기 방법은 상기 하나 이상의 재생 특성에 기초하여 상기 복수의 디지털 컨텐츠 파일 내에 포함된 제1 디지털 컨텐츠 파일의 다운로드를 개시하는 단계를 더 포함하는 방법.
  7. 제6항에 있어서,
    상기 제1 디지털 컨텐츠 파일에 연관된 데이터를, 재생을 위해 로컬 버퍼 메모리 내에 저장하는 단계를 더 포함하는 방법.
  8. 제7항에 있어서,
    상기 제1 디지털 컨텐츠 파일의 재생은 상기 로컬 시간 신호에 동기화되는 방법.
  9. 제1항에 있어서,
    상기 로컬 시간 신호를 상기 시간 기준 신호에 동기화하는 단계를 더 포함하는 방법.
  10. 컴퓨터 판독가능한 저장 매체로서,
    프로세싱 유닛에 의해 실행될 때, 상기 프로세싱 유닛으로 하여금,
    재생 세션 식별자를 컨텐츠 서버에 전송하는 단계 - 상기 재생 세션 식별자는 상기 디지털 컨텐츠 타이틀을 위한 고유 재생 세션에 연관됨 - ;
    재생 커맨드 및 상기 재생 커맨드를 실행하기 위한 지정된 시간을 포함하는 서버측 이벤트를 수신하는 단계; 및
    원격 시간 서버에 의해 생성된 시간 기준 신호에 동기화되어 있는 로컬 시간 신호에 기초하여 상기 지정된 시간에서의 실행을 위해 상기 재생 커맨드를 스케줄링하는 단계
    를 수행함으로써 복수의 엔드포인트 디바이스에 걸쳐서 동기화된 디지털 컨텐츠 타이틀을 재생하게 하는 명령어들을 포함하는 컴퓨터 판독가능한 저장 매체.
  11. 제10항에 있어서,
    상기 로컬 시간 신호는 상기 로컬 시간 신호를 생성한 로컬 시간 클라이언트와 상기 원격 시간 서버 사이에 설정된 시간 동기화 프로토콜을 통해 동기화되는 컴퓨터 판독가능한 저장 매체.
  12. 제11항에 있어서,
    상기 시간 동기화 프로토콜은 산업 표준 네트워크 시간 프로토콜을 포함하는 컴퓨터 판독가능한 저장 매체.
  13. 제10항에 있어서,
    하나 이상의 재생 특성을 상기 컨텐츠 서버에 전송하는 단계를 더 포함하는 컴퓨터 판독가능한 저장 매체.
  14. 제13항에 있어서,
    상기 하나 이상의 재생 특성은 제품 모델, 이용가능한 디스플레이 해상도, 지원되는 비디오 포맷, 지원되는 오디오 포맷, 자막 선호, 및 선호되는 오디오 트랙 언어 중 적어도 하나를 포함하는 컴퓨터 판독가능한 저장 매체.
  15. 제13항에 있어서,
    상기 디지털 컨텐츠 타이틀은 복수의 디지털 컨텐츠 파일을 포함하고,
    상기 하나 이상의 재생 특성에 기초하여 상기 복수의 디지털 컨텐츠 파일 내에 포함된 제1 디지털 컨텐츠 파일의 다운로드를 개시하는 단계를 더 포함하는 컴퓨터 판독가능한 저장 매체.
  16. 제15항에 있어서,
    상기 제1 디지털 컨텐츠 파일에 연관된 데이터를, 재생을 위해 로컬 버퍼 메모리 내에 저장하는 단계를 더 포함하는 컴퓨터 판독가능한 저장 매체.
  17. 제16항에 있어서,
    상기 제1 디지털 컨텐츠 파일의 재생은 상기 로컬 시간 신호에 동기화되는 컴퓨터 판독가능한 저장 매체.
  18. 복수의 엔드포인트 디바이스에 걸쳐 동기화된 디지털 컨텐츠 타이틀을 재생하도록 구성된 컴퓨터 디바이스로서,
    프로세싱 유닛을 포함하고, 상기 프로세싱 유닛은,
    로컬 시간 신호를 원격 시간 서버에 의해 생성된 시간 기준 신호에 동기화하고,
    재생 세션 식별자를 컨텐츠 서버에 전송하고 - 상기 재생 세션 식별자는 상기 디지털 컨텐츠 타이틀을 위한 고유 재생 세션에 연관됨 - ,
    재생 커맨드 및 상기 재생 커맨드를 실행하기 위한 지정된 시간을 포함하는 서버측 이벤트를 수신하고,
    원격 시간 서버에 의해 생성된 시간 기준 신호에 동기화되어 있는 로컬 시간 신호에 기초하여 상기 지정된 시간에서의 실행을 위해 상기 재생 커맨드를 스케줄링하도록 구성되는 컴퓨터 디바이스.
  19. 제18항에 있어서,
    상기 프로세싱 유닛에 의해 실행될 때, 상기 프로세싱 유닛으로 하여금 상기 로컬 시간 신호를 동기화하고, 상기 재생 세션 식별자를 전송하고, 상기 서버측 이벤트를 수신하고, 상기 재생 커맨드를 실행을 위해 스케줄링하게 하는 명령어들을 포함하는 메모리를 더 포함하는 컴퓨터 디바이스.
  20. 제18항에 있어서,
    상기 프로세싱 유닛은 또한, 하나 이상의 재생 특성을 상기 컨텐츠 서버에 전송하도록 구성되는 컴퓨터 디바이스.
  21. 제20항에 있어서,
    상기 디지털 컨텐츠 타이틀은 복수의 디지털 컨텐츠 파일을 포함하고,
    상기 프로세싱 유닛은 또한, 상기 하나 이상의 재생 특성에 기초하여 상기 복수의 디지털 컨텐츠 파일 내에 포함된 제1 디지털 컨텐츠 파일의 다운로드를 개시하도록 구성되는 컴퓨터 디바이스.
KR1020137006434A 2010-08-13 2011-08-11 스트리밍 디지털 컨텐츠의 동기화된 재생을 위한 시스템 및 방법 KR101454136B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/856,466 2010-08-13
US12/856,466 US10712771B2 (en) 2010-08-13 2010-08-13 System and method for synchronized playback of streaming digital content
PCT/US2011/047483 WO2012021747A1 (en) 2010-08-13 2011-08-11 A system and method for synchronized playback of streaming digital content

Publications (2)

Publication Number Publication Date
KR20130061171A true KR20130061171A (ko) 2013-06-10
KR101454136B1 KR101454136B1 (ko) 2014-10-22

Family

ID=45565581

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137006434A KR101454136B1 (ko) 2010-08-13 2011-08-11 스트리밍 디지털 컨텐츠의 동기화된 재생을 위한 시스템 및 방법

Country Status (9)

Country Link
US (1) US10712771B2 (ko)
EP (1) EP2603986B1 (ko)
JP (2) JP2013536639A (ko)
KR (1) KR101454136B1 (ko)
CN (1) CN103190092B (ko)
AU (1) AU2011289331B2 (ko)
CA (1) CA2808309C (ko)
DK (1) DK2603986T3 (ko)
WO (1) WO2012021747A1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160023437A (ko) * 2014-08-22 2016-03-03 주식회사 문화방송 시간 동기화 시스템 및 그 방법
KR20180117029A (ko) * 2016-02-29 2018-10-26 로비 가이드스, 인크. 복수의 디바이스 상에서의 미디어 자산 재생을 동기화하는 시스템 및 방법
CN110784747A (zh) * 2019-12-06 2020-02-11 成都新潮传媒集团有限公司 一种广告机的同步播放方法
KR20200110459A (ko) * 2018-04-24 2020-09-23 구글 엘엘씨 다수의 디바이스에서 동기화된 미디어 콘텐츠 재생 동안 품질 레벨을 조절하기 위한 방법들, 시스템들 및 매체들

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9420259B2 (en) 2011-05-24 2016-08-16 Comcast Cable Communications, Llc Dynamic distribution of three-dimensional content
WO2013046571A1 (ja) * 2011-09-26 2013-04-04 日本電気株式会社 コンテンツ同期システム、コンテンツ同期制御装置およびコンテンツ再生装置
US20150100993A1 (en) * 2012-03-13 2015-04-09 Lg Electronics Inc. Seamless playback method using bookmark, and apparatus and system therefor
US9363304B2 (en) * 2012-06-06 2016-06-07 Google Inc. Synchronizing action execution across networked nodes using relative time
FR2992511A1 (fr) * 2012-06-26 2013-12-27 France Telecom Lecture synchrone d'un contenu par une pluralite de terminaux
US9727321B2 (en) * 2012-10-11 2017-08-08 Netflix, Inc. System and method for managing playback of streaming digital content
US20140119554A1 (en) * 2012-10-25 2014-05-01 Elwha Llc Methods and systems for non-volatile memory in wireless headsets
CN104937919A (zh) * 2012-11-16 2015-09-23 黑焰研究公司 基于公共事件的多设备媒体播放
US20140214961A1 (en) * 2013-01-31 2014-07-31 Lance Gordon Douglas Methods and systems for continuous compilation of non-interactive video with supplemental renderings of interactive content to produce real-time, personalized video for individuals and/or groups in a shared experience
US9380099B2 (en) * 2013-05-31 2016-06-28 Sonic Ip, Inc. Synchronizing multiple over the top streaming clients
US9100687B2 (en) 2013-05-31 2015-08-04 Sonic Ip, Inc. Playback synchronization across playback devices
KR20150033827A (ko) * 2013-09-24 2015-04-02 삼성전자주식회사 영상표시장치, 서버 및 그 동작방법
US20150113403A1 (en) * 2013-10-20 2015-04-23 Eric A. Harvey Simultaneously presenting media on devices
US9210204B2 (en) 2013-10-31 2015-12-08 At&T Intellectual Property I, Lp Synchronizing media presentation at multiple devices
WO2015078005A1 (zh) * 2013-11-29 2015-06-04 华为终端有限公司 获取网络资源的方法和装置
CN105981393B (zh) 2014-02-10 2019-08-09 Lg 电子株式会社 发送广播信号的装置、接收广播信号的装置、发送广播信号的方法以及接收广播信号的方法
US20170048291A1 (en) * 2014-02-14 2017-02-16 Telefonaktiebolaget Lm Ericsson (Publ) Synchronising playing of streaming content on plural streaming clients
TWI545926B (zh) * 2014-04-18 2016-08-11 致伸科技股份有限公司 時間同步方法及系統
US20150334471A1 (en) * 2014-05-15 2015-11-19 Echostar Technologies L.L.C. Multiple simultaneous audio video data decoding
US10979279B2 (en) * 2014-07-03 2021-04-13 International Business Machines Corporation Clock synchronization in cloud computing
US9635424B2 (en) 2014-07-18 2017-04-25 Sony Interactive Entertainment America Llc Virtual high definition video player
IL240927A (en) 2015-01-01 2017-11-30 Muvix Media Networks Ltd Distributed audio and video synchronization and playback methods and tools with the help of an audio and video administrator
EP3243130B1 (en) * 2015-01-06 2019-08-14 Sonic IP, Inc. Systems and methods for encoding and sharing content between devices
CN106162236B (zh) * 2015-03-23 2019-07-19 腾讯科技(深圳)有限公司 一种分享视频的方法及装置
CN106412646B (zh) * 2015-07-27 2020-06-02 中兴通讯股份有限公司 一种实现同步播放的方法和装置
US10628016B2 (en) 2015-08-27 2020-04-21 Google Llc Cross-application content player
US10609431B2 (en) 2015-11-17 2020-03-31 Livestreaming Sweden Ab Video distribution synchronization
NL2016028B1 (en) * 2015-12-23 2017-07-05 Buddybox Holding B V Sound unit, such as a loudspeaker box giving an enhanced experience.
US10079884B2 (en) * 2016-03-14 2018-09-18 Adobe Systems Incorporated Streaming digital content synchronization
CN109952588B (zh) * 2016-09-12 2023-07-21 索诺信标股份有限公司 唯一音频标识符同步系统
US20180296916A1 (en) * 2017-04-14 2018-10-18 Penrose Studios, Inc. System and method for spatial and immersive computing
WO2018200184A1 (en) * 2017-04-24 2018-11-01 PhenixP2P Inc. Method and apparatus for synchronizing applications' consumption of remote data
JP6844401B2 (ja) * 2017-04-26 2021-03-17 ティアック株式会社 情報処理装置、オーディオ装置及びプログラム
US11509726B2 (en) 2017-10-20 2022-11-22 Apple Inc. Encapsulating and synchronizing state interactions between devices
EP3509312B1 (en) * 2018-01-08 2023-06-07 MySyncster Holding OÜ System for real-time synchronization
US11457266B2 (en) 2019-07-18 2022-09-27 Realtek Semiconductor Corporation Method for synchronizing audio and video and related apparatus
US20210250195A1 (en) * 2020-02-07 2021-08-12 Microsoft Technology Licensing, Llc Latency compensation for synchronously sharing video content within web conferencing sessions
US20230362543A1 (en) * 2020-09-14 2023-11-09 Lg Electronics Inc. Wireless audio transmission device, wireless sound output device, and system having same

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7240094B2 (en) * 1997-07-03 2007-07-03 Centra Software Inc. Method and system for synchronizing and serving multimedia in a distributed network
WO2001018688A2 (en) * 1999-09-10 2001-03-15 Avantgo, Inc. System, method, and computer program product for interactive interfacing with mobile devices
JP3573203B2 (ja) 2001-01-22 2004-10-06 日本電気株式会社 情報再生方法及び情報再生システム。
JP3777327B2 (ja) * 2001-12-03 2006-05-24 日本電信電話株式会社 ストリーミング配信制御方法及び配信サーバ並びにクライアント端末
JP4189627B2 (ja) 2002-04-24 2008-12-03 富士フイルム株式会社 画像サーバ並びに画像表示システム
EP1398931B1 (en) 2002-09-06 2006-05-03 Sony Deutschland GmbH Synchronous play-out of media data packets
JP2004266576A (ja) 2003-02-28 2004-09-24 Casio Comput Co Ltd メディアデータ記憶装置、およびメディアデータ記憶処理プログラム
US7627808B2 (en) * 2003-06-13 2009-12-01 Microsoft Corporation Computer media synchronization player
US8321534B1 (en) * 2003-10-15 2012-11-27 Radix Holdings, Llc System and method for synchronization based on preferences
US20070110074A1 (en) * 2004-06-04 2007-05-17 Bob Bradley System and Method for Synchronizing Media Presentation at Multiple Recipients
SE0402876D0 (sv) * 2004-11-25 2004-11-25 Ericsson Telefon Ab L M TV-like standards-compliant unicast streaming over IP
US7434154B2 (en) * 2005-01-07 2008-10-07 Dell Products L.P. Systems and methods for synchronizing media rendering
US7876789B2 (en) * 2005-06-23 2011-01-25 Telefonaktiebolaget L M Ericsson (Publ) Method for synchronizing the presentation of media streams in a mobile communication system and terminal for transmitting media streams
JP4698302B2 (ja) * 2005-06-30 2011-06-08 株式会社リコー 情報再生装置、画像処理装置および情報再生プログラム
JP4796377B2 (ja) * 2005-11-07 2011-10-19 日本放送協会 コンテンツ提供サーバ及びコンテンツ提供プログラム
US7953118B2 (en) * 2006-12-08 2011-05-31 Microsoft Corporation Synchronizing media streams across multiple devices
US7788395B2 (en) 2007-02-14 2010-08-31 Microsoft Corporation Adaptive media playback
JP5151211B2 (ja) 2007-03-30 2013-02-27 ソニー株式会社 多画面同期再生システム、表示制御端末、多画面同期再生方法、及びプログラム
US7724780B2 (en) * 2007-04-19 2010-05-25 Cisco Technology, Ink. Synchronization of one or more source RTP streams at multiple receiver destinations
US8320410B2 (en) 2007-05-23 2012-11-27 Broadcom Corporation Synchronization of media data streams with separate sinks using a relay
WO2008144842A1 (en) 2007-05-31 2008-12-04 Avega Systems Pty Ltd Systems and methods for synchronization in a networked environment
WO2009120301A2 (en) * 2008-03-25 2009-10-01 Square Products Corporation System and method for simultaneous media presentation
WO2010023828A1 (ja) * 2008-08-29 2010-03-04 株式会社ソニー・コンピュータエンタテインメント 情報処理システムおよび情報処理装置
US8776144B2 (en) 2008-10-16 2014-07-08 Industrial Technology Research Institute Mobile TV system and method for synchronizing the rendering of streaming services thereof
US8775665B2 (en) 2009-02-09 2014-07-08 Citrix Systems, Inc. Method for controlling download rate of real-time streaming as needed by media player

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160023437A (ko) * 2014-08-22 2016-03-03 주식회사 문화방송 시간 동기화 시스템 및 그 방법
KR20180117029A (ko) * 2016-02-29 2018-10-26 로비 가이드스, 인크. 복수의 디바이스 상에서의 미디어 자산 재생을 동기화하는 시스템 및 방법
KR20200110459A (ko) * 2018-04-24 2020-09-23 구글 엘엘씨 다수의 디바이스에서 동기화된 미디어 콘텐츠 재생 동안 품질 레벨을 조절하기 위한 방법들, 시스템들 및 매체들
US11303947B2 (en) 2018-04-24 2022-04-12 Google Llc Methods, systems, and media for adjusting quality level during synchronized media content playback on multiple devices
US11695974B2 (en) 2018-04-24 2023-07-04 Google Llc Methods, systems, and media for adjusting quality level during synchronized media content playback on multiple devices
CN110784747A (zh) * 2019-12-06 2020-02-11 成都新潮传媒集团有限公司 一种广告机的同步播放方法

Also Published As

Publication number Publication date
WO2012021747A1 (en) 2012-02-16
CA2808309C (en) 2016-07-12
AU2011289331A1 (en) 2013-04-04
DK2603986T3 (en) 2018-09-03
EP2603986A1 (en) 2013-06-19
AU2011289331B2 (en) 2015-07-30
US10712771B2 (en) 2020-07-14
KR101454136B1 (ko) 2014-10-22
EP2603986B1 (en) 2018-05-30
CA2808309A1 (en) 2012-02-16
JP6155305B2 (ja) 2017-06-28
US20120042047A1 (en) 2012-02-16
JP2013536639A (ja) 2013-09-19
EP2603986A4 (en) 2015-11-18
CN103190092A (zh) 2013-07-03
CN103190092B (zh) 2018-04-20
JP2015216679A (ja) 2015-12-03

Similar Documents

Publication Publication Date Title
KR101454136B1 (ko) 스트리밍 디지털 컨텐츠의 동기화된 재생을 위한 시스템 및 방법
JP6610555B2 (ja) 受信装置、送信装置、およびデータ処理方法
JP5917508B2 (ja) 休止された再生をプラットフォーム全体にわたって同期化する方法および装置
US20130067052A1 (en) User adaptive http stream manager and method for using same
WO2018183095A1 (en) Low-latency mobile device audiovisual streaming
US10638180B1 (en) Media timeline management
WO2016197865A1 (zh) 数据传输方法、装置和智能电视系统
CN113767639B (zh) 接收媒体数据的方法、装置和非易失性计算机可读介质
WO2023151332A1 (zh) 一种多媒体流处理方法、装置、设备、计算机可读存储介质及计算机程序产品
JP2014017741A (ja) コンテンツ送信装置、コンテンツ再生装置、コンテンツ配信システム、コンテンツ送信装置の制御方法、コンテンツ再生装置の制御方法、制御プログラムおよび記録媒体
US11962818B2 (en) Systems and methods for optimizing a set-top box to retrieve missed content
US11750859B2 (en) Methods and systems for separate delivery of segments of content items
KR20130040156A (ko) 콘텐츠 디스플레이 방법, 콘텐츠 동기화 방법, 방송 콘텐츠 디스플레이 방법 및 디스플레이 장치
WO2021049048A1 (ja) 映像提供システムおよびプログラム
CN112188256A (zh) 信息处理方法、信息提供方法、装置、电子设备及存储介质
US11856242B1 (en) Synchronization of content during live video stream
US11750860B2 (en) Methods and systems for separate delivery of segments of content items
JP7454951B2 (ja) コンテンツ配信装置、端末、およびプログラム
US11470362B1 (en) Providing audio data for a video frame
JPWO2019176590A1 (ja) 情報処理装置、情報処理装置およびプログラム
JP2005191942A (ja) ストリーミング配信方法、ストリーミング再生方法、ストリーミング配信装置、ストリーミング再生装置、及びストリーミング配信・再生システム

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20170929

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180928

Year of fee payment: 5