The present invention generally relates to synchronization of correlated media presentations among two or more media devices. Each device makes a determination as to whether inter-presentation synchronization may be outside of a predetermined tolerance. If so, the device making the determination communicates its buffer and playback status to the other device. Based upon comparison of the buffer and playback status of the local presentation with the buffer and playback status of the presentation at the other device, each device makes a determination as to whether to pause playback, so as to allow the other device to catch up, advance playback, so as to catch up with the other device, or take no action, allowing the other device to take action to correct the synchronization issue.
This section is intended to introduce the reader to various aspects of art, which may be related to various aspects of the present invention that are described below. This discussion is believed to be helpful in providing the reader with background information to facilitate a better understanding of the various aspects of the present invention. Accordingly, it should be understood that these statements are to be read in this light, and not as admissions of prior art.
Television viewing has traditionally been a passive single-screen activity. The emergence of the Internet and mobile computing devices, however, has opened possibilities for richer, interactive, multi-screen experiences. For instance, a secondary media presentation comprising content that is coordinated with a primary program displayed on a television may be provided over the Internet to a mobile computing device. The secondary presentation may provide supplemental information about the primary presentation, provide different views of the same event, or provide opportunities for interaction. The multiple presentations, however, will generally require synchronization in order for the user to have the intended experience.
In traditional synchronization methods, a secondary view of a multiple-view presentation follows the timeline of a primary view, such as in the case of lip-sync of an audio-video presentation, and tolerances must be very tight. Since the source of both portions of the presentation is generally the same, however, synchronization can generally be achieved with a static timing adjustment.
In the case of correlated presentations across multiple devices, each presentation is potentially supplied from a different source, and the user may have independent control of playback at each device. Network congestion at one source, or a pause or fast-forward command at one presentation device, for instance, could cause a loss of synchronization.
One method of maintaining synchronization would be for each device to communicate frequently with a centralized server, which could respond with instructions to the devices that would reestablish synchronization. Coordinating playback position via a server produces additional unwanted network traffic, which would be especially problematic when many clients are monitoring the same programs. Network delays may also limit the accuracy of such methods. The invention described herein addresses these and/or other problems.
In order to solve the problems described above, we disclose synchronization of correlated media presentations among two or more media devices. Each device makes a determination as to whether inter-presentation synchronization may be outside of a predetermined tolerance. If so, the device making the determination communicates its buffer and playback status to the other device. Based upon comparison of the buffer and playback status of the local presentation with the buffer and playback status of the presentation at the other device, each device makes a determination as to whether to pause playback, so as to allow the other device to catch up, advance playback, so as to catch up with the other device, or take no action, allowing the other device to take action to correct the synchronization issue. This and other aspects of the invention will be described in detail with reference to the accompanying Drawings.
The above-mentioned and other features and advantages of this invention, and the manner of attaining them, will become more apparent, and the invention will be better understood, by reference to the following description of embodiments of the invention taken in conjunction with the accompanying drawings, wherein:
The exemplifications set out herein illustrate preferred embodiments of the invention, and such exemplifications are not to be construed as limiting the scope of the invention in any manner.
As described herein, the present invention provides synchronization of correlated media presentations among two or more media devices. Each device makes a determination as to whether inter-presentation synchronization may be outside of a predetermined tolerance. If so, the device making the determination communicates its buffer and playback status to the other device. Based upon comparison of the buffer and playback status of the local presentation with the buffer and playback status of the presentation at the other device, each device makes a determination as to whether to pause playback, so as to allow the other device to catch up, advance playback, so as to catch up with the other device, or take no action, allowing the other device to take action to correct the synchronization issue.
While this invention has been described as having a preferred design, the present invention can be further modified within the spirit and scope of this disclosure. This application is therefore intended to cover any variations, uses, or adaptations of the invention using its general principles. Further, this application is intended to cover such departures from the present disclosure as come within known or customary practice in the art to which this invention pertains and which fall within the limits of the appended claims.
The present invention may be implemented in any combination of television set top boxes, televisions, computing devices, or other electronic devices.
The set top box 110 and mobile computing device 130 function as a system to coordinate presentation of the first media presentation at the set top box 110 and a second media presentation at the mobile computing device 130. Synchronization is achieved locally through buffer management at the media presentation devices 110 and 130, rather than via interaction with the server.
In this example, there are two correlated media presentations rendered on two devices connected through a local area network. The number of media presentations and types of media devices may vary within the scope of the invention. In a preferred embodiment, the second media presentation comprises information related to the first media presentation. The first and second media presentations may be provided from the same or different servers and via the same or different network connections. One or both media presentations may comprise video or audio streams, in addition to other data. A video stream may comprise, for example, data encoded in MPEG, Microsoft ASF or WMV, Apple QuickTime or MOV, or RealNetworks RM or RMVB formats. One of the media devices, rather than a server, may serve as the source of one or both presentations.
There are various causes for the loss of synchronization. In some cases, the separate media presentations may come from different servers over different networks, and may face different network congestion conditions that affect delivery of the content. User interaction, such as pausing or fast-forwarding on either device, may also cause the playback positions of the two presentations to diverge.
Over time, either due to different playback speeds, or perhaps pausing or fast-forwarding activity on one device or the other, the two media presentations may become out of synchronization.
When δ1>0, the media presentation has been playing, on average, faster than real time. When δ1<0, the media presentation has been playing, on average, slower than real time. In this example, the first media presentation is ahead of the position expected from strict real time playback, and δ1>0. The second media presentation is behind the position expected from strict real time playback, and δ2<0.
A synchronization tolerance of β seconds may be set for the presentations. If two media presentation are out of synchronization by at least β seconds, it must be the case that either |δ1|>β/2 or |δ2|<β/2, or both. Thus, a local determination at a presentation device of δ, and comparison to β, can be used as one indicator of a potential need for synchronization action. In the example of
At step 310, suppose at time t=t0, the two media presentations are synchronized, and v1=v2, as shown in
If the difference between the time elapsed during presentation of the portion of the first media presentation and the amount of time associated with the portion of the first media presentation is found to exceed a threshold, for instance, |δ1|>β/2, at step 320, the first device sends its playback and buffer status to the second device at step 325. The communication of information including playback position may be performed over a local area network, which may be wired or wireless, or via a combination of networks, potentially including the Internet.
The playback position and buffer status of the second device are received by the first media device at step 330. The indication of the playback position and buffer status of the second media presentation from the second device may be received in response to the first device sending an indication of the playback position and buffer status of the first media presentation to the second device, or as a result of a determination at the second device that its own deviation is also above the threshold.
At step 335, the first device compares the buffer status s1 of the first media presentation with a buffer status s2 of the second media presentation at the second device. The determination of which buffer is fuller may be made based upon the amount of time associated with the portion of the media presentation stored in each buffer or upon another measure of the data, such as size. In the presently described embodiment, if the local buffer is determined to be fuller at step 340, that is, s1>s2, the first device takes responsibility for synchronizing the presentations.
The playback positions v1 and v2 of the two devices are compared at step 345. If the playback position of the first media presentation is found to be behind the playback position of the second media presentation on the second device at step 350, the first device advances playback of the first media presentation to catch up at step 355. That is, if v1<v2, the first media presentation is brought up to the playback position of the second media presentation by advancing by v2−v1 seconds. The advancing of the media presentation may comprise discarding or skipping presentation of contiguous or discontiguous video frames, or advancing to an appropriate portion of other types of content.
If the playback position of the first media presentation is found to be ahead of the playback position of the second media presentation on the second device at step 350, the first device uses one or more pauses to allow the second media presentation to catch up at step 360. That is, if v1>v2, the first device slows playback of the first media presentation by pausing for v1−v2 seconds. The pausing of a presentation may comprise multiple pauses of a duration less than the time difference between the playback positions of the first and second media presentations so as to avoid a single longer pause that may be more objectionable to the viewer.
In cases where the local device does not adjust playback to achieve synchronization, the other device, executing the same or a similar algorithm, may.
The method may be performed on a periodic basis, or may also be triggered by indications of network issues or user interaction.
In the embodiment described above, the synchronization task is assigned to the device with the fuller buffer. However, it could be advantageous if, in the case where the device with the less-full buffer is ahead of the other in playback, to have that device pause to reestablish acceptable synchronization. This would have the advantage of increasing the buffer fullness of the device.
If the difference between the time elapsed during presentation of the portion of the first media presentation and the amount of time associated with the portion of the first media presentation is found to exceed a threshold, for instance, |δ1|>β/2, at step 420, the first device sends its playback and buffer status to the second device at step 425. The communication of information including playback position may be performed over a local area network, which may be wired or wireless, or via a combination of networks, potentially including the Internet.
The playback position and buffer status of the second device are received by the first media device at step 430. The indication of the playback position and buffer status of the second media presentation from the second device may be received in response to the first device sending an indication of the playback position and buffer status of the first media presentation to the second device, or as a result of a determination at the second device that its own deviation is also above threshold.
At step 435, the first device compares the buffer status s1 of the first media presentation with a buffer status s2 of the second media presentation at the second device. The determination of which buffer is fuller may be made based upon the amount of time associated with the portion of the media presentation stored in each buffer or upon another measure of the data such as size.
In the presently described embodiment, both the relative buffer fullness and playback position impact whether action will be taken at the device of interest. If the local buffer is determined to be less full at step 445, and the local playback position is determined to be ahead at step 450, the first device uses one or more pauses to allow the second media presentation to catch up at step 460. That is, if s1<s2 and v1>v2, the first device slows playback of the first media presentation by pausing for v1−v2 seconds. The pausing of a presentation may comprise multiple pauses of smaller duration than the time difference between the playback positions of the first and second media presentations so as to avoid a single longer pause that may be more objectionable to the viewer.
If the local buffer is determined to be more full at step 445, and the playback position of the first media presentation is found to be behind the playback position of the second media presentation on the second device at step 455, the first device discards a portion of the first media presentation to catch up at step 465. That is, if s1>s2 and v1<v2, the first media presentation is brought up to the playback position of the second media presentation by advancing the presentation by v2−v1 seconds. The advancing of the media presentation may comprise skipping presentation of contiguous or discontiguous video frames, or advancing to an appropriate portion of other types of content.
In cases where the local device does not adjust playback to achieve synchronization, the other device, executing the same or a similar algorithm, may. The method may be performed on a periodic basis, or may also be triggered by indications of network issues or user interaction.
While the present invention has been described in terms of a specific embodiment, it will be appreciated that modifications may be made which will fall within the scope of the invention. For example, the described methods may be combined with other methods addressing other issues. If a buffer is too full, for instance, a rate control mechanism may be engaged to slow down the transmission rate. The algorithm may also be extended to systems with more than two media devices. For instance, each of the media devices with larger buffer fullness could set their timelines in accordance with the media device with the lowest buffer fullness.
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/US2012/030307 | 3/23/2012 | WO | 00 | 8/19/2014 |