Methods and Systems for Synchronizing Media
First Claim
1. A method of synchronizing media, comprising:
- a client device receiving a media sample of a media stream being rendered by a media rendering source, the media sample associated with a timestamp corresponding to a sampling time of the media sample;
determining a time offset indicating a time position in the media stream corresponding to the sampling time of the media sample;
determining a timescale ratio that is associated with a speed at which the media stream is being rendered by the media rendering source based on a reference speed of the media stream;
determining a real-time offset using a real-time timestamp, the timestamp of the media sample, the time offset, and the timescale ratio, wherein the real-time timestamp indicates a present time; and
the client device rendering a second media stream at a position corresponding to the real-time offset to be in synchrony to the media stream being rendered by the media rendering source.
2 Assignments
0 Petitions
Accused Products
Abstract
Systems and methods of synchronizing media are provided. A client device may be used to capture a sample of a media stream being rendered by a media rendering source. The client device sends the sample to a position identification module to determine a time offset indicating a position in the media stream corresponding to the sampling time of the sample, and optionally a timescale ratio indicating a speed at which the media stream is being rendered by the media rendering source based on a reference speed of the media stream. The client device calculates a real-time offset using a present time, a timestamp of the media sample, the time offset, and optionally the timescale ratio. The client device then renders a second media stream at a position corresponding to the real-time offset to be in synchrony to the media stream being rendered by the media rendering source.
236 Citations
49 Claims
-
1. A method of synchronizing media, comprising:
-
a client device receiving a media sample of a media stream being rendered by a media rendering source, the media sample associated with a timestamp corresponding to a sampling time of the media sample; determining a time offset indicating a time position in the media stream corresponding to the sampling time of the media sample; determining a timescale ratio that is associated with a speed at which the media stream is being rendered by the media rendering source based on a reference speed of the media stream; determining a real-time offset using a real-time timestamp, the timestamp of the media sample, the time offset, and the timescale ratio, wherein the real-time timestamp indicates a present time; and the client device rendering a second media stream at a position corresponding to the real-time offset to be in synchrony to the media stream being rendered by the media rendering source. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36)
-
-
37. A non-transitory computer readable medium having stored therein instructions executable by a computing device to cause the computing device to perform functions of:
-
receiving a media sample of a media stream being rendered by a media rendering source, the media sample associated with a timestamp corresponding to a sampling time of the media sample; determining a time offset indicating a time position in the media stream corresponding to the sampling time of the media sample; determining a timescale ratio that is associated with a speed at which the media stream is being rendered by the media rendering source based on a reference speed of the media stream; determining a real-time offset using a real-time timestamp, the timestamp of the media sample, the time offset, and the timescale ratio, wherein the real-time timestamp indicates a present time; and rendering a second media stream at a position corresponding to the real-time offset to be in synchrony to the media stream being rendered by the media rendering source. - View Dependent Claims (38, 39, 40, 41, 42)
-
-
43. A client device comprising:
-
a media receiver configured to receive a media sample of a media stream being rendered by a media rendering source, wherein the media sample is associated with a timestamp corresponding to a sampling time of the media sample; a processor configured to receive a time offset indicating a time position in the media stream corresponding to the sampling time of the media sample, and a timescale ratio that is associated with a speed at which the media stream is being rendered by the media rendering source based on a reference speed of the media stream; the processor configured to determine a real-time offset using a real-time timestamp, the timestamp of the media sample, the time offset, and the timescale ratio, wherein the real-time timestamp indicates a present time; and the client device configured to render a second media stream at a position corresponding to the real-time offset to be in synchrony to the media stream being rendered by the media rendering source. - View Dependent Claims (44, 45)
-
-
46. A system comprising:
-
a server configured to receive a media sample of a media stream being rendered by a media rendering source, the media sample associated with a timestamp corresponding to a sampling time of the media sample, the server configured to determine a time offset indicating a time position in the media stream corresponding to the sampling time of the media sample, and to determine a timescale ratio that is associated with a speed at which the media stream is being rendered by the media rendering source based on a reference speed of the media stream; and a client device configured to receive the time offset and the timescale ratio from the server and to determine a real-time offset using a real-time timestamp, the timestamp of the media sample, the time offset, and the timescale ratio, wherein the real-time timestamp indicates a present time, and the client device configured to render a second media stream at a position corresponding to the real-time offset to be in synchrony to the media stream being rendered by the media rendering source. - View Dependent Claims (47, 48, 49)
-
Specification