throbber
(12)
`
`United States Patent
`Fuller et al.
`
`(10) Patent N0.:
`(45) Date of Patent:
`
`US 6,711,622 B1
`Mar. 23, 2004
`
`US006711622B1
`
`(54) VIDEO AND AUDIO STREAMING FOR
`MULTIPLE USERS
`
`5,889,942 A * 3/1999 Orenshteyn .......... .. 395/187.01
`5,905,524 A * 5/1999 Sauer ........................ .. 348/15
`5,905,872 A
`5/1999 DeSimone et a1.
`
`
`
`
`
`(75) Inventors: Michael J. Fuller, Los GatoS, CA _ John J‘ Graham’ Saratoga’ CA
`
`
`
`, , 2 Z: 5,953,005 A * 9/1999 Liu .......................... .. 345/302 ~~~~~~~~~~~~~~~~~ ~~ glbatyant 0e Z e a . .
`
`
`
`
`
`
`
`
`
`
`
`
`
`_
`_
`.
`(73) Asslgnee- Broadware Technologles’ Inc-1
`Cupemno, CA(US)
`_
`_
`_
`_
`subJectto any dlsclalrnentheterm ofthls
`patent is extended or adjusted under 35
`U.S.C. 154(1)) byO days.
`
`_
`(*) Nome:
`
`_
`(21) APP1"N°"09/001’850
`
`(22) Filed:
`
`Dec. 31, 1997
`
`(51) Int. Cl.7 .............................................. .. G06F 15/16
`(52) U..S. Cl. ........................ .. 709/231; 707/505; 379/88
`(58) Fleld 0f Search ............................... .. 709/302, 204,
`709/227’ 218’ 231’ 707/10_4’ 10’ 39§/187'01f
`345/302’ 329’ 158’ 327’ 705/517’ 348/15’
`379/88
`
`(56)
`
`References Cited
`
`U'S' PATENT DOCUMENTS
`5,228,859 A * 7/1993 Rowe ....................... .. 434/118
`5,390,240 A * 2/1995 Sensney ................ .. 379/93.14
`5,512,938 A * 4/1996 Ohno ........................ .. 348/15
`
`2722:7222: : 5122; 5’724’355 A 3/1998 Bruno et a1 ;;; ............ 12321522
`
`
`
`5,751,280 A * 5/1998 Abbott et al. .......... .. 707/500.1
`5,764,916 A * 6/1998 Busey et a1_ ______________ __ 709/227
`5,778,181 A * 7/1998 Hidary et a1.
`709/218
`5,802,526 A * 9/1998 Fawcett et a1.
`707/104
`709/204
`5,828,839 A * 10/1998 Moncreiff ------- -
`578427015 A : 11/1998 Cunm? ct a1~ -
`709/104
`5,844,553 A 12/1998 Hao et a1‘ """" "
`345/329
`5,861,881 A * 1/1999 Freeman et a1. .......... .. 345/302
`5,880,792 A
`3/1999 Ward et a1.
`5,884,032 A * 3/1999 Bateman et a1. .......... .. 709/204
`5,889,506 A * 3/1999 Lopresti et a1. ........... .. 345/158
`
`5,960,173 A * 9/1999 Tang et a1. ............... .. 709/201
`6,006,241 A * 12/1999 Purnaveja et a1. ..
`707/512
`6,009,410 A * 12/1999 LeMole e161. ............. .. 705/14
`6,020,931 A
`2/2000 Bilbrey e161.
`345/327
`6,025,837 A
`2/2000 Matthews, III 6161.
`6,055,522 A * 4/2000 Krishna 6161. ........... .. 705/517
`6,091,407 A
`7/2000 Boetje et a1.
`6,151,609 A * 11/2000 Truong ..................... .. 707/505
`6,222,843 B1
`4/2001 Mauger
`379/88
`6,298,120 B1 * 10/2001 Civanlar et a1.
`6,452,933 B1 * 9/2002 Duf?eld et a1. ........... .. 370/415
`
`OTHER PUBLICATIONS
`
`.
`.
`and
`Performance
`Architectures:
`Server
`Video
`Scalability _'_Bemhardt, 6ta1‘(1994)ftp'eureCOmfr/ATM/
`papeI-SEURECOM/PapeI-S/breStBeI-nhardLpSgZ~*
`Realtime Audio and Video, Dec. 8, 1996; http:ei.cs.vt.edu/~
`WWWbtb/book/chap 11/introduction.*
`
`(List continued on neXt page.)
`
`Primary Examiner—Marc D. Thompson
`Assistant Examiner—Thong Vu
`(74) Attorney) Agent) or Firm—C001@y GOdWaId LLP
`
`(57)
`
`ABSTRACT
`
`A. video data to multiple users is described. In one of
`
`
`embodiment, the System Comprises a ?rst Client, a Second
`client and a server. The ?rst and second clients are executing
`broWsers. The server can communicate With the tWo clients.
`The server concurrently provides streaming audio and video
`data to both of the clients. Importantly, the server does not
`require the tWo broWsers to use a plug-in or a helper
`application to receive and use the streaming audio and video
`data
`'
`
`4 Claims, 5 Drawing Sheets
`
`[130
`/I80
`/— I00
`<— ClientSideq- Communications—h Server Side ————>
`
`V13‘;
`
`-
`
`gria??inggo
`
`V
`
`138 _‘ [1178 m gm
`
`S amin AudioandVideoDa
`
`‘3
`
`/
`
`Display
`
`'76
`
`‘
`
`'
`
`Browser
`
`1
`
`f1“ <~>\
`
`\ \
`
`chem
`j
`'12
`
`102
`
`V
`
`'I
`
`Internet
`m
`
`178 \‘ smaqlmgmdmm
`
`Video Data
`
`/
`If’,
`
`5
`
`Real-TimeServer HQ
`
`Video
`
`I Audio
`
`Videol’roxy Audiol’roxy
`
`5
`/I-04
`
`3:251,
`
`Browser
`Client
`
`144
`
`146
`r1
`
`148
`udio
`
`t
`
`149
`
`T
`.
`
`Limb WJ ‘5175 _
`Mike
`159-
`VldBU Input L '64 \ I66
`5431;121:1111
`
`111
`
`108
`
`l
`
`7158
`
`Netflix 1016 - Page 1
`
`

`
`US 6,711,622 B1
`Page 2
`
`OTHER PUBLICATIONS
`
`Instructions for using Netscape Navigator, downloaded from
`Netscape
`Website/../NetHelp/netscape/navigatr/nav.htrnl,
`printed on Dec. 14, 1997, 67 pages.
`Paek et al. “Video Server Retrieval Scheduling for Variable
`Bit Rate Scalable Video”, IEEE 1996, pp. 108—112.
`
`Huang et al., “The Mercuri Multirnedia Laboratory at Hon
`eyWell”, IEEE 1996, pp. 72—77.
`Liu et al., Performance of a Storage System for Supporting
`Different Video Types and Qualities, IEEE 1996, pp.
`1314—1331.
`
`* cited by eXarniner
`
`Netflix 1016 - Page 2
`
`

`
`U.S. Patent
`
`Mar. 23, 2004
`
`Sheet 1 0f5
`
`US 6,711,622 B1
`
`92
`.
`
`
`Q:
`
`v.ouou-1
`
`5582>Eao%=<maeafimE~:\o§_<mq..a§_m
`
`a00asun82>Ea“n.>
`
`_—
`
`
`
`
`
`
`
`AIl|I||l|IuEmShowTlmaoufiasafioo|VmoEmEmmaIIV
`
`a2\\%~\\2:|\
`
`
`
`HD>.HDmQDRV
`
`
`
`.CoEu2vuhfiw
`
`SmQ83>3Ba29%magnum.3~I\
`
`n2/
`
`uuwsoum
`
`I
`_____.___._._
`L._—.
`
`.__.._.._..L._ .L___..____..__.._______.............__.._..___.._.....__ __.._--.
`
`
`ESEoE=<bnoumouE> <wflnaobm
`
`
` .3~QJHotomofifiniomII..QN34
`
`6885N3
`
`N.b~r.w
`
`wasoE:<mfinaobw1/1/39:32>W:1111.1
`©m~E“E59:5
`
`
`3&9ODE>%m.N“.3
`
`nouuuanooEm
`
`StowBofium2
`
`n.._w=<S9:
`
`Emu83>
`
`Q39:9:3:
`
`M5m2
`
`__..___..__.._____.._._____
`
`2:
`
`32>
`
`%m_&m_D
`
`_._3u..3832>
`
`“£38m
`
`:~
`
`Netflix 1016 - Page 3
`
`Netflix 1016 - Page 3
`
`
`
`
`
`
`
`
`

`
`U.S. Patent
`
`Mar. 23, 2004
`
`Sheet 2 0f 5
`
`US 6,711,622 B1
`
`Client Initiates HTTP Request
`
`l
`
`[210
`
`/— 220
`
`Web Server Supplies Decoding Instructions
`
`l
`
`Client Executes Instructions
`
`/— 230
`
`240 —\ +
`Client Makes Audio Request
`
`242—\
`
`i
`
`Web Server Makes Audio Request
`
`Real-Time Server Writes Audio Data
`246 —\
`i
`Web Server Transmits Audio Data
`
`+ /—250
`
`Client Makes Video Request
`
`l /— 252
`
`Web Server Makes Video Request
`
`254
`/—
`I
`Real-Time Server Writes Video Data
`l /— 256
`Web Server Transmits Video Data
`
`Yes
`
`248 —\
`
`‘
`
`I
`
`Yes I
`
`I
`
`+ /— 258
`
`Client Dccompresses Audio Data and
`Plays Audio
`
`Client Decomprcsscs Video Data and
`Plays Video
`
`Continue?
`
`Continue?
`
`Stop Audio
`
`Stop Video
`
`FIG. 2
`
`Netflix 1016 - Page 4
`
`

`
`U.S. Patent
`
`Mar. 23, 2004
`
`Sheet 3 0f5
`
`US 6,711,622 B1
`
`Bou:_>>
`
`.
`
`....kw.
`
`:o_mm_Em:mC..
`
`
`
`
`
`
`
`
`
`:a.:a.=5SE»u.95V..Q,E.Ew_uu&§..w2.._.fi2whoK:
`
`
`
`V35:o_s2om
`
`an DUB DUDDD mm}
`
`DEMo=.$_u>EV.2.5.u>5
`
`
`
`§_8_.:o=u:<
`
`Euzao9:3.28..
`
`£2.80£3.32E32m,_.O
`
`
`
`Sucau$.50.5__&8_oo.m
`
`EoEmE:o._,Sand
`
`8250mmm3ov=_>>
`
`
`
`Eunau._uuuu.._Em
`
`
`
`B3ficozazo=:owm<
`
`u.=.5mucuubwmom3on=_>»
`
`
`
`‘I>.~.0332u>_SE2E
`
`
`
`DMoon30305moEoD82>>52
`
`Netflix 1016 - Page 5
`
`Netflix 1016 - Page 5
`
`
`

`
`U.S. Patent
`
`Mar. 23, 2004
`
`Sheet 4 of 5
`
`US 6,711,622 B1
`
`bmaoum
`
`38:5
`
`§\A
`
`isEuasm
`
`5E26:am
`
`V2.
`
`:52..5C.752
`
`32>Eu
`
`
`
`So»umooau
`
`cozuuacou
`
`
`
`~22..32E:3.5090:30»338:
`
`Jenna!5-Caufl
`
`
`
`.£:i..._..£v.6.3«at22¢..2.£§:£...__.53..
`
`.u..ri<)uhI.1»‘v>.v..HF.I!|x51'l'..
`
`
`
`
`
`.4...“..,___.a..wk...,913T..1.kw,A.u......¢k._...........u.,€q..:,..H.w....4....‘.._....v.£,..J..o....:u?.Im.t5_..fl.u_..NGm.v.Dgram.
`
`
`
`
`
`
`
`
`
`..111.
`
`Netflix 1016 - Page 6
`
`Netflix 1016 - Page 6
`
`

`
`U.S. Patent
`
`Mar. 23, 2004
`
`Sheet 5 of5
`
`US 6,711,622 B1
`
`w .UFN
`
`Netflix 1016 - Page 7
`
`

`
`US 6,711,622 B1
`
`1
`VIDEO AND AUDIO STREAMING FOR
`MULTIPLE USERS
`
`1. RELATED APPLICATIONS
`This application incorporates by reference, and claims
`priority from, the US. provisional patent application
`entitled, “Streaming Audio and Video for Multiple Users,”
`serial No. 60/034,128, having inventors Michael J. Fuller
`and John J. Graham.
`
`2. THE BACKGROUND OF THE INVENTION
`
`a. The Field of the Invention
`This invention relates to the ?eld of netWork delivery of
`audio and video information. In particular, the invention
`relates to a system for delivering audio and video informa
`tion to multiple users.
`b. Background Information
`The Internet enables many different Ways of communi
`cating. Originally, the Internet Was used for the exchange of
`?les and electronic mail. As the capabilities of the Internet
`expand, other types of communications are enabled.
`Audio and video transmissions are an important area of
`the communications that the Internet enables. For example,
`many technologies support the transmission of digital video
`and/or audio signals over the Internet. An example of such
`a technology is QuicktimeTM, available from Apple
`Computer, Inc., of Cupertino Calif. Quicktime movies are
`?les that can be transmitted across the Internet. Quicktime
`provides both audio and video displays. Many other ?le
`formats alloW audio and video to be displayed on people’s
`computers.
`This paragraph describes an example use of a the Quick
`time technology. Auser Will have a broWser application that
`resides on his/her computer. The computer, acting as a client
`under the direction of the broWser application, Will connect
`to various World Wide Web (Web) servers. Each Web server
`Will typically serve hypertext markup language (HTML)
`?les to the clients. The ?les may include text, graphics
`references, and references to specialiZed ?les. Some of these
`specialiZed ?les can include audio and video information in
`Quicktime form. The clients can then play these audio and
`video ?les once they are doWnloaded using a Quicktime
`plug-in, a helper application, or Quicktime capabilities built
`into the broWser application. Aplug-in and a helper appli
`cation are described in greater detail beloW.
`Streaming audio and video, as a subset of all the types of
`audio and video that can be transmitted over the Internet,
`alloW people to broadcast long and/or live video and audio
`transmissions across the Internet. Streaming video and audio
`is video and audio digital data that is transmitted on a
`continuous basis. A client can access the data stream and
`regenerate the video images and audio signal as they are
`being transmitted. Streaming technology is particularly
`helpful Where the events are live, or Where the ?les Would
`be so large as to be a burden on the end users. Examples of
`Where streaming technology is particularly useful are for the
`display of conferences, sporting events, radio broadcasts,
`television broadcasts, and the like.
`RealNetWorks, Inc. of Seattle, Wash., provides a system
`for transmitting streaming audio and video signals to users
`over the Internet. RealNetWorks supplies a server that alloWs
`multiple users to simultaneously receive streaming audio
`and video.
`The real audio system requires that not only the client
`have additional softWare, but that the content provider have
`
`10
`
`15
`
`2
`a separate server from their normal Web server. For a client
`to receive a real audio broadcast, the client typically con
`nects through their broWser to a Web page With a reference
`to a real audio server. The client then accesses its separate
`real audio player program. The real audio player program
`then connects to the referenced real audio server. A signi?
`cant draWback to such an arrangement is that the user must
`doWnload the real audio player program. This program must
`then be installed on the user’s computer. This may cause a
`number of problems for the user. For example, if the user is
`behind a ?reWall, or some security program, the client may
`not be able to receive the broadcast from the server.
`Additionally, the installation of any program may have
`con?icts With other programs. The program has the disad
`vantage of being platform speci?c. This means that a dif
`ferent program must be developed and doWnloaded for each
`type of computer that is to be used to access RealNetWorks
`broadcasts. Additionally, the broadcasters of the streaming
`audio and video need to use the RealNetWorks server, Which
`is separate from the broadcasters’ World Wide Web server
`(also referred to as the Web server). This increases the
`broadcasters’ security problems because noW the broadcast
`ers must be concerned With tWo separate servers.
`Another example of a video and audio system that uses
`Internet like communications is the MBone. The MBone is
`a specialiZed communication netWork that alloWs for the
`distribution of streaming video and audio signals to multiple
`users. A specialiZed netWork is set up speci?cally to transmit
`MBone communications. A signi?cant draWback of this
`system is that users must be connected to the specialiZed
`netWork. Additionally, users Will be required to have spe
`cialiZed softWare on their computers to listen to and Watch
`MBone transmissions.
`A streaming video system, not requiring a user to doWn
`load a separate program, Was developed for a single user by
`John Graham of California. This single user broadcast
`technology alloWed a Web server to serve a single streaming
`video signal to a single client. Although the user did not need
`to doWnload a plug-in to see the video, only one user Was
`alloWed to access the video stream at a time. In this system,
`video information Was captured from a video camera and
`digitiZed. The digital video information Was then encapsu
`lated in a MIME encoded multipart data stream. The client
`received this data stream and reconstructed frames of the
`digital video.
`Therefore, What is desired is a platform independent video
`and audio streaming system that does not require the user to
`doWnload additional programs beyond the functionalities
`found in a broWser.
`
`3. A SUMMARY OF THE INVENTION
`
`55
`
`65
`
`A system and method of providing streaming audio and
`video data to multiple users is described. In one
`embodiment, the system comprises a ?rst client, a second
`client and a server. The ?rst and second clients are executing
`broWsers. The server can communicate With the tWo clients.
`The server concurrently provides streaming audio and video
`data to both of the clients. Importantly, the server does not
`require the tWo broWsers to use a plug-in or a helper
`application to receive and use the streaming audio and video
`data.
`In some embodiments of the invention, a broWser causes
`a client to request an HTML ?le from a Web server. The
`client receives the HTML ?le. The HTML ?le includes an
`HTML tag that directs the broWser to load one or more
`applets from the server. The broWser executes the applets
`
`Netflix 1016 - Page 8
`
`

`
`US 6,711,622 B1
`
`3
`causing the browser to request streaming audio and video
`from the Web server. That request may or may not include
`parameters giving information about the type of request
`being made. The Web server associates a server process With
`the request, given the parameters in the request. The Web
`server noti?es real-time audio and video process that stream
`ing audio and video information is needed. In response to the
`noti?cation, the real-time audio and video process stores
`encoded audio and video data in a shared memory location.
`The server process accesses the shared memory and inserts
`the audio and video data into one or more data streams. The
`client receives the data streams and reconstructs the audio
`and video signals using only the capabilities of the broWser.
`In some embodiments, a separate stream and server process
`is used for each of the audio and video data. These embodi
`ments alloW multiple clients to simultaneously receive the
`same audio and video data.
`Other embodiments of the invention include a Web server
`that can serve streaming audio and video information as Well
`as perform more usual Web server functions (such as,
`serving Web pages, performing ?le transfers, supporting
`secure communications). These embodiments have the
`advantage of alloWing the broadcasters and the users to set
`up their security con?gurations for one Web server, rather
`than tWo servers (a Web server and a streaming audio and
`video server).
`Although many details have been included in the descrip
`tion and the ?gures, the invention is de?ned by the scope of
`the claims. Only limitations found in those claims apply to
`the invention.
`
`4. A BRIEF DESCRIPTION OF THE DRAWINGS
`The ?gures illustrate the invention by Way of example,
`and not limitation. Like references indicate similar elements.
`FIG. 1 illustrates a system including one embodiment of
`a streaming audio and video system for multiple users Where
`client computers do not need plug-ins or helper programs.
`FIG. 2 illustrates an example method of streaming audio
`and video for multiple users.
`FIG. 3 illustrates a Web page that a user can use to access
`a streaming audio and video broadcast.
`FIG. 4 illustrates a Web page for selecting the bandWidth
`of the user’s Internet connection.
`FIG. 5 illustrates a Web page having streaming audio and
`video.
`
`5. THE DESCRIPTION
`The folloWing sections describe embodiments of the
`invention. The ?rst section provides de?nitions that Will help
`in the understanding of the remaining sections. The second
`section shoWs an example system that supports various
`embodiments of the invention. The third section describes an
`example method of using the invention. The fourth section
`illustrates an actual use of the streaming audio and video
`used in some embodiments of the invention. The last section
`revieWs additional alternative embodiments of the invention.
`a. De?nitions
`The folloWing de?nitions Will help in the understanding
`of the folloWing description.
`Client: a computer, process, program, or combination of
`computers, processes or programs, that can communi
`cate With a server.
`Server: a computer, process, program, or combination of
`computers, processes or programs, that can communi
`cate With a client. The server and the client can be
`executing on the same computer(s).
`
`15
`
`25
`
`35
`
`45
`
`55
`
`65
`
`4
`Web server: a server for serving at least Internet related
`requests. Example Web servers can serve HTML pages
`in response to HTTP requests from clients. Some Web
`servers can serve many different kinds of requests, e. g.,
`HTTPS, and/or FTP.
`BroWser: an application, program, process, or combina
`tion of applications, programs or processes, that alloW
`a client to make a request of a Web server and process
`the results of the request. The broWser may be part of
`a stand alone application or a set of programs that are
`integrated into the operating system of the client.
`Plug-in: plug-ins are external softWare programs that
`extend the capabilities of the broWser in a speci?c Way.
`For example, a plug-in can be used to give the broWser
`the ability to play audio samples or vieW video movies
`from Within the broWser.
`Helper application: like plug-ins, helper applications are
`external softWare programs. The broWser redirects
`some types of ?le to the helper applications. The helper
`applications alloW clients to process many different
`types of ?les on the Internet. When the broWser
`encounters a sound, image, or video ?le, the broWser
`hands off the data to the helper applications to run or
`display the ?le.
`JavaScript: a stand-alone programming language built
`into many broWsers. Primarily an extension to the
`Internet standard HTML language.
`Java: a programming language Whose programs (called
`applets) can travel over the Internet for use by clients.
`Whereas plug-ins and helper applications are tailored
`for a particular type of client, Java applets generally
`Work across the Internet regardless of the type of client.
`Many broWsers include Java capabilities so Java
`applets require no installation. Except Where noted,
`Java and JavaScript are interchangeable.
`b. System
`FIG. 1 illustrates a system including one embodiment of
`the invention Where audio and video is supplied over the
`Internet to multiple users. The folloWing paragraphs ?rst list
`the elements of FIG. 1, describe their interconnections, and
`then describe the various elements in greater detail.
`This paragraph lists the elements of FIG. 1. FIG. 1
`includes a system having three parts: a client side 100, a
`communications interface 180, and a server side 130. The
`client side 100 includes a client 112 and a client 111. The
`client 112 includes a broWser 102 having a video display
`area 103. The client 111 includes a broWser 108 and a video
`display area 104. The communications interface 180
`includes the Internet 185. The server side 130 includes a Web
`server 131, a shared memory 135, and a real-time server
`140. The Web server 131 includes tWo processes, a process
`138 and a process 139. The real-time server 140 includes a
`video module 144, an audio module 146, a video proxy 148,
`and an audio proxy 149. The real-time server 140 interfaces
`With a number of other elements. These elements include a
`video card 159, an input audio interface 162, and an HTTP
`connection to remote server 170. Various elements of FIG.
`1 have noW been listed.
`The folloWing paragraphs describe the interconnections
`betWeen the elements of FIG. 1. Beginning on the server side
`130, the video card 159 receives a video input 158 outputs
`a digital video signal to the video module 144. Similarly, an
`input audio interface 162 receives a mike input 164 and/or
`a line input 166 and outputs a digital audio signal to the
`audio module 146. The HTTP connection to remote server
`170 receives a streaming audio and video data 175. The
`
`Netflix 1016 - Page 9
`
`

`
`US 6,711,622 B1
`
`5
`HTTP connection to remote server 170 outputs the video
`data to the video proxy module 148 and the audio data to the
`audio proxy module 149. The real-time server 140 uses the
`data received by the various modules and stores portions of
`that data in the shared memory 135, after some manipulation
`of the data. The shared memory 135 is accessed by the Web
`server 131. The process 138 and the process 139 transmit
`and receive data to the communications interface 180. Thus,
`the couplings of the server side 130 have been described. In
`some embodiments, the process 138 and the process 139
`correspond to HTTPD processes.
`The communications interface 180 alloWs the client side
`100 to communicate With the server side 130. The commu
`nications interface, and the Internet 185 in particular, sup
`port many different types of connections by the client side
`100 and the server side 130. In the example communications
`inter face 180, the communications interface 180 includes
`the Internet 185. In particular, in this example, the process
`138 is communicating streaming audio and video data 176
`to the Internet 185. Similarly, the process 139 is communi
`cating the streaming audio and video data 178 to the Internet
`185.
`On the client side 100, the client 112 is communicating
`the streaming audio and video data 176 With the Internet
`185. Similarly, the client 111 is communicating With the
`Internet 185 to receive and manage the streaming audio and
`video data 178. The clients then communicate the informa
`tion to their respective broWser applications. The broWser
`applications the generate video images in their respective
`video display areas.
`Thus, the connections betWeen the various elements of
`FIG. 1 have been described. NoW the various elements Will
`be described in greater detail in the folloWing paragraphs.
`An example method of using these elements is described
`beloW in relation to FIG. 2.
`The server side 130 Will be described ?rst.
`The video input 158 represents a video signal that a user
`of such a system Wishes to broadcast to the clients on the
`client side 100. The video input 158 can include analog
`signals representing video information. The video card 159
`digitiZes the video input 158 to produce a digital video
`image. Various embodiments of the invention include Sun
`video cards available from Sun Microsystems, of Mountain
`VieW, Calif., and Parallax XVideo XtraTM video cards,
`available from Parallax Graphics, Inc., of Santa Clara, Calif.
`HoWever, What is important is that the real-time server 140,
`and in particular the video module 144, receives some sort
`of digitiZed video signal. The video module 144 is respon
`sible for providing the real-time server 140 With the video
`information that Will be broadcast to the client side 100. The
`video module 144 can convert the digitiZed video signals to
`be of better use to the rest of the system. For example, the
`video module 144 may, if not done by the video card 159,
`convert digital video data into a sequence of JPEG digital
`video frames. In any case, What is important is that the
`real-time server 140 receives digital video information in a
`format that it can use (example formats include, JPEG,
`MPEG, GIF, and AVI).
`Similarly, the input audio interface 162 alloWs for the
`input of analog audio signals and converts this input to
`digital audio signals. What is important is that the audio
`module 146 receives a digitiZed audio signal that can be used
`by the real-time server 140. The audio module 146 may
`convert the digitiZed audio signal into any of a number of
`formats, corresponding to any of a number of audio trans
`mission rates (examples include G711 and G723 audio
`compression formats).
`
`15
`
`25
`
`35
`
`45
`
`55
`
`65
`
`6
`The HTTP connection to remote server 170 represents an
`important advantage of one embodiment of the invention. In
`this embodiment, the HTTP connection to remote server 170
`alloWs the server side 130 to forWard broadcasts of audio
`and video signals from other streaming audio and video
`servers. In these uses, the server side 130 acts as a client to
`another server. The HTTP connection to remote server 170
`can receive video and audio signals being broadcast through
`the Internet 185 from another server. The HTTP connection
`to remote server 170 provides the digital video information
`from the other server to the video proxy module 148.
`Similarly, the HTTP connection to remote server 170 pro
`vides the audio data to the audio proxy module 149. The
`video proxy module 148 and the audio proxy module 149
`then supply the respective video and audio data to the
`real-time server 140.
`The real-time server 140 represents an application, or set
`of applications, executing on one or more computers, that
`prepares audio and video data for broadcasting to multiple
`users through the Web server 131. The real-time server 140
`takes the data from the various modules, processes the data,
`and stores the processed data in the shared memory 135. The
`real-time server 140 can perform compression, and other
`manipulations of the data, to reduce the processing burden
`on the Web server 131. For example, in some embodiments
`of the invention, the real-time server 140 receives digitiZed
`video data and compresses that data into JPEG images.
`These JPEG images are sequenced digital frames of video.
`Similarly, for the audio data, the real-time server 140 breaks
`the audio information into one-half second time periods of
`audio data (other embodiments use other time periods).
`These one-half second time periods of data are stored in the
`shared memory 135. The real-time server 140 can also
`compress the audio information into one of a number of
`various compressed audio signals (e.g., G.711 and/or G.723
`audio compression formats). In some embodiments of the
`invention, the real-time server can broadcast audio and video
`from multiple sources to multiple clients.
`The shared memory 135 represents a shared storage area
`for use by the real-time server to store audio and video data
`for access by the Web server 131. In one embodiment the
`shared memory 135 has a locking and semaphore usage
`scheme to ensure that the real-time server 140 is not Writing
`data into the shared memory 135 While the Web server 131
`is accessing that data. In some embodiments, the sema
`phores act as noti?ers to indicate that neW data in the shared
`memory 135 is available for use by the Web server 131. In
`some embodiments, the video data and the audio data are
`stored in different shared memory locations.
`The Web server 131 communicates data over the Internet
`185 using one or more communications protocols. In some
`embodiments of the invention, these protocols include
`HTTP (Hypertext Transfer Protocol), TCP (Transmission
`Control Protocol) and UDP (User Datagram Protocol). The
`Web server 131 represents an application, including one or
`more processes, for communicating over the Internet 185. In
`one embodiment, the Web server 131 includes an Apache
`Web server. Each of the processes in the Web server 131
`represents one or more processes for serving streaming
`audio and video data to the client side 100. In some
`embodiments, the Web server 131 transmits the video data as
`a multipart MIME (multi-purpose Internet mail extensions)
`encoded ?le for decoding directly by the broWser or as
`compressed video information for decoding by an applet run
`in the broWser. The Web server 131 transmits the audio data
`as compressed audio data for decoding by an applet run in
`the broWser.
`
`Netflix 1016 - Page 10
`
`

`
`US 6,711,622 B1
`
`7
`In some embodiments, the Web server 131 initiates a
`separate process for each audio and video connection made
`from client side 100. Thus, for one client receiving stream
`ing audio and video data, tWo processes Would be started
`Within the Web server 131. The ?rst process Would supply
`video data and the second process Would supply audio data.
`The processes access the shared memory 135 and serve the
`data across the Internet to the respective client.
`In some embodiments, the Web server 131 initiates at least
`one process for each client. This provides important advan
`tages in some embodiments of the invention. In particular,
`because the Web server 131 is serving the data directly
`through processes it created, server side 130 users need not
`Worry about security issues beyond those already faced With
`their Web server 131. Thus, these embodiments of the
`invention have a loWer chance of interfering With client side
`100 ?re Walls and have a loWer chance of having a server
`side 130 security problem.
`Other embodiments of the invention include separate
`Common GateWay Interface (CGI) programs for audio and
`video. These CGI programs are used by the Web server 131
`to serve the streaming audio and video data. These CGI
`programs are not necessarily integrated as tightly to the Web
`server 131 as the process 138 and the process 139. HoWever,
`a CGI program alloWs for the easy extension of many
`different types of Web servers.
`The communications interface 180 permits communica
`tions betWeen the server side 130 and the client side 100. In
`this example, the Internet 185 supports the communications.
`Other embodiments of the invention support other commu
`nications interfaces. For example, the Internet 185 can be
`replaced by a local area netWork, a Wide are netWork, a
`proprietary telecommunications and networking
`infrastructure, or some other communications interface.
`What is important is that the server side 130 can commu
`nicate With the client side 100. The communications inter
`face 180 can also include combinations of the above
`described technologies. For example, the Internet 185 can
`include a Web server to Which the clients on the client side
`communicate through to access the Internet 185. The client
`side 100 can be on a local area netWork that is connected
`through a server, or router, to the Internet 185.
`The client side 100 represents the consumers of the
`streaming audio and video data. In this example, the tWo
`clients are receiving separated streaming audio and video
`data signals. Other embodiments of the invention support
`many more clients.
`The client 112 represents a computer, such as a PC
`compatible computer, running a broWser application 102.
`For video display, the broWser application 102 can include
`a Netscape NavigatorTM or CommunicatorTM program for
`“multipart/x-mixed-replace MIME type video,” or a
`Microsoft Internet ExplorerTM 3.0 or later for a Java based
`video transmission. In some embodiments, the Java based
`video transmission applet parses the multipart/x-mixed
`replace MIME type video. For audio, the broWser applica
`tion 102 can include any broWser that supports Java and/or
`J avaScript.
`The broWser application 102 is responsible for receiving
`the streaming audio and video data 176 and reconstructing
`an audio and video signal suitable for the end user. In this
`example, the video display area 103 displays the recon
`structed video information received from the video input
`158 at the real-time server 140. Similarly, the client 111 is
`executing the broWser 108. The broWser 108 is displaying
`the same video signal in the video display area 104. The
`client 11 represents another computer executing a broWser
`application.
`
`10
`
`15
`
`25
`
`35
`
`45
`
`55
`
`65
`
`8
`Various embodiments of the invention have modi?cations
`to the system shoWn in FIG. 1. Some of these variations are

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket