HK1131675B - Personal content distribution network - Google Patents
Personal content distribution network Download PDFInfo
- Publication number
- HK1131675B HK1131675B HK09110702.9A HK09110702A HK1131675B HK 1131675 B HK1131675 B HK 1131675B HK 09110702 A HK09110702 A HK 09110702A HK 1131675 B HK1131675 B HK 1131675B
- Authority
- HK
- Hong Kong
- Prior art keywords
- content
- dvr
- encoding format
- encoded
- computer
- Prior art date
Links
Abstract
Techniques for making content available to a DVR are described. Content encoded in any encoding format may be automatically transcoded, on a computer, into an encoding format that a DVR is configured to decode. The transcoded content is automatically sent over a LAN from the computer to the DVR. The DVR receives the transcoded content, stores the transcoded content, and indicates, through a user interface, that the content is available for viewing. A transcoding agent executing on the computer may automatically and periodically transcode, into an encoding format that the DVR is configured to decode, content that is contained in one folder, and move the transcoded content from that folder into another folder. The computer may send, to the DVR, instructions which cause the DVR to request transcoded content that is in the latter folder. The computer sends transcoded content to the DVR in response to such a request.
Description
Technical Field
The present invention relates to digital video recorders ("DVRs").
Background
The approaches described in this section could be pursued, but are not necessarily approaches that have been previously conceived or pursued. Accordingly, unless otherwise indicated herein, the approaches described in this section are not prior art to the claims in this application and are not admitted to be prior art by inclusion in this section.
For the consumer world, the advent of Digital Video Recorders (DVRs) has revolutionized the way viewers watch and record television programs. DVRs eliminate the complexity of VCRs and the need for videotapes. DVRs record television programs on hard disk drives that are capable of storing large numbers of television programs. Because DVRs are generally box-shaped and are often located on top of the television to which they are connected, DVRs are typically included in a broad class of devices now referred to as "set-top boxes". More like a VCR, a DVR receives as input one or more television signals from a cable or satellite antenna (or in some cases, from a broadband network connection, unlike a VCR), and also outputs the television signals to a television or other display device.
DVRs have become as common in homes as personal computers. In fact, many homes now have multiple devices, such as computers and DVRs, that are connected (physically or wirelessly) to the Local Area Networks (LANs) of these homes. Devices connected to the same LAN can send information to or receive information from other devices. The LAN may be connected to the internet. Through an internet connection to a local area network, a device connected to the LAN can send and receive information to and from other devices connected to the internet. A DVR connected to a LAN can send information to or receive information from other devices on the LAN, including computers. If the DVR-connected LAN is also connected to the Internet, the DVR is capable of sending information to and receiving information from other devices connected to the Internet.
Because some encoding formats provide better compression than others, and because of storage space limitations of DVRs, DVRs are typically configured to be able to decode only content encoded according to one format in a particular encoding group. For example, a particular type of DVR may be configured to decode only content encoded according to an MPEG-2 encoding format. Some content available on the internet may be in an encoded format that the DVR is not configured to decode. The inability of a DVR to decode content encoded according to some popular encoding formats disadvantageously limits the amount of content available on the internet that the DVR can receive.
Drawings
The present invention is illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings and in which like reference numerals refer to similar elements; wherein:
FIG. 1 is a block diagram of a system in which content available over the Internet may be delivered to a DVR in an automated manner, according to one embodiment of the invention;
FIG. 2 is a flow diagram of the steps of a technique for automatically transcoding content on behalf of a DVR, according to one embodiment of the invention;
FIGS. 3A and 3B are flow charts of the steps of a technique of the present invention for automatically sending content from a computer to a DVR connected to a LAN to which the computer is connected;
FIG. 4 is a block diagram of a system upon which embodiments of the invention may be implemented; and
FIG. 5 is a block diagram illustrating the internal structure and operation of a DVR, according to an embodiment of the invention.
Detailed Description
In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present invention. It may be evident, however, that the present invention may be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form in order to avoid unnecessarily obscuring the present invention.
The following discussion refers to the accompanying drawings in which like reference numerals refer to like parts throughout.
Specific embodiments are described herein according to the following summary:
1.0 general overview
2.0 System structural overview
3.0 exemplary techniques
4.0 decoding on demand
5.0 exemplary DVR
6.0 execution mechanisms-hardware overview
1.0 general overview
One popular type of DVR employs a variety of techniques to send content (e.g., stored television programs) to and receive content from a computer that is connected to the same LAN to which the DVR is connected. According to the technique used by this type of DVR, an application program (hereinafter simply referred to as "application") that executes on a computer. The user can instruct the application to request content stored on the DVR from the DVR. In response to receiving such a request, the DVR sends the requested content to the computer, via the LAN, where it is stored. In addition, the user instructs the DVR to request content stored on the computer from the computer. In response to receiving such a request, the application sends the requested content over the LAN to the DVR, which stores the content.
According to another technique used by this type of DVR, instructions are typically sent to the DVR over the internet by an authorized "service endpoint" that is controlled by the organization from which the DVR obtains program guide information. The instruction includes a Uniform Resource Locator (URL) selected by an authorized service endpoint. In response to receiving such an instruction from the authorized service endpoint, the DVR sends a request over the internet to the server associated with the URL. The request requests that the server send the content identified by the URL to the DVR. Typically, in response to such a request, the server sends the requested content to the DVR over the Internet. The DVR receives and stores the content. The DVR may then indicate the content for viewing to the user through a user interface that the DVR displays to the user. In this manner, an authorized service endpoint may cause a DVR to provide particular content that is available over the Internet.
According to one embodiment of the invention, content (e.g., video) encoded in any encoding format is automatically transcoded on a computer into an encoding format that a DVR is configured to decode. The transcoded content is automatically sent from the computer to the DVR over a LAN that is connected (physically or wirelessly) to both the computer and DVR. The DVR receives the transcoded content, stores the transcoded content, and indicates, via a user interface, content that is available for viewing during the DVR user's idle time. Thus, internet-available content encoded in a native format (native format) that is not understandable by the DVR may be automatically downloaded and transcoded into an encoding format that the DVR is capable of understanding, thereby increasing the amount of content that the DVR is capable of obtaining from the internet and displaying to a user.
According to one embodiment of the present invention, a transcoding agent (transcoding agent) executes on the computer discussed above. The transcoding agent automatically and periodically determines whether any content has been added to the "native format" folder on the computer hard drive since the last time the transcoding agent made such a determination. In response to determining that content has been added to the native format folder since the last time, the transcoding agent determines whether the content is encoded in an encoding format that the DVR is configured to decode. In response to determining that the content is encoded in an encoding format that the DVR is configured to decode, the transcoding agent moves the content from a native format folder on the computer's hard drive to a "DVR format" folder. Optionally, in response to determining that the content is not encoded in an encoding format that the DVR is configured to decode, as discussed above, the transcoding agent transcodes the content into an encoding format that the DVR is configured to decode, and then moves the transcoded content from the native format folder to the DVR format folder.
Content can be added to the native format folder in a variety of ways. For example, a computer user may move content from some other location on the computer's hard disk into a native format file. As another example, a program (process) executing on a computer may automatically download content from a resource on the Internet (e.g., content from a website to which the program "subscribes"). The program may be configured to store all downloaded content in a native format folder of content in a native encoded format.
According to one embodiment of the invention, the "personal delivery content" application program is also executed on the computer discussed above. The personal delivery content application automatically and periodically determines whether some content has been added to the DVR format folder since the last time the application made this determination. In response to determining that content has been added to the DVR format folder since the last time the personal delivery content application checked, the application generates instructions and sends the instructions to the DVR over the LAN. The instructions include a URL identifying the computer (e.g., by the IP address of the computer) and the content added to the DVR format folder.
According to one embodiment of the invention, in response to receiving such an instruction, the DVR places the instruction in a queue (queue). The DVR removes the instruction from the queue and requests (e.g., sends via a LAN and/or the internet via a hypertext transfer protocol (HTTP) request) content specified in the instruction URL from the specified resource in the instruction URL. The DVR receives a response (e.g., an HTTP response) that contains the particular content. As described above, the DVR stores received content.
The embodiments of the invention summarized above will be described in detail below by means of some alternative embodiments of the invention.
2.0 System structural overview
FIG. 1 shows a block diagram of a system in which Internet-available content may be delivered to a DVR in an automated fashion, according to one embodiment of the invention. The system includes DVR102 (described below with reference to fig. 5) and personal computer 104 (described below with reference to fig. 4). DVR102 communicates with personal computer 104 via LAN 106. The LAN106 is connected to the internet 108 (e.g., through a network router). A content delivery service endpoint (content delivery service end point)110 and a content server 112 are also connected to the internet 108.
In one embodiment of the invention, content delivery service endpoint 110 is configured to send instructions to DVR102 through Internet 108 and LAN 106. Content delivery server endpoint 110 may comprise, for example, a computer on which is executed a program that sends such instructions. According to one embodiment of the invention, each instruction includes a URL.
In one embodiment of the invention, the content server 112 is associated with a URL. Content server 112 may comprise an HTTP server that (i) listens for hypertext transfer protocol requests received over internet 108 and (ii) responds to these HTTP requests by sending HTTP responses over internet 108 to these HTTP request sources (sources). The HTTP request may specify the content desired by the requestor and the corresponding HTTP response may contain the desired content, which is stored on the content server 112. Such content may include, for example, encoded video content.
In one embodiment of the invention, DVR102 is configured to listen (listen for) and receive instructions sent from content delivery service endpoint 110 through Internet 108 and LAN 106. DVR102 is configured to store such instructions in a queue 122 that DVR102 holds. DVR102 is configured to remove an instruction from the front of queue 122, determine the URL specified by the instruction, and send an HTTP request for the URL-specified content to a content server or other device associated with the URL. DVR102 is configured to listen for and receive HTTP responses corresponding to such HTTP requests. DVR102 is configured to store the content that is contained in the HTTP response. DVR102 is configured to indicate, via a user interface, that the stored content is available for viewing by a user.
In one embodiment of the invention, personal computer 104 includes native format folder 116. for example, native format folder 116 may contain encoded content encoded in an encoding format that DVR102 is not configured to decode. For example, native format folder 116 may be a file system directory stored on a hard disk of personal computer 104.
In one embodiment of the present invention, personal computer 104 additionally includes a transcoding agent 118, where transcoding agent 118 periodically and automatically removes encoded content from local format folder 116, transcodes the removed content into a particular encoding format that DVR102 is configured to decode, and stores the transcoded content into DVR format folder 120. Transcoding agent 118 is configured to perform operations (actions) associated with each encoded content item that appears in native format folder 116 without being individually instructed by a human to perform the operations for each such encoded content item. Transcoding agent 118 may be, for example, a program (process) executing on personal computer 104. DVR format folder 120 may be a directory of a file system stored, for example, on a hard disk of personal computer 104.
In one embodiment of the present invention, personal computer 104 additionally includes personal content delivery application 114, where personal content delivery application 114 periodically and automatically determines whether certain content has been placed into DVR format folder 120 since the last time personal content delivery application 114 made the determination. In response to determining that such content has been placed in DVR format folder 120, personal content delivery application 114 is configured to generate an indication that contains a URL that identifies (i) an Internet Protocol (IP) address of personal computer 104 and (ii) a filename and a path associated with the content that has been placed in DVR format folder 120. Personal content delivery application 114 is configured to send such an indication to DVR102 via LAN 106.
In one embodiment of the present invention, personal computer 104 additionally includes an HTTP server (not shown) that (i) listens for hypertext transfer protocol (HTTP) requests received over LAN106 and (ii) responds to such HTTP requests by sending HTTP responses to the HTTP request sources over LAN 106. Such an HTTP server may be part of personal content delivery application 114 or a separate part from personal content delivery application 114.
In one embodiment of the invention, DVR102 is configured to process instructions received from personal content delivery application 114 in a manner similar to the way that DVR102 processes instructions received from content delivery service endpoint 110. DVR102 is configured to listen for and receive instructions sent from personal content delivery application 114 via LAN 106. DVR102 is configured to store such instructions in queue 122. DVR102 is configured to remove instructions from the front of queue 122, determine the URL specified by the instructions-in this case, the URL is associated with personal computer 104 and not another content server-and send an HTTP request to personal computer 104 for the content specified by the URL. DVR102 is configured to listen for and receive HTTP responses to such HTTP requests. DVR102 is configured to store the content contained in such HTTP responses. DVR102 is configured to indicate, via a user interface, that a user can view stored content.
3.0 exemplary techniques
According to one embodiment of the invention, personal computer 104 automatically downloads content available on an internet site (e.g., content server 112) through internet 108 and LAN 106. After personal computer 104 downloads the content, personal computer 104 automatically transcodes the content into an encoding format that DVR102 can understand. After the content is transcoded, personal computer 104 sends instructions to DVR102 that cause DVR102 to download the transcoded content from personal computer 104. DVR102 can then present the stored content to the user when the user is idle.
For example, a user may configure an application executing on personal computer 104 to "subscribe") "www.youtube.com". Because of the subscription, personal computer 104 may periodically and autonomouslyOne or more new video files are downloaded dynamically from "www.youtube.com" that have been available since the last time the web site was checked (check) by the personal computer 104. One or more downloaded files may be encoded in H.263, H.264, DivX, Real, Flash, etc. DVR102 may not understand these encoding formats. Thus, after downloading these files, personal computer 104 may automatically transcode those files that are in an encoding format that DVR102 cannot understand into an encoding format that DVR102 can understand (e.g., MPEG-2). Personal computer 104 may then instruct DVR102 to download DVR-understandable files from personal computer 104 and store the files for subsequent presentation to the DVR102 user.
FIG. 2 is a flow diagram illustrating the steps of a technique for automatically transcoding content on behalf of a DVR, according to one embodiment of the invention. The techniques described below may be performed by, for example, personal computer 104. More particularly, the techniques described below may be performed by transcoding agent 118. In various alternative embodiments of the invention, more or less steps than those shown in FIG. 2 may be performed.
In block 202, a determination is made as to whether content has been placed into a native format folder on the computer since the last time such a determination was made. For example, transcoding agent 118 may periodically and automatically determine whether content has been placed in native format folder 116 that was not in native format folder 116 the last time transcoding agent 118 made such a determination. If content has been placed in the native format folder since the last time, control passes to block 204. Otherwise, control returns to block 202.
During this time, content encoded in an encoding format that the DVR is not configured to decode may be placed into the native format file in a variety of ways. For example, another program executing on personal computer 104 (e.g., a Really Simple Syndication (RSS) subscription process) may periodically and automatically determine whether new content is already available on content server 112. In response to determining that new content is already available on the content server 112, the program may automatically download the content on the Internet 108 and LAN106 and store the content in the native format folder 116. As another example, a user of personal computer 104 may move content stored elsewhere on personal computer 104 to native format folder 116. Regardless of the mechanism by which the content is placed into native format folder 116, the content may be encoded (as a result of previous encoding) in an encoding format that DVR102 is not configured to decode, interpret, or display. For example, DVR102 may be configured to decode only motion video content (motion video content) encoded in the MPEG-2 encoding format, but the motion video content placed in native format folder 116 may be encoded in some other encoding format (e.g., H.263, H.264, DivX, Real, Flash, etc.). As another example, DVR102 may be configured to decode only audio content encoded in the MP3 encoding format, but the audio content placed in native format folder 116 may be encoded in some other encoding format (e.g., waveform Audio Format (WAV), Advanced Audio Coding (AAC), etc.). For another example, DVR102 is configured to decode only still image content encoded in a Joint Photographic Experts Group (JPEG) encoding format, but still image content placed in native format folder 116 may be in some other encoding format (e.g., Graphics Interchange Format (GIF), tagged image File Format (TIIF), etc.).
In block 204, a determination is made whether the content placed in the native format folder is encoded in a format that the DVR is configured to decode. For example, transcoding agent 118 may determine whether the content is encoded in an encoding format that DVR102 is configured to decode. If the content is encoded in a format that the DVR is not configured to decode, then control passes to block 206. Otherwise, control passes to block 208.
In block 206, the content is automatically transcoded into an encoding format that the DVR is configured to decode. For example, transcoding agent 118 may transcode the content from a native encoding format for the content to an encoding format that DVR102 is configured to decode (e.g., MPEG-2, MP3, or JPEG, depending on the media type of the content). Control passes to block 208.
In block 208, the content is moved from the native format folder to a DVR format folder, the content being encoded in an encoding format that the DVR is configured to decode. For example, transcoding agent 118 may automatically move the content from native format folder 116 to DVR format folder 120. Control returns to block 202 where content subsequently placed in the native format folder may be detected.
As a result of the foregoing techniques, content encoded in an encoding format that a DVR is capable of decoding is placed in a DVR format folder. Such content may be automatically collected from various servers available through the internet. Because the content can be transcoded automatically if necessary, the type of content that can be delivered to the DVR is not limited to content that has been encoded in an encoding format that the DVR is capable of decoding.
When the technique described above with reference to fig. 2 is performed, the techniques described below with reference to fig. 3A and 3B may be performed simultaneously. Figures 3A and 3B are flow diagrams illustrating the technical steps for automatically transferring content from a computer connected to a LAN to a DVR connected to the LAN according to one embodiment of the invention. For example, the techniques described below may be performed by the personal computer 104. More particularly, one or more of the techniques described below are performed by personal content delivery application 114. In various alternative embodiments of the invention, more or fewer steps than those shown in FIGS. 3A and 3B may be performed.
Referring first to FIG. 3A, in block 302, it is determined whether content has been placed into the DVR format folder on the computer since the last time such a determination was made. For example, personal content delivery application 114 may periodically and automatically determine whether content has been placed in DVR format folder 120 that was not in DVR format folder 120 the last time personal content delivery application 114 made such a determination. If the content has been placed in the DVR format folder since the last time, control passes to block 304. Otherwise, control returns to block 302.
During this time, DVR-decodable content can be placed in the DVR format folder. For example, transcoding agent 118 may periodically place such content in DVR format folder 120 as a result of performing the techniques described above with reference to FIG. 2.
In block 304, an instruction is generated. In one embodiment of the invention, the instruction includes a URL; in an alternative embodiment of the invention, the instruction may contain non-URL (non-URL) metadata that serves the same purpose as the URL is used. In one embodiment of the invention, the URL identifies (i) the content placed in the DVR format folder and (ii) the computer on which the content is stored. For example, if the Internet Protocol (IP) address associated with personal computer 104 is "192.168.0.1" and if the file name and directory path associated with the content is "/TiVo/CDS/content.mpg," the personal content delivery application may generate an instruction containing a URL indicating the device, path, and file "192.168.0.1/TiVo/CDS/content.mpg.
In block 306, the instruction is sent over the LAN to the DVR discussed above. For example, personal content delivery application 114 may send the instruction to DVR102 over LAN 106. The instructions are designed to cause DVR102 to request, from personal computer 104, content that is specified by a URL. Control returns to block 302 where content subsequently placed in the native format folder may be detected.
In one embodiment of the invention, DVR102 listens for and receives such instructions from content delivery service endpoint 110 and personal content delivery application 114. Each instruction identifies, via a URL, content (e.g., metadata describing characteristics of the content, such as title, category, whether the content was specifically requested by a user or requested by a DVR or service, etc.) and the source from which the content was obtained. In response to receiving such an instruction, DVR102 places the instruction into queue 122 (e.g., at the back of queue 122). One after the other, DVR102 removes the instruction from the front of queue 122. For each such instruction, DVR102 generates a request, e.g., an HTTP request, that is destined for the content source (e.g., personal computer 104 or content server 112) identified in the instruction. Each such request identifies content identified in the URL of the corresponding instruction. DVR102 sends the request to the appropriate content source via LAN106 and/or internet 108.
While the technique described above with reference to fig. 3A is performed, the technique described below with reference to fig. 3B may be performed at the same time. Referring now to FIG. 3B, in block 308, a DVR-originated request for the content is received over the LAN. For example, an HTTP server executing on personal computer 104 (which may or may not be executing in personal content delivery application 114) may receive, via LAN106, an HTTP request sent by DVR102 in response to the instructions described above. For example, the HTTP request may identify content contained in DVR format folder 120.
In block 310, in response to receiving the DVR-originated request, the content specified in the request is sent over the LAN to the DVR. For example, an HTTP server executing on personal computer 104 may generate a request containing content specified in the DVR-originated request. Typically, the content requested in the HTTP request will be placed in DVR format folder 120. The HTTP server may send an HTTP response to DVR102 over LAN 106. Control returns to block 308 where another DVR-originated request is detected.
In one embodiment of the invention, DVR102 listens for and receives HTTP responses from content server 112 and personal computer 104. In response to receiving such an HTTP response, DVR102 stores the content contained in the HTTP response on a storage device, such as a hard disk or memory, of DVR 102. DVR102 may indicate, via the user interface, that DVR102 may display on the television that the content may be viewed or played back when the user is idle. DVR102 plays the content on the television in response to user commands.
According to one embodiment of the invention, DVR102 only receives instructions of the type described above from a personal computer's "approved" list and/or content delivery service endpoint, such that DVR102 cannot "distribute" (spam) undesirable content. In one embodiment of the invention, personal content delivery application 114 plays (broadcast) its existing content over LAN106, and DVR102 receives such play and responsively adds personal computer 104 to the source list from which DVR102 will receive instructions of the type described above. Since personal content delivery application 114 can only play over a LAN, DVR102 may be confident that personal computer 104 is connected to LAN106 and, therefore, is presumably the appropriate source from which to receive instructions that cause DVR102 to request content. Techniques for securely communicating and transferring information between authorized devices are described in U.S. patent application nos. 10/220,356, 10/741,596, and 11/285,416, which are incorporated herein by reference.
In one embodiment of the invention, DVR102 is configured to actively request a list of content stored in DVR format folder 120, and to request and download user-selected content stored in DVR format folder 120, in such a way that a user of DVR102 can indicate that DVR 102. Additionally or alternatively, DVR102 may request and download selected content from DVR format folder 120 without interfering with the user and without receiving any instructions from personal content delivery application 114. For example, if content is not downloaded, DVR102 may periodically and automatically request and download the content that is contained in DVR format folder 120.
According to one embodiment of the invention, personal content delivery application 114 may be used to transfer content stored on a first DVR connected (physically or wirelessly) to LAN106 to a second DVR connected (physically or wirelessly) to LAN 106. Personal content delivery application 114 may be configured to periodically and automatically determine whether content that meets certain criteria (e.g., has not been stored on the second DVR) is stored on the first DVR. For each of the content items, personal content delivery application 114 may instruct the first DVR to send the content item to personal computer 104. Personal computer 104 may receive such content items from a first DVR and store in a native format folder associated with a second DVR. For each content item in the native format folder, transcoding agent 118 may transcode content items that are not in an encoding format that the second DVR is configured to decode into an encoding format that the second DVR is configured to decode. A transcoding agent may move the content item from a local items folder associated with the second DVR to a DVR format folder associated with the second DVR. Personal content delivery application 114 may send instructions to the second DVR that cause the second DVR to request and download from personal computer 104 content items stored in a DVR format folder associated with the second DVR. Additionally or alternatively, instead of being sent to the second DVR, the content items and/or such instructions may be sent to a mobile device, such as a cellular telephone, a Personal Digital Assistant (PDA), a portable gaming device, etc., as described above. Thus, in one embodiment of the invention, content items stored on a DVR are automatically transcoded (perhaps on a device other than the DVR) into an encoding format that the mobile device is capable of decoding, and then transmitted to the mobile device. The content items and/or instructions may be transmitted from the computer to the mobile device using any type of communications medium, such as the internet, a LAN, a data link (e.g., serial or USB), etc.
In one embodiment of the invention, the content may include video files, audio (e.g., music) files, image (e.g., picture) files, or files containing video/audio/image files and metadata for the video/audio/image files. Thus, in one embodiment of the invention, whenever content is communicated between personal computer 104, DVR102, and/or other entities, any metadata contained in the content is communicated with the content. Such metadata may include, for example, information that DVR102 may display on a television screen in response to a user request.
According to one embodiment of the invention, the content is transmitted over the LAN106 in an encrypted manner to maintain security. Transcoding agent 118 may decrypt content encrypted in a first encryption manner, transcode the decrypted content to a different encoding format, and then encrypt the content in a second encryption manner. The second encryption scheme is different from the first encryption scheme.
Although certain embodiments of the present invention have been described above with reference to dynamic video content (e.g., movies), at least some embodiments of the present invention may be used to automatically transcode other types of content, such as audio (e.g., music) content, image (e.g., picture) content, and/or other types of content encoded in some encoding format.
4.0 decoding on demand
According to one embodiment of the invention, at the time the user expresses interest in the content, and it is necessary to retrieve and "on demand" the content from a remote source at that time. For example, personal computer 104 may store a URL that references content that is not already stored on personal computer 104. For example, personal computer 104 may store a URL that references a video file stored on content server 112. However, the video file may not have been stored on the personal computer 104. In response to receiving the user input, DVR102 may retrieve the available content lists from personal computer 104-some of the content lists may not already be on (reserve) personal computer 104. DVR102 may present the list to the user, which includes the URLs or some titles associated with the URLs. With a remote control, the user can select content items from the list that are of interest to the viewer. In such a case, DVR102 would request the selected content from personal computer 104.
In the event that the selected content item corresponds to a URL of content that is not already stored on personal computer 104, personal computer 104 may provide DVR102 with a local URL that references a file on personal computer 104 (other than the URL of the content on content server 12). Personal computer 104 may instruct DVR102 to retrieve and play content associated with the local URL. At about the same time, personal computer 104 may begin downloading content from content server 112. When the content is downloaded, the content may be transcoded on the personal computer 104. The transcoded content may be stored in a file referenced by the local URL. DVR102 may obtain the transcoded content from the file in the form of a stream when the transcoded content is stored in the file. DVR102 plays the streaming content to the user when DVR102 retrieves the content, or DVR102 may store the content for later viewing.
In one embodiment of the invention, a service representative is located on personal computer 104. The service representative holds a cache of already transcoded content. The service representative may receive a request from a web browser or from an application executing on DVR102 for content that may or may not be transcoded and stored in the cache. In response to receiving such a request, the service representative determines whether the requested content has been transcoded and stored in the cache. If the service representative determines that the requested content has been transcoded and stored in the cache, the service representative instructs DVR102 to begin downloading the transcoded content from the cache. Alternatively, if the service representative determines that the requested content has not been transcoded and is stored in the cache, the service representative transcodes the content, stores the transcoded content in the cache, and instructs DVR102 to begin downloading the transcoded content. As a result, a given content item need not be transcoded more than once, even if multiple requests for the same content item are received (e.g., from different DVRs).
In one embodiment of the present invention, if the requested content is not stored on personal computer 104, the service representative begins downloading and transcoding the requested content from a remote source, which is stored on the remote source (e.g., content server 112). When the service representative downloads and transcodes the content, the service representative may store the transcoded content in the cache and/or stream the transcoded content to DVR102, DVR102 being able to play the stream as DVR102 receives the stream (i.e., even before the entire content item is received).
In one embodiment of the invention, a web page stored on content server 112 and accessible through a web browser executing on personal computer 104 contains embedded custom tags. For example, the owner or operator of content server 112 may agree to place the custom tag in a web page as part of the negotiation process for the publisher of DVR 102. When a user directs a web browser to a web page containing such a custom tab, receipt of the custom tab by the browser triggers the web browser to execute a browser plug-in applet. Through the transaction with the content server 112, the browser plug-in applet obtains a URL referencing the content associated with the web page. The URL may be obfuscated so that only the browser plug-in applet can obtain the URL. The browser plug-in applet then downloads the content on the URL from the content server 112 and stores the downloaded content in the local format folder 16, after which the content may be transcoded and used as described above.
Alternatively, the browser plug-in applet may simply store the URL on the personal computer 104 without downloading the content at the same time. The URL may be stored such that when DVR102 queries personal computer 104 to obtain available content, the URL is included in a list of available content (even if the content is not already stored on personal computer 104). Thereafter, a service representative on the personal computer 104 may download and transcode the content, the URL referring to the content "on demand" using the "on demand" technique described above.
5.0 exemplary DVR
FIG. 5 is a block diagram illustrating an example of the internal structure and operation of a DVR of an embodiment of the invention. An example of the internal structure and operation of a DVR is further described in U.S. patent No. 6,233,389, which is incorporated by reference as originally disclosed herein.
The DVR shown in fig. 5 includes an input module 501, a media switch 502, and an output module 503. The input module 501 receives any of various forms of Television (TV) input streams. For example, the TV input stream received by input module 501 may employ a National Television Standards Committee (NTSC) compliant signal or a PAL compliant broadcast signal. For another example, the TV input stream received by input module 501 may be in a digital form, such as a Digital Satellite System (DSS) compliant signal, a Digital Broadcast Service (DBS) compliant signal, or an Advanced Television Standards Committee (ATSC) compliant signal. DBS, DSS, and ATSC are based on transmissions known as the moving Picture experts group Standard-2 (MPEG-2) and MPEG-2. MPEG-2 transport is a standard for formatting a digital data stream from a television source transmitter (TV source transmitter) so that a television receiver can parse the input stream to find programs in a multiplexed signal. According to one embodiment of the invention, the input module 501 generates an MPEG stream. According to another embodiment of the invention, the input module 501 produces streams encoded with different digital signal codecs.
MPEG-2 transport multiplexing supports multiple programs within the same broadcast channel, including several video and audio contents and proprietary data. The input module 501 tunes the channel to a particular program, extracts a particular MPEG stream from the channel, and feeds the MPEG stream to the rest of the system. Analog television signals are encoded into an MPEG-like format using separate video and audio encoders so that the rest of the system is unaware of how the signal was obtained. In many standard ways, information can be modulated to simulate the Vertical Blanking Interval (VBI) of a television signal; for example, the north american teletext standard may be used to modulate information onto a particular line of an NTSC signal, and the united states Federal Communications Commission (FCC) requires a particular other line for Closed Caption (CC) and Extended Data Services (EDS). These signals are decoded by input module 501 and sent to other modules as if the signals were conveyed by an MPEG-2 private data signal.
A media switch 502 resides between a microprocessor CPU 506, a hard disk or storage device 505, and memory 504. The input stream is converted to an MPEG stream and sent to the media switch 502. Media switch 502 buffers the MPEG stream to memory 504. Then, if the DVR user is watching real-time television, media switch 502 performs two operations: media switch 502 sends the MPEG stream to output module 503 and simultaneously writes the MPEG stream to hard disk or storage device 505.
Output module 503 receives the MPEG stream as input and generates an analog television signal according to NTSC, PAL, or other television standards. The output module 503 includes an MPEG decoder, an on-screen display (OSD) generator, an analog television encoder, and audio logic. The OSD generator allows the program logic to provide graphics that can be overlaid on top of the resulting television analog signal. In addition, output module 503 can modulate the information provided by the program logic onto the VBI of the output signal in a variety of standard formats, including NABTS, CC, and EDS.
6.0 hardware overview
FIG. 4 is a block diagram that illustrates a computer system 400 upon which an embodiment of the invention may be implemented. Computer system 400 includes a bus 402 or other communication mechanism for communicating information, and a processor 404 coupled with bus 402 for processing information. Computer system 400 also includes a main memory 406, such as a Random Access Memory (RAM) or other dynamic storage device, coupled to bus 402 for storing information and instructions to be executed by processor 404. Main memory 406 also may be used for storing temporary variables or other intermediate information during execution of instructions to be executed by processor 404. Computer system 400 also includes a Read Only Memory (ROM) or other static storage device coupled to bus 402 for storing static information and instructions for processor 404. A storage device 410, such as a magnetic disk or optical disk, is provided and coupled to bus 402 for storing information and instructions.
Computer system 400 may be coupled via bus 402 to a display 412, such as a Cathode Ray Tube (CRT), for displaying information to a computer user. An input device 414, including alphanumeric and other keys, is coupled to bus 402 for communicating information and command selections to processor 404. Another type of user input device is cursor control 416, such as a mouse, a trackball, or cursor direction keys for communicating direction information and command selections to processor 404 and for controlling cursor movement on display 412. The input device typically has two degrees of freedom in two axes, a first axis (e.g., x) and a second axis (e.g., y), which allows the device to specify positions in a plane.
The invention is related to the use of computer system 400 for implementing the techniques described herein. According to one embodiment of the invention, those techniques are performed by computer system 400 in response to processor 404 executing one or more sequences of one or more instructions contained in main memory 406. Such instructions may be read into main memory 406 from another machine-readable medium, such as storage device 410. Execution of the sequences of instructions contained in main memory 406 causes processor 404 to perform the process steps described herein. In alternative embodiments, hard-wired circuitry may be used in place of or in combination with software instructions to implement the invention. Thus, embodiments of the invention are not limited to any specific combination of hardware circuitry and software.
The term "machine-readable medium" as used herein refers to any medium that participates in providing data that causes a machine to operation in a specific fashion. In an embodiment performed using computer system 400, various machine-readable media are included, for example, to provide instructions to processor 404 for execution. Such a medium may take many forms, including but not limited to, non-volatile media, and transmission media. Non-volatile media includes, for example, optical or magnetic disks, such as storage device 410. Volatile media includes dynamic memory, such as main memory 406. Transmission media includes coaxial cables, copper wire and fiber optics, including the wires that comprise bus 402. Transmission media can also take the form of acoustic or light waves, such as those generated during radio-wave and infra-red data communications. All such media must be tangible to enable the instructions executed by the media to be detected by a physical mechanism that reads the instructions into a machine.
Common forms of machine-readable media include, for example, a floppy disk, a flexible disk, hard disk, magnetic tape, or any other magnetic medium, a CD-ROM, any other optical medium, punch cards, paper tape encoders, any other physical medium with patterns of holes, a RAM, a PROM, and EPROM, a FLASH-EPROM, any other memory chip or cartridge (cartridge), a carrier as described hereinafter, or any other medium from which a computer can read.
Various forms of machine-readable media may be involved in carrying out one or more sequences of one or more instructions to processor 404 for execution. For example, the instructions may initially be carried on a magnetic disk of a remote computer. The remote computer can load the instructions into its dynamic memory and send the instructions over a telephone line using a modem. A modem local to computer system 400 can receive the data on the telephone line and use an infra-red transmitter to convert the data to an infra-red signal. An infra-red detector can receive the data carried in the infra-red signal and appropriate circuitry can place the data on bus 402. Bus 402 carries the data to main memory 406, from which main memory 406 processor 404 retrieves and executes the instructions. The instructions received by main memory 406 may optionally be stored on storage device 410 either before or after execution by processor 404.
Computer system 400 also includes a communication interface 418 coupled to bus 402. Communication interface 418 provides a two-way data communication coupling to a network link 420, and network link 420 is connected to a local network 422. For example, communication interface 418 may be an Integrated Services Digital Network (ISDN) card or a modem to provide a data communication connection to a corresponding type of telephone line. As another example, communication interface 418 may be a Local Area Network (LAN) card to provide a digital communication connection to a compatible LAN. Wireless links may also be implemented. In any such implementation, communication interface 418 sends and receives electrical, electromagnetic or optical signals that carry digital data streams representing various types of information.
Network link 420 typically provides digital communication through one or more networks to other digital devices. For example, network link 420 may provide a connection through local network 422 to a host computer 424 or to digital equipment operated by an Internet Service Provider (ISP) 426. ISP 426 in turn provides data communication services through the world wide packet data communication network now commonly referred to as the "Internet" 428. Local network 422 and internet 428 both use electrical, electromagnetic or optical signals that carry digital data streams. The signals through the various networks and the signals on network link 420 and through communication interface 418, which carry the digital data to and from computer system 400, are exemplary forms of carrier waves transporting the information.
Computer system 400 can send messages and receive data, including program code, through the network(s), network link 420 and communication interface 418. In the Internet example, a server 439 may transmit a requested code for an application program through Internet 428, ISP 426, local network 422 and communication interface 418.
The received code may be executed by processor 404 as it is received, and/or stored in storage device 410, or other non-volatile storage for later execution. In this manner, computer system 400 may obtain application program code in the form of a carrier wave.
In the foregoing specification, embodiments of the invention have been described with reference to numerous specific details that may vary from implementation to implementation. Thus, the sole and exclusive indicator of what is the invention, and is intended by the applicants to be the invention, is the set of claims that issue from this application, in the specific form in which such claims issue, including any subsequent correction. Any definitions expressly set forth herein for terms contained in such claims shall govern the meaning of such terms as used in the claims. Hence, without limitation, an element, property, feature, advantage or attribute that is expressly recited in a claim should limit the scope of such claim in any way. The specification and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense.
Claims (13)
1. A computer-implemented method for making content available to a Digital Video Recorder (DVR), the method comprising:
automatically transcoding, at a first device, particular content encoded in a first encoding format that a DVR is not configured to decode into a second encoding format that the DVR is configured to decode;
receiving a request for the particular content from a DVR; and
in response to receiving the request, sending the particular content encoded in the second encoding format to the DVR.
2. The method of claim 1, wherein the step of automatically transcoding the specific content comprises:
periodically determining whether content has been placed at a first location on the first device;
in response to a determination that the particular content has been placed in the first location, determining whether the particular content is encoded in an encoding format that a DVR is configured to decode; and
in response to determining that the particular content is not encoded in an encoding format that the DVR is configured to decode, (i) automatically transcode the particular content into the second encoding format, and (ii) store, at a second location on the first device, the particular content encoded in the second encoding format.
3. The method of claim 1, further comprising:
storing the particular content encoded in the second encoding format at a location in response to transcoding the particular content into the second encoding format;
periodically determining whether content has been placed at the location; and
in response to determining that the particular content has been placed at the location, sending a Uniform Resource Locator (URL) to the DVR over the network, the URL identifying (i) a device on which the particular content is stored and (ii) the particular content.
4. The method of claim 1, further comprising:
sending a particular type of instruction over a network to a DVR, the DVR configured to place the instruction in a queue, the DVR reading from the queue an instruction that identifies content that the DVR will request over the network;
wherein the specific instruction identifies the specific content.
5. The method of claim 1, further comprising: sending a particular type of instruction to a DVR over a Local Area Network (LAN), the DVR configured to place the instruction in a queue, the DVR to place into the queue an instruction that has been sent to the DVR over the Internet;
wherein the specific instruction identifies (i) the specific content and (ii) a device connected to the LAN.
6. A computer-implemented method for making content available to a Digital Video Recorder (DVR), the method comprising:
receiving content over a network on a first device, the content (i) being stored on a first DVR and (ii) being encoded in a first encoding format, the first encoding format being (a) an encoding format that the first DVR is capable of decoding, and (b) an encoding format that a second device is not capable of decoding;
automatically transcoding the content at the first device from a first encoding format to a second encoding format that the second device is capable of decoding; and
transmitting the content encoded in a second encoding format to the second device over the network.
7. The method of claim 6, wherein the second device is a second DVR.
8. The method of claim 6, wherein the second device is a mobile device.
9. The method of claim 6, further comprising:
automatically determining whether the content is stored on the first DVR and not on the second device; and
in response to determining that the content is stored on the first DVR but not on the second device, instructing the first DVR to send the content to a third device over a network.
10. A computer-implemented method for making content available on demand to a Digital Video Recorder (DVR), the method comprising:
downloading content to a first device from a site remote from the first device;
transcoding the content on the first device when the content is downloaded; and is
When the content is downloaded, sending to the DVR the portion of the content on the first device that has been transcoded from a first encoding format that the DVR is not configured to decode to a second encoding format that the DVR is configured to decode.
11. The method of claim 10, wherein the content is specified by the DVR.
12. The method of claim 10, wherein the content is specified via a web page, the web page being provided by a service in communication with the first device.
13. The method of claim 10, further comprising:
storing a decoded version of the content in a cache of the first device;
determining whether the content is stored in the cache in response to requesting the content; and
in response to determining that the content is already stored in the cache, sending the content from the cache to the DVR without requiring repeated downloads of the content from the site.
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US11/519,717 US9100702B2 (en) | 2006-09-11 | 2006-09-11 | Personal content distribution network |
| US11/519,717 | 2006-09-11 | ||
| PCT/US2007/019511 WO2008033266A2 (en) | 2006-09-11 | 2007-09-07 | Personal content distribution network |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| HK1131675A1 HK1131675A1 (en) | 2010-01-29 |
| HK1131675B true HK1131675B (en) | 2013-04-26 |
Family
ID=
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN101512517B (en) | Personal content distribution network | |
| KR102312755B1 (en) | Reception apparatus, reception method, transmission apparatus and transmission method | |
| US8352544B2 (en) | Composition of local media playback with remotely generated user interface | |
| US20190306218A1 (en) | Wireless media streaming system | |
| JP2005505953A (en) | Contextual web page system and method | |
| US10515235B2 (en) | Multimedia pipeline architecture | |
| US20050278737A1 (en) | User configurable electronic program guide drawing upon disparate content sources | |
| WO2012087735A1 (en) | Method and system for sending video edit information | |
| US20100154012A1 (en) | Television bookmarking with multiplatform distribution | |
| JPWO2014057833A1 (en) | Reception device, reception method, transmission device, transmission method, and program | |
| US20080022313A1 (en) | Program table generator and a method for quickly displaying a program table in response to user's request | |
| JP2003125305A (en) | Method and apparatus of watching broadcast program, and watching program for broadcast program | |
| WO2008103364A1 (en) | Systems and methods for sending, receiving and processing multimedia bookmarks | |
| JP2010041500A (en) | Server apparatus, client apparatus, content sending method, content playback device, and content playback method | |
| HK1131675B (en) | Personal content distribution network | |
| HK1179078B (en) | Personal content distribution network | |
| KR100820788B1 (en) | Broadcast signal transmission method | |
| US20140208369A1 (en) | Apparatus and system for personal display of cable and satellite content |