KR102268442B1 - 다수의 디바이스에서 동기화된 미디어 콘텐츠 재생 동안 품질 레벨을 조절하기 위한 방법들, 시스템들 및 매체들 - Google Patents

다수의 디바이스에서 동기화된 미디어 콘텐츠 재생 동안 품질 레벨을 조절하기 위한 방법들, 시스템들 및 매체들 Download PDF

Info

Publication number
KR102268442B1
KR102268442B1 KR1020207026334A KR20207026334A KR102268442B1 KR 102268442 B1 KR102268442 B1 KR 102268442B1 KR 1020207026334 A KR1020207026334 A KR 1020207026334A KR 20207026334 A KR20207026334 A KR 20207026334A KR 102268442 B1 KR102268442 B1 KR 102268442B1
Authority
KR
South Korea
Prior art keywords
media content
user device
content data
buffer
stored
Prior art date
Application number
KR1020207026334A
Other languages
English (en)
Other versions
KR20200110459A (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 KR20200110459A publication Critical patent/KR20200110459A/ko
Application granted granted Critical
Publication of KR102268442B1 publication Critical patent/KR102268442B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/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/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/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/23406Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving management of server-side video buffer
    • 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/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • H04N21/2387Stream processing in response to a playback request from an end-user, e.g. for trick-play
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2401Monitoring of the client buffer
    • 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/439Processing of audio elementary streams
    • H04N21/4392Processing of audio elementary streams involving audio buffer management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44004Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving video buffer management, e.g. video decoder buffer or video display buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/472End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
    • H04N21/47217End-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

Landscapes

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

Abstract

동기화된 미디어 콘텐츠 프리젠테이션 동안 품질 레벨을 조절하기 위한 방법들, 시스템들 및 매체들이 제공된다. 일부 실시예들에서, 방법은, 서버로부터 제1 사용자 디바이스로, 미디어 콘텐츠 아이템의 제1 스트림에 대응하는 제1 미디어 콘텐츠 데이터를 전송하고, 서버로부터 제2 사용자 디바이스로, 미디어 콘텐츠 아이템의 제2 스트림에 대응하는 제2 미디어 콘텐츠 데이터를 전송하는 단계 - 제1 미디어 콘텐츠 데이터는 제1 사용자 디바이스의 버퍼에 저장되고, 제2 미디어 콘텐츠 데이터는 제2 사용자 디바이스의 버퍼에 저장됨 -; 서버로부터 제1 사용자 디바이스 및 제2 사용자 디바이스로, 제1 사용자 디바이스 및 제2 사용자 디바이스로 하여금 미디어 콘텐츠 아이템을 동시에 제시하기를 시작하게 하는 지시들을 전송하는 단계; 서버에 의해, 제2 미디어 콘텐츠 데이터가 제2 사용자 디바이스의 버퍼에 저장되고 있는 것보다 느린 속도로 제1 미디어 콘텐츠 데이터가 제1 사용자 디바이스의 버퍼에 저장되고 있다는 것을 결정하는 단계; 제2 미디어 콘텐츠 데이터가 제2 사용자 디바이스의 버퍼에 저장되고 있는 것보다 느린 속도로 제1 미디어 콘텐츠 데이터가 제1 사용자 디바이스의 버퍼에 저장되고 있다는 결정에 응답하여, 미디어 콘텐츠 아이템의 제1 스트림에 대응하는 미디어 콘텐츠 아이템의 제3 스트림을 선택하는 단계 - 미디어 콘텐츠 아이템의 제3 스트림은 미디어 콘텐츠 아이템의 제1 스트림보다 낮은 품질 레벨을 가짐 -; 및 미디어 콘텐츠 아이템의 제3 스트림에 대응하는 제3 미디어 콘텐츠 데이터를 제1 사용자 디바이스로 전송하는 단계를 포함한다.

Description

다수의 디바이스에서 동기화된 미디어 콘텐츠 재생 동안 품질 레벨을 조절하기 위한 방법들, 시스템들 및 매체들
개시된 주제는 다수의 디바이스에서 동기화된 미디어 콘텐츠 재생 동안 품질 레벨을 조절하기 위한 방법들, 시스템들 및 매체들에 관한 것이다.
사람들은 비디오 공유 서비스와 연관된 서버와 같은 서버로부터 다운로드되거나 스트리밍되는 비디오들과 같은 미디어 콘텐츠를 자주 시청한다. 또한 사람들은 친구들과 같은 다른 사람들과 동시에 미디어 콘텐츠를 보고 싶지만, 별도의 디바이스들에서 보고 싶어할 수 있다. 그러나 다수의 디바이스에 걸쳐 미디어 콘텐츠의 재생을 동기화하는 것은 어려울 수 있다. 예를 들어, 다수의 디바이스는 각각 미디어 콘텐츠 아이템의 재생 전과 재생 중에 미디어 콘텐츠를 버퍼링할 수 있지만, 각 디바이스는 미디어 콘텐츠를 상이한 속도로 버퍼링할 수 있다. 일부 경우에, 이것은 미디어 콘텐츠를 다른 디바이스들보다 더 느리게 버퍼링하는 디바이스로 하여금 재생을 재개하기 전에 추가 미디어 콘텐츠를 버퍼링하기 위해 재생을 일시 중지해야만 하게 할 수 있고, 이로 인해 디바이스들로 하여금 재생 동안 동기화를 놓치게 할 수 있다
따라서, 다수의 디바이스에서 동기화된 미디어 콘텐츠 재생 동안 품질 레벨을 조절하기 위한 신규의 방법들, 시스템들 및 매체들을 제공하는 것이 바람직하다.
다수의 디바이스에서 동기화된 미디어 콘텐츠 재생 동안 품질 레벨을 조절하기 위한 방법들, 시스템들 및 매체들이 제공된다.
개시된 주제의 일부 실시예에 따르면, 미디어 콘텐츠의 재생을 동기화하기 위한 방법이 제공되고, 방법은, 서버로부터 제1 사용자 디바이스로, 미디어 콘텐츠 아이템의 제1 스트림에 대응하는 제1 미디어 콘텐츠 데이터를 전송하고, 서버로부터 제2 사용자 디바이스로, 미디어 콘텐츠 아이템의 제2 스트림에 대응하는 제2 미디어 콘텐츠 데이터를 전송하는 단계 - 제1 미디어 콘텐츠 데이터는 제1 사용자 디바이스의 버퍼에 저장되고, 제2 미디어 콘텐츠 데이터는 제2 사용자 디바이스의 버퍼에 저장됨 -; 서버로부터 제1 사용자 디바이스 및 제2 사용자 디바이스로, 제1 사용자 디바이스 및 제2 사용자 디바이스로 하여금 미디어 콘텐츠 아이템을 동시에 제시하기를 시작하게 하는 지시들을 전송하는 단계; 서버에 의해, 제2 미디어 콘텐츠 데이터가 제2 사용자 디바이스의 버퍼에 저장되고 있는 것보다 느린 속도로 제1 미디어 콘텐츠 데이터가 제1 사용자 디바이스의 버퍼에 저장되고 있다는 것을 결정하는 단계; 제2 미디어 콘텐츠 데이터가 제2 사용자 디바이스의 버퍼에 저장되고 있는 것보다 느린 속도로 제1 미디어 콘텐츠 데이터가 제1 사용자 디바이스의 버퍼에 저장되고 있다는 결정에 응답하여, 미디어 콘텐츠 아이템의 제1 스트림에 대응하는 미디어 콘텐츠 아이템의 제3 스트림을 선택하는 단계 - 미디어 콘텐츠 아이템의 제3 스트림은 미디어 콘텐츠 아이템의 제1 스트림보다 낮은 품질 레벨을 가짐 -; 및 미디어 콘텐츠 아이템의 제3 스트림에 대응하는 제3 미디어 콘텐츠 데이터를 제1 사용자 디바이스로 전송하는 단계를 포함한다.
일부 실시예에서, 제1 사용자 디바이스 및 제2 사용자 디바이스로 하여금 미디어 콘텐츠 아이템을 동시에 제시하기를 시작하게 하는 지시들은 제1 사용자 디바이스 및 제2 사용자 디바이스가 미디어 콘텐츠 아이템에 대응하는 미리 결정된 양의 미디어 콘텐츠 데이터를 버퍼링했다는 결정에 기초한다.
일부 실시예에서, 제2 미디어 콘텐츠 데이터가 제2 사용자 디바이스의 버퍼에 저장되고 있는 것보다 느린 속도로 제1 미디어 콘텐츠 데이터가 제1 사용자 디바이스의 버퍼에 저장되고 있다는 것을 결정하는 단계는 제1 사용자 디바이스로부터 서버에 의해 수신되는 메시지에 기초한다.
일부 실시예에서, 메시지는 메시지가 제1 사용자 디바이스에 의해 서버로 전송되는 시간에 제1 사용자 디바이스의 버퍼에 저장된 제1 미디어 콘텐츠 데이터의 현재 양을 표시한다.
일부 실시예에서, 제2 미디어 콘텐츠 데이터가 제2 사용자 디바이스의 버퍼에 저장되고 있는 것보다 느린 속도로 제1 미디어 콘텐츠 데이터가 제1 사용자 디바이스의 버퍼에 저장되고 있다는 것을 결정하는 단계는 제1 사용자 디바이스의 버퍼에 저장된 제1 미디어 콘텐츠 데이터의 양과 제2 사용자 디바이스의 버퍼에 저장된 제2 미디어 콘텐츠 데이터의 양의 비교에 기초한다.
일부 실시예에서, 미디어 콘텐츠 아이템의 제3 스트림은 미디어 콘텐츠 아이템의 제1 스트림보다 낮은 비트레이트를 갖는다.
개시된 주제의 일부 실시예에 따르면, 미디어 콘텐츠의 재생을 동기화하기 위한 시스템이 제공되고, 시스템은 메모리 및 하드웨어 프로세서를 포함하고, 하드웨어 프로세서는, 메모리에 저장된 컴퓨터 실행 가능 명령어들을 실행할 때, 서버로부터 제1 사용자 디바이스로, 미디어 콘텐츠 아이템의 제1 스트림에 대응하는 제1 미디어 콘텐츠 데이터를 전송하고, 서버로부터 제2 사용자 디바이스로, 미디어 콘텐츠 아이템의 제2 스트림에 대응하는 제2 미디어 콘텐츠 데이터를 전송하고 - 제1 미디어 콘텐츠 데이터는 제1 사용자 디바이스의 버퍼에 저장되고, 제2 미디어 콘텐츠 데이터는 제2 사용자 디바이스의 버퍼에 저장됨 -; 서버로부터 제1 사용자 디바이스 및 제2 사용자 디바이스로, 제1 사용자 디바이스 및 제2 사용자 디바이스로 하여금 미디어 콘텐츠 아이템을 동시에 제시하기를 시작하게 하는 지시들을 전송하고; 서버에 의해, 제2 미디어 콘텐츠 데이터가 제2 사용자 디바이스의 버퍼에 저장되고 있는 것보다 느린 속도로 제1 미디어 콘텐츠 데이터가 제1 사용자 디바이스의 버퍼에 저장되고 있다는 것을 결정하고; 제2 미디어 콘텐츠 데이터가 제2 사용자 디바이스의 버퍼에 저장되고 있는 것보다 느린 속도로 제1 미디어 콘텐츠 데이터가 제1 사용자 디바이스의 버퍼에 저장되고 있다는 결정에 응답하여, 미디어 콘텐츠 아이템의 제1 스트림에 대응하는 미디어 콘텐츠 아이템의 제3 스트림을 선택하고- 미디어 콘텐츠 아이템의 제3 스트림은 미디어 콘텐츠 아이템의 제1 스트림보다 낮은 품질 레벨을 가짐 -; 및 미디어 콘텐츠 아이템의 제3 스트림에 대응하는 제3 미디어 콘텐츠 데이터를 제1 사용자 디바이스로 전송하도록 구성된다. 개시된 주제의 다른 실시예는 미디어 콘텐츠의 재생을 동기화하기 위한 시스템을 제공하고, 시스템은 메모리 및 하드웨어 프로세서를 포함하고, 하드웨어 프로세서는, 메모리에 저장된 컴퓨터 실행 가능 명령어들을 실행할 때, 본 명세서에 설명된 임의의 양태 또는 실시예에 따른 방법을 수행하도록 구성된다.
개시된 주제의 일부 실시예에 따르면, 프로세서에 의해 실행될 때 프로세서로 하여금 미디어 콘텐츠의 재생을 동기화하기 위한 방법을 수행하게 하는 컴퓨터 실행 가능 명령어들을 포함하는 비일시적 컴퓨터 판독 가능 매체가 제공되고, 방법은, 서버로부터 제1 사용자 디바이스로, 미디어 콘텐츠 아이템의 제1 스트림에 대응하는 제1 미디어 콘텐츠 데이터를 전송하고, 서버로부터 제2 사용자 디바이스로, 미디어 콘텐츠 아이템의 제2 스트림에 대응하는 제2 미디어 콘텐츠 데이터를 전송하는 단계 - 제1 미디어 콘텐츠 데이터는 제1 사용자 디바이스의 버퍼에 저장되고, 제2 미디어 콘텐츠 데이터는 제2 사용자 디바이스의 버퍼에 저장됨 -; 서버로부터 제1 사용자 디바이스 및 제2 사용자 디바이스로, 제1 사용자 디바이스 및 제2 사용자 디바이스로 하여금 미디어 콘텐츠 아이템을 동시에 제시하기를 시작하게 하는 지시들을 전송하는 단계; 서버에 의해, 제2 미디어 콘텐츠 데이터가 제2 사용자 디바이스의 버퍼에 저장되고 있는 것보다 느린 속도로 제1 미디어 콘텐츠 데이터가 제1 사용자 디바이스의 버퍼에 저장되고 있다는 것을 결정하는 단계; 제2 미디어 콘텐츠 데이터가 제2 사용자 디바이스의 버퍼에 저장되고 있는 것보다 느린 속도로 제1 미디어 콘텐츠 데이터가 제1 사용자 디바이스의 버퍼에 저장되고 있다는 결정에 응답하여, 미디어 콘텐츠 아이템의 제1 스트림에 대응하는 미디어 콘텐츠 아이템의 제3 스트림을 선택하는 단계 - 미디어 콘텐츠 아이템의 제3 스트림은 미디어 콘텐츠 아이템의 제1 스트림보다 낮은 품질 레벨을 가짐 -; 및 미디어 콘텐츠 아이템의 제3 스트림에 대응하는 제3 미디어 콘텐츠 데이터를 제1 사용자 디바이스로 전송하는 단계를 포함한다. 개시된 주제의 다른 실시예는 프로세서에 의해 실행될 때, 프로세서로 하여금 본 명세서에 설명된 임의의 양태 또는 실시예에 따른 방법을 수행하게 하는 컴퓨터 실행 가능 명령어들을 포함하는 (일시적 또는 비일시적 매체일 수 있는) 컴퓨터 판독 가능 매체를 제공한다.
개시된 주제의 일부 실시예에 따르면, 미디어 콘텐츠의 재생을 동기화하기 위한 시스템이 제공되고, 시스템은, 서버로부터 제1 사용자 디바이스로, 미디어 콘텐츠 아이템의 제1 스트림에 대응하는 제1 미디어 콘텐츠 데이터를 전송하고, 서버로부터 제2 사용자 디바이스로, 미디어 콘텐츠 아이템의 제2 스트림에 대응하는 제2 미디어 콘텐츠 데이터를 전송하기 위한 수단 - 제1 미디어 콘텐츠 데이터는 제1 사용자 디바이스의 버퍼에 저장되고, 제2 미디어 콘텐츠 데이터는 제2 사용자 디바이스의 버퍼에 저장됨 -; 서버로부터 제1 사용자 디바이스 및 제2 사용자 디바이스로, 제1 사용자 디바이스 및 제2 사용자 디바이스로 하여금 미디어 콘텐츠 아이템을 동시에 제시하기를 시작하게 하는 지시들을 전송하기 위한 수단; 서버에 의해, 제2 미디어 콘텐츠 데이터가 제2 사용자 디바이스의 버퍼에 저장되고 있는 것보다 느린 속도로 제1 미디어 콘텐츠 데이터가 제1 사용자 디바이스의 버퍼에 저장되고 있다는 것을 결정하기 위한 수단; 제2 미디어 콘텐츠 데이터가 제2 사용자 디바이스의 버퍼에 저장되고 있는 것보다 느린 속도로 제1 미디어 콘텐츠 데이터가 제1 사용자 디바이스의 버퍼에 저장되고 있다는 결정에 응답하여 미디어 콘텐츠 아이템의 제1 스트림에 대응하는 미디어 콘텐츠 아이템의 제3 스트림을 선택하기 위한 수단 - 미디어 콘텐츠 아이템의 제3 스트림은 미디어 콘텐츠 아이템의 제1 스트림보다 낮은 품질 레벨을 가짐 - ; 및 미디어 콘텐츠 아이템의 제3 스트림에 대응하는 제3 미디어 콘텐츠 데이터를 제1 사용자 디바이스로 전송하기 위한 수단을 포함한다.
개시된 주제의 다양한 목적, 특징 및 이점은 유사한 참조 번호들이 유사한 요소들을 식별하는 다음의 도면들과 관련하여 고려될 때 개시된 주제의 다음의 상세한 설명을 참조하여 보다 완전히 인식될 수 있다.
도 1은 개시된 주제의 일부 실시예에 따라 다수의 디바이스에서 동기화된 미디어 콘텐츠 재생을 위한 정보 흐름도의 예를 도시한다.
도 2는 개시된 주제의 일부 실시예에 따라 다수의 디바이스에서 동기화된 미디어 콘텐츠 재생 동안 품질 레벨을 조절하기 위한 프로세스의 예를 도시한다.
도 3은 개시된 주제의 일부 실시예에 따라 다수의 디바이스에서 동기화된 미디어 콘텐츠 재생 동안 품질 레벨을 조절하기 위한 본 명세서에 설명된 메커니즘들의 구현에 적합한 예시적인 시스템의 개략도를 도시한다.
도 4는 개시된 주제의 일부 실시예에 따라 도 3의 서버 및/또는 사용자 디바이스에서 사용될 수 있는 하드웨어의 상세한 예를 도시한다.
다양한 실시예에 따르면, 다수의 디바이스에서 동기화된 미디어 콘텐츠 재생 동안 품질 레벨을 조절하기 위한 (방법들, 시스템들 및 매체를 포함할 수 있는) 메커니즘들이 제공된다.
일부 실시예에서, 본 명세서에 설명된 메커니즘들은 다수의 사용자 디바이스에 걸쳐 미디어 콘텐츠 아이템의 재생을 동기화할 수 있다. 예를 들어, 일부 실시예에서, 메커니즘들은 각 사용자 디바이스가 동시에 미디어 콘텐츠 아이템의 동일한 재생 위치에 있도록 미디어 콘텐츠 아이템이 다수의 사용자 디바이스에 동시에 제시되게 하여, 사용자 디바이스들 각각에게 미디어 콘텐츠 아이템의 "동기화된 프리젠테이션"이 이루어지게 할 수 있다. 일부 실시예에서, 메커니즘들은 미디어 콘텐츠 아이템을 사용자 디바이스들 각각으로 스트리밍하는 동안 미디어 콘텐츠 아이템의 동기화된 프리젠테이션이 유지되게 할 수 있다. 예를 들어, 일부 실시예에서, 메커니즘들은 다수의 사용자 디바이스 중 하나의 사용자 디바이스가 스트리밍된 미디어 콘텐츠 아이템에 대응하는 미디어 콘텐츠 데이터를 다른 사용자 디바이스들보다 느린 속도로 버퍼링하는 경우에 미디어 콘텐츠 아이템의 동기화된 프리젠테이션이 사용자 디바이스들에 걸쳐 유지되게 할 수 있다. 보다 특정한 예로서, 일부 실시예에서, 메커니즘들은 미디어 콘텐츠 데이터를 더 느린 속도로 버퍼링하는 사용자 디바이스로 하여금 미디어 콘텐츠 아이템을 더 낮은 품질 레벨로 제시하게 할 수 있다. 다른 예로서, 일부 실시예에서, 메커니즘들은 다수의 사용자 디바이스 중 하나의 사용자 디바이스가 추가 미디어 콘텐츠 데이터를 버퍼링하기 위해 미디어 콘텐츠 아이템의 재생을 일시 중지하는 경우에 미디어 콘텐츠 아이템의 동기화된 프리젠테이션이 사용자 디바이스들에 걸쳐 유지되게 할 수 있다. 보다 특정한 예로서, 일부 실시예에서, 메커니즘들은 사용자 디바이스에서의 재생이 다른 사용자 디바이스들에서의 재생을 따라잡을 때까지 사용자 디바이스로 하여금 증가된 재생 속도로 재생을 (즉, 추가 미디어 콘텐츠 데이터가 일단 버퍼링되었다면) 재개하게 할 수 있다.
일부 실시예에서, 본 명세서에 설명된 메커니즘들은 동기화된 미디어 재생 세션에서 제시되는 미디어 콘텐츠 아이템의 재생을 다수의 사용자 디바이스에 걸쳐 동기화할 수 있다는 것을 유의해야 한다. 일부 실시예에서, 다수의 사용자 디바이스에 걸쳐 동기화된 미디어 재생 세션은 임의의 적합한 특징들 또는 특징들의 조합을 포함할 수 있다. 예를 들어, 일부 실시예에서, 동기화된 미디어 재생 세션은 위에서 설명한 바와 같이 다수의 사용자 디바이스의 각 사용자 디바이스가 특정 미디어 콘텐츠 아이템을 동시에 제시할 수 있게 할 수 있다. 다른 예로서, 일부 실시예에서, 동기화된 미디어 재생 세션은 일련의 미디어 콘텐츠 아이템들(예를 들어, 미디어 콘텐츠 아이템들의 플레이리스트 및/또는 미디어 콘텐츠 아이템들의 임의의 다른 적합한 모음)이 다수의 사용자 디바이스의 각 사용자 디바이스에 동시에 제시될 수 있게 할 수 있다. 또 다른 예로서, 일부 실시예에서, 동기화된 미디어 재생 세션은 동기화된 미디어 재생 세션에 참여하는 사용자 디바이스가 비디오를 선택하고, 비디오를 일시 중지하고/하거나, 다른 비디오로 스위칭할 수 있게 할 수 있고, 사용자 디바이스가 각각의 다른 사용자 디바이스로 개별적으로 커맨드들을 보낼 필요없이 사용자 다비이스에 의해 수행되는 액션이 세션에 참여하는 다른 사용자 디바이스들에 미러링되게 할 수 있다.
일부 실시예에서, 본 명세서에 설명된 메커니즘들은 세션의 모든 디바이스가 동기화된 시청 경험을 유지하는 것을 보장하기 위해 동기화된 미디어 재생 세션에 참여하는 다수의 사용자 디바이스의 하나 이상의 사용자 디바이스로 전송되는 스트림의 품질을 조절할 수 있다. 특히, 일부 실시예에서, 세션에 참여하는 사용자 디바이스들 각각에 동기적으로 제시되는 미디어 콘텐츠 아이템에 대응하는 미디어 콘텐츠의 스트림들을 전송하는 서버는 각 사용자 디바이스가 스트림을 버퍼링하는 속도 또는 각각의 속도들을 결정할 수 있다. 일부 실시예에서, 그러면 서버는 사용자 디바이스에 대한 버퍼링 속도에 기초하여 사용자 디바이스들의 사용자 디바이스에 대한 스트림의 품질을 조절할 수 있다. 예를 들어, 일부 실시예에서, 사용자 디바이스가 동기화된 미디어 재생 세션에 참여하는 다른 사용자 디바이스들보다 더 느리게 스트림을 버퍼링하고 있다는 결정에 응답하여, 서버는 더 낮은 품질의 스트림을 전송할 수 있으며, 이에 따라 사용자 디바이스가 세션의 다른 사용자 디바이스들과 동일한 속도로 사용자 디바이스의 버퍼를 채울 수 있게 할 수 있다. 일부 실시예에서, 본 명세서에 설명된 메커니즘들은 부가적으로 또는 대안적으로, 다수의 사용자 디바이스의 사용자 디바이스에서 재생 속도를 조절하여 사용자 디바이스가 다른 사용자 디바이스들을 따라잡을 수 있게 하거나 속도를 늦출 수 있게 하는 것과 같이, 다수의 사용자 디바이스에 걸쳐 미디어 콘텐츠의 재생의 동기화를 유지하기 위한 임의의 다른 적합한 기술들을 사용할 수 있다.
서버와 제1 사용자 디바이스 간의 네트워크 연결의 품질뿐만 아니라 서버와 동기화된 미디어 재생 세션에 참여하는 다른 사용자 디바이스들 간의 네트워크 연결들의 품질 둘 모두에 기초하여 미디어 콘텐츠의 스트림의 품질을 조절함으로써, 본 명세서에 설명된 메커니즘들은 세션의 모든 사용자 디바이스가 세션 동안 동기화된 채로 유지되는 것(또는 그 동기화가 빠르게 재설정될 수 있는 것)과 사용자 디바이스들이 추가 데이터를 버퍼링하기 위해 재생을 일시 중지해야 하는 것을 회피하는 것 둘 모두를 보장하는 데 사용될 수 있다. 특히, 미디어 콘텐츠의 스트림의 품질을 조절함으로써(예를 들어, 서버와 사용자 디바이스 간의 네트워크 연결이 불량하다는 결정에 응답하여 품질 레벨을 낮춤으로써), 메커니즘들은 사용자 디바이스가 버퍼 내에 특정 양의 미디어 콘텐츠 데이터를 유지할 수 있도록 하고/하거나 버퍼를 빠르게 채워 특정 양의 미디어 콘텐츠 데이터를 가질 수 있도록 할 수 있다.  또한, 본 명세서에 설명된 메커니즘들은, 특히 동기화된 미디어 재생 세션에서 스트리밍된 미디어 콘텐츠를 볼 때, 사용자 디바이스가 추가 미디어 콘텐츠 데이터를 버퍼링하기 위해 재생을 일시 중지하는 것을 방지함으로써, 스트리밍된 미디어 콘텐츠를 보는 동안 사용자의 경험을 개선하는 데 사용될 수 있다.
통상의 비디오 스트리밍 시, 스트리밍된 비디오를 제공하는 콘텐츠 서버는 스트리밍된 비디오가 사용자 디바이스가 핸들링할 수 있는 속도와 품질로 사용자 디바이스로 전달되도록 속도 제어를 제공한다. 이것을 가능하게 하기 위해, 사용자 디바이스는 사용자 디바이스가 수신된 비디오를 얼마나 빠르게 디코딩하고 처리할 수 있는지, 비디오가 사용자 디바이스로 스트리밍되고 있는 네트워크의 대역폭 및/또는 대기 시간, 및 수신된 비디오의 품질과 같은 파라미터들에 관한 정보를 콘텐츠 서버에 제공할 수 있다. 콘텐츠 서버는 클라이언트 디바이스로부터 수신된 정보에 기초하여 클라이언트 디바이스로 비디오를 전달하는 속도를 조절할 수 있다. 본 개시내용의 양태들은 비디오 콘텐츠 아이템을 다수의 클라이언트 디바이스로 스트리밍하는 동안 조정된 속도 제어를 제공한다. 속도 제어는 하나의 특정 사용자 디바이스로 스트리밍하는 속도가 당해 특정 사용자 디바이스뿐만 아니라 적어도 하나의 다른 사용자 디바이스에 의해 콘텐츠 서버에 공급되는 정보에 기초하여 결정된다는 점에서 "조정"된다. 이것은 다수의 사용자 디바이스로 개선된 비디오 전달을 제공할 수 있다. 대부분의 경우, ("함께 시청(co-watching)"이라고 알려진) 다수의 사용자 디바이스에 전달할 콘텐츠를 제공하는 서버는 제3자 스트리밍 플랫폼을 사용할 것이며, 콘텐츠가 다수의 사용자 디바이스로 스트리밍되는 속도(또는 각각의 속도들)를 제어하지 않는다. 더욱이, 통상의 속도 제어 기술들이 콘텐츠를 다수의 사용자 디바이스로 스트리밍하는 데 적용될 수 있을지라도, 이러한 기술들은 각 클라이언트 디바이스에 독립적인 속도 제어를 적용할 것이다. 이것은 사용자 디바이스들이 다시 버퍼링하기 위해 재생을 일시 중지해야만 하도록 하고, 추가적인 동기화 지연들을 겪게 하고/하거나, 제공될 수 있는 것보다 낮은 비디오 품질을 경험하게 할 수 있다.
또한, 위에서 유의한 바와 같이, 일부 실시예에서, 동기화된 미디어 재생 세션은 동기화된 미디어 재생 세션에 참여하는 사용자 디바이스가 비디오를 선택하고, 비디오를 일시 중지하고/하거나, 다른 비디오로 스위칭할 수 있게 할 수 있고, 사용자 다비이스에 의해 수행되는 액션이 세션에 참여하는 다른 사용자 디바이스들에 미러링되게 할 수 있다. 이것은 사용자 디바이스가 각각의 다른 사용자 디바이스와 개별적으로 통신할 필요없이 달성될 수 있는데 - 특정 사용자 디바이스가 비디오를 선택했고, 비디오를 일시 중지했고/했거나, 다른 비디오로 스위칭했다는 것을 콘텐츠 서버에게 알려줄 때, 콘텐츠 서버는 동일한 방식으로 다른 모든 사용자 디바이스로 스트리밍된 콘텐츠의 전달을 조절할 수 있다.
도 1을 참조하면, 개시된 주제의 일부 실시예에 따라 동기화된 미디어 재생 세션을 개시하고 다수의 디바이스에서 동기화된 미디어 콘텐츠를 제시하기 위한 정보 흐름도의 예(100)가 도시된다. 예시된 바와 같이, 일부 실시예에서, 프로세스(100)의 블록들은 제1 사용자 디바이스, 제2 사용자 디바이스 및 서버에서 수행될 수 있다. 도 1에 도시되고 아래에서 설명되는 정보 흐름도는 일반적으로 비디오의 동기화된 프리젠테이션을 설명하지만, 일부 실시예에서, 아래에서 설명되는 기술들은 임의의 적합한 유형의 미디어 콘텐츠(예를 들어, 비디오, 영화, 텔레비전 프로그램, 라이브 스트리밍 비디오 콘텐츠, 라이브 스트리밍 오디오 콘텐츠, 음악, 오디오북 및/또는 임의의 다른 적합한 유형의 미디어 콘텐츠)를 제시하는 데 사용될 수 있다. 도 1에 도시된 정보 흐름도가 제1 사용자 디바이스 및 제2 사용자 디바이스를 포함하지만, 이것은 단지 예시적인 것이라는 것이 유의된다. 임의의 적합한 개수의 사용자 디바이스들이 동기화된 미디어 재생 세션에 참여할 수 있다.
(102)에서, 제1 사용자 디바이스는 서버로부터 동기화된 재생 세션에서 제시될 비디오를 요청할 수 있다. 일부 실시예에서, 요청은 제1 사용자 디바이스에서 임의의 적합한 방식으로 개시될 수 있다. 예를 들어, 일부 실시예에서, 요청은 제1 사용자 디바이스의 사용자가 특정 미디어 콘텐츠 아이템으로의 링크를 선택하는 데 응답하여, 제1 사용자 디바이스의 사용자가 다른 사용자 디바이스들(예를 들어, 제2 사용자 디바이스)과 관련하여 특정 미디어 콘텐츠 아이템의 동기화된 미디어 재생 세션을 개시하는 링크를 선택하는 데 응답하여, 및/또는 임의의 다른 적합한 방식으로 개시될 수 있다. 일부 실시예에서, 동기화된 미디어 재생 세션으로의 링크는 임의의 적합한 사용자 디바이스에 의해 생성될 수 있고, 임의의 적합한 방식으로 다른 사용자 디바이스들과 공유될 수 있다는 것이 유의된다. 예를 들어, 일부 실시예에서, 동기화된 미디어 재생 세션으로의 링크는 메시지(예를 들어, 인스턴트 메시지, 텍스트 메시지, 이메일, 푸시 알림(push notification) 및/또는 임의의 다른 적합한 방식)를 통해 공유될 수 있다. 다른 예로, 일부 실시예에서, 비디오 콘텐츠 아이템이 재생되는 동기화된 미디어 재생 세션은 제1 사용자 디바이스에서 생성될 수 있으며, 여기서 다른 사용자 디바이스들과 연관된 사용자 계정들의 리스트는 동기화된 미디어 재생 세션에 합류하는 것으로 허용될 때 포함된다.
유사하게, (104)에서, 제2 사용자 디바이스는 서버로부터 동기화된 재생 세션에서 비디오가 제시되도록 요청할 수 있고/있거나 동기화된 미디어 재생 세션에 합류하기 위해 요청할 수 있다. 블록(102)과 관련하여 위에서 설명한 바와 유사하게, 일부 실시예에서, 제2 사용자 디바이스는 링크의 선택을 통해 및/또는 임의의 다른 적합한 방식으로 동기화된 미디어 재생 세션에 합류하기 위해 및/또는 동기화된 미디어 재생 세션을 개시하기 위해 요청할 수 있다. 예를 들어, 제2 사용자 디바이스는 요청을 수락하여 비디오 콘텐츠 아이템이 재생되는 동기화된 재생 세션에 합류할 수 있다. 다른 예에서, 제2 사용자 디바이스는 애플리케이션을 시작할 수 있고 비디오 콘텐츠 아이템들이 재생되고 있는 재생 세션들의 리스트로부터 재생 세션을 선택할 수 있다.
일부 실시예에서, 동기화된 미디어 재생 세션은 제1 사용자 디바이스와 아직 비디오를 포함하고 있지 않은 제2 사용자 디바이스 (및/또는 임의의 다른 적합한 사용자 디바이스들) 사이에서 개시될 수 있다는 점을 유의한다. 이러한 일부 실시예에서, 제1 사용자 디바이스 및/또는 제2 사용자 디바이스는 동기화된 미디어 재생 세션 동안 임의의 적합한 방식으로 프리젠테이션을 위한 비디오 및/또는 일련의 비디오들을 선택할 수 있다. 예를 들어, 일부 실시예에서, 사용자 디바이스는 이용 가능한 비디오들의 그룹으로부터 특정 비디오를 선택할 수 있다. 다른 예로서, 일부 실시예에서, 사용자 디바이스는 이용 가능한 비디오들의 그룹으로부터 비디오들을 선택함으로써 및/또는 동기화된 미디어 재생 세션 동안 제시될 순서대로 비디오들을 배열함으로써 비디오들의 플레이리스트를 생성할 수 있다.
(106)에서, 서버는 요청된 비디오에 대응하는 비디오 데이터를 제1 사용자 디바이스 및 제2 사용자 디바이스로 전송하기 시작할 수 있다. 일부 실시예에서, 서버는 비디오 데이터를 임의의 적합한 방식으로 제1 사용자 디바이스 및 제2 사용자 디바이스에 전송할 수 있다. 예를 들어, 일부 실시예에서, 비디오 데이터는 도 3과 관련하여 아래에 도시되고 설명되는 바와 같이 통신 네트워크를 통해 전송될 수 있다.
(108)에서, 제1 사용자 디바이스는 수신된 비디오 데이터를 제1 사용자 디바이스의 버퍼에 저장할 수 있다. 유사하게, (110)에서, 제2 사용자 디바이스는 수신된 비디오 데이터를 제2 사용자 디바이스의 버퍼에 저장할 수 있다.
(112)에서, 제1 사용자 디바이스는 미리 결정된 양의 비디오 데이터가 버퍼링되었는지를 결정할 수 있다. 일부 실시예에서, 미리 결정된 양의 비디오 데이터는 임의의 적합한 양의 데이터일 수 있다. 예를 들어, 일부 실시예에서, 미리 결정된 양의 비디오 데이터는 특정 킬로바이트 숫자의 데이터, 비디오의 특정 지속기간(예를 들어, 5 초, 10 초, 30 초, 2 분 및/또는 비디오의 임의의 다른 지속기간) 및/또는 임의의 다른 적합한 양의 비디오 데이터에 대응할 수 있다. 유사하게, (114)에서, 제2 사용자 디바이스는 미리 결정된 양의 비디오 데이터가 제2 사용자 디바이스에 버퍼링되었는지를 결정할 수 있다. 일부 실시예에서, 제1 사용자 디바이스 및 제2 사용자 디바이스는 미리 결정된 동일한 양의 비디오 데이터가 각 디바이스에서 버퍼링되었는지를 각각 결정할 수 있다는 것이 유의된다.
(112)에서, 제1 사용자 디바이스가 미리 결정된 양의 비디오 데이터가 버퍼링되지 않았다고 결정하면((112)에서 "아니오"), 제1 사용자 디바이스는 (108)로 루프백할 수 있고 수신된 비디오 데이터를 제1 사용자 디바이스의 버퍼에 계속하여 저장할 수 있다. 유사하게, (114)에서, 제2 사용자 디바이스가 미리 결정된 양의 비디오 데이터가 버퍼링되지 않았다고 결정하면((114)에서 "아니오"), 제2 사용자 디바이스는 (110)으로 루프백할 수 있고 수신된 비디오 데이터를 제2 사용자 디바이스의 버퍼에 계속하여 저장할 수 있다.
(112)에서, 제1 사용자 디바이스가 제1 사용자 디바이스에 의해 미리 결정된 양의 비디오 데이터가 버퍼링되었다고 결정하면((112)에서 "예"), 제1 사용자 디바이스는 (116)으로 진행할 수 있고 제1 사용자 디바이스가 미리 결정된 양의 비디오를 버퍼링했음을 표시하는 메시지를 서버로 전송할 수 있다. 유사하게, (114)에서, 제2 사용자 디바이스가 제2 사용자 디바이스에 의해 미리 결정된 양의 비디오가 버퍼링되었다고 결정하면((114)에서 "예"), 제2 사용자 디바이스는 (118)로 진행할 수 있고 제2 사용자 디바이스가 미리 결정된 양의 비디오를 버퍼링했음을 표시하는 메시지를 서버로 전송할 수 있다. 일부 실시예에서, 임의의 적합한 정보는 도 2와 관련하여 아래에서 보다 상세하게 설명되는 바와 같이, 제1 사용자 디바이스 및 제2 사용자 디바이스에 의해 전송되는 메시지들에 포함될 수 있다는 것이 유의된다.
(120)에서, 서버는 동기화된 미디어 재생 세션에 포함된 모든 사용자 디바이스(예를 들어, 도 1에 도시된 예에서 제1 사용자 디바이스 및 제2 사용자 디바이스)가 미리 결정된 양의 비디오 데이터를 버퍼링했는지를 결정할 수 있다. 예를 들어, 일부 실시예에서, 서버는 동기화된 미디어 재생 세션에 포함된 모든 사용자 디바이스로부터 미리 결정된 양의 비디오 데이터가 버퍼링되었음을 표시하는 메시지를 수신했는지를 결정할 수 있다.
(120)에서 서버가 동기화된 재생 세션에 포함된 디바이스가 미리 결정된 양의 비디오 데이터를 아직 버퍼링하지 않았다고 결정하면((120)에서 "아니오"), (122)에서 서버는 미리 결정된 양의 비디오 데이터를 버퍼링했다고 표시하는 메시지들을 전송했던 임의의 모든 사용자 디바이스에게 응답들을 전송할 수 있다. 특히, 서버는 미리 결정된 양의 비디오 데이터를 버퍼링한 사용자 디바이스들에게 비디오의 재생을 시작하기를 대기하도록 지시하는 응답을 전송할 수 있다.
이러한 경우에, 비디오의 재생을 시작하기를 대기하라는 서버로부터 응답을 수신하는 것에 응답하여, 사용자 디바이스는 미리 결정된 양의 비디오 데이터가 버퍼링되었다는 메시지를 임의의 적합한 지연 후에 서버로 재 전송할 수 있다. 예를 들어, 일부 실시예에서, 사용자 디바이스는 메시지를 임의의 적합한 빈도(예를 들어, 초당 한 번, 초당 두 번 및/또는 임의의 다른 적합한 빈도)로 서버로 전송할 수 있다. 보다 특정한 예로서, 재생 시작을 대기하라는 서버로부터의 응답을 수신하는 것에 응답하여, 제1 사용자 디바이스는 블록(116)으로 루프백할 수 있다. 다른 보다 특정한 예로서, 재생 시작을 대기하라는 서버로부터의 응답을 수신하는 것에 응답하여, 제2 사용자 디바이스는 블록(118)으로 루프백할 수 있다. 예를 들어, 비디오의 재생 시작을 대기하라는 서버로부터의 지시를 수신하는 것에 응답하여, 사용자 디바이스는 비디오 데이터를 사용자 디바이스의 버퍼에 계속 (예를 들어, 버퍼가 버퍼의 용량을 채울 때까지) 저장할 수 있다.
이와 반대로, (120)에서, 서버가 동기화된 미디어 재생 세션에 포함된 모든 사용자 디바이스가 미리 결정된 양의 비디오 데이터를 버퍼링했다고 결정하면, (124)에서 서버는 비디오의 재생을 시작하라는 지시들을 모든 사용자 디바이스로 전송할 수 있다. 예를 들어, 서버는 동기화된 미디어 재생 세션의 모든 사용자 디바이스에게 비디오 재생을 시작하라는 지시들을 전송할 수 있다. 다른 예에서, 서버는 동기화된 미디어 재생 세션의 모든 사용자 디바이스에게 특정 클록 시간에 비디오가 재생되도록 하는 지시를 전송할 수 있다. 일부 실시예에서, 서버는 비디오에 대응하는 비디오 데이터를 계속 전송할 수 있고, 사용자 디바이스들은 비디오의 재생 동안 수신된 비디오 데이터를 계속 버퍼링할 수 있다.
일부 실시예에서, 제1 사용자 디바이스 및 제2 사용자 디바이스는 동기화된 재생 세션이 임의의 적합한 방식으로 시작되게 할 수 있다. 예를 들어, 일부 실시예에서, 비디오의 프리젠테이션은 임의의 적합한 유형의 비디오 플레이어 윈도우에서 시작될 수 있다. 일부 실시예에서, 동기화된 재생 세션에 포함된 다른 사용자 디바이스들의 임의의 적합한 표시가 비디오의 프리젠테이션과 관련하여 제시될 수 있다. 예를 들어, 일부 실시예에서, 동기화된 재생 세션에 포함된 다른 사용자 디바이스들과 연관된 사용자들의 사용자 이름들 및/또는 동기화된 재생 세션에 포함된 다른 사용자 디바이스들과 연관된 사용자들과 연관된 아이콘들이 제시될 수 있다.
일부 실시예에서, 동기화된 미디어 재생 세션은 세션에 참여하는 사용자 디바이스가 세션에서 미디어 콘텐츠의 프리젠테이션과 상호 작용할 수 있도록 하고/하거나 세션에 참여하는 다른 사용자 디바이스들과 임의의 적합한 방식으로 상호 작용할 수 있도록 할 수 있다. 예를 들어, 위에서 설명한 바와 같이, 일부 실시예에서, 사용자 디바이스는 미디어 콘텐츠 아이템의 재생이 세션에 참여하는 모든 사용자 디바이스에서 일시 중지되게 할 수 있다. 다른 예로서, 일부 실시예에서, 사용자 디바이스는 미디어 콘텐츠 아이템의 재생이 모든 사용자 디바이스에서 다른 재생 위치로 점프하거나 건너 뛰게 할 수 있다. 또 다른 예로서, 일부 실시예에서, 사용자 디바이스는 다른 미디어 콘텐츠 아이템이 제시되기를 시작하게 할 수 있다. 또 다른 예로서, 일부 실시예에서, 사용자 디바이스는 세션에 참석하는 모든 사용자 디바이스 상에 제시될 메시지를, 예를 들어 인스턴트 메시지로서, 그룹 채팅의 메시지로서, 및/또는 임의의 다른 적합한 방식으로 전송할 할 수 있다.
도 2를 참조하면, 개시된 주제의 일부 실시예에 따라 동기화된 미디어 재생 세션에서 스트림 콘텐츠를 조절하기 위한 프로세스(200)의 예가 도시된다. 일부 실시예에서, 프로세스(200)의 블록들은 미디어 콘텐츠를 저장하고/하거나 미디어 콘텐츠를 사용자 디바이스들로 스트리밍하는 서버(예를 들어, 도 3과 관련하여 아래에서 도시되고 설명되는 서버(302))와 같은 서버에서 구현될 수 있다.
(202)에서, 프로세스(200)는 동기화된 미디어 재생 세션에 참여하고 있는 다수의 사용자 디바이스 각각에 미디어 콘텐츠 스트림들을 전송함으로써 시작할 수 있다. 도 1의 블록(102)과 관련하여 위에서 설명한 바와 같이, 동기화된 미디어 재생 세션은 세션에 참여하는 각 사용자 디바이스에서 임의의 적합한 방식으로, 예를 들어 링크의 선택을 통해, 개시되고/되거나 합류될 수 있다는 것이 유의된다. 일부 실시예에서, 미디어 콘텐츠 스트림들은 동기화된 미디어 재생 세션 동안 다수의 사용자 디바이스 각각에 동시에 제시될 임의의 미디어 콘텐츠 아이템에 대응할 수 있다. 일부 실시예에서, 미디어 콘텐츠 아이템은 임의의 사용자 디바이스, 예를 들어 동기화된 미디어 재생 세션에 참여하는 사용자 디바이스에 의해 선택될 수 있다. 부가적으로 또는 대안적으로, 일부 실시예에서, 미디어 콘텐츠 아이템은 플레이리스트 또는 미디어 콘텐츠 아이템들의 다른 모음에 포함된 미디어 콘텐츠 아이템일 수 있다. 일부 실시예에서, 동기화된 미디어 재생 세션에 참여하는 사용자 디바이스들의 각 사용자 디바이스는, 도 1의 블록들(108 및 110)과 관련하여 위에서 설명한 바와 같이, 수신된 미디어 콘텐츠 스트림에 대응하는 미디어 콘텐츠 데이터를 사용자 디바이스의 버퍼에 저장할 수 있다.
일부 실시예에서, 프로세스(200)는 미디어 콘텐츠 스트림들을 임의의 적합한 방식으로 전송할 수 있다. 예를 들어, 일부 실시예에서, 프로세스(200)와 연관된 서버(예를 들어, 미디어 콘텐츠를 저장하고/하거나 미디어 콘텐츠를 사용자 디바이스 및/또는 임의의 다른 적합한 서버로 스트리밍하는 서버)는 각 미디어 콘텐츠 스트림과 관련된 미디어 콘텐츠 데이터를 임의의 적합한 통신 네트워크(예를 들어, 도 3과 관련하여 아래에서 도시되고 설명되는 통신 네트워크(304))를 사용하여 사용자 디바이스로 전송할 수 있다.
(204)에서, 프로세스(200)는 동기화된 미디어 재생 세션에 참여하는 다수의 사용자 디바이스 중 제1 사용자 디바이스로부터, 제1 사용자 디바이스가 제1 사용자 디바이스로 전송된 미디어 콘텐츠 스트림과 연관된 미디어 콘텐츠 데이터를 세션에 참여하는 다른 사용자 디바이스들이 다른 사용자 디바이스들 각각에 전송된 미디어 콘텐츠 스트림들에 대응하는 미디어 콘텐츠 데이터를 버퍼링하고 있는 것보다 느린 속도로 버퍼링하고 있다는 것을 표시하는 정보를 수신할 수 있다. 일부 실시예에서, 제1 사용자 디바이스로부터의 정보는 임의의 적합한 방식으로 수신될 수 있다. 예를 들어, 일부 실시예에서, 도 1의 블록들(112-118)과 관련하여 위에서 설명한 바와 같이, 각 사용자 디바이스는 사용자 디바이스가 세션에서 제시될 미디어 콘텐츠 아이템과 연관된 미리 결정된 양의 미디어 콘텐츠 데이터를 버퍼링했을 때 동기화된 미디어 재생 세션을 조정하는 메시지를 서버로 전송할 수 있다. 이러한 일부 실시예에서, 프로세스(200)는 수신된 메시지들과 연관된 정보에 기초하여 제1 사용자 디바이스가 다른 사용자 디바이스들보다 느린 속도로 미디어 콘텐츠 데이터를 버퍼링하고 있다는 것을 결정할 수 있다. 예를 들어, 일부 실시예에서, 프로세스(200)는 사용자 디바이스들 각각으로부터 수신된 메시지들의 타이밍에 기초하여 제1 사용자 디바이스가 다른 사용자 디바이스들보다 더 느리게 미디어 콘텐츠 데이터를 버퍼링하고 있다는 것을 결정할 수 있다. 보다 특정한 예로서, 일부 실시예에서, 프로세스(200)는 제1 사용자 디바이스가 미리 결정된 양의 미디어 콘텐츠 데이터의 버퍼링을 완료하는 사용자 디바이스들 중 마지막 디바이스였다고 결정하는 것에 기초하여 제1 사용자 디바이스가 다른 사용자 디바이스들보다 더 느리게 미디어 콘텐츠 데이터를 버퍼링하고 있다는 것을 결정할 수 있다. 다른 보다 특정한 예로서, 일부 실시예에서, 프로세스(200)는 프로세스(200)가, 제1 사용자 디바이스가 미리 결정된 미디어 콘텐츠 데이터의 버퍼링을 완료하지 않았음을 표시하는 제1 사용자 디바이스 이외의, 세션에 참여하는 모든 사용자 디바이스로부터, 메시지들을 수신했다는 결정에 기초하여 제1 사용자 디바이스가 다른 사용자 디바이스들보다 더 느리게 미디어 콘텐츠 데이터를 버퍼링하고 있다는 것을 결정할 수 있다.
다른 예로서, 일부 실시예에서, 프로세스(200)는 제1 사용자 디바이스로부터 수신된 메시지에 포함된 정보에 기초하여 제1 사용자 디바이스가 동기화된 미디어 재생 세션에 참여하는 다른 사용자 디바이스들보다 느린 속도로 미디어 콘텐츠 데이터를 버퍼링하고 있다는 것을 결정할 수 있다. 예를 들어, 일부 실시예에서, 프로세스(200)는 제1 사용자 디바이스와 프로세스(200)와 연관된 서버 사이의 현재 네트워크 연결에 관한 정보를 표시하는 메시지를 제1 사용자 디바이스로부터 수신할 수 있다. 보다 특정한 예로서, 일부 실시예에서, 메시지는 네트워크 연결의 현재 속도, 네트워크 연결과 연관된 대기 시간, 네트워크 연결의 대역폭, 네트워크 연결이 끊어졌거나 시간이 초과된 횟수, 및/또는 네트워크 연결의 품질을 표시하는 임의의 다른 적합한 정보를 표시할 수 있다.
일부 실시예에서, 프로세스(200)는 동기화된 미디어 재생 세션에 참여하는 임의의 사용자 디바이스들로부터, 임의의 적합한 정보를 표시할 수 있는 메시지들을 수신할 수 있다는 것이 유의된다. 예를 들어, 일부 실시예에서, 사용자 디바이스로부터의 메시지는 사용자 디바이스와 프로세스(200)와 연관된 서버 사이의 네트워크 연결의 품질을 표시할 수 있다. 다른 예로서, 일부 실시예에서, 사용자 디바이스로부터의 메시지는 사용자 디바이스에 관한 정보, 이를테면 사용자 디바이스의 유형(예를 들어, 사용자 디바이스가 모바일 디바이스라는 것, 사용자 디바이스가 스마트 텔레비전이라는 것, 및/또는 임의의 다른 적합한 디바이스 유형), 사용자 디바이스의 디스플레이에 관한 정보(예를 들어, 디스플레이의 크기, 디스플레이의 현재 방향 및/또는 임의의 다른 적합한 디스플레이 정보), 및/또는 임의의 다른 적합한 정보를 표시할 수 있다. 이러한 일부 실시예에서, 사용자 디바이스로부터 수신된 정보는, 블록(206)과 관련하여 아래에서 보다 상세히 설명되는 바와 같이, 프로세스(200)에 의해 각 사용자 디바이스로 전송되는 미디어 콘텐츠 스트림에 대한 파라미터들을 결정하는 데 사용될 수 있다.
(206)에서, 프로세스(200)는 이전에 제1 사용자 디바이스로 전송된 미디어 콘텐츠 스트림보다 낮은 품질을 갖는 미디어 콘텐츠 아이템에 대응하는 미디어 콘텐츠 스트림을 선택 및/또는 생성할 수 있다. 일부 실시예에서, 더 낮은 품질의 미디어 콘텐츠 스트림은 임의의 적합한 방식으로 감소된 품질의 스트림일 수 있다. 예를 들어, 일부 실시예에서, 더 낮은 품질의 미디어 콘텐츠 스트림은 제1 사용자 디바이스로 원래 전송된 미디어 콘텐츠 스트림보다 낮은 비트레이트를 사용하여 인코딩될 수 있다. 일부 실시예에서, 프로세스(200)는 임의의 적합한 재생 위치로부터 시작하는 더 낮은 품질의 미디어 콘텐츠 스트림을 생성할 수 있다. 예를 들어, 일부 실시예에서, 프로세스(200)는 원래 전송된 미디어 콘텐츠 스트림의 미디어 콘텐츠 데이터의 마지막 부분에 대응하는 재생 위치를 식별할 수 있고 재생 위치 이후에 시작되는 더 낮은 품질의 미디어 콘텐츠 스트림을 생성할 수 있다.
일부 실시예에서, 프로세스(200)는 임의의 적합한 정보 및 임의의 적합한 기술(들)을 사용하여 더 낮은 품질의 미디어 콘텐츠 스트림에 대한 스트림 파라미터들을 선택 및/또는 결정할 수 있다는 것이 유의된다. 예를 들어, 일부 실시예에서, 프로세스(200)는 블록(202)에서 제1 사용자 디바이스로 이전에 전송되었던 미디어 콘텐츠 스트림과 연관된 스트림 파라미터들에 기초하여, 업데이트된 스트림 파라미터들(예를 들어, 스트림이 인코딩되는 새로운 비트레이트 및/또는 임의의 다른 적합한 스트림 파라미터들)을 선택 및/또는 결정할 수 있다. 보다 특정한 예로서, 일부 실시예에서, 프로세스(200)는 블록(202)에서 제1 사용자 디바이스로 전송되었던 스트림의 비트레이트보다 더 낮은 업데이트된 비트레이트를 선택할 수 있다. 다른 예로서, 일부 실시예에서, 프로세스(200)는 제1 사용자 디바이스와 연관된 정보에 기초하여 업데이트된 스트림 파라미터들을 선택 및/또는 결정할 수 있다. 보다 특정한 예로서, 일부 실시예에서, 프로세스(200)는 제1 사용자 디바이스의 버퍼에 현재 저장된 미디어 콘텐츠 데이터의 양에 기초하여 및/또는 프리젠테이션 전에 미디어 콘텐츠 스트림의 프레임들을 디코딩하는 제1 사용자 디바이스의 능력에 기초하여 업데이트된 스트림 파라미터들을 선택 및/또는 결정할 수 있다. 다른 보다 특정한 예로서, 일부 실시예에서, 프로세스(200)는 제1 사용자 디바이스와 프로세스(200)와 연관된 서버 사이의 네트워크 연결의 품질을 표시하는 정보(예를 들어, 연결과 연관된 대기 시간, 연결과 연관된 대역폭, 연결 속도 및/또는 임의의 다른 적합한 정보)에 기초하여 업데이트된 스트림 파라미터들을 선택 및/또는 결정할 수 있다. 다른 보다 특정한 예로서, 일부 실시예에서, 프로세스(200)는 동기화된 미디어 재생 세션에 참여하는 다른 사용자 디바이스들의 성능을 표시하는 정보에 기초한 업데이트된 스트림 파라미터들, 이를테면 다른 사용자 디바이스들 각각의 프로세스(200)와 연관된 서버와의 네트워크 연결의 품질(예를 들어, 각 네트워크 연결의 속도, 각 네트워크 연결의 대기 시간, 각 네트워크 연결의 대역폭 및/또는 임의의 다른 적합한 정보), 세션의 각 사용자 디바이스가 프리젠테이션 전에 프레임들을 디코딩하는 능력, 각 디바이스의 버퍼에 저장된 데이터의 양, 및/또는 제1 사용자 디바이스 이외의 디바이스들의 임의의 다른 적합한 성능 정보를 선택 및/또는 결정할 수 있다.
(208)에서, 프로세스(200)는 더 낮은 품질의 미디어 콘텐츠 스트림을 제1 사용자 디바이스로 전송하기 시작할 수 있다. 일부 실시예에서, 프로세스(200)는 제1 사용자 디바이스에게 더 낮은 품질의 미디어 콘텐츠 스트림이 임의의 적합한 방식으로 전송되고 있다는 것을 통지할 수 있다. 예를 들어, 일부 실시예에서, 프로세스(200)는 더 낮은 품질의 미디어 콘텐츠 스트림과 연관된 비트레이트의 표시를 제1 사용자 디바이스로 전송할 수 있다. 일부 실시예에서, 프로세스(200)는 더 낮은 품질의 미디어 콘텐츠 스트림이 전송되고 있음을 표시하는 통지가 제1 사용자 디바이스에 제시되게 하는 지시들을 전송할 수 있다(예를 들어, 메시지는 제1 사용자 디바이스가 네트워크 연결 불량 및/또는 임의의 다른 적합한 정보로 인해 더 낮은 품질의 미디어 콘텐츠 스트림을 수신하고 있다는 것을 표시할 수 있다)
(210)에서, 프로세스(200)는 동기화된 미디어 재생 세션에 참여하는 사용자 디바이스들 각각에게 각 사용자 디바이스로 전송된 미디어 콘텐츠 스트림들을 사용하여 미디어 콘텐츠 아이템의 프리젠테이션을 시작하라는 지시들을 전송할 수 있다. 예를 들어, 도 1의 블록(124)과 관련하여 위에서 설명한 바와 같이, 지시들은 각 사용자 디바이스로 하여금 미디어 콘텐츠 아이템의 동시적인 프리젠테이션을 시작하게 할 수 있다. 일부 실시예에서, 도 1의 블록(124)과 관련하여 위에서 설명한 바와 같이, 동기화된 미디어 재생 세션에서 제시되는 미디어 콘텐츠 아이템은 세션에 참여하는 다른 사용자 디바이스들의 표시들과 같은 임의의 적합한 특징들, 세션에 참여하는 사용자 디바이스로 하여금, 세션의 모든 사용자 디바이스에서 재생이 변경되게 하는, 미디어 콘텐츠 아이템의 재생을 변경할 수 있도록 하는 특징들(예를 들어, 미디어 콘텐츠 아이템의 일시 중지, 다른 재생 위치로 점프 및/또는 임의의 다른 적합한 방식으로 재생의 변경), 및/또는 사용자 디바이스들의 사용자들이 (예를 들어, 메시징 인터페이스를 통해 및/또는 임의의 다른 적합한 방식으로) 서로 상호 작용할 수 있도록 하는 특징들을 포함할 수 있다.
(212)에서, 프로세스(200)는 동기화된 미디어 재생 세션에 참여하는 다수의 사용자 디바이스 중 제2 사용자 디바이스로부터, 제2 사용자 디바이스가 제2 사용자 디바이스로 전송된 미디어 콘텐츠 스트림에 대응하는 미디어 콘텐츠 데이터를 동기화된 미디어 재생 세션에 참여하는 다른 사용자 디바이스들보다 더 적게 저장했다는 것을 표시하는 정보를 수신할 수 있다. 일부 실시예에서, 프로세스(200)는 제2 사용자 디바이스로부터의 정보를 임의의 적합한 방식으로 수신할 수 있다. 예를 들어, 일부 실시예에서, 동기화된 미디어 재생 세션에 참여하는 각 사용자 디바이스는 사용자 디바이스의 버퍼의 현재 상태(예를 들어, 버퍼 내 현재 데이터의 양, 버퍼 내 현재 데이터의 재생 지속기간, 및/또는 버퍼의 상태를 표시하는 다른 적합한 정보)를 표시하는 메시지를 프로세스(200)와 연관된 서버로 주기적으로 전송할 수 있다. 이러한 일부 실시예에서, 프로세스(200)는 제2 사용자 디바이스로부터 수신된 정보와 다른 사용자 디바이스들로부터 수신된 정보 간의 비교에 기초하여, 제2 사용자 디바이스가 제2 사용자 디바이스의 버퍼에 저장된 미디어 콘텐츠 데이터를 다른 사용자 디바이스들이 그들 각자의 버퍼들에 저장한 것보다 더 적게 갖고 있다는 것을 결정할 수 있다. 예를 들어, 제2 사용자 디바이스가 현재 제2 사용자 디바이스의 버퍼에 2 초의 재생 데이터가 저장되어 있다고 표시하는 메시지를 제2 사용자 디바이스가 전송하고, 다른 사용자 디바이스들이 그들 각자의 버퍼들에 실질적으로 더 많은 데이터(예를 들어, 8 초 초과의 재생 데이터, 10 초 초과의 재생 데이터 및/또는 임의의 다른 적합한 양)가 저장되어 있다고 다른 사용자 디바이스들이 표시하는 경우에, 프로세스(200)는 제2 사용자 디바이스가 세션에 참여하는 다른 사용자 디바이스들에 비해 제2 사용자 디바이스의 버퍼에 저장된 미디어 콘텐츠 데이터를 더 적게 갖고 있다는 것을 결정할 수 있다.
(214)에서, 프로세스(200)는 제2 사용자 디바이스로 이전에 전송된 미디어 콘텐츠 스트림보다 더 낮은 품질 레벨의 미디어 콘텐츠 스트림을 선택 및/또는 생성할 수 있다. 예를 들어, 블록(206)과 관련하여 위에서 설명한 바와 같이, 프로세스(200)는 원래 전송된 미디어 콘텐츠 스트림보다 더 낮은 비트레이트로 인코딩된 미디어 콘텐츠 스트림을 선택 및/또는 생성할 수 있다. 일부 실시예에서, 프로세스(200)는 대응하는 미디어 콘텐츠 아이템의 임의의 적합한 재생 위치로부터 시작하는 더 낮은 품질의 미디어 콘텐츠 스트림을 생성할 수 있다. 예를 들어, 일부 실시예에서, 프로세스(200)는 제2 사용자 디바이스에 의해 버퍼링된 마지막 재생 위치 다음의 위치에서 시작하는 더 낮은 품질의 미디어 콘텐츠 스트림을 생성할 수 있다. 이러한 일부 실시예에서, 프로세스(200)는 임의의 적합한 정보, 이를테면 제2 사용자 디바이스로부터 전송된 프로세스(200)와 연관된 서버에 의해 수신된 메시지에 포함된 정보에 기초하여, 제2 사용자 디바이스에 의해 버퍼링된 마지막 재생 위치를 결정할 수 있다.
블록(206)과 관련하여 위에서 설명한 바와 유사하게, 프로세스(200)는 임의의 적합한 정보 또는 정보의 임의의 적합한 조합에 기초하여, 제2 사용자 디바이스로 전송될 더 낮은 품질의 미디어 콘텐츠 스트림의 스트림 파라미터들을 선택할 수 있다. 예를 들어, 위에서 설명한 바와 같이, 프로세스(200)는 제2 사용자 디바이스와 연관된 정보, 이를테면, 현재 버퍼링된 데이터의 양을 표시하는 정보, 제2 사용자 디바이스와 프로세스(200)와 연관된 서버 사이의 네트워크 연결의 품질을 표시하는 정보, 제2 사용자 디바이스에 관한 정보(예를 들어, 디바이스 유형, 제2 사용자 디바이스의 디스플레이에 관한 정보 및/또는 임의의 다른 적합한 정보), 및/또는 임의의 다른 적합한 정보에 기초하여 스트림 파라미터들을 선택할 수 있다. 다른 예로서, 일부 실시예에서, 프로세스(200)는 동기화된 미디어 재생 세션에 참여하는 다른 사용자 디바이스들에 관한 정보, 이를테면 다른 사용자 디바이스들 각각의 네트워크 연결들의 품질에 관한 정보, 다른 사용자 디바이스들 각각에 의해 현재 버퍼링된 데이터의 양 및/또는 임의의 다른 적합한 정보에 기초하여 스트림 파라미터들을 선택할 수 있다. 보다 특정한 예로서, 일부 실시예에서, 프로세스(200)는 제2 사용자 디바이스로 하여금 미리 결정된 시간의 지속기간 이내(예를 들어, 2 초 이내, 5 초 이내, 및/또는 임의의 다른 적합한 지속기간 이내)에 세션에 참여하는 다른 사용자 디바이스들에 의해 버퍼링된 데이터 양의 평균(예를 들어, 평균, 가중 평균, 중간 값 및/또는 임의의 다른 적합한 평균)과 동일한 양의 미디어 콘텐츠 데이터를 버퍼링할 수 있도록 하기에 충분히 낮은 비트레이트로 더 낮은 품질 스트림이 인코딩되어야 한다고 결정할 수 있다.
(216)에서, 프로세스(200)는 더 낮은 품질의 미디어 콘텐츠 스트림을 제2 사용자 디바이스로 전송할 수 있다. 일부 실시예에서, 제2 사용자 디바이스는 더 낮은 품질의 미디어 콘텐츠 스트림을 버퍼링한 다음, 버퍼로부터 더 낮은 품질의 미디어 콘텐츠 스트림을 제시하기 시작할 수 있다.
일부 실시예에서, 프로세스(200)는 동기화된 미디어 재생 세션에 참여하는 사용자 디바이스들 사이에서 동기화를 유지하기 위해 임의의 다른 적합한 기술들을 사용할 수 있다는 것이 유의된다. 예를 들어, 동기화된 미디어 재생 세션에 참여하는 사용자 디바이스가 추가 미디어 콘텐츠 데이터를 버퍼링하기 위해 재생을 일시 중지하는 경우에, 프로세스(200)는 재생을 일시 중지한 사용자 디바이스 및/또는 동기화된 재생 세션에 참여하는 다른 사용자 디바이스들에 대한 재생 속도를 변경할 수 있다. 보다 특정한 예로서, 일부 실시예에서, 프로세스(200)는 추가 미디어 콘텐츠 데이터를 버퍼링하기 위해 재생을 일시 중지하였다가 재개한 사용자 디바이스에 대한 재생 속도를 높일 수 있으며, 이에 따라 사용자 디바이스가 동기화된 미디어 재생 세션의 다른 사용자 디바이스들을 따라잡을 수 있게 한다. 다른 보다 특정한 예로서, 일부 실시예에서, 프로세스(200)는 동기화된 미디어 재생 세션에 참여하는 다른 사용자 디바이스들에 대한 재생 속도를 늦출 수 있으며, 이에 따라 다른 사용자 디바이스들로 하여금 재생을 일시 중지한 사용자 디바이스들이 동기화된 미디어 재생 세션을 따라잡을 수 있게 한다. 일부 실시예에서, 프로세스(200)는 임의의 적합한 기준에 기초하여 동기화된 미디어 재생 세션에 참여하는 하나 이상의 사용자 디바이스에 대해 재생 속도가 변경되게 할 수 있다는 것이 유의된다. 예를 들어, 일부 실시예에서, 프로세스(200)는 사용자 디바이스가 세션에 참여하는 다른 사용자 디바이스들과의 동기를 벗어나 미리 결정된 시간의 지속기간을 초과(예를 들어, 2초 초과, 5초 초과, 및/또는 임의의 다른 적합한 시간의 지속기간을 초과) 한다는 결정에 응답하여 재생 속도를 변경할 수 있다.
또한, 일부 실시예에서, 프로세스(200)는 기존의 동기화된 미디어 재생 세션에 합류하는 추가 사용자 디바이스의 동기화를 조정하기 위해 임의의 적합한 기술들 또는 기술들의 조합을 사용할 수 있다는 것이 유의된다. 예를 들어, 일부 실시예에서, 프로세스(200)는 추가 사용자 디바이스가 동기화된 재생의 다른 사용자 디바이스들과 합류하기 위해 미디어 콘텐츠 데이터를 버퍼링하는 동안 미디어 콘텐츠 아이템의 재생이 세션의 모든 사용자 디바이스에서 일시 중지되게 할 수 있다. 다른 예로서, 일부 실시예에서, 프로세스(200)는 동기화된 미디어 재생 세션에서 제시되는 미디어 콘텐츠 아이템의 미래 재생 위치(예를 들어, 현재 재생 위치의 5초 뒤의 재생 위치, 현재 재생 위치의 10초 뒤의 재생 위치, 및/또는 임의의 다른 적합한 미래 재생 위치)를 식별할 수 있고, 미래 재생 위치에서 시작하는 미디어 콘텐츠 데이터를 추가 사용자 디바이스로 추가(제3) 사용자 디바이스에서 버퍼링을 위해 전송할 수 있다. 그 다음에, 프로세스(200)는 세션의 다른 사용자 디바이스들이 미래 재생 위치에 도달하는 시간에 추가 사용자 디바이스로 하여금 미래 재생 위치로부터 미디어 콘텐츠 아이템의 재생을 시작하게 하는 지시들을 추가 사용자 디바이스로 전송할 수 있으며, 이에 따라 추가 사용자 디바이스가 동기화된 세션에 합류할 수 있도록 할 수 있다. 또 다른 예로서, 일부 실시예에서, 프로세스(200)는 현재 재생 위치로부터 미디어 콘텐츠 데이터를 추가 사용자 디바이스로 전송하기 시작할 수 있고, 이어서 추가 사용자 디바이스의 버퍼링 속도 및/또는 네트워크 연결 정보에 기초하여 추가 사용자 디바이스가 미리 결정된 양의 미디어 콘텐츠 데이터(예를 들어, 특정 킬로바이트 숫자의 데이터, 재생의 특정 지속기간에 대응하는 양의 데이터, 및/또는 임의의 다른 적합한 양의 데이터)를 버퍼링할 미래 재생 위치를 추정할 수 있다. 그 다음에, 프로세스(200)는 추정된 미래 재생 위치로부터 미디어 콘텐츠 아이템을 제시하기 시작하라는 지시들과 관련하여 추정된 미래 재생 위치에 대응하는 미디어 콘텐츠 데이터를 추가 사용자 디바이스로 전송하기 시작할 수 있다.
도 3을 참조하면, 개시된 주제의 일부 실시예에 따라 사용될 수 있는 다수의 디바이스에서 동기화된 미디어 콘텐츠 재생 동안 품질 레벨을 조절하기 위한 하드웨어의 예(300)가 도시된다. 예시된 바와 같이, 하드웨어(300)는 서버(302), 통신 네트워크(304) 및/또는 사용자 디바이스들(308 및 310)과 같은 하나 이상의 사용자 디바이스(306)를 포함할 수 있다. 예를 들어, 사용자 디바이스들(308 및 310)을 포함하는 다수의 사용자 디바이스(306)는 통신 네트워크(304)를 통해 하나 이상의 서버(302)에 의해 관리되는 동기화된 미디어 재생 세션에 참여할 수 있다. 다른 예에서, 서버(302)는 동기화된 미디어 재생 세션의 미디어 콘텐츠를 사용자 디바이스들(308 및 310)과 같은 하나 이상의 사용자 디바이스(306)에 제공하도록 구성될 수 있고, 또한 동기화된 미디어 재생 세션의 동기화 특징들을 핸들링하도록 구성될 수 있다. 또 다른 예에서, 제1 서버(302)는 동기화된 미디어 재생 세션의 미디어 콘텐츠를 하나 이상의 사용자 디바이스(306)에 제공하도록 구성될 수 있고 제2 서버(302)는 동기화된 미디어 재생 세션을 핸들링하도록 구성될 수 있다.
서버(302)는 정보, 데이터 및/또는 미디어 콘텐츠를 저장하기 위한 임의의 적합한 서버(들)일 수 있다. 예를 들어, 일부 실시예에서, 서버(302)는 프리젠테이션을 위해 사용자 디바이스들(306)로 전송될 수 있는 미디어 콘텐츠 아이템들을 저장할 수 있다. 이러한 일부 실시예에서, 미디어 콘텐츠 아이템들은 임의의 적합한 유형들의 미디어 콘텐츠, 이를테면 비디오들, 영화들, 텔레비전 프로그램들, 라이브 스트리밍 콘텐츠, 오디오 콘텐츠(예를 들어, 음악, 오디오북들, 라디오 프로그램들 및/또는 임의의 다른 적합한 오디오 콘텐츠) 및/또는 임의의 다른 적합한 유형의 미디어 콘텐츠를 포함할 수 있다. 다른 예로서, 일부 실시예에서, 서버(302)는 도 1 및 도 2와 관련하여 위에서 설명한 바와 같이 다수의 사용자 디바이스(306)에서 미디어 콘텐츠의 동기화된 재생을 조정할 수 있다. 보다 특정한 예로서, 일부 실시예에서, 서버(302)는 다수의 사용자 디바이스로부터 동기화된 미디어 재생 세션에서 미디어 콘텐츠 아이템의 재생을 개시하게 하는 요청을 수신할 수 있고, 도 2와 관련하여 위에서 설명된 바와 같이, 모든 사용자 디바이스가 미리 결정된 양의 미디어 콘텐츠 데이터를 버퍼링했다는 결정에 응답하여, 사용자 디바이스들에게 미디어 콘텐츠 아이템의 재생을 시작하도록 지시할 수 있다
통신 네트워크(304)는 일부 실시예에서 하나 이상의 유선 및/또는 무선 네트워크의 임의의 적합한 조합일 수 있다. 예를 들어, 통신 네트워크(304)는 인터넷, 인트라넷, 광역 네트워크(wide-area network)(WAN), 근거리 네트워크(local-area network)(LAN), 무선 네트워크, 디지털 가입자 회선(digital subscriber line)(DSL) 네트워크, 프레임 릴레이 네트워크, 비동기 전송 모드(asynchronous transfer mode)(ATM) 네트워크, 가상 사설 네트워크(virtual private network)(VPN) 및/또는 임의의 다른 적합한 통신 네트워크 중 임의의 하나 이상을 포함할 수 있다. 사용자 디바이스들(206)은 하나 이상의 통신 링크(예를 들어, 통신 링크들(312))에 의해, 하나 이상의 통신 링크(예를 들어, 통신 링크들(314))를 통해 서버(302)에 링크될 수 있는 통신 네트워크(304)에 연결될 수 있다. 통신 링크들은 네트워크 링크들, 다이얼-얼 링크(dial-up link)들, 무선 링크들, 하드-와이어드 링크(hard-wired link)들, 임의의 다른 적합한 통신 링크들 또는 이러한 링크들의 임의의 적합한 조합과 같이 사용자 디바이스들(306)과 서버(302) 사이에서 데이터를 통신하기에 적합한 임의의 통신 링크들일 수 있다.
사용자 디바이스들(306)은 미디어 콘텐츠를 제시하고/하거나 동기화된 미디어 재생 세션에 참여하기에 적합한 임의의 하나 이상의 사용자 디바이스를 포함할 수 있다. 예를 들어, 일부 실시예에서, 사용자 디바이스들(306)은 모바일 폰, 태블릿 컴퓨터, 스마트 텔레비전, 미디어 플레이어, 데스크톱 컴퓨터, 차량 엔터테인먼트 시스템, 웨어러블 컴퓨터 및/또는 임의의 다른 적합한 유형의 사용자 디바이스를 포함할 수 있다.
서버(302)가 하나의 디바이스로서 도시되어 있지만, 서버(302)에 의해 수행되는 기능들은 일부 실시예에서 임의의 적합한 개수의 디바이스들을 사용하여 수행될 수 있다. 예를 들어, 일부 실시예에서, 다수의 디바이스가 서버(302)에 의해 수행되는 기능을 구현하기 위해 사용될 수 있다.
도면을 과도하게 복잡해지는 것을 회피하기 위해 도 3에서 2개의 사용자 디바이스(308 및 310)가 도시되어 있지만, 일부 실시예에서 임의의 적합한 개수의 사용자 디바이스들 및/또는 임의의 적합한 유형들의 사용자 디바이스들이 사용될 수 있다.
서버(302) 및 사용자 디바이스들(306)은 일부 실시예에서 임의의 적합한 하드웨어를 사용하여 구현될 수 있다. 예를 들어, 일부 실시예에서, 디바이스들(302 및 306)은 임의의 적합한 범용 컴퓨터 또는 특수 목적 컴퓨터를 사용하여 구현될 수 있다. 예를 들어, 특수 목적 컴퓨터를 사용하여 모바일 폰이 구현될 수 있다. 임의의 이러한 범용 컴퓨터 또는 특수 목적 컴퓨터는 임의의 적합한 하드웨어를 포함할 수 있다. 예를 들어, 도 4의 예시적인 하드웨어(400)에서 예시된 바와 같이, 그러한 하드웨어는 하드웨어 프로세서(402), 메모리 및/또는 저장소(404), 입력 디바이스 컨트롤러(406), 입력 디바이스(408), 디스플레이/오디오 드라이버들(410), 디스플레이 및 오디오 출력 회로(412), 통신 인터페이스(들)(414), 안테나(416) 및 버스(418)를 포함할 수 있다.
하드웨어 프로세서(402)는 임의의 적합한 하드웨어 프로세서, 이를테면 마이크로프로세서, 마이크로-컨트롤러, 디지털 신호 프로세서(들), 전용 로직, 및/또는 일부 실시예에서 범용 컴퓨터 또는 특수 목적 컴퓨터의 기능을 제어하기 위한 임의의 다른 적합한 회로를 포함할 수 있다. 일부 실시예에서, 하드웨어 프로세서(402)는 서버(402)와 같은 서버의 메모리 및/또는 저장소에 저장된 서버 프로그램에 의해 제어될 수 있다. 예를 들어, 일부 실시예에서, 서버 프로그램은 하드웨어 프로세서(402)로 하여금 동기화된 미디어 콘텐츠 시청 세션을 조정하기 위한 요청을 수신하게 하고, 다수의 사용자 디바이스가 동기화된 미디어 콘텐츠 시청 세션을 시작할 준비가 되었는지를 결정하게 하고, 사용자 디바이스들에게 동기화된 미디어 콘텐츠 시청 세션을 시작하라는 지시들을 전송하게 하고, 미디어 콘텐츠의 스트림의 품질을 조절하게 하고/하거나, 임의의 다른 적합한 기능들을 수행하게 할 수 있다. 일부 실시예에서, 하드웨어 프로세서(402)는 사용자 디바이스(306)의 메모리 및/또는 저장소(404)에 저장된 컴퓨터 프로그램에 의해 제어될 수 있다. 예를 들어, 컴퓨터 프로그램은 하드웨어 프로세서(402)로 하여금 수신된 미디어 콘텐츠 데이터를 사용자 디바이스(306)의 버퍼에 저장하게 하고, 미리 결정된 양의 미디어 콘텐츠 데이터가 버퍼링되었다는 결정에 응답하여 메시지를 서버(302)로 전송하게 하고, 미디어 콘텐츠를 동기화된 미디어 콘텐츠 재생 세션의 일부로서 제시하게 하고, 사용자 디바이스(306)의 버퍼의 현재 상태 및/또는 네트워크 연결의 현재 품질을 표시하는 메시지를 서버(302)로 전송하게 하고/하거나, 임의의 다른 적합한 기능을 수행하게 할 수 있다.
메모리 및/또는 저장소(404)는 일부 실시예에서 프로그램들, 데이터 및/또는 임의의 다른 적합한 정보를 저장하기 위한 임의의 적합한 메모리 및/또는 저장소일 수 있다. 예를 들어, 메모리 및/또는 저장소(404)는 랜덤 액세스 메모리, 판독 전용 메모리, 플래시 메모리, 하드 디스크 저장소, 광학 매체들 및/또는 임의의 다른 적합한 메모리를 포함할 수 있다.
입력 디바이스 컨트롤러(406)는 일부 실시예에서 하나 이상의 입력 디바이스(408)로부터의 입력을 제어하고 수신하기 위한 임의의 적합한 회로일 수 있다. 예를 들어, 입력 디바이스 컨트롤러(406)는 터치 스크린으로부터, 키보드로부터, 하나 이상의 버튼으로부터, 음성 인식 회로로부터, 마이크로폰으로부터, 카메라로부터, 광학 센서로부터, 가속도계로부터, 온도 센서로부터, 근거리 센서로부터, 압력 센서로부터, 인코더로부터 및/또는 임의의 다른 유형의 입력 디바이스로부터 입력을 수신하기 위한 회로일 수 있다.
디스플레이/오디오 드라이버들(410)은 일부 실시예에서 하나 이상의 디스플레이/오디오 출력 디바이스(412)로 향하는 출력을 제어하고 구동하기 위한 임의의 적합한 회로일 수 있다. 예를 들어, 디스플레이/오디오 드라이버들(410)은 터치스크린, 평판 디스플레이, 음극선관 디스플레이, 프로젝터, 스피커 또는 스피커들 및/또는 임의의 다른 적합한 디스플레이 및/또는 프리젠테이션 디바이스들을 구동하기 위한 회로일 수 있다.
통신 인터페이스(들)(414)는 하나 이상의 통신 네트워크(예를 들어, 컴퓨터 네트워크(304))와 인터페이스하기 위한 임의의 적합한 회로일 수 있다. 예를 들어, 인터페이스(들)(414)는 네트워크 인터페이스 카드 회로, 무선 통신 회로, 및/또는 임의의 다른 적합한 유형의 통신 네트워크 회로를 포함할 수 있다.
안테나(416)는 일부 실시예에서 통신 네트워크(예를 들어, 통신 네트워크(304))와 무선으로 통신하기 위한 임의의 적합한 하나 이상의 안테나일 수 있다. 일부 실시예에서, 안테나(416)는 생략될 수 있다.
버스(418)는 일부 실시예에서 2개 이상의 컴포넌트(402, 404, 406, 410 및 414) 사이에서 통신하기 위한 임의의 적합한 메커니즘일 수 있다.
일부 실시예에 따라 임의의 다른 적합한 컴포넌트들이 하드웨어(400)에 포함될 수 있다.
일부 실시예에서, 도 1 및 도 2의 프로세스들의 위에서 설명된 블록들 중 적어도 일부는 도면들에 도시되고 도면들과 관련하여 설명된 순서 및 차례로 제한되지 않는 임의의 순서 또는 차례로 실행되거나 수행될 수 있다. 또한, 도 1 및 도 2의 위의 블록들 중 일부는 대기 시간 및 프로세싱 시간들을 줄이기 위해 적절한 경우 실질적으로 동시에 또는 병렬로 실행되거나 수행될 수 있다. 부가적으로 또는 대안적으로, 도 1 및 도 2의 프로세스들의 위에서 설명한 블록들 중 일부는 생략될 수 있다. 예를 들어, 도 3의 블록들(212, 214 및 216)을 참조하여 설명된 바와 같은 방법은 원칙적으로 도 3의 블록들(202 내지 210)을 참조하여 설명된 바와 같이 시작되지 않은 동기화된 미디어 재생 세션의 경우에 적용될 수 있다.
일부 실시예에서, 임의의 적합한 컴퓨터 판독 가능 매체들은 본 명세서에서 기능들 및/또는 프로세스들을 수행하기 위한 명령어들을 저장하기 위해 사용될 수 있다. 예를 들어, 일부 실시예에서, 컴퓨터 판독 가능 매체는 비일시적일 수 있다. 예를 들어, 비일시적 컴퓨터 판독 가능 매체는 비일시적 형태들의 자기 매체(이를테면, 하드 디스크들, 플로피 디스크들 및/또는 임의의 다른 적합한 자기 매체들), 비일시적 형태들의 광학 매체들(이를테면, 콤팩트 디스크들, 디지털 비디오 디스크들, 블루-레이(Blu-ray) 디스크들 및/또는 임의의 다른 적합한 광학 매체들), 비일시적 형태들의 반도체 매체들(이를테면, 플래시 메모리, 전기적으로 프로그램 가능한 판독 전용 메모리(Electrical Programmable Read-Only Memory)(EPROM), 전기적으로 소거 가능한 프로그램 가능 판독 전용 메모리(electrically erasable programmable read-only memory)(EEPROM), 및/또는 임의의 다른 적합한 반도체 매체들), 전송 중 외견상 영속성이 없거나 일시적인 것이 아닌 임의의 적합한 매체들 및/또는 임의의 적합한 유형 매체들(tangible media)과 같은 매체들을 포함할 수 있다.
따라서, 동기화된 미디어 콘텐츠 프리젠테이션 동안 품질 레벨을 조절하기 위한 방법들, 시스템들 및 매체들이 제공된다.
비록 본 발명이 전술한 예시적인 실시예들에서 설명되고 예시되었지만, 본 개시내용은 단지 예로서 만들어졌고, 다음의 청구 범위에 의해서만 제한되는 본 발명의 사상 및 범주를 벗어나지 않으면서 본 발명의 구현의 세부 사항에서 많은 변경이 이루어질 수 있다는 것이 이해된다. 개시된 실시예들의 특징들은 다양한 방식으로 결합되고 재 배열될 수 있다.

Claims (18)

  1. 미디어 콘텐츠의 재생을 동기화하기 위한 방법으로서,
    서버로부터 제1 사용자 디바이스로, 미디어 콘텐츠 아이템의 제1 스트림에 대응하는 제1 미디어 콘텐츠 데이터를 전송하고, 상기 서버로부터 제2 사용자 디바이스로, 상기 미디어 콘텐츠 아이템의 제2 스트림에 대응하는 제2 미디어 콘텐츠 데이터를 전송하는 단계 - 상기 제1 미디어 콘텐츠 데이터는 상기 제1 사용자 디바이스의 버퍼에 저장되고, 상기 제2 미디어 콘텐츠 데이터는 상기 제2 사용자 디바이스의 버퍼에 저장됨 -;
    상기 서버로부터 상기 제1 사용자 디바이스 및 상기 제2 사용자 디바이스로, 상기 제1 사용자 디바이스 및 상기 제2 사용자 디바이스로 하여금 상기 미디어 콘텐츠 아이템을 동시에 제시하기를 시작하게 하는 지시들을 전송하는 단계;
    상기 서버에 의해, 상기 제2 미디어 콘텐츠 데이터가 상기 제2 사용자 디바이스의 상기 버퍼에 저장되고 있는 것보다 느린 속도로 상기 제1 미디어 콘텐츠 데이터가 상기 제1 사용자 디바이스의 상기 버퍼에 저장되고 있다는 것을 결정하는 단계;
    상기 제2 미디어 콘텐츠 데이터가 상기 제2 사용자 디바이스의 상기 버퍼에 저장되고 있는 것보다 느린 속도로 상기 제1 미디어 콘텐츠 데이터가 상기 제1 사용자 디바이스의 상기 버퍼에 저장되고 있다는 결정에 응답하여, 상기 미디어 콘텐츠 아이템의 상기 제1 스트림에 대응하는 상기 미디어 콘텐츠 아이템의 제3 스트림을 선택하는 단계 - 상기 미디어 콘텐츠 아이템의 상기 제3 스트림은 상기 미디어 콘텐츠 아이템의 상기 제1 스트림보다 낮은 품질 레벨을 가짐 -; 및
    상기 미디어 콘텐츠 아이템의 상기 제3 스트림에 대응하는 제3 미디어 콘텐츠 데이터를 상기 제1 사용자 디바이스로 전송하는 단계
    를 포함하는, 미디어 콘텐츠의 재생을 동기화하기 위한 방법.
  2. 제1항에 있어서,
    상기 제1 사용자 디바이스 및 상기 제2 사용자 디바이스로 하여금 상기 미디어 콘텐츠 아이템을 동시에 제시하기를 시작하게 하는 상기 지시들은 상기 제1 사용자 디바이스 및 상기 제2 사용자 디바이스가 상기 미디어 콘텐츠 아이템에 대응하는 미리 결정된 양의 상기 미디어 콘텐츠 데이터를 버퍼링했다는 결정에 기초하는, 미디어 콘텐츠의 재생을 동기화하기 위한 방법.
  3. 제1항 또는 제2항에 있어서,
    상기 제2 미디어 콘텐츠 데이터가 상기 제2 사용자 디바이스의 상기 버퍼에 저장되고 있는 것보다 느린 속도로 상기 제1 미디어 콘텐츠 데이터가 상기 제1 사용자 디바이스의 상기 버퍼에 저장되고 있다는 것을 결정하는 단계는 상기 제1 사용자 디바이스로부터 상기 서버에 의해 수신되는 메시지에 기초하는, 미디어 콘텐츠의 재생을 동기화하기 위한 방법.
  4. 제3항에 있어서,
    상기 메시지는 상기 메시지가 상기 제1 사용자 디바이스에 의해 상기 서버로 전송되는 시간에 상기 제1 사용자 디바이스의 상기 버퍼에 저장된 상기 제1 미디어 콘텐츠 데이터의 현재 양을 표시하는, 미디어 콘텐츠의 재생을 동기화하기 위한 방법.
  5. 제1항 또는 제2항에 있어서,
    상기 제2 미디어 콘텐츠 데이터가 상기 제2 사용자 디바이스의 상기 버퍼에 저장되고 있는 것보다 느린 속도로 상기 제1 미디어 콘텐츠 데이터가 상기 제1 사용자 디바이스의 상기 버퍼에 저장되고 있다는 것을 결정하는 단계는 상기 제1 사용자 디바이스의 상기 버퍼에 저장된 상기 제1 미디어 콘텐츠 데이터의 양과 상기 제2 사용자 디바이스의 상기 버퍼에 저장된 상기 제2 미디어 콘텐츠 데이터의 양의 비교에 기초하는, 미디어 콘텐츠의 재생을 동기화하기 위한 방법.
  6. 제1항 또는 제2항에 있어서,
    상기 미디어 콘텐츠 아이템의 상기 제3 스트림은 상기 미디어 콘텐츠 아이템의 상기 제1 스트림보다 낮은 비트레이트를 갖는, 미디어 콘텐츠의 재생을 동기화하기 위한 방법.
  7. 미디어 콘텐츠의 재생을 동기화하기 위한 시스템으로서,
    메모리; 및
    서버 상의 하드웨어 프로세서
    를 포함하고, 상기 하드웨어 프로세서는, 상기 메모리에 저장된 컴퓨터 실행 가능 명령어들을 실행할 때,
    상기 서버로부터 제1 사용자 디바이스로, 미디어 콘텐츠 아이템의 제1 스트림에 대응하는 제1 미디어 콘텐츠 데이터를 전송하고, 상기 서버로부터 제2 사용자 디바이스로, 상기 미디어 콘텐츠 아이템의 제2 스트림에 대응하는 제2 미디어 콘텐츠 데이터를 전송하고 - 상기 제1 미디어 콘텐츠 데이터는 상기 제1 사용자 디바이스의 버퍼에 저장되고, 상기 제2 미디어 콘텐츠 데이터는 상기 제2 사용자 디바이스의 버퍼에 저장됨 -;
    상기 서버로부터 상기 제1 사용자 디바이스 및 상기 제2 사용자 디바이스로, 상기 제1 사용자 디바이스 및 상기 제2 사용자 디바이스로 하여금 상기 미디어 콘텐츠 아이템을 동시에 제시하기를 시작하게 하는 지시들을 전송하고;
    상기 서버에 의해, 상기 제2 미디어 콘텐츠 데이터가 상기 제2 사용자 디바이스의 상기 버퍼에 저장되고 있는 것보다 느린 속도로 상기 제1 미디어 콘텐츠 데이터가 상기 제1 사용자 디바이스의 상기 버퍼에 저장되고 있다는 것을 결정하고;
    상기 제2 미디어 콘텐츠 데이터가 상기 제2 사용자 디바이스의 상기 버퍼에 저장되고 있는 것보다 느린 속도로 상기 제1 미디어 콘텐츠 데이터가 상기 제1 사용자 디바이스의 상기 버퍼에 저장되고 있다는 결정에 응답하여, 상기 미디어 콘텐츠 아이템의 상기 제1 스트림에 대응하는 상기 미디어 콘텐츠 아이템의 제3 스트림을 선택하고 - 상기 미디어 콘텐츠 아이템의 상기 제3 스트림은 상기 미디어 콘텐츠 아이템의 상기 제1 스트림보다 낮은 품질 레벨을 가짐 -;
    상기 미디어 콘텐츠 아이템의 상기 제3 스트림에 대응하는 제3 미디어 콘텐츠 데이터를 상기 제1 사용자 디바이스로 전송하도록
    구성되는, 미디어 콘텐츠의 재생을 동기화하기 위한 시스템.
  8. 제7항에 있어서,
    상기 제1 사용자 디바이스 및 상기 제2 사용자 디바이스로 하여금 상기 미디어 콘텐츠 아이템을 동시에 제시하기를 시작하게 하는 상기 지시들은 상기 제1 사용자 디바이스 및 상기 제2 사용자 디바이스가 상기 미디어 콘텐츠 아이템에 대응하는 미리 결정된 양의 상기 미디어 콘텐츠 데이터를 버퍼링했다는 결정에 기초하는, 미디어 콘텐츠의 재생을 동기화하기 위한 시스템.
  9. 제7항에 있어서,
    상기 제2 미디어 콘텐츠 데이터가 상기 제2 사용자 디바이스의 상기 버퍼에 저장되고 있는 것보다 느린 속도로 상기 제1 미디어 콘텐츠 데이터가 상기 제1 사용자 디바이스의 상기 버퍼에 저장되고 있다는 것을 결정하는 것은 상기 제1 사용자 디바이스로부터 상기 서버에 의해 수신되는 메시지에 기초하는, 미디어 콘텐츠의 재생을 동기화하기 위한 시스템.
  10. 제9항에 있어서,
    상기 메시지는 상기 메시지가 상기 제1 사용자 디바이스에 의해 상기 서버로 전송되는 시간에 상기 제1 사용자 디바이스의 상기 버퍼에 저장된 상기 제1 미디어 콘텐츠 데이터의 현재 양을 표시하는, 미디어 콘텐츠의 재생을 동기화하기 위한 시스템.
  11. 제7항에 있어서,
    상기 제2 미디어 콘텐츠 데이터가 상기 제2 사용자 디바이스의 상기 버퍼에 저장되고 있는 것보다 느린 속도로 상기 제1 미디어 콘텐츠 데이터가 상기 제1 사용자 디바이스의 상기 버퍼에 저장되고 있다는 것을 결정하는 것은 상기 제1 사용자 디바이스의 상기 버퍼에 저장된 상기 제1 미디어 콘텐츠 데이터의 양과 상기 제2 사용자 디바이스의 상기 버퍼에 저장된 상기 제2 미디어 콘텐츠 데이터의 양의 비교에 기초하는, 미디어 콘텐츠의 재생을 동기화하기 위한 시스템.
  12. 제7항에 있어서,
    상기 미디어 콘텐츠 아이템의 상기 제3 스트림은 상기 미디어 콘텐츠 아이템의 상기 제1 스트림보다 낮은 비트레이트를 갖는, 미디어 콘텐츠의 재생을 동기화하기 위한 시스템.
  13. 서버 상의 프로세서에 의해 실행될 때, 상기 프로세서로 하여금 미디어 콘텐츠의 재생을 동기화하기 위한 방법을 수행하게 하는 컴퓨터 실행 가능 명령어들을 포함하는 컴퓨터 판독 가능 매체로서,
    상기 방법은,
    상기 서버로부터 제1 사용자 디바이스로, 미디어 콘텐츠 아이템의 제1 스트림에 대응하는 제1 미디어 콘텐츠 데이터를 전송하고, 상기 서버로부터 제2 사용자 디바이스로, 상기 미디어 콘텐츠 아이템의 제2 스트림에 대응하는 제2 미디어 콘텐츠 데이터를 전송하는 단계 - 상기 제1 미디어 콘텐츠 데이터는 상기 제1 사용자 디바이스의 버퍼에 저장되고, 상기 제2 미디어 콘텐츠 데이터는 상기 제2 사용자 디바이스의 버퍼에 저장됨 -;
    상기 서버로부터 상기 제1 사용자 디바이스 및 상기 제2 사용자 디바이스로, 상기 제1 사용자 디바이스 및 상기 제2 사용자 디바이스로 하여금 상기 미디어 콘텐츠 아이템을 동시에 제시하기를 시작하게 하는 지시들을 전송하는 단계;
    상기 서버에 의해, 상기 제2 미디어 콘텐츠 데이터가 상기 제2 사용자 디바이스의 상기 버퍼에 저장되고 있는 것보다 느린 속도로 상기 제1 미디어 콘텐츠 데이터가 상기 제1 사용자 디바이스의 상기 버퍼에 저장되고 있다는 것을 결정하는 단계;
    상기 제2 미디어 콘텐츠 데이터가 상기 제2 사용자 디바이스의 상기 버퍼에 저장되고 있는 것보다 느린 속도로 상기 제1 미디어 콘텐츠 데이터가 상기 제1 사용자 디바이스의 상기 버퍼에 저장되고 있다는 결정에 응답하여, 상기 미디어 콘텐츠 아이템의 상기 제1 스트림에 대응하는 상기 미디어 콘텐츠 아이템의 제3 스트림을 선택하는 단계 - 상기 미디어 콘텐츠 아이템의 상기 제3 스트림은 상기 미디어 콘텐츠 아이템의 상기 제1 스트림보다 낮은 품질 레벨을 가짐 -; 및
    상기 미디어 콘텐츠 아이템의 상기 제3 스트림에 대응하는 제3 미디어 콘텐츠 데이터를 상기 제1 사용자 디바이스로 전송하는 단계
    를 포함하는, 컴퓨터 판독 가능 매체.
  14. 제13항에 있어서,
    상기 제1 사용자 디바이스 및 상기 제2 사용자 디바이스로 하여금 상기 미디어 콘텐츠 아이템을 동시에 제시하기를 시작하게 하는 상기 지시들은 상기 제1 사용자 디바이스 및 상기 제2 사용자 디바이스가 상기 미디어 콘텐츠 아이템에 대응하는 미리 결정된 양의 상기 미디어 콘텐츠 데이터를 버퍼링했다는 결정에 기초하는, 컴퓨터 판독 가능 매체.
  15. 제13항에 있어서,
    상기 제2 미디어 콘텐츠 데이터가 상기 제2 사용자 디바이스의 상기 버퍼에 저장되고 있는 것보다 느린 속도로 상기 제1 미디어 콘텐츠 데이터가 상기 제1 사용자 디바이스의 상기 버퍼에 저장되고 있다는 것을 결정하는 단계는 상기 제1 사용자 디바이스로부터 상기 서버에 의해 수신되는 메시지에 기초하는, 컴퓨터 판독 가능 매체.
  16. 제15항에 있어서,
    상기 메시지는 상기 메시지가 상기 제1 사용자 디바이스에 의해 상기 서버로 전송되는 시간에 상기 제1 사용자 디바이스의 상기 버퍼에 저장된 상기 제1 미디어 콘텐츠 데이터의 현재 양을 표시하는, 컴퓨터 판독 가능 매체.
  17. 제13항에 있어서,
    상기 제2 미디어 콘텐츠 데이터가 상기 제2 사용자 디바이스의 상기 버퍼에 저장되고 있는 것보다 느린 속도로 상기 제1 미디어 콘텐츠 데이터가 상기 제1 사용자 디바이스의 상기 버퍼에 저장되고 있다는 것을 결정하는 단계는 상기 제1 사용자 디바이스의 상기 버퍼에 저장된 상기 제1 미디어 콘텐츠 데이터의 양과 상기 제2 사용자 디바이스의 상기 버퍼에 저장된 상기 제2 미디어 콘텐츠 데이터의 양의 비교에 기초하는, 컴퓨터 판독 가능 매체.
  18. 제13항에 있어서,
    상기 미디어 콘텐츠 아이템의 상기 제3 스트림은 상기 미디어 콘텐츠 아이템의 상기 제1 스트림보다 낮은 비트레이트를 갖는, 컴퓨터 판독 가능 매체.
KR1020207026334A 2018-04-24 2018-04-24 다수의 디바이스에서 동기화된 미디어 콘텐츠 재생 동안 품질 레벨을 조절하기 위한 방법들, 시스템들 및 매체들 KR102268442B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2018/029151 WO2019209271A1 (en) 2018-04-24 2018-04-24 Methods, systems, and media for adjusting quality level during synchronized media content playback on multiple devices

Publications (2)

Publication Number Publication Date
KR20200110459A KR20200110459A (ko) 2020-09-23
KR102268442B1 true KR102268442B1 (ko) 2021-06-22

Family

ID=62117171

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207026334A KR102268442B1 (ko) 2018-04-24 2018-04-24 다수의 디바이스에서 동기화된 미디어 콘텐츠 재생 동안 품질 레벨을 조절하기 위한 방법들, 시스템들 및 매체들

Country Status (5)

Country Link
US (3) US11303947B2 (ko)
EP (1) EP3753256A1 (ko)
KR (1) KR102268442B1 (ko)
CN (2) CN115567742A (ko)
WO (1) WO2019209271A1 (ko)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11611547B2 (en) 2016-11-08 2023-03-21 Dish Network L.L.C. User to user content authentication
US11695722B2 (en) 2019-07-30 2023-07-04 Sling Media L.L.C. Devices, systems and processes for providing geo-located and content-to-comment synchronized user circles
US11838450B2 (en) * 2020-02-26 2023-12-05 Dish Network L.L.C. Devices, systems and processes for facilitating watch parties
US11038937B1 (en) * 2020-03-06 2021-06-15 Sonos, Inc. Hybrid sniffing and rebroadcast for Bluetooth networks
US11805160B2 (en) * 2020-03-23 2023-10-31 Rovi Guides, Inc. Systems and methods for concurrent content presentation
US11790364B2 (en) 2020-06-26 2023-10-17 Rovi Guides, Inc. Systems and methods for providing multi-factor authentication for vehicle transactions
US11599880B2 (en) 2020-06-26 2023-03-07 Rovi Guides, Inc. Systems and methods for providing multi-factor authentication for vehicle transactions
US11606597B2 (en) 2020-09-03 2023-03-14 Dish Network Technologies India Private Limited Devices, systems, and processes for facilitating live and recorded content watch parties
KR102506552B1 (ko) * 2021-06-02 2023-03-06 김진우 주문형비디오 재생 시스템 및 주문형비디오 재생 방법
US11758245B2 (en) 2021-07-15 2023-09-12 Dish Network L.L.C. Interactive media events
US20230052385A1 (en) * 2021-08-10 2023-02-16 Rovi Guides, Inc. Methods and systems for synchronizing playback of media content items
US11757992B2 (en) * 2021-11-05 2023-09-12 Roku, Inc. Synchronization of multimedia content presentation across multiple devices in a watch party
US11974005B2 (en) 2021-12-07 2024-04-30 Dish Network L.L.C. Cell phone content watch parties
US11849171B2 (en) 2021-12-07 2023-12-19 Dish Network L.L.C. Deepfake content watch parties
US11968417B2 (en) * 2021-12-30 2024-04-23 Comcast Cable Communications, Llc Systems, methods, and apparatuses for buffer management
US11973999B2 (en) 2022-08-19 2024-04-30 Dish Network L.L.C. User chosen watch parties

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080109865A1 (en) 2006-11-03 2008-05-08 Apple Computer, Inc. Dynamic adjustments of video streams
US20130251329A1 (en) 2012-03-23 2013-09-26 Sony Network Entertainment International Llc System, method, and infrastructure for synchronized streaming of content

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5414455A (en) * 1993-07-07 1995-05-09 Digital Equipment Corporation Segmented video on demand system
AU2007202654B2 (en) * 2001-10-22 2010-03-04 Apple Inc. Intelligent synchronization for a media player
EP1538536A1 (en) 2003-12-05 2005-06-08 Sony International (Europe) GmbH Visualization and control techniques for multimedia digital content
JP2005294941A (ja) * 2004-03-31 2005-10-20 Nippon Telegraph & Telephone West Corp 映像コンテンツ再生システム、その再生制御方法、クライアント端末、同期サーバ及びそのプログラム
US7788395B2 (en) * 2007-02-14 2010-08-31 Microsoft Corporation Adaptive media playback
US8700792B2 (en) * 2008-01-31 2014-04-15 General Instrument Corporation Method and apparatus for expediting delivery of programming content over a broadband network
US8374254B2 (en) * 2008-12-15 2013-02-12 Sony Mobile Communications Ab Multimedia stream combining
US10712771B2 (en) 2010-08-13 2020-07-14 Netflix, Inc. System and method for synchronized playback of streaming digital content
US8996719B2 (en) * 2011-04-03 2015-03-31 Jeremiah Condon System and method of adaptive transport of multimedia data
CA2843766A1 (en) * 2011-08-16 2013-02-21 Destiny Software Productions Inc. Script-based video rendering
US8930577B2 (en) 2011-09-13 2015-01-06 Microsoft Corporation Synchronizing streaming video between viewers over a network
EP2592842A1 (en) * 2011-11-14 2013-05-15 Accenture Global Services Limited Computer-implemented method, computer system, and computer program product for synchronizing output of media data across a plurality of devices
US20130173742A1 (en) 2011-12-28 2013-07-04 United Video Properties, Inc. Systems and methods for latency-based synchronized playback at multiple locations
US9450997B2 (en) * 2012-02-27 2016-09-20 Qualcomm Incorporated Dash client and receiver with request cancellation capabilities
US8978076B2 (en) * 2012-11-05 2015-03-10 Comcast Cable Communications, Llc Methods and systems for content control
CN104823176A (zh) * 2013-10-31 2015-08-05 索尼电脑娱乐美国公司 观看媒体标题的群组中的播放同步
US9894010B2 (en) * 2014-07-24 2018-02-13 Cisco Technology, Inc. Management of heterogeneous client device groups
US10680911B2 (en) * 2014-07-24 2020-06-09 Cisco Technology, Inc. Quality of experience based network resource management
US9794601B2 (en) * 2014-10-21 2017-10-17 Cisco Technology, Inc. Dynamic programming across multiple streams
US10491711B2 (en) * 2015-09-10 2019-11-26 EEVO, Inc. Adaptive streaming of virtual reality data
US20170251235A1 (en) * 2016-02-29 2017-08-31 Rovi Guides, Inc. Systems and methods for synchronizing media asset playback on multiple devices
CA2997355A1 (en) * 2016-12-30 2019-06-14 Tivo Solutions Inc. Advanced trick-play modes for streaming video

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080109865A1 (en) 2006-11-03 2008-05-08 Apple Computer, Inc. Dynamic adjustments of video streams
US20130251329A1 (en) 2012-03-23 2013-09-26 Sony Network Entertainment International Llc System, method, and infrastructure for synchronized streaming of content

Also Published As

Publication number Publication date
US20210044845A1 (en) 2021-02-11
KR20200110459A (ko) 2020-09-23
US20220239962A1 (en) 2022-07-28
CN111837399B (zh) 2022-09-06
US11303947B2 (en) 2022-04-12
US20230345065A1 (en) 2023-10-26
WO2019209271A1 (en) 2019-10-31
EP3753256A1 (en) 2020-12-23
US11695974B2 (en) 2023-07-04
CN115567742A (zh) 2023-01-03
CN111837399A (zh) 2020-10-27

Similar Documents

Publication Publication Date Title
KR102268442B1 (ko) 다수의 디바이스에서 동기화된 미디어 콘텐츠 재생 동안 품질 레벨을 조절하기 위한 방법들, 시스템들 및 매체들
KR102370706B1 (ko) 게임 시스템들에서 디스플레이 랙의 검출 및 보상
US20230396829A1 (en) Methods, systems, and media for synchronized media content playback on multiple devices
EP2891145B1 (en) Method and apparatus for decreasing presentation latency
CN111837400A (zh) 用于同步多个媒体设备上的音频内容和视频内容的方法、系统和介质
CN114026640B (zh) 用于提供动态媒体会话的方法、系统和介质
US11553254B2 (en) Methods, systems, and media for providing dynamic media sessions with audio stream expansion features
EE et al. Published
JP2018530944A (ja) 異種ネットワーキング環境におけるメディアレンダリングの同期化

Legal Events

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