Method and transcoding proxy for transcoding a media stream that is delivered to an end-user device over a communications network
First Claim
1. A method for transcoding a video stream that is delivered to an end-user device over a communications network, the method comprising:
- selecting a transcoding technique for the video stream;
transcoding a portion of the video stream using the selected transcoding technique;
streaming the transcoded portion of the video stream to the end-user device;
while the transcoded portion of the video stream is being streamed to the end-user device, detecting a change in a condition of the communications network;
selecting a different transcoding technique in response to the change in the condition of the communications network;
transcoding a subsequent portion of the video stream using the different transcoding technique; and
streaming the transcoded subsequent portion of the video stream to the end-user device, wherein detecting the change in the condition of the communications network is based upon a calculation of a difference between a presentation timestamp of a video frame in the video stream and an elapsed time of the video frame, wherein the presentation timestamp indicates a correct time to display the video frame at the end-user device and the elapsed time is the time between when a transcoding proxy begins to transmit video frames of the video stream to the end-user device and when the end-user device fully receives the video frame.
3 Assignments
0 Petitions
Accused Products
Abstract
Methods and transcoding proxies for transcoding media streams are described. In one embodiment, a method for transcoding a media stream that is delivered to an end-user device over a communications network involves selecting a transcoding technique for the media stream, transcoding a portion of the media stream using the selected transcoding technique, streaming the transcoded portion of the media stream to the end-user device, while the transcoded portion of the media stream is being streamed to the end-user device, detecting a change in a condition of the communications network, selecting a different transcoding technique in response to the change in the condition of the communications network, transcoding a subsequent portion of the media stream using the different transcoding technique, and streaming the transcoded subsequent portion of the media stream to the end-user device. Other embodiments are also described.
-
Citations
23 Claims
-
1. A method for transcoding a video stream that is delivered to an end-user device over a communications network, the method comprising:
-
selecting a transcoding technique for the video stream; transcoding a portion of the video stream using the selected transcoding technique; streaming the transcoded portion of the video stream to the end-user device; while the transcoded portion of the video stream is being streamed to the end-user device, detecting a change in a condition of the communications network; selecting a different transcoding technique in response to the change in the condition of the communications network; transcoding a subsequent portion of the video stream using the different transcoding technique; and streaming the transcoded subsequent portion of the video stream to the end-user device, wherein detecting the change in the condition of the communications network is based upon a calculation of a difference between a presentation timestamp of a video frame in the video stream and an elapsed time of the video frame, wherein the presentation timestamp indicates a correct time to display the video frame at the end-user device and the elapsed time is the time between when a transcoding proxy begins to transmit video frames of the video stream to the end-user device and when the end-user device fully receives the video frame. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A transcoding proxy for transcoding a video stream that is delivered to an end-user device over a communications network, the transcoding proxy comprising:
-
a non-transitory computer readable medium configured to store executable program instructions, which, when executed by an apparatus, cause the apparatus to implement; a transcoding server configured to select a transcoding technique for the video stream, to transcode a portion of the video stream using the selected transcoding technique, and to stream the transcoded portion of the video stream to the end-user device; a transcoding router configured to detect a change in a condition of the communications network while the transcoded portion of the video stream is being streamed to the end-user device, wherein the transcoding server is further configured to select a different transcoding technique in response to the change in the condition of the communications network, to transcode a subsequent portion of the video stream using the different transcoding technique, and to stream the transcoded subsequent portion of the video stream to the end-user device, wherein the change in the condition of the communications network is detected based upon a calculation of a difference between a presentation timestamp of a video frame in the video stream and an elapsed time of the video frame, wherein the presentation timestamp indicates a correct time to display the video frame at the end-user device and the elapsed time is the time between when the transcoding proxy begins to transmit video frames of the video stream to the end-user device and when the end-user device fully receives the video frame. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20, 21, 22)
-
-
23. A non-transitory computer readable medium configured to store executable program instructions, which, when executed by an apparatus, cause the apparatus to perform the steps of:
-
selecting a transcoding technique for a video stream; transcoding a portion of the video stream using the selected transcoding technique; streaming the transcoded portion of the video stream to an end-user device; while the transcoded portion of the video stream is being streamed to the end-user device, detecting a change in a condition of the communications network; selecting a different transcoding technique in response to the change in the condition of the communications network; transcoding a subsequent portion of the video stream using the different transcoding technique; and streaming the transcoded subsequent portion of the video stream to the end-user device, wherein detecting the change in the condition of the communications network is based upon a calculation of a difference between a presentation timestamp of a video frame in the video stream and an elapsed time of the video frame, wherein the presentation timestamp indicates a correct time to display the video frame at the end-user device and the elapsed time is the time between when the apparatus begins to transmit video frames of the video stream to the end-user device and when the end-user device fully receives the video frame.
-
Specification