IP Library Granted Patent US 9,166,864
Granted Patent B1
US 9,166,864 · App. 13/545,799 · Granted Oct 20, 2015

Adaptive streaming for legacy media frameworks

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,166,864
App. No.
13/545,799
Granted
Oct 20, 2015
Kind
B1
Abstract

This disclosure relates to adaptive streaming for legacy media frameworks. A streaming component includes a reception component that receives a first set of header data associated with an audio stream, and a second set of header data associated with a video stream. A parsing component synthesizes a third set of header data using the first set of header data and the second set of header data based on a set of header criteria for a legacy media framework, and provides the third set of header data to the legacy media framework. A download component acquires respective sets of data from the audio stream and the video stream, and an adaption component provides sets of data to the legacy media framework based on a set of streaming criteria for the legacy media framework.

Claims (42)

1. A system, comprising:

a memory storing computer executable components; and

a processor configured to execute computer executable components stored in the memory, wherein the computer executable components comprise:

a reception component that receives a first set of header data associated with an audio stream, and a second set of header data associated with a video stream;

a parsing component that synthesizes, based on a header criterion, a third set of header data using the first set of header data and the second set of header data;

a header component that provides the third set of header data to a media framework;

a download component that acquires a first set of audio stream data and a second set of video stream data;

an adaption component that, based on a streaming criterion, provides subsets of the first set of audio stream data and the second set of video stream data to the media framework, wherein the first set of audio stream data is a first number of streams and the second set of video stream data is a second number of streams, the second number of streams being different from the first number of streams and the second number of streams and the first number of streams being determined based on the streaming criterion, and wherein the first set of audio stream data and the second set of video stream data comprises interleaved subsets of the first set of audio stream data and the second set of video stream data; and

a mux component that, based on the streaming criterion, interleaves the subsets of the first set of audio stream data and the second set of video stream data.

2. The system of claim 1 , wherein the streaming criterion comprises a media file specification.

3. The system of claim 1 , wherein the first set of audio stream data and the second set of video stream data comprises one or more chunks of first set of audio stream data and the second set of video stream data.

4. The system of claim 3 , wherein the one or more chunks of data are encoded at different bitrates.

5. The system of claim 1 , further comprising an update component that updates a stream identification associated with at least one of the third set of header data, or the provided subsets of the first set of audio stream data and the second set of video stream data.

6. A method, comprising:

receiving, at a device comprising a processor, a first set of header data associated with an audio stream for an audio file and a second set of header data associated with a video stream for a video file;

synthesizing a third set of header data using the first set of header data and the second set of header data based on a header criterion;

providing the third set of header data to a media framework included in the device, wherein the media framework is a legacy media framework that processes audio data interleaved with video data;

obtaining a first set of audio stream data and a second set of video stream data;

interleaving subsets of the first set of audio stream data and the second set of video stream data based on the streaming criterion;

providing the interleaved subsets of the first set of audio stream data and the second set of video stream data to the media framework; and

modifying a stream identification associated with at least one of the third set of header data or the interleaved subsets of the first set of audio stream data and the second set of video stream data, wherein the modifying the stream identification comprises modifying the stream identification from a first stream identifier to a second stream identifier, wherein the second stream identifier is formatted to be identifiable to the legacy media framework.

7. The method of claim 6 , wherein the obtaining respective sets of data from the audio stream and the video stream comprises obtaining respective chunks of the first set of audio stream data and the second set of video stream data.

8. The method of claim 7 , wherein the obtaining respective chunks comprises obtaining respective chunks encoded at two or more different bitrates.

9. The method of claim 6 , wherein the obtaining the first set of audio stream data and the second set of video stream data comprises obtaining the first set of audio stream data and a second set of video stream data using hypertext transfer protocol.

10. The method of claim 6 , further comprising receiving another set of header data associated with at least one other stream for at least one of the audio file or the video file.

11. The method of claim 10 , wherein the synthesizing the third set of header data comprises synthesizing the third set of header data using the first set of header data, the second set of header, and the another set of header data based on the header criterion.

12. A method, comprising:

receiving, at a client device comprising a processor, at least one set of audio header data associated with a set of audio streams for an audio file and at least one set of video header data associated with a set of video streams for a video file;

generating, based on a header criterion, a synthesized set of header data using the at least one set of audio header data and the at least one set of video header data;

providing the synthesized set of header data to a media framework;

obtaining a first set of audio stream data from the set of audio streams and a first set of video stream data from the set of video streams; and

providing, based on a streaming criterion, the first set of audio stream data and the second set of video stream data to the media framework, wherein the first set of audio stream data is a first number of streams and the second set of video stream data is a second number of streams, the second number of streams being different from the first number of streams and the second number of streams and the first number of streams being determined based on the streaming criterion, wherein the providing the first set of audio stream data and the second set of video stream data to the media framework comprises interleaving subsets of the first set of audio stream data and the second set of video stream data based on the streaming criterion.

13. The method of claim 12 , wherein the obtaining first set of audio stream data and the second set of video stream comprises obtaining respective chunks of data from the set of audio streams and the set of video streams.

14. The method of claim 12 , wherein the providing the first set of audio stream data and the second set of video stream data to the media framework comprises interleaving subsets of the first set of audio stream data and the second set of video stream data based on the streaming criterion.

15. A method, comprising:

receiving, at a device comprising a processor, at least one set of header data associated with a demuxed stream;

generating, based on a header criterion, a synthesized set of header data using the at least one set of header data;

providing the synthesized set of header data to a media framework;

obtaining respective sets of audio data and video data from the demuxed stream; and

providing, based on a streaming criterion, the respective sets of the audio data and the video data to the media framework, wherein the respective sets of the audio data and the video data comprise a first set of audio stream data having a first number of streams and a second set of video stream data having a second number of streams, the second number of streams being different from the first number of streams and the second number of streams and the first number of streams being identified from the streaming criterion, wherein the providing the sets of audio data and the video data to the media framework comprises interleaving subsets of the sets of audio data and the sets of video data based on the streaming criterion.

16. The system of claim 1 , wherein the media framework is a legacy media framework unable to process the first set of audio data and the second set of video data and able to process combination audiovisual data.

17. The system of claim 16 , wherein the streaming criterion comprises at least one of a media file specification that the legacy media framework is adapted to process or a format that the legacy media framework is adapted to process.

Assignments (2)
CHANGE OF NAME Recorded Oct 2, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044334/0466 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 10, 2012
From: GALLIGAN, FRANCIS; COLWELL, AARON JAMES
To: GOOGLE INC.
Reel/Frame 028524/0776 →