Search Images Videos Maps News Shopping Gmail More »
Advanced Patent Search | Web History | Sign in

Patents

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.

InventorsSharon Carmel, Tzur Daboosh, Eli Reifman, Naftali Shani, Ziv Eliraz, Dror Ginsberg, Edan Ayal
Original AssigneeGeo Interactive Media Group Ltd.
Primary Examiner: Robert B. Harrell
Attorney: Ladas & Parry
Current U.S. Classification709/231
International Classification: G06F/1300

View patent at USPTO
Search USPTO Assignment Database

Citations

Cited PatentFiling dateIssue dateOriginal AssigneeTitle
US5267334Jan 21, 1993Nov 30, 1993Apple Computer, Inc.Encoding/decoding moving images with forward and backward keyframes for forward and reverse display
US5404446Mar 26, 1993Apr 4, 1995International Business Machines CorporationDual buffer video display system for the display of asynchronous irregular frame rate video data
US5841432Feb 9, 1996Nov 24, 1998Method 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

Citing PatentFiling dateIssue dateOriginal AssigneeTitle
US6735634Jun 10, 1999May 11, 2004Blue Coat SystemsMethod for real time protocol media recording
US6769130Jan 20, 2000Jul 27, 2004InterActual Technologies, Inc.System, method and article of manufacture for late synchronization during the execution of a multimedia event on a plurality of client computers
US6941383Jan 20, 2000Sep 6, 2005InterActual Technologies, Inc.System, method and article of manufacture for java/javascript component in a multimedia synchronization framework
US6944621Jan 3, 2000Sep 13, 2005InterActual Technologies, Inc.System, method and article of manufacture for updating content stored on a portable storage medium
US6971110Feb 19, 2000Nov 29, 2005Hewlett-Packard Development Company, L.P.System and method to pace event sharing collaboration across multiple distributed applications
US7016967Nov 8, 2001Mar 21, 2006Northrop Grumman CorporationMethodology for fast file transfer protocol
US7021532Jun 2, 2004Apr 4, 2006American Express Travel Related Services Company, Inc.Transaction authorization system and method
US7093191Dec 21, 2001Aug 15, 2006Virage, Inc.Video cataloger system with synchronized encoders
US7136577Jun 29, 2000Nov 14, 2006Tandberg Telecom ASRTP-formated media clips
US7149973Nov 5, 2003Dec 12, 2006Sonic Foundry, Inc.Rich media event production system and method including the capturing, indexing, and synchronizing of RGB-based graphic content
US7178106Aug 21, 2001Feb 13, 2007Sonic Solutions, a California corporationPresentation of media content from multiple media sources
US7188193Jan 20, 2000Mar 6, 2007Sonic Solutions, a California corporationSystem, method and article of manufacture for a synchronizer component in a multimedia synchronization framework
US7222163Apr 6, 2001May 22, 2007Virage, Inc.System and method for hosting of video content over a network
US7260564Apr 6, 2001Aug 21, 2007Virage, Inc.Network video guide and spidering
US7269634Jan 16, 2003Sep 11, 2007Sonic SolutionsSystem, method and article of manufacture for remote control and navigation of local content
US7295752Feb 5, 2002Nov 13, 2007Virage, Inc.Video cataloger system with audio track extraction
US7346920Jul 2, 2001Mar 18, 2008Sonic Solutions, a California corporationSystem, method and article of manufacture for a common cross platform framework for development of DVD-Video content integrated with ROM content
US7379661Jun 15, 2005May 27, 2008Sonic Solutions, a California corporationPresentation of media content
US7392481Jul 2, 2002Jun 24, 2008Sonic Solutions, a California corporationMethod and apparatus for providing content-owner control in a networked device
US7403224Sep 10, 2004Jul 22, 2008Virage, Inc.Embedded metadata engines in digital capture devices
US7418492Jun 20, 2002Aug 26, 2008P-Cube Ltd.System and a method for testing network communication devices
US7447242Mar 15, 2004Nov 4, 2008Blue Coat Systems, Inc.Method for real time protocol media recording
US7448021Aug 28, 2000Nov 4, 2008Sonic Solutions, a California corporationSoftware engine for combining video or audio content with programmatic content
US7454515May 20, 2005Nov 18, 2008Sonic Solutions, A California corporationPresentation of media content
US7458091Jan 20, 2000Nov 25, 2008Sonic Solutions, A California CorporationSystem, method and article of manufacture for a business layer component in a multimedia synchronization framework
US7499938Sep 30, 2004Mar 3, 2009Sonic Solutions, A California CorporationControlling playback of content stored on a portable storage medium
US7505992Mar 31, 2006Mar 17, 2009Sonic Solutions, a California corporationSystem, method and article of manufacture for updating content stored on a portable storage medium
US7555257Jul 30, 2004Jun 30, 2009Microsoft CorporationStock channel and news channel
US7567799Sep 17, 2004Jul 28, 2009Microsoft CorporationDaily diversion channel
US7577677Jun 25, 2004Aug 18, 2009Sonic Solutions, a California corporationSystem, method and article of manufacture for updating content stored on a portable storage medium
US7577714Aug 14, 2006Aug 18, 2009Microsoft CorporationMedia streaming of web content data
US7577974May 28, 2004Aug 18, 2009Microsoft CorporationMovies channel
US7599395Sep 13, 2002Oct 6, 2009Emblaze V conApparatus, method and a computer readable medium for generating media packets
US7689510Dec 16, 2005Mar 30, 2010Sonic SolutionsMethods and system for use in network management of content
US7689707Sep 8, 2005Mar 30, 2010International Business Machines CorporationExchanging files between computers
US7711795Mar 31, 2006May 4, 2010Sonic SolutionsSystem, method and article of manufacture for remote control and navigation of local content
US7765316Oct 10, 2000Jul 27, 2010Intel CorporationScheduling the uploading of information from a client to a server
US7769827May 22, 2007Aug 3, 2010Virage, Inc.Interactive video application hosting
US7779097Dec 16, 2005Aug 17, 2010Sonic SolutionsMethods and systems for use in network management of content
US7817551Apr 1, 2003Oct 19, 2010Panasonic CorporationData reception apparatus and data distribution system
US7873706Mar 19, 2004Jan 18, 2011CGI Communications, Inc.System and method for seamlessly providing video content to client systems over a network
US7877498May 31, 2006Jan 25, 2011International Business Machines CorporationMethod and architecture for processing RTP packets
US7913156Nov 28, 2006Mar 22, 2011Sonic Foundry, Inc.Rich media event production system and method including the capturing, indexing, and synchronizing of RGB-based graphic content
US7934007Mar 5, 2005Apr 26, 2011Intel CorporationServer side TFTP flow control
US7941582Mar 17, 2010May 10, 2011Apple Inc.Method and apparatus for mediating among media applications
US7962948Apr 6, 2001Jun 14, 2011Virage, Inc.Video-enabled community building
US7969987Jun 16, 2008Jun 28, 2011Sprint COmmunications Company L.P.Internet service node incorporating a bandwidth measurement device and associated methods for evaluating data transfers
US8041438Jun 28, 2007Oct 18, 2011Apple Inc.Data-driven media management within an electronic device
US8099473Jun 5, 2009Jan 17, 2012Apple Inc.Variant streams for real-time or near real-time streaming
US8099476Jun 5, 2009Jan 17, 2012Apple Inc.Updatable real-time or near real-time streaming
US8130921Apr 25, 2008Mar 6, 2012Voxer IP LLCTelecommunication and multimedia management method and apparatus
US8139487Feb 28, 2007Mar 20, 2012Microsoft CorporationStrategies for selecting a format for data transmission based on measured bandwidth
US8156089Dec 14, 2010Apr 10, 2012Apple, Inc.Real-time or near real-time streaming with compressed playlists
US8166093Feb 8, 2002Apr 24, 2012Warner Music Group, Inc.Method and apparatus for processing multimedia programs for play on incompatible devices
US8171509Jun 18, 2004May 1, 2012Virage, Inc.System and method for applying a database to video multimedia

Claims

1. 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.