Dynamic bit rate adaptation over bandwidth varying connection
First Claim
1. A method for encoding a media file or part thereof for transmission in real time over a varying bandwidth link to a mobile unit, comprising:
- employing at least one processor of a transcoder for;
(i) encoding one or more fragments of the media file into transcoded media fragments to form a stream fragment;
(ii) sending the stream fragment to a transmission buffer of the transcoder;
(iii) determining an estimated transmit time of a previously formed stream fragment, the estimated transmit time being a time interval required for said previously formed stream fragment to be conveyed from the transmission buffer and consumed by the varying bandwidth link;
(iv) determining an estimated display time of said previously formed stream fragment, the estimated display time being determined before said previously formed stream fragment is conveyed from the transmission buffer, the estimated display time being derived from timestamps embedded in two previously formed stream fragments; and
(v) adjusting a current encoding rate of the transcoded media fragments as a function of the estimated transmit time and the estimated display time.
6 Assignments
0 Petitions
Accused Products
Abstract
Audio and video streams of a media file are transcoded just-in-time by keeping the transcoding process synchronized to a wall clock. The transcoding is initially configured slightly faster than real-time. The transcoded frames are pushed from the transcoder through a variable bandwidth connection as soon as they are transcoded. Transcoding is then monitored periodically to assess the bandwidth that was available during the transmission of a transcoded buffer. Two time intervals are measured: a buffer interval which is the difference in the transcoded buffer timestamps of the previous two transmissions, and a clock interval corresponding to the real time transmission time of the last transcoded buffer. If a significant difference is observed, the transcoder bit rate is adjusted by a factor that is derived from that difference.
-
Citations
39 Claims
-
1. A method for encoding a media file or part thereof for transmission in real time over a varying bandwidth link to a mobile unit, comprising:
employing at least one processor of a transcoder for; (i) encoding one or more fragments of the media file into transcoded media fragments to form a stream fragment; (ii) sending the stream fragment to a transmission buffer of the transcoder; (iii) determining an estimated transmit time of a previously formed stream fragment, the estimated transmit time being a time interval required for said previously formed stream fragment to be conveyed from the transmission buffer and consumed by the varying bandwidth link; (iv) determining an estimated display time of said previously formed stream fragment, the estimated display time being determined before said previously formed stream fragment is conveyed from the transmission buffer, the estimated display time being derived from timestamps embedded in two previously formed stream fragments; and (v) adjusting a current encoding rate of the transcoded media fragments as a function of the estimated transmit time and the estimated display time. - 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. A media processing system for encoding a media file or part thereof for transmission in real time over a varying bandwidth link to a mobile unit, comprising:
-
a processor and a non-transitory computer readable storage medium having computer readable instructions stored thereon for execution by the processor, forming; a transcoder configured to transcode one ore more fragments of the media file into transcoded media fragments to form a stream fragment; a transmission buffer of the transcoder configured to convey the stream fragment to the varying bandwidth link; and a dynamic bit rate adapter configured to adjust a current encoding bit rate of the transcoder as a function of (i) an estimated transmit time of a previously formed stream fragment, the estimated transmit time being a time interval required for said previously formed media fragment to be conveyed from the transmission buffer and consumed by the varying bandwidth link, and (ii) an estimated display time of said previously formed stream fragment, the estimated display time being determined before said previously formed stream fragment is conveyed from the transmission buffer, the estimated display time being derived from timestamps embedded in two previously formed stream fragments. - View Dependent Claims (25, 26, 27, 28, 29, 30, 31)
-
-
32. A method for encoding a media file or part thereof for transmission in real time over a varying bandwidth link to a mobile unit, comprising:
employing at least one processor of a transcoder for; (a) encoding at least a first fragment of the media file into a transcoded media fragment at a current encoding rate equal to an initial encoding rate to form a stream fragment, sending the stream fragment to a transmission buffer of the transcoder, and transmitting the stream fragment; (b) reevaluating the current encoding rate into a new encoding rate based on an estimated transmit time of a previously transmitted stream fragment, the estimated transmit time being a time interval required for said stream fragment to be conveyed from the transmission buffer and consumed by the varying bandwidth link, and further based on an estimated display time of said previously formed stream fragment, the estimated display time being determined before said previously formed stream fragment is conveyed from the transmission buffer, the estimated display time being derived from timestamps embedded in at least some of the transcoded media fragments of the last stream and a previous stream fragment; (c) setting the current encoding rate to be equal to the new encoding rate; (d) encoding another fragment of the media file into a transcoded media fragment at the current encoding rate; and (e) repeating the steps (b) to (d) until the media file or the part thereof has been completely transcoded. - View Dependent Claims (33, 34, 35, 36, 37, 38, 39)
Specification