HK1169248B - Method for synchronizing media stream, method and system for buffering media stream, and router - Google Patents
Method for synchronizing media stream, method and system for buffering media stream, and router Download PDFInfo
- Publication number
- HK1169248B HK1169248B HK12109933.7A HK12109933A HK1169248B HK 1169248 B HK1169248 B HK 1169248B HK 12109933 A HK12109933 A HK 12109933A HK 1169248 B HK1169248 B HK 1169248B
- Authority
- HK
- Hong Kong
- Prior art keywords
- timing
- media
- data network
- media stream
- asynchronous data
- Prior art date
Links
Description
Technical Field
The present invention relates to synchronization of media streams.
Background
Multiple media streams may be combined to provide combined media (e.g., multimedia) content for consumption by a user. These media streams need to be synchronized in order to provide the user with the desired combined media experience. However, synchronization in certain environments, such as asynchronous network environments, presents challenges. For example, in an Internet Protocol (IP) network environment, a transmitting device conventionally includes timing information in each packet (i.e., encapsulated portion) of a media stream so that a receiving device can organize the packets in a specified order and play them at a specified speed, the specified order and speed being specified by the timing information. The timing information of the data packets of the individual media streams is correlated and applied to the combined media content before it is played or presented to the user.
The correlation of timing information throughout a media stream requires that such timing information have the same origin of time (timeorigin). Such a time origin is traditionally from a network time server in the network. For example, IP endpoints of an IP network typically use a protocol, such as the Network Time Protocol (NTP), to obtain timing information from a network time server. However, due to network delays and other factors, the accuracy of the acquired timing information is often on the order of hundreds of milliseconds (200 ms). Thus, the timestamp value applied to a media stream packet inherits an uncertainty of several hundred milliseconds.
Due to the uncertainty about the inheritance time of each flow on the network, as the number of flows increases, the overall uncertainty also increases. This uncertainty directly affects the accuracy of the cross-correlation required for synchronization of the combined media content, and thus the combined media experience for the user.
Disclosure of Invention
A system and/or method is provided for synchronizing media streams using time signals from independent time sources, substantially as shown in and/or described in connection with at least one of the figures, as set forth more completely in the claims.
According to an aspect of the present invention, there is provided a method of synchronizing a plurality of media streams, the method comprising:
receiving a first media stream and first timing information (timing information) from a first media server over an asynchronous data network, the first media stream being generated by a first media source, the first timing information being based on a first timing signal (timing signal) received from a timing source (timing) that is not connected to the asynchronous data network;
receiving, over the asynchronous data network, a second media stream and second timing information from a second media server, the second media server being different from the first media server, the second media stream being generated by a second media source, the second timing information being based on a second timing signal received from the timing source, the timing source not being connected to the asynchronous data network; and
synchronizing the first media stream and the second media stream according to the first timing information and the second timing information to provide combined media content based on the first and second media streams.
Preferably, the method further comprises:
receiving a third timing signal from the timing source, the timing source not connected to the asynchronous data network, the third timing signal related to the first timing signal and the second timing signal;
wherein synchronizing the first media stream and the second media stream comprises:
buffering the first media stream using the first timing information and the third timing signal to synchronize the first media stream and the second media stream.
Preferably, synchronizing the first media stream and the second media stream further comprises:
buffering the second media stream using the second timing information and the third timing signal;
removing jitter (jitter) from the first media stream in response to buffering for the first media stream; and
jitter is removed from the second media stream in response to buffering for the second media stream.
Preferably, the first and second electrodes are formed of a metal,
receiving the first timing information comprises:
receiving the first timing information from the first media server over the asynchronous data network, the first timing information generated based on the first timing signal received from an atomic clock, the atomic clock not connected to the asynchronous data network; and
receiving the second timing information comprises:
receiving the second timing information from the second media server over the asynchronous data network, the second timing information based on the second timing signal received from the atomic clock, the atomic clock not connected to the asynchronous data network.
Preferably, the first and second electrodes are formed of a metal,
receiving the first media stream comprises:
receiving the first media stream, the first media stream comprising first visual data representing a visual depiction (visual description) of a first participant of a video conference and first audio data representing a voice (speech) of the first participant;
receiving the second media stream comprises:
receiving the second media stream, the second media stream comprising second visual data representing a visual depiction of a second participant of the video conference and second audio data representing speech of the second participant;
synchronizing the first media stream and the second media stream comprises:
synchronizing the first visual data, the first audio data, the second visual data, and the second audio data according to the first timing information and the second timing information to provide a combined media content comprising the visual depiction of the synchronized primary participant, the voice of the primary participant, the visual depiction of the secondary participant, and the voice of the secondary participant.
According to another aspect of the present invention, there is provided a method of buffering a media stream, the method comprising:
receiving a media stream and timing information from a media server over an asynchronous data network, the timing information generated from a timing signal received from a timing source, the timing source not connected to the asynchronous data network;
receiving a second timing signal from the timing source, the timing source not connected to the asynchronous data network; and
buffering the media stream using the timing information and the second timing signal.
Preferably, receiving the timing information comprises:
receiving the timing information from the media server over the asynchronous data network, the timing information being generated from the timing signal received from an atomic clock, the atomic clock not being connected to the asynchronous data network; and
wherein receiving the second timing signal comprises:
receiving the second timing signal from the atomic clock, the atomic clock not connected to the asynchronous data network.
Preferably, the first and second electrodes are formed of a metal,
receiving the timing information comprises:
receiving the timing information from the media server over the asynchronous data network, the timing information being generated from the timing signal received from the timing source over a first Bluetooth connection, the timing source not being connected to the asynchronous data network; and
wherein receiving the second timing signal comprises:
receiving the second timing signal from the timing source over a second Bluetooth connection, the timing source not being connected to the asynchronous data network.
Preferably, the first and second electrodes are formed of a metal,
receiving the timing information comprises:
receiving the timing information from the media server over the asynchronous data network, the timing information generated from the timing signal received from the timing source according to a wireless communication protocol, the timing source not connected to the asynchronous data network; and
wherein receiving the second timing signal comprises:
receiving the second timing signal from the timing source according to the wireless communication protocol, the timing source not being connected to the asynchronous data network.
According to an aspect of the present invention, there is provided a method of buffering a media stream, the method comprising:
receiving a media stream and timing information associated with the media stream from a media server over an asynchronous data network, the timing information based on a first timing signal received from a timing source, the timing source not connected to the asynchronous data network;
receiving a second timing signal from the media server over a path that does not include the asynchronous data network, the second timing signal based on the first timing signal; and
buffering the media stream using the timing information and the second timing signal.
Preferably, the timing information is based on the first timing signal received from an atomic clock, the atomic clock not being connected to the asynchronous data network.
Preferably, the timing information is based on the first timing signal received over a bluetooth connection from a timing source, the timing source not being connected to the asynchronous data network.
Preferably, the timing information is based on the first timing signal received from a timing source according to a wireless communication protocol, the timing source not being connected to the asynchronous data network.
According to an aspect of the present invention, there is provided a method of buffering a media stream, the method comprising:
receiving a media stream and timing information associated with the media stream from a media server over an asynchronous data network, the timing information based on a first timing signal;
providing the first timing signal to the media server over a path that does not include the asynchronous data network, the first timing signal being based on a second timing signal;
receiving the second timing signal from a timing source, the timing source not connected to the asynchronous data network; and
buffering the media stream using the timing information and the second timing signal.
Preferably, the first and second electrodes are formed of a metal,
receiving the second timing signal comprises:
receiving the second timing signal from an atomic clock, the atomic clock not connected to the asynchronous data network.
According to an aspect of the present invention, there is provided a router connected between a media server and a client, the router comprising:
an input circuit for receiving a media stream and timing information associated with the media stream from a media server over an asynchronous data network;
a timing module for providing a timing signal to the client over a path that does not include the asynchronous data network; and
an output circuit for providing the media stream and the timing information over the asynchronous data network such that the client can buffer the media stream using the timing information and the timing signal.
According to an aspect of the invention, there is provided a system comprising:
an audio server for providing a first audio stream and a second audio stream over an asynchronous data network;
a first speaker for buffering the first audio stream according to a first timing signal received from a timing source, the first audio stream being received from the audio server over the asynchronous data network, the timing source not being connected to the asynchronous data network; and
a second speaker to buffer the second audio stream according to a second timing signal received from the timing source, the second audio stream being received from the audio server over the asynchronous data network, the timing source not being connected to the asynchronous data network.
Preferably, the timing source is an atomic clock.
Preferably, the first and second electrodes are formed of a metal,
the first speaker buffering the first audio stream according to the first timing signal, the first timing signal received from the timing source over a first bluetooth connection, the timing source not connected to the asynchronous data network; and
the second speaker buffers the second audio stream according to the second timing signal, the second timing signal received from the timing source over a second bluetooth connection, the timing source not connected to the asynchronous data network.
Preferably, the first and second electrodes are formed of a metal,
the first speaker buffering the first audio stream according to the first timing signal, the first timing signal received from the timing source according to a wireless communication protocol, the timing source not connected to the asynchronous data network; and
the second speaker buffers the second audio stream according to the second timing signal, the second timing signal received from the timing source according to the wireless communication protocol, the timing source not connected to the asynchronous data network.
Drawings
The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate the present invention and, together with the description, further serve to explain the principles of the invention and to enable a person skilled in the pertinent art to make and use the disclosed technology.
FIGS. 1, 2, 7, 9, 12 and 14 are schematic diagrams of a media system according to an embodiment of the invention;
FIGS. 3 and 4 are flow diagrams of methods of synchronizing media streams according to embodiments of the invention;
FIG. 5 is a block diagram of a client in the media system shown in FIG. 2 according to one embodiment of the invention;
FIGS. 6, 8, 10 and 13 are flow diagrams of methods of buffering a media stream according to embodiments of the present invention;
FIG. 11 is a block diagram of a client in the media system shown in FIG. 9 according to one embodiment of the invention;
FIG. 15 is a block diagram of a computer that can be used to implement the present invention.
The features and advantages of the disclosed technology will become more apparent from the detailed description of the invention when taken in conjunction with the drawings. In the drawings, like reference numbers generally indicate identical, functionally similar, and/or structurally similar elements. The left-most digit(s) of a reference number identifies the figure in which the reference number first appears.
Detailed Description
Introduction to the invention
The following detailed description will be made with reference to the accompanying drawings according to an embodiment of the present invention. However, the scope of the present invention is not limited to these embodiments, but is defined by the claims. Therefore, embodiments other than those shown in the drawings, such as modified versions of the embodiments of the present invention, are intended to fall within the scope of the present invention.
References in the specification to "one embodiment," "an embodiment," "one example embodiment," etc., indicate that the embodiment described may include a particular feature, structure, or characteristic, but every embodiment may not necessarily include the particular feature, structure, or characteristic. Moreover, such phrases are not intended to refer to the same embodiment. Further, when a particular feature, structure, or characteristic is described in connection with an embodiment, it is submitted that it is within the knowledge of one skilled in the art to effect such feature, structure, or characteristic in connection with other embodiments whether or not explicitly described.
Furthermore, the various methods described in the present invention are directed to the synchronization of media streams using a time signal (time) from an independent time source (time). An independent time source is a time source that is independent of (i.e., not connected to) the asynchronous data network used to transport the media stream. Such an asynchronous data network may be a single asynchronous data network, may include multiple asynchronous data networks, or may include one or more asynchronous data networks and one or more synchronous data networks. The independent time source may be a local entity, such as a wireless network clock source, or a global entity, such as an atomic clock.
According to the method of the invention, a media stream is transmitted from a media server to a client over an asynchronous data network. The client may be a media player, a media aggregating server (mediaaggregationserver), or any other suitable client type. The media aggregating server combines media streams from multiple media servers so that the combined media stream may be provided to a media player for consumption by a user. A separate time source provides a time signal to the media server and/or client to facilitate synchronization of the media streams. The time signal may be a digital time signal, an analog time signal, or a combination of both.
According to a first aspect, a first media stream is received from a first media server over an asynchronous data network, the first media stream being generated by a first media source. First timing information (timing information) is received from a first media server, the first timing information being based on a first timing signal (timing signal) received from a timing source (timing source), the timing source not being connected to the asynchronous data network. The first timing information may be received over an asynchronous data network or over a path that does not include the asynchronous network. A second media stream is received from a second media server over the asynchronous data network, the second media stream being generated by a second media source, the second media server being different from the first media server. Second timing information is received from a second media server, the second timing information based on a second timing signal received from a timing source, the timing source not connected to the asynchronous data network. The second timing information may be received through an asynchronous data network or through a path that does not include the asynchronous network. The first media stream and the second media stream are synchronized according to the first timing information and the second timing information to provide combined media (e.g., multimedia) content based on the first and second media streams.
According to a second scheme, a media stream is received from a media server over an asynchronous data network. Timing information is received from a media server, the timing information being generated based on a timing signal received from a timing source, the timing source not being connected to the asynchronous data network. For example, timing information may be received from a media server over an asynchronous data network. In another example, the timing information may be received over a path that does not include the asynchronous data network. A second timing signal is received from a timing source that is not connected to the asynchronous data network. The media stream is buffered using the timing information and the second timing signal.
According to the third aspect, a media stream and timing information associated with the media stream are received from a media server over an asynchronous data network. The timing information is based on a first timing signal received from a timing source that is not connected to the asynchronous data network. A second timing signal is received from the media server over a path that does not include the asynchronous data network, the second timing signal being based on the first timing signal. The media stream is buffered using the timing information and the second timing signal.
According to this fourth aspect, a media stream and timing information associated with the media stream are received from a media server over an asynchronous data network. The timing information is based on the first timing signal. The first timing signal is provided to the media server over a path that does not include the asynchronous data network. The first timing signal is based on the second timing signal. The second timing signal is received from a timing source not connected to the asynchronous data network. The media stream is buffered using the timing information and the second timing signal.
According to this fifth aspect, a router connected between a media server and a client comprises an input circuit, a timing module (timing module), and an output circuit. The input circuit receives a media stream and timing information associated with the media stream from a media server over an asynchronous data network. The timing module provides timing signals to the client over a path that does not include the asynchronous data network. The output module provides the media stream and the timing information to the client over the asynchronous data network to enable the client to buffer the media stream using the timing information and the timing signal.
According to the sixth solution, the system comprises an audio server, a first speaker (spaker) and a second speaker. The audio server provides the first audio stream and the second audio stream over an asynchronous data network. The first speaker buffers a first audio stream received from an audio server over an asynchronous data network according to a first timing signal received from a timing source that is not connected to the asynchronous data network. The second speaker buffers a second audio stream received from the audio server over the asynchronous data network according to a second timing signal received from a timing source that is not connected to the asynchronous data network.
The synchronization techniques described herein have several advantages over conventional synchronization techniques. For example, the synchronization techniques described herein may be faster and/or more accurate than conventional synchronization techniques. The synchronization technique of the present invention is characterized by a smaller play-out delay than conventional techniques. For example, using a separate time source as described in the present invention, the time uncertainty associated with the media stream can be made negligible.
Second, example
Fig. 1 is a schematic diagram of a media system 100 according to one embodiment of the invention. In general, the media system 100 is used to combine media streams to provide combined media (e.g., multimedia) content for consumption by a user. The media system 100 includes a media server 102, an asynchronous data network 104, a client 106, and a timing source 108. Communication between the media server 102 and the client 106 may be conducted over the asynchronous data network 104 using well-known network communication protocols. Communication between the media server 102 and the client 106 may be conducted over a path that does not include the asynchronous data network 104, such as path 122 or 124, using well-known wireless (e.g., bluetooth, WiFi, etc.) or wired communication protocols. The asynchronous data network 104 may be a single asynchronous data network, may include multiple asynchronous data networks, or may include one or more asynchronous data networks and one or more synchronous data networks. For example, the asynchronous data network 104 may be a wide area network (e.g., the Internet), a Local Area Network (LAN), another type of network, or a combination of networks.
The media server 102 is a processing system capable of communicating with the client 106. An example of a processing system is a system that includes at least one processor capable of manipulating data according to a set of instructions. For example, the processing system may be a computer, a personal digital assistant (personal digital assistant), or the like. The media server 102 provides a plurality of media streams 112 to the client 106 over the asynchronous data network 104.
The client 106 is a processing system capable of processing the media stream 112 received from the media server 102. The client 106 synchronizes a media stream 112 according to a timing signal 110 provided by a timing source 108. The client 106 combines the media streams 112 to provide combined media content 114.
The timing source 108 is a device capable of generating a clock signal independent of the asynchronous data network 104. For example, the timing source 108 may be a quartz clock, an atomic clock, or any other suitable timing source type. The timing source 108 provides the timing signal 110 to the media server 102 via path 116 and/or provides the timing signal 110 to the client 106 via path 126. Neither path 116 nor path 126 includes the asynchronous data network 104.
The timing source 108 may provide the timing signal 110 through any suitable connection, such as a bluetooth connection, cellular connection, or the like. The connection may be established according to a prescribed protocol, such as the wireless (e.g., bluetooth, cellular, etc.) or wired communication protocols noted above. It will be appreciated, however, that the connection need not be established in accordance with a prescribed protocol. Bluetooth is a wireless protocol that uses 2.4 gigahertz (GHz) signals to transfer information between devices. For example, each timing signal 110 may be a 2.4GHz signal according to the Bluetooth protocol. The cellular protocol may support one or more sub-bands of the Ultra High Frequency (UHF) band in the radio frequency spectrum. Some examples of cellular protocols include, but are not limited to, Code Division Multiple Access (CDMA), Time Division Multiple Access (TDMA), global system for mobile communications (GSM), Digital Enhanced Cordless Telecommunications (DECT), Worldwide Interoperability for Microwave Access (WiMAX), Total Access Communication Systems (TACS), and Advanced Mobile Phone Systems (AMPS).
In a first example, the timing source 108 provides the timing signal 110 to the media server 102, but not to the client 106. Pursuant to this example, the media server 102 can provide timing information based on the timing signal 110 to the client 106 over the asynchronous data network 104 and/or over a path 122 that does not include the asynchronous data network 104. For example, the media server 102 may insert a timestamp based on the timing signal 110 into the media stream 112 prior to providing the media stream 112 to the client 106 over the asynchronous data network 104. Additionally or alternatively, media server 102 may additionally combine (e.g., add or append) timing information based on timing signal 110 with media stream 112 prior to providing media stream 112 to client 106. Additionally or alternatively, the media server 102 may provide timing information based on the timing signal 110 to the client 106 from the media stream 112 and/or provide timing information based on the timing signal 110 to the client 106 via the path 122, respectively, over the asynchronous data network 104. Pursuant to this example, the client 106 can use the timing information (e.g., based on a timestamp of the timing signal 110) to synchronize the media stream 112.
In a second example, the timing source 108 provides the timing signal 110 to the client 106, but not to the media server 102. According to this example, the client 106 may provide timing information based on the timing signal 110 to the media server 102 over the asynchronous data network 104 and/or over a path 124 that does not include the asynchronous data network 104. When receiving timing information from the client 106, the media server 102 may insert a timestamp based on the received timing information into the media stream 112 prior to providing the media stream 112 to the client 106 over the asynchronous data network 104. Additionally or alternatively, the media server 102 may additionally combine (e.g., add or append) second timing information with the media stream 112, the second timing information based on the timing information received from the client 106, prior to providing the media stream 112 to the client 106. Additionally or alternatively, the media server 102 may provide the second timing information to the client 106 from the media stream 112 and/or to the client 106 via the path 122, respectively, via the asynchronous data network 104. According to this example, the client 106 may use the second timing information and the timing signal 110 to synchronize the media stream 112.
In a third example, the timing source 108 provides the timing signal 110 (or a first subset thereof) to the media server 102 and further provides the timing signal 110 (or a second subset thereof) to the client 106. According to this example, the media server 102 may insert a timestamp based on the timing signal 110 (or the first subset thereof) into the media stream 112 before providing the media stream 112 to the client 106 over the asynchronous data network 104. Additionally or alternatively, the media server 102 may additionally combine (e.g., add or attach) the timing information based on the timing signal 110 with the media stream 112 prior to providing the media stream 112 to the client 106. Additionally or alternatively, the media server 102 may provide timing information from the media stream 112 to the client 106 over the asynchronous data network 104 and/or the client 106 over the path 122, respectively. Pursuant to this example, the client 106 can use the timing information and the timing signal 110 (or the second subset thereof) to synchronize the media stream 112.
Fig. 2 is a schematic diagram of a media system 200 according to another embodiment of the invention. The media system 200 includes a plurality of media servers 202A-202N, an asynchronous data network 204, a client 206, and a timing source 208. The timing source 208 provides timing signals 210A-210N to the media servers 202A-202N via respective paths 216A-216N that do not include the asynchronous data network 204. Timing source 208 may provide timing signal 220 to client 206 via path 226, which does not include asynchronous data network 204. It is to be appreciated, however, that timing source 208 need not necessarily provide timing signal 220 to client 206. The timing source 208 may provide the timing signals 210A-210N and/or 220 according to any suitable communication protocol, so long as none of the timing signals 210A-210N and/or 220 are provided over the asynchronous data network 204.
It will be appreciated that the timing signals 210A-210N may be generated from a single transmit signal (singletransmission) from the timing source 208. For example, the media servers 202A-202N may receive the single transmitted signal as respective timing signals 210A-210N over respective paths 216A-216N. A single transmit signal is presented for purposes of illustration. The timing signals 210A-210N may also be generated from multiple transmit signals from the timing source 208.
The media servers 202A-202N provide respective media streams 212A-212N and respective timing information 218A-218N to the client 206 via the asynchronous data network 204. For example, the first media server 202A provides the first media stream 212A and the first timing information 218A to the client 206 over the asynchronous data network 204; the second media server 202B provides the second media stream 212B and the second timing information 218B to the client 206, and so on, over the asynchronous data network 204. The timing information 218A-218N is based on the respective timing signals 210A-210N. Each media stream 212A-212N may be an audio stream, an image stream, or a video stream. The audio stream includes audio information but does not include visual information. The image stream comprises visual information but no audio information. The video stream includes audio information and visual information.
The media streams 212A-212N may include any suitable audio and/or visual information. For example, any one or more of the media streams 212A-212N may include one or more closed caption information(s); one or more audio, image and/or video advertisements; a slide show; picture-in-picture data (picture-in-picture), and the like. Such a media stream may be intended to be inserted into another media stream 212A-212N.
The timing information 218A-218N may be combined (e.g., embedded) with the respective media streams 212A-212N or separate from the respective media streams 212A-212N. The media servers 202A-202N may provide the media streams 212A-212N and/or the timing information 218A-218N to the client 206 simultaneously, ad-hoc (i.e., without regard to other media streams), according to a periodic schedule or in any other suitable manner, when the respective media servers 202A-202N receive the media streams 212A-212N and/or the timing information 218A-218N. The media servers 202A-202N may provide the media streams 212A-212N and the timing information 218A-218N in accordance with well-known network communication protocols.
It is to be appreciated that the media servers 202A-202N do not necessarily need to provide the timing information 218A-218N over the asynchronous data network 204, as depicted in fig. 2. For example, the media servers 202A-202N may provide the timing information 218A-218N over respective paths that do not include the asynchronous data network 204.
The client 206 synchronizes the media streams 212A-212N according to the timing information 218A-218N. Client 206 may further synchronize media streams 212A-212N based on timing signal 220, although the scope of the present embodiment is not limited in this respect. The client 206 combines the media streams 212A-212N to provide combined media content 214.
Fig. 3 shows a flow 300 of a method of synchronizing media streams according to one embodiment of the invention. The method of flow 300 may now be described with reference to certain elements of the media system 200 depicted in fig. 2. However, the method is not limited to this implementation.
As shown in fig. 3, the process 300 begins at step 302. In step 302, a first media stream is received from a first media server over an asynchronous data network, the first media stream being generated by a first media source. The first media stream may be an audio stream, an image stream, or a video stream. In one embodiment, the client 206 receives a first media stream 212A from a first media server 202A over the asynchronous data network 204, the first media stream 212A being generated by a first media source.
In an embodiment of the video conference, the first media stream comprises first visual data and first audio data. The first visual data represents a visual depiction of a first participant of the video conference. The primary audio data represents the voice of the primary participant.
In step 304, first timing information is received from a first media server, the first timing information being based on a first timing signal received from a timing source, the timing source not being connected to the asynchronous data network. For example, the first timing information may be received from a first media server over an asynchronous data network. In another example, the first timing information may be received from the first media server over a path that does not include an asynchronous data network. In one embodiment, the client 206 receives first timing information 218A from the first media server 202A, the first timing information 218A based on the first timing signal 210A received from the timing source 208.
In step 306, a second media stream is received from a second media server, different from the first media server, over the asynchronous data network, the second media stream being generated by a second media source. The second media stream may be an audio stream, an image stream, or a video stream. In one embodiment, the client 206 receives a second media stream 212B from the second media server 202B over the asynchronous data network 204, the second media stream 212B being generated by a second media source.
According to the above-mentioned embodiment of the video conference, the second media stream comprises second visual data and second audio data. The secondary visual data represents a visual depiction of a secondary participant of the video conference. The second audio data represents the voice of the second participant.
In step 308, second timing information is received from a second media server, the second timing information being based on a second timing signal received from a timing source, the timing source not being connected to the asynchronous data network. For example, the second timing information may be received from a second media server over an asynchronous data network. In another example, the second timing information may be received from the second media server over a path that does not include an asynchronous data network. In one embodiment, the client 206 receives second timing information 218B from the second media server 202B, the second timing information 218B based on the second timing signal 210B received from the timing source 208.
In step 310, the first media stream and the second media stream are synchronized according to the first timing information and the second timing information to provide a combined media content, the combined media content being based on the first and second media streams. In one embodiment, the client 206 synchronizes the first media stream 212A and the second media stream 212B according to the first timing information 218A and the second timing information 218B to provide the combined media content 214, the combined media content 214 being based on the first media stream 212A and the second media stream 212B.
In accordance with the above-mentioned video conference embodiment, the first visual data, the first audio data, the second visual data, and the second audio data are synchronized based on the first timing information and the second timing information to provide multimedia content that includes a synchronized visual depiction of the first participant, the voice of the first participant, a visual depiction of the second participant, and the voice of the second participant. For example, the synchronization of the various data mentioned above may enable lip synchronization between the visual depiction and voice of the primary and conferees, lip synchronization between the visual depiction and voice of the secondary conferee, synchronization between the visual depiction of the primary conferee and the visual depiction of the secondary conferee, and/or synchronization between the voice of the primary conferee and the voice of the secondary conferee.
FIG. 4 is a flowchart of one implementation of step 310 in FIG. 3, in accordance with one embodiment of the present invention. For example, the flow 400 may be performed by the client 206 of the media system 200 shown in fig. 2. For purposes of illustration, flow 400 will be described in connection with client 500 shown in FIG. 5, client 500 being one example of client 206 according to one embodiment of the invention. As shown in fig. 5, client 500 includes synchronizer 502. Synchronizer 502 is used to synchronize media streams. Synchronizer 502 includes buffer logic 504 and jitter module 506. Further structural and operational embodiments will be apparent to those skilled in the art from consideration of the specification and practice of flowchart 400.
As shown in fig. 4, the method of flow 400 begins at step 402. In step 402, the first media stream is buffered using the first timing information and a third timing signal received from a timing source. For example, the first media stream may be buffered to compensate for variations in the rate and/or timing (variationninnarerateand/or reporting) of the portions of the first media stream received in step 302 of fig. 3. In another example, the first media stream may be buffered to compensate for a difference between a change in the rate and/or timing at which the first media stream is received in step 302 and a change in the rate and/or timing at which the second media stream is received in step 306 of FIG. 3. In one embodiment, the buffering logic 504 uses the first timing information 218A and the timing signal 220 to buffer the first media stream 212A, the timing signal 220 being received from the timing source 208.
In step 404, the second media stream is buffered using the second timing information and the third timing signal. For example, the second media stream may be buffered to compensate for variations in the rate and/or timing of receiving portions of the second media stream in step 306 of fig. 3. In another example, the second media stream may be buffered to compensate for the difference between the change in the rate and/or timing at which the first media stream is received in step 302 and the change in the rate and/or timing at which the second media stream is received in step 306 of FIG. 3. In one embodiment, the client 206 buffers the second media stream 212B using the second timing information 218B and the timing signal 220.
In step 406, jitter is removed from the first media stream. In one embodiment, the jitter module 506 removes jitter from the first media stream 212A.
In step 408, jitter is removed from the second media stream. In one embodiment, the jitter module 506 removes jitter from the second media stream 212B.
Fig. 6 shows a flow 600 of a method of buffering a media stream according to an embodiment of the invention. The method of flow 600 will now be described with reference to client 500 depicted in fig. 5. However, the method is not limited to this implementation.
As shown in fig. 6, flow 600 begins at step 602. In step 602, a media stream is received from a media server over an asynchronous data network. In one embodiment, the buffering logic 504 receives the first media stream 212A from the first media server 202A over the asynchronous data network 204.
In step 604, timing information is received from a media server, the timing information being generated from a timing signal received from a timing source, the timing source not being connected to the asynchronous data network. For example, timing information may be received from a media server over an asynchronous data network. In another example, the timing information may be received from the media server over a path that does not include an asynchronous data network. The timing source may be a quartz clock, an atomic clock, or any other suitable type of timing source. The timing information may be generated from a timing signal received from a timing source over any suitable connection, such as a bluetooth connection, cellular connection, and the like. In one embodiment, the buffering logic 504 receives timing information 218A from the first media server 202A, the timing information 218A being generated from the timing signal 210A received from the timing source 208.
In step 606, a second timing signal is received from a timing source that is not connected to the asynchronous data network. In one embodiment, the buffer logic 504 receives the timing signal 220 from the timing source 208.
In step 608, the media stream is buffered using the timing information and the second timing signal. In one embodiment, the buffering logic 504 buffers the first media stream 212A using the first timing information 218A and the timing signal 220.
Fig. 7 is a schematic diagram of a media system 700 according to yet another embodiment of the invention. The media system 700 includes a media server 702, an asynchronous data network 704, a client 706, and a timing source 708. The timing source 708 provides a first timing signal 710 to the media server 702 via a path 716 that does not include the asynchronous data network 704. The media server 702 provides the media stream 712 and timing information 718 to the client 706 over the asynchronous data network 704. The timing information 718 is based on the first timing signal 710. The media server 702 further provides the second timing signal 720 to the client 706 via a path 736 that does not include the asynchronous data network 704. The second timing signal 720 is based on the first timing signal 710. For example, the second timing signal 720 may be the same as the first timing signal 710. The client 706 synchronizes the media stream according to the timing information 718 and the second timing signal 720 to provide the buffered media content 714.
Fig. 8 shows a flow 800 of a method of buffering a media stream according to another embodiment of the invention. The method of flow 800 will now be described with reference to client 500 depicted in fig. 5. However, the method is not limited to this implementation.
As shown in fig. 8, the flow 800 begins at step 802. In step 802, a media stream and timing information associated with the media stream are received from a media server over an asynchronous data network. The timing information is based on a first timing signal received from a timing source that is not connected to the asynchronous data network. The timing source may be a quartz clock, an atomic clock, or any other suitable type of timing source. The timing information may be based on a first timing signal received from a timing source over any suitable connection, such as a bluetooth connection, a cellular connection, etc. In one embodiment, the buffering logic 504 receives the media stream 712 and the timing information 718 from the media server 702 over the asynchronous data network 704. The timing information 718 is based on the first timing signal 710 received from the timing source 708, the timing source 708 not being connected to the asynchronous data network 704.
In step 804, a second timing signal based on the first timing signal is received from the media server over a path that does not include the asynchronous data network. The second timing signal may be received from the media server according to a protocol, such as a bluetooth protocol, a cellular protocol, etc., although the scope of embodiments of the invention is not limited in this respect. In one embodiment, the buffering logic 504 receives the second timing signal 720 based on the first timing signal 710 from the media server 702 over a path 736 that does not include the asynchronous data network 704.
In step 806, the media stream is buffered using the timing information and the second timing signal. In one implementation, the buffering logic 504 buffers the media stream 712 using the timing information 718 and the second timing signal 720.
Fig. 9 is a schematic diagram of a media system 900 according to yet another embodiment of the invention. The media system 900 includes a media server 902, an asynchronous data network 904, a client 906, and a timing source 908. The media server 902 provides the media stream 912 and timing information 918 to the client 906 over the asynchronous data network 904. The timing information 918 is based on a timing signal 910 received from the client 906. The timing source 908 provides a second timing signal 920 to the client 906 over a path 926 that does not include the asynchronous data network 904. The client 906 provides the first timing signal 910 to the media server 902 over a path 936 that does not include the asynchronous data network 904. The first timing signal 910 is based on the second timing signal 920. For example, the first timing signal 910 may be the same as the second timing signal 920. The client 906 synchronizes the media stream 912 to provide buffered media content 914 according to the timing information 918 and the second timing signal 920.
Fig. 10 shows a flow 1000 of a method of buffering a media stream according to yet another embodiment of the invention. For example, the flow 1000 may be performed by the client 906 of the media system 900 shown in fig. 9. For purposes of illustration, the process 1000 will be described in conjunction with the client 1100 shown in FIG. 11, the client 1100 being an example of the client 906 according to one embodiment of the invention. Client 1100 includes buffering logic 1104 and timing module 1108. Further structural and operational embodiments will be apparent to those skilled in the art in view of the discussion related to flow 1000.
As shown in fig. 10, the method of flow 1000 begins at step 1002. In step 1002, a media stream and timing information associated with the media stream are received from a media server over an asynchronous data network. The timing information is based on the first timing signal. In one embodiment, the buffering logic 1104 receives the media stream 912 and the timing information 918 from the media server 902 over the asynchronous data network 904. Timing information 918 is based on first timing signal 910.
In step 1004, a first timing signal is provided to the media server over a path that does not include the asynchronous data network. The first timing signal is based on the second timing signal. The first timing signal may be provided to the media server according to a protocol, such as a bluetooth protocol, a cellular protocol, etc., although the scope of embodiments of the invention is not limited in this respect. In one embodiment, the timing module 1108 provides the first timing signal 910 to the media server 902 over a path 936 that does not include the asynchronous data network 904. The first timing signal 910 is based on the second timing signal 920.
In step 1006, a second timing signal is received from a timing source that is not connected to the asynchronous data network. The timing source may be a quartz clock, an atomic clock, or any other suitable type of timing source. The second timing signal may be received from a timing source via any suitable connection, such as a bluetooth connection, a cellular connection, etc. In one embodiment, the buffering logic 1104 receives the second timing signal 920 from the timing source 908, the timing source 908 not being connected to the asynchronous data network 904.
In step 1008, the media stream is buffered using the timing information and the second timing signal. In one implementation, the buffering logic 1104 buffers the media stream 912 using the timing information 918 and the second timing signal 920.
Fig. 12 is a schematic diagram of a media system 1200 according to yet another embodiment of the invention. The media system 1200 includes a media server 1202, an asynchronous data network 1204, a client 1206, and a router 1228. The media server 1202 provides a media stream 1212 and timing information 1218 to the router 1228 via the asynchronous data network 1204.
The router 1228 includes a timing module 1208, input circuitry 1232, and output circuitry 1234. The timing module 1208 provides a timing signal 1220 to the client 1206 over a path 1226 that does not include the asynchronous data network 1204. The input circuitry 1232 receives the media stream 1212 and timing information 1218 from the media server 1202 over the asynchronous data network 1204. Input circuitry 1232 communicates media stream 1212 and timing information 1218 to output circuitry 1234. The output circuit 1234 provides the media stream 1212 and timing information 1218 to the client 1206 via the asynchronous data network 1204.
The asynchronous data network 1204 may be a single asynchronous data network, may include multiple asynchronous data networks, or may include one or more asynchronous data networks and one or more synchronous data networks. For example, the input circuitry 1232 may receive the media stream 1212 and the timing information 1218 from the media server 1202 over the first subnet of the asynchronous data network 1204, while the output circuitry 1234 may provide the media stream 1212 and the timing information 1218 to the client 1206 over the second subnet of the asynchronous data network 1204. The first subnet may include one or more asynchronous data networks. The first subnet may further include one or more synchronous data networks, although the scope of embodiments of the invention is not limited in this respect. The second sub-network may comprise one or more asynchronous data networks. The second subnet may further include one or more synchronous data networks, although the scope of embodiments of the invention is not limited in this respect. In one example, the first subnet is a Wide Area Network (WAN) and the second subnet is a Local Area Network (LAN). In another example, the first subnet is a LAN and the second subnet is a WAN. In yet another example, the first subnet and the second subnet are different subnets in a common LAN or different subnets in a common WAN.
Client 1206 buffers media stream 1212 according to timing information 1218 and timing signals 1220.
Fig. 13 shows a flow 1300 of a method of buffering a media stream according to yet another embodiment of the invention. The method of flow 1300 will now be described with reference to example media system 1200 depicted in fig. 12. However, the method is not limited to this implementation.
As shown in FIG. 13, flow 1300 begins at step 1302. In step 1302, a media stream and timing information associated with the media stream are received from a media server over an asynchronous data network. In one embodiment, the input circuitry 1232 receives the media stream 1212 and the timing information 1218 from the media server 1202 over the asynchronous data network 1204.
In step 1304, a timing signal is provided to the client over a path that does not include the asynchronous data network. The timing signal may be provided according to a protocol, such as a bluetooth protocol, a cellular protocol, etc., although the scope of embodiments of the present invention is not limited in this respect. In one embodiment, the timing module 1208 provides the timing signal 1220 to the client 1206 over a path 1226 that does not include the asynchronous data network 1024.
In step 1306, the media stream and the timing information are provided to the client over the asynchronous data network to enable the client to buffer the media stream using the timing information and the timing signal. In one embodiment, the media stream 1212 and timing information 1218 are provided to the client 1206 over the asynchronous data network 1204 to enable the client 1206 to buffer the media stream 1212 using the timing information 1218 and timing signals 1220.
Fig. 14 is a schematic diagram of a media system 1400 according to yet another embodiment of the invention. The media system 1400 includes an audio server 1402, an asynchronous data network 1404, a first speaker 1406A, a second speaker 1406B, and a timing source 1408. The audio server 1402 provides a first audio stream 1412A to the first speaker 1406A over the asynchronous data network 1404. The audio server 1402 provides a second audio stream 1412B to the second speaker 1406B over the asynchronous data network 1404.
The timing source 1408 provides a first timing signal 1420A to the first speaker 1406A via path 1426A which does not include the asynchronous data network 1404. The timing source 1408 provides a second timing signal 1420B to the second speaker 1406B via path 1426B which does not include the asynchronous data network 1404. The timing source 1408 may be a quartz clock, an atomic clock, or any other suitable timing source type. The timing source 1408 may provide the first timing signal 1420A to the first speaker 1406A and/or the second timing signal 1420B to the second speaker 1406B via a protocol, such as a bluetooth protocol, a cellular protocol, and/or the like, although the scope of embodiments of the invention is not limited in this respect.
The first speaker 1406A includes first buffering logic 1418A. The first buffering logic 1418A buffers a first audio stream 1412A according to the first timing signal 1420A, the first audio stream 1412A being received from the audio server 1402 over the asynchronous data network 1404. The second speaker 1406B includes second buffering logic 1418B. The second buffering logic 1418B buffers a second audio stream 1412B in accordance with the second timing signal 1420B, the second audio stream 1412B received from the audio server 1402 over the asynchronous data network 1404.
The media server 102, client 106, and timing source 108 shown in FIG. 1; the media servers 202A-202N, client 206, and timing source 208 shown in FIG. 2; the synchronizer 502, the buffer logic 504, and the jitter module 506 shown in FIG. 5; the media server 702, client 706 and timing source 708 shown in fig. 7; the media server 902, client 906, and timing source 908 shown in fig. 9; the buffering logic 1104 and timing module 1108 shown in FIG. 11; the media server 1202, router 1228, timing module 1208, and client 1206 shown in fig. 12; and the audio server 1402, the first buffering logic 1418A, the second buffering logic 1418B, and the timing source 1408 of fig. 14 may be implemented in hardware, software, firmware, or a combination of hardware, software, and firmware, as will be appreciated by those skilled in the art.
For example, any of media server 102, client 106, timing source 108, media servers 202A-202N, client 206, timing source 208, synchronizer 502, buffering logic 504, jitter module 506, media server 702, client 706, timing source 708, media server 902, client 906, timing source 908, buffering logic 1404, timing module 1108, media server 1202, router 1228, timing module 1208, client 1206, audio server 1402, first buffering logic 1418A, second buffering logic 1418B, and timing source 1408 may be implemented using computer program code executable in one or more processors.
In another example, any of the media server 102, the client 106, the timing source 108, the media servers 202A-202N, the client 206, the timing source 208, the synchronizer 502, the buffering logic 504, the jitter module 506, the media server 702, the client 706, the timing source 708, the media server 902, the client 906, the timing source 908, the buffering logic 1404, the timing module 1108, the media server 1202, the router 1228, the timing module 1208, the client 1206, the audio server 1402, the first buffering logic 1418A, the second buffering logic 1418B, and the timing source 1408 may be implemented using hardware logic/electronic circuitry.
FIG. 15 is a block diagram of a computer 1500 that may be used to implement embodiments of the present invention. For example, media server 102, client 106, and/or timing source 108 shown in FIG. 1 may be implemented using one or more computers, such as computer 1500; the media servers 202A-202N, the client 206, and/or the timing source 208 shown in FIG. 2; client 500 shown in FIG. 5; the media server 702, client 706, and/or timing source 708 shown in fig. 7; the media server 902, client 906, and/or timing source 908 shown in fig. 9; client 1100 shown in FIG. 11; the media server 1202, the client 1206, and/or the router 1228 shown in fig. 12; and/or any of the audio server 1402 and/or the timing source 1408 shown in fig. 14.
As shown in fig. 15, computer 1500 includes one or more processors (e.g., Central Processing Units (CPUs)), such as processor 1506. The processor 1506 may include, for example, the synchronizer 502 and/or the dithering module 506 in fig. 5; timing module 1108 of FIG. 11; timing module 1208 in fig. 12; or any portion or combination thereof, although the scope of embodiments of the invention is not limited in this respect. The processor 1506 is connected to a communication infrastructure 1502, such as a communication bus. In some embodiments, the processor 1506 may operate multiple computing threads (computing threads) simultaneously.
Computer 1500 also includes a main memory 1508, such as Random Access Memory (RAM). Main memory 1508 stores control logic 1524A (computer software) and data.
The computer 1500 also includes one or more secondary storage devices 1510. Secondary storage devices 1510 include, for example, a hard disk drive 1512 and/or a removable storage device or drive 1514, as well as other types of storage devices, such as memory cards and memory sticks. For example, computer 1500 may include an industry standard interface (industristandardinterface), such as a Universal Serial Bus (USB) interface for connecting devices such as memory sticks. Removable storage drive 1514 represents a floppy disk drive, a magnetic tape drive, an optical disk drive, an optical storage device, a tape backup, etc.
The removable storage drive 1514 interacts with a removable storage unit 1516. Removable storage unit 1516 includes a computer usable or readable storage medium 1518, storage medium 1518 storing computer software 1524B (control logic) and/or data. Removable storage unit 1516 represents a floppy disk, magnetic tape, Compact Disk (CD), Digital Versatile Disk (DVD), blu-ray disk, optical storage disk (optical storage disk), memory stick, memory card, or any other computer data storage device. The removable storage drive 1514 reads from and/or writes to a removable storage unit 1516 in a well known manner.
The computer 1500 also includes an input/output/display device 1504 such as a display, keyboard, pointing device, etc.
Computer 1500 further includes a communications or network interface 1520. Communication interface 1520 enables computer 1500 to communicate with remote devices. For example, communication interface 1520 allows computer 1500 to communicate over a communication network or medium 1522 (representing a form of computer usable or readable medium), such as a Local Area Network (LAN), a Wide Area Network (WAN), the Internet, a cellular network, and so forth. Network interface 1520 may connect to remote sites or networks through wired or wireless connections.
Control logic 1524C may communicate with computer 1500 over a communication medium 1522.
Any apparatus or article of manufacture comprising a computer usable or readable medium having control logic (software) stored therein is referred to generally as a computer program product or program storage device. This includes, but is not limited to, computer 1500, main memory 1508, secondary storage 1510, and removable storage unit 1516. Such a computer program product stores control logic that, when executed by one or more data processing apparatus, enables the data processing apparatus to perform operations described in embodiments of the present invention.
Apparatus for practicing embodiments of the invention may include memory, such as storage devices, memory devices, and other types of computer-readable media. Examples of such computer readable media include hard disks, removable magnetic disks, removable optical disks, flash memory cards, digital video disks, Random Access Memories (RAMs), Read Only Memories (ROMs), and the like. As used herein, the terms "computer program medium" and "computer-readable medium" are used to generally refer to the hard disk of a hard disk drive, a removable magnetic disk, a removable optical disk (e.g., CDROM, DVD, etc.), a Zip disk, magnetic tape, magnetic storage devices, micro-electro-mechanical system-based (MEMS-based) storage devices, nanotechnology-based storage devices, as well as other media such as flash memory cards, digital video disks, RAM devices, ROM devices, and the like.
Such computer-readable storage media may store program modules comprising computer program logic for synchronizer 502, buffering logic 504, jitter module 506, buffering logic 1104, timing module 1108, timing module 1208, first buffering logic 1418A, and/or second buffering logic 1418B; includes computer program logic for flow 300 (including one or more steps of flow 300), flow 400 (including one or more steps of flow 400), flow 600 (including one or more steps of flow 600), flow 800 (including one or more steps of flow 800), flow 1000 (including one or more steps of flow 1000), and/or flow 1300 (including one or more steps of flow 1300); and/or include computer program logic for other described embodiments of the invention. Some embodiments of the invention are directed to a computer program product comprising logic (e.g., in the form of program code or software) stored on any computer usable medium. Such program code, when executed by one or more processors, enables the apparatus to perform the operations described in embodiments of the present invention.
Such computer-readable storage media are distinct from communication media and do not overlap. Communication media typically embodies computer readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave. The term "modulated data signal" means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wireless media such as acoustic, RF, infrared and other wireless media. Embodiments of the present invention are also directed to such communication media.
The invention may be implemented using software, firmware and/or hardware other than those described herein. Any software, firmware or hardware suitable for carrying out the functions described herein may be used.
Third, end word
While various embodiments of the present invention have been described above, it should be understood that they have been presented by way of example only, and not limitation. It will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the spirit and scope of the invention. Accordingly, the scope of the invention should not be unduly limited to any of the embodiments set forth herein and should be determined with reference to the claims and their equivalents.
Claims (10)
1. A method of synchronizing a plurality of media streams, the method comprising:
receiving, from a first media server over an asynchronous data network, a first media stream and first timing information, the first media stream generated by a first media source, the first timing information based on a first timing signal received from a timing source, the timing source not connected to the asynchronous data network;
receiving, over the asynchronous data network, a second media stream and second timing information from a second media server, the second media server being different from the first media server, the second media stream being generated by a second media source, the second timing information being based on a second timing signal received from the timing source, the timing source not being connected to the asynchronous data network;
synchronizing the first media stream and the second media stream according to the first timing information and the second timing information to provide combined media content based on the first media stream and the second media stream.
2. The method of synchronizing a plurality of media streams of claim 1, further comprising:
receiving a third timing signal from the timing source, the timing source not connected to the asynchronous data network, the third timing signal related to the first timing signal and the second timing signal;
wherein synchronizing the first media stream and the second media stream comprises:
buffering the first media stream using the first timing information and the third timing signal to synchronize the first media stream and the second media stream.
3. The method of synchronizing a plurality of media streams of claim 2, wherein synchronizing the first media stream and the second media stream further comprises:
buffering the second media stream using the second timing information and the third timing signal;
in response to buffering the first media stream, removing jitter from the first media stream; and
in response to buffering the second media stream, jitter is removed from the second media stream.
4. A method of buffering a media stream, the method comprising:
receiving a media stream and timing information from a media server over an asynchronous data network, the timing information generated from a first timing signal received from a timing source, the timing source not connected to the asynchronous data network;
receiving a second timing signal from the timing source, the timing source not connected to the asynchronous data network; and buffering the media stream using the timing information and the second timing signal.
5. The method of buffering a media stream according to claim 4,
receiving the timing information comprises:
receiving the timing information from the media server over the asynchronous data network, the timing information being generated from the first timing signal received from an atomic clock, the atomic clock not being connected to the asynchronous data network; and
wherein receiving the second timing signal comprises:
receiving the second timing signal from the atomic clock, the atomic clock not connected to the asynchronous data network.
6. The method of buffering a media stream according to claim 4,
receiving the timing information comprises:
receiving the timing information from the media server over the asynchronous data network, the timing information being generated from the first timing signal received from the timing source over a first Bluetooth connection, the timing source not being connected to the asynchronous data network; and
wherein receiving the second timing signal comprises:
receiving the second timing signal from the timing source over a second Bluetooth connection, the timing source not being connected to the asynchronous data network.
7. A method of buffering a media stream, the method comprising:
receiving a media stream and timing information associated with the media stream from a media server over an asynchronous data network, the timing information based on a first timing signal received from a timing source, the timing source not connected to the asynchronous data network;
receiving a second timing signal from the media server over a path that does not include the asynchronous data network, the second timing signal based on the first timing signal; and
buffering the media stream using the timing information and the second timing signal.
8. A method of buffering a media stream, the method comprising:
receiving a media stream and timing information associated with the media stream from a media server over an asynchronous data network, the timing information based on a first timing signal;
providing the first timing signal to the media server over a path that does not include the asynchronous data network, the first timing signal being based on a second timing signal;
receiving the second timing signal from a timing source, the timing source not connected to the asynchronous data network; and buffering the media stream using the timing information and the second timing signal.
9. A media system for buffering audio streams, comprising:
an audio server for providing a first audio stream and a second audio stream over an asynchronous data network;
a first speaker for buffering the first audio stream according to a first timing signal received from a timing source, the first audio stream being received from the audio server over the asynchronous data network, the timing source not being connected to the asynchronous data network; and
a second speaker to buffer the second audio stream according to a second timing signal received from the timing source, the second audio stream being received from the audio server over the asynchronous data network, the timing source not being connected to the asynchronous data network.
10. A router connected between a media server and a client, the router comprising:
an input circuit for receiving a media stream and timing information associated with the media stream from a media server over an asynchronous data network;
a timing module for providing a timing signal to the client over a path that does not include the asynchronous data network;
and output circuitry for providing the media stream and the timing information over the asynchronous data network such that the client can buffer the media stream using the timing information and the timing signal.
Applications Claiming Priority (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US201161434257P | 2011-01-19 | 2011-01-19 | |
| US61/434,257 | 2011-01-19 | ||
| US13/038,031 US8643696B2 (en) | 2011-01-19 | 2011-03-01 | Synchronizing media streams using time signal(s) from an independent time source |
| US13/038,031 | 2011-03-01 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| HK1169248A1 HK1169248A1 (en) | 2013-01-18 |
| HK1169248B true HK1169248B (en) | 2016-12-23 |
Family
ID=
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR101355059B1 (en) | Synchronizing media streams using time signal(s) from an independent time source | |
| US12156154B2 (en) | Clock synchronisation between devices using message timestamps | |
| CN114257328B (en) | Synchronization of multiple audio devices | |
| US8155157B2 (en) | Method and apparatus for synchronizing applications of terminals in communication network | |
| US10855763B2 (en) | Method and apparatus for synchronizing applications' consumption of remote data | |
| US20100034393A1 (en) | Ad-hoc adaptive wireless mobile sound system | |
| US9088818B2 (en) | Adaptive media delay matching | |
| US9837093B2 (en) | Packet based delivery of multi-channel audio over wireless links | |
| CN107071509A (en) | The live video precise synchronization method of multichannel | |
| CN112135177B (en) | Data stream synchronization method and device | |
| US10587954B2 (en) | Packet based delivery of multi-channel audio over wireless links | |
| CN108366283A (en) | The media sync playback method of more equipment rooms | |
| US20160150008A1 (en) | Clock synchronization using wifi beacons | |
| CN112929713A (en) | Data synchronization method, device, terminal and storage medium | |
| JP2018074480A (en) | Receiving terminal and program | |
| CN109525882B (en) | A synchronous playback method, bridge device and sink device | |
| US11323780B2 (en) | Systems and methods for determining delay of a plurality of media streams | |
| HK1169248B (en) | Method for synchronizing media stream, method and system for buffering media stream, and router | |
| US9635633B2 (en) | Multimedia synchronization system and method | |
| WO2024212122A1 (en) | Audio synchronization in an audio distribution system | |
| CN113873344A (en) | Streaming media playing method, device and system | |
| JP2015201701A (en) | REPRODUCTION SYSTEM, REPRODUCTION DEVICE, AND REPRODUCTION METHOD | |
| US20180115805A1 (en) | Networked One-Touch Configurable Audio-Visual Devices |