Media synchronization for real-time streaming
First Claim
1. A streaming client device, comprising:
- a communication interface configured to have an audio channel to receive an audio stream of a streaming media content from a streaming application server and configured to have a video channel to receive a video stream of the streaming media content from the streaming application server,wherein the video stream and audio stream are separately transmitted concurrently by the streaming application server to the streaming client device; and
a processing core having at least one processor configured to execute a media synchronization module to synchronize the audio stream to the video stream by measuring and storing a video display time change for each of a plurality of video packets of the video stream, wherein the video display time change is a representation of a total video delay between generating video data included in a current video packet of the plurality of video packets of the video stream at the streaming application server and displaying the video data at the streaming client device to a user,wherein the processing core is configured to execute an audio adjustment module to adjust an audio presentation time for the audio stream by adjusting when a subsequent audio packet of the audio stream is played to the user based on the stored video display time change to synchronize playback of the subsequent audio packet with a subsequent video packet of the video stream.
1 Assignment
0 Petitions
Accused Products
Abstract
In one example, a client device interacting with a streaming application server may synchronize an audio stream to a corresponding video stream. The client streaming device may have an audio channel to receive a current audio packet of an audio stream from a streaming application server. The client streaming device may have a video channel to receive a current video packet of a video stream from the streaming application server. The client streaming device may execute a media synchronization module to synchronize the audio stream to the video stream by measuring a video display time change for the video stream describing a video delay between generating video data at the streaming application server and displaying the video data at the streaming client device to a user. The client streaming device may execute an audio adjustment module to adjust an audio presentation time for the audio stream indicating when a subsequent audio packet is played to the user based on the video display time change.
-
Citations
20 Claims
-
1. A streaming client device, comprising:
-
a communication interface configured to have an audio channel to receive an audio stream of a streaming media content from a streaming application server and configured to have a video channel to receive a video stream of the streaming media content from the streaming application server, wherein the video stream and audio stream are separately transmitted concurrently by the streaming application server to the streaming client device; and a processing core having at least one processor configured to execute a media synchronization module to synchronize the audio stream to the video stream by measuring and storing a video display time change for each of a plurality of video packets of the video stream, wherein the video display time change is a representation of a total video delay between generating video data included in a current video packet of the plurality of video packets of the video stream at the streaming application server and displaying the video data at the streaming client device to a user, wherein the processing core is configured to execute an audio adjustment module to adjust an audio presentation time for the audio stream by adjusting when a subsequent audio packet of the audio stream is played to the user based on the stored video display time change to synchronize playback of the subsequent audio packet with a subsequent video packet of the video stream. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A computing device, comprising:
-
a memory to store a video display time change for a video stream wherein the video display time change is a representation of a total video delay between generating video data at a streaming application server and displaying the video data at the computing device to a user and an audio playback time change for an audio stream wherein the audio display time change is a representation of a total audio delay between generating audio data at the streaming application server and playing the audio data at the computing device to the user; and a processor configured to; receive in the computing device a plurality of video packets of the video stream of a streaming media content from the streaming application server; receive an audio stream of the streaming media content from the streaming application server, wherein the video stream and audio stream are separately transmitted concurrently by the streaming application server to the computing device; synchronize the audio stream to the video stream by measuring and storing the video display time change for each of the plurality of video packets of the video stream; calculate and store a synchronization metric that represents a delay difference between the video stream and the audio stream based on a difference between the video display time change and the audio playback time change; and adjust an audio presentation time for the audio stream by adjusting when a subsequent audio packet of the audio stream is played to the user based on the stored synchronization metric to synchronize playback of the subsequent audio packet with a subsequent video packet of the video stream. - View Dependent Claims (15, 16, 17, 18)
-
-
19. A machine-implemented method, comprising:
-
receiving, in a streaming client device, a plurality of video packets of a video stream of a streaming media content and a server video record time indicating when each video packet was generated from a streaming application server; receiving, in the streaming client device, a current audio packet of an audio stream of the streaming media content from the streaming application server, wherein the video stream and audio stream are separately transmitted concurrently by the streaming application server to the streaming client device; recording a client display time for a current video packet of the plurality of video packets indicating when the current video packet was displayed to a user; subtracting the server video record time of the current video packet from the client display time for the current video packet to determine and store a video display time change for the video stream, wherein the video display time change is a representation of a total video delay between generating video data included in the current video packet of the plurality of video packets of the video stream at the streaming application server and displaying the video data at the streaming client device to the user; and adjusting an audio presentation time for the audio stream by adjusting when a subsequent audio packet of the audio stream is played to the user based on the stored video display time change to synchronize playback of the subsequent audio packet with a subsequent video packet of the video stream. - View Dependent Claims (20)
-
Specification