`Chen
`
`USOO6728763B1
`(10) Patent No.:
`US 6,728,763 B1
`(45) Date of Patent:
`Apr. 27, 2004
`
`(*) Notice:
`
`2/2003 Landsman et al. .......... 709/203
`6,516,338 B1
`(54) ADAPTIVE MEDIA STREAMING SERVER
`6,526,580 B2 * 2/2003 Shimomura et al. .......... 725/63
`FOR PLAYING LIVE AND STREAMING
`6,536,043 B1
`3/2003 Guedalia ..................... 725/90
`MEDIA CONTENT ON DEMAND THROUGH
`* cited by examiner
`WEB CLIENT'S BROWSER WITH NO
`ADDITIONAL SOFTWARE OR PLUG-INS
`Primary Examiner David Wiley
`Assistant Examiner-Phuoc H. Nguyen
`(76) Inventor: Ben W. Chen, 1400 Telteca St.,
`(74) Attorney, Agent, or Firm Sawyer Law Group LLP
`Fremont, Alameda, CA (US) 94539
`(57)
`ABSTRACT
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35 A method and System for providing media content in real
`U.S.C. 154(b) by 651 days.
`time on a web client is disclosed. The web client includes a
`browser utilizing a cache. The media content can be sepa
`rated into a plurality of sections. The browser of the web
`client can read and display a Section of the media content
`without additional Software or plug-ins. In one aspect, the
`method and System include ensuring that the web client can
`flush the cache to allow the media content to be played in
`real-time, preferably in response to the web client requesting
`the media content. In this aspect, the method and System also
`include providing the plurality of Sections of the media
`content to the web client section by section and allowing the
`web client to flush the section of the media content from the
`cache once each of the plurality of Section has been dis
`played. In a second aspect, the method and System include
`requesting the media content using the web client and
`ensuring that the web client can flush the cache to allow the
`media content to be played in real-time. In this aspect, the
`method and System also include receiving each of the
`plurality of sections of the media content on the web client
`Section by Section, displaying each of the plurality of Sec
`tions Section by Section and flushing each Section of the
`media content from the cache once each of the plurality of
`Sections has been displayed.
`40 Claims, 7 Drawing Sheets
`
`(21) Appl. No.: 09/588,035
`(22) Filed:
`Jun. 5, 2000
`O
`O
`Related U.S. Application Data
`(60) Provisional application No. 60/188,341, filed on Mar. 9,
`2000.
`(51) Int. Cl. ................................................ G06F 15/16
`(52) U.S. Cl. ....................... 709/219; 709/217, 709/201;
`709/224; 709/229; 725/51; 72.5/110; 725/113;
`370/316; 370/338
`(58) Field of Search ............................ 709/2, 203, 219,
`709/201, 217, 218, 224, 229; 370/316,
`338, 351, 352; 725/110, 113,51
`References Cited
`U.S. PATENT DOCUMENTS
`
`(56)
`
`5,617,540 A * 4/1997
`6,012,086 A 1/2000
`6,014,706 A 1/2000
`6,314,492 B1 * 11/2001
`6,502,194 B1 * 12/2002
`
`Civanlar et al. ....... 370/395.54
`Lowell
`Cannon et al.
`Allen et al. ................. 711/135
`Berman et al. ............. 713/201
`
`220
`Web Client Requests Media
`Content From AMS Server
`
`
`
`Determine Browser Type
`
`222
`
`224
`
`226
`
`Browser
`Push-enabled?
`
`Mo
`
`44
`
`Yes
`
`228
`Push Header and data
`Size to Web Client
`
`Place AMS Server in
`Active State
`
`232
`Capture, Compress, and
`Update Content Files
`
`234
`
`Return Applet to
`Web Client
`
`246
`Capture, Compress and
`Update Content Files
`
`248
`Check for Patch Thread x
`and K if Present
`
`250
`
`Push Section of Media
`Content to Web Client
`
`Start PuProcess and Pul
`Section from AMS Server
`
`
`
`252
`Web Client Decompresses and
`Plays Section on Browser
`
`
`
`Amazon / WAG Acquisition
`Exhibit 1021
`Page 1
`
`
`
`U.S. Patent
`
`Apr. 27, 2004
`
`Sheet 1 of 7
`
`US 6,728,763 B1
`
`1OO
`
`
`
`
`
`110
`
`
`
`AMS Server
`
`Media
`Content
`Source
`
`Media
`COntent
`Source
`
`
`
`
`
`
`
`
`
`
`
`
`
`BrOWSer
`
`174
`172
`
`
`
`
`
`BrOWSer
`
`Figure 1
`
`11
`
`
`
`
`
`
`
`Web Interface
`
`174
`
`115
`
`113
`
`BrOWSer
`Control Block
`
`
`
`
`
`Media Preparation and
`Delivery Block
`
`Figure 2A
`
`Amazon / WAG Acquisition
`Exhibit 1021
`Page 2
`
`
`
`U.S. Patent
`
`Apr. 27, 2004
`
`Sheet 2 of 7
`
`US 6,728,763 B1
`
`
`
`Server
`Streaming
`Active
`Process
`
`Real-time
`Stream.
`Mngmnt.
`Process
`
`On
`Demand
`ACCeSS
`Process
`
`Stream.
`Prep.
`Process
`
`Delivery
`PrOCeSS
`
`Figure 2B
`
`Amazon / WAG Acquisition
`Exhibit 1021
`Page 3
`
`
`
`U.S. Patent
`
`Apr. 27, 2004
`
`Sheet 3 of 7
`
`US 6,728,763 B1
`
`130
`
`210"
`
`134
`
`Embedded NetWork
`Operating System
`
`138
`
`142
`
`Media input
`Control
`
`Media ACCeSS Control
`Sub-system
`
`146
`Multi-channel Management
`Sub-system
`
`150
`
`154
`
`Media FTP Redirect L
`Subsystem
`
`Media Bandwidth
`Management Sub-system
`
`156
`
`16O
`
`164
`
`Media Streaming
`Sub-system
`
`Media Delivery
`Sub-system
`
`Register Index Client
`Sub-system
`
`Figure 2C
`
`Control
`Logic
`
`Flash
`Memory
`
`RAM Buffer
`
`136
`
`14 O
`
`Video/Audio Capture
`Engine
`
`Media Compession
`Engine
`
`Media Input
`Interface
`
`Interface
`ner
`
`152
`
`158
`
`162
`
`144
`
`148
`
`St
`Orage
`
`166
`
`Media Attribute
`M
`t Sub-Swst
`anagement Sub-System
`
`Amazon / WAG Acquisition
`Exhibit 1021
`Page 4
`
`
`
`U.S. Patent
`
`Apr. 27, 2004
`
`Sheet 4 of 7
`
`US 6,728,763 B1
`
`Media
`Content
`Server
`Fush Decompress
`Process
`and Play
`Thread
`
`Cache Flush
`Process
`
`Figure 3A
`
`170"
`
`Pu-Enabled
`BrOWSer
`
`
`
`Media
`Content
`Decompress
`and Play
`Thread
`
`
`
`Cache Flush
`Process
`
`
`
`Patch
`ThreadX
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Client
`Pu
`ProCeSS
`
`184
`
`186
`
`188
`
`Figure 3B
`
`Amazon / WAG Acquisition
`Exhibit 1021
`Page 5
`
`
`
`U.S. Patent
`
`Apr. 27, 2004
`
`Sheet S of 7
`
`US 6,728,763 B1
`
`200
`Optionally Allow Web Client to Request
`Media Content from AMS Server
`
`202
`
`
`
`
`
`Ensure Web Client Can Flush Cache
`to Accommodate Real-Time Play of
`Media Content
`
`
`
`
`
`204
`
`206
`
`208
`
`1
`21 O
`
`212
`
`
`
`Provide Sections of Media Content
`to Web Client Section by Section
`
`AllOW Web Client to Flush Cache
`After Each Section Displayed
`
`Figure 4A
`
`204
`
`
`
`
`
`Determine Type of the Web Client's
`Browser
`
`
`
`
`
`
`
`Provide Instructions Appropriate for
`Browser Type so that Web Client Can
`Flush Cache to ACCOmmodate Real
`Time Play of Media Content
`
`Figure 4B
`
`Amazon / WAG Acquisition
`Exhibit 1021
`Page 6
`
`
`
`U.S. Patent
`
`Apr. 27, 2004
`
`Sheet 6 of 7
`
`US 6,728,763 B1
`
`220
`Web Client Requests Media
`Content From AMS Server
`
`Determine Browser Type
`
`
`
`226
`
`222
`
`
`
`224
`
`
`
`22
`8
`
`BrOWSer
`Push-Enabled?
`
`Push Header and Data
`Size to Web Client
`
`230
`
`
`
`
`
`Place AMS Server in
`ACtive State
`
`232
`Capture, Compress, and
`Update Content Files
`
`
`
`
`
`234
`Push Section of Media
`Content to Web Client
`
`
`
`
`
`44
`2
`
`Return Applet to
`Web Client
`
`246
`Capture, Compress and
`Update Content Files
`
`248
`Check For Patch Thread x
`and Kil if Present
`
`250
`
`Start Pu ProCeSS and PU
`Section from AMS Server
`
`252
`Web Client Decompresses and
`Plays Section on Browser
`
`Figure 5A
`
`Amazon / WAG Acquisition
`Exhibit 1021
`Page 7
`
`
`
`U.S. Patent
`
`Apr. 27, 2004
`
`Sheet 7 of 7
`
`US 6,728,763 B1
`
`220
`
`236
`
`
`
`
`
`Web Client Receives
`Section and Starts AMS
`Server Push Process
`
`38
`2
`Web Client Decompresses and
`Plays Section on Browser
`
`40
`2
`
`Web Client Flushes Cache
`
`42
`2
`Repeat Steps 230-240 if Web
`Client Still Requesting Media
`Content and Size not
`Reached
`
`
`
`
`
`254
`Web Client Flushes Cache
`
`256
`
`Patch Thread X Started
`
`258
`Patch Thread X Kills Pul
`Thread
`
`26O
`Patch ThreadX Sleeps
`
`ReSources Released
`
`262
`
`264
`
`Patch Thread X Wakes Up
`
`266
`Patch ThreadX Starts Pu
`Process
`
`
`
`268
`Repeat Steps 250-266 if
`Web Client Stil
`Requesting Service
`
`Figure 5B
`
`Amazon / WAG Acquisition
`Exhibit 1021
`Page 8
`
`
`
`US 6,728,763 B1
`
`1
`ADAPTIVE MEDIA STREAMING SERVER
`FOR PLAYING LIVE AND STREAMING
`MEDIA CONTENT ON DEMAND THROUGH
`WEB CLIENT'S BROWSER WITH NO
`ADDITIONAL SOFTWARE OR PLUG-INS
`
`This application claim the benefit of Provisional aplica
`tion Ser. No. 60/188,341, file Mar. 9, 2000.
`
`2
`installed Software or plug-ins, a conventional browser can
`not Stream Video/audio in real-time.
`Accordingly, what is needed is a System and method for
`playing media content from a network or the Internet in
`real-time, for example by Streaming audio or video or
`playing live Video or audio. The present invention addresses
`Such a need.
`SUMMARY OF THE INVENTION
`The present invention provides a method and System for
`providing media content in real-time on a web client. The
`web client includes a browser utilizing a cache. The media
`content can be separated into a plurality of Sections. The
`browser of the web client can read and display a Section of
`the media content without additional Software or plug-ins. In
`one aspect, the method and System comprise ensuring that
`the web client can flush the cache to allow the media content
`to be played in real-time, preferably in response to the web
`client requesting the media content. In this aspect, the
`method and System also comprise providing the plurality of
`Sections of the media content to the web client Section by
`section and allowing the web client to flush the section of the
`media content from the cache once each of the plurality of
`Section has been displayed by the browser. In a Second
`aspect, the method and System comprise requesting the
`media content using the web client and ensuring that the web
`client can flush the cache to allow the media content to be
`played in real-time. In this aspect, the method and System
`also comprise receiving each of the plurality of Sections of
`the media content on the web client Section by Section,
`displaying each of the plurality of Sections Section by Section
`and flushing each Section of the media content from the
`cache once each of the plurality of Sections has been
`displayed.
`According to the System and method disclosed herein, the
`present invention provides a web client with the ability play
`audio or Video in real-time without requiring additional
`Software or plug-ins.
`BRIEF DESCRIPTION OF THE DRAWINGS
`FIG. 1 is a block diagram of one embodiment of a system
`that allows a browser for a web client to play media content
`from the Internet or a network in real-time without requiring
`additional Software or plug-ins.
`FIG. 2A is a high level block diagram of one embodiment
`of an adaptive media Server for allowing a browser for a web
`client to play media content from the Internet or a network
`in real-time without requiring additional Software or plug
`S.
`FIG. 2B is a block diagram of one embodiment of an
`adaptive media Server for allowing a browser for a web
`client to play media content from the Internet or a network
`in real-time without requiring additional Software or plug
`S
`FIG. 2C is a detailed block diagram of one embodiment
`of an adaptive media Server for allowing a browser for a web
`client to play media content from the Internet or a network
`in real-time without requiring additional Software or plug
`ins.
`FIG. 3A is a block diagram of one embodiment of a web
`client that can play media content from the Internet or a
`network in real-time without requiring additional Software
`or plug-ins.
`FIG. 3B is a block diagram of another embodiment of a
`web client that can play media content from the Internet or
`a network in real-time without requiring additional Software
`or plug-ins.
`
`25
`
`FIELD OF THE INVENTION
`The present invention relates to computer Systems, and
`more particularly to a method and System for allowing
`media, Such as live or Streaming media, to be played in
`real-time on a computer System without requiring the com
`15
`puter System to have additional Software or plug-ins.
`BACKGROUND OF THE INVENTION
`Currently, many conventional Systems are available for
`allowing media content, Such as audio or Video, to be
`delivered to web clients over the Internet or a local area
`network (LAN). The web clients are typically computer
`Systems that are equipped with a virtual machine, typically
`incorporated into a conventional browser. Web clients
`might, for example, include a cell phone, personal digital
`assistant (PDA), Web pad, personal computer, workStation
`or other device that can connect to the LAN or Internet.
`Conventional virtual machines in browsers are typically
`JAVATM virtual machines. Conventional browsers are used
`for many functions and are capable of playing certain types
`of content. For example, conventional browsers are typically
`capable of receiving, decompressing and displaying, or
`playing, JPEG image. Conventional browsers are also
`capable of using GIF file formats. Thus, conventional
`browsers are typically capable of playing certain types of
`audio and Static image data.
`Conventional Systems exist for allowing conventional
`browsers to play other types of media content, Such as
`real-time audio or video, from the web. There are conven
`tional Systems that provide conventional Streaming audio or
`video in real-time. For example, RealAudio and RealVideo
`from Real Networks allows streaming audio or video to be
`played in real-time on a browser. Streaming Video or audio
`is a mechanism that allows real-time audio or video to be
`captured, compressed, delivered to a web client via a LAN
`45
`or the Internet, decompressed and displayed, or played, by
`the web client. In order to allow streaming video/audio to be
`provided on the web client, Software or plug-ins must be
`installed for the browser. For example, Real Audio or Real
`Video can be downloaded and installed by a user. Using Real
`Audio or Real Video, a conventional browser can play audio
`or video provided via the Internet or LAN in real-time. The
`user must, therefore, agree to have the Software or plug-in
`downloaded to the web client and install the Software or
`plug-in So that it can be used with the browser.
`Although Software or plug-ins allow Streaming of Video or
`audio on a conventional browser, one of ordinary skill in the
`art will readily realize that it would be desirable to provide
`Video or audio in real time on a conventional browser
`without requiring the installation of Software or plug-ins.
`This functionality would allow a user of the web client to be
`able to play video and audio provided via the Internet or
`LAN without expending the time or additional resources
`required to install and Store the additional Software of
`plug-ins. However, as discussed above, a conventional
`browser is capable of playing only certain types of content,
`Such as Static JPEG imageS. Consequently, without the
`
`50
`
`55
`
`60
`
`65
`
`35
`
`40
`
`Amazon / WAG Acquisition
`Exhibit 1021
`Page 9
`
`
`
`3
`FIG. 4A is a high-level flow chart of one embodiment of
`a method for allowing a browser of a web client to can play
`media content from the Internet or a network in real-time
`without requiring additional Software or plug-ins.
`FIG. 4B is a flow chart of one embodiment of a method
`for ensuring that a browser of a web client can adequately
`flush the cache.
`FIGS. 5A and 5B depict a more detailed flow chart of a
`preferred embodiment of a method for allowing a browser of
`a web client to can play media content from the Internet or
`a network in real-time without requiring additional Software
`or plug-ins.
`DETAILED DESCRIPTION OF THE
`INVENTION
`The present invention relates to an improvement in deliv
`ery of video to web clients. The following description is
`presented to enable one of ordinary skill in the art to make
`and use the invention and is provided in the context of a
`patent application and its requirements. Various modifica
`tions to the preferred embodiment will be readily apparent to
`those skilled in the art and the generic principles herein may
`be applied to other embodiments. Thus, the present inven
`tion is not intended to be limited to the embodiment shown,
`but is to be accorded the widest Scope consistent with the
`principles and features described herein.
`Conventional Systems exist for allowing a browser of a
`web client to play media content, Such as audio or Video,
`delivered from the Internet or other network. For example,
`Real Video and Real Audio provided by Real Networks
`allow Streaming of Video and audio, respectively, on web
`clients. Although these Systems function, one of ordinary
`skill in the art will readily realize that these Systems require
`Software or plug-ins to be installed in the web client to
`operate with the browser. Consequently, additional time and
`resources are expended to install and Store the additional
`Software or plug-ins.
`The present invention provides a method and System for
`providing media content in real-time on a web client. The
`web client includes a browser utilizing a cache. The media
`content can be separated into a plurality of Sections. The
`browser of the web client can read and display a Section of
`the media content without additional Software or plug-ins. In
`one aspect, the method and System comprise ensuring that
`the web client can flush the cache to allow the media content
`to be played in real-time, preferably in response to the web
`client requesting the media content. In this aspect, the
`method and System also comprise providing the plurality of
`Sections of the media content to the web client Section by
`section and allowing the web client to flush the section of the
`media content from the cache once each of the plurality of
`Section has been displayed. In a Second aspect, the method
`and System comprise requesting the media content using the
`web client and ensuring that the web client can flush the
`cache to allow the media content to be played in real-time.
`In this aspect, the method and System also comprise receiv
`ing each of the plurality of Sections of the media content on
`the web client Section by Section, displaying each of the
`plurality of Sections Section by Section and flushing each
`Section of the media content from the cache once each of the
`plurality of Sections has been displayed by the browser.
`The present invention will be described in terms of
`particular compression Standards, Such as JPEG, that can be
`decompressed and played by a browser without the instal
`lation of additional Software or plug-ins. However, one of
`ordinary skill in the art will readily recognize that this
`
`15
`
`25
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`US 6,728,763 B1
`
`4
`method and system will operate effectively for other com
`pression Standards that can be decompressed and played by
`a browser without the installation of additional Software or
`plug-ins. The present invention will also be described in the
`context of particular architectures, particular Software, Such
`as JAVATM, and particular browser types. However, one of
`ordinary skill in the art will readily recognize that the present
`invention will operate effectively for other architectures,
`other software and other browser types.
`To more particularly illustrate the method and System in
`accordance with the present invention, refer now to FIG. 1,
`depicting one embodiment of a system 100 that allows a
`browser for a web client to play media content from the
`Internet or a network in real-time without requiring addi
`tional software or plug-ins. The system 100 includes an
`adaptive media streaming (AMS) server 110 in accordance
`with the present invention, and multiple web clients 170 that
`are coupled with the AMS server 110 via a network 102. The
`network 102 could include a local area network (LAN), the
`Internet, or another type of network. The AMS server 110 is
`a Server appliance that preferably includes or is coupled to
`a storage (not shown) and/or media content sources 104,106
`and 108. Note that although three media content sources
`104, 106 and 108 are shown, nothing prevents the use of
`another number of media content Sources. The Storage (not
`shown) and the media content Sources are Sources for media
`content, Such as audio and/or video. The AMS server 110
`allows the web client 170 to be capable of playing in real
`time media content that is delivered over the network 102
`from the AMS server 110.
`The web client 170 is a device that can be coupled to the
`network 102. For example, the web client 170 may include
`a cell phone, a personal digital assistant (PDA), a web pad,
`a personal computer, a laptop computer, or a WorkStation.
`The web client 170 includes an interface 171 for coupling
`the web client 170 to the network 102, a browser 172, a
`cache 174 used by the browser 172 in displaying data and a
`process for displaying data on the browser 172. The browser
`172 preferably implements a virtual machine, Such as a
`JAVATM virtual machine. The web client 170 requests media
`content, Such as audio and video, from the AMS server 110.
`In response, the AMS server 110 provides the media content
`to the web client 170 in a manner that allows the web client
`170 to play the media content in real time without the
`installation of additional Software or plug-ins.
`FIG. 2A is a more detailed block diagram of one embodi
`ment of the AMS server 110. The AMS server 110 include
`a web interface 112 for communication via the network 102.
`The AMS server 110 includes a media preparation and
`delivery block 115. The media preparation and delivery
`block 115 aids in preparing the media content and delivering
`the media content to the network 102 to be provided to the
`web client 170 depicted in FIG. 1. Referring to FIGS. 1 and
`2A, the media preparation and delivery block 115 preferably
`divides the media content into sections which the browser
`172 can display and delivers the media content section by
`Section to the network 102 and, therefore, to the web client
`170. For example, in a preferred embodiment, for video, the
`media preparation and delivery block 115 divides the media
`content into frames, compresses each frame using a Standard
`such as JPEG, and delivers the video JPEG file (frame or
`section) by JPEG file (frame or section) to the web client
`170. Also in a preferred embodiment, the media preparation
`and delivery block 115 provides an abort command between
`each section of the media content. The AMS server 110 also
`includes a browser control block 214 for ensuring that the
`browser 172 of the web client 170 is capable of playing
`
`Amazon / WAG Acquisition
`Exhibit 1021
`Page 10
`
`
`
`US 6,728,763 B1
`
`15
`
`25
`
`35
`
`40
`
`S
`media content in real time without requiring the installation
`of additional Software or plug-ins. Referring to FIGS. 1 and
`2A, in a preferred embodiment, the browser control block
`113 ensures that the web client 170 is capable of flushing
`Sections of media content from the cache 174 Such that the
`media content can to be played in real time. In a preferred
`embodiment, the browser control block 113 ensures that the
`browser 172 does not cache data. Thus, when the browser
`172 receives an abort command, then receives the next
`section of data, the browser 172 will not attempt to use 20
`data in the cache 174 in displaying the next Section of data.
`In other words, the cache 174 will be flushed between
`sections of media content provided by the AMS server 110.
`As a result, the browser 172 will display the media content
`Section by Section and flushing the cache between Sections,
`thereby allowing for real-time playing of the media content.
`FIG. 2B depicts a more detailed block diagram of one
`embodiment of the AMS server 110'. The AMS server 110'
`includes a media input interface 128. The media input
`interface 128 allows the AMS server 110' to receive media
`from input sources. For example, the AMS server 110' could
`receive live video from media content Sources 104,106 and
`108 depicted in FIG. 1. Referring to FIGS. 1 and 2B, the
`AMS server 110 also includes a server streaming active
`(SSA) process 116. The SSA process 116 handles the
`Streaming of media content, Such as Video and audio. Thus,
`portions of the SSA process 116 may be considered to be
`analogous to the media preparation and delivery block 115
`depicted in FIG. 2A. Referring back to FIGS. 1 and 2B, the
`SSA process includes a capture thread 118, a compression
`thread 120, a streaming preparation proceSS 122, a web
`delivery process 224 and a real-time Streaming management
`process 126. The capture thread 118, compression thread
`120, streaming thread 122 and web delivery process 224 are
`active in parallel, but are interlocked So that the Sections of
`the media content for which Streaming is performed are in
`the desired order. Thus a particular portion of the media
`content is captured, compressed, undergoes Streaming, then
`undergoes delivery in that order. The real-time Streaming
`management proceSS 126 ensures that the remaining pro
`cesses 118, 120, 122 and 124 can be performed simulta
`neously and in the proper order.
`The AMS server 110' also includes an on demand access
`proceSS 114. The on demand acceSS proceSS 114 ensures that
`the SSA process 116 becomes active when the web client
`170 requests media content from the AMS server 110'. The
`on demand acceSS proceSS 114 also ensures that the SSA
`proceSS 116 remains active throughout delivery of the media
`content. Moreover, in one embodiment, the one demand
`access process 114 ensures that the web client 170 can
`adequately flush the cache 174, as discussed below, So that
`the browser 170 can play the media content from the AMS
`server 110' in real-time without the installation of additional
`Software or plug-ins. Thus, a portion of the on demand
`access process 114 is analogous to the browser control block
`113.
`FIG. 2C is a block diagram of another embodiment of an
`AMS server 110" in accordance with the present invention.
`The AMS server 110" includes a processor 130, control logic
`132, an embedded network operating system 134, a flash
`memory 136, a media control input 138, a random acceSS
`memory (RAM) buffer 140, a media access control Sub
`System 142, a Video/audio capture engine 144, a multi
`channel management Sub-System 146, a media compression
`engine 148, a media file transfer protocol (FTP) re-direct
`sub-system 150, a media input interface 152, a media
`bandwidth management Sub-System 154, a media Streaming
`
`45
`
`50
`
`55
`
`60
`
`65
`
`6
`sub-system 156, a web interface 158, a media delivery
`Sub-System 160, an optional mass Storage 162, a register
`indeX client Sub-System 164 and a media attribute manage
`ment sub-system 166.
`The AMS server 110" is preferably capable of substan
`tially the same functions as the AMS servers 110 and 110'.
`Thus, the AMS server 110" is capable of delivering media
`content to the web client 170 via the network 102 depicted
`in FIG. 1. Referring to FIGS. 1 and 2C, the AMS server 110"
`is capable of controlling the web client 170 so that the web
`client 170 can flush the cache 174 rapidly enough to allow
`the media content to be played on the web client 170 in real
`time. In particular, the AMS server 110" provides the media
`content to the web client 170 section by section and ensures
`that the web client 170 is capable of flushing the cache 174
`after each Section is delivered.
`The media content could be stored in the optional mass
`storage 162 or provided from media sources 104, 106 and
`108 via the media input interface 152. The video/audio
`capture engine 1.44, the media compression engine 148, the
`media streaming Sub-system 156 and the media delivery
`Sub-System 160 handle capture, compression, Streaming and
`delivery for streaming video/audio for the AMS server 110".
`Preferably, video is compressed frame by frame using JPEG
`by the media compression engine 148. The register index
`client Subsystem 164 controls registration and tracking of
`clients that are allowed to obtain media content from the
`AMS server 110'. The media input control 138 controls the
`media input devices, Such as the media content Sources 104,
`106 and 108. The media access control sub-system 142
`performs administration as well as client authentication and
`authorization. Thus, access to the media for the AMS server
`110" may be controlled by a password or other similar
`mechanism. The multi-channel management Sub-System 146
`performs real-time live index menu and channel manage
`ment. The media FTP re-direct subsystem 150 can re-target
`or re-direct media to other uniform resource locators (URLs)
`using FTP. The media bandwidth management subsystem
`154 can perform real-time bandwidth detection and adaptive
`media attribute delivery according to the client bandwidth.
`Thus, the AMS server 110" can dynamically adapt to the
`bandwidth of the client 170. The media attribute manage
`ment Sub-System 166 can perform real-time media quality
`control and media size adjustment automatically for the
`AMS server 110". In another embodiment, image quality
`and frame size could be adjusted by an administrator.
`The AMS servers 110, 110' and 110" can thus provide
`media content to the web client 170 on demand and allow
`the web client 170 to display the media content in real-time
`without additional software or plug-ins. The AMS servers
`110, 110' and 110" can perform media streaming, including
`capture, compression, Streaming and delivery. In addition, if
`capture and compression functions are not used and media
`delivered from Sources, Such as the media content Sources
`104,106 and 108 instead of from another Source, Such as the
`optional mass storage 162, the AMS servers 110, 110' and
`110" simply provide media on demand.
`Referring to FIGS. 1, 2A, 2B and 2C, as discussed above,
`the AMS servers 110, 110' and 110" perform their functions
`in part by providing the media content Section by Section to
`the web client 170. In addition, the AMS servers 110, 110'
`and 110' control the web client 170 to ensure that the cache
`174 can be flushed between each section of the media
`content played.
`FIG. 3A depicts one embodiment of a web client 170' in
`accordance with the present invention. The web client 170
`
`Amazon / WAG Acquisition
`Exhibit 1021
`Page 11
`
`
`
`US 6,728,763 B1
`
`15
`
`25
`
`35
`
`40
`
`7
`includes a web interface 171' browser 172', a cache 174' and
`a AMS server push process 176. Referring to FIGS. 1 and
`3A, the web interface 171' allows the web client 170' to be
`coupled with a network 102, which could be the Internet.
`The cache 174" allows the browser 172 to cache data. The
`browser 172' is a push-enabled browser. Thus, the browser
`172 receives data from the network when the data is pushed
`from the Source to the browser 172".
`The AMS server push process 176 aids in allowing the
`push-enabled browser 172 to play media content in real time
`without additional Software or plug-ins being installed. The
`AMS server push process 176 includes a media content
`decompress and play thread 178 and a cache flush thread
`180. The media content decompress and play thread 178
`decompresses and plays a Section of the media content
`pushed to the web client 170' by the AMS server 110, 110'
`and 110". The media content is broken into sections by the
`AMS server 110, 110'or 110" as discussed below. The cache
`flush thread 180 flushes the cache 174. In particular, the web
`client 170" receives a section of media content from the AMS
`server 110, 110' or 110". The web client 170' decompresses
`and plays the section on the browser 172 using the media
`content decompress and play thread 178. However, as dis
`cussed above, the section provided by the AMS server 110,
`100' and 110" can be decompressed and played by a con
`ventional browser. For example, the Section may be a frame
`of video data compressed using JPEG. The cache flush
`thread 180 flushes the cache 174 after each section is played
`by the push-enabled browser 172". Thus, the browser 172
`plays a section, the cache 174' is flushed, the browser 172
`plays the next section, and so on. The cache flush thread 180
`and media content decompress and play thread 178 function
`in this manner because of information provided by the AMS
`server 110, 110' or 110", as discussed below.
`FIG.3B depicts another embodiment of a web client 170"
`in accordance with the present invention. The web client
`170" includes a web interface 171", a browser 172", a cache
`174", a client pull process 182 and a patch thread x 190.
`Referring to FIGS. 1 and 3B, the web interface 171" allows
`the web client 170" to be coupled with a network 102, which
`could be the Internet. The cache 174" allows the browser
`172" to cache data. The browser 172" is a pull-enabled
`browser. Thus, the browser 172" receives data from the
`network when the data is pulled by the web client 170" from
`the Source to the browser 172".
`The client pull process 182 aids in allowing the pull