CA2398071A1 - A system for preprocessing content for streaming server - Google Patents
A system for preprocessing content for streaming server Download PDFInfo
- Publication number
- CA2398071A1 CA2398071A1 CA002398071A CA2398071A CA2398071A1 CA 2398071 A1 CA2398071 A1 CA 2398071A1 CA 002398071 A CA002398071 A CA 002398071A CA 2398071 A CA2398071 A CA 2398071A CA 2398071 A1 CA2398071 A1 CA 2398071A1
- Authority
- CA
- Canada
- Prior art keywords
- content
- server
- stream
- network
- packet
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
- 238000007781 pre-processing Methods 0.000 title claims abstract description 15
- 238000000034 method Methods 0.000 claims abstract description 64
- 230000002452 interceptive effect Effects 0.000 claims abstract description 10
- 230000004044 response Effects 0.000 claims description 6
- 244000141359 Malus pumila Species 0.000 claims description 2
- 235000021016 apples Nutrition 0.000 claims description 2
- 230000001143 conditioned effect Effects 0.000 claims 2
- 238000012805 post-processing Methods 0.000 abstract description 3
- 230000005540 biological transmission Effects 0.000 description 9
- ODINCKMPIJJUCX-UHFFFAOYSA-N Calcium oxide Chemical compound [Ca]=O ODINCKMPIJJUCX-UHFFFAOYSA-N 0.000 description 6
- 230000006835 compression Effects 0.000 description 6
- 238000007906 compression Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 239000000284 extract Substances 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 4
- 235000012255 calcium oxide Nutrition 0.000 description 3
- 239000000292 calcium oxide Substances 0.000 description 3
- 238000011144 upstream manufacturing Methods 0.000 description 3
- 239000000835 fiber Substances 0.000 description 2
- 240000002768 Alpinia galanga Species 0.000 description 1
- 235000006887 Alpinia galanga Nutrition 0.000 description 1
- 241000120694 Thestor Species 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- CVSVTCORWBXHQV-UHFFFAOYSA-N creatine Chemical compound NC(=[NH2+])N(C)CC([O-])=O CVSVTCORWBXHQV-UHFFFAOYSA-N 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000010025 steaming Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/2801—Broadband local area networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
- H04L12/5691—Access to open networks; Ingress point selection, e.g. ISP selection
- H04L12/5692—Selection among different networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/61—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
- H04L65/612—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/61—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
- H04L65/613—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for the control of the source by the destination
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/65—Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/70—Media network packetisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/75—Media network packet handling
- H04L65/752—Media network packet handling adapting media to network capabilities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/561—Adding application-functional data or data for application control, e.g. adding metadata
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/565—Conversion or adaptation of application format or content
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/231—Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
- H04N21/23106—Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion involving caching operations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
- H04N21/234309—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4 or from Quicktime to Realvideo
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
- H04N21/234381—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by altering the temporal resolution, e.g. decreasing the frame rate by frame skipping
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/238—Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
- H04N21/2381—Adapting the multiplex stream to a specific network, e.g. an Internet Protocol [IP] network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/258—Client or end-user data management, e.g. managing client capabilities, user preferences or demographics, processing of multiple end-users preferences to derive collaborative data
- H04N21/25866—Management of end-user data
- H04N21/25875—Management of end-user data involving end-user authentication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/27—Server based end-user applications
- H04N21/274—Storing end-user multimedia data in response to end-user request, e.g. network recorder
- H04N21/2743—Video hosting of uploaded data from client
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/472—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
- H04N21/47202—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for requesting content on demand, e.g. video on demand
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/475—End-user interface for inputting end-user data, e.g. personal identification number [PIN], preference data
- H04N21/4753—End-user interface for inputting end-user data, e.g. personal identification number [PIN], preference data for user identification, e.g. by entering a PIN or password
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/61—Network physical structure; Signal processing
- H04N21/6106—Network physical structure; Signal processing specially adapted to the downstream path of the transmission network
- H04N21/6125—Network physical structure; Signal processing specially adapted to the downstream path of the transmission network involving transmission via Internet
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/835—Generation of protective data, e.g. certificates
- H04N21/8355—Generation of protective data, e.g. certificates involving usage data, e.g. number of copies or viewings allowed
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/845—Structuring of content, e.g. decomposing content into time segments
- H04N21/8455—Structuring of content, e.g. decomposing content into time segments involving pointers to the content, e.g. pointers to the I-frames of the video stream
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/16—Analogue secrecy systems; Analogue subscription systems
- H04N7/173—Analogue secrecy systems; Analogue subscription systems with two-way working, e.g. subscriber sending a programme selection signal
- H04N7/17309—Transmission or handling of upstream communications
- H04N7/17336—Handling of requests in head-ends
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Databases & Information Systems (AREA)
- Computer Security & Cryptography (AREA)
- Human Computer Interaction (AREA)
- Library & Information Science (AREA)
- Computer Graphics (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Information Transfer Between Computers (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
A method and apparatus for preprocessing and postprocessing content in an interactive information distribution system. Content is retrieved from a storage medium (152) and encapsulated in accordance to an Internet Protocol (IP) format. The encapsulated content is then uploaded for storage (146) in a stream caching server (102) and for future streaming of content to different types of access networks.
Description
A SYSTEM FOR PREPROCESSING CONTENT FOR STREAMING SERVER
CROSS-REFERENCE TO RELATED APPLICATION
This invention claims benefit of U.S. Provisional Patent Applications Serial Nos.
60/178,795, 60/178,809, 60/178, 810 and 60/178,857, all filed on January 28, 2000, and such applications are herein incorporated by reference in their entireties.
This invention is related to simultaneously filed U.S. Patent Applications Serial Nos. (Attorney Docket No. DIVA 253) and (Attorney Docket No. 256), filed on the same date as this application, and such applications are herein incorporated by reference in their entireties.
BACKGROUND OF THE INVENTION
1. Field of the Invention The invention relates to electronic storage and transmission of content. More particularly, the invention relates to a method and apparatus for preprocessing and postprocessing content in an interactive information distribution system.
CROSS-REFERENCE TO RELATED APPLICATION
This invention claims benefit of U.S. Provisional Patent Applications Serial Nos.
60/178,795, 60/178,809, 60/178, 810 and 60/178,857, all filed on January 28, 2000, and such applications are herein incorporated by reference in their entireties.
This invention is related to simultaneously filed U.S. Patent Applications Serial Nos. (Attorney Docket No. DIVA 253) and (Attorney Docket No. 256), filed on the same date as this application, and such applications are herein incorporated by reference in their entireties.
BACKGROUND OF THE INVENTION
1. Field of the Invention The invention relates to electronic storage and transmission of content. More particularly, the invention relates to a method and apparatus for preprocessing and postprocessing content in an interactive information distribution system.
2. Description of the Background Art Information systems such as video on demand (VOD) systems are capable of streaming program content to a great number of users or subscribers. To provide a requested program content to a subscriber, the VOD system retrieves the reduested program content from a video server, streams the content over a stream distribution network, and converts the content to an access network that is coupled to a particular neighborhood of subscriber terminals. The user then views the requested program content at the subscriber terminal.
However, the different types of access networks have different limitations with respect to transmission latency, bandwidth, and the like. To service a wide subscriber base, the VOD systems cun-ently implement different solutions for each type of access network.
For example, VOD systems that provide web-based video content must account for a public and private wide area networks that support content of a particular quality of service (QoS), typically medium latency, low bandwidth and poor quality video, e.g. high fitter.
Additionally, VOD systems that provide cable-based video must account for cable networks that support low latency, high bandwidth and high quality video.
One example of using different solutions involves the use of separate video servers for each type of access network. Such a solution only increases the cost of providing program content at the head end. Therefore, there is a need in the art to provide a scalable VOD solution that is common for the different types of access networks.
Additionally, there is a need to preprocess and postprocess content for such a VOD solution.
SUMMARY OF THE INVENTION
The invention provides a method and system for preprocessing content for a stream caching server in an interactive information distribution system. In one embodiment, the method initially retrieves of content in a subscriber terminal. The retrieved content is encapsulated in accordance to an Internet Protocol (IP) format used for streaming content to various access networks. The encapsulated content is then uploaded for storage in a stream caching server and for future streaming of content to different types of access networks.
The present invention preprocesses content into a common format suitable for a stream caching server capable of transmitting content to different types of access networks.
?0 In one embodiment of the invention, a user executes an apples program to preprocess content stored in a computer terminal. Such a configuration enables a user to upload content over the Internet for storage in a stream caching server and subsequent streaming to other subscribers. The invention also postprocesses content into a format supported by a particular type of player and access network used to receive the content from the stream caching server.
BRIEF DESCRIPTION OF THE DRAWINGS
The teachings of the present invention can be readily understood by considering the following detailed description in conjunction with the accompanying drawings, in which:
FIG. 1 depicts a high level block diagram of a first portion of an interactive information distribution system embodied in the present invention;
FIG. 2A depicts one embodiment of an Internet Protocol (IP) packet used in the information distribution system of FIG. 1;
FIG. 2B depicts one embodiment of a Realtime Transport Packet (RTP) contained in a payload section of the IP packet of FIG. 2A;
FIG. 3 depicts a data structure useful in understanding an embodiment of the present mventron;
FIG. 4 depicts a flow diagram of a method for implementing the preprocessing of program content in accordance to one embodiment of the present invention; and FIG. 5 depicts a flow diagram of a method for and postprocessing content in accordance to another embodiment of the present invention.
To facilitate understanding, identical reference numerals have been used, where possible, to designate identical elements that are common to the fi~lures.
DETAILED DESCRIPTION
FIG. 1 depicts a high level block diagram of an interactive information distribution system 100. One application of the distribution system 100 is as a video of demand (VOD) system, as described in U.S. Patent Application No. 08/984,710, filed December 3, 1997 and incorporated herein by reference. In such a VOD system 100, a user may reduest and receive a particular content selection, e.g., video, movie or programming content, from a service provider without any time restrictions associated with normal cable pro~~rammin''.
The information distribution system 100 comprises a stream caching server 102, a stream distribution network 104, at least one access network and at least one subscriber terminal. The stream caching server 102 receives, stores and streams content in accordance to an Internet Protocol (IP). One example of such n stream caching server 102 is disclosed in simultaneously filed U.S. Application , attorney docket DIVA 253, entitled "Method and Apparatus for Streaming Content in an Interactive Information Distribution System, which is herein incorporated by reference. The content is configured within a payload portion of each IP packet received, stored and streamed by the stream caching server 102. The use of this IP formatted content enables a single stream caching server 102 to stream content via an integrated stream distribution network 104 to different types of access networks. As such, the system 100 is capable of streaming the same content to any cable service subscriber or any person using the Internet.
In accordance to the present invention, the stream caching server 102 may receive content that is preprocessed at, for example, a remotely located subscriber terminal. One such subscriber terminal is a computer terminal 116 comprising a processor 150, a storage medium 152, a random access memory (RAM) 154 and support circuits 156. The RAM
154 stores an applet 154 that is downloaded from, for example, a HTTP server 148 coupled to an access network, for example., a private local area network (LAN) or wide area network (WAN) 106. The processor 150 executes the applet 154 to initiate the preprocessing in the present invention. The storage medium 152 stores the content to be preprocessed. The support circuits 156 provide an interface for receiving the applet 154 from the http server 148, receiving content from the streaming cache server 102, or uploading preprocessed content to the http server 148.
Possible configurations of the applet 154 include a JAVA Applet Plug In for an Internet browses, or a software program written in a particular programming langua~~e, e.g., C++. Once the processor 150 executes the applet 154, the content is retrieved from the storage medium 152. The content may include standard multimedia files in a variety of formats, e.g., AVI (Audio Video Interleaved), Moving JPEG, MPEG-1, MPEG-2, MPEG-4, MP3, Quicktime, and the like. If a need exists to convert the content into a particular format, the retrieved content may be transcoded into a format supported by a viewer or subscriber terminal that eventually receives the downstream content. The transcodina of content changes the format and rate of the retrieved content. One example of such transcoding is the conversion of MPEG-2 content into MPEG-4 content that can be played on a graphic processor in set top terminals or personal computer (PC) terminals. Other types of content may be transcoded into MPEG-2 content playable on conventional set top terminals. Some transcoding requires decoding to baseband followed by encoding according to the desired format. Some transcoding may be performed without baseband decoding.
The content, whether transcoded or not, is then encapsulated into a format that is optimal for the stream caching server 102. In one embodiment, the content, as packets, is encapsulated in a payload of each Realtime Transfer Protocol (RTP) packet contained in the payload of an IP packet. The format of such encapsulated content is shown in FIGS. 2A-2B. However, the use of the RTP packet also supports non real time applications.
FIG. 2A depicts one embodiment of an Internet Protocol (IP) packet 200 used in the present invention. The IP packet comprises an IP header 210 and an IP payload 320. The IP payload comprises a UDP (User Datagram Protocol) packet 221 comprising a UDP
header 222 and a UDP payload 224. A RTP packet 230, a stream integrity check 226 and a cyclic redundancy check (CRC) 228 is illustratively contained in the UDP
payload 224. In one embodiment of the IP packet 200, the IP header 210 is 20 bytes, the UDP
header 222 is 8 bytes, the stream integrity check field 226 is 4 bytes and the CRC field 228 is 4 bytes.
FIG. 2B depicts one embodiment of a Realtime Transport Packet (RTP) 230 contained in a payload section 220 of the IP packet 300 of FIG.2A. The RTP
packet 230 comprises a RTP header 240 and a RTP payload 250. Five MPEG-2 packets 352, 354, 356, 358 and 360 are illustratively contained in each RTP payload 250. The number of MPEG-2 packets in the RPT payload 250 corresponds to the buffer space in the Fibre Channel controller in the packet processor 144.
For the embodiment shown in FIGS. 3A-3B, the transcoding may also include compression of the IP header 310, the UDP header 322 and the RTP header 340.
The compression of these headers 310, 322 and 340 optimizes the stor~me of content on the storage medium 146 of the stream caching server 102. Additionally, the lranscodin~ may include encryption of the content.
Compression of the IP header 310 may include compression of non-address fields, and deletion of source and destination IP addresses. The IP source address is subseduently decompressed (at the packet processor 144) as the IP address at the output interface of the stream caching server 102. The IP destination address is assigned prior to streaming and is based upon the data link converter 1 12, 118 or 126 or edge device for the target access network 106, 108 or 1 10.
S
The compression of the UDP header 322 may delete source and destination port numbers in the storage medium 146. New values are then assigned to the source and destination port numbers prior to str~:amin~ of content over the stream distribution network 104. The source port number is assigned a unique stream number with IP
addresses. The destination port number is assigned a unique target stream number within the data link converter 112, 118 or 126 or the target edge device.
Once encapsulated into the IP format, the content is then uploaded to the http server 148 via the modem 114 and the LAN/WAN 106. The HTTP server 148 provides a user interface, e.g., a HTML (HyperText Markup Language) page, for the user to upload the content to the stream caching server 102. The http server 148 also transmits the transcoded content upstream to the data link converter 112 via the LAN/WAN 106. The data link converter 112 modulates the encapsulated content for upstream transmission over the distribution network 104 for storage in the stream caching server 102.
The preprocessing of the present invention is not limited to a computer terminal I I6 uploading content over a LAN/WAN 106. For example, the encapsulation may also occur in the computer terminal 1 16 prior to uploading to content to the http server 148.
Additionally, the preprocessing may be initiated from a computer terminal 122 or digital video recorder 124 over a carrier network 108, e.g., a T-1 or T-3 line. As such, a user of any computer terminal 116 and 122 author multimedia content over a network, e.g., Internet, and store the content in a virtual video shelf at the stream caching server 102 for playback by other users. The preprocessing is also applicable to content from a content provider such as a movie manufacturer.
The preprocessing may also include the creation of metadata once the processor executes the applet 154. The metadata generally contains a variety of information about the content to be stored on the stream caching server 102 and streamed to a viewer or subscriber terminal. One embodiment of the metadata is in the form of a data structure that is prepended prior to a file associated with the content.
The metadata may comprise many different types of information used by the stream caching server 102 in steaming the content to a viewer device or subscriber terminal. One type of metadata that identify the content include title, author, screenwriter, actors, length of play, timing information, play rate, e.g., constant bit rate (CBR) or variable bit rate (VBR), genre of content, size of content, and the like. Other forms of metadata indicate the type of content and the type of player used to play the content. Illustrative types of content include AVI, MPEG-1, MPEG-2, MPEG-4, MP3, Quicktime, and Moving JPEG. The metadata may also include MPEG7 structure including scene descriptions and indices.
Exemplary types of player devices include MPEG-1 player, MPEG-2 player, MPEG-4 player, Microsoft Media Player, Real Video / Real Audio Player, and Quicklime Player.
The metadata may include pricing information and restrictions to view the content from the server 102. A user or service provider may preset the price and access restrictions that are required to view the preprocessed content from the server 102.
Pricing information include a price to view the content, applicable discounts associated with viewing the content, and applicable package deals when ordering the preprocessed content with other content selections. Access restrictions include rating of content, viewing window information and sales window information. The viewing window is a Graphical interface that requires a subscriber to enter a correct password to receive the content from the server 102. The sales window is a graphical interface that requires a subscriber to pay for viewing a particular content selection.
The metadata comprises indexing at IP packet boundaries, e.g., Group of Pictures (GOP) boundaries and frame boundaries. This indexing enables the stream cachin~~ server 102 in responding to an interactive VCR like commands, e.g., fast forward (FF), rewind (REW), pause, stop, bookmark, and return to place. Specifically, the indexin«
information supports random frame access at a content stream ~~ranularity, separate FF and REW tracks, random frame access of FF and REW tracla, pause/play, bookmarks for each active subscriber, and DVD scene selection. Additionally, the metadata may also include markers for changes in variable bit rate (VBR) and statistical multiplexing.
The indexing enables the use of MPEG-7 based descriptors for indexed access of content. Tire indexing of content can be on a per frame basis or a per GOP
basis. MPEG-7 based descriptors include a length of descriptor, i.e., from a start frame to an end frame, and a schema for a database of indices. The database is a hierarchical based database that allows for hierarchical scene description. For example, a root index may represent a scene of Paris, while a branch index may represent a scene of the Eiffel Tower.
The indexing is also used for stream creation. In one embodiment, the stream is created in realtime from a single MPEG-2 or MPEG-4 content stream, e.g., a start GOP to an end GOP, or a start frame to an end frame. In a second embodiment, the stream is created in non real time and the modified stream file is stored. In a third embodiment, the stream is transcoded or re-encoded such that a reference frame or I-frame is forced to be the frame with information desired in an index, even if the frame an-ived in the packet processor 144 as a predictive frame, e.g., B-frame or P-frame. Stream indexing wilt also be discussed below with respect to FIG. 3.
Once the preprocessed content is uploaded, the stream caching server 102 may store and stream the preprocessed content, or alternatively stream the content in real time. The streaming of content encapsulated in IP format enables the stream caching server 102 to stream content to subscribers via different types of access networks 106, 108 and 1 10. As IS such, only one stream caching server 102 and one distribution network 104 is required to provide scalable streaming. Namely, one stream caching server 102 may stream content to the LAN/WAN 106, the carrier network 108, the cable network 110 and any other access network that supports IP. This greatly reduces the hardware cost at the head end 138, as the prior art requires a streaming caching server 102 and a distribution network 104 for each type of access network 106, 108 and 110.
For example, the server 102 may stream content to a private Local Area Network (LAN) or Wide Area Network (WAN) 106. Specifically, the system 100 may stream content through the stream distribution network 104 to a digital link converter 1 12, the LAN or WAN 106, a modem I 14 and a display device coupled to a computer terminal 1 16.
?5 If a user decides to request content from the server 102 or uplink content, e.g., a home movie, to the server 102, that request or content would travel upstream in a path reverse to that of the downstreamed content. The digital link converter 112 modulates the program content for transmission via the private LAN/WAN 106. Additionally, the data link converter 112 extracts a MPEG formatted program content from the RTP formatted stream from the stream distribution network 104 and transcodes the program consent into a format that is supported by the LAN/WAN 106. One example of the data link converter 112 is a DIVA Digital Link (DDL 500) that performs quadrature amplitude modulation (QAM) on the downstream program content. The LAN or WAN 106 is a private network provided by a private party or an Internet Service Provider (ISP). The modem 1 14 demodulates video content for viewing on the computer terminal 116.
The server 102 may also stream content via the stream distribution network 104 to a data link converter 118, a carrier network 108, a digital subscriber line access multiplexes (DSLAM) 119, an x-DSL modem 1~0 to either a computer terminal 122 or a di<~ital video recorder (DVR) 124. A request for content or upload of content would travel in the reverse path taken by the downstream content. The carrier network 108 may include a T-1 or T- 3 transmission link. The data link converter 118 multiplexes the downstream content for transmission via the cagier network 108. Additionally, the data link converter 118 may extract MPEG packets from the IP formatted stream from the stream distribution network 104. The DSLAM I 19 demultiplexes the downstream content to a particular xDSL
modem 120. The xDSL modem 120 demodulates the content for viewing on a computer terminal 122 or a display device (not shown) coupled to the DVR 124. The xDSL modem l20 may comprise a ADSL (asynchronous digital subscriber line) modem, a VDSL (very high data rate digital subscriber line), and the like.
The server 100 may also stream content (or program content selection) via the stream distribution network 104 to a data link converter 126, the cable network 1 10 to either a set top terminal 128 or a cable modem that is coupled to a computer terminal 130 or a DVR 132. The data link converter 126 operates in a similar manner to the di<~itul lint:.
converter I 12 except to format the content for transmission in the cable network 1 l0. The content is transmitted from the cable network 110 to a set top terminal 128 or a cable modem 130 that demodulates the program content for viewing on a computer terminal 132 or a display device coupled to the DVR 134. A request from a cable subscriber or user is processed via the cable network I 10, the OOB (out of band) roofer 136 and the modulator 126 that modulates the request back to the stream distribution network 104.
Although the system 100 is illustratively shown to stream program content to the LAN/WAN 106, the PSTN 108 and the cable network 1 10, the system 100 may also stream content to other types of access networks. 1~or example, the system 100 may also stream program content to satellite anc terrestrial networks. Additionally, each system 100 actually streams content over rr;any more access networks and subscriber terminals than the example shown in FIG. 1.
The stream caching server 102 is located at the local head end 138 with an infrastructure system manager 140, a switch 142 and a packet processor 144.
The stream caching server 102 comprises a storage medium 146 to store the content preprocessed in accordance to the present invention. One configuration of the storage medium 146 is a redundant set of disk arrays, e.g., Redundant Array of Inexpensive Disks (RAID).
The infrastructure system manager 140 coordinates a (user) request from the subscriber terminal by passing the request to the stream caching server 102 and establishing a session between the subscriber terminal and the stream caching server 102.
An exemplary infrastructure system manager 140 is the DIVA System Manager (DSM).
As disclosed in U.S. Application , Attorney docket DIVA 256, entitled "Method and Apparatus for Managing an Integrated Information Distribution System", which is fully incorporated by reference in its entirety. The switch 142 routes the user request from the stream distribution network 104 to the system manager 140.
Additionally, the switch 142 routes the retrieved content from the stream caching server 102 to the packet processor 144.
The storage medium 148 stores the preprocessed content in an IP format. The content is configured as a plurality of MPEG, e.~., MPEG-2 or MPEG-4, packets contained in a payload of a RTP packet within an IP packet. For example, the payload of each RTP
packet may contain five MPEG-2 packets. The structure of the 1P packet is shown to F1G.
3B. The RTP format (RFC 1889) minimizes the latency in streaming content from the ?5 server, by supporting the streaming of content in real time. Additionally, the content in the IP packet can be configured to have a minimal Quality of Service (QoS), e.g., data latency.
The packet processor 144 postprocesses the content into a format supported by a particular type of player and access network 106, 108 and 110 used to receive the content from the stream caching server 102. Such a player is either a software module downloaded from a HTTP server 116 to a computer terminal 122, a hardware module coupled to a subscriber terminal, or a card inserted into a subscriber terminal. Exemplary players include a MPEG-1 player, a MPEG-2 player, a MPEG-4 player, a Microsoft Media Player, a Real Video/Real Audio Player, a Quicklime Player, a Wireless Device Video or Audio Player, and the like.
The packet processor 144 transcodes the content is performed without disturbing the IP format. For example, the packet processor 144 separates the content, e.g., packets, and header information in the IP packet, transcodes the content packets into a desired format supported by the access network and downstream player, and combines the transcoded packets with the header information to recreate the IP packet. Such transcodin~~
is performed at an elementary packet level for transmitting= at the transport packet level.
Additional functions performed by the packet processor 144 include fitter cowection, creatin'> of a PES (packet elementary stream), stream splicing, and statistical multiplexing. .
More specifically, the transcodin'~ includes the conversion content in the RTP
payload into a format Suitable for the access network 106, 108 and I 10, but the transcoded IS content is still encapsulated in the IP packet stream. Such transcodin~T
may change the format and rate of the content. For example, the transcoding may include the conversion of MPEG-? formatted content into MPEG-I, MPEG-4, AVI, Moving JPEG, MP3, Quicktime, Wireless Applications Protocol content, and the like. The transcoding is performed in accordance to an extended Real Time Streaming Protocol (RTSP - RFC 23?6) such that ?0 stream manipulations conform to Internet standards and arc applicable to any access networks that support IP.
Additionally, the exact manner of the transcodin8 depends on the available bandwidth in the access network used to receive the content at the player. For example, the packet processor 144 may perform statistical multiplexing to dynamically allocate the 25 amount of available bandwidth for streaming content to a particular viewer.
To perform such statistical multiplexing, the packet processor 144 may stream content at either a constant bit rates or variable bit rates.
The transcoding is also adjustable to bandwidth de~radations. To process lossy video, the transcoding may include lossy filtering within frames of content, dropping 30 frames of content, e.g, resulting in a playback rate of ~i0 frames per second to 15 frames per second, and delivering still frames that contain important information. For non-lossy compression, the transcoding may include dropping MPEG null packets, and transcoding or re-encoding content to an acceptable quality.
The packet processor 144 may automatically perform such transcoding, or perform transcoding in accordance to user configured preferences. These preferences may include choices for a particular player, e.g., formatting, play rates, and type of conversion or transcoding. For example, if the player is embodied in software in a PC, then the content is transcoded into MPEG-2 format. However, if the player is a hand held device, then the content is transcoded into JPEG or MPEG-4 format. Additionally, the transcoding may be dynamically performed based on a user preference profile. Such a profile is based either on history or a default preference. For example, if the player is in the PC, the packet processor 144 transcodes the content into MPEG-2 at 4 Mbps and a constant bit rate.
The content in the payload of each RTP packet is sized to minimize the latencies in streaming content from the stream caching server 102 to the distribution network 104. The read block for the packet processor 144 is sized to the MPEG packets in the payload of each RTP packet. The number of MPEG packets in each RTP packet is constrained by an available buffer space in a Fibre Channel controller that is used to read the content.
The content streamed by the stream caching server 102 is not limited to content previously stored in the storage medium 148. In one embodiment, the stream caching server 102 streams content from another remotely located server, i.e., a server located at a remote headend. Such a configuration is further described with respect to FIG.
2.
The manager 140 provides session management for streaming content in accordance to the RTP Control Protocol (RTCP). Such management is particularly important in the case of content streamed to the local stream caching server 102 from the remote server. If any en-ors occurred during the streaming from the remote server, these en-ors are multiplied when the cached or stored content is then streamed to the many subscribers.
RTCP enables the detection and transmission of only the read blocks affected by the streaming en-ors.
FIG. 2 depicts another portion of the interactive information distribution system 100 of FIG. 1. This portion of the system 100 comprises the stream caching server 102 and the infrastructure system manager 140 at the local head end 138, a stream caching server 202 and an infrastructure system manager 204 at a remote head end 206, and a backbone streaming network 210. The stream caching server 202 and the infrastructure system manager 204 at the remote head end 206 operates in a similar manner to the respective stream caching server 102 and the infrastructure system manager 140 at the local head end 138 that were previously described.
The local infrastructure system manager 140 receives a request for a particular content selection and determines whether a user requested content selection is stored in the storage medium 148. If the request content is not in the storage medium 148, the local infrastructure system manager 140 identifies a remote stream caching server 202 that stores the requested program content and provides a (server) request to the remote system manager 204. For example, a local system manager 140 in San Francisco may request content from another remote remotely located server 202 in Boston.
In response to this server request, the local system manager 140 coordinates the streaming remote stream caching server 202 streams the requested program content over the backbone streaming network 210 to the local stream caching server 102. The content is then streamed to the subscriber. If the local system manager 140 determines that there are enough user requests above some predetermined threshold number, then the content from the remote stream caching server 202 is also stored in the local stream caching server 102.
FIG. 4 depicts a flow diagram of a method 400 for implementing the preprocessing of content e.g., a video program, in accordance to one embodiment of the present invention.
The method 400 assumes that a user or subscriber has already downloaded an applet 154 from a http server 115. Specifically, the method 400 starts at step 402 and proceeds to step 404 where preprocessing is initiated when the applet 154 is executed by the processor 150 in the computer terminal 116. At step 406, a query determines whether a user has purchased shelf space. Namely, step 406 determines whether the user has purchased storage space or use of a portion of the storage medium 146 at the stream caching server 102. Step 406 may also cover situations where a user has access to shelf space.
If the user has not purchased shelf space on the storage medium 148, the method 400 proceeds to end at step 424. It the user has already purchased shelf space on the storage medium 148, the method 400 proceeds to step 408, where content is loaded from a WO 01/55877 PCT/USOl/02802 memory 152 of the computer erminal 116. The content may comprise any multimedia presentation, e.g., a home mac a move, created by the user.
At step 410, the method creates metadata for the loaded content. The metadata contains indexing information that enables the stream caching server 102 to respond to user interactivity commands within a group of pictures or approximately one half a second.
Examples of user interactivity commands include fast forward (FF), rewind (REW), pause, stop, bookmark and return to place. Additionally, the metadata includes information that enables the stream caching server 102 to determine the type of file and the resolution of the content.
The method 400 proceeds to step 412 where a query determines whether to transcode content. If no transcoding is required, the method 400 proceeds to step 416.
If transcoding is required, the method 400 proceeds to step 414 where the content is transcoded into a format that is supported by a viewer used to view downstream content.
Step 414 may convert both the format and bit rate of the program content. In one IS embodiment, the content may be transcoded (at a elementary stream level) from MPEG-1, MP3, AVI, Quicklime or Moving formed into MPEG-2 formatted packets. At step 416, the method 400 encapsulates the transcoded content, e.g., MPEG-2 format, into an 1P
packet format (at the transport stream level). As previously described with respect to FIGS.
2A and 2B, storage of content in this IP packet format minimizes the retrieval time when the stored content is retrieved from the storage medium 146 and stream to the distribution network 104.
The method 400 proceeds to step 418, where the transcoded content and metadata is uploaded from the computer terminal 116 and into the storage medium 148 of the stream caching server 102. Once the transcoded content is stored at the stream caching server 102, the method 400 enables the user (sender of the content) to establish or set permissions at step 420. This step establishes a subset of users who may access the content from the stream caching server 102. The method 400 proceeds to step 422, where a HTML
page is established at the http server 115 for access by other users. The method 400 ends a step 424.
FIGs. 5A and SB depict a flow diagram of a method for accessing program content that was preprocessed and stored at the stream caching server 102. In one embodiment of the method 500, a user may access the full version of the program content only after correctly entering the password and paying to view the content.
The method 500 starts at step 502 and proceeds to step 504, where a user access a html page and selects a particular program content to be played from the stream caching server. At step 506, the method 500 queries whether the user has entered the correct password as previously established by the owner of the program content. Step 506 may alternatively query for a particular subscriber name or keyword.
If the correct password is not entered, the method 500 ends at step 540. If the correct password is entered, the method 500 proceeds to step 508, where a query determines whether the user has a viewer or player to view the selected program content.
Namely, step 508 determines whether a correct type of viewer or player is detected at the subscriber terminal, e.g., a computer terminal 1 16, 122 or 132. If the correct player is not detected, the method 500 proceeds to download the player at 510 and then proceeds to step 512. If the correct player is detected, the method 500 proceeds directly to step 512.
At step 512, a query determines whether the downloaded player supports playback (of content) at full quality. If the player does not support playing of content at full quality, the method 500 proceeds to step 526. If the player supports playing of content at full quality, the method 400 proceeds to step 514, where a query determines whether the user has paid to view a full quality version of the content, e.g., a program content file . If the user has paid to view the full quality version of the program content, the method 500 proceeds to retrieve the full IP formatted content from the stream caching server 102 at step 516 and streams the retrieved content over the distribution network 104 at step 518. The ?5 method 500 proceeds to step 520, where the data link converter 112, 118 or 126 extracts the content (at the transport level) from the IP packets, content or MPEG-2 packets from the 1P
formatted content. At step 522, a query determines whether to transcode the extracted content. Such transcoding is required to satisfy constraints in (downstream) transmitting the content over the access network 106, 108 and 1 10, and for playing the content on the viewer. If transcodina is not required, the method 400 proceeds to step _536.
If transcodin~
is required, the method 400 transcodes the content at normal quality at step 524 and proceeds to step 536.
Referring back at step 514, if the user has not fully paid to view the full quality version of the content, the method 500 proceeds to step 526. At this step 526, the method 500 proceeds to retrieve a sample or predefined portion of the IP formatted content (file) from the stream caching server 102 at step 526. The method 500 then proceeds to stream the retrieved portion over the distribution network 104 at step 528 and extract the content, e.g., MPEG-2 packets, from the IP formatted content at step 530 . The method proceeds to step 532, where a query determines whether to transcode the extract content for transmission over the access network 106, 108 or 110 and for playback on the viewer or player. If no transcoding is required, the method 500 proceeds to step 536. If transcoding is required, the method 550 proceeds to transcode the partial content at low quality at step 534 and then to step 536.
At step 536, the method 500 sends the transcoded content the subscriber terminal, IS e.g. a computer terminal 116, 122 and 132 via the access network 106, 108 and 110. The method 500 proceeds to play either the full or partial quality content at step 538 and ends at step 540.
FIG. 3 depicts a data structure useful in understanding an embodiment of the present invention. Specifically, FIG. 3 depicts a content stream 310 including a plurality of index points denoted as I,, I, and so on up to I~ (collectively index points I). It will be appreciated that while the index points I, through I,~~ are depicted as being spaced in an approximately even manner, there is absolutely no requirement for such equal spacing of the indices. Each index point represents an appropriate stream entry point beginning with, for example, an I-frame in the case of an MPEG content stream. Each indexed portion may be long or short, may comprise for example an entire scene or a plurality of scenes, other index divisions may be used.
FIG. 3 also depicts a sub-stream 320 comprising a plurality of index points denoted as i,, i, and so on up to i~. For purposes of this discussion, it is assumed that the sub-stream comprises portions of content between index point I, and index point I;, yet not portions of the content traversing those index boundaries. The shaded portion of content stream 310 depicts the content within the sub-stream. The shaded portions of the sub-stream 320 depict content that is not included within the sub-stream. It is noted that the sub-stream may be stored as a separate entity along with the content stream 310. The sub-stream may comprise those image frames associated with a portion of content indexed according to the MPEG-7 standards. For example, in the case of a movie having a plurality of scenes, where objects within the scenes of the movie have been indexed according to the MPEG-7 format, a particular object (e.g., a sunset, classic automobile or actor) may be associated with an object or a group of objects represented within the content stream 310. Thus, the sub-stream 320 stores content specifically associated with a desired object so that such content may be retrieved.
It is noted that in retrieving a sub-stream it is desirable for the first frame, for example an MPEG-2 stream, to comprise un intra-coded frame (an I-frame). As such, since it is possible for the desired content to be included in the content stream 310 at a point comprising a non I-frame, the sub-stream 320, when created, includes transcoding of at least the first frame within the sub-stream into an intra-frame coding format.
Additionally, if desired, each of the index points within the sub-stream may be reencoded to insure that these points uls~ comprise 1-frames. It is noted that many sub-streams may be generated and stored and associated with the main content stream.
In one embodiment of the invention, local content is loaded onto a client, such as a ?0 set-top terminal or computer, from a local content source such as a video cassette recorder (VCR), digital video recorder (DVR), personal video recorder (PVR), computer or other storage and/or content source. For example, local content may be loaded onto the set toy terminal or streamed to the set top terminal from a camera, live video und/c~r live audio feed. The content loaded onto the set top terminal is transcoded using a transcodin'~
application. If the client does not have an appropriate transcoding application, such transcoding application is downloaded from a server within the system. The transcoding application is used to transcode the loaded content into a desired player format. For example, if the loaded content comprises streaming video and audio at baseband, then such streaming video and audio may be encoded according to any one of the formats previously discussed (e.g., AVI, MPEG, etc.). In the case of the locally loaded content being encoded according to a first format that s not desired, then the content so encoded is transcoded using the transcoding applicati~m to produce content in the desired player format. The transcoded local content is then encapsulated in a desired transport format.
The desired transport format is a transport format adapted to a particular access network.
The particular formats associated with various access networks are described above. The transport encapsulated content is then encapsulated in a realtime protocol packet, such as described above. The RTP packet stream is then uploaded to the server for subsequent distribution to clients (i.e., set-top terminals or computers) utilizing the desired player format via access networks utilizing the desired access network transport format.
In addition to uploadin~7 encapsulated data to the server, the client may also provide access right data to the server for subsequent use in determining who may view the content, who may use the content, how long the content may be viewed, how long the content may be used, which geographic region the viewer or user is in, which set or sub-set of clients within a particular system are to have access, which passwords, if any, are to be used and so on.
As an example, in the case of a set-top teminal associated with a user wishing to share video imagery of a new baby, the video ima~Tery and associated audio information may be input to a set-top terminal from the video camera. The set-top terminal then uses a coding or transcoding application to encode the video and audio information according to a desired format, such as the above-mentioned AVI format. Assuming that the subscribers within a system who are to receive this imagery (e.g , friends and neighbors) are within a system having an access network utilizing the MPEG-2 transport format, the set-top terminal or client will then transport encode the AVI encoded content to produce an MPEG-2 transport stream. The MPEG-2 transport stream comprising the AVI
encoded content will be further transport encoded according to the realtime protocol techniques described above. The RTP encoded content and associated access information (e.g., passwords for family members and the like) is then uploaded to the server for subsequent distribution on demand to the appropriate viewers or users.
Although various embodiments which incorporate the teachings of the p~°esent invention have been shown and described in detail herein, those skilled in the art can readily devise many other varied embodiments that still incorporate these teachings.
However, the different types of access networks have different limitations with respect to transmission latency, bandwidth, and the like. To service a wide subscriber base, the VOD systems cun-ently implement different solutions for each type of access network.
For example, VOD systems that provide web-based video content must account for a public and private wide area networks that support content of a particular quality of service (QoS), typically medium latency, low bandwidth and poor quality video, e.g. high fitter.
Additionally, VOD systems that provide cable-based video must account for cable networks that support low latency, high bandwidth and high quality video.
One example of using different solutions involves the use of separate video servers for each type of access network. Such a solution only increases the cost of providing program content at the head end. Therefore, there is a need in the art to provide a scalable VOD solution that is common for the different types of access networks.
Additionally, there is a need to preprocess and postprocess content for such a VOD solution.
SUMMARY OF THE INVENTION
The invention provides a method and system for preprocessing content for a stream caching server in an interactive information distribution system. In one embodiment, the method initially retrieves of content in a subscriber terminal. The retrieved content is encapsulated in accordance to an Internet Protocol (IP) format used for streaming content to various access networks. The encapsulated content is then uploaded for storage in a stream caching server and for future streaming of content to different types of access networks.
The present invention preprocesses content into a common format suitable for a stream caching server capable of transmitting content to different types of access networks.
?0 In one embodiment of the invention, a user executes an apples program to preprocess content stored in a computer terminal. Such a configuration enables a user to upload content over the Internet for storage in a stream caching server and subsequent streaming to other subscribers. The invention also postprocesses content into a format supported by a particular type of player and access network used to receive the content from the stream caching server.
BRIEF DESCRIPTION OF THE DRAWINGS
The teachings of the present invention can be readily understood by considering the following detailed description in conjunction with the accompanying drawings, in which:
FIG. 1 depicts a high level block diagram of a first portion of an interactive information distribution system embodied in the present invention;
FIG. 2A depicts one embodiment of an Internet Protocol (IP) packet used in the information distribution system of FIG. 1;
FIG. 2B depicts one embodiment of a Realtime Transport Packet (RTP) contained in a payload section of the IP packet of FIG. 2A;
FIG. 3 depicts a data structure useful in understanding an embodiment of the present mventron;
FIG. 4 depicts a flow diagram of a method for implementing the preprocessing of program content in accordance to one embodiment of the present invention; and FIG. 5 depicts a flow diagram of a method for and postprocessing content in accordance to another embodiment of the present invention.
To facilitate understanding, identical reference numerals have been used, where possible, to designate identical elements that are common to the fi~lures.
DETAILED DESCRIPTION
FIG. 1 depicts a high level block diagram of an interactive information distribution system 100. One application of the distribution system 100 is as a video of demand (VOD) system, as described in U.S. Patent Application No. 08/984,710, filed December 3, 1997 and incorporated herein by reference. In such a VOD system 100, a user may reduest and receive a particular content selection, e.g., video, movie or programming content, from a service provider without any time restrictions associated with normal cable pro~~rammin''.
The information distribution system 100 comprises a stream caching server 102, a stream distribution network 104, at least one access network and at least one subscriber terminal. The stream caching server 102 receives, stores and streams content in accordance to an Internet Protocol (IP). One example of such n stream caching server 102 is disclosed in simultaneously filed U.S. Application , attorney docket DIVA 253, entitled "Method and Apparatus for Streaming Content in an Interactive Information Distribution System, which is herein incorporated by reference. The content is configured within a payload portion of each IP packet received, stored and streamed by the stream caching server 102. The use of this IP formatted content enables a single stream caching server 102 to stream content via an integrated stream distribution network 104 to different types of access networks. As such, the system 100 is capable of streaming the same content to any cable service subscriber or any person using the Internet.
In accordance to the present invention, the stream caching server 102 may receive content that is preprocessed at, for example, a remotely located subscriber terminal. One such subscriber terminal is a computer terminal 116 comprising a processor 150, a storage medium 152, a random access memory (RAM) 154 and support circuits 156. The RAM
154 stores an applet 154 that is downloaded from, for example, a HTTP server 148 coupled to an access network, for example., a private local area network (LAN) or wide area network (WAN) 106. The processor 150 executes the applet 154 to initiate the preprocessing in the present invention. The storage medium 152 stores the content to be preprocessed. The support circuits 156 provide an interface for receiving the applet 154 from the http server 148, receiving content from the streaming cache server 102, or uploading preprocessed content to the http server 148.
Possible configurations of the applet 154 include a JAVA Applet Plug In for an Internet browses, or a software program written in a particular programming langua~~e, e.g., C++. Once the processor 150 executes the applet 154, the content is retrieved from the storage medium 152. The content may include standard multimedia files in a variety of formats, e.g., AVI (Audio Video Interleaved), Moving JPEG, MPEG-1, MPEG-2, MPEG-4, MP3, Quicktime, and the like. If a need exists to convert the content into a particular format, the retrieved content may be transcoded into a format supported by a viewer or subscriber terminal that eventually receives the downstream content. The transcodina of content changes the format and rate of the retrieved content. One example of such transcoding is the conversion of MPEG-2 content into MPEG-4 content that can be played on a graphic processor in set top terminals or personal computer (PC) terminals. Other types of content may be transcoded into MPEG-2 content playable on conventional set top terminals. Some transcoding requires decoding to baseband followed by encoding according to the desired format. Some transcoding may be performed without baseband decoding.
The content, whether transcoded or not, is then encapsulated into a format that is optimal for the stream caching server 102. In one embodiment, the content, as packets, is encapsulated in a payload of each Realtime Transfer Protocol (RTP) packet contained in the payload of an IP packet. The format of such encapsulated content is shown in FIGS. 2A-2B. However, the use of the RTP packet also supports non real time applications.
FIG. 2A depicts one embodiment of an Internet Protocol (IP) packet 200 used in the present invention. The IP packet comprises an IP header 210 and an IP payload 320. The IP payload comprises a UDP (User Datagram Protocol) packet 221 comprising a UDP
header 222 and a UDP payload 224. A RTP packet 230, a stream integrity check 226 and a cyclic redundancy check (CRC) 228 is illustratively contained in the UDP
payload 224. In one embodiment of the IP packet 200, the IP header 210 is 20 bytes, the UDP
header 222 is 8 bytes, the stream integrity check field 226 is 4 bytes and the CRC field 228 is 4 bytes.
FIG. 2B depicts one embodiment of a Realtime Transport Packet (RTP) 230 contained in a payload section 220 of the IP packet 300 of FIG.2A. The RTP
packet 230 comprises a RTP header 240 and a RTP payload 250. Five MPEG-2 packets 352, 354, 356, 358 and 360 are illustratively contained in each RTP payload 250. The number of MPEG-2 packets in the RPT payload 250 corresponds to the buffer space in the Fibre Channel controller in the packet processor 144.
For the embodiment shown in FIGS. 3A-3B, the transcoding may also include compression of the IP header 310, the UDP header 322 and the RTP header 340.
The compression of these headers 310, 322 and 340 optimizes the stor~me of content on the storage medium 146 of the stream caching server 102. Additionally, the lranscodin~ may include encryption of the content.
Compression of the IP header 310 may include compression of non-address fields, and deletion of source and destination IP addresses. The IP source address is subseduently decompressed (at the packet processor 144) as the IP address at the output interface of the stream caching server 102. The IP destination address is assigned prior to streaming and is based upon the data link converter 1 12, 118 or 126 or edge device for the target access network 106, 108 or 1 10.
S
The compression of the UDP header 322 may delete source and destination port numbers in the storage medium 146. New values are then assigned to the source and destination port numbers prior to str~:amin~ of content over the stream distribution network 104. The source port number is assigned a unique stream number with IP
addresses. The destination port number is assigned a unique target stream number within the data link converter 112, 118 or 126 or the target edge device.
Once encapsulated into the IP format, the content is then uploaded to the http server 148 via the modem 114 and the LAN/WAN 106. The HTTP server 148 provides a user interface, e.g., a HTML (HyperText Markup Language) page, for the user to upload the content to the stream caching server 102. The http server 148 also transmits the transcoded content upstream to the data link converter 112 via the LAN/WAN 106. The data link converter 112 modulates the encapsulated content for upstream transmission over the distribution network 104 for storage in the stream caching server 102.
The preprocessing of the present invention is not limited to a computer terminal I I6 uploading content over a LAN/WAN 106. For example, the encapsulation may also occur in the computer terminal 1 16 prior to uploading to content to the http server 148.
Additionally, the preprocessing may be initiated from a computer terminal 122 or digital video recorder 124 over a carrier network 108, e.g., a T-1 or T-3 line. As such, a user of any computer terminal 116 and 122 author multimedia content over a network, e.g., Internet, and store the content in a virtual video shelf at the stream caching server 102 for playback by other users. The preprocessing is also applicable to content from a content provider such as a movie manufacturer.
The preprocessing may also include the creation of metadata once the processor executes the applet 154. The metadata generally contains a variety of information about the content to be stored on the stream caching server 102 and streamed to a viewer or subscriber terminal. One embodiment of the metadata is in the form of a data structure that is prepended prior to a file associated with the content.
The metadata may comprise many different types of information used by the stream caching server 102 in steaming the content to a viewer device or subscriber terminal. One type of metadata that identify the content include title, author, screenwriter, actors, length of play, timing information, play rate, e.g., constant bit rate (CBR) or variable bit rate (VBR), genre of content, size of content, and the like. Other forms of metadata indicate the type of content and the type of player used to play the content. Illustrative types of content include AVI, MPEG-1, MPEG-2, MPEG-4, MP3, Quicktime, and Moving JPEG. The metadata may also include MPEG7 structure including scene descriptions and indices.
Exemplary types of player devices include MPEG-1 player, MPEG-2 player, MPEG-4 player, Microsoft Media Player, Real Video / Real Audio Player, and Quicklime Player.
The metadata may include pricing information and restrictions to view the content from the server 102. A user or service provider may preset the price and access restrictions that are required to view the preprocessed content from the server 102.
Pricing information include a price to view the content, applicable discounts associated with viewing the content, and applicable package deals when ordering the preprocessed content with other content selections. Access restrictions include rating of content, viewing window information and sales window information. The viewing window is a Graphical interface that requires a subscriber to enter a correct password to receive the content from the server 102. The sales window is a graphical interface that requires a subscriber to pay for viewing a particular content selection.
The metadata comprises indexing at IP packet boundaries, e.g., Group of Pictures (GOP) boundaries and frame boundaries. This indexing enables the stream cachin~~ server 102 in responding to an interactive VCR like commands, e.g., fast forward (FF), rewind (REW), pause, stop, bookmark, and return to place. Specifically, the indexin«
information supports random frame access at a content stream ~~ranularity, separate FF and REW tracks, random frame access of FF and REW tracla, pause/play, bookmarks for each active subscriber, and DVD scene selection. Additionally, the metadata may also include markers for changes in variable bit rate (VBR) and statistical multiplexing.
The indexing enables the use of MPEG-7 based descriptors for indexed access of content. Tire indexing of content can be on a per frame basis or a per GOP
basis. MPEG-7 based descriptors include a length of descriptor, i.e., from a start frame to an end frame, and a schema for a database of indices. The database is a hierarchical based database that allows for hierarchical scene description. For example, a root index may represent a scene of Paris, while a branch index may represent a scene of the Eiffel Tower.
The indexing is also used for stream creation. In one embodiment, the stream is created in realtime from a single MPEG-2 or MPEG-4 content stream, e.g., a start GOP to an end GOP, or a start frame to an end frame. In a second embodiment, the stream is created in non real time and the modified stream file is stored. In a third embodiment, the stream is transcoded or re-encoded such that a reference frame or I-frame is forced to be the frame with information desired in an index, even if the frame an-ived in the packet processor 144 as a predictive frame, e.g., B-frame or P-frame. Stream indexing wilt also be discussed below with respect to FIG. 3.
Once the preprocessed content is uploaded, the stream caching server 102 may store and stream the preprocessed content, or alternatively stream the content in real time. The streaming of content encapsulated in IP format enables the stream caching server 102 to stream content to subscribers via different types of access networks 106, 108 and 1 10. As IS such, only one stream caching server 102 and one distribution network 104 is required to provide scalable streaming. Namely, one stream caching server 102 may stream content to the LAN/WAN 106, the carrier network 108, the cable network 110 and any other access network that supports IP. This greatly reduces the hardware cost at the head end 138, as the prior art requires a streaming caching server 102 and a distribution network 104 for each type of access network 106, 108 and 110.
For example, the server 102 may stream content to a private Local Area Network (LAN) or Wide Area Network (WAN) 106. Specifically, the system 100 may stream content through the stream distribution network 104 to a digital link converter 1 12, the LAN or WAN 106, a modem I 14 and a display device coupled to a computer terminal 1 16.
?5 If a user decides to request content from the server 102 or uplink content, e.g., a home movie, to the server 102, that request or content would travel upstream in a path reverse to that of the downstreamed content. The digital link converter 112 modulates the program content for transmission via the private LAN/WAN 106. Additionally, the data link converter 112 extracts a MPEG formatted program content from the RTP formatted stream from the stream distribution network 104 and transcodes the program consent into a format that is supported by the LAN/WAN 106. One example of the data link converter 112 is a DIVA Digital Link (DDL 500) that performs quadrature amplitude modulation (QAM) on the downstream program content. The LAN or WAN 106 is a private network provided by a private party or an Internet Service Provider (ISP). The modem 1 14 demodulates video content for viewing on the computer terminal 116.
The server 102 may also stream content via the stream distribution network 104 to a data link converter 118, a carrier network 108, a digital subscriber line access multiplexes (DSLAM) 119, an x-DSL modem 1~0 to either a computer terminal 122 or a di<~ital video recorder (DVR) 124. A request for content or upload of content would travel in the reverse path taken by the downstream content. The carrier network 108 may include a T-1 or T- 3 transmission link. The data link converter 118 multiplexes the downstream content for transmission via the cagier network 108. Additionally, the data link converter 118 may extract MPEG packets from the IP formatted stream from the stream distribution network 104. The DSLAM I 19 demultiplexes the downstream content to a particular xDSL
modem 120. The xDSL modem 120 demodulates the content for viewing on a computer terminal 122 or a display device (not shown) coupled to the DVR 124. The xDSL modem l20 may comprise a ADSL (asynchronous digital subscriber line) modem, a VDSL (very high data rate digital subscriber line), and the like.
The server 100 may also stream content (or program content selection) via the stream distribution network 104 to a data link converter 126, the cable network 1 10 to either a set top terminal 128 or a cable modem that is coupled to a computer terminal 130 or a DVR 132. The data link converter 126 operates in a similar manner to the di<~itul lint:.
converter I 12 except to format the content for transmission in the cable network 1 l0. The content is transmitted from the cable network 110 to a set top terminal 128 or a cable modem 130 that demodulates the program content for viewing on a computer terminal 132 or a display device coupled to the DVR 134. A request from a cable subscriber or user is processed via the cable network I 10, the OOB (out of band) roofer 136 and the modulator 126 that modulates the request back to the stream distribution network 104.
Although the system 100 is illustratively shown to stream program content to the LAN/WAN 106, the PSTN 108 and the cable network 1 10, the system 100 may also stream content to other types of access networks. 1~or example, the system 100 may also stream program content to satellite anc terrestrial networks. Additionally, each system 100 actually streams content over rr;any more access networks and subscriber terminals than the example shown in FIG. 1.
The stream caching server 102 is located at the local head end 138 with an infrastructure system manager 140, a switch 142 and a packet processor 144.
The stream caching server 102 comprises a storage medium 146 to store the content preprocessed in accordance to the present invention. One configuration of the storage medium 146 is a redundant set of disk arrays, e.g., Redundant Array of Inexpensive Disks (RAID).
The infrastructure system manager 140 coordinates a (user) request from the subscriber terminal by passing the request to the stream caching server 102 and establishing a session between the subscriber terminal and the stream caching server 102.
An exemplary infrastructure system manager 140 is the DIVA System Manager (DSM).
As disclosed in U.S. Application , Attorney docket DIVA 256, entitled "Method and Apparatus for Managing an Integrated Information Distribution System", which is fully incorporated by reference in its entirety. The switch 142 routes the user request from the stream distribution network 104 to the system manager 140.
Additionally, the switch 142 routes the retrieved content from the stream caching server 102 to the packet processor 144.
The storage medium 148 stores the preprocessed content in an IP format. The content is configured as a plurality of MPEG, e.~., MPEG-2 or MPEG-4, packets contained in a payload of a RTP packet within an IP packet. For example, the payload of each RTP
packet may contain five MPEG-2 packets. The structure of the 1P packet is shown to F1G.
3B. The RTP format (RFC 1889) minimizes the latency in streaming content from the ?5 server, by supporting the streaming of content in real time. Additionally, the content in the IP packet can be configured to have a minimal Quality of Service (QoS), e.g., data latency.
The packet processor 144 postprocesses the content into a format supported by a particular type of player and access network 106, 108 and 110 used to receive the content from the stream caching server 102. Such a player is either a software module downloaded from a HTTP server 116 to a computer terminal 122, a hardware module coupled to a subscriber terminal, or a card inserted into a subscriber terminal. Exemplary players include a MPEG-1 player, a MPEG-2 player, a MPEG-4 player, a Microsoft Media Player, a Real Video/Real Audio Player, a Quicklime Player, a Wireless Device Video or Audio Player, and the like.
The packet processor 144 transcodes the content is performed without disturbing the IP format. For example, the packet processor 144 separates the content, e.g., packets, and header information in the IP packet, transcodes the content packets into a desired format supported by the access network and downstream player, and combines the transcoded packets with the header information to recreate the IP packet. Such transcodin~~
is performed at an elementary packet level for transmitting= at the transport packet level.
Additional functions performed by the packet processor 144 include fitter cowection, creatin'> of a PES (packet elementary stream), stream splicing, and statistical multiplexing. .
More specifically, the transcodin'~ includes the conversion content in the RTP
payload into a format Suitable for the access network 106, 108 and I 10, but the transcoded IS content is still encapsulated in the IP packet stream. Such transcodin~T
may change the format and rate of the content. For example, the transcoding may include the conversion of MPEG-? formatted content into MPEG-I, MPEG-4, AVI, Moving JPEG, MP3, Quicktime, Wireless Applications Protocol content, and the like. The transcoding is performed in accordance to an extended Real Time Streaming Protocol (RTSP - RFC 23?6) such that ?0 stream manipulations conform to Internet standards and arc applicable to any access networks that support IP.
Additionally, the exact manner of the transcodin8 depends on the available bandwidth in the access network used to receive the content at the player. For example, the packet processor 144 may perform statistical multiplexing to dynamically allocate the 25 amount of available bandwidth for streaming content to a particular viewer.
To perform such statistical multiplexing, the packet processor 144 may stream content at either a constant bit rates or variable bit rates.
The transcoding is also adjustable to bandwidth de~radations. To process lossy video, the transcoding may include lossy filtering within frames of content, dropping 30 frames of content, e.g, resulting in a playback rate of ~i0 frames per second to 15 frames per second, and delivering still frames that contain important information. For non-lossy compression, the transcoding may include dropping MPEG null packets, and transcoding or re-encoding content to an acceptable quality.
The packet processor 144 may automatically perform such transcoding, or perform transcoding in accordance to user configured preferences. These preferences may include choices for a particular player, e.g., formatting, play rates, and type of conversion or transcoding. For example, if the player is embodied in software in a PC, then the content is transcoded into MPEG-2 format. However, if the player is a hand held device, then the content is transcoded into JPEG or MPEG-4 format. Additionally, the transcoding may be dynamically performed based on a user preference profile. Such a profile is based either on history or a default preference. For example, if the player is in the PC, the packet processor 144 transcodes the content into MPEG-2 at 4 Mbps and a constant bit rate.
The content in the payload of each RTP packet is sized to minimize the latencies in streaming content from the stream caching server 102 to the distribution network 104. The read block for the packet processor 144 is sized to the MPEG packets in the payload of each RTP packet. The number of MPEG packets in each RTP packet is constrained by an available buffer space in a Fibre Channel controller that is used to read the content.
The content streamed by the stream caching server 102 is not limited to content previously stored in the storage medium 148. In one embodiment, the stream caching server 102 streams content from another remotely located server, i.e., a server located at a remote headend. Such a configuration is further described with respect to FIG.
2.
The manager 140 provides session management for streaming content in accordance to the RTP Control Protocol (RTCP). Such management is particularly important in the case of content streamed to the local stream caching server 102 from the remote server. If any en-ors occurred during the streaming from the remote server, these en-ors are multiplied when the cached or stored content is then streamed to the many subscribers.
RTCP enables the detection and transmission of only the read blocks affected by the streaming en-ors.
FIG. 2 depicts another portion of the interactive information distribution system 100 of FIG. 1. This portion of the system 100 comprises the stream caching server 102 and the infrastructure system manager 140 at the local head end 138, a stream caching server 202 and an infrastructure system manager 204 at a remote head end 206, and a backbone streaming network 210. The stream caching server 202 and the infrastructure system manager 204 at the remote head end 206 operates in a similar manner to the respective stream caching server 102 and the infrastructure system manager 140 at the local head end 138 that were previously described.
The local infrastructure system manager 140 receives a request for a particular content selection and determines whether a user requested content selection is stored in the storage medium 148. If the request content is not in the storage medium 148, the local infrastructure system manager 140 identifies a remote stream caching server 202 that stores the requested program content and provides a (server) request to the remote system manager 204. For example, a local system manager 140 in San Francisco may request content from another remote remotely located server 202 in Boston.
In response to this server request, the local system manager 140 coordinates the streaming remote stream caching server 202 streams the requested program content over the backbone streaming network 210 to the local stream caching server 102. The content is then streamed to the subscriber. If the local system manager 140 determines that there are enough user requests above some predetermined threshold number, then the content from the remote stream caching server 202 is also stored in the local stream caching server 102.
FIG. 4 depicts a flow diagram of a method 400 for implementing the preprocessing of content e.g., a video program, in accordance to one embodiment of the present invention.
The method 400 assumes that a user or subscriber has already downloaded an applet 154 from a http server 115. Specifically, the method 400 starts at step 402 and proceeds to step 404 where preprocessing is initiated when the applet 154 is executed by the processor 150 in the computer terminal 116. At step 406, a query determines whether a user has purchased shelf space. Namely, step 406 determines whether the user has purchased storage space or use of a portion of the storage medium 146 at the stream caching server 102. Step 406 may also cover situations where a user has access to shelf space.
If the user has not purchased shelf space on the storage medium 148, the method 400 proceeds to end at step 424. It the user has already purchased shelf space on the storage medium 148, the method 400 proceeds to step 408, where content is loaded from a WO 01/55877 PCT/USOl/02802 memory 152 of the computer erminal 116. The content may comprise any multimedia presentation, e.g., a home mac a move, created by the user.
At step 410, the method creates metadata for the loaded content. The metadata contains indexing information that enables the stream caching server 102 to respond to user interactivity commands within a group of pictures or approximately one half a second.
Examples of user interactivity commands include fast forward (FF), rewind (REW), pause, stop, bookmark and return to place. Additionally, the metadata includes information that enables the stream caching server 102 to determine the type of file and the resolution of the content.
The method 400 proceeds to step 412 where a query determines whether to transcode content. If no transcoding is required, the method 400 proceeds to step 416.
If transcoding is required, the method 400 proceeds to step 414 where the content is transcoded into a format that is supported by a viewer used to view downstream content.
Step 414 may convert both the format and bit rate of the program content. In one IS embodiment, the content may be transcoded (at a elementary stream level) from MPEG-1, MP3, AVI, Quicklime or Moving formed into MPEG-2 formatted packets. At step 416, the method 400 encapsulates the transcoded content, e.g., MPEG-2 format, into an 1P
packet format (at the transport stream level). As previously described with respect to FIGS.
2A and 2B, storage of content in this IP packet format minimizes the retrieval time when the stored content is retrieved from the storage medium 146 and stream to the distribution network 104.
The method 400 proceeds to step 418, where the transcoded content and metadata is uploaded from the computer terminal 116 and into the storage medium 148 of the stream caching server 102. Once the transcoded content is stored at the stream caching server 102, the method 400 enables the user (sender of the content) to establish or set permissions at step 420. This step establishes a subset of users who may access the content from the stream caching server 102. The method 400 proceeds to step 422, where a HTML
page is established at the http server 115 for access by other users. The method 400 ends a step 424.
FIGs. 5A and SB depict a flow diagram of a method for accessing program content that was preprocessed and stored at the stream caching server 102. In one embodiment of the method 500, a user may access the full version of the program content only after correctly entering the password and paying to view the content.
The method 500 starts at step 502 and proceeds to step 504, where a user access a html page and selects a particular program content to be played from the stream caching server. At step 506, the method 500 queries whether the user has entered the correct password as previously established by the owner of the program content. Step 506 may alternatively query for a particular subscriber name or keyword.
If the correct password is not entered, the method 500 ends at step 540. If the correct password is entered, the method 500 proceeds to step 508, where a query determines whether the user has a viewer or player to view the selected program content.
Namely, step 508 determines whether a correct type of viewer or player is detected at the subscriber terminal, e.g., a computer terminal 1 16, 122 or 132. If the correct player is not detected, the method 500 proceeds to download the player at 510 and then proceeds to step 512. If the correct player is detected, the method 500 proceeds directly to step 512.
At step 512, a query determines whether the downloaded player supports playback (of content) at full quality. If the player does not support playing of content at full quality, the method 500 proceeds to step 526. If the player supports playing of content at full quality, the method 400 proceeds to step 514, where a query determines whether the user has paid to view a full quality version of the content, e.g., a program content file . If the user has paid to view the full quality version of the program content, the method 500 proceeds to retrieve the full IP formatted content from the stream caching server 102 at step 516 and streams the retrieved content over the distribution network 104 at step 518. The ?5 method 500 proceeds to step 520, where the data link converter 112, 118 or 126 extracts the content (at the transport level) from the IP packets, content or MPEG-2 packets from the 1P
formatted content. At step 522, a query determines whether to transcode the extracted content. Such transcoding is required to satisfy constraints in (downstream) transmitting the content over the access network 106, 108 and 1 10, and for playing the content on the viewer. If transcodina is not required, the method 400 proceeds to step _536.
If transcodin~
is required, the method 400 transcodes the content at normal quality at step 524 and proceeds to step 536.
Referring back at step 514, if the user has not fully paid to view the full quality version of the content, the method 500 proceeds to step 526. At this step 526, the method 500 proceeds to retrieve a sample or predefined portion of the IP formatted content (file) from the stream caching server 102 at step 526. The method 500 then proceeds to stream the retrieved portion over the distribution network 104 at step 528 and extract the content, e.g., MPEG-2 packets, from the IP formatted content at step 530 . The method proceeds to step 532, where a query determines whether to transcode the extract content for transmission over the access network 106, 108 or 110 and for playback on the viewer or player. If no transcoding is required, the method 500 proceeds to step 536. If transcoding is required, the method 550 proceeds to transcode the partial content at low quality at step 534 and then to step 536.
At step 536, the method 500 sends the transcoded content the subscriber terminal, IS e.g. a computer terminal 116, 122 and 132 via the access network 106, 108 and 110. The method 500 proceeds to play either the full or partial quality content at step 538 and ends at step 540.
FIG. 3 depicts a data structure useful in understanding an embodiment of the present invention. Specifically, FIG. 3 depicts a content stream 310 including a plurality of index points denoted as I,, I, and so on up to I~ (collectively index points I). It will be appreciated that while the index points I, through I,~~ are depicted as being spaced in an approximately even manner, there is absolutely no requirement for such equal spacing of the indices. Each index point represents an appropriate stream entry point beginning with, for example, an I-frame in the case of an MPEG content stream. Each indexed portion may be long or short, may comprise for example an entire scene or a plurality of scenes, other index divisions may be used.
FIG. 3 also depicts a sub-stream 320 comprising a plurality of index points denoted as i,, i, and so on up to i~. For purposes of this discussion, it is assumed that the sub-stream comprises portions of content between index point I, and index point I;, yet not portions of the content traversing those index boundaries. The shaded portion of content stream 310 depicts the content within the sub-stream. The shaded portions of the sub-stream 320 depict content that is not included within the sub-stream. It is noted that the sub-stream may be stored as a separate entity along with the content stream 310. The sub-stream may comprise those image frames associated with a portion of content indexed according to the MPEG-7 standards. For example, in the case of a movie having a plurality of scenes, where objects within the scenes of the movie have been indexed according to the MPEG-7 format, a particular object (e.g., a sunset, classic automobile or actor) may be associated with an object or a group of objects represented within the content stream 310. Thus, the sub-stream 320 stores content specifically associated with a desired object so that such content may be retrieved.
It is noted that in retrieving a sub-stream it is desirable for the first frame, for example an MPEG-2 stream, to comprise un intra-coded frame (an I-frame). As such, since it is possible for the desired content to be included in the content stream 310 at a point comprising a non I-frame, the sub-stream 320, when created, includes transcoding of at least the first frame within the sub-stream into an intra-frame coding format.
Additionally, if desired, each of the index points within the sub-stream may be reencoded to insure that these points uls~ comprise 1-frames. It is noted that many sub-streams may be generated and stored and associated with the main content stream.
In one embodiment of the invention, local content is loaded onto a client, such as a ?0 set-top terminal or computer, from a local content source such as a video cassette recorder (VCR), digital video recorder (DVR), personal video recorder (PVR), computer or other storage and/or content source. For example, local content may be loaded onto the set toy terminal or streamed to the set top terminal from a camera, live video und/c~r live audio feed. The content loaded onto the set top terminal is transcoded using a transcodin'~
application. If the client does not have an appropriate transcoding application, such transcoding application is downloaded from a server within the system. The transcoding application is used to transcode the loaded content into a desired player format. For example, if the loaded content comprises streaming video and audio at baseband, then such streaming video and audio may be encoded according to any one of the formats previously discussed (e.g., AVI, MPEG, etc.). In the case of the locally loaded content being encoded according to a first format that s not desired, then the content so encoded is transcoded using the transcoding applicati~m to produce content in the desired player format. The transcoded local content is then encapsulated in a desired transport format.
The desired transport format is a transport format adapted to a particular access network.
The particular formats associated with various access networks are described above. The transport encapsulated content is then encapsulated in a realtime protocol packet, such as described above. The RTP packet stream is then uploaded to the server for subsequent distribution to clients (i.e., set-top terminals or computers) utilizing the desired player format via access networks utilizing the desired access network transport format.
In addition to uploadin~7 encapsulated data to the server, the client may also provide access right data to the server for subsequent use in determining who may view the content, who may use the content, how long the content may be viewed, how long the content may be used, which geographic region the viewer or user is in, which set or sub-set of clients within a particular system are to have access, which passwords, if any, are to be used and so on.
As an example, in the case of a set-top teminal associated with a user wishing to share video imagery of a new baby, the video ima~Tery and associated audio information may be input to a set-top terminal from the video camera. The set-top terminal then uses a coding or transcoding application to encode the video and audio information according to a desired format, such as the above-mentioned AVI format. Assuming that the subscribers within a system who are to receive this imagery (e.g , friends and neighbors) are within a system having an access network utilizing the MPEG-2 transport format, the set-top terminal or client will then transport encode the AVI encoded content to produce an MPEG-2 transport stream. The MPEG-2 transport stream comprising the AVI
encoded content will be further transport encoded according to the realtime protocol techniques described above. The RTP encoded content and associated access information (e.g., passwords for family members and the like) is then uploaded to the server for subsequent distribution on demand to the appropriate viewers or users.
Although various embodiments which incorporate the teachings of the p~°esent invention have been shown and described in detail herein, those skilled in the art can readily devise many other varied embodiments that still incorporate these teachings.
Claims (30)
1. Method for preprocessing content for a stream caching server in an interactive information distribution system, said method comprising:
retrieving content in a first subscriber terminal;
transcoding said retrieved content into a plurality of MPEG packets;
uploading said transcoded content a http server coupled to an access network;
encapsulating said transcoded content in accordance to an Internet Protocol (IP) format supported by said stream caching server; and transmitting said encapsulated content for storage in said stream caching server.
retrieving content in a first subscriber terminal;
transcoding said retrieved content into a plurality of MPEG packets;
uploading said transcoded content a http server coupled to an access network;
encapsulating said transcoded content in accordance to an Internet Protocol (IP) format supported by said stream caching server; and transmitting said encapsulated content for storage in said stream caching server.
2. The method of claim 1 further comprising:
downloading an applet to said first subscriber terminal from a http server;
and executing said applet to initiate said retrieving, said transcoding and said uploading.
downloading an applet to said first subscriber terminal from a http server;
and executing said applet to initiate said retrieving, said transcoding and said uploading.
3. The method of claim 1 further comprising:
creating metadata for said content, where said metadata comprises indexing information used by said stream caching server in response to a command provided by a user viewing said content at a second subscriber terminal; and uploading said metadata with said content.
creating metadata for said content, where said metadata comprises indexing information used by said stream caching server in response to a command provided by a user viewing said content at a second subscriber terminal; and uploading said metadata with said content.
4. The method of claim 3 wherein said metadata is encapsulated with said transcoded content in said IP format.
5. The method of claim 4 wherein said command comprises at least one of fast forward (FF), rewind (REW), pause, stop, bookmark, and return to place.
6. The method of claim 1 where said retrieved content in said first subscriber terminal is one of an AVI file, a MPEG-1 file and a moving JPEG file.
7. The method of claim 1 wherein said plurality of MPEG packets is contained in a payload of an IP packet.
8. The method of claim 7 wherein said plurality of MPEG packets is contained in a payload of a Realtime Transfer Protocol (RTP) packet contained in a payload of an IP
packet.
packet.
9. The method of claim 1 wherein said plurality of MPEG packets comprises a plurality of one of a MPEG-2 packet and a MPEG-4 packet.
10. The method of claim 1 said IP formatted content is retrieved from said streaming cache server in response to a request for content from a second subscriber terminal, and streamed via a distribution network and said access network to said second subscriber terminal.
11. The method of claim 1 said IP formatted content is retrieved from said streaming cache server in response to a request for content from another stream cache server, and streamed to from said caching server to that other caching server.
12. The method of claim 1 wherein said retrieving of RTP formatted content and said streaming are conditioned upon a user of said second subscriber terminal providing a correct password to a http server as configured by a user of said first subscriber terminal.
13. The method of claim 1 wherein said access network comprises one of a wide area network, a local area network, a cable network, a carrier network, a satellite network and a wireless terrestrial network.
14. A system for preprocessing content for a stream caching server in an interactive information distribution system, said system comprising:
a first subscriber terminal for receiving content, transcoding said content into a plurality of MPEG packets, and of loading said transcoded content to an access network;
and a digital link for encapsulating said transcoded content in accordance to an Internet Protocol (IP) supported by said stream caching server, and transmitting said encapsulated content to said stream caching server.
a first subscriber terminal for receiving content, transcoding said content into a plurality of MPEG packets, and of loading said transcoded content to an access network;
and a digital link for encapsulating said transcoded content in accordance to an Internet Protocol (IP) supported by said stream caching server, and transmitting said encapsulated content to said stream caching server.
15. The system of claim 14 further comprising:
a http server, coupled to said access network, for providing an applet to said first terminal and for providing a user interface for a user of said first subscriber terminal.
a http server, coupled to said access network, for providing an applet to said first terminal and for providing a user interface for a user of said first subscriber terminal.
16. The system of claim 15 wherein said first subscriber terminal downloads an applet from said http server, and executes said applet to initiate said receiving, transcoding and uploading.
17. The system of claim 14 wherein said first terminal creates metadata for said content upon executing said apples, where said metadata comprises indexing information used by said caching stream server in response to a command provided by a user viewing said content at a second subscriber terminal.
18. The system of claim 17 wherein said metadata is encapsulated with said IP
content in said IP format.
content in said IP format.
19. The system of claim 17 wherein said command comprises at least one of fast forward (FF), rewind (REW), pause, stop, bookmark, and return to place.
20. The system of claim 14 wherein said plurality of MPEG packets is contained in a payload of an IP packet.
21. The system of claim 20 wherein said plurality of MPEG packets is contained in a payload of a Realtime Transfer Protocol (RTP) packet contained in a payload of an IP
packet.
packet.
22. The system of claim 14 wherein said plurality of MPEG packets comprises a plurality of one of a MPEG-2 packet and a MPEG-4 packet.
23. The system of claim 15 further comprising:
a second subscriber terminal for sending a request for content to said http server and for receiving said content retrieved from said stream caching server and streamed via a distribution network and said access network.
a second subscriber terminal for sending a request for content to said http server and for receiving said content retrieved from said stream caching server and streamed via a distribution network and said access network.
24. The system of claim 14 further comprising:
a remote stream caching server for streaming said content to said stream caching server in response to content from said stream caching server.
a remote stream caching server for streaming said content to said stream caching server in response to content from said stream caching server.
25. The system of claim 14 wherein said retrieval of RTP formatted content and said streaming are conditioned upon a user of said second subscriber terminal providing a correct password to a http sever as configured by a user of said first subscriber terminal.
26. The system of claim 14 wherein said access network comprises one of a wide area network, a local area network, a cable network, a carrier network, a satellite network, and a terrestrial wireless network.
27. A method for use in a client server system, comprising:
loading, into a client, content local to said client;
loading into said client as necessary, the transcoding application from said server, said transcoding application operative to transcode or encode content into a desired player format;
transcoding or encoding said loaded content into said desired player format;
encapsulating said transcoded content into a desired transport format; and uploading said encapsulated content to said server.
loading, into a client, content local to said client;
loading into said client as necessary, the transcoding application from said server, said transcoding application operative to transcode or encode content into a desired player format;
transcoding or encoding said loaded content into said desired player format;
encapsulating said transcoded content into a desired transport format; and uploading said encapsulated content to said server.
28. The method of claim 27, further comprising the step of:
uploading to said server access rights associated with said encapsulated data.
uploading to said server access rights associated with said encapsulated data.
29. The method of claim 28, wherein said access rights comprise at least one of a password protection scheme, a time-to-view parameter, a time-to-use parameter, a defined use population and a defined geographic population.
30. The method of claim 26, wherein said step of encapsulating comprises the steps of:
first encapsulating said transcoded content according to a transport format adapted to a predefined access network; and further encapsulating said transport formatted content within a realtime protocol (RTP) packet adapted to an Internet protocol (IP) network.
first encapsulating said transcoded content according to a transport format adapted to a predefined access network; and further encapsulating said transport formatted content within a realtime protocol (RTP) packet adapted to an Internet protocol (IP) network.
Applications Claiming Priority (13)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17885700P | 2000-01-28 | 2000-01-28 | |
US17879500P | 2000-01-28 | 2000-01-28 | |
US17881000P | 2000-01-28 | 2000-01-28 | |
US17880900P | 2000-01-28 | 2000-01-28 | |
US60/178,809 | 2000-01-28 | ||
US60/178,795 | 2000-01-28 | ||
US60/178,857 | 2000-01-28 | ||
US60/178,810 | 2000-01-28 | ||
US09/772,288 | 2001-01-29 | ||
PCT/US2001/002802 WO2001055877A1 (en) | 2000-01-28 | 2001-01-29 | A system for preprocessing content for streaming server |
US09/772,287 US7159235B2 (en) | 2000-01-28 | 2001-01-29 | Method and apparatus for content distribution via non-homogeneous access networks |
US09/772,287 | 2001-01-29 | ||
US09/772,288 US7159233B2 (en) | 2000-01-28 | 2001-01-29 | Method and apparatus for preprocessing and postprocessing content in an interactive information distribution system |
Publications (1)
Publication Number | Publication Date |
---|---|
CA2398071A1 true CA2398071A1 (en) | 2001-08-02 |
Family
ID=27558688
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CA002398071A Abandoned CA2398071A1 (en) | 2000-01-28 | 2001-01-29 | A system for preprocessing content for streaming server |
CA2397975A Expired - Lifetime CA2397975C (en) | 2000-01-28 | 2001-01-29 | Method and apparatus for content distribution via non-homogeneous access networks |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CA2397975A Expired - Lifetime CA2397975C (en) | 2000-01-28 | 2001-01-29 | Method and apparatus for content distribution via non-homogeneous access networks |
Country Status (4)
Country | Link |
---|---|
EP (1) | EP1252576A4 (en) |
AU (2) | AU2001234579A1 (en) |
CA (2) | CA2398071A1 (en) |
WO (2) | WO2001055877A1 (en) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7159235B2 (en) | 2000-01-28 | 2007-01-02 | Sedna Patent Services, Llc | Method and apparatus for content distribution via non-homogeneous access networks |
EP1227615A1 (en) * | 2000-08-08 | 2002-07-31 | Semiconductores Investigaci n Y Diseno S.A. -(SIDSA) | Methods and systems for the broadcast internet, audio or video contents without prior agreement with the service provider or return channel |
FI20011871A (en) * | 2001-09-24 | 2003-03-25 | Nokia Corp | Processing of multimedia data |
JP4132788B2 (en) | 2001-11-15 | 2008-08-13 | 三菱電機株式会社 | Data communication device |
EP1379054A1 (en) * | 2002-06-27 | 2004-01-07 | Sony International (Europe) GmbH | Data distribution system in a multiple network environment |
US7043559B2 (en) | 2002-06-27 | 2006-05-09 | Seiko Epson Corporation | System for distributing objects to multiple clients |
KR100365839B1 (en) * | 2002-08-22 | 2002-12-31 | Huwell Technology Inc | System for real time service using interactive data communication and method thereof |
WO2004034674A1 (en) * | 2002-09-30 | 2004-04-22 | Popwire.Com | Dynamic transferring software/protocol |
US7675901B2 (en) | 2003-01-09 | 2010-03-09 | Thomson Licensing | Method and an apparatus for mapping an MPEG transport stream into IP packets for WLAN broadcast |
US20080313681A1 (en) * | 2004-01-29 | 2008-12-18 | Woundy Richard M | System and Method for Failsoft Headend Operation |
DE102004014426A1 (en) * | 2004-03-19 | 2005-10-27 | Zirhli, Münevver | Flexinux system e.g. for data compression of internet, uses spook streaming server to compress signals on video card |
KR100899462B1 (en) | 2004-07-21 | 2009-05-27 | 비치 언리미티드 엘엘씨 | Distributed storage architecture based on block map caching and vfs stackable file system modules |
BRPI0811833B1 (en) | 2007-07-02 | 2020-12-29 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V | device and method for storing and reading a file having a media data container and a metadata container |
CN101828351B (en) | 2007-09-19 | 2014-05-07 | 弗劳恩霍夫应用研究促进协会 | Apparatus and method for storing and reading file having media data container and metadata container |
US10165029B2 (en) * | 2014-01-31 | 2018-12-25 | Fastly Inc. | Caching and streaming of digital media content subsets |
CN112732769A (en) * | 2018-12-27 | 2021-04-30 | 王梅 | Method and system for carrying out hierarchical expansion on data acquisition requests in Internet |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6119154A (en) * | 1995-07-14 | 2000-09-12 | Oracle Corporation | Method and apparatus for non-sequential access to an in-progress video feed |
US5838678A (en) * | 1996-07-24 | 1998-11-17 | Davis; Joseph W. | Method and device for preprocessing streams of encoded data to facilitate decoding streams back-to back |
US5856973A (en) * | 1996-09-10 | 1999-01-05 | Thompson; Kenneth M. | Data multiplexing in MPEG server to decoder systems |
US6157675A (en) * | 1997-04-04 | 2000-12-05 | Sony Corporation | Image transmission device and image transmission method |
JP4832619B2 (en) * | 1997-04-07 | 2011-12-07 | エイ・ティ・アンド・ティ・コーポレーション | System and method for processing audio-visual information based on an object |
US6166729A (en) * | 1997-05-07 | 2000-12-26 | Broadcloud Communications, Inc. | Remote digital image viewing system and method |
US5928331A (en) * | 1997-10-30 | 1999-07-27 | Matsushita Electric Industrial Co., Ltd. | Distributed internet protocol-based real-time multimedia streaming architecture |
-
2001
- 2001-01-29 WO PCT/US2001/002802 patent/WO2001055877A1/en active Application Filing
- 2001-01-29 AU AU2001234579A patent/AU2001234579A1/en not_active Abandoned
- 2001-01-29 CA CA002398071A patent/CA2398071A1/en not_active Abandoned
- 2001-01-29 AU AU2001237978A patent/AU2001237978A1/en not_active Abandoned
- 2001-01-29 CA CA2397975A patent/CA2397975C/en not_active Expired - Lifetime
- 2001-01-29 WO PCT/US2001/002602 patent/WO2001055860A1/en active Application Filing
- 2001-01-29 EP EP01910365A patent/EP1252576A4/en not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
WO2001055860A1 (en) | 2001-08-02 |
AU2001234579A1 (en) | 2001-08-07 |
WO2001055877A1 (en) | 2001-08-02 |
EP1252576A1 (en) | 2002-10-30 |
EP1252576A4 (en) | 2006-06-07 |
CA2397975C (en) | 2016-11-01 |
CA2397975A1 (en) | 2001-08-02 |
AU2001237978A1 (en) | 2001-08-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7159233B2 (en) | Method and apparatus for preprocessing and postprocessing content in an interactive information distribution system | |
US10257246B2 (en) | Content distribution via a distribution network and an access network | |
US8302144B2 (en) | Distribution of content in an information distribution system | |
US20180332094A1 (en) | Systems, Methods, and Media for Streaming Media Content | |
US20190199768A1 (en) | Apparatus, system, and method for adaptive-rate shifting of streaming content | |
US7359980B2 (en) | Progressive streaming media rendering | |
US20060277316A1 (en) | Internet protocol television | |
US8554941B2 (en) | Systems and methods for distributing video on demand | |
US7080400B1 (en) | System and method for distributed storage and presentation of multimedia in a cable network environment | |
CA2398071A1 (en) | A system for preprocessing content for streaming server | |
JP2007515114A (en) | System and method for providing video on demand streaming delivery enhancements | |
US20150237398A1 (en) | Internet protocol television | |
KR100524770B1 (en) | Service apparatus and method of video on demand | |
US20050086354A1 (en) | Preparing multimedia content | |
US9924239B2 (en) | Video on demand over satellite | |
EP1250651B1 (en) | Method and apparatus for content distribution via non-homogeneous access networks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
EEER | Examination request | ||
FZDE | Discontinued |