A method for real-time broadcasting from a transmitting computer to one or more client computers over a network, including providing at the transmitting computer a data stream having a given data rate, and dividing the stream into a sequence of slices, each slice having a predetermined data size associated therewith. The slices are encoded in a corresponding sequence of files, each file having a respective index, and the sequence is uploaded to a server at an upload rate generally equal to the data rate of the stream, such that the one or more client computers can download the sequence over the network from the server at a download rate generally equal to the data rate. |
Citations|
| US5267334 | Jan 21, 1993 | Nov 30, 1993 | Apple Computer, Inc. | Encoding/decoding moving images with forward and backward keyframes for forward and reverse display | | US5404446 | Mar 26, 1993 | Apr 4, 1995 | International Business Machines Corporation | Dual buffer video display system for the display of asynchronous irregular frame rate video data | | US5841432 | Feb 9, 1996 | Nov 24, 1998 | | Method and system of building and transmitting a data file for real time play of multimedia, particularly animation, and a data file for real time play of multimedia applications |
Referenced by|
| US6735634 | Jun 10, 1999 | May 11, 2004 | Blue Coat Systems | Method for real time protocol media recording | | US6769130 | Jan 20, 2000 | Jul 27, 2004 | InterActual Technologies, Inc. | System, method and article of manufacture for late synchronization during the execution of a multimedia event on a plurality of client computers | | US6941383 | Jan 20, 2000 | Sep 6, 2005 | InterActual Technologies, Inc. | System, method and article of manufacture for java/javascript component in a multimedia synchronization framework | | US6944621 | Jan 3, 2000 | Sep 13, 2005 | InterActual Technologies, Inc. | System, method and article of manufacture for updating content stored on a portable storage medium | | US6971110 | Feb 19, 2000 | Nov 29, 2005 | Hewlett-Packard Development Company, L.P. | System and method to pace event sharing collaboration across multiple distributed applications | | US7016967 | Nov 8, 2001 | Mar 21, 2006 | Northrop Grumman Corporation | Methodology for fast file transfer protocol | | US7021532 | Jun 2, 2004 | Apr 4, 2006 | American Express Travel Related Services Company, Inc. | Transaction authorization system and method | | US7093191 | Dec 21, 2001 | Aug 15, 2006 | Virage, Inc. | Video cataloger system with synchronized encoders | | US7136577 | Jun 29, 2000 | Nov 14, 2006 | Tandberg Telecom AS | RTP-formated media clips | | US7149973 | Nov 5, 2003 | Dec 12, 2006 | Sonic Foundry, Inc. | Rich media event production system and method including the capturing, indexing, and synchronizing of RGB-based graphic content | | US7178106 | Aug 21, 2001 | Feb 13, 2007 | Sonic Solutions, a California corporation | Presentation of media content from multiple media sources | | US7188193 | Jan 20, 2000 | Mar 6, 2007 | Sonic Solutions, a California corporation | System, method and article of manufacture for a synchronizer component in a multimedia synchronization framework | | US7222163 | Apr 6, 2001 | May 22, 2007 | Virage, Inc. | System and method for hosting of video content over a network | | US7260564 | Apr 6, 2001 | Aug 21, 2007 | Virage, Inc. | Network video guide and spidering | | US7269634 | Jan 16, 2003 | Sep 11, 2007 | Sonic Solutions | System, method and article of manufacture for remote control and navigation of local content | | US7295752 | Feb 5, 2002 | Nov 13, 2007 | Virage, Inc. | Video cataloger system with audio track extraction | | US7346920 | Jul 2, 2001 | Mar 18, 2008 | Sonic Solutions, a California corporation | System, method and article of manufacture for a common cross platform framework for development of DVD-Video content integrated with ROM content | | US7379661 | Jun 15, 2005 | May 27, 2008 | Sonic Solutions, a California corporation | Presentation of media content | | US7392481 | Jul 2, 2002 | Jun 24, 2008 | Sonic Solutions, a California corporation | Method and apparatus for providing content-owner control in a networked device | | US7403224 | Sep 10, 2004 | Jul 22, 2008 | Virage, Inc. | Embedded metadata engines in digital capture devices | | US7418492 | Jun 20, 2002 | Aug 26, 2008 | P-Cube Ltd. | System and a method for testing network communication devices | | US7447242 | Mar 15, 2004 | Nov 4, 2008 | Blue Coat Systems, Inc. | Method for real time protocol media recording | | US7448021 | Aug 28, 2000 | Nov 4, 2008 | Sonic Solutions, a California corporation | Software engine for combining video or audio content with programmatic content | | US7454515 | May 20, 2005 | Nov 18, 2008 | Sonic Solutions, A California corporation | Presentation of media content | | US7458091 | Jan 20, 2000 | Nov 25, 2008 | Sonic Solutions, A California Corporation | System, method and article of manufacture for a business layer component in a multimedia synchronization framework | | US7499938 | Sep 30, 2004 | Mar 3, 2009 | Sonic Solutions, A California Corporation | Controlling playback of content stored on a portable storage medium | | US7505992 | Mar 31, 2006 | Mar 17, 2009 | Sonic Solutions, a California corporation | System, method and article of manufacture for updating content stored on a portable storage medium | | US7555257 | Jul 30, 2004 | Jun 30, 2009 | Microsoft Corporation | Stock channel and news channel | | US7567799 | Sep 17, 2004 | Jul 28, 2009 | Microsoft Corporation | Daily diversion channel | | US7577677 | Jun 25, 2004 | Aug 18, 2009 | Sonic Solutions, a California corporation | System, method and article of manufacture for updating content stored on a portable storage medium | | US7577714 | Aug 14, 2006 | Aug 18, 2009 | Microsoft Corporation | Media streaming of web content data | | US7577974 | May 28, 2004 | Aug 18, 2009 | Microsoft Corporation | Movies channel | | US7599395 | Sep 13, 2002 | Oct 6, 2009 | Emblaze V con | Apparatus, method and a computer readable medium for generating media packets | | US7689510 | Dec 16, 2005 | Mar 30, 2010 | Sonic Solutions | Methods and system for use in network management of content | | US7689707 | Sep 8, 2005 | Mar 30, 2010 | International Business Machines Corporation | Exchanging files between computers | | US7711795 | Mar 31, 2006 | May 4, 2010 | Sonic Solutions | System, method and article of manufacture for remote control and navigation of local content | | US7765316 | Oct 10, 2000 | Jul 27, 2010 | Intel Corporation | Scheduling the uploading of information from a client to a server | | US7769827 | May 22, 2007 | Aug 3, 2010 | Virage, Inc. | Interactive video application hosting | | US7779097 | Dec 16, 2005 | Aug 17, 2010 | Sonic Solutions | Methods and systems for use in network management of content | | US7817551 | Apr 1, 2003 | Oct 19, 2010 | Panasonic Corporation | Data reception apparatus and data distribution system | | US7873706 | Mar 19, 2004 | Jan 18, 2011 | CGI Communications, Inc. | System and method for seamlessly providing video content to client systems over a network | | US7877498 | May 31, 2006 | Jan 25, 2011 | International Business Machines Corporation | Method and architecture for processing RTP packets | | US7913156 | Nov 28, 2006 | Mar 22, 2011 | Sonic Foundry, Inc. | Rich media event production system and method including the capturing, indexing, and synchronizing of RGB-based graphic content | | US7934007 | Mar 5, 2005 | Apr 26, 2011 | Intel Corporation | Server side TFTP flow control | | US7941582 | Mar 17, 2010 | May 10, 2011 | Apple Inc. | Method and apparatus for mediating among media applications | | US7962948 | Apr 6, 2001 | Jun 14, 2011 | Virage, Inc. | Video-enabled community building | | US7969987 | Jun 16, 2008 | Jun 28, 2011 | Sprint COmmunications Company L.P. | Internet service node incorporating a bandwidth measurement device and associated methods for evaluating data transfers | | US8041438 | Jun 28, 2007 | Oct 18, 2011 | Apple Inc. | Data-driven media management within an electronic device | | US8099473 | Jun 5, 2009 | Jan 17, 2012 | Apple Inc. | Variant streams for real-time or near real-time streaming | | US8099476 | Jun 5, 2009 | Jan 17, 2012 | Apple Inc. | Updatable real-time or near real-time streaming | | US8130921 | Apr 25, 2008 | Mar 6, 2012 | Voxer IP LLC | Telecommunication and multimedia management method and apparatus | | US8139487 | Feb 28, 2007 | Mar 20, 2012 | Microsoft Corporation | Strategies for selecting a format for data transmission based on measured bandwidth | | US8156089 | Dec 14, 2010 | Apr 10, 2012 | Apple, Inc. | Real-time or near real-time streaming with compressed playlists | | US8166093 | Feb 8, 2002 | Apr 24, 2012 | Warner Music Group, Inc. | Method and apparatus for processing multimedia programs for play on incompatible devices | | US8171509 | Jun 18, 2004 | May 1, 2012 | Virage, Inc. | System and method for applying a database to video multimedia |
Claims1. A method for real-time broadcasting from a transmitting computer to one or more client computers over a network, comprising: - providing at the transmitting computer a data stream having a given data rate;
- dividing the stream into a sequence of slices, each slice having a predetermined data size associated therewith;
- encoding the slices in a corresponding sequence of files, each file having a respective index; and
- uploading the sequence to a server at an upload rate generally equal to the data rate of the stream, such that the one or more client computers can download the sequence over the network from the server at a download rate generally equal to the data rate.
2. A method according to claim 1, and comprising downloading the sequence using an Internet protocol over the network from the server to the one or more client computers. 3. A method according to claim 2, wherein downloading the sequence comprises opening a plurality of download links between one of the client computers and the server, each link characterized by a respective link data rate, and downloading different files in the sequence over different ones of the plurality of links. 4. A method according to claim 3, wherein opening the plurality of links comprises monitoring the data rates of the links and opening a new link in place of one of the links having a data rate lower than a predetermined level. 5. A method according to claim 4, wherein opening the new link comprises retransmitting at least one of the files in the sequence, wherein the at least one of the files was incompletely transmitted over the one of the links having the data rate lower than the predetermined level. 6. A method according to claim 4, wherein opening the new link comprises dropping at least one file out of the sequence, wherein the at least one of the files was incompletely transmitted over the one or more of the links having the data rate lower than the predetermined level. 7. A method according to claim 3, wherein opening the plurality of links comprises opening links such that the data rates of the links taken together are sufficient to download the sequence at the download rate generally equal to the data rate. 8. A method according to claim 2, wherein the one or more client computers decode the sequence and play back the data stream responsive to the indices of the files, at a replay rate generally equal to the data rate. 9. A method according to claim 8, wherein uploading the sequence comprises uploading and updating an index file containing the index of the file in the sequence that was most recently uploaded, and wherein the one or more client computers read the index file to play back the sequence. 10. A method according to claim 9, wherein downloading the sequence comprises selecting a file in the sequence earlier than the file whose index is contained in the index file and downloading at least a portion of the encoded sequence of files beginning with the selected file. 11. A method according to claim 2, wherein encoding the slices comprises encoding slices at a plurality of different quality levels, such that the files corresponding to a given one of the slices have a different, respective data size for each of the quality levels. 12. A method according to claim 11, wherein downloading the sequence comprises determining a data bandwidth of the network between the server and the client computer and selecting one of the quality levels responsive to the determined bandwidth. 13. A method according to claim 2, wherein downloading the sequence comprises downloading the sequence using a protocol selected from a group consisting of HTTP, UDP and RTP. 14. A method according to claim 2, wherein the one or more client computers comprise a plurality of client computers, and wherein downloading the sequence comprises downloading to the plurality of client computers substantially simultaneously. 15. A method according to claim 1, wherein uploading the sequence comprises comparing the upload rate to the data rate and adjusting the upload rate responsive to the comparison. 16. A method according to claim 15, wherein encoding the stream comprises compressing data in the stream at a desired compression ratio, and wherein adjusting the upload rate comprises changing the compression ratio. 17. A method according to claim 15, wherein adjusting the upload rate comprises adjusting the size of one or more of the slices. 18. A method according to claim 1, wherein uploading the sequence comprises opening a plurality of file transfer links between the transmitting computer and the server, each link characterized by a respective link data rate, and uploading different files in the sequence over different ones of the plurality of links. 19. A method according to claim 18, wherein opening the plurality of links comprises opening links such that the data rates of the links taken together are sufficient to upload the sequence at the upload rate generally equal to the data rate. 20. A method according to claim 18, wherein opening the plurality of links comprises monitoring the data rates of the links and opening a new link in place of one of the links having a data rate lower than a predetermined level. 21. A method according to claim 1, wherein uploading the sequence comprises uploading a sequence using an Internet Protocol. 22. A method according to claim 21, wherein uploading the sequence comprises uploading a sequence using FTP. 23. A method according to claim 1, wherein dividing the stream into the sequence of slices comprises dividing the stream into a sequence of time slices, each having a predetermined duration associated therewith. 24. A method according to claim 1, wherein the data stream comprises multimedia data. 25. Apparatus for real-time broadcasting of a data stream having a given data rate over a network, comprising: - a transmitting computer, which divides the stream into a sequence of slices, each slice having a predetermined data size associated therewith, and encodes the slices in a corresponding sequence of files, each file having a respective index, and
- which uploads the sequence to a server at an upload rate generally equal to the data rate, such that one or more client computers can download the sequence over the network from the server at a download rate generally equal to the data rate.
26. Apparatus according to claim 25, wherein the one or more client computers decode the sequence and play back the data stream responsive to the indices thereof, at a data replay rate generally equal to the data rate. 27. Apparatus according to claim 26, wherein the one or more client computers download the sequence using an Internet download protocol. 28. Apparatus according to claim 27, wherein the Internet download protocol is selected from a group consisting of HTTP,UDP and RTP. 29. Apparatus according to claim 26, wherein the one or more client computers comprise a plurality of client computers, which download the sequence substantially simultaneously. 30. Apparatus according to claim 25, wherein the transmitting computer compares the upload rate to the data rate and adjusts the upload rate responsive to the comparison. 31. Apparatus according to claim 30, wherein the transmitting computer compresses the data at a compression ratio which is varied responsive to the comparison. 32. Apparatus according to claim 30, wherein the transmitting computer adjusts the size of one or more of the slices responsive to the comparison. 33. Apparatus according to claim 25, wherein the transmitting computer opens a plurality of links between the transmitting computer and the server, each link characterized by a respective data rate, and transmits different ones of the sequence of files over different ones of the plurality of links. 34. Apparatus according to claim 33, wherein the transmitting computer opens the plurality of links such that the data rates of the links taken together are sufficient to upload the sequence at the upload rate generally equal to the data rate. 35. Apparatus according to claim 33, wherein the transmitting computer monitors the data rates of the links and opens a new link in place of one of the links whose data rate is lower than a predetermined level. 36. Apparatus according to claim 25, wherein the data stream comprises multimedia data. 37. Apparatus according to claim 36, wherein the predetermined data size of each of the slices corresponds to a time duration of the slice. 38. Apparatus according to claim 25, wherein the transmitting computer uploads the encoded sequence using an Internet upload protocol. 39. Apparatus according to claim 38, wherein the Internet upload protocol comprises FTP. 40. Apparatus according to claim 25, wherein the slices are encoded at a plurality of different quality levels, such that the files corresponding to a given one of the slices have a different, respective data size for each of the quality levels. 41. Apparatus according to claim 25, wherein the network comprises the Internet. |