Source: http://www.google.com/patents/US7924177?dq=6317900
Timestamp: 2015-03-31 21:41:43
Document Index: 7463240

Matched Legal Cases: ['art 300', 'art 400', 'art 400', 'art 400', 'art 500', 'art 500', 'art 500']

Patent US7924177 - Distributed on-demand media transcoding system and method - Google PatentsSearch Images Maps Play YouTube News Gmail Drive More »Sign inAdvanced Patent SearchPatentsA method for delivering media content over a network includes transcoding the media content to generate multiple copies of the media content, each of the multiple copies having a different destination type or a different source type or both, storing the multiple copies in a cache, receiving requests...http://www.google.com/patents/US7924177?utm_source=gb-gplus-sharePatent US7924177 - Distributed on-demand media transcoding system and methodAdvanced Patent SearchPublication numberUS7924177 B2Publication typeGrantApplication numberUS 12/074,393Publication dateApr 12, 2011Filing dateMar 4, 2008Priority dateDec 22, 2000Fee statusPaidAlso published asCN1488195A, CN101594518A, CN101594518B, CN102427563A, EP1356594A1, EP1356594A4, EP2683173A1, US6407680, US6593860, US6888477, US8610603, US20020190876, US20040032348, US20080231480, US20110140937, US20140019595, WO2002052730A1Publication number074393, 12074393, US 7924177 B2, US 7924177B2, US-B2-7924177, US7924177 B2, US7924177B2InventorsAngela C. W. Lai, James Peter Hoddie, Howard E. Chartock, Christopher V. Pirazzi, Steve H. Chen, Jody ShapiroOriginal AssigneeSony CorporationExport CitationBiBTeX, EndNote, RefManPatent Citations (31), Non-Patent Citations (16), Referenced by (1), Classifications (50), Legal Events (1) External Links: USPTO, USPTO Assignment, EspacenetDistributed on-demand media transcoding system and method
US 7924177 B2Abstract
A method for delivering media content over a network includes transcoding the media content to generate multiple copies of the media content, each of the multiple copies having a different destination type or a different source type or both, storing the multiple copies in a cache, receiving requests for the media content, and selecting and delivering a copy of one of the multiple copies in response to each of the requests. A further method for providing media content transcoding services includes fetching media content, selecting one of multiple transcoders for transcoding from multiple source types to multiple destination types, wherein the one transcoder is selected based at least on the destination type, sending the media content to the selected transcoder, transcoding the media content to the destination type, thereby generating transcoded media content, and transmitting the transcoded media content.
1. A method for transcoding content from a source type to a destination type, comprising the steps of:
fetching content;
identifying a destination type;
selecting one of a plurality of transcoders for transcoding from a source type to said destination type, wherein said one transcoder is selected based at least on said destination type;
transcoding said content to said destination type, therein generating transcoded content; and
transmitting said transcoded content.
2. The method of claim 1, wherein the content is fetched, sent and transcoded as a stream of digital data and said transcoded content is downloaded to a destination of the destination type.
3. The method of claim 1, wherein said content is fetched, sent and transcoded as a stream of digital data and said transcoded content is transmitted as a stream of digital data.
4. The method of claim 1, wherein content type is defined according to at least one publishing variable, wherein said at least one publishing variable includes:
the file format of the content;
the bit-rate of the content;
the compression algorithm according to which the content is stored;
the communication protocol according to which the content is transferred; or
the physical medium on which the content is stored; or
combinations thereof; and wherein said step of transcoding comprises converting said at least one publishing variable of the content from a source publishing variable type to a destination publishing variable type.
storing said transcoded content in a transcoded cache; and
responding to subsequent transcoding requests for the content by fetching said transcoded content from said transcoded cache, and transmitting said transcoded content.
determining whether to keep said transcoded content in said transcoded cache based on an intelligent algorithm.
7. A method for transcoding content from a source type to a destination type, comprising the steps of:
receiving a request for content from a receiver;
fetching said content;
identifying a destination type corresponding to said receiver;
transmitting said transcoded content to said receiver.
8. A content transcoding device for transcoding content from a source type to a destination type, comprising:
a fetching unit for fetching content;
an identifying unit for identifying a destination type;
a selecting unit for selecting one of a plurality of transcoders for transcoding from a source type to said destination type; wherein said one transcoder is selected based at least on said destination type;
a transcoding unit for transcoding said content to said destination type, therein generating transcoded content; and
a transmitting unit for transmitting said transcoded content.
9. A computer readable medium having a computer program for causing a computer to perform a method for transcoding content from a source type to a destination type, the method comprising the steps of:
10. A transcoding device for transcoding content from a source type to a destination type, comprising:
a receiving unit configured to receive a request for content from a receiver;
a fetching unit configured to fetch said content;
an identifying unit configured to identify a destination type corresponding to said receiver;
a selecting unit configured to select one of a plurality of transcoders for transcoding from a source type to said destination type, wherein said one transcoder is selected based at least on said destination type;
a transcoding unit configured to transcode said content to said destination type, therein generating transcoded content; and
a transmitting unit configured to transmit said transcoded content to said receiver.
11. The transcoding device of claim 10, wherein the content is fetched, sent and transcoded as a stream of digital data and said transcoded content is downloaded to a destination of the destination type.
12. The transcoding device of claim 10, wherein said content is fetched, sent and transcoded as a stream of digital data and said transcoded content is transmitted as a stream of digital data.
13. The transcoding device of claim 10, wherein content type is defined according to at least one publishing variable, wherein said at least one publishing variable includes:
combinations thereof; and wherein said transcoding unit comprises a converting unit configured to convert said at least one publishing variable of the content from a source publishing variable type to a destination publishing variable type.
14. The transcoding device of claim 10, further comprising:
a store configured to store said transcoded content in a transcoded cache; and
wherein said transmitting unit is configured to respond to subsequent transcoding requests for the content by fetching said transcoded content from said transcoded cache, and transmit said fetched transcoded content.
15. The transcoding device of claim 14, further comprising a determining unit configured to determine whether to keep said transcoded content in said transcoded cache based on an intelligent algorithm.
This is a continuation of application Ser. No. 11/825,705, filed Jul. 9, 2007, now U.S. Pat. No. 7,355,531 which is a continuation of application Ser. No. 10/644,602, filed Aug. 20, 2003, now U.S. Pat. No. 7,242,324, which is a continuation-in-part of application Ser. No. 10/465,805, filed Jun. 20, 2003, now U.S. Pat. No. 6,888,477, which is a continuation of Ser. No. 10/141,966 U.S. Pat. No. 6,593,860, filed May 10, 2002, which is a continuation of Ser. No. 09/742,294 U.S. Pat. No. 6,407,680, filed Dec. 22, 2000.
A method for transcoding media content from a source type to a destination type is provided including fetching media content; selecting one of multiple transcoders for transcoding from multiple source types to multiple destination types, wherein the one transcoder is selected based at least on the destination type; sending the media content to the selected transcoder, transcoding the media content to the destination type, thereby generating transcoded media content; inserting a clip or trailer or both into the transcoded media content; and transmitting the transcoded media content including the clip or trailer or both.
A method for delivering media content over a network is also provided including transcoding the media content to generate multiple copies of the media content, each of the multiple copies having a different destination type or a different source type or both; storing the multiple copies in a cache; receiving requests for the media content; inserting a clip or trailer or both into the transcoded media content; and selecting and delivering a copy of one of the multiple copies including the clip or trailer or both in response to each of the requests.
A method for transcoding media content from a source type to a destination type is further provided including fetching media content; selecting one of multiple transcoders for transcoding from multiple source types to multiple destination types, wherein the one transcoder is selected based at least on the destination type; sending the media content to the selected transcoder; transcoding the media content to the destination type, thereby generating transcoded media content; downloading the transcoded media content to a destination of the destination type.
A method for delivering media content over a network is also provided including transcoding the media content to generate multiple copies of the media content, each of the multiple copies having a different destination type or a different source type or both; storing the multiple copies in a cache; receiving requests for the media content; and selecting and downloading a copy of one of the multiple copies in response to each of the requests.
A method for transcoding media content from a source type to a destination type is also provided fetching media content; selecting one of multiple transcoders for transcoding from multiple source types to multiple destination types, wherein the one transcoder is selected based at least on the destination type; automatically detecting one or more destination format criteria without end-user input; sending the media content to the selected transcoder; transcoding the media content to the destination type, thereby generating transcoded media content; and transmitting the transcoded media content.
A method for delivering media content over a network is also provided including transcoding the media content to generate multiple copies of the media content, each of the multiple copies having a different destination type or a different source type or both; storing the multiple copies in a cache; receiving requests for the media content; automatically detecting one or more destination format criteria without end-user input; selecting and delivering a copy of one of the multiple copies in response to each of the requests.
A method for transcoding media content from a source type to a destination type is also provided including fetching media content; selecting one of multiple transcoders for transcoding from multiple source types to multiple destination types, wherein the one transcoder is selected based at least on the destination type; sending the media content to the selected transcoder; transcoding the media content to the destination type, thereby generating transcoded media content; pre-caching the transcoded media content during an off-peak period; and transmitting the transcoded media content during an on-peak period.
A method for delivering media content over a network is further provided including transcoding the media content to generate multiple copies of the media content, each of the multiple copies having a different destination type or a different source type or both; storing the multiple copies in a cache; receiving requests for the media content; pre-caching the transcoded media content during an off-peak period; and selecting and delivering during an on-peak period a copy of one of the multiple copies in response to each of the requests.
A method for providing media content transcoding services is also provided including fetching media content; selecting one of multiple transcoders for transcoding from multiple source types to multiple destination types, wherein the one transcoder is selected based at least on the destination type; sending the media content to the selected transcoder; transcoding the media content to the destination type, thereby generating transcoded media content; transmitting the transcoded media content according to bandwidth criteria supplied to a media content service provider that performs the media content transcoding operation.
A method for providing media content transcoding services is further provided including fetching media content; selecting one of multiple transcoders for transcoding from multiple source types to multiple destination types, wherein the one transcoder is selected based at least on the destination type; sending the media content to the selected transcoder; transcoding the media content to the destination type, thereby generating transcoded media content; and transmitting the transcoded media content according to bandwidth criteria selected by a transcoding service provider that also performs the media content transcoding operation.
A method for delivering media content over a network is also provided including transcoding the media content to generate multiple copies of the media content, each of the multiple copies having a different destination type or a different source type or both; storing the multiple copies in a cache; receiving requests for the media content; and selecting and delivering a copy of one of the multiple copies in response to each of the requests according to bandwidth criteria selected by a transcoding service provider that also performs the media content transcoding operation.
A method for delivering media content over a network is further provided including transcoding the media content to generate multiple copies of the media content, each of the multiple copies having a different destination type or a different source type or both; storing the multiple copies in a cache; receiving requests for the media content; and selecting and delivering a copy of one of the multiple copies in response to each of the requests according to bandwidth criteria supplied to a media content service provider that performs the media content transcoding operation.
A method for providing media content transcoding services is also provided including fetching media content; selecting one of multiple transcoders for transcoding from multiple source types to multiple destination types, wherein the one transcoder is selected based at least on the destination type; sending the media content to the selected transcoder; transcoding the media content to the destination type, thereby generating transcoded media content; and transmitting the transcoded media content; and wherein the selected one of the multiple transcoders for transcoding from a source type to a destination type which have different: file formats of the media content; bit-rates of the media content; communication protocols according to which the media content is transferred; physical media on which the media content is stored; encoding formats; compression algorithms; or combinations thereof.
A method for delivering media content over a network is further provided including transcoding the media content to generate multiple copies of the media content, each of the multiple copies having a different destination type or a different source type or both; storing the multiple copies in a cache; receiving requests for the media content; and selecting and delivering a copy of one of the multiple copies in response to each of the requests, and wherein the different destination type or different source type or both of each of the multiple copies having different: file formats of the media content; bit-rates of the media content; communication protocols according to which the media content is transferred; physical media on which the media content is stored; encoding formats; compression algorithms; or combinations thereof.
FIGS. 5A-5C are a flowchart that describes a routine for accessing media content according to an embodiment of the present invention.
FIG. 8A is a block diagram of a media transcoding system according to another embodiment of the present invention.
FIG. 8B is a block diagram of an example media transcoding engine according to another embodiment of the present invention.
FIG. 9A is a block diagram of a media transcoding system according to another embodiment of the present invention.
FIG. 9B is a block diagram of an example media transcoding engine according to another embodiment of the present invention.
FIG. 10 is a block diagram of an example transcoding service according to another embodiment of the present invention.
FIG. 11 is a table illustrating a steady cache transfer balancing system and method according to another embodiment of the present invention.
What follows is a cite list of references each of which is, in addition to that which is described as background of the invention, the abstract and the invention summary, hereby incorporated by reference into the detailed description of the preferred embodiments below, as disclosing alternative embodiments of elements or features of the preferred embodiments not otherwise set forth in detail below. A single one or a combination of two or more of these references may be consulted to obtain a variation of the preferred embodiments described in the detailed description herein:
U.S. Pat. No. 3,394,352, issued July, 1968; U.S. Pat. No. 3,937,881, issued February, 1976; U.S. Pat. No. 5,657,015, issued August; 1997; U.S. Pat. No. 6,407,680, issued June, 2002; U.S. Pat. No. 6,466,939, issued Oct. 15, 2002; U.S. Pat. No. 5,928,330, issued Jul. 27, 1999; U.S. Pat. No. 6,317,134, issued Nov. 13, 2001; and U.S. Pat. No. 6,070,002, issued May 30, 2000; and
United States published applications no. 2002/0093507, published May 15, 2003, 2002/0099858, published Jul. 25, 2002, and 2002/0099770, published Jul. 25, 2002, 2002/0091800, published Jul. 11, 2002; and
U.S. patent application Ser. No. 10/076,090, filed Feb. 2, 2002; and
Chapman, Nigel et al., �Digital Multimedia,� John Wiley & Sons, Ltd., Copyright 2000 (Entire book provided); and
Murray, James D. et al., �Encyclopedia of Graphics File Formats: Second Edition,� O'Reilly & Associates, Inc., Copyright 1994, 1996 (Entire book provided).
A system and method in accordance with preferred embodiments includes systems and method for the on-demand transcoding of media information from a variety of source types into a variety of destination types. According to a preferred embodiment, in a system comprising a plurality of transcoders for transcoding from a plurality of source types to a plurality of destination types, a method is provided for transcoding media content from a source type to a destination type. The method includes receiving a transcoding request for the media content, fetching the media content, and sending the media content to a selected one of the plurality of transcoders. The transcoder is selected based on the source type and the destination type. The transcoder transcodes the media content from the source type to the destination type, thereby generating transcoded media content. The transcoded media content is then transmitted.
A media transcoding system in accordance with a preferred embodiment transcodes media content from a source type to a destination type. The transcoding system includes a network interface, a resource manager, a transmitting server, a streaming server, and a plurality of transcoders for transcoding from a plurality of source types to a plurality of destination types. The network interface receives a transcoding request for media content. The resource manager commands the transmitting server to fetch the media content. The resource manager further selects one of the plurality of transcoders based on the source type and destination type, and commands the selected transcoder to transcode the media content from the source type to the destination type to generate transcoded media content. The resource manager also commands the streaming server to transmit the transcoded media content.
In another embodiment, a method is provided for transcoding media content from a source type to a destination type, comprising the steps of receiving a transcoding request for the media content, fetching the media content, selecting one of a plurality of transcoders for transcoding from a plurality of source types to a plurality of destination types based on the source type and the destination type, sending the media content to the selected transcoder, transcoding the media content from the source type to the destination type, thereby generating a transcoded media file, and transmitting the transcoded media content.
In further embodiments, the media content may comprise either a file of digital information or a stream of digital data. In further embodiments, the media content is fetched, sent and transcoded as a stream of digital data, the transcoded media file is transmitted as a stream of digital data, and the fetching, sending, transcoding and transmitting are all performed in a pipelined fashion.
In further embodiments, the transcoding request is received over the Internet and the transcoded media content is transmitted over the Internet.
In further embodiments, the media content type is defined according to at least one publishing variable, wherein the publishing variable may be the file format of the media content, the bit-rate of the media content, the compression algorithm according to which the media content is stored, the communication protocol according to which the media content is transferred, or the physical medium on which the media content is stored, and the step of transcoding the media content comprises converting the publishing variable of the media content from a source publishing variable type to a destination publishing variable type.
A media transcoding system in accordance with a preferred embodiment transcodes media content from a source type to a destination type. The media transcoding system includes a network interface, a resource manager, a transmitting server, a streaming server; and a plurality of transcoders for transcoding from a plurality of source types to a plurality of destination types. The network interface is adapted to receive a transcoding request for the media content. The resource manager is adapted to respond to the transcoding request and, in response to the transcoding request, to command the transcoding server to fetch the media content, to select one of the plurality of transcoders based on the source type and the destination type, to command the selected transcoder to transcode the media content from the source type to the destination type, thereby generating transcoded media content, and to command the streaming server to transmit the transcoded media content.
In further embodiments, the media content may comprise a file of digital information or a stream of digital data.
In further embodiments, the transmitting server is adapted to fetch the media content as a data stream, the selected transcoder is adapted to transcode the media content as a data stream, and the streaming server is adapted to transmit the transcoded media content as a data stream. The resource manager manages the operation of the transmitting server, the selected transcoder, and the streaming server so that the fetching, transcoding and transmitting occur in a pipelined fashion.
In further embodiments, the network interface is adapted to receive the transcoding request over the Internet and the streaming server is adapted to transmit the transcoded media content over the Internet.
In further embodiments, the media content type is defined according to at least one publishing variable, wherein the publishing variable may be the file format of the media content, the bit-rate of the media content, the compression algorithm according to which the media content is stored, the communication protocol according to which the media content is transferred, or the physical medium on which the media content is stored, and the selected transcoder is adapted to convert the publishing variable of the media content from a source publishing variable type to a destination publishing variable type.
Systems and methods in accordance with preferred embodiments are advantageous in that they permit the transcoding of media content on demand from a single one or a variety of source types to a variety of destination types in a manner that is transparent to the content provider and the user. Systems and methods in accordance with preferred embodiments are also advantageous in that they permit the transcoding of media content stored in files on demand from a single source type or a variety of source types to a variety of destination types in a manner that is transparent to the content provider and the user.
Another advantage of systems and methods in accordance with preferred embodiments is that they permit the transcoding of live (i.e., streaming) media content on demand from a single source type to a variety of destination types in a manner that is transparent to the content provider and the user.
Another benefit of systems and methods in accordance with preferred embodiments is that they permit a user to play various types of media content regardless of the media player employed by the user.
Yet another benefit of systems and methods in accordance with preferred embodiments is that they obviate the need for a user to download a newer media player or upgrade an existing media player in order to access desired media content.
A further advantage of systems and methods in accordance with preferred embodiments is that they permit a content provider to provide original media content in a single source type to a large number of users using diverse media players that accept different media content types.
A further benefit of systems and methods in accordance with preferred embodiments is that they expedite the publishing process for media content providers by allowing them to publish media content without first employing off-line encoding services. Systems and methods in accordance with preferred embodiments minimize the time-to-market for the publication of media content.
Another benefit of systems and methods in accordance with preferred embodiments is that they create a lower barrier of entry to media publication by permitting content providers to out-source necessary transcoding tasks and to avoid investment in transcoding servers and other equipment necessary for transcoding.
Yet another benefit of systems and methods in accordance with preferred embodiments is that they permit content providers to deliver media content to users with media players incapable of accommodating the source type of the original media content.
A further advantage of systems and methods in accordance with preferred embodiments is that they may defer the transcoding of media content until the content is demanded by a user for a specific media player. Accordingly, content providers can avoid an unnecessary investment in the transcoding of original media content to types not requested by users.
Additional features and advantages of systems and methods in accordance with preferred embodiments will be set forth in the description that follows, and in part will be apparent from the description, or may be learned by practice of the systems and method described. Other advantages will be realized and attained by the systems and methods particularly pointed out in the written description and claims hereof as well as the appended drawings.
The systems and methods of the preferred embodiments will now be described in further detail with reference to FIGS. 1-11.
FIG. 1 is a block diagram representing an example operating environment 100 of a transcoding system in accordance with a preferred embodiment. It should be understood that the example operating environment 100 is shown for illustrative purposes only and does not limit the invention. Other implementations of the operating environment described herein will be apparent to persons skilled in the relevant art(s) based on the teachings contained herein.
Referring to FIG. 1, example operating environment 100 includes a viewer client 102, a content provider client 104, a media transcoding engine 106, and a network 108. Only one viewer client 102 and content provider client 104 is shown for clarity. In general, any number of these components can be included in a transcoding system in accordance with a preferred embodiment.
The viewer client 102, the content provider client 104 and the media transcoding engine 106 are all connected via a network 108. The network 108 connects all the components of the system illustrated at FIG. 1, and can be any type of computer network or combination of networks including, but not limited to, circuit switched and/or packet switched networks, as well as wireless networks. In one example, the network 108 includes the Internet.
C. Media Transcoding Engine
Each of the components of the media transcoding engine 106 will now be described. The content provider Web server interface 204 is a network interface between the media transcoding engine 106 and the content provider client 104 that permits a content provider to publish media content. The content provider Web server interface 204 receives and processes a request to publish media content from the content provider client 104. In embodiments, the content provider Web server interface 204 also receives the media content itself from the content provider client 104 for archival purposes within the media transcoding engine 106. Alternately, the content provider Web server interface 204 receives location and access information from the content provider client 104, which permits the media transcoding engine 106 to locate and fetch the media content at a later time for transcoding and/or delivery of the media content to a viewer.
The methods by which media content is published and accessed according to preferred embodiments will now be described.
D. Publishing of Media Content According to Preferred Embodiments
In preferred embodiments, media content may be published either as an encoded file or delivered as a continuous stream of data, as in the case of a live audio or video feed.
In embodiments, the address and source information comprises a URL (Uniform Resource Locator) that points the viewer client 102 to the media transcoding engine 106 and provides information to the media transcoding engine 106 about the source of the requested media content. Content providers can post the URL as a link on their web-site, thereby allowing viewers who visit their web-site to click on the URL in order to access the media content via the media transcoding engine 106. After step 316, the flowchart 300 ends.
FIG. 4 depicts a flowchart 400 of a method by which media content is published according to preferred embodiments wherein the media content is delivered as a continuous stream of data, as in the case of a live audio or video feed. The invention, however, is not limited to the description provided by the flowchart 400. Rather, it will be apparent to persons skilled in the art from the teachings herein that other functional flows are within the scope and spirit of the present invention.
At step 410, after receiving the streaming media content, the content provider Web server interface 204 provides the content provider client 104 with address and source information. The address information points viewers who request the content provider's media content to the media transcoding engine 106 and the source information provides information concerning the source of the requested media content. In embodiments, the address and source information comprises a URL (Uniform Resource Locator) that points the viewer client 102 to the media transcoding engine 106 and provides information to the media transcoding engine 106 about the source of the requested media content. Content providers can post the URL as a link on their web-site, thereby allowing viewers who visit their web-site to click on the URL in order to access the media content via the media transcoding engine 106. After step 410, the flowchart 400 ends.
Methods by which published media content is accessed by a viewer according to preferred embodiments will now be described.
E. Accessing Media Content According to Embodiments
As described herein, systems and methods in accordance with preferred embodiments perform the transcoding of media content on demand, in response to a viewer's request to access media content. Additionally, preferred embodiments essentially perform the transcoding of media content in �real-time� after the publication of the media content, as part of the media content delivery process. In particular embodiments, the delay between the submission of a request to view media content to the media transcoding engine 106 and the delivery of the media content to the viewer client 102 will be approximately thirty seconds or less. However, the invention is not limited to a specific delivery time and can encompass a variety of delivery times greater than or less than thirty seconds.
FIGS. 5A-5C depict a flowchart 500 of a method by which media content is accessed by a viewer according to embodiments of the present invention. The invention, however, is not limited to the description provided by the flowchart 500. Rather, it will be apparent to persons skilled in the art from the teachings herein that other functional flows are within the scope and the spirit of the present invention.
In step 502 of FIG. 5A, the viewer sends a request to access media content via the viewer client 102 to the viewer Web server interface 202 within the media transcoding engine 106. In embodiments, the request is an HTTP request generated by the viewer client 102 when the viewer clicks on a URL on the content provider's web-site. As discussed above, the URL link, which may be provided by the media transcoding engine 106 to the content provider during the media content publishing process, contains address information and source information that points the viewer client 102 to the media transcoding engine 106 and provides information to the media transcoding engine 106 about the source of the requested media content. After the viewer Web server interface 202 receives the request, it forwards it to the task manager 206.
In accordance with a preferred embodiment, the resource manager 208 oversees tasks after they are assigned to make sure that they are properly executed. The resource manager 208 oversees the execution of assigned tasks by maintaining a list of all assigned tasks in the database 210 and periodically communicating with the slave monitor of each machine running a given task in order to determine the status of the task.
In an alternate embodiment, the slave monitors only initiate tasks received from the resource manager 208, and the tasks themselves report directly to the resource manager 208 rather than to the slave monitors.
In a further embodiment, individual tasks are each assigned a priority. The resource manager 208 monitors new tasks and when the priority of an existing task is lower than that of a new task that needs to be assigned, the resource manager 208 will instruct the existing task to kill itself to accommodate the new higher-priority task. Alternately, the slave monitor can kill the existing task. An example of a low priority task includes the transcoding of media content for a viewer after the viewer has stopped viewing the requested content.
At step 532, a determination is made whether auto source type detection in accordance with a preferred embodiment is turned on. The system may be permanently set to automatic source type detection on or to automatic source type detection off or it may be selectively toggled. If the automatic source type detection is permanently on or off, then the determination is not necessary and the method can move to the corresponding step 534 or 536. In the method illustrated at FIG. 5B, after the determination is made, then the method move to the next corresponding step. That is, if automatic source type detection is turned on, then at step 534, source type information is automatically fetched from source server or client. An advantage is that this is quicker and simpler for the user. Alternatively, if automatic source type detection is turned off, then at step 536, input is requested through a source user interface from a user who is demanding the content. An advantage is that a user with multiple source types for the content can choose between them, or if the source has a firewall such that the source type cannot be readily detected with user input.
At step 538, a determination is made whether auto destination type detection in accordance with a preferred embodiment is turned on. The system may be permanently set to automatic destination type detection on or to automatic destination type detection off or it may be selectively toggled. If the automatic destination type detection is permanently on or off, then the determination is not necessary and the method can move to the corresponding step 540 or 542. In the method illustrated at FIG. 5B, after the determination is made, then the method move to the next corresponding step. That is, if automatic destination type detection is turned on, then at step 540, destination type information is automatically fetched from destination server or client. An advantage is that this is quicker and simpler for the user. Alternatively, if automatic destination type detection is turned off, then at step 542, input is requested through a destination user interface from a user who is demanding the content. An advantage is that a user with multiple destination types for the content can choose between them, or if the destination has a firewall such that the destination type cannot be readily detected with user input.
At steps 516-526 of FIG. 5C, the machines within the machine farm 216 perform the steps necessary to deliver the requested media content in accordance with the assigned tasks received from the resource manager 208. In embodiments of the present invention, the delivery of media content is a pipelined process in which the fetching, transcoding and streaming of different portions of the same media content stream may occur simultaneously. The resource manager 208 arranges for the pipelining of these steps through resource allocation within the media transcoding engine 106. The pipelining of these steps results in a faster delivery time for requested media by the media transcoding engine 106.
If, however, the requested media content does not reside in the transcoded cache 212 transcoded into the appropriate destination type, then one of the transmitter servers 220 within the machine farm 216 begins fetching the requested media content as a data stream from the source location as shown at step 518. As discussed above in regard to FIGS. 3 and 4, in embodiments of the invention, the requested media content can initially either reside within the master archive 214 within the media transcoding engine 106, in an archive external to the media transcoding engine 106, or be received as a streaming feed directly from the content provider client 104. Where the requested media content resides within the master archive 214, one of the transmitter servers 220 fetches the requested media content over the internal network of the media transcoding engine 106.
As shown in step 520, after the transmitter server begins fetching the requested media content, if the source type is the same as the destination type (e.g., the source format and bit rate is the same as the destination format and bit-rate), then no transcoding is necessary and the media content is transmitted to the streaming servers 222 as soon it is fetched. The streaming servers 222 then stream the content to the viewer client 102 at step 524, as described below. However, if the source type is not the same as the destination type, then one of the transcoding servers 218 within the machine farm 216 will transcode the media content from the source type to the destination type as shown in step 522. In accordance with the discussion in regard to step 512, above, the resource manager 208 assigns the transcoding task to a transcoder server that runs the necessary transcoder software for performing the appropriate conversion of publishing variables. In embodiments, the transcoding is carried out using one of a variety of well-known methods and for converting media content of one type to another, including conventional codec routines for transcoding media content. Further description of transcoding operation and examples are provided below. In embodiments, after the transcoding is complete, a copy of the transcoded media content is temporarily stored in the transcoded cache 212, permitting expedited delivery of the media content when subsequent requests for the same media content transcoded into the same destination type are received by the media transcoding engine 106.
At step 526, the viewer client 102 receives the streaming media content from either the streaming server or the proxy server. At this point, the viewer client 102 plays the media content in accordance with the destination type associated with the media player resident on the viewer client 102. In alternate embodiments of the present invention, the media content may be received and stored as a downloaded file on the viewer client 102 for playing at a later time, or for transfer to an alternate media playing device. After step 526, the flowchart 500 ends.
TABLE 1 Example File Formats Format Type ADOBE ILLUSTRATOR Metafile ADOBE PHOTOSHOP Bitmap ATARI ST GRAPHICS FORMATS Bitmap and Animation AUTOCAD DXF Vector AUTODESK 3D STUDIO Scene Description BDF Bitmap BRL-CAD Other BUFR Other CALS RASTER Bitmap CGM Metafile CMU FORMATS Multimedia DKB Scene Description DORE RASTER FILE FORMAT Bitmap DPX Bitmap DR. HALO Bitmap DVM MOVIE Animation ENCAPSULATED POSTSCRIPT Metafile (page description language) FACESAVER Bitmap FAX FORMATS Bitmap FITS Other FLI Animation GEM RASTER Bitmap GEM VDI Metafile GIF Bitmap GRASP Animation GRIB Other HARVARD GRAPHICS Metafile HIERARCHICAL DATA FORMAT Metafile IFF Bitmap IGES Other INSET PIX Bitmap INTEL DVI Multimedia JPEG FILE INTERCHANGE Bitmap FORMAT KODAK PHOTO CD Bitmap KODAK YCC Bitmap LOTUS DIF Vector LOTUS PIC Vector LUMENA PAINT Bitmap MACINTOSH PAINT Bitmap MACINTOSH PICT Metafile MICROSOFT PAINT Bitmap MICROSOFT RIFF Multimedia MICROSOFT RTF Metafile MICROSOFT SYLK Vector MICROSOFT WINDOWS Bitmap BITMAP MICROSOFT WINDOWS Metafile METAFILE MIFF Bitmap MPEG Other MTV Scene Description NAPLPS Metafile NFF Scene Description OFF Scene Description OS/2 BITMAP Bitmap P3D Scene Description PBM., PGM., PNM., and PPM. Bitmap PCX Bitmap PDS Other PICTOR PC PAINT Bitmap PIXAR RIB Scene Description PLOT-10 Vector PNG Bitmap POV Vector PRESENTATION MANAGER Metafile METAFILE PRT Scene Description QRT Scene Description QUICK TIME Other RADIANCE Scene Description RAYSHADE Scene Description RIX Bitmap RTRACE Scene Description SAF Bitmap and other SENSE8 NFF Scene Description SGI IMAGE FILE FORMAT Bitmap SGI INVENTOR Scene Description SGI YAODL Scene Description SCO Vector SPIFF Bitmap SUN ICON Bitmap SUN RASTER Bitmap TDDD Vector and Animation TGA Bitmap TIFF Bitmap TTDDD Vector and Animation URAY Scene Description UTAH RLE Bitmap VICAR2 Bitmap VIFF Bitmap VIS-5D Vector VIVID AND BOB Scene Description WAVEFRONT OBJ Vector WAVEFRONT RLA Bitmap WORDPERFECT GRAPHICS Metafile METAFILE XBM Bitmap XPM Bitmap XWD Bitmap ZBR Metafile See, Murray and vanRyper, pp. 12-26. These examples are illustrative and not intended to limit the present invention. Other file formats (now known or developed in the future) can be used as would be apparent to a person skilled in the art given this description.
Publishing variables for video data include the width and height of the video image in pixels as well as the frame rate of the video. Depending on the bit-rate requirements and the nature of the data, different settings may be necessary in order to ensure the best picture quality. For example, some video may be better viewed at 15 frames per second at 160.times.120 pixels, while some others may be better viewed at 5 frames per second at 320.times.240 pixels, even at the same bit-rate. Where the bit-rate is 56K bps, picture quality becomes very limited, and it is almost never optimal to deliver video in 640.times.480 pixel resolution. Yet another publishing variable for video data is the number of bits per component.
TABLE 5 Publishing Variables Source Type Destination Type physical medium Disk Wireless Network communication protocol(s) File I/O HTTP container format MPEG1 MP3 encoding MPEG1 audio only - MP3 bit rate 1.5 Mbps 16 kbps These examples are illustrative and not intended to limit the present invention. Other types of on demand transcoding operations that are known now or developed in the future can be used as would be apparent to a person skilled in the art given this description.
FIG. 8A is a block diagram of a media transcoding system in accordance with another preferred embodiment. The system of FIG. 8A includes the viewer client 102, content provided client 104, and network 108 as described above with reference to FIG. 1 and that above description is incorporated by reference and not repeated here. FIG. 8A further includes a clip and/or trailer module 110. FIG. 8A also illustrates a media transcoding engine 806 that is a modified version of the media transcoding engine 106 described above with reference to FIGS. 1-2. The media transcoding engine 806 will be described in more detail with reference to FIG. 8B. The clip and/or trailer module may be included with components of other embodiments described herein such as that described with reference to FIG. 9A.
A clip is an overlay or substitute image portion that is meant to be added to or substitute for, respectively, a sub-group of pixels of at least some of the frames of the transcoded media that is delivered to the destination. A television station or other corporation or business, e.g., may insert its logo or trademark as advertising in a corner of the images that make up the transcoded media. A clip can include a strip, block or blob of arbitrary shape, a frame around the images or otherwise, and a clip may change or remain the same over the frames within which it is inserted. Multiple clips may be inserted at the same time and/or consecutively.
A trailer is a group of frames that are inserted between frames of the transcoded media. They are meant to be additional frames that do not overlay or substitute for frames or images of the transcoded content. Commercials, public service announcements, �editor's cut� commentaries about the transcoded media, descriptions of differences between the transcoded content and other previous or contemporaneous versions of it, or �bloopers�, e.g., may be types of trailers that may be inserted.
The content provider client 104 may send the clip or trailer along with the content alternatively to the separate communication channels illustrated at FIG. 8A. Moreover, the clip and/or trailer may be automatically sent or sent upon actions made by the content provider 104, or may be retrieved by the media transcoding engine 806. The media transcoding engine 806 may generate or retrieve from a third party source the clip and/or trailer upon request by the content provider 104.
FIG. 8B is a block diagram of another example media transcoding engine 806 according to the embodiment of FIG. 8A. The media transcoding engine 806 has many similar features to the engine 106 described above with reference to FIG. 2 and that description is incorporated by reference and not repeated here. Also, the features of FIG. 8B may be included with components of other embodiments described herein such as that described with reference to FIG. 9B. A clip and/or trailer interface 810 may be separate or integrated with the content provider web server interface 204 of the engine illustrated at FIG. 8B.
The clip and/or trailer interface 810 is preferably configured to receive requests to integrate a clip and/or trailer with media content. In this case, e.g., the clip and/or trailer may be in a known database associated with the engine 806 or may have to be generated by the engine or a system in communication with the engine 806. The clip and/or trailer is preferably also configured such that a clip and/or trailer may be provided, or the location of a clip and/or trailer may be provided at a particular URL, clip/trailer database, etc. The task manager 206 may communicate with the clip and/or trailer interface 810 of FIG. 8B in similar fashion as it does with the content provider web server interface 204.
A clip and/or trailer module 810 may include archived clips and/or trailers or information as to locations of clip and/or trailers or components that may be assembled into clips and/or trailers or one or more clip or trailer generating engines, etc. The clip and/or trailer module 810 may interface with the resource manager 208 and/or machine farm 216 in similar fashion as the master archive 214. The clip and/or trailer may be overlayed, substituted, added or otherwise into transcoded media content before, during or after the transcoding is performed.
FIG. 9A is a block diagram of a media transcoding system according to another preferred embodiment. In this embodiment, transcoded media content may be downloaded to a client or streamed for viewing by the client as described above with reference to FIG. 1, and the description with reference to FIG. 1 is incorporated by reference and not repeated here. The viewing of the streaming media is typically such that a destination user may view the content once at any time or in a range of times or at one of a selection of times or at a particular time. However, the destination user typically has no greater control over the transcoded content. The transcoded content is streamed from the streaming server 222 of FIG. 2 and the destination user browses or views that content with a particular viewer for which the content has been particularly transcoded. In the download variation, the transcoded media content is downloaded to the destination which can save it into its memory. Then, the time of viewing, the number of times of the viewing, which computer it is viewed on, etc., may be more flexibly decided by source and destinations users and/or component modules.
The downloading may be fully performed prior to viewing or it may be progressive. That is, a portion of the transcoded media content may be downloaded and then viewed, while a second portion of the media content is being downloaded. That second portion would then be viewed after the first portion is viewed and while a third portion is being downloaded, and so on. Where the term downloading is used herein, it is meant to include both traditional full downloading prior to viewing and progressive downloading.
FIG. 9B is a block diagram of an example media transcoding engine 906 according to FIG. 9A and another preferred embodiment. The components of FIGS. 2 and 8B are preferably and alternatively utilized with the engine 906 of FIG. 9B, and so their descriptions are incorporated by reference and not repeated here. Within the machine farm 916 are download servers 922 in addition to or substituting for the streaming servers 222 of FIG. 2. Transcoded media content may be downloaded to the download and/or viewer client 902 of FIG. 9A.
A conditional access module 924 is preferably included with the media transcoding engine 906. The conditional access module 924, or an interface separately associated therewith, may receive a conditional access request and/or conditional access information that may be programmed with the transcoded media content to be downloaded. With conditional access restraint built-in, even though the transcoded media content is downloaded to the destination client site, the freedom of the destination client will still be constrained according to the conditional access limitations that otherwise would not exist technologically with the downloaded media content. Such conditional access restrictions are easily controlled by streaming servers 222 of the embodiment of FIG. 2, and thus the streaming content does not need conditional access controls built-in in order that access be constrained. Examples of conditional access constraints may include number of viewings, range of viewing times, selection among viewing times, etc., as may be understood by those skilled in the art or as may be desired or agreed upon by the source, third party and/or destination entities involved.
With downloading capability, publishers may preview transcoded media content. Unlimited access provisions may also be provided to end-users who may re-save, re-view or move the transcoded media content after download. Preferential redeployment by end-users subject to publisher-initiated constraints is possible.
FIG. 10 is a block diagram of an example transcoding service according to another preferred embodiment. In this embodiment, a customer 1002 may desire transcoded media content in addition to the bandwidth needed or desired to transmit it. Alternatively, the customer 1002 may already have arrangements with a bandwidth provider 1004 (e.g., Akamai Corp.) and only desires or needs the transcoded media content from the content transcoding service 1006. Advantageously, transcoded media content may be provided with necessary or desired bandwidth provided from bandwidth provider 1004 through the transcoding service 1006, or the customer 1002 may separately attain the transcoded media content from the transcoding service 1006 and the bandwidth from the bandwidth provider 1004.
FIG. 11 is a table illustrating a steady cache transfer balancing system and method according to another preferred embodiment. In this embodiment, it is understood that transcoded media content is not always demanded steadily and instead has on-peak and off-peak demand periods that may occur daily, weekly, monthly and/or seasonally. However, it is not efficient to transcode media content always at the time of demand, because then the infrastructure involved in transcoding during on-peak periods is sitting idle during off-peak periods. The steady cache transfer balancing according to a preferred embodiment and referring to FIG. 11 provides that efficiency so that infrastructure can be reduced while on-peak demand may be still met. Referring to FIG. 11, off-peak caching operations preferably include caching and steaming requested content, pre-caching anticipated and/or pre-order content, and storing pre-cache records into pre-cache archive. These of-peak activities permit the on-peak activities to include caching and streaming requested content, pulling records the pre-cache archive and streaming the pre-cache records. Note that the records may be streamed or downloaded according to alternative embodiments described elsewhere herein. In this embodiment, less caching is required at on-peak times than in a system wherein caching is performed only at the times that requests are received.
G. Alternate Embodiments
Patent CitationsCited PatentFiling datePublication dateApplicantTitleUS3394352Jul 22, 1965Jul 23, 1968Electronic Image Systems CorpMethod of and apparatus for code communicationUS3913093Mar 4, 1974Oct 14, 1975Scelt Centro Studi E Lab TelecMethod of and means for transcoding binary pulsesUS3937881Jun 18, 1974Feb 10, 1976Thomson-CsfMethod of and system for transcoding binary signals with reduced changeover rateUS5526397Apr 20, 1992Jun 11, 1996Hughes ElectronicsFor a radio transceiver stationUS5657015Oct 18, 1995Aug 12, 1997Kokusai Denshin Denwa Kabushiki KaishaMethod and apparatus of rate conversion for coded video dataUS5796829Aug 17, 1995Aug 18, 1998The Titan CorporationConditional access systemUS5818933Jul 5, 1996Oct 6, 1998Mitsubishi Denki Kabushiki KaishaCopyright control systemUS5838927Nov 22, 1996Nov 17, 1998Webtv NetworksMethod and apparatus for compressing a continuous, indistinct data streamUS5848134Jan 27, 1997Dec 8, 1998Sony CorporationMethod and apparatus for real-time information processing in a multi-media systemUS5920354Jan 13, 1998Jul 6, 1999Thomson Consumer ElectronicsHDTV to NTSC transcoder systemUS5949876Jan 8, 1997Sep 7, 1999Intertrust Technologies CorporationSystems and methods for secure transaction management and electronic rights protectionUS5991795Apr 18, 1997Nov 23, 1999Emware, Inc.Communication system and methods using dynamic expansion for computer networksUS6058107Apr 8, 1998May 2, 2000Motorola, Inc.Method for updating forward power control in a communication systemUS6058143Feb 20, 1998May 2, 2000Thomson Licensing S.A.Motion vector extrapolation for transcoding video sequencesUS6122290Feb 17, 1998Sep 19, 2000Nec CorporationMultimedia conversion apparatus and conversion systemUS6215824May 1, 1998Apr 10, 2001Boom CorporationTranscoding method for digital video networkingUS6247050Sep 12, 1997Jun 12, 2001Intel CorporationSystem for collecting and displaying performance improvement information for a computerUS6339450Sep 21, 1999Jan 15, 2002At&T CorpError resilient transcoding for video over wireless channelsUS6407680 *Dec 22, 2000Jun 18, 2002Generic Media, Inc.Distributed on-demand media transcoding system and methodUS6421733Sep 8, 1997Jul 16, 2002Intel CorporationSystem for dynamically transcoding data transmitted between computersUS6593860May 10, 2002Jul 15, 2003Generic Media, Inc.Distributed on-demand media transcoding system and methodUS6888477 *Jun 20, 2003May 3, 2005Sony CorporationDistributed on-demand media transcoding system and methodUS7242324 *Aug 20, 2003Jul 10, 2007Sony CorporationDistributed on-demand media transcoding system and methodUS7355531 *Jul 9, 2007Apr 8, 2008Sony CorporationDistributed on-demand media transcoding system and methodEP1026872A1Jan 19, 2000Aug 9, 2000Lucent Technologies Inc.Dynamically configurable system and method for transcoding streaming data and telecommunications infrastructure incorporating the sameJP2000165436A Title not availableJPH0916487A Title not availableJPH10326244A Title not availableJPH11134227A Title not availableJPH11296426A Title not availableWO1998043177A1Mar 19, 1998Oct 1, 1998Intel CorpSystem for dynamically transcoding data transmitted between computers* Cited by examinerNon-Patent CitationsReference1"Broadcast Help," [retrieved Aug. 20, 2002] at http://help.yahoo.com/help/us/bcst/, 2 pages.2"BrowserHawk features and benefits," [retrieved Jan. 23, 2004] at http://www.cyscape.com/products/bhawk/features.asp, 6 pages.3"Larry Bouthillier's Streaming Media Player Detection Tutorial-Client-side code," [retrieved Sep. 20, 2002] at http://www.emediacommunications.biz/sm5/sm5-clientcode.html, 4 pages.4"Streaming Media Player/Connection Speed Detection Tutorial," [retrieved Sep. 20, 2002] at http://www.emediacommunications.biz/sm5/index.html, 2 pages.5"Yahoo! Broadcast," [retrieved Aug. 20, 2002] at http://broadcast.yahoo.com/home.html, 3 pages.6"Larry Bouthillier's Streaming Media Player Detection Tutorial�Client-side code," [retrieved Sep. 20, 2002] at http://www.emediacommunications.biz/sm5/sm5�clientcode.html, 4 pages.7A flowchart, [retrieved Sep. 20, 2002] at http://www.emediacommunications.biz/sm5/playDetectFlow.gif, 1 page.8A flowchart, [retrieved Sep. 20, 2002] at http://www.emediacommunications.biz/sm5/playerDataObjectUML.gif, 1 page.9Chapman, Nigel et al., "Digital Multimedia," John Wiley & Sons, Ltd., Copyright 2000.10Katashi Nagao, Contents are converted appropriately in conformity to every apparatus, Nikkei Electronics, No. 770, Nikkei BP, May 22, 2000, 165-176.11Murray, James D. et al., "Encyclopedia of Graphics File Formats: Second Edition," O'Reilly & Associates, Inc., Copyright 1994, 1996.12National Technical Report, vol. 42, No. 5 (Oct. 18, 1996), pp. 53-59, "Internet, Fax, Telephone Connection System". (English translation).13Notice of Rejection in Japan.14Rakesh Mohan et al., Content Adaptation Framework: Bringing the Internet to Information Appliances (IBM), Multimedia Services and Technology Issues, Global Telecommunications Conference-Globecom '99, pp. 2015-2021.15Rakesh Mohan et al., Content Adaptation Framework: Bringing the Internet to Information Appliances (IBM), Multimedia Services and Technology Issues, Global Telecommunications Conference�Globecom '99, pp. 2015-2021.16Richard Han et al., Dynamic Adaptation in an Image Transcoding Proxy for Mobile Web Browsing (IBM), IEEE Personal Communications, Dec. 1998, pp. 8-17.Referenced byCiting PatentFiling datePublication dateApplicantTitleUS20120179833 *Jun 1, 2011Jul 12, 2012Onmobile Global LimitedMethod and apparatus for adapting media* Cited by examinerClassifications U.S. Classification341/51, 375/E07.198, 709/219, 709/231International ClassificationH03M7/34, G06F13/00, G06F12/00, H04N7/26, H04N21/24, H04N21/231, H04N21/2343, H04N7/173, H04N21/462, H04N21/2743, H04N21/6379, H04N21/81, H04N21/2662, H04N21/61, H04N21/236Cooperative ClassificationH04N19/40, H04N21/8193, H04N21/6125, H04N21/2662, H04N21/2405, H04N7/17318, H04N21/4622, H04N21/6379, H04N21/23113, H04N21/23106, H04N21/23439, H04N21/2408, H04N21/2743, H04N21/234309, H04L65/607, H04N21/2404European ClassificationH04N7/26T, H04N7/173B2, H04N21/24E, H04N21/24L, H04N21/6379, H04N21/231H, H04N21/2743, H04N21/462S, H04N21/231C, H04N21/2343V, H04N21/24U, H04N21/2343F, H04N21/61D3, H04N21/81W4, H04N21/2662Legal EventsDateCodeEventDescriptionOct 2, 2014FPAYFee paymentYear of fee payment: 4RotateOriginal ImageGoogle Home - Sitemap - USPTO Bulk Downloads - Privacy Policy - Terms of Service - About Google Patents - Send FeedbackData provided by IFI CLAIMS Patent Services