KR20200110459A - Methods, systems and media for adjusting the quality level during synchronized media content playback on multiple devices - Google Patents

Methods, systems and media for adjusting the quality level during synchronized media content playback on multiple devices Download PDF

Info

Publication number
KR20200110459A
KR20200110459A KR1020207026334A KR20207026334A KR20200110459A KR 20200110459 A KR20200110459 A KR 20200110459A KR 1020207026334 A KR1020207026334 A KR 1020207026334A KR 20207026334 A KR20207026334 A KR 20207026334A KR 20200110459 A KR20200110459 A KR 20200110459A
Authority
KR
South Korea
Prior art keywords
media content
user device
content data
buffer
stored
Prior art date
Application number
KR1020207026334A
Other languages
Korean (ko)
Other versions
KR102268442B1 (en
Inventor
조 베르톨라미
스티븐 포카핀
브누와 드 부르세티
커티스 메이
Original Assignee
구글 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 구글 엘엘씨 filed Critical 구글 엘엘씨
Publication of KR20200110459A publication Critical patent/KR20200110459A/en
Application granted granted Critical
Publication of KR102268442B1 publication Critical patent/KR102268442B1/en

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
    • 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
    • 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 사용자 디바이스로 전송하는 단계를 포함한다.Methods, systems and media are provided for adjusting a quality level during a synchronized media content presentation. In some embodiments, the method includes transmitting, from the server to a first user device, first media content data corresponding to a first stream of media content items, and from the server to a second user device, the second media content item. Transmitting second media content data corresponding to the stream, wherein the first media content data is stored in a buffer of a first user device, and the second media content data is stored in a buffer of a second user device; Sending instructions from the server to the first user device and the second user device to cause the first user device and the second user device to start presenting the media content item simultaneously; Determining, by the server, that the first media content data is being stored in the buffer of the first user device at a slower rate than the second media content data is being stored in the buffer of the second user device; In response to determining that the first media content data is being stored in the buffer of the first user device at a slower rate than the second media content data is being stored in the buffer of the second user device, the first stream of media content items Selecting a third stream of corresponding media content items, the third stream of media content items having a lower quality level than the first stream of media content items; And transmitting third media content data corresponding to the third stream of the media content item to the first user device.

Description

다수의 디바이스에서 동기화된 미디어 콘텐츠 재생 동안 품질 레벨을 조절하기 위한 방법들, 시스템들 및 매체들Methods, systems and media for adjusting the quality level during synchronized media content playback on multiple devices

개시된 주제는 다수의 디바이스에서 동기화된 미디어 콘텐츠 재생 동안 품질 레벨을 조절하기 위한 방법들, 시스템들 및 매체들에 관한 것이다.The disclosed subject matter relates to methods, systems and media for adjusting a quality level during synchronized media content playback on multiple devices.

사람들은 비디오 공유 서비스와 연관된 서버와 같은 서버로부터 다운로드되거나 스트리밍되는 비디오들과 같은 미디어 콘텐츠를 자주 시청한다. 또한 사람들은 친구들과 같은 다른 사람들과 동시에 미디어 콘텐츠를 보고 싶지만, 별도의 디바이스들에서 보고 싶어할 수 있다. 그러나 다수의 디바이스에 걸쳐 미디어 콘텐츠의 재생을 동기화하는 것은 어려울 수 있다. 예를 들어, 다수의 디바이스는 각각 미디어 콘텐츠 아이템의 재생 전과 재생 중에 미디어 콘텐츠를 버퍼링할 수 있지만, 각 디바이스는 미디어 콘텐츠를 상이한 속도로 버퍼링할 수 있다. 일부 경우에, 이것은 미디어 콘텐츠를 다른 디바이스들보다 더 느리게 버퍼링하는 디바이스로 하여금 재생을 재개하기 전에 추가 미디어 콘텐츠를 버퍼링하기 위해 재생을 일시 중지해야만 하게 할 수 있고, 이로 인해 디바이스들로 하여금 재생 동안 동기화를 놓치게 할 수 있다People often watch media content, such as videos downloaded or streamed from a server, such as a server associated with a video sharing service. Also, people may want to watch media content simultaneously with other people, such as friends, but on separate devices. However, synchronizing the playback of media content across multiple devices can be difficult. For example, multiple devices may each buffer media content before and during playback of a media content item, but each device may buffer media content at a different rate. In some cases, this may cause devices that buffer media content slower than other devices to have to pause playback to buffer additional media content before resuming playback, which causes devices to synchronize during playback. Can make you miss

따라서, 다수의 디바이스에서 동기화된 미디어 콘텐츠 재생 동안 품질 레벨을 조절하기 위한 신규의 방법들, 시스템들 및 매체들을 제공하는 것이 바람직하다.Accordingly, it is desirable to provide novel methods, systems and media for adjusting the quality level during synchronized media content playback on multiple devices.

다수의 디바이스에서 동기화된 미디어 콘텐츠 재생 동안 품질 레벨을 조절하기 위한 방법들, 시스템들 및 매체들이 제공된다.Methods, systems and media are provided for adjusting the quality level during synchronized media content playback on multiple devices.

개시된 주제의 일부 실시예에 따르면, 미디어 콘텐츠의 재생을 동기화하기 위한 방법이 제공되고, 방법은, 서버로부터 제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 사용자 디바이스로 전송하는 단계를 포함한다.According to some embodiments of the disclosed subject matter, a method for synchronizing playback of media content is provided, the method comprising transmitting, from a server to a first user device, first media content data corresponding to a first stream of media content items. And transmitting second media content data corresponding to the second stream of the media content item from the server to the second user device-the first media content data is stored in the buffer of the first user device, and the second media content The data is stored in the buffer of the second user device; Sending instructions from the server to the first user device and the second user device to cause the first user device and the second user device to start presenting the media content item simultaneously; Determining, by the server, that the first media content data is being stored in the buffer of the first user device at a slower rate than the second media content data is being stored in the buffer of the second user device; In response to determining that the first media content data is being stored in the buffer of the first user device at a slower rate than the second media content data is being stored in the buffer of the second user device, the first stream of media content items Selecting a third stream of corresponding media content items, the third stream of media content items having a lower quality level than the first stream of media content items; And transmitting third media content data corresponding to the third stream of the media content item to the first user device.

일부 실시예에서, 제1 사용자 디바이스 및 제2 사용자 디바이스로 하여금 미디어 콘텐츠 아이템을 동시에 제시하기를 시작하게 하는 지시들은 제1 사용자 디바이스 및 제2 사용자 디바이스가 미디어 콘텐츠 아이템에 대응하는 미리 결정된 양의 미디어 콘텐츠 데이터를 버퍼링했다는 결정에 기초한다.In some embodiments, the instructions for causing the first user device and the second user device to start presenting the media content item simultaneously include a predetermined amount of media corresponding to the media content item by the first user device and the second user device. Based on the determination that the content data has been buffered.

일부 실시예에서, 제2 미디어 콘텐츠 데이터가 제2 사용자 디바이스의 버퍼에 저장되고 있는 것보다 느린 속도로 제1 미디어 콘텐츠 데이터가 제1 사용자 디바이스의 버퍼에 저장되고 있다는 것을 결정하는 단계는 제1 사용자 디바이스로부터 서버에 의해 수신되는 메시지에 기초한다.In some embodiments, determining that the first media content data is being stored in the buffer of the first user device at a slower rate than the second media content data is being stored in the buffer of the second user device comprises: Based on messages received by the server from the device.

일부 실시예에서, 메시지는 메시지가 제1 사용자 디바이스에 의해 서버로 전송되는 시간에 제1 사용자 디바이스의 버퍼에 저장된 제1 미디어 콘텐츠 데이터의 현재 양을 표시한다.In some embodiments, the message indicates the current amount of first media content data stored in the buffer of the first user device at the time the message is transmitted by the first user device to the server.

일부 실시예에서, 제2 미디어 콘텐츠 데이터가 제2 사용자 디바이스의 버퍼에 저장되고 있는 것보다 느린 속도로 제1 미디어 콘텐츠 데이터가 제1 사용자 디바이스의 버퍼에 저장되고 있다는 것을 결정하는 단계는 제1 사용자 디바이스의 버퍼에 저장된 제1 미디어 콘텐츠 데이터의 양과 제2 사용자 디바이스의 버퍼에 저장된 제2 미디어 콘텐츠 데이터의 양의 비교에 기초한다.In some embodiments, determining that the first media content data is being stored in the buffer of the first user device at a slower rate than the second media content data is being stored in the buffer of the second user device comprises: It is based on a comparison of the amount of first media content data stored in the buffer of the device and the amount of second media content data stored in the buffer of the second user device.

일부 실시예에서, 미디어 콘텐츠 아이템의 제3 스트림은 미디어 콘텐츠 아이템의 제1 스트림보다 낮은 비트레이트를 갖는다.In some embodiments, the third stream of media content items has a lower bit rate than the first stream of media content items.

개시된 주제의 일부 실시예에 따르면, 미디어 콘텐츠의 재생을 동기화하기 위한 시스템이 제공되고, 시스템은 메모리 및 하드웨어 프로세서를 포함하고, 하드웨어 프로세서는, 메모리에 저장된 컴퓨터 실행 가능 명령어들을 실행할 때, 서버로부터 제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 사용자 디바이스로 전송하도록 구성된다. 개시된 주제의 다른 실시예는 미디어 콘텐츠의 재생을 동기화하기 위한 시스템을 제공하고, 시스템은 메모리 및 하드웨어 프로세서를 포함하고, 하드웨어 프로세서는, 메모리에 저장된 컴퓨터 실행 가능 명령어들을 실행할 때, 본 명세서에 설명된 임의의 양태 또는 실시예에 따른 방법을 수행하도록 구성된다.According to some embodiments of the disclosed subject matter, a system for synchronizing playback of media content is provided, the system comprising a memory and a hardware processor, the hardware processor being provided from a server when executing computer executable instructions stored in the memory. 1 transmits first media content data corresponding to a first stream of media content items to a user device, and transmits second media content data corresponding to a second stream of media content items from a server to a second user device, and -The first media content data is stored in the buffer of the first user device, and the second media content data is stored in the buffer of the second user device -; Send instructions from the server to the first user device and the second user device to cause the first user device and the second user device to simultaneously start presenting the media content item; Determine, by the server, that the first media content data is being stored in the buffer of the first user device at a slower rate than the second media content data is being stored in the buffer of the second user device; In response to determining that the first media content data is being stored in the buffer of the first user device at a slower rate than the second media content data is being stored in the buffer of the second user device, the first stream of media content items Selecting a third stream of the corresponding media content item, the third stream of media content items having a lower quality level than the first stream of media content items; And third media content data corresponding to the third stream of media content items to the first user device. Another embodiment of the disclosed subject matter provides a system for synchronizing playback of media content, the system comprising a memory and a hardware processor, the hardware processor, when executing computer-executable instructions stored in the memory, as described herein. Configured to perform a method according to any aspect or embodiment.

개시된 주제의 일부 실시예에 따르면, 프로세서에 의해 실행될 때 프로세서로 하여금 미디어 콘텐츠의 재생을 동기화하기 위한 방법을 수행하게 하는 컴퓨터 실행 가능 명령어들을 포함하는 비일시적 컴퓨터 판독 가능 매체가 제공되고, 방법은, 서버로부터 제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 사용자 디바이스로 전송하는 단계를 포함한다. 개시된 주제의 다른 실시예는 프로세서에 의해 실행될 때, 프로세서로 하여금 본 명세서에 설명된 임의의 양태 또는 실시예에 따른 방법을 수행하게 하는 컴퓨터 실행 가능 명령어들을 포함하는 (일시적 또는 비일시적 매체일 수 있는) 컴퓨터 판독 가능 매체를 제공한다.According to some embodiments of the disclosed subject matter, there is provided a non-transitory computer-readable medium comprising computer-executable instructions that, when executed by a processor, cause a processor to perform a method for synchronizing playback of media content, the method comprising: Transmitting first media content data corresponding to a first stream of media content items from a server to a first user device, and second media content data corresponding to a second stream of media content items from the server to a second user device Transmitting,-the first media content data is stored in a buffer of the first user device, and the second media content data is stored in a buffer of the second user device; Sending instructions from the server to the first user device and the second user device to cause the first user device and the second user device to start presenting the media content item simultaneously; Determining, by the server, that the first media content data is being stored in the buffer of the first user device at a slower rate than the second media content data is being stored in the buffer of the second user device; In response to determining that the first media content data is being stored in the buffer of the first user device at a slower rate than the second media content data is being stored in the buffer of the second user device, the first stream of media content items Selecting a third stream of corresponding media content items, the third stream of media content items having a lower quality level than the first stream of media content items; And transmitting third media content data corresponding to the third stream of the media content item to the first user device. Another embodiment of the disclosed subject matter includes computer-executable instructions (which may be a temporary or non-transitory medium) that, when executed by a processor, cause the processor to perform a method according to any aspect or embodiment described herein. ) Provide computer-readable media.

개시된 주제의 일부 실시예에 따르면, 미디어 콘텐츠의 재생을 동기화하기 위한 시스템이 제공되고, 시스템은, 서버로부터 제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 사용자 디바이스로 전송하기 위한 수단을 포함한다.According to some embodiments of the disclosed subject matter, a system for synchronizing playback of media content is provided, the system transmitting, from a server to a first user device, first media content data corresponding to a first stream of media content items. And means for transmitting second media content data corresponding to a second stream of media content items from the server to a second user device, wherein the first media content data is stored in a buffer of the first user device, and the second media The content data is stored in the buffer of the second user device; Means for transmitting instructions from the server to the first user device and the second user device, causing the first user device and the second user device to start simultaneously presenting the media content item; Means for determining, by the server, that the first media content data is being stored in the buffer of the first user device at a slower rate than the second media content data is being stored in the buffer of the second user device; Responding to the first stream of media content items in response to a determination that the first media content data is being stored in the buffer of the first user device at a slower rate than the second media content data is being stored in the buffer of the second user device Means for selecting a third stream of media content items, the third stream of media content items having a lower quality level than the first stream of media content items; And means for transmitting to the first user device third media content data corresponding to the third stream of media content items.

개시된 주제의 다양한 목적, 특징 및 이점은 유사한 참조 번호들이 유사한 요소들을 식별하는 다음의 도면들과 관련하여 고려될 때 개시된 주제의 다음의 상세한 설명을 참조하여 보다 완전히 인식될 수 있다.
도 1은 개시된 주제의 일부 실시예에 따라 다수의 디바이스에서 동기화된 미디어 콘텐츠 재생을 위한 정보 흐름도의 예를 도시한다.
도 2는 개시된 주제의 일부 실시예에 따라 다수의 디바이스에서 동기화된 미디어 콘텐츠 재생 동안 품질 레벨을 조절하기 위한 프로세스의 예를 도시한다.
도 3은 개시된 주제의 일부 실시예에 따라 다수의 디바이스에서 동기화된 미디어 콘텐츠 재생 동안 품질 레벨을 조절하기 위한 본 명세서에 설명된 메커니즘들의 구현에 적합한 예시적인 시스템의 개략도를 도시한다.
도 4는 개시된 주제의 일부 실시예에 따라 도 3의 서버 및/또는 사용자 디바이스에서 사용될 수 있는 하드웨어의 상세한 예를 도시한다.
The various objects, features, and advantages of the disclosed subject matter may be more fully appreciated with reference to the following detailed description of the disclosed subject matter when similar reference numbers are considered in connection with the following figures to identify similar elements.
1 shows an example of an information flow diagram for synchronized media content playback on multiple devices in accordance with some embodiments of the disclosed subject matter.
2 illustrates an example of a process for adjusting a quality level during synchronized media content playback on multiple devices in accordance with some embodiments of the disclosed subject matter.
3 shows a schematic diagram of an exemplary system suitable for implementation of the mechanisms described herein for adjusting the quality level during synchronized media content playback on multiple devices in accordance with some embodiments of the disclosed subject matter.
4 shows a detailed example of hardware that may be used in the server and/or user device of FIG. 3 in accordance with some embodiments of the disclosed subject matter.

다양한 실시예에 따르면, 다수의 디바이스에서 동기화된 미디어 콘텐츠 재생 동안 품질 레벨을 조절하기 위한 (방법들, 시스템들 및 매체를 포함할 수 있는) 메커니즘들이 제공된다.In accordance with various embodiments, mechanisms (which may include methods, systems and media) are provided for adjusting the quality level during synchronized media content playback on multiple devices.

일부 실시예에서, 본 명세서에 설명된 메커니즘들은 다수의 사용자 디바이스에 걸쳐 미디어 콘텐츠 아이템의 재생을 동기화할 수 있다. 예를 들어, 일부 실시예에서, 메커니즘들은 각 사용자 디바이스가 동시에 미디어 콘텐츠 아이템의 동일한 재생 위치에 있도록 미디어 콘텐츠 아이템이 다수의 사용자 디바이스에 동시에 제시되게 하여, 사용자 디바이스들 각각에게 미디어 콘텐츠 아이템의 "동기화된 프리젠테이션"이 이루어지게 할 수 있다. 일부 실시예에서, 메커니즘들은 미디어 콘텐츠 아이템을 사용자 디바이스들 각각으로 스트리밍하는 동안 미디어 콘텐츠 아이템의 동기화된 프리젠테이션이 유지되게 할 수 있다. 예를 들어, 일부 실시예에서, 메커니즘들은 다수의 사용자 디바이스 중 하나의 사용자 디바이스가 스트리밍된 미디어 콘텐츠 아이템에 대응하는 미디어 콘텐츠 데이터를 다른 사용자 디바이스들보다 느린 속도로 버퍼링하는 경우에 미디어 콘텐츠 아이템의 동기화된 프리젠테이션이 사용자 디바이스들에 걸쳐 유지되게 할 수 있다. 보다 특정한 예로서, 일부 실시예에서, 메커니즘들은 미디어 콘텐츠 데이터를 더 느린 속도로 버퍼링하는 사용자 디바이스로 하여금 미디어 콘텐츠 아이템을 더 낮은 품질 레벨로 제시하게 할 수 있다. 다른 예로서, 일부 실시예에서, 메커니즘들은 다수의 사용자 디바이스 중 하나의 사용자 디바이스가 추가 미디어 콘텐츠 데이터를 버퍼링하기 위해 미디어 콘텐츠 아이템의 재생을 일시 중지하는 경우에 미디어 콘텐츠 아이템의 동기화된 프리젠테이션이 사용자 디바이스들에 걸쳐 유지되게 할 수 있다. 보다 특정한 예로서, 일부 실시예에서, 메커니즘들은 사용자 디바이스에서의 재생이 다른 사용자 디바이스들에서의 재생을 따라잡을 때까지 사용자 디바이스로 하여금 증가된 재생 속도로 재생을 (즉, 추가 미디어 콘텐츠 데이터가 일단 버퍼링되었다면) 재개하게 할 수 있다.In some embodiments, the mechanisms described herein may synchronize playback of media content items across multiple user devices. For example, in some embodiments, mechanisms allow media content items to be presented simultaneously to multiple user devices such that each user device is at the same playback location of the media content item at the same time, allowing each of the user devices to “synchronize” the media content item. Presentation can be made. In some embodiments, the mechanisms may allow a synchronized presentation of the media content item to be maintained while streaming the media content item to each of the user devices. For example, in some embodiments, the mechanisms may include synchronization of a media content item when one of a plurality of user devices buffers media content data corresponding to the streamed media content item at a slower rate than other user devices. The presentation can be maintained across user devices. As a more specific example, in some embodiments, mechanisms may cause a user device that buffers media content data at a slower rate to present a media content item at a lower quality level. As another example, in some embodiments, the mechanisms may allow a synchronized presentation of a media content item to a user device when one of a plurality of user devices pauses playback of the media content item to buffer additional media content data. It can be maintained across devices. As a more specific example, in some embodiments, the mechanisms cause the user device to trigger the playback at an increased playback rate (i.e., once additional media content data is If it is buffered), you can have it resume.

일부 실시예에서, 본 명세서에 설명된 메커니즘들은 동기화된 미디어 재생 세션에서 제시되는 미디어 콘텐츠 아이템의 재생을 다수의 사용자 디바이스에 걸쳐 동기화할 수 있다는 것을 유의해야 한다. 일부 실시예에서, 다수의 사용자 디바이스에 걸쳐 동기화된 미디어 재생 세션은 임의의 적합한 특징들 또는 특징들의 조합을 포함할 수 있다. 예를 들어, 일부 실시예에서, 동기화된 미디어 재생 세션은 위에서 설명한 바와 같이 다수의 사용자 디바이스의 각 사용자 디바이스가 특정 미디어 콘텐츠 아이템을 동시에 제시할 수 있게 할 수 있다. 다른 예로서, 일부 실시예에서, 동기화된 미디어 재생 세션은 일련의 미디어 콘텐츠 아이템들(예를 들어, 미디어 콘텐츠 아이템들의 플레이리스트 및/또는 미디어 콘텐츠 아이템들의 임의의 다른 적합한 모음)이 다수의 사용자 디바이스의 각 사용자 디바이스에 동시에 제시될 수 있게 할 수 있다. 또 다른 예로서, 일부 실시예에서, 동기화된 미디어 재생 세션은 동기화된 미디어 재생 세션에 참여하는 사용자 디바이스가 비디오를 선택하고, 비디오를 일시 중지하고/하거나, 다른 비디오로 스위칭할 수 있게 할 수 있고, 사용자 디바이스가 각각의 다른 사용자 디바이스로 개별적으로 커맨드들을 보낼 필요없이 사용자 다비이스에 의해 수행되는 액션이 세션에 참여하는 다른 사용자 디바이스들에 미러링되게 할 수 있다.It should be noted that, in some embodiments, the mechanisms described herein may synchronize playback of a media content item presented in a synchronized media playback session across multiple user devices. In some embodiments, a media playback session synchronized across multiple user devices may include any suitable features or combinations of features. For example, in some embodiments, a synchronized media playback session may enable each user device of multiple user devices to simultaneously present a particular item of media content, as described above. As another example, in some embodiments, a synchronized media playback session may contain a series of media content items (e.g., a playlist of media content items and/or any other suitable collection of media content items) on multiple user devices. Can be presented to each user device at the same time. As another example, in some embodiments, the synchronized media playback session may enable a user device participating in the synchronized media playback session to select a video, pause the video, and/or switch to another video, and In addition, it is possible to cause the action performed by the user device to be mirrored to other user devices participating in the session without the need for the user device to send commands individually to each other user device.

일부 실시예에서, 본 명세서에 설명된 메커니즘들은 세션의 모든 디바이스가 동기화된 시청 경험을 유지하는 것을 보장하기 위해 동기화된 미디어 재생 세션에 참여하는 다수의 사용자 디바이스의 하나 이상의 사용자 디바이스로 전송되는 스트림의 품질을 조절할 수 있다. 특히, 일부 실시예에서, 세션에 참여하는 사용자 디바이스들 각각에 동기적으로 제시되는 미디어 콘텐츠 아이템에 대응하는 미디어 콘텐츠의 스트림들을 전송하는 서버는 각 사용자 디바이스가 스트림을 버퍼링하는 속도 또는 각각의 속도들을 결정할 수 있다. 일부 실시예에서, 그러면 서버는 사용자 디바이스에 대한 버퍼링 속도에 기초하여 사용자 디바이스들의 사용자 디바이스에 대한 스트림의 품질을 조절할 수 있다. 예를 들어, 일부 실시예에서, 사용자 디바이스가 동기화된 미디어 재생 세션에 참여하는 다른 사용자 디바이스들보다 더 느리게 스트림을 버퍼링하고 있다는 결정에 응답하여, 서버는 더 낮은 품질의 스트림을 전송할 수 있으며, 이에 따라 사용자 디바이스가 세션의 다른 사용자 디바이스들과 동일한 속도로 사용자 디바이스의 버퍼를 채울 수 있게 할 수 있다. 일부 실시예에서, 본 명세서에 설명된 메커니즘들은 부가적으로 또는 대안적으로, 다수의 사용자 디바이스의 사용자 디바이스에서 재생 속도를 조절하여 사용자 디바이스가 다른 사용자 디바이스들을 따라잡을 수 있게 하거나 속도를 늦출 수 있게 하는 것과 같이, 다수의 사용자 디바이스에 걸쳐 미디어 콘텐츠의 재생의 동기화를 유지하기 위한 임의의 다른 적합한 기술들을 사용할 수 있다.In some embodiments, the mechanisms described herein include streams transmitted to one or more user devices of multiple user devices participating in a synchronized media playback session to ensure that all devices in the session maintain a synchronized viewing experience. You can adjust the quality. In particular, in some embodiments, the server that transmits streams of media content corresponding to the media content item synchronously presented to each of the user devices participating in the session may adjust the rate at which each user device buffers the stream or the respective rates. You can decide. In some embodiments, the server may then adjust the quality of the stream for the user device of the user devices based on the buffering rate for the user device. For example, in some embodiments, in response to a determination that the user device is buffering the stream more slowly than other user devices participating in the synchronized media playback session, the server may transmit a lower quality stream, thereby This allows the user device to fill the buffer of the user device at the same rate as other user devices in the session. In some embodiments, the mechanisms described herein may additionally or alternatively adjust the playback speed at the user device of multiple user devices to enable the user device to catch up or slow down other user devices. As such, any other suitable techniques for maintaining synchronization of playback of media content across multiple user devices may be used.

서버와 제1 사용자 디바이스 간의 네트워크 연결의 품질뿐만 아니라 서버와 동기화된 미디어 재생 세션에 참여하는 다른 사용자 디바이스들 간의 네트워크 연결들의 품질 둘 모두에 기초하여 미디어 콘텐츠의 스트림의 품질을 조절함으로써, 본 명세서에 설명된 메커니즘들은 세션의 모든 사용자 디바이스가 세션 동안 동기화된 채로 유지되는 것(또는 그 동기화가 빠르게 재설정될 수 있는 것)과 사용자 디바이스들이 추가 데이터를 버퍼링하기 위해 재생을 일시 중지해야 하는 것을 회피하는 것 둘 모두를 보장하는 데 사용될 수 있다. 특히, 미디어 콘텐츠의 스트림의 품질을 조절함으로써(예를 들어, 서버와 사용자 디바이스 간의 네트워크 연결이 불량하다는 결정에 응답하여 품질 레벨을 낮춤으로써), 메커니즘들은 사용자 디바이스가 버퍼 내에 특정 양의 미디어 콘텐츠 데이터를 유지할 수 있도록 하고/하거나 버퍼를 빠르게 채워 특정 양의 미디어 콘텐츠 데이터를 가질 수 있도록 할 수 있다.  또한, 본 명세서에 설명된 메커니즘들은, 특히 동기화된 미디어 재생 세션에서 스트리밍된 미디어 콘텐츠를 볼 때, 사용자 디바이스가 추가 미디어 콘텐츠 데이터를 버퍼링하기 위해 재생을 일시 중지하는 것을 방지함으로써, 스트리밍된 미디어 콘텐츠를 보는 동안 사용자의 경험을 개선하는 데 사용될 수 있다.By adjusting the quality of the stream of media content based on both the quality of the network connection between the server and the first user device as well as the quality of network connections between other user devices participating in the media playback session synchronized with the server, the present specification The mechanisms described are to keep all user devices in the session synchronized during the session (or that synchronization can be quickly reset) and to avoid having user devices pause playback to buffer additional data. It can be used to ensure both. Specifically, by adjusting the quality of the stream of media content (e.g., by lowering the quality level in response to a determination that the network connection between the server and the user device is poor), mechanisms allow the user device to provide a certain amount of media content data in a buffer. And/or fill the buffer quickly to have a certain amount of media content data. In addition, the mechanisms described herein prevent the user device from pausing playback to buffer additional media content data, particularly when viewing streamed media content in a synchronized media playback session, thereby preventing streamed media content from being played. It can be used to improve the user's experience while viewing.

통상의 비디오 스트리밍 시, 스트리밍된 비디오를 제공하는 콘텐츠 서버는 스트리밍된 비디오가 사용자 디바이스가 핸들링할 수 있는 속도와 품질로 사용자 디바이스로 전달되도록 속도 제어를 제공한다. 이것을 가능하게 하기 위해, 사용자 디바이스는 사용자 디바이스가 수신된 비디오를 얼마나 빠르게 디코딩하고 처리할 수 있는지, 비디오가 사용자 디바이스로 스트리밍되고 있는 네트워크의 대역폭 및/또는 대기 시간, 및 수신된 비디오의 품질과 같은 파라미터들에 관한 정보를 콘텐츠 서버에 제공할 수 있다. 콘텐츠 서버는 클라이언트 디바이스로부터 수신된 정보에 기초하여 클라이언트 디바이스로 비디오를 전달하는 속도를 조절할 수 있다. 본 개시내용의 양태들은 비디오 콘텐츠 아이템을 다수의 클라이언트 디바이스로 스트리밍하는 동안 조정된 속도 제어를 제공한다. 속도 제어는 하나의 특정 사용자 디바이스로 스트리밍하는 속도가 당해 특정 사용자 디바이스뿐만 아니라 적어도 하나의 다른 사용자 디바이스에 의해 콘텐츠 서버에 공급되는 정보에 기초하여 결정된다는 점에서 "조정"된다. 이것은 다수의 사용자 디바이스로 개선된 비디오 전달을 제공할 수 있다. 대부분의 경우, ("함께 시청(co-watching)"이라고 알려진) 다수의 사용자 디바이스에 전달할 콘텐츠를 제공하는 서버는 제3자 스트리밍 플랫폼을 사용할 것이며, 콘텐츠가 다수의 사용자 디바이스로 스트리밍되는 속도(또는 각각의 속도들)를 제어하지 않는다. 더욱이, 통상의 속도 제어 기술들이 콘텐츠를 다수의 사용자 디바이스로 스트리밍하는 데 적용될 수 있을지라도, 이러한 기술들은 각 클라이언트 디바이스에 독립적인 속도 제어를 적용할 것이다. 이것은 사용자 디바이스들이 다시 버퍼링하기 위해 재생을 일시 중지해야만 하도록 하고, 추가적인 동기화 지연들을 겪게 하고/하거나, 제공될 수 있는 것보다 낮은 비디오 품질을 경험하게 할 수 있다.In typical video streaming, a content server that provides streamed video provides rate control so that the streamed video is delivered to the user device at a rate and quality that the user device can handle. To make this possible, the user device can determine how quickly the user device can decode and process the received video, the bandwidth and/or latency of the network from which the video is being streamed to the user device, and the quality of the received video. Information on parameters can be provided to the content server. The content server may adjust the rate of video delivery to the client device based on information received from the client device. Aspects of the present disclosure provide coordinated rate control while streaming an item of video content to multiple client devices. The rate control is "adjusted" in that the rate at which streaming to one particular user device is determined based on information supplied to the content server by that particular user device as well as by at least one other user device. This can provide improved video delivery to multiple user devices. In most cases, servers that provide content for delivery to multiple user devices (known as “co-watching”) will use a third-party streaming platform, and the rate at which the content is streamed to multiple user devices (or Individual speeds). Moreover, although conventional rate control techniques may be applied to streaming content to multiple user devices, these techniques will apply independent rate control to each client device. This may cause user devices to have to pause playback to buffer again, suffer additional synchronization delays, and/or experience a lower video quality than may be provided.

또한, 위에서 유의한 바와 같이, 일부 실시예에서, 동기화된 미디어 재생 세션은 동기화된 미디어 재생 세션에 참여하는 사용자 디바이스가 비디오를 선택하고, 비디오를 일시 중지하고/하거나, 다른 비디오로 스위칭할 수 있게 할 수 있고, 사용자 다비이스에 의해 수행되는 액션이 세션에 참여하는 다른 사용자 디바이스들에 미러링되게 할 수 있다. 이것은 사용자 디바이스가 각각의 다른 사용자 디바이스와 개별적으로 통신할 필요없이 달성될 수 있는데 - 특정 사용자 디바이스가 비디오를 선택했고, 비디오를 일시 중지했고/했거나, 다른 비디오로 스위칭했다는 것을 콘텐츠 서버에게 알려줄 때, 콘텐츠 서버는 동일한 방식으로 다른 모든 사용자 디바이스로 스트리밍된 콘텐츠의 전달을 조절할 수 있다.Also, as noted above, in some embodiments, the synchronized media playback session allows user devices participating in the synchronized media playback session to select a video, pause the video, and/or switch to another video. And allows actions performed by the user device to be mirrored to other user devices participating in the session. This can be achieved without the need for the user device to communicate with each other user device individually-when notifying the content server that a particular user device has selected a video, paused the video, and/or has switched to another video. The content server can control the delivery of streamed content to all other user devices in the same way.

도 1을 참조하면, 개시된 주제의 일부 실시예에 따라 동기화된 미디어 재생 세션을 개시하고 다수의 디바이스에서 동기화된 미디어 콘텐츠를 제시하기 위한 정보 흐름도의 예(100)가 도시된다. 예시된 바와 같이, 일부 실시예에서, 프로세스(100)의 블록들은 제1 사용자 디바이스, 제2 사용자 디바이스 및 서버에서 수행될 수 있다. 도 1에 도시되고 아래에서 설명되는 정보 흐름도는 일반적으로 비디오의 동기화된 프리젠테이션을 설명하지만, 일부 실시예에서, 아래에서 설명되는 기술들은 임의의 적합한 유형의 미디어 콘텐츠(예를 들어, 비디오, 영화, 텔레비전 프로그램, 라이브 스트리밍 비디오 콘텐츠, 라이브 스트리밍 오디오 콘텐츠, 음악, 오디오북 및/또는 임의의 다른 적합한 유형의 미디어 콘텐츠)를 제시하는 데 사용될 수 있다. 도 1에 도시된 정보 흐름도가 제1 사용자 디바이스 및 제2 사용자 디바이스를 포함하지만, 이것은 단지 예시적인 것이라는 것이 유의된다. 임의의 적합한 개수의 사용자 디바이스들이 동기화된 미디어 재생 세션에 참여할 수 있다.1, an example 100 of an information flow diagram for initiating a synchronized media playback session and presenting synchronized media content on multiple devices in accordance with some embodiments of the disclosed subject matter is shown. As illustrated, in some embodiments, the blocks of process 100 may be performed at a first user device, a second user device, and a server. Although the information flow diagram shown in FIG. 1 and described below generally describes a synchronized presentation of a video, in some embodiments, the techniques described below can be used with any suitable type of media content (e.g., video, movie). , Television programs, live streaming video content, live streaming audio content, music, audiobooks, and/or any other suitable type of media content). It is noted that although the information flow diagram shown in FIG. 1 includes a first user device and a second user device, this is merely exemplary. Any suitable number of user devices may participate in a synchronized media playback session.

(102)에서, 제1 사용자 디바이스는 서버로부터 동기화된 재생 세션에서 제시될 비디오를 요청할 수 있다. 일부 실시예에서, 요청은 제1 사용자 디바이스에서 임의의 적합한 방식으로 개시될 수 있다. 예를 들어, 일부 실시예에서, 요청은 제1 사용자 디바이스의 사용자가 특정 미디어 콘텐츠 아이템으로의 링크를 선택하는 데 응답하여, 제1 사용자 디바이스의 사용자가 다른 사용자 디바이스들(예를 들어, 제2 사용자 디바이스)과 관련하여 특정 미디어 콘텐츠 아이템의 동기화된 미디어 재생 세션을 개시하는 링크를 선택하는 데 응답하여, 및/또는 임의의 다른 적합한 방식으로 개시될 수 있다. 일부 실시예에서, 동기화된 미디어 재생 세션으로의 링크는 임의의 적합한 사용자 디바이스에 의해 생성될 수 있고, 임의의 적합한 방식으로 다른 사용자 디바이스들과 공유될 수 있다는 것이 유의된다. 예를 들어, 일부 실시예에서, 동기화된 미디어 재생 세션으로의 링크는 메시지(예를 들어, 인스턴트 메시지, 텍스트 메시지, 이메일, 푸시 알림(push notification) 및/또는 임의의 다른 적합한 방식)를 통해 공유될 수 있다. 다른 예로, 일부 실시예에서, 비디오 콘텐츠 아이템이 재생되는 동기화된 미디어 재생 세션은 제1 사용자 디바이스에서 생성될 수 있으며, 여기서 다른 사용자 디바이스들과 연관된 사용자 계정들의 리스트는 동기화된 미디어 재생 세션에 합류하는 것으로 허용될 때 포함된다.At 102, the first user device may request a video to be presented in a synchronized playback session from the server. In some embodiments, the request may be initiated at the first user device in any suitable manner. For example, in some embodiments, the request is in response to a user of a first user device selecting a link to a particular media content item, such that the user of the first user device is directed to other user devices (e.g., a second User device) in response to selecting a link to initiate a synchronized media playback session of a particular media content item, and/or in any other suitable manner. It is noted that in some embodiments, the link to the synchronized media playback session may be created by any suitable user device and shared with other user devices in any suitable manner. For example, in some embodiments, a link to a synchronized media playback session is shared via message (e.g., instant message, text message, email, push notification, and/or any other suitable manner). Can be. As another example, in some embodiments, a synchronized media playback session in which the video content item is played may be created at a first user device, wherein a list of user accounts associated with other user devices is joined to the synchronized media playback session. Included when permitted.

유사하게, (104)에서, 제2 사용자 디바이스는 서버로부터 동기화된 재생 세션에서 비디오가 제시되도록 요청할 수 있고/있거나 동기화된 미디어 재생 세션에 합류하기 위해 요청할 수 있다. 블록(102)과 관련하여 위에서 설명한 바와 유사하게, 일부 실시예에서, 제2 사용자 디바이스는 링크의 선택을 통해 및/또는 임의의 다른 적합한 방식으로 동기화된 미디어 재생 세션에 합류하기 위해 및/또는 동기화된 미디어 재생 세션을 개시하기 위해 요청할 수 있다. 예를 들어, 제2 사용자 디바이스는 요청을 수락하여 비디오 콘텐츠 아이템이 재생되는 동기화된 재생 세션에 합류할 수 있다. 다른 예에서, 제2 사용자 디바이스는 애플리케이션을 시작할 수 있고 비디오 콘텐츠 아이템들이 재생되고 있는 재생 세션들의 리스트로부터 재생 세션을 선택할 수 있다.Similarly, at 104, the second user device may request that the video be presented in a synchronized playback session from the server and/or may request to join a synchronized media playback session. Similar to as described above with respect to block 102, in some embodiments, the second user device may synchronize and/or join a synchronized media playback session through selection of a link and/or in any other suitable manner. May request to initiate a media playback session. For example, the second user device may accept the request and join a synchronized playback session in which the video content item is played. In another example, the second user device can launch the application and select a playback session from a list of playback sessions in which video content items are being played.

일부 실시예에서, 동기화된 미디어 재생 세션은 제1 사용자 디바이스와 아직 비디오를 포함하고 있지 않은 제2 사용자 디바이스 (및/또는 임의의 다른 적합한 사용자 디바이스들) 사이에서 개시될 수 있다는 점을 유의한다. 이러한 일부 실시예에서, 제1 사용자 디바이스 및/또는 제2 사용자 디바이스는 동기화된 미디어 재생 세션 동안 임의의 적합한 방식으로 프리젠테이션을 위한 비디오 및/또는 일련의 비디오들을 선택할 수 있다. 예를 들어, 일부 실시예에서, 사용자 디바이스는 이용 가능한 비디오들의 그룹으로부터 특정 비디오를 선택할 수 있다. 다른 예로서, 일부 실시예에서, 사용자 디바이스는 이용 가능한 비디오들의 그룹으로부터 비디오들을 선택함으로써 및/또는 동기화된 미디어 재생 세션 동안 제시될 순서대로 비디오들을 배열함으로써 비디오들의 플레이리스트를 생성할 수 있다.It is noted that, in some embodiments, a synchronized media playback session may be initiated between a first user device and a second user device (and/or any other suitable user devices) that do not yet contain video. In some such embodiments, the first user device and/or the second user device may select the video and/or series of videos for presentation in any suitable manner during the synchronized media playback session. For example, in some embodiments, a user device may select a particular video from a group of available videos. As another example, in some embodiments, a user device may create a playlist of videos by selecting videos from a group of available videos and/or arranging the videos in an order to be presented during a synchronized media playback session.

(106)에서, 서버는 요청된 비디오에 대응하는 비디오 데이터를 제1 사용자 디바이스 및 제2 사용자 디바이스로 전송하기 시작할 수 있다. 일부 실시예에서, 서버는 비디오 데이터를 임의의 적합한 방식으로 제1 사용자 디바이스 및 제2 사용자 디바이스에 전송할 수 있다. 예를 들어, 일부 실시예에서, 비디오 데이터는 도 3과 관련하여 아래에 도시되고 설명되는 바와 같이 통신 네트워크를 통해 전송될 수 있다.At 106, the server may start transmitting video data corresponding to the requested video to the first user device and the second user device. In some embodiments, the server may transmit the video data to the first user device and the second user device in any suitable manner. For example, in some embodiments, video data may be transmitted over a communication network as shown and described below with respect to FIG. 3.

(108)에서, 제1 사용자 디바이스는 수신된 비디오 데이터를 제1 사용자 디바이스의 버퍼에 저장할 수 있다. 유사하게, (110)에서, 제2 사용자 디바이스는 수신된 비디오 데이터를 제2 사용자 디바이스의 버퍼에 저장할 수 있다.At 108, the first user device may store the received video data in a buffer of the first user device. Similarly, at 110, the second user device may store the received video data in a buffer of the second user device.

(112)에서, 제1 사용자 디바이스는 미리 결정된 양의 비디오 데이터가 버퍼링되었는지를 결정할 수 있다. 일부 실시예에서, 미리 결정된 양의 비디오 데이터는 임의의 적합한 양의 데이터일 수 있다. 예를 들어, 일부 실시예에서, 미리 결정된 양의 비디오 데이터는 특정 킬로바이트 숫자의 데이터, 비디오의 특정 지속기간(예를 들어, 5 초, 10 초, 30 초, 2 분 및/또는 비디오의 임의의 다른 지속기간) 및/또는 임의의 다른 적합한 양의 비디오 데이터에 대응할 수 있다. 유사하게, (114)에서, 제2 사용자 디바이스는 미리 결정된 양의 비디오 데이터가 제2 사용자 디바이스에 버퍼링되었는지를 결정할 수 있다. 일부 실시예에서, 제1 사용자 디바이스 및 제2 사용자 디바이스는 미리 결정된 동일한 양의 비디오 데이터가 각 디바이스에서 버퍼링되었는지를 각각 결정할 수 있다는 것이 유의된다.At 112, the first user device may determine whether a predetermined amount of video data has been buffered. In some embodiments, the predetermined amount of video data may be any suitable amount of data. For example, in some embodiments, a predetermined amount of video data is a specific kilobyte number of data, a specific duration of the video (e.g., 5 seconds, 10 seconds, 30 seconds, 2 minutes, and/or any Different duration) and/or any other suitable amount of video data. Similarly, at 114, the second user device can determine whether a predetermined amount of video data has been buffered in the second user device. It is noted that in some embodiments, the first user device and the second user device may each determine whether a predetermined equal amount of video data has been buffered in each device.

(112)에서, 제1 사용자 디바이스가 미리 결정된 양의 비디오 데이터가 버퍼링되지 않았다고 결정하면((112)에서 "아니오"), 제1 사용자 디바이스는 (108)로 루프백할 수 있고 수신된 비디오 데이터를 제1 사용자 디바이스의 버퍼에 계속하여 저장할 수 있다. 유사하게, (114)에서, 제2 사용자 디바이스가 미리 결정된 양의 비디오 데이터가 버퍼링되지 않았다고 결정하면((114)에서 "아니오"), 제2 사용자 디바이스는 (110)으로 루프백할 수 있고 수신된 비디오 데이터를 제2 사용자 디바이스의 버퍼에 계속하여 저장할 수 있다.If, at 112, the first user device determines that the predetermined amount of video data has not been buffered (“No” at 112), the first user device may loop back to 108 and send the received video data. It can be continuously stored in the buffer of the first user device. Similarly, if, at 114, the second user device determines that a predetermined amount of video data has not been buffered (“No” at 114), the second user device may loop back to 110 and receive The video data may be continuously stored in the buffer of the second user device.

(112)에서, 제1 사용자 디바이스가 제1 사용자 디바이스에 의해 미리 결정된 양의 비디오 데이터가 버퍼링되었다고 결정하면((112)에서 "예"), 제1 사용자 디바이스는 (116)으로 진행할 수 있고 제1 사용자 디바이스가 미리 결정된 양의 비디오를 버퍼링했음을 표시하는 메시지를 서버로 전송할 수 있다. 유사하게, (114)에서, 제2 사용자 디바이스가 제2 사용자 디바이스에 의해 미리 결정된 양의 비디오가 버퍼링되었다고 결정하면((114)에서 "예"), 제2 사용자 디바이스는 (118)로 진행할 수 있고 제2 사용자 디바이스가 미리 결정된 양의 비디오를 버퍼링했음을 표시하는 메시지를 서버로 전송할 수 있다. 일부 실시예에서, 임의의 적합한 정보는 도 2와 관련하여 아래에서 보다 상세하게 설명되는 바와 같이, 제1 사용자 디바이스 및 제2 사용자 디바이스에 의해 전송되는 메시지들에 포함될 수 있다는 것이 유의된다.If, at 112, the first user device determines that a predetermined amount of video data has been buffered by the first user device (“Yes” at 112), the first user device may proceed to 116 and the first 1 A message indicating that the user device has buffered a predetermined amount of video may be transmitted to the server. Similarly, at 114, if the second user device determines that a predetermined amount of video has been buffered by the second user device (“Yes” at 114), the second user device may proceed to 118. And a message indicating that the second user device has buffered a predetermined amount of video may be transmitted to the server. It is noted that in some embodiments, any suitable information may be included in messages sent by the first user device and the second user device, as described in more detail below with respect to FIG. 2.

(120)에서, 서버는 동기화된 미디어 재생 세션에 포함된 모든 사용자 디바이스(예를 들어, 도 1에 도시된 예에서 제1 사용자 디바이스 및 제2 사용자 디바이스)가 미리 결정된 양의 비디오 데이터를 버퍼링했는지를 결정할 수 있다. 예를 들어, 일부 실시예에서, 서버는 동기화된 미디어 재생 세션에 포함된 모든 사용자 디바이스로부터 미리 결정된 양의 비디오 데이터가 버퍼링되었음을 표시하는 메시지를 수신했는지를 결정할 수 있다.At 120, the server has determined that all user devices (e.g., the first user device and the second user device in the example shown in FIG. 1) included in the synchronized media playback session have buffered a predetermined amount of video data. Can be determined. For example, in some embodiments, the server may determine whether a message indicating that a predetermined amount of video data has been buffered has been received from all user devices included in the synchronized media playback session.

(120)에서 서버가 동기화된 재생 세션에 포함된 디바이스가 미리 결정된 양의 비디오 데이터를 아직 버퍼링하지 않았다고 결정하면((120)에서 "아니오"), (122)에서 서버는 미리 결정된 양의 비디오 데이터를 버퍼링했다고 표시하는 메시지들을 전송했던 임의의 모든 사용자 디바이스에게 응답들을 전송할 수 있다. 특히, 서버는 미리 결정된 양의 비디오 데이터를 버퍼링한 사용자 디바이스들에게 비디오의 재생을 시작하기를 대기하도록 지시하는 응답을 전송할 수 있다.If at (120) the server determines that the device included in the synchronized playback session has not yet buffered a predetermined amount of video data ("No" at (120)), then at (122) the server sends a predetermined amount of video data. Responses can be sent to any user device that has sent messages indicating that it has buffered. In particular, the server may transmit a response instructing user devices that have buffered a predetermined amount of video data to wait to start playing the video.

이러한 경우에, 비디오의 재생을 시작하기를 대기하라는 서버로부터 응답을 수신하는 것에 응답하여, 사용자 디바이스는 미리 결정된 양의 비디오 데이터가 버퍼링되었다는 메시지를 임의의 적합한 지연 후에 서버로 재 전송할 수 있다. 예를 들어, 일부 실시예에서, 사용자 디바이스는 메시지를 임의의 적합한 빈도(예를 들어, 초당 한 번, 초당 두 번 및/또는 임의의 다른 적합한 빈도)로 서버로 전송할 수 있다. 보다 특정한 예로서, 재생 시작을 대기하라는 서버로부터의 응답을 수신하는 것에 응답하여, 제1 사용자 디바이스는 블록(116)으로 루프백할 수 있다. 다른 보다 특정한 예로서, 재생 시작을 대기하라는 서버로부터의 응답을 수신하는 것에 응답하여, 제2 사용자 디바이스는 블록(118)으로 루프백할 수 있다. 예를 들어, 비디오의 재생 시작을 대기하라는 서버로부터의 지시를 수신하는 것에 응답하여, 사용자 디바이스는 비디오 데이터를 사용자 디바이스의 버퍼에 계속 (예를 들어, 버퍼가 버퍼의 용량을 채울 때까지) 저장할 수 있다.In this case, in response to receiving a response from the server to wait to start playing the video, the user device may send a message back to the server after any suitable delay indicating that a predetermined amount of video data has been buffered. For example, in some embodiments, the user device may send the message to the server at any suitable frequency (eg, once per second, twice per second, and/or any other suitable frequency). As a more specific example, in response to receiving a response from the server to wait for playback to begin, the first user device may loop back to block 116. As another more specific example, in response to receiving a response from the server to wait for playback to begin, the second user device may loop back to block 118. For example, in response to receiving an instruction from the server to wait for the video to start playing, the user device continues to store the video data in the user device's buffer (e.g., until the buffer fills the buffer's capacity). I can.

이와 반대로, (120)에서, 서버가 동기화된 미디어 재생 세션에 포함된 모든 사용자 디바이스가 미리 결정된 양의 비디오 데이터를 버퍼링했다고 결정하면, (124)에서 서버는 비디오의 재생을 시작하라는 지시들을 모든 사용자 디바이스로 전송할 수 있다. 예를 들어, 서버는 동기화된 미디어 재생 세션의 모든 사용자 디바이스에게 비디오 재생을 시작하라는 지시들을 전송할 수 있다. 다른 예에서, 서버는 동기화된 미디어 재생 세션의 모든 사용자 디바이스에게 특정 클록 시간에 비디오가 재생되도록 하는 지시를 전송할 수 있다. 일부 실시예에서, 서버는 비디오에 대응하는 비디오 데이터를 계속 전송할 수 있고, 사용자 디바이스들은 비디오의 재생 동안 수신된 비디오 데이터를 계속 버퍼링할 수 있다.Conversely, if, at 120, the server determines that all user devices included in the synchronized media playback session have buffered a predetermined amount of video data, then at 124 the server sends instructions to start playing the video to all users. Can be transferred to the device. For example, the server may send instructions to start video playback to all user devices in a synchronized media playback session. In another example, the server may send an instruction to play the video at a specific clock time to all user devices in a synchronized media playback session. In some embodiments, the server may continue to transmit video data corresponding to the video, and user devices may continue to buffer video data received during playback of the video.

일부 실시예에서, 제1 사용자 디바이스 및 제2 사용자 디바이스는 동기화된 재생 세션이 임의의 적합한 방식으로 시작되게 할 수 있다. 예를 들어, 일부 실시예에서, 비디오의 프리젠테이션은 임의의 적합한 유형의 비디오 플레이어 윈도우에서 시작될 수 있다. 일부 실시예에서, 동기화된 재생 세션에 포함된 다른 사용자 디바이스들의 임의의 적합한 표시가 비디오의 프리젠테이션과 관련하여 제시될 수 있다. 예를 들어, 일부 실시예에서, 동기화된 재생 세션에 포함된 다른 사용자 디바이스들과 연관된 사용자들의 사용자 이름들 및/또는 동기화된 재생 세션에 포함된 다른 사용자 디바이스들과 연관된 사용자들과 연관된 아이콘들이 제시될 수 있다.In some embodiments, the first user device and the second user device may cause a synchronized playback session to be started in any suitable manner. For example, in some embodiments, the presentation of the video may begin in any suitable type of video player window. In some embodiments, any suitable indication of other user devices involved in the synchronized playback session may be presented in connection with the presentation of the video. For example, in some embodiments, user names of users associated with other user devices included in the synchronized playback session and/or icons associated with users associated with other user devices included in the synchronized playback session are presented. Can be.

일부 실시예에서, 동기화된 미디어 재생 세션은 세션에 참여하는 사용자 디바이스가 세션에서 미디어 콘텐츠의 프리젠테이션과 상호 작용할 수 있도록 하고/하거나 세션에 참여하는 다른 사용자 디바이스들과 임의의 적합한 방식으로 상호 작용할 수 있도록 할 수 있다. 예를 들어, 위에서 설명한 바와 같이, 일부 실시예에서, 사용자 디바이스는 미디어 콘텐츠 아이템의 재생이 세션에 참여하는 모든 사용자 디바이스에서 일시 중지되게 할 수 있다. 다른 예로서, 일부 실시예에서, 사용자 디바이스는 미디어 콘텐츠 아이템의 재생이 모든 사용자 디바이스에서 다른 재생 위치로 점프하거나 건너 뛰게 할 수 있다. 또 다른 예로서, 일부 실시예에서, 사용자 디바이스는 다른 미디어 콘텐츠 아이템이 제시되기를 시작하게 할 수 있다. 또 다른 예로서, 일부 실시예에서, 사용자 디바이스는 세션에 참석하는 모든 사용자 디바이스 상에 제시될 메시지를, 예를 들어 인스턴트 메시지로서, 그룹 채팅의 메시지로서, 및/또는 임의의 다른 적합한 방식으로 전송할 할 수 있다.In some embodiments, a synchronized media playback session allows a user device participating in the session to interact with the presentation of media content in the session and/or interact in any suitable manner with other user devices participating in the session. I can do it. For example, as described above, in some embodiments, the user device may cause playback of the media content item to be paused on all user devices participating in the session. As another example, in some embodiments, the user device may cause playback of a media content item to jump or skip to a different playback location on all user devices. As another example, in some embodiments, the user device may cause another item of media content to begin to be presented. As another example, in some embodiments, the user device sends a message to be presented on all user devices attending the session, for example as an instant message, as a message in a group chat, and/or in any other suitable manner. can do.

도 2를 참조하면, 개시된 주제의 일부 실시예에 따라 동기화된 미디어 재생 세션에서 스트림 콘텐츠를 조절하기 위한 프로세스(200)의 예가 도시된다. 일부 실시예에서, 프로세스(200)의 블록들은 미디어 콘텐츠를 저장하고/하거나 미디어 콘텐츠를 사용자 디바이스들로 스트리밍하는 서버(예를 들어, 도 3과 관련하여 아래에서 도시되고 설명되는 서버(302))와 같은 서버에서 구현될 수 있다.2, an example of a process 200 for adjusting stream content in a synchronized media playback session in accordance with some embodiments of the disclosed subject matter is shown. In some embodiments, blocks of process 200 may include a server that stores media content and/or streams media content to user devices (e.g., server 302 shown and described below with respect to FIG. 3). It can be implemented in the same server.

(202)에서, 프로세스(200)는 동기화된 미디어 재생 세션에 참여하고 있는 다수의 사용자 디바이스 각각에 미디어 콘텐츠 스트림들을 전송함으로써 시작할 수 있다. 도 1의 블록(102)과 관련하여 위에서 설명한 바와 같이, 동기화된 미디어 재생 세션은 세션에 참여하는 각 사용자 디바이스에서 임의의 적합한 방식으로, 예를 들어 링크의 선택을 통해, 개시되고/되거나 합류될 수 있다는 것이 유의된다. 일부 실시예에서, 미디어 콘텐츠 스트림들은 동기화된 미디어 재생 세션 동안 다수의 사용자 디바이스 각각에 동시에 제시될 임의의 미디어 콘텐츠 아이템에 대응할 수 있다. 일부 실시예에서, 미디어 콘텐츠 아이템은 임의의 사용자 디바이스, 예를 들어 동기화된 미디어 재생 세션에 참여하는 사용자 디바이스에 의해 선택될 수 있다. 부가적으로 또는 대안적으로, 일부 실시예에서, 미디어 콘텐츠 아이템은 플레이리스트 또는 미디어 콘텐츠 아이템들의 다른 모음에 포함된 미디어 콘텐츠 아이템일 수 있다. 일부 실시예에서, 동기화된 미디어 재생 세션에 참여하는 사용자 디바이스들의 각 사용자 디바이스는, 도 1의 블록들(108 및 110)과 관련하여 위에서 설명한 바와 같이, 수신된 미디어 콘텐츠 스트림에 대응하는 미디어 콘텐츠 데이터를 사용자 디바이스의 버퍼에 저장할 수 있다.At 202, process 200 may begin by sending media content streams to each of a number of user devices participating in a synchronized media playback session. As described above in connection with block 102 of FIG. 1, a synchronized media playback session may be initiated and/or joined in any suitable manner at each user device participating in the session, for example through selection of a link. It is noted that you can. In some embodiments, media content streams may correspond to any media content item to be presented simultaneously to each of multiple user devices during a synchronized media playback session. In some embodiments, the media content item may be selected by any user device, eg, a user device participating in a synchronized media playback session. Additionally or alternatively, in some embodiments, the media content item may be a media content item included in a playlist or other collection of media content items. In some embodiments, each user device of the user devices participating in the synchronized media playback session is configured with media content data corresponding to the received media content stream, as described above with respect to blocks 108 and 110 of FIG. Can be stored in the buffer of the user device.

일부 실시예에서, 프로세스(200)는 미디어 콘텐츠 스트림들을 임의의 적합한 방식으로 전송할 수 있다. 예를 들어, 일부 실시예에서, 프로세스(200)와 연관된 서버(예를 들어, 미디어 콘텐츠를 저장하고/하거나 미디어 콘텐츠를 사용자 디바이스 및/또는 임의의 다른 적합한 서버로 스트리밍하는 서버)는 각 미디어 콘텐츠 스트림과 관련된 미디어 콘텐츠 데이터를 임의의 적합한 통신 네트워크(예를 들어, 도 3과 관련하여 아래에서 도시되고 설명되는 통신 네트워크(304))를 사용하여 사용자 디바이스로 전송할 수 있다.In some embodiments, process 200 may transmit media content streams in any suitable manner. For example, in some embodiments, a server associated with process 200 (e.g., a server that stores media content and/or streams media content to a user device and/or any other suitable server) is The media content data associated with the stream may be transmitted to the user device using any suitable communication network (eg, communication network 304 shown and described below with respect to FIG. 3 ).

(204)에서, 프로세스(200)는 동기화된 미디어 재생 세션에 참여하는 다수의 사용자 디바이스 중 제1 사용자 디바이스로부터, 제1 사용자 디바이스가 제1 사용자 디바이스로 전송된 미디어 콘텐츠 스트림과 연관된 미디어 콘텐츠 데이터를 세션에 참여하는 다른 사용자 디바이스들이 다른 사용자 디바이스들 각각에 전송된 미디어 콘텐츠 스트림들에 대응하는 미디어 콘텐츠 데이터를 버퍼링하고 있는 것보다 느린 속도로 버퍼링하고 있다는 것을 표시하는 정보를 수신할 수 있다. 일부 실시예에서, 제1 사용자 디바이스로부터의 정보는 임의의 적합한 방식으로 수신될 수 있다. 예를 들어, 일부 실시예에서, 도 1의 블록들(112-118)과 관련하여 위에서 설명한 바와 같이, 각 사용자 디바이스는 사용자 디바이스가 세션에서 제시될 미디어 콘텐츠 아이템과 연관된 미리 결정된 양의 미디어 콘텐츠 데이터를 버퍼링했을 때 동기화된 미디어 재생 세션을 조정하는 메시지를 서버로 전송할 수 있다. 이러한 일부 실시예에서, 프로세스(200)는 수신된 메시지들과 연관된 정보에 기초하여 제1 사용자 디바이스가 다른 사용자 디바이스들보다 느린 속도로 미디어 콘텐츠 데이터를 버퍼링하고 있다는 것을 결정할 수 있다. 예를 들어, 일부 실시예에서, 프로세스(200)는 사용자 디바이스들 각각으로부터 수신된 메시지들의 타이밍에 기초하여 제1 사용자 디바이스가 다른 사용자 디바이스들보다 더 느리게 미디어 콘텐츠 데이터를 버퍼링하고 있다는 것을 결정할 수 있다. 보다 특정한 예로서, 일부 실시예에서, 프로세스(200)는 제1 사용자 디바이스가 미리 결정된 양의 미디어 콘텐츠 데이터의 버퍼링을 완료하는 사용자 디바이스들 중 마지막 디바이스였다고 결정하는 것에 기초하여 제1 사용자 디바이스가 다른 사용자 디바이스들보다 더 느리게 미디어 콘텐츠 데이터를 버퍼링하고 있다는 것을 결정할 수 있다. 다른 보다 특정한 예로서, 일부 실시예에서, 프로세스(200)는 프로세스(200)가, 제1 사용자 디바이스가 미리 결정된 미디어 콘텐츠 데이터의 버퍼링을 완료하지 않았음을 표시하는 제1 사용자 디바이스 이외의, 세션에 참여하는 모든 사용자 디바이스로부터, 메시지들을 수신했다는 결정에 기초하여 제1 사용자 디바이스가 다른 사용자 디바이스들보다 더 느리게 미디어 콘텐츠 데이터를 버퍼링하고 있다는 것을 결정할 수 있다. At 204, the process 200 retrieves, from a first user device of a plurality of user devices participating in the synchronized media playback session, media content data associated with the media content stream transmitted by the first user device to the first user device. Information indicating that other user devices participating in the session are buffering media content data corresponding to the media content streams transmitted to each of the other user devices at a slower rate than are buffering may be received. In some embodiments, information from the first user device may be received in any suitable manner. For example, in some embodiments, as described above with respect to blocks 112-118 of FIG. 1, each user device may have a predetermined amount of media content data associated with the media content item to be presented by the user device in the session. When buffered, a message to adjust the synchronized media playback session can be sent to the server. In some such embodiments, process 200 may determine that the first user device is buffering media content data at a slower rate than other user devices based on information associated with the received messages. For example, in some embodiments, process 200 may determine that a first user device is buffering media content data more slowly than other user devices based on the timing of messages received from each of the user devices. . As a more specific example, in some embodiments, process 200 is based on determining that the first user device was the last of the user devices to complete buffering of a predetermined amount of media content data. It can be determined that it is buffering media content data more slowly than user devices. As another more specific example, in some embodiments, process 200 is a session other than a first user device indicating that process 200 has not completed buffering of the predetermined media content data. It can be determined that the first user device is buffering the media content data more slowly than other user devices based on the determination that it has received messages from all user devices participating in the.

다른 예로서, 일부 실시예에서, 프로세스(200)는 제1 사용자 디바이스로부터 수신된 메시지에 포함된 정보에 기초하여 제1 사용자 디바이스가 동기화된 미디어 재생 세션에 참여하는 다른 사용자 디바이스들보다 느린 속도로 미디어 콘텐츠 데이터를 버퍼링하고 있다는 것을 결정할 수 있다. 예를 들어, 일부 실시예에서, 프로세스(200)는 제1 사용자 디바이스와 프로세스(200)와 연관된 서버 사이의 현재 네트워크 연결에 관한 정보를 표시하는 메시지를 제1 사용자 디바이스로부터 수신할 수 있다. 보다 특정한 예로서, 일부 실시예에서, 메시지는 네트워크 연결의 현재 속도, 네트워크 연결과 연관된 대기 시간, 네트워크 연결의 대역폭, 네트워크 연결이 끊어졌거나 시간이 초과된 횟수, 및/또는 네트워크 연결의 품질을 표시하는 임의의 다른 적합한 정보를 표시할 수 있다.As another example, in some embodiments, process 200 may be performed at a slower rate than other user devices in which the first user device participates in a synchronized media playback session based on information contained in a message received from the first user device. It can be determined that the media content data is being buffered. For example, in some embodiments, process 200 may receive a message from the first user device indicating information about a current network connection between the first user device and a server associated with process 200. As a more specific example, in some embodiments, the message indicates the current speed of the network connection, the latency associated with the network connection, the bandwidth of the network connection, the number of times the network connection was lost or timed out, and/or the quality of the network connection. Any other suitable information to be displayed.

일부 실시예에서, 프로세스(200)는 동기화된 미디어 재생 세션에 참여하는 임의의 사용자 디바이스들로부터, 임의의 적합한 정보를 표시할 수 있는 메시지들을 수신할 수 있다는 것이 유의된다. 예를 들어, 일부 실시예에서, 사용자 디바이스로부터의 메시지는 사용자 디바이스와 프로세스(200)와 연관된 서버 사이의 네트워크 연결의 품질을 표시할 수 있다. 다른 예로서, 일부 실시예에서, 사용자 디바이스로부터의 메시지는 사용자 디바이스에 관한 정보, 이를테면 사용자 디바이스의 유형(예를 들어, 사용자 디바이스가 모바일 디바이스라는 것, 사용자 디바이스가 스마트 텔레비전이라는 것, 및/또는 임의의 다른 적합한 디바이스 유형), 사용자 디바이스의 디스플레이에 관한 정보(예를 들어, 디스플레이의 크기, 디스플레이의 현재 방향 및/또는 임의의 다른 적합한 디스플레이 정보), 및/또는 임의의 다른 적합한 정보를 표시할 수 있다. 이러한 일부 실시예에서, 사용자 디바이스로부터 수신된 정보는, 블록(206)과 관련하여 아래에서 보다 상세히 설명되는 바와 같이, 프로세스(200)에 의해 각 사용자 디바이스로 전송되는 미디어 콘텐츠 스트림에 대한 파라미터들을 결정하는 데 사용될 수 있다.It is noted that, in some embodiments, process 200 may receive messages that may indicate any suitable information from any user devices participating in a synchronized media playback session. For example, in some embodiments, a message from a user device may indicate the quality of a network connection between the user device and a server associated with process 200. As another example, in some embodiments, the message from the user device is information about the user device, such as the type of user device (e.g., that the user device is a mobile device, that the user device is a smart television, and/or Any other suitable device type), information about the display of the user device (e.g., the size of the display, the current orientation of the display and/or any other suitable display information), and/or any other suitable information. I can. In some such embodiments, the information received from the user device determines parameters for the media content stream transmitted by process 200 to each user device, as described in more detail below with respect to block 206. Can be used to

(206)에서, 프로세스(200)는 이전에 제1 사용자 디바이스로 전송된 미디어 콘텐츠 스트림보다 낮은 품질을 갖는 미디어 콘텐츠 아이템에 대응하는 미디어 콘텐츠 스트림을 선택 및/또는 생성할 수 있다. 일부 실시예에서, 더 낮은 품질의 미디어 콘텐츠 스트림은 임의의 적합한 방식으로 감소된 품질의 스트림일 수 있다. 예를 들어, 일부 실시예에서, 더 낮은 품질의 미디어 콘텐츠 스트림은 제1 사용자 디바이스로 원래 전송된 미디어 콘텐츠 스트림보다 낮은 비트레이트를 사용하여 인코딩될 수 있다. 일부 실시예에서, 프로세스(200)는 임의의 적합한 재생 위치로부터 시작하는 더 낮은 품질의 미디어 콘텐츠 스트림을 생성할 수 있다. 예를 들어, 일부 실시예에서, 프로세스(200)는 원래 전송된 미디어 콘텐츠 스트림의 미디어 콘텐츠 데이터의 마지막 부분에 대응하는 재생 위치를 식별할 수 있고 재생 위치 이후에 시작되는 더 낮은 품질의 미디어 콘텐츠 스트림을 생성할 수 있다.At 206, process 200 may select and/or generate a media content stream corresponding to a media content item having a lower quality than the media content stream previously transmitted to the first user device. In some embodiments, the lower quality media content stream may be a reduced quality stream in any suitable manner. For example, in some embodiments, the lower quality media content stream may be encoded using a lower bit rate than the media content stream originally transmitted to the first user device. In some embodiments, process 200 may generate a lower quality media content stream starting from any suitable playback location. For example, in some embodiments, the process 200 may identify a playback position corresponding to the last portion of the media content data of the originally transmitted media content stream, and a lower quality media content stream that begins after the playback position. Can be created.

일부 실시예에서, 프로세스(200)는 임의의 적합한 정보 및 임의의 적합한 기술(들)을 사용하여 더 낮은 품질의 미디어 콘텐츠 스트림에 대한 스트림 파라미터들을 선택 및/또는 결정할 수 있다는 것이 유의된다. 예를 들어, 일부 실시예에서, 프로세스(200)는 블록(202)에서 제1 사용자 디바이스로 이전에 전송되었던 미디어 콘텐츠 스트림과 연관된 스트림 파라미터들에 기초하여, 업데이트된 스트림 파라미터들(예를 들어, 스트림이 인코딩되는 새로운 비트레이트 및/또는 임의의 다른 적합한 스트림 파라미터들)을 선택 및/또는 결정할 수 있다. 보다 특정한 예로서, 일부 실시예에서, 프로세스(200)는 블록(202)에서 제1 사용자 디바이스로 전송되었던 스트림의 비트레이트보다 더 낮은 업데이트된 비트레이트를 선택할 수 있다. 다른 예로서, 일부 실시예에서, 프로세스(200)는 제1 사용자 디바이스와 연관된 정보에 기초하여 업데이트된 스트림 파라미터들을 선택 및/또는 결정할 수 있다. 보다 특정한 예로서, 일부 실시예에서, 프로세스(200)는 제1 사용자 디바이스의 버퍼에 현재 저장된 미디어 콘텐츠 데이터의 양에 기초하여 및/또는 프리젠테이션 전에 미디어 콘텐츠 스트림의 프레임들을 디코딩하는 제1 사용자 디바이스의 능력에 기초하여 업데이트된 스트림 파라미터들을 선택 및/또는 결정할 수 있다. 다른 보다 특정한 예로서, 일부 실시예에서, 프로세스(200)는 제1 사용자 디바이스와 프로세스(200)와 연관된 서버 사이의 네트워크 연결의 품질을 표시하는 정보(예를 들어, 연결과 연관된 대기 시간, 연결과 연관된 대역폭, 연결 속도 및/또는 임의의 다른 적합한 정보)에 기초하여 업데이트된 스트림 파라미터들을 선택 및/또는 결정할 수 있다. 다른 보다 특정한 예로서, 일부 실시예에서, 프로세스(200)는 동기화된 미디어 재생 세션에 참여하는 다른 사용자 디바이스들의 성능을 표시하는 정보에 기초한 업데이트된 스트림 파라미터들, 이를테면 다른 사용자 디바이스들 각각의 프로세스(200)와 연관된 서버와의 네트워크 연결의 품질(예를 들어, 각 네트워크 연결의 속도, 각 네트워크 연결의 대기 시간, 각 네트워크 연결의 대역폭 및/또는 임의의 다른 적합한 정보), 세션의 각 사용자 디바이스가 프리젠테이션 전에 프레임들을 디코딩하는 능력, 각 디바이스의 버퍼에 저장된 데이터의 양, 및/또는 제1 사용자 디바이스 이외의 디바이스들의 임의의 다른 적합한 성능 정보를 선택 및/또는 결정할 수 있다.It is noted that in some embodiments, process 200 may select and/or determine stream parameters for a lower quality media content stream using any suitable information and any suitable technique(s). For example, in some embodiments, process 200 based on the stream parameters associated with the media content stream that was previously transmitted to the first user device at block 202, updated stream parameters (e.g., Select and/or determine the new bitrate and/or any other suitable stream parameters) at which the stream is encoded. As a more specific example, in some embodiments, process 200 may select an updated bitrate that is lower than the bitrate of the stream that was transmitted to the first user device at block 202. As another example, in some embodiments, process 200 may select and/or determine updated stream parameters based on information associated with the first user device. As a more specific example, in some embodiments, the process 200 is based on the amount of media content data currently stored in the buffer of the first user device and/or decoding frames of the media content stream prior to presentation. The updated stream parameters may be selected and/or determined based on the capability of As another more specific example, in some embodiments, process 200 includes information indicating the quality of the network connection between the first user device and the server associated with process 200 (e.g., latency associated with the connection, connection The updated stream parameters may be selected and/or determined based on the bandwidth, connection speed and/or any other suitable information associated with. As another more specific example, in some embodiments, process 200 may include updated stream parameters based on information indicative of the performance of other user devices participating in a synchronized media playback session, such as the process of each of the other user devices ( 200) and the quality of the network connection to the server associated with it (e.g., the speed of each network connection, the latency of each network connection, the bandwidth of each network connection and/or any other suitable information), and each user device in the session The ability to decode frames prior to presentation, the amount of data stored in the buffer of each device, and/or any other suitable performance information of devices other than the first user device may be selected and/or determined.

(208)에서, 프로세스(200)는 더 낮은 품질의 미디어 콘텐츠 스트림을 제1 사용자 디바이스로 전송하기 시작할 수 있다. 일부 실시예에서, 프로세스(200)는 제1 사용자 디바이스에게 더 낮은 품질의 미디어 콘텐츠 스트림이 임의의 적합한 방식으로 전송되고 있다는 것을 통지할 수 있다. 예를 들어, 일부 실시예에서, 프로세스(200)는 더 낮은 품질의 미디어 콘텐츠 스트림과 연관된 비트레이트의 표시를 제1 사용자 디바이스로 전송할 수 있다. 일부 실시예에서, 프로세스(200)는 더 낮은 품질의 미디어 콘텐츠 스트림이 전송되고 있음을 표시하는 통지가 제1 사용자 디바이스에 제시되게 하는 지시들을 전송할 수 있다(예를 들어, 메시지는 제1 사용자 디바이스가 네트워크 연결 불량 및/또는 임의의 다른 적합한 정보로 인해 더 낮은 품질의 미디어 콘텐츠 스트림을 수신하고 있다는 것을 표시할 수 있다)At 208, process 200 may begin transmitting the lower quality media content stream to the first user device. In some embodiments, process 200 may notify the first user device that a lower quality media content stream is being transmitted in any suitable manner. For example, in some embodiments, process 200 may send an indication of the bitrate associated with the lower quality media content stream to the first user device. In some embodiments, process 200 may send instructions that cause a notification to be presented to the first user device indicating that a lower quality media content stream is being transmitted (e.g., the message May indicate that it is receiving a lower quality media content stream due to poor network connectivity and/or any other suitable information)

(210)에서, 프로세스(200)는 동기화된 미디어 재생 세션에 참여하는 사용자 디바이스들 각각에게 각 사용자 디바이스로 전송된 미디어 콘텐츠 스트림들을 사용하여 미디어 콘텐츠 아이템의 프리젠테이션을 시작하라는 지시들을 전송할 수 있다. 예를 들어, 도 1의 블록(124)과 관련하여 위에서 설명한 바와 같이, 지시들은 각 사용자 디바이스로 하여금 미디어 콘텐츠 아이템의 동시적인 프리젠테이션을 시작하게 할 수 있다. 일부 실시예에서, 도 1의 블록(124)과 관련하여 위에서 설명한 바와 같이, 동기화된 미디어 재생 세션에서 제시되는 미디어 콘텐츠 아이템은 세션에 참여하는 다른 사용자 디바이스들의 표시들과 같은 임의의 적합한 특징들, 세션에 참여하는 사용자 디바이스로 하여금, 세션의 모든 사용자 디바이스에서 재생이 변경되게 하는, 미디어 콘텐츠 아이템의 재생을 변경할 수 있도록 하는 특징들(예를 들어, 미디어 콘텐츠 아이템의 일시 중지, 다른 재생 위치로 점프 및/또는 임의의 다른 적합한 방식으로 재생의 변경), 및/또는 사용자 디바이스들의 사용자들이 (예를 들어, 메시징 인터페이스를 통해 및/또는 임의의 다른 적합한 방식으로) 서로 상호 작용할 수 있도록 하는 특징들을 포함할 수 있다.At 210, process 200 may send instructions to each of the user devices participating in the synchronized media playback session to start presentation of the media content item using the media content streams sent to each user device. For example, as described above with respect to block 124 of FIG. 1, the instructions may cause each user device to initiate a simultaneous presentation of the media content item. In some embodiments, as described above with respect to block 124 of FIG. 1, the media content item presented in a synchronized media playback session may include any suitable features, such as indications of other user devices participating in the session, Features that allow a user device participating in a session to change the playback of a media content item, causing the playback to change on all user devices in the session (e.g., pausing a media content item, jumping to a different playback position) And/or altering the playback in any other suitable way), and/or features that allow users of user devices to interact with each other (eg, via a messaging interface and/or in any other suitable way). can do.

(212)에서, 프로세스(200)는 동기화된 미디어 재생 세션에 참여하는 다수의 사용자 디바이스 중 제2 사용자 디바이스로부터, 제2 사용자 디바이스가 제2 사용자 디바이스로 전송된 미디어 콘텐츠 스트림에 대응하는 미디어 콘텐츠 데이터를 동기화된 미디어 재생 세션에 참여하는 다른 사용자 디바이스들보다 더 적게 저장했다는 것을 표시하는 정보를 수신할 수 있다. 일부 실시예에서, 프로세스(200)는 제2 사용자 디바이스로부터의 정보를 임의의 적합한 방식으로 수신할 수 있다. 예를 들어, 일부 실시예에서, 동기화된 미디어 재생 세션에 참여하는 각 사용자 디바이스는 사용자 디바이스의 버퍼의 현재 상태(예를 들어, 버퍼 내 현재 데이터의 양, 버퍼 내 현재 데이터의 재생 지속기간, 및/또는 버퍼의 상태를 표시하는 다른 적합한 정보)를 표시하는 메시지를 프로세스(200)와 연관된 서버로 주기적으로 전송할 수 있다. 이러한 일부 실시예에서, 프로세스(200)는 제2 사용자 디바이스로부터 수신된 정보와 다른 사용자 디바이스들로부터 수신된 정보 간의 비교에 기초하여, 제2 사용자 디바이스가 제2 사용자 디바이스의 버퍼에 저장된 미디어 콘텐츠 데이터를 다른 사용자 디바이스들이 그들 각자의 버퍼들에 저장한 것보다 더 적게 갖고 있다는 것을 결정할 수 있다. 예를 들어, 제2 사용자 디바이스가 현재 제2 사용자 디바이스의 버퍼에 2 초의 재생 데이터가 저장되어 있다고 표시하는 메시지를 제2 사용자 디바이스가 전송하고, 다른 사용자 디바이스들이 그들 각자의 버퍼들에 실질적으로 더 많은 데이터(예를 들어, 8 초 초과의 재생 데이터, 10 초 초과의 재생 데이터 및/또는 임의의 다른 적합한 양)가 저장되어 있다고 다른 사용자 디바이스들이 표시하는 경우에, 프로세스(200)는 제2 사용자 디바이스가 세션에 참여하는 다른 사용자 디바이스들에 비해 제2 사용자 디바이스의 버퍼에 저장된 미디어 콘텐츠 데이터를 더 적게 갖고 있다는 것을 결정할 수 있다.At 212, the process 200 includes media content data corresponding to the media content stream transmitted by the second user device to the second user device from a second user device among a plurality of user devices participating in the synchronized media playback session. Information indicating that it has stored less than other user devices participating in the synchronized media playback session. In some embodiments, process 200 may receive information from the second user device in any suitable manner. For example, in some embodiments, each user device participating in a synchronized media playback session may determine the current state of the user device's buffer (e.g., the amount of current data in the buffer, the duration of playback of the current data in the buffer, and A message indicating (or other suitable information indicating the state of the buffer) may be periodically transmitted to the server associated with the process 200. In some such embodiments, the process 200 is based on a comparison between the information received from the second user device and the information received from other user devices, wherein the second user device is configured with the media content data stored in the buffer of the second user device. It can be determined that other user devices have fewer than what other user devices have stored in their respective buffers. For example, the second user device sends a message indicating that the second user device currently has 2 seconds of playback data stored in the buffer of the second user device, and the other user devices substantially add to their respective buffers. If other user devices indicate that a lot of data (e.g., more than 8 seconds of play data, more than 10 seconds of play data, and/or any other suitable amount) is stored, the process 200 It can be determined that the device has less media content data stored in the buffer of the second user device compared to other user devices participating in the session.

(214)에서, 프로세스(200)는 제2 사용자 디바이스로 이전에 전송된 미디어 콘텐츠 스트림보다 더 낮은 품질 레벨의 미디어 콘텐츠 스트림을 선택 및/또는 생성할 수 있다. 예를 들어, 블록(206)과 관련하여 위에서 설명한 바와 같이, 프로세스(200)는 원래 전송된 미디어 콘텐츠 스트림보다 더 낮은 비트레이트로 인코딩된 미디어 콘텐츠 스트림을 선택 및/또는 생성할 수 있다. 일부 실시예에서, 프로세스(200)는 대응하는 미디어 콘텐츠 아이템의 임의의 적합한 재생 위치로부터 시작하는 더 낮은 품질의 미디어 콘텐츠 스트림을 생성할 수 있다. 예를 들어, 일부 실시예에서, 프로세스(200)는 제2 사용자 디바이스에 의해 버퍼링된 마지막 재생 위치 다음의 위치에서 시작하는 더 낮은 품질의 미디어 콘텐츠 스트림을 생성할 수 있다. 이러한 일부 실시예에서, 프로세스(200)는 임의의 적합한 정보, 이를테면 제2 사용자 디바이스로부터 전송된 프로세스(200)와 연관된 서버에 의해 수신된 메시지에 포함된 정보에 기초하여, 제2 사용자 디바이스에 의해 버퍼링된 마지막 재생 위치를 결정할 수 있다.At 214, process 200 may select and/or generate a media content stream of a lower quality level than a media content stream previously transmitted to the second user device. For example, as described above with respect to block 206, process 200 may select and/or generate a media content stream encoded at a lower bitrate than the originally transmitted media content stream. In some embodiments, process 200 may generate a lower quality media content stream starting from any suitable playback location of the corresponding media content item. For example, in some embodiments, process 200 may generate a lower quality media content stream starting at a location after the last playback location buffered by the second user device. In some such embodiments, the process 200 is based on any suitable information, such as information contained in a message received by the server associated with the process 200 sent from the second user device, by the second user device. It is possible to determine the last buffered playback position.

블록(206)과 관련하여 위에서 설명한 바와 유사하게, 프로세스(200)는 임의의 적합한 정보 또는 정보의 임의의 적합한 조합에 기초하여, 제2 사용자 디바이스로 전송될 더 낮은 품질의 미디어 콘텐츠 스트림의 스트림 파라미터들을 선택할 수 있다. 예를 들어, 위에서 설명한 바와 같이, 프로세스(200)는 제2 사용자 디바이스와 연관된 정보, 이를테면, 현재 버퍼링된 데이터의 양을 표시하는 정보, 제2 사용자 디바이스와 프로세스(200)와 연관된 서버 사이의 네트워크 연결의 품질을 표시하는 정보, 제2 사용자 디바이스에 관한 정보(예를 들어, 디바이스 유형, 제2 사용자 디바이스의 디스플레이에 관한 정보 및/또는 임의의 다른 적합한 정보), 및/또는 임의의 다른 적합한 정보에 기초하여 스트림 파라미터들을 선택할 수 있다. 다른 예로서, 일부 실시예에서, 프로세스(200)는 동기화된 미디어 재생 세션에 참여하는 다른 사용자 디바이스들에 관한 정보, 이를테면 다른 사용자 디바이스들 각각의 네트워크 연결들의 품질에 관한 정보, 다른 사용자 디바이스들 각각에 의해 현재 버퍼링된 데이터의 양 및/또는 임의의 다른 적합한 정보에 기초하여 스트림 파라미터들을 선택할 수 있다. 보다 특정한 예로서, 일부 실시예에서, 프로세스(200)는 제2 사용자 디바이스로 하여금 미리 결정된 시간의 지속기간 이내(예를 들어, 2 초 이내, 5 초 이내, 및/또는 임의의 다른 적합한 지속기간 이내)에 세션에 참여하는 다른 사용자 디바이스들에 의해 버퍼링된 데이터 양의 평균(예를 들어, 평균, 가중 평균, 중간 값 및/또는 임의의 다른 적합한 평균)과 동일한 양의 미디어 콘텐츠 데이터를 버퍼링할 수 있도록 하기에 충분히 낮은 비트레이트로 더 낮은 품질 스트림이 인코딩되어야 한다고 결정할 수 있다.Similar to as described above with respect to block 206, process 200 based on any suitable information or any suitable combination of information, the stream parameters of the lower quality media content stream to be transmitted to the second user device. You can choose. For example, as described above, the process 200 includes information associated with the second user device, such as information indicating the amount of currently buffered data, the network between the second user device and the server associated with the process 200 Information indicative of the quality of the connection, information about the second user device (e.g., device type, information about the display of the second user device and/or any other suitable information), and/or any other suitable information. Stream parameters can be selected based on. As another example, in some embodiments, process 200 may include information about other user devices participating in a synchronized media playback session, such as information about the quality of network connections of each of the other user devices, each of the other user devices. The stream parameters can be selected based on the amount of data currently buffered by and/or any other suitable information. As a more specific example, in some embodiments, process 200 causes the second user device to cause the second user device to be within a predetermined duration of time (e.g., within 2 seconds, within 5 seconds, and/or any other suitable duration). Within) the amount of media content data equal to the average of the amount of data buffered by other user devices participating in the session (e.g., average, weighted average, median and/or any other suitable average). It can be determined that a lower quality stream should be encoded with a bitrate that is low enough to allow.

(216)에서, 프로세스(200)는 더 낮은 품질의 미디어 콘텐츠 스트림을 제2 사용자 디바이스로 전송할 수 있다. 일부 실시예에서, 제2 사용자 디바이스는 더 낮은 품질의 미디어 콘텐츠 스트림을 버퍼링한 다음, 버퍼로부터 더 낮은 품질의 미디어 콘텐츠 스트림을 제시하기 시작할 수 있다.At 216, the process 200 may transmit the lower quality media content stream to the second user device. In some embodiments, the second user device may buffer the lower quality media content stream and then start presenting the lower quality media content stream from the buffer.

일부 실시예에서, 프로세스(200)는 동기화된 미디어 재생 세션에 참여하는 사용자 디바이스들 사이에서 동기화를 유지하기 위해 임의의 다른 적합한 기술들을 사용할 수 있다는 것이 유의된다. 예를 들어, 동기화된 미디어 재생 세션에 참여하는 사용자 디바이스가 추가 미디어 콘텐츠 데이터를 버퍼링하기 위해 재생을 일시 중지하는 경우에, 프로세스(200)는 재생을 일시 중지한 사용자 디바이스 및/또는 동기화된 재생 세션에 참여하는 다른 사용자 디바이스들에 대한 재생 속도를 변경할 수 있다. 보다 특정한 예로서, 일부 실시예에서, 프로세스(200)는 추가 미디어 콘텐츠 데이터를 버퍼링하기 위해 재생을 일시 중지하였다가 재개한 사용자 디바이스에 대한 재생 속도를 높일 수 있으며, 이에 따라 사용자 디바이스가 동기화된 미디어 재생 세션의 다른 사용자 디바이스들을 따라잡을 수 있게 한다. 다른 보다 특정한 예로서, 일부 실시예에서, 프로세스(200)는 동기화된 미디어 재생 세션에 참여하는 다른 사용자 디바이스들에 대한 재생 속도를 늦출 수 있으며, 이에 따라 다른 사용자 디바이스들로 하여금 재생을 일시 중지한 사용자 디바이스들이 동기화된 미디어 재생 세션을 따라잡을 수 있게 한다. 일부 실시예에서, 프로세스(200)는 임의의 적합한 기준에 기초하여 동기화된 미디어 재생 세션에 참여하는 하나 이상의 사용자 디바이스에 대해 재생 속도가 변경되게 할 수 있다는 것이 유의된다. 예를 들어, 일부 실시예에서, 프로세스(200)는 사용자 디바이스가 세션에 참여하는 다른 사용자 디바이스들과의 동기를 벗어나 미리 결정된 시간의 지속기간을 초과(예를 들어, 2초 초과, 5초 초과, 및/또는 임의의 다른 적합한 시간의 지속기간을 초과) 한다는 결정에 응답하여 재생 속도를 변경할 수 있다.It is noted that, in some embodiments, process 200 may use any other suitable techniques to maintain synchronization among user devices participating in a synchronized media playback session. For example, if a user device participating in a synchronized media playback session pauses playback to buffer additional media content data, the process 200 may be performed by the user device that paused playback and/or the synchronized playback session. You can change the playback speed for other user devices participating in the game. As a more specific example, in some embodiments, the process 200 may increase the playback speed for a user device that has paused and resumed playback in order to buffer additional media content data, thereby allowing the user device to It allows you to keep up with other user devices in the playback session. As another more specific example, in some embodiments, process 200 may slow the playback speed for other user devices participating in a synchronized media playback session, thereby causing other user devices to pause playback. It allows user devices to keep up with synchronized media playback sessions. It is noted that, in some embodiments, process 200 may cause the playback speed to be changed for one or more user devices participating in a synchronized media playback session based on any suitable criteria. For example, in some embodiments, the process 200 exceeds a predetermined duration of time (e.g., more than 2 seconds, more than 5 seconds) by the user device being out of sync with other user devices participating in the session. , And/or any other suitable duration of time).

또한, 일부 실시예에서, 프로세스(200)는 기존의 동기화된 미디어 재생 세션에 합류하는 추가 사용자 디바이스의 동기화를 조정하기 위해 임의의 적합한 기술들 또는 기술들의 조합을 사용할 수 있다는 것이 유의된다. 예를 들어, 일부 실시예에서, 프로세스(200)는 추가 사용자 디바이스가 동기화된 재생의 다른 사용자 디바이스들과 합류하기 위해 미디어 콘텐츠 데이터를 버퍼링하는 동안 미디어 콘텐츠 아이템의 재생이 세션의 모든 사용자 디바이스에서 일시 중지되게 할 수 있다. 다른 예로서, 일부 실시예에서, 프로세스(200)는 동기화된 미디어 재생 세션에서 제시되는 미디어 콘텐츠 아이템의 미래 재생 위치(예를 들어, 현재 재생 위치의 5초 뒤의 재생 위치, 현재 재생 위치의 10초 뒤의 재생 위치, 및/또는 임의의 다른 적합한 미래 재생 위치)를 식별할 수 있고, 미래 재생 위치에서 시작하는 미디어 콘텐츠 데이터를 추가 사용자 디바이스로 추가(제3) 사용자 디바이스에서 버퍼링을 위해 전송할 수 있다. 그 다음에, 프로세스(200)는 세션의 다른 사용자 디바이스들이 미래 재생 위치에 도달하는 시간에 추가 사용자 디바이스로 하여금 미래 재생 위치로부터 미디어 콘텐츠 아이템의 재생을 시작하게 하는 지시들을 추가 사용자 디바이스로 전송할 수 있으며, 이에 따라 추가 사용자 디바이스가 동기화된 세션에 합류할 수 있도록 할 수 있다. 또 다른 예로서, 일부 실시예에서, 프로세스(200)는 현재 재생 위치로부터 미디어 콘텐츠 데이터를 추가 사용자 디바이스로 전송하기 시작할 수 있고, 이어서 추가 사용자 디바이스의 버퍼링 속도 및/또는 네트워크 연결 정보에 기초하여 추가 사용자 디바이스가 미리 결정된 양의 미디어 콘텐츠 데이터(예를 들어, 특정 킬로바이트 숫자의 데이터, 재생의 특정 지속기간에 대응하는 양의 데이터, 및/또는 임의의 다른 적합한 양의 데이터)를 버퍼링할 미래 재생 위치를 추정할 수 있다. 그 다음에, 프로세스(200)는 추정된 미래 재생 위치로부터 미디어 콘텐츠 아이템을 제시하기 시작하라는 지시들과 관련하여 추정된 미래 재생 위치에 대응하는 미디어 콘텐츠 데이터를 추가 사용자 디바이스로 전송하기 시작할 수 있다.Further, it is noted that in some embodiments, process 200 may use any suitable techniques or combination of techniques to coordinate the synchronization of additional user devices joining an existing synchronized media playback session. For example, in some embodiments, the process 200 may be that the playback of the media content item is paused on all user devices in the session while the additional user device buffers the media content data to join other user devices of the synchronized playback. You can make it stop. As another example, in some embodiments, process 200 may be performed at a future playback position of a media content item presented in a synchronized media playback session (e.g., a playback position 5 seconds after the current playback position, 10 Seconds later playback position, and/or any other suitable future playback position), and media content data starting at the future playback position can be added to an additional user device (third) and transmitted for buffering at the user device. have. The process 200 may then send instructions to the additional user device to cause the additional user device to start playing the media content item from the future playback location at the time other user devices in the session reach the future playback location, and Accordingly, it is possible to allow additional user devices to join the synchronized session. As another example, in some embodiments, process 200 may begin to transmit media content data from the current playback location to an additional user device, and then add based on the buffering rate and/or network connection information of the additional user device. A future playback location at which the user device will buffer a predetermined amount of media content data (e.g., a certain kilobyte number of data, an amount corresponding to a certain duration of playback, and/or any other suitable amount of data). Can be estimated. The process 200 may then begin transmitting media content data corresponding to the estimated future playback location to the additional user device in connection with instructions to start presenting the media content item from the estimated future playback location.

도 3을 참조하면, 개시된 주제의 일부 실시예에 따라 사용될 수 있는 다수의 디바이스에서 동기화된 미디어 콘텐츠 재생 동안 품질 레벨을 조절하기 위한 하드웨어의 예(300)가 도시된다. 예시된 바와 같이, 하드웨어(300)는 서버(302), 통신 네트워크(304) 및/또는 사용자 디바이스들(308 및 310)과 같은 하나 이상의 사용자 디바이스(306)를 포함할 수 있다. 예를 들어, 사용자 디바이스들(308 및 310)을 포함하는 다수의 사용자 디바이스(306)는 통신 네트워크(304)를 통해 하나 이상의 서버(302)에 의해 관리되는 동기화된 미디어 재생 세션에 참여할 수 있다. 다른 예에서, 서버(302)는 동기화된 미디어 재생 세션의 미디어 콘텐츠를 사용자 디바이스들(308 및 310)과 같은 하나 이상의 사용자 디바이스(306)에 제공하도록 구성될 수 있고, 또한 동기화된 미디어 재생 세션의 동기화 특징들을 핸들링하도록 구성될 수 있다. 또 다른 예에서, 제1 서버(302)는 동기화된 미디어 재생 세션의 미디어 콘텐츠를 하나 이상의 사용자 디바이스(306)에 제공하도록 구성될 수 있고 제2 서버(302)는 동기화된 미디어 재생 세션을 핸들링하도록 구성될 수 있다.3, an example 300 of hardware for adjusting the quality level during synchronized media content playback on multiple devices that may be used in accordance with some embodiments of the disclosed subject matter is shown. As illustrated, hardware 300 may include one or more user devices 306 such as server 302, communication network 304 and/or user devices 308 and 310. For example, multiple user devices 306, including user devices 308 and 310, may participate in a synchronized media playback session managed by one or more servers 302 via a communication network 304. In another example, server 302 may be configured to provide media content of a synchronized media playback session to one or more user devices 306, such as user devices 308 and 310, and also It can be configured to handle synchronization features. In another example, the first server 302 may be configured to provide media content of a synchronized media playback session to one or more user devices 306 and the second server 302 to handle the synchronized media playback session. Can be configured.

서버(302)는 정보, 데이터 및/또는 미디어 콘텐츠를 저장하기 위한 임의의 적합한 서버(들)일 수 있다. 예를 들어, 일부 실시예에서, 서버(302)는 프리젠테이션을 위해 사용자 디바이스들(306)로 전송될 수 있는 미디어 콘텐츠 아이템들을 저장할 수 있다. 이러한 일부 실시예에서, 미디어 콘텐츠 아이템들은 임의의 적합한 유형들의 미디어 콘텐츠, 이를테면 비디오들, 영화들, 텔레비전 프로그램들, 라이브 스트리밍 콘텐츠, 오디오 콘텐츠(예를 들어, 음악, 오디오북들, 라디오 프로그램들 및/또는 임의의 다른 적합한 오디오 콘텐츠) 및/또는 임의의 다른 적합한 유형의 미디어 콘텐츠를 포함할 수 있다. 다른 예로서, 일부 실시예에서, 서버(302)는 도 1 및 도 2와 관련하여 위에서 설명한 바와 같이 다수의 사용자 디바이스(306)에서 미디어 콘텐츠의 동기화된 재생을 조정할 수 있다. 보다 특정한 예로서, 일부 실시예에서, 서버(302)는 다수의 사용자 디바이스로부터 동기화된 미디어 재생 세션에서 미디어 콘텐츠 아이템의 재생을 개시하게 하는 요청을 수신할 수 있고, 도 2와 관련하여 위에서 설명된 바와 같이, 모든 사용자 디바이스가 미리 결정된 양의 미디어 콘텐츠 데이터를 버퍼링했다는 결정에 응답하여, 사용자 디바이스들에게 미디어 콘텐츠 아이템의 재생을 시작하도록 지시할 수 있다 Server 302 may be any suitable server(s) for storing information, data and/or media content. For example, in some embodiments, server 302 may store media content items that may be transmitted to user devices 306 for presentation. In some such embodiments, the media content items are any suitable types of media content, such as videos, movies, television programs, live streaming content, audio content (e.g., music, audiobooks, radio programs, and And/or any other suitable audio content) and/or any other suitable type of media content. As another example, in some embodiments, server 302 may coordinate synchronized playback of media content on multiple user devices 306 as described above with respect to FIGS. 1 and 2. As a more specific example, in some embodiments, server 302 may receive a request from multiple user devices to initiate playback of a media content item in a synchronized media playback session, as described above with respect to FIG. As such, in response to a determination that all user devices have buffered a predetermined amount of media content data, the user devices may be instructed to start playing the media content item.

통신 네트워크(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) 사이에서 데이터를 통신하기에 적합한 임의의 통신 링크들일 수 있다.Communication network 304 may be any suitable combination of one or more wired and/or wireless networks in some embodiments. For example, the communication network 304 includes the Internet, an intranet, a wide-area network (WAN), a local-area network (LAN), a wireless network, a digital subscriber line ( DSL) network, frame relay network, asynchronous transfer mode (ATM) network, virtual private network (VPN) and/or any other suitable communication network. have. User devices 206 link to the server 302 via one or more communication links (e.g., communication links 312), via one or more communication links (e.g., communication links 314). May be connected to a communication network 304, which may be. Communication links are network links, dial-up links, wireless links, hard-wired links, any other suitable communication links or any suitable combination of these links. Such as may be any communication links suitable for communicating data between user devices 306 and server 302.

사용자 디바이스들(306)은 미디어 콘텐츠를 제시하고/하거나 동기화된 미디어 재생 세션에 참여하기에 적합한 임의의 하나 이상의 사용자 디바이스를 포함할 수 있다. 예를 들어, 일부 실시예에서, 사용자 디바이스들(306)은 모바일 폰, 태블릿 컴퓨터, 스마트 텔레비전, 미디어 플레이어, 데스크톱 컴퓨터, 차량 엔터테인먼트 시스템, 웨어러블 컴퓨터 및/또는 임의의 다른 적합한 유형의 사용자 디바이스를 포함할 수 있다.User devices 306 may include any one or more user devices suitable for presenting media content and/or participating in a synchronized media playback session. For example, in some embodiments, user devices 306 include mobile phones, tablet computers, smart televisions, media players, desktop computers, in-vehicle entertainment systems, wearable computers, and/or any other suitable type of user device. can do.

서버(302)가 하나의 디바이스로서 도시되어 있지만, 서버(302)에 의해 수행되는 기능들은 일부 실시예에서 임의의 적합한 개수의 디바이스들을 사용하여 수행될 수 있다. 예를 들어, 일부 실시예에서, 다수의 디바이스가 서버(302)에 의해 수행되는 기능을 구현하기 위해 사용될 수 있다.Although server 302 is shown as one device, the functions performed by server 302 may be performed using any suitable number of devices in some embodiments. For example, in some embodiments, multiple devices may be used to implement functions performed by server 302.

도면을 과도하게 복잡해지는 것을 회피하기 위해 도 3에서 2개의 사용자 디바이스(308 및 310)가 도시되어 있지만, 일부 실시예에서 임의의 적합한 개수의 사용자 디바이스들 및/또는 임의의 적합한 유형들의 사용자 디바이스들이 사용될 수 있다.Although two user devices 308 and 310 are shown in FIG. 3 in order to avoid overcomplicating the drawing, in some embodiments any suitable number of user devices and/or any suitable types of user devices Can be used.

서버(302) 및 사용자 디바이스들(306)은 일부 실시예에서 임의의 적합한 하드웨어를 사용하여 구현될 수 있다. 예를 들어, 일부 실시예에서, 디바이스들(302 및 306)은 임의의 적합한 범용 컴퓨터 또는 특수 목적 컴퓨터를 사용하여 구현될 수 있다. 예를 들어, 특수 목적 컴퓨터를 사용하여 모바일 폰이 구현될 수 있다. 임의의 이러한 범용 컴퓨터 또는 특수 목적 컴퓨터는 임의의 적합한 하드웨어를 포함할 수 있다. 예를 들어, 도 4의 예시적인 하드웨어(400)에서 예시된 바와 같이, 그러한 하드웨어는 하드웨어 프로세서(402), 메모리 및/또는 저장소(404), 입력 디바이스 컨트롤러(406), 입력 디바이스(408), 디스플레이/오디오 드라이버들(410), 디스플레이 및 오디오 출력 회로(412), 통신 인터페이스(들)(414), 안테나(416) 및 버스(418)를 포함할 수 있다.The server 302 and user devices 306 may be implemented using any suitable hardware in some embodiments. For example, in some embodiments, devices 302 and 306 may be implemented using any suitable general purpose computer or special purpose computer. For example, a mobile phone can be implemented using a special purpose computer. Any such general purpose computer or special purpose computer may include any suitable hardware. For example, as illustrated in the exemplary hardware 400 of FIG. 4, such hardware includes a hardware processor 402, memory and/or storage 404, an input device controller 406, an input device 408, Display/audio drivers 410, display and audio output circuitry 412, communication interface(s) 414, antenna 416, and bus 418.

하드웨어 프로세서(402)는 임의의 적합한 하드웨어 프로세서, 이를테면 마이크로프로세서, 마이크로-컨트롤러, 디지털 신호 프로세서(들), 전용 로직, 및/또는 일부 실시예에서 범용 컴퓨터 또는 특수 목적 컴퓨터의 기능을 제어하기 위한 임의의 다른 적합한 회로를 포함할 수 있다. 일부 실시예에서, 하드웨어 프로세서(402)는 서버(402)와 같은 서버의 메모리 및/또는 저장소에 저장된 서버 프로그램에 의해 제어될 수 있다. 예를 들어, 일부 실시예에서, 서버 프로그램은 하드웨어 프로세서(402)로 하여금 동기화된 미디어 콘텐츠 시청 세션을 조정하기 위한 요청을 수신하게 하고, 다수의 사용자 디바이스가 동기화된 미디어 콘텐츠 시청 세션을 시작할 준비가 되었는지를 결정하게 하고, 사용자 디바이스들에게 동기화된 미디어 콘텐츠 시청 세션을 시작하라는 지시들을 전송하게 하고, 미디어 콘텐츠의 스트림의 품질을 조절하게 하고/하거나, 임의의 다른 적합한 기능들을 수행하게 할 수 있다. 일부 실시예에서, 하드웨어 프로세서(402)는 사용자 디바이스(306)의 메모리 및/또는 저장소(404)에 저장된 컴퓨터 프로그램에 의해 제어될 수 있다. 예를 들어, 컴퓨터 프로그램은 하드웨어 프로세서(402)로 하여금 수신된 미디어 콘텐츠 데이터를 사용자 디바이스(306)의 버퍼에 저장하게 하고, 미리 결정된 양의 미디어 콘텐츠 데이터가 버퍼링되었다는 결정에 응답하여 메시지를 서버(302)로 전송하게 하고, 미디어 콘텐츠를 동기화된 미디어 콘텐츠 재생 세션의 일부로서 제시하게 하고, 사용자 디바이스(306)의 버퍼의 현재 상태 및/또는 네트워크 연결의 현재 품질을 표시하는 메시지를 서버(302)로 전송하게 하고/하거나, 임의의 다른 적합한 기능을 수행하게 할 수 있다. Hardware processor 402 may be any suitable hardware processor, such as a microprocessor, micro-controller, digital signal processor(s), dedicated logic, and/or any suitable for controlling functions of a general purpose computer or special purpose computer in some embodiments. Other suitable circuits. In some embodiments, hardware processor 402 may be controlled by a server program stored in memory and/or storage of a server, such as server 402. For example, in some embodiments, the server program causes the hardware processor 402 to receive a request to coordinate a synchronized media content viewing session, and multiple user devices are ready to initiate a synchronized media content viewing session. Determine whether or not, send instructions to user devices to start a synchronized media content viewing session, adjust the quality of the stream of media content, and/or perform any other suitable functions. In some embodiments, hardware processor 402 may be controlled by a computer program stored in memory and/or storage 404 of user device 306. For example, the computer program causes the hardware processor 402 to store the received media content data in a buffer of the user device 306 and sends a message to the server in response to a determination that a predetermined amount of media content data has been buffered. Server 302 sends a message indicating the current state of the buffer of the user device 306 and/or the current quality of the network connection, and to present the media content as part of a synchronized media content playback session. And/or perform any other suitable function.

메모리 및/또는 저장소(404)는 일부 실시예에서 프로그램들, 데이터 및/또는 임의의 다른 적합한 정보를 저장하기 위한 임의의 적합한 메모리 및/또는 저장소일 수 있다. 예를 들어, 메모리 및/또는 저장소(404)는 랜덤 액세스 메모리, 판독 전용 메모리, 플래시 메모리, 하드 디스크 저장소, 광학 매체들 및/또는 임의의 다른 적합한 메모리를 포함할 수 있다.Memory and/or storage 404 may be any suitable memory and/or storage for storing programs, data, and/or any other suitable information in some embodiments. For example, memory and/or storage 404 may include random access memory, read only memory, flash memory, hard disk storage, optical media, and/or any other suitable memory.

입력 디바이스 컨트롤러(406)는 일부 실시예에서 하나 이상의 입력 디바이스(408)로부터의 입력을 제어하고 수신하기 위한 임의의 적합한 회로일 수 있다. 예를 들어, 입력 디바이스 컨트롤러(406)는 터치 스크린으로부터, 키보드로부터, 하나 이상의 버튼으로부터, 음성 인식 회로로부터, 마이크로폰으로부터, 카메라로부터, 광학 센서로부터, 가속도계로부터, 온도 센서로부터, 근거리 센서로부터, 압력 센서로부터, 인코더로부터 및/또는 임의의 다른 유형의 입력 디바이스로부터 입력을 수신하기 위한 회로일 수 있다.The input device controller 406 may be any suitable circuit for controlling and receiving inputs from one or more input devices 408 in some embodiments. For example, the input device controller 406 can be used to control pressure from a touch screen, from a keyboard, from one or more buttons, from a speech recognition circuit, from a microphone, from a camera, from an optical sensor, from an accelerometer, from a temperature sensor, from a near field sensor, and It may be a circuit for receiving input from a sensor, from an encoder, and/or from any other type of input device.

디스플레이/오디오 드라이버들(410)은 일부 실시예에서 하나 이상의 디스플레이/오디오 출력 디바이스(412)로 향하는 출력을 제어하고 구동하기 위한 임의의 적합한 회로일 수 있다. 예를 들어, 디스플레이/오디오 드라이버들(410)은 터치스크린, 평판 디스플레이, 음극선관 디스플레이, 프로젝터, 스피커 또는 스피커들 및/또는 임의의 다른 적합한 디스플레이 및/또는 프리젠테이션 디바이스들을 구동하기 위한 회로일 수 있다.Display/audio drivers 410 may be any suitable circuitry for controlling and driving output to one or more display/audio output devices 412 in some embodiments. For example, the display/audio drivers 410 may be circuitry for driving a touchscreen, a flat panel display, a cathode ray tube display, a projector, a speaker or speakers and/or any other suitable display and/or presentation devices. have.

통신 인터페이스(들)(414)는 하나 이상의 통신 네트워크(예를 들어, 컴퓨터 네트워크(304))와 인터페이스하기 위한 임의의 적합한 회로일 수 있다. 예를 들어, 인터페이스(들)(414)는 네트워크 인터페이스 카드 회로, 무선 통신 회로, 및/또는 임의의 다른 적합한 유형의 통신 네트워크 회로를 포함할 수 있다.The communication interface(s) 414 may be any suitable circuitry for interfacing with one or more communication networks (eg, computer network 304). For example, the interface(s) 414 may include a network interface card circuit, a wireless communication circuit, and/or any other suitable type of communication network circuit.

안테나(416)는 일부 실시예에서 통신 네트워크(예를 들어, 통신 네트워크(304))와 무선으로 통신하기 위한 임의의 적합한 하나 이상의 안테나일 수 있다. 일부 실시예에서, 안테나(416)는 생략될 수 있다.Antenna 416 may be any suitable one or more antennas for wirelessly communicating with a communication network (eg, communication network 304) in some embodiments. In some embodiments, the antenna 416 may be omitted.

버스(418)는 일부 실시예에서 2개 이상의 컴포넌트(402, 404, 406, 410 및 414) 사이에서 통신하기 위한 임의의 적합한 메커니즘일 수 있다.Bus 418 may be any suitable mechanism for communicating between two or more components 402, 404, 406, 410, and 414 in some embodiments.

일부 실시예에 따라 임의의 다른 적합한 컴포넌트들이 하드웨어(400)에 포함될 수 있다.Any other suitable components may be included in hardware 400 in accordance with some embodiments.

일부 실시예에서, 도 1 및 도 2의 프로세스들의 위에서 설명된 블록들 중 적어도 일부는 도면들에 도시되고 도면들과 관련하여 설명된 순서 및 차례로 제한되지 않는 임의의 순서 또는 차례로 실행되거나 수행될 수 있다. 또한, 도 1 및 도 2의 위의 블록들 중 일부는 대기 시간 및 프로세싱 시간들을 줄이기 위해 적절한 경우 실질적으로 동시에 또는 병렬로 실행되거나 수행될 수 있다. 부가적으로 또는 대안적으로, 도 1 및 도 2의 프로세스들의 위에서 설명한 블록들 중 일부는 생략될 수 있다. 예를 들어, 도 3의 블록들(212, 214 및 216)을 참조하여 설명된 바와 같은 방법은 원칙적으로 도 3의 블록들(202 내지 210)을 참조하여 설명된 바와 같이 시작되지 않은 동기화된 미디어 재생 세션의 경우에 적용될 수 있다.In some embodiments, at least some of the above-described blocks of the processes of FIGS. 1 and 2 may be executed or performed in any order or sequence that is not limited to the order shown in the figures and described in connection with the figures. have. In addition, some of the above blocks in FIGS. 1 and 2 may be executed or performed substantially simultaneously or in parallel as appropriate to reduce latency and processing times. Additionally or alternatively, some of the above-described blocks of the processes of FIGS. 1 and 2 may be omitted. For example, a method as described with reference to blocks 212, 214, and 216 of FIG. 3 is, in principle, a synchronized media that is not started as described with reference to blocks 202-210 of FIG. It can be applied in the case of a playback session.

일부 실시예에서, 임의의 적합한 컴퓨터 판독 가능 매체들은 본 명세서에서 기능들 및/또는 프로세스들을 수행하기 위한 명령어들을 저장하기 위해 사용될 수 있다. 예를 들어, 일부 실시예에서, 컴퓨터 판독 가능 매체는 일시적이거나 비일시적일 수 있다. 예를 들어, 비일시적 컴퓨터 판독 가능 매체는 비일시적 형태들의 자기 매체(이를테면, 하드 디스크들, 플로피 디스크들 및/또는 임의의 다른 적합한 자기 매체들), 비일시적 형태들의 광학 매체들(이를테면, 콤팩트 디스크들, 디지털 비디오 디스크들, 블루-레이(Blu-ray) 디스크들 및/또는 임의의 다른 적합한 광학 매체들), 비일시적 형태들의 반도체 매체들(이를테면, 플래시 메모리, 전기적으로 프로그램 가능한 판독 전용 메모리(Electrical Programmable Read-Only Memory)(EPROM), 전기적으로 소거 가능한 프로그램 가능 판독 전용 메모리(electrically erasable programmable read-only memory)(EEPROM), 및/또는 임의의 다른 적합한 반도체 매체들), 전송 중 외견상 영속성이 없거나 일시적인 것이 아닌 임의의 적합한 매체들 및/또는 임의의 적합한 유형 매체들(tangible media)과 같은 매체들을 포함할 수 있다. 다른 예로서, 일시적인 컴퓨터 판독 가능 매체는 네트워크들, 도선들, 전도체들, 광학 섬유들, 회로들, 전송 동안 일시적이지 않고 외견상 영속성이 없는 임의의 적합한 매체들 및/또는 임의의 적합한 무형 매체들(intangible media) 상의 신호들을 포함할 수 있다.In some embodiments, any suitable computer-readable media may be used herein to store instructions for performing functions and/or processes. For example, in some embodiments, computer-readable media may be transitory or non-transitory. For example, a non-transitory computer-readable medium includes non-transitory forms of magnetic media (such as hard disks, floppy disks and/or any other suitable magnetic media), non-transitory forms of optical media (such as compact Discs, digital video discs, Blu-ray discs and/or any other suitable optical media), semiconductor media in non-transitory forms (such as flash memory, electrically programmable read-only memory) (Electrical Programmable Read-Only Memory) (EPROM), electrically erasable programmable read-only memory (EEPROM), and/or any other suitable semiconductor media), apparently during transfer It may include media such as any suitable media and/or any suitable tangible media that are not non-permanent or temporary. As another example, the transitory computer-readable medium includes networks, conductors, conductors, optical fibers, circuits, any suitable medium that is not transient and apparently non-persistent during transmission and/or any suitable intangible medium. (Intangible media) may contain signals.

따라서, 동기화된 미디어 콘텐츠 프리젠테이션 동안 품질 레벨을 조절하기 위한 방법들, 시스템들 및 매체들이 제공된다.Accordingly, methods, systems and media are provided for adjusting the quality level during synchronized media content presentation.

비록 본 발명이 전술한 예시적인 실시예들에서 설명되고 예시되었지만, 본 개시내용은 단지 예로서 만들어졌고, 다음의 청구 범위에 의해서만 제한되는 본 발명의 사상 및 범주를 벗어나지 않으면서 본 발명의 구현의 세부 사항에서 많은 변경이 이루어질 수 있다는 것이 이해된다. 개시된 실시예들의 특징들은 다양한 방식으로 결합되고 재 배열될 수 있다.Although the present invention has been described and illustrated in the above-described exemplary embodiments, the present disclosure has been made by way of example only, and without departing from the spirit and scope of the present invention, which is limited only by the following claims. It is understood that many changes can be made in the details. Features of the disclosed embodiments can be combined and rearranged in various ways.

Claims (18)

미디어 콘텐츠의 재생을 동기화하기 위한 방법으로서,
서버로부터 제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 사용자 디바이스로 전송하는 단계
를 포함하는, 미디어 콘텐츠의 재생을 동기화하기 위한 방법.
As a method for synchronizing playback of media content,
A second media that transmits first media content data corresponding to a first stream of media content items from a server to a first user device, and from the server to a second user device, corresponding to a second stream of media content items Transmitting content data, wherein the first media content data is stored in a buffer of the first user device, and the second media content data is stored in a buffer of the second user device;
Sending instructions from the server to the first user device and the second user device, causing the first user device and the second user device to start simultaneously presenting the media content item;
Determining, by the server, that the first media content data is being stored in the buffer of the first user device at a slower rate than the second media content data is being stored in the buffer of the second user device Step to do;
In response to determining that the first media content data is being stored in the buffer of the first user device at a slower rate than the second media content data is being stored in the buffer of the second user device, the media Selecting a third stream of the media content item corresponding to the first stream of content items, the third stream of the media content item having a lower quality level than the first stream of the media content item; And
Transmitting third media content data corresponding to the third stream of the media content item to the first user device
A method for synchronizing playback of media content comprising a
제1항에 있어서,
상기 제1 사용자 디바이스 및 상기 제2 사용자 디바이스로 하여금 상기 미디어 콘텐츠 아이템을 동시에 제시하기를 시작하게 하는 상기 지시들은 상기 제1 사용자 디바이스 및 상기 제2 사용자 디바이스가 상기 미디어 콘텐츠 아이템에 대응하는 미리 결정된 양의 상기 미디어 콘텐츠 데이터를 버퍼링했다는 결정에 기초하는, 미디어 콘텐츠의 재생을 동기화하기 위한 방법.
The method of claim 1,
The instructions for causing the first user device and the second user device to simultaneously start presenting the media content item are determined by a predetermined amount corresponding to the media content item by the first user device and the second user device. A method for synchronizing playback of media content based on a determination that the media content data has been buffered.
제1항 또는 제2항에 있어서,
상기 제2 미디어 콘텐츠 데이터가 상기 제2 사용자 디바이스의 상기 버퍼에 저장되고 있는 것보다 느린 속도로 상기 제1 미디어 콘텐츠 데이터가 상기 제1 사용자 디바이스의 상기 버퍼에 저장되고 있다는 것을 결정하는 단계는 상기 제1 사용자 디바이스로부터 상기 서버에 의해 수신되는 메시지에 기초하는, 미디어 콘텐츠의 재생을 동기화하기 위한 방법.
The method according to claim 1 or 2,
Determining that the first media content data is being stored in the buffer of the first user device at a slower rate than the second media content data is being stored in the buffer of the second user device comprises: 1 A method for synchronizing playback of media content based on a message received by the server from a user device.
제3항에 있어서,
상기 메시지는 상기 메시지가 상기 제1 사용자 디바이스에 의해 상기 서버로 전송되는 시간에 상기 제1 사용자 디바이스의 상기 버퍼에 저장된 상기 제1 미디어 콘텐츠 데이터의 현재 양을 표시하는, 미디어 콘텐츠의 재생을 동기화하기 위한 방법.
The method of claim 3,
The message indicating a current amount of the first media content data stored in the buffer of the first user device at the time the message is transmitted by the first user device to the server, synchronizing playback of media content Way for you.
제1항 또는 제2항에 있어서,
상기 제2 미디어 콘텐츠 데이터가 상기 제2 사용자 디바이스의 상기 버퍼에 저장되고 있는 것보다 느린 속도로 상기 제1 미디어 콘텐츠 데이터가 상기 제1 사용자 디바이스의 상기 버퍼에 저장되고 있다는 것을 결정하는 단계는 상기 제1 사용자 디바이스의 상기 버퍼에 저장된 상기 제1 미디어 콘텐츠 데이터의 양과 상기 제2 사용자 디바이스의 상기 버퍼에 저장된 상기 제2 미디어 콘텐츠 데이터의 양의 비교에 기초하는, 미디어 콘텐츠의 재생을 동기화하기 위한 방법.
The method according to claim 1 or 2,
Determining that the first media content data is being stored in the buffer of the first user device at a slower rate than the second media content data is being stored in the buffer of the second user device comprises: 1 A method for synchronizing playback of media content based on a comparison of an amount of the first media content data stored in the buffer of the second user device with the amount of the second media content data stored in the buffer of the second user device.
제1항 내지 제5항 중 어느 한 항에 있어서,
상기 미디어 콘텐츠 아이템의 상기 제3 스트림은 상기 미디어 콘텐츠 아이템의 상기 제1 스트림보다 낮은 비트레이트를 갖는, 미디어 콘텐츠의 재생을 동기화하기 위한 방법.
The method according to any one of claims 1 to 5,
The method for synchronizing playback of media content, wherein the third stream of media content items has a lower bit rate than the first stream of media content items.
미디어 콘텐츠의 재생을 동기화하기 위한 시스템으로서,
메모리; 및
서버 상의 하드웨어 프로세서
를 포함하고, 상기 하드웨어 프로세서는, 상기 메모리에 저장된 컴퓨터 실행 가능 명령어들을 실행할 때,
상기 서버로부터 제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 사용자 디바이스로 전송하도록
구성되는, 미디어 콘텐츠의 재생을 동기화하기 위한 시스템.
As a system for synchronizing playback of media content,
Memory; And
Hardware processor on the server
Including, the hardware processor, when executing computer executable instructions stored in the memory,
Transmitting first media content data corresponding to a first stream of media content items from the server to a first user device, and transmitting a second media content data corresponding to a second stream of media content items from the server to a second user device Transmitting media content data, wherein the first media content data is stored in a buffer of the first user device, and the second media content data is stored in a buffer of the second user device;
Send instructions from the server to the first user device and the second user device to cause the first user device and the second user device to start simultaneously presenting the media content item;
Determining, by the server, that the first media content data is being stored in the buffer of the first user device at a slower rate than the second media content data is being stored in the buffer of the second user device and;
In response to determining that the first media content data is being stored in the buffer of the first user device at a slower rate than the second media content data is being stored in the buffer of the second user device, the media Selecting a third stream of the media content item corresponding to the first stream of content items, wherein the third stream of media content items has a lower quality level than the first stream of media content items;
To transmit third media content data corresponding to the third stream of the media content item to the first user device
Configured, a system for synchronizing playback of media content.
제7항에 있어서,
상기 제1 사용자 디바이스 및 상기 제2 사용자 디바이스로 하여금 상기 미디어 콘텐츠 아이템을 동시에 제시하기를 시작하게 하는 상기 지시들은 상기 제1 사용자 디바이스 및 상기 제2 사용자 디바이스가 상기 미디어 콘텐츠 아이템에 대응하는 미리 결정된 양의 상기 미디어 콘텐츠 데이터를 버퍼링했다는 결정에 기초하는, 미디어 콘텐츠의 재생을 동기화하기 위한 시스템.
The method of claim 7,
The instructions for causing the first user device and the second user device to simultaneously start presenting the media content item are determined by a predetermined amount corresponding to the media content item by the first user device and the second user device. A system for synchronizing playback of media content based on a determination that the media content data has been buffered.
제7항에 있어서,
상기 제2 미디어 콘텐츠 데이터가 상기 제2 사용자 디바이스의 상기 버퍼에 저장되고 있는 것보다 느린 속도로 상기 제1 미디어 콘텐츠 데이터가 상기 제1 사용자 디바이스의 상기 버퍼에 저장되고 있다는 것을 결정하는 것은 상기 제1 사용자 디바이스로부터 상기 서버에 의해 수신되는 메시지에 기초하는, 미디어 콘텐츠의 재생을 동기화하기 위한 시스템.
The method of claim 7,
Determining that the first media content data is being stored in the buffer of the first user device at a slower rate than the second media content data is being stored in the buffer of the second user device comprises the first A system for synchronizing playback of media content based on messages received by the server from a user device.
제9항에 있어서,
상기 메시지는 상기 메시지가 상기 제1 사용자 디바이스에 의해 상기 서버로 전송되는 시간에 상기 제1 사용자 디바이스의 상기 버퍼에 저장된 상기 제1 미디어 콘텐츠 데이터의 현재 양을 표시하는, 미디어 콘텐츠의 재생을 동기화하기 위한 시스템.
The method of claim 9,
The message indicating a current amount of the first media content data stored in the buffer of the first user device at the time the message is transmitted by the first user device to the server, synchronizing playback of media content For the system.
제7항에 있어서,
상기 제2 미디어 콘텐츠 데이터가 상기 제2 사용자 디바이스의 상기 버퍼에 저장되고 있는 것보다 느린 속도로 상기 제1 미디어 콘텐츠 데이터가 상기 제1 사용자 디바이스의 상기 버퍼에 저장되고 있다는 것을 결정하는 것은 상기 제1 사용자 디바이스의 상기 버퍼에 저장된 상기 제1 미디어 콘텐츠 데이터의 양과 상기 제2 사용자 디바이스의 상기 버퍼에 저장된 상기 제2 미디어 콘텐츠 데이터의 양의 비교에 기초하는, 미디어 콘텐츠의 재생을 동기화하기 위한 시스템.
The method of claim 7,
Determining that the first media content data is being stored in the buffer of the first user device at a slower rate than the second media content data is being stored in the buffer of the second user device comprises the first A system for synchronizing playback of media content based on a comparison of the amount of the first media content data stored in the buffer of the user device with the amount of the second media content data stored in the buffer of the second user device.
제7항에 있어서,
상기 미디어 콘텐츠 아이템의 상기 제3 스트림은 상기 미디어 콘텐츠 아이템의 상기 제1 스트림보다 낮은 비트레이트를 갖는, 미디어 콘텐츠의 재생을 동기화하기 위한 시스템.
The method of claim 7,
The system for synchronizing playback of media content, wherein the third stream of media content items has a lower bit rate than the first stream of media content items.
서버 상의 프로세서에 의해 실행될 때, 상기 프로세서로 하여금 미디어 콘텐츠의 재생을 동기화하기 위한 방법을 수행하게 하는 컴퓨터 실행 가능 명령어들을 포함하는 비일시적 컴퓨터 판독 가능 매체로서,
상기 방법은,
상기 서버로부터 제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 사용자 디바이스로 전송하는 단계
를 포함하는, 비일시적 컴퓨터 판독 가능 매체.
A non-transitory computer-readable medium containing computer executable instructions that, when executed by a processor on a server, cause the processor to perform a method for synchronizing playback of media content,
The above method,
Transmitting first media content data corresponding to a first stream of media content items from the server to a first user device, and transmitting a second media content data corresponding to a second stream of media content items from the server to a second user device Transmitting media content data, wherein the first media content data is stored in a buffer of the first user device, and the second media content data is stored in a buffer of the second user device;
Sending instructions from the server to the first user device and the second user device, causing the first user device and the second user device to start simultaneously presenting the media content item;
Determining, by the server, that the first media content data is being stored in the buffer of the first user device at a slower rate than the second media content data is being stored in the buffer of the second user device Step to do;
In response to determining that the first media content data is being stored in the buffer of the first user device at a slower rate than the second media content data is being stored in the buffer of the second user device, the media Selecting a third stream of the media content item corresponding to the first stream of content items, the third stream of the media content item having a lower quality level than the first stream of the media content item; And
Transmitting third media content data corresponding to the third stream of the media content item to the first user device
Containing, a non-transitory computer-readable medium.
제13항에 있어서,
상기 제1 사용자 디바이스 및 상기 제2 사용자 디바이스로 하여금 상기 미디어 콘텐츠 아이템을 동시에 제시하기를 시작하게 하는 상기 지시들은 상기 제1 사용자 디바이스 및 상기 제2 사용자 디바이스가 상기 미디어 콘텐츠 아이템에 대응하는 미리 결정된 양의 상기 미디어 콘텐츠 데이터를 버퍼링했다는 결정에 기초하는, 비일시적 컴퓨터 판독 가능 매체.
The method of claim 13,
The instructions for causing the first user device and the second user device to simultaneously start presenting the media content item are determined by a predetermined amount corresponding to the media content item by the first user device and the second user device. A non-transitory computer-readable medium based on a determination that the media content data has been buffered.
제13항에 있어서,
상기 제2 미디어 콘텐츠 데이터가 상기 제2 사용자 디바이스의 상기 버퍼에 저장되고 있는 것보다 느린 속도로 상기 제1 미디어 콘텐츠 데이터가 상기 제1 사용자 디바이스의 상기 버퍼에 저장되고 있다는 것을 결정하는 단계는 상기 제1 사용자 디바이스로부터 상기 서버에 의해 수신되는 메시지에 기초하는, 비일시적 컴퓨터 판독 가능 매체.
The method of claim 13,
Determining that the first media content data is being stored in the buffer of the first user device at a slower rate than the second media content data is being stored in the buffer of the second user device comprises: 1 A non-transitory computer-readable medium based on a message received by the server from a user device.
제15항에 있어서,
상기 메시지는 상기 메시지가 상기 제1 사용자 디바이스에 의해 상기 서버로 전송되는 시간에 상기 제1 사용자 디바이스의 상기 버퍼에 저장된 상기 제1 미디어 콘텐츠 데이터의 현재 양을 표시하는, 비일시적 컴퓨터 판독 가능 매체.
The method of claim 15,
The message indicating a current amount of the first media content data stored in the buffer of the first user device at the time the message is transmitted by the first user device to the server.
제13항에 있어서,
상기 제2 미디어 콘텐츠 데이터가 상기 제2 사용자 디바이스의 상기 버퍼에 저장되고 있는 것보다 느린 속도로 상기 제1 미디어 콘텐츠 데이터가 상기 제1 사용자 디바이스의 상기 버퍼에 저장되고 있다는 것을 결정하는 단계는 상기 제1 사용자 디바이스의 상기 버퍼에 저장된 상기 제1 미디어 콘텐츠 데이터의 양과 상기 제2 사용자 디바이스의 상기 버퍼에 저장된 상기 제2 미디어 콘텐츠 데이터의 양의 비교에 기초하는, 비일시적 컴퓨터 판독 가능 매체.
The method of claim 13,
Determining that the first media content data is being stored in the buffer of the first user device at a slower rate than the second media content data is being stored in the buffer of the second user device comprises: A non-transitory computer-readable medium based on a comparison of an amount of the first media content data stored in the buffer of the first user device with the amount of the second media content data stored in the buffer of the second user device.
제13항에 있어서,
상기 미디어 콘텐츠 아이템의 상기 제3 스트림은 상기 미디어 콘텐츠 아이템의 상기 제1 스트림보다 낮은 비트레이트를 갖는, 비일시적 컴퓨터 판독 가능 매체.
The method of claim 13,
The third stream of media content items has a lower bit rate than the first stream of media content items.
KR1020207026334A 2018-04-24 2018-04-24 Methods, systems and media for adjusting quality level during synchronized media content playback on multiple devices KR102268442B1 (en)

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 true KR20200110459A (en) 2020-09-23
KR102268442B1 KR102268442B1 (en) 2021-06-22

Family

ID=62117171

Family Applications (1)

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

Country Status (5)

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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220163124A (en) * 2021-06-02 2022-12-09 김진우 System for playing video on demand and method for playing video on demand

Families Citing this family (15)

* 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
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
US11849171B2 (en) 2021-12-07 2023-12-19 Dish Network L.L.C. Deepfake content watch parties
US11974005B2 (en) 2021-12-07 2024-04-30 Dish Network L.L.C. Cell phone 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 (3)

* 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
KR20130061171A (en) * 2010-08-13 2013-06-10 넷플릭스, 인크. A system and method for synchronized playback of streaming digital content
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 (21)

* 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 (en) * 2004-03-31 2005-10-20 Nippon Telegraph & Telephone West Corp Video content reproduction system, reproduction control method thereof, client terminal, synchronous server, and program thereof
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
US8996719B2 (en) * 2011-04-03 2015-03-31 Jeremiah Condon System and method of adaptive transport of multimedia data
RU2014110047A (en) * 2011-08-16 2015-09-27 Дэстини Софтвэар Продакшнз Инк. VIDEO RENDERING BASED ON SCENARIO
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
US9386058B2 (en) * 2012-02-27 2016-07-05 Qualcomm Incorporated DASH client and receiver with playback rate selection
US8978076B2 (en) * 2012-11-05 2015-03-10 Comcast Cable Communications, Llc Methods and systems for content control
CN104823176A (en) 2013-10-31 2015-08-05 索尼电脑娱乐美国公司 Playback synchronization in group viewing media title
US10680911B2 (en) * 2014-07-24 2020-06-09 Cisco Technology, Inc. Quality of experience based network resource management
US9894010B2 (en) * 2014-07-24 2018-02-13 Cisco Technology, Inc. Management of heterogeneous client device groups
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
WO2018125590A1 (en) * 2016-12-30 2018-07-05 Tivo Solutions Inc. Advanced trick-play modes for streaming video

Patent Citations (3)

* 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
KR20130061171A (en) * 2010-08-13 2013-06-10 넷플릭스, 인크. A system and method for synchronized playback of streaming digital content
US20130251329A1 (en) * 2012-03-23 2013-09-26 Sony Network Entertainment International Llc System, method, and infrastructure for synchronized streaming of content

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220163124A (en) * 2021-06-02 2022-12-09 김진우 System for playing video on demand and method for playing video on demand

Also Published As

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

Similar Documents

Publication Publication Date Title
KR102268442B1 (en) Methods, systems and media for adjusting quality level during synchronized media content playback on multiple devices
KR102370706B1 (en) Detecting and compensating for display lag in gaming systems
US20230396829A1 (en) Methods, systems, and media for synchronized media content playback on multiple devices
KR101657112B1 (en) Method and apparatus for decreasing presentation latency
US11606596B2 (en) Methods, systems, and media for synchronizing audio and video content on multiple media devices
JP2015531564A (en) Playback synchronization in media title viewing group
US20230053256A1 (en) Methods, systems, and media for providing dynamic media sessions with audio stream expansion features
US20220210502A1 (en) Methods, systems, and media for providing dynamic media sessions
US20210185365A1 (en) Methods, systems, and media for providing dynamic media sessions with video stream transfer features
JP2020174378A (en) Synchronization of media rendering in heterogeneous networking environment
EE et al. Published
KR20140081441A (en) An image terminal and method for receiving data

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