IP Library Granted Patent US 8,219,711
Granted Patent B2
US 8,219,711 · App. 12/727,149 · Granted Jul 10, 2012

Dynamic variable rate media delivery system

Assignee: Juniper Networks, Inc.
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 8,219,711
App. No.
12/727,149
Granted
Jul 10, 2012
Kind
B2
Abstract

A method and apparatus for dynamically transcoding and delivering variable bit rate media files delivers media files to client systems. The media server dynamically transcodes a content file to a bit rate requested by a client using an original content file or other transcoded content files. The media server can dynamically select a segment of a content file to transcode. The file format required by the client is determined and the transcoded segment is formatted to the file format. The formatted segment is delivered to the client.

Claims (96)

1. A method comprising:

receiving, by a server, a content file encoded for a first bit rate;

transcoding, by the server, the content file for a plurality of second bit rates, where the plurality of second bit rates are different than the first bit rate;

storing, by the server, the content file transcoded at the plurality of second bit rates;

receiving, by the server, a request, from a client device, for the content file encoded for an other bit rate that is different from the first bit rate;

in response to receiving the request, determining, by the server, a segment of the content file to be transcoded to the other bit rate;

determining, by the server, if the other bit rate is equivalent to one of the plurality of second bit rates;

determining, by the server and in response to determining that the other bit rate is not equivalent to one of the plurality of second bit rates, one of the plurality of second bit rates that is closest to the other bit rate;

transcoding, by the server and using the content file transcoded at the closest one of the plurality of second bit rates, the segment to the other bit rate; and

delivering, by the server, the transcoded segment to the client device.

2. The method of claim 1 , further comprising:

determining, by the server, a file format required by the client device; and

formatting, by the server, the transcoded segment to the file format required by the client device.

3. The method of claim 1 , further comprising:

deleting, by the server, the transcoded segment after the transcoded segment has been delivered to the client device.

4. The method of claim 1 , further comprising:

determining, by the server, the other bit rate based on a type of the client device.

5. A method comprising:

receiving, by a server, a content file encoded for a first bit rate;

determining, by the server, a plurality of different bit rates, where the plurality of different bit rates are based on previous bit rate requests associated with the content file;

transcoding, by the server, the content file to a plurality of content files, where each of the plurality of content files is associated with a different one of the plurality of different bit rates;

storing, by the server, the plurality of content files;

receiving, by the server, a request, from a client device, for the content file encoded for a second bit rate;

determining, by the server and in response to receiving the request, if the second bit rate is equivalent to one of the plurality of different bit rates;

determining, by the server and in response to determining that the second bit rate is not equivalent to one of the plurality of different bit rates, a segment of one of the plurality of content files associated with a different one of the plurality of different bit rates to be transcoded to the second bit rate, where the segment to be transcoded is associated with a bit rate that is closest to the second bit rate;

transcoding, by the server and using the content file transcoded at the closest one of the plurality of different bit rates, the segment to the second bit rate; and

delivering, by the server, the transcoded segment to the client device.

6. The method of claim 5 , further comprising:

determining, by the server, a file format required by the client device; and

formatting, by the server, the transcoded segment to the file format required by the client device.

7. The method of claim 5 , further comprising:

deleting, by the server, the transcoded segment after the transcoded segment has been delivered to the client device.

8. The method of claim 5 , further comprising:

determining, by the server, the second bit rate based on a type of the client device.

9. An apparatus comprising:

one or more devices to:

receive a content file encoded for a first bit rate,

transcode the content file for a plurality of second bit rates, where the plurality of second bit rates are different than the first bit rate,

store the content file transcoded at the plurality of second bit rates,

receive a request, from a client device, for the content file encoded for an other bit rate that is different from the first bit rate,

determine, in response to receiving the request, a segment of the content file to be transcoded to the other bit rate,

determine if the other bit rate is equivalent to one of the plurality of second bit rates,

determine, in response to determining that the other bit rate is not equivalent to one of the plurality of second bit rates, one of the plurality of second bit rates that is closest to the other bit rate,

transcode, using the content file transcoded at the closest one of the plurality of second bit rates, the segment to the other bit rate, and

deliver the transcoded segment to the client device.

10. The apparatus of claim 9 , where the one or more devices are further to:

determine a file format required by the client device; and

format the transcoded segment to the file format required by the client device.

11. The apparatus of claim 9 , where the one or more devices are further to:

delete the transcoded segment after the transcoded segment has been delivered to the client device.

12. An apparatus comprising:

one or more devices to:

receive a content file encoded for a first bit rate,

determine a plurality of different bit rates, where the plurality of different bit rates are based on previous bit rate requests associated with the content file,

transcode the content file to a plurality of content files, where each of the plurality of content files is associated with a different one of the plurality of different bit rates,

store the plurality of content files;

receive a request, from a client device, for the content file encoded for a second bit rate;

determine, in response to receiving the request, if the second bit rate is equivalent to one of the plurality of different bit rates,

determine, in response to determining that the second bit rate is not equivalent to one of the plurality of different bit rates, a segment of one of the plurality of content files associated with a different one of the plurality of different bit rates to be transcoded to the second bit rate, where the segment to be transcoded is associated with a bit rate that is closest to the second bit rate;

transcode, using the content file transcoded at the closest one of the plurality of different bit rates, the segment to the second bit rate, and

deliver the transcoded segment to the client device.

13. The apparatus of claim 12 , where the one or more devices are further to:

determine a file format required by the client; and

format the transcoded segment to the file format required by the client device.

14. The apparatus of claim 12 , where the one or more devices are further to:

delete the transcoded segment after the transcoded segment has been delivered to the client device.

15. A non-transitory computer-readable medium for storing instructions, the instructions comprising:

one or more instructions, executable by at least one processor, to receive a content file encoded for a first bit rate;

one or more instructions, executable by the at least one processor, to transcode the content file for a plurality of second bit rates, where the plurality of second bit rates are different than the first bit rate;

one or more instructions, executable by the at least one processor, to store the content file transcoded at the plurality of second bit rates;

one or more instructions, executable by the at least one processor, to receive a request, from a client device, for the content file encoded for an other bit rate that is different from the first bit rate;

one or more instructions, executable by the at least one processor, to determine, in response to receiving the request, a segment of the content file to be transcoded to the other bit rate;

one or more instructions, executable by the at least one processor, to determine if the other bit rate is equivalent to one of the plurality of second bit rates;

one or more instructions, executable by the at least one processor, to determine, in response to determining that the other bit rate is not equivalent to one of the plurality of second bit rates, one of the plurality of second bit rates that is closest to the other bit rate;

one or more instructions, executable by the at least one processor, to transcode, using the content file transcoded at the closest one of the plurality of second bit rates, the segment to the other bit rate; and

one or more instructions, executable by the at least one processor, to deliver the transcoded segment to the client device.

16. The non-transitory computer-readable medium of claim 15 , further comprising:

one or more instructions to determine a file format required by the client device; and

one or more instructions to format the transcoded segment to the file format required by the client device.

17. The non-transitory computer-readable medium of claim 15 , further comprising:

one or more instructions to delete the transcoded segment after the transcoded segment has been delivered to the client device.

18. A non-transitory computer-readable medium for storing instructions, the instructions comprising:

one or more instructions, executable by at least one processor, to receive a content file encoded for a first bit rate;

one or more instructions, executable by the at least one processor, to determine a plurality of different bit rates where the plurality of different bit rates are based on previous bit rate requests associated with the content file;

one or more instructions, executable by the at least one processor, to transcode the content file to a plurality of content files, where each of the plurality of content files is associated with a different one of the plurality of different bit rates;

one or more instructions, executable by the at least one processor, to store the plurality of content files;

one or more instructions, executable by the at least one processor, to receive request, from the client device, for the content file encoded for a second bit rate;

one or more instructions, executable by the at least one processor, to determine, in response to receiving the request, if the second bit rate is equivalent to one of the plurality of different bit rates;

one or more instructions, executable by the at least one processor, to determine, in response to determining that the second bit rate is not equivalent to one of the plurality of different bit rates, a segment of one of the plurality of content files associated with a different one of the plurality of different bit rates to be transcoded to the second bit rate, where the segment to be transcoded is associated with a bit rate that is closest to the second bit rate;

one or more instructions, executable by the at least one processor, to transcode, using the content file transcoded at the closest one of the plurality of different bit rates, the segment to the second bit rate; and

one or more instructions, executable by the at least one processor, to deliver the transcoded segment to the client device.

19. The non-transitory computer-readable medium of claim 18 , further comprising:

one or more instructions to determine a file format required by the client device; and

one or more instructions to format the transcoded segment to the file format required by the client device.

20. The non-transitory computer-readable medium of claim 18 , further comprising:

one or more instructions to delete the transcoded segment after the transcoded segment has been delivered to the client device.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 17, 2011
From: MUKUNDAN, SUNIL
To: JUNIPER NETWORKS, INC.
Reel/Frame 027072/0368 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 19, 2011
From: ANKEENA NETWORKS, INC.
To: JUNIPER NETWORKS, INC.
Reel/Frame 026925/0618 →
Continuity (5)
Continuation In Part 12624358 · Nov 23, 2009
Provisional Application 60117505 · Nov 24, 2008
Provisional Application 61161376 · Mar 18, 2009
Provisional Application 61166423 · Apr 3, 2009
Related Publication 20100235542A1 · Sep 16, 2010