Live media playback adaptive buffer control
AssigneeAdobe Systems Incorporated
InventorJozsef Vass
Life of this patent
Estimating the term…
Abstract
Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, are described for live media playback adaptive buffer control. For example, when media accumulated in the live buffer exceeds a user-configured threshold, media can be played out faster. In this manner, the media player is configured not to discard media packets, but rather to render the buffered media faster to slowly eliminate accumulated backlog. Preventing unbounded buffer accumulation may be desirable in applications like video surveillance, live video broadcast, webcast, and the like.
Claims19
A method performed by data processing apparatus, the method comprising:
- receiving a media stream in a buffer, the received media stream including media messages, each media message comprising (i) a timed-sequence of video frames and (ii) audio channels that are synchronized with the timed-sequence of video frames, each audio channel including a number of channel-specific samples that are separated in time within each channel and are synchronized across the audio channels;
- decoding a media message from the buffer to obtain a decoded portion of the received media stream including a corresponding timed sequence of video frames and corresponding audio channels;
- responsive to a size of the buffer being less than or equal to a predetermined size, playing the decoded portion of the received media stream;
- responsive to the size of the buffer being more than the predetermined size,
- summing the audio channels corresponding to the decoded portion of the received media stream in a sum signal having the number of samples of the audio channels,
- analyzing in time domain the sum signal to determine a reduced number of samples to obtain down-sampled audio channels corresponding to the respective audio channels, each down-sampled audio channel to include the reduced number of samples, wherein said analyzing in the time domain comprises determining a time offset of the sum signal and a given number of samples to be removed from the sum signal starting at the determined time offset,
- generating based on the analyzing a modified portion of the media stream that includes the timed-sequence of video frames corresponding to the decoded portion of the received media stream and the down-sampled audio channels, and
- playing the modified portion of the media stream;
- while playing the decoded portion of the received media stream or the modified media stream, decoding a next media message from the buffer to obtain a decoded next portion of the received media stream;
- and
- processing the decoded next portion of the received media stream responsive to the size of the buffer relative to the predetermined size.
A system comprising:
- memory configured to store a live buffer;
- and
- one or more processors communicatively coupled with the memory and configured to perform operations including:
- receiving a media stream in the live buffer, the received media stream including media messages, each media message comprising (i) a timed-sequence of video frames and (ii) audio channels that are synchronized with the timed-sequence of video frames, each audio channel including a number of channel-specific samples that are separated in time within each channel and are synchronized across the audio channels;
- decoding a media message from the live buffer to obtain a decoded portion of the received media stream including a corresponding timed sequence of video frames and corresponding audio channels;
- responsive to a buffer length of the live buffer being less than or equal to a predetermined length, playing the decoded portion of the received media stream;
- responsive to the buffer length being more than the predetermined length,
- summing the audio channels corresponding to the decoded portion of the received media stream in a sum signal having the number of samples of the audio channels,
- analyzing in time domain the sum signal to determine a reduced number of samples to obtain down-sampled audio channels corresponding to the respective audio channels, each down-sampled audio channel to include the reduced number of samples, wherein the operation of analyzing in the time domain comprises determining a time offset of the sum signal and a given number of samples to be removed from the sum signal starting at the determined time offset,
- generating based on the analyzing a modified portion of the media stream that includes the timed-sequence of video frames corresponding to the decoded portion of the received media stream and the down-sampled audio channels, and
- playing the modified portion of the media stream;
- while playing the decoded portion of the received media stream or the modified media stream, decoding a next media message from the buffer to obtain a decoded next portion of the received media stream;
- and
- processing the decoded next portion of the received media stream responsive to the length of the buffer relative to the predetermined length.
A computer storage medium encoded with a computer program, the program comprising instructions that when executed by data processing apparatus cause the data processing apparatus to perform operations comprising:
- receiving a video stream in a buffer, the received video stream including messages, each video message comprising (i) a timed-sequence of video frames and (ii) audio channels that are synchronized with the timed-sequence of video frames, each audio channel including a number of channel-specific samples that are separated in time within each channel and are synchronized across the audio channels;
- decoding a video message from the buffer to obtain a decoded portion of the received video stream including a corresponding timed sequence of video frames and corresponding audio channels;
- responsive to a length of the buffer being less than or equal to a predetermined length, playing the decoded portion of the received video stream;
- responsive to the length of the buffer being more than the predetermined length,
- mixing the audio channels corresponding to the decoded portion of the received video stream in a sum signal having the number of samples of the audio channels,
- analyzing in time domain the sum signal to determine a reduced number of samples to obtain down-sampled audio channels corresponding to the respective audio channels, each down-sampled audio channel to include the reduced number of samples, wherein said analyzing in the time domain comprises determining a time offset of the sum signal and a given number of samples to be removed from the sum signal starting at the determined time offset
- generating based on the analyzing a modified portion of the video stream that includes the timed-sequence of video frames corresponding to the decoded portion of the received video stream and the down-sampled audio channels, and
- playing the modified portion of the video stream;
- while playing the decoded portion of the received video stream or the modified video stream, decoding a next video message from the buffer to obtain a decoded next portion of the received video stream;
- and
- processing the decoded next portion of the received video stream responsive to the length of the buffer relative to the predetermined length.
Dependencies are inferred from the claim text.