`US 6,728,763 B1
`(10) Patent No.:
`Chen
`(45) Date of Patent:
`Apr. 27, 2004
`
`
`US006728763B1
`
`(54) 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
`
`6,516,338 B1 *
`6,526,580 B2 *
`6,536,043 B1 *
`* cited by examiner
`
`2/2003 Landsmanetal. .......... 709/203
`
`2/2003 Shimomura etal. ........... 725/63
`3/2003 Gucdalia 0... 725/90
`
`(76)
`
`Inventor: Ben W. Chen, 1400 ‘lelteca St.,
`Fremont, Alameda, CA (US) 94539
`
`(*) Notice:
`
`Subject to any disclaimer, the term ofthis
`patent is extended or adjusted under 35
`US.C. 154(b) by 651 days.
`
`(21) Appl. No.: 09/588,035
`
`(22) Filed:
`
`Jun. 5, 2000
`
`(60)
`
`Related U.S. Application Data
`Provisional application No. 60/188,341, filed on Mar. 9,
`2000.
`
`(SL) Unt. C1? voc cccccceccscsccssssssssssssneesssesesesen GO6F 15/16
`(52) US. Ch. voces 709/219; 709/217; 709/201;
`709/224; 709/229; 725/51; 725/110; 725/113;
`370/316; 370/338
`(58) Field of Search oo... 709/2, 203, 219,
`709/201, 217, 218, 224, 229; 370/316,
`338, 351, 352; 725/110, 113, 51
`
`(56)
`
`References Cited
`U.S. PATENT DOCUMENTS
`
`4/1997 Civanlar et al.
`5,617,540 A *
`1/2000 Lowell
`6,012,086 A
`1/2000 Cannonetal.
`6,014,706 A
`6,314,492 B1 * 11/2001 Allen et al. 0... 711/135
`6,502,194 B1 * 12/2002 Bermanetal. ........... 713/201
`
`....... 370/395 .54
`
`Primary Examiner—David Wiley
`Assistant Examiner—Phuoc H. Nguyen
`(74) Attorney, Agent, or Firm—Sawyer Law Group LLP
`(57)
`ABSTRACT
`
`A method and system for providing media content in real-
`time on a webclient 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
`webclient 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 clicnt and
`ensuring that the web client can flush the cacheto 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 eachof the plurality of
`sections has been displayed.
`
`40 Claims, 7 Drawing Sheets
`
`229
`Web Client Requests Media
`Content From AMS Server
`
`Determine Browser Type
`226
`
`
`
`44
`
`228
`
`23
`
`0
`
`2
`
`23
`
`
`
`234
`
`Push Header anc Data
`Size to Web Client
`
`Place AMS Serverin
`Active State
`
`Capture, Compress, and
`Update Content Files
`
`Push Section of Media
`Content to Web Client
`
`
`
`
`Browser
` Yes
`No
`Push-Enabled?
`
`Return Applet to
`
`WebClient
`
`246
`
`Capture, Compress and
`
`
`Update Content Files
`
`248
`
`Check For Patch Thread x
`and Kill if Present
`
`250
`
`Start Pull Process ang Pull
`
`Section from AMS Server
`
`
`252
`WebClient Decompresses and
`Piays Section on Browser
`
`IPR2022-01227
`IPR2022-01227
`EXHIBIT 1017 - PAGE 0001
`EXHIBIT 1017 - PAGE 0001
`
`
`
`U.S. Patent
`
`Apr. 27, 2004
`
`Sheet 1 of 7
`
`US 6,728,763 B1
`
`100
`
`
`172
`
`
`
`
`
`Media
`Content
`Source
`
`110
`
`Browser
`
`
`
`AMS Server
`
`
`
`
`Media
`Media
`
`
`Content
`Content
`
`
`Source
`
`Source
`
`172
`
`
`
` WebInterface
`
`
`WebInterface
`
`
`
`Browser
`
`
`Figure 1
`174
`
`11
`
`Web Interface
`
`
`
`113
`
`
`
`Media Preparation and
`Delivery Block
`
`
`
`
`Browser
`Control Block
`
`
`
`115
`
`Figure 2A
`
`IPR2022-01227
`IPR2022-01227
`EXHIBIT 1017 - PAGE 0002
`EXHIBIT 1017 - PAGE 0002
`
`
`
`U.S. Patent
`
`Apr. 27, 2004
`
`Sheet 2 of 7
`
`US 6,728,763 B1
`
`128
`
`114
`
`Server
`
`
`Streaming
`
`
`Active
`Stream.
`
`
`Process
`
`
`Prep.
`Real-time
`
`
`
`On
`Process
`Stream.
`
`
`
`
`
`
`Mngmnt.
`Demand
`Thread
`Access
`Process
`
`
`
`
`
`
`Process
`
`
`Web
`Delivery
`Process
`
`
`
`Web Interface
`
`Figure 2B
`
`IPR2022-01227
`IPR2022-01227
`EXHIBIT 1017 - PAGE 0003
`EXHIBIT 1017 - PAGE 0003
`
`
`
`U.S. Patent
`
`Apr. 27, 2004
`
`Sheet 3 of 7
`
`US 6,728,763 B1
`
`430
`
`210"
`
`Operating System
`
`138
`
`Media Input
`Control
`
`Media Access Control
`Sub-system
`
`Multi-channel Management
`Sub-system
`
`Media FTP Redirect
`Subsystem
`
`Media Bandwidth
`
`Media Streaming
`Sub-system
`
`Media Delivery
`Sub-system
`
`Logic
`
`Flash
`Memory
`
`436
`
`140
`
`Video/Audio Capture
`Engine
`
`Media Compession
`Engine
`
`Media Input
`Interface
`
`192
`
`4144
`
`148
`
`interface
`
`Storage
`
`462
`
`166
`
`Register Index Client
`
`Management Sub-system
`
`Figure 2C
`
`146
`
`159
`
`154
`
`156
`
`160
`
`164
`
`IPR2022-01227
`IPR2022-01227
`EXHIBIT 1017 - PAGE 0004
`EXHIBIT 1017 - PAGE 0004
`
`
`
`U.S. Patent
`
`Apr. 27, 2004
`
`Sheet 4 of 7
`
`US 6,728,763 B1
`
`
` Push-Enabled
`
`Browser
`
`
`
`Media
`
`
`Content
`
`
`
`
`
`Cache Flush
`Decompress
`and Piay
`Process
`
`
`
`Thread
`
`
`178
`
`180
`
`Figure 3A
`
`170"
`
`Web Interface
`
`
`
`Browser 172"
` Pull-Enabled
`
`
`
`
`
` Client
`Media
`Pull
`Media
`Content
`
`
`
`
`
`
`
`
`
`Process Decompress}|Cache FlushPull Patch
`
`
`
`
`
`
`
`Process
`Thread x
`u
`and Play
`
`
`
`
`
`Thread
`
`Thread 184
`
`
`186
`
`188
`
`Figure 3B
`
`IPR2022-01227
`IPR2022-01227
`EXHIBIT 1017 - PAGE 0005
`EXHIBIT 1017 - PAGE 0005
`
`
`
`U.S. Patent
`
`Apr. 27, 2004
`
`Sheet 5 of 7
`
`US 6,728,763 B1
`
`200
`
`Optionally Allow Web Client to Request
`Media Content from AMS Server
`
`202
`
`Ensure WebClient Can Flush Cache
`
`to Accommodate Real-Time Play of
`Media Content
`
`
`
`
`
`
`
`Provide Sections of Media Content
`to Web Client Section by Section
`
`204
`
`206
`
`208
`
`Allow Web Client to Flush Cache
`After Each Section Displayed
`
`Figure 4A
`
`204
`
`Determine Type of the WebClient's
`
`210
`
`Browser
`
`
`
`
`Provide Instructions Appropriate for
`
`
`Browser Type so that Web Client Can
`Flush Cache to Accommodate Real-
`
`Time Play of Media Content
`
`212
`
`Figure 4B
`
`IPR2022-01227
`IPR2022-01227
`EXHIBIT 1017 - PAGE 0006
`EXHIBIT 1017 - PAGE 0006
`
`
`
`U.S. Patent
`
`Apr. 27, 2004
`
`Sheet 6 of 7
`
`US 6,728,763 B1
`
`NQ N oO
`
`Web Client Requests Media
`Content From AMS Server
`
`Determine Browser Type
`
`222
`
`224
`
`Browser
`Push-Enabled?
`
`44
`
`Return Appiet to
`Web Client
`
`Place AMS Server in
`Active State
`
`
`
`
`
`228
`
`
`
`Push Header and Data
`Size to Web Client
`
`
` 230
`
`246
`
`
`Capture, Compress and
`Update Content Files
`
`
`
`
`
`
` Push Section of Media
`Start Pull Process and Pull
`
`Content to Web Client
`Section from AMS Server
`
`
`202
`Web Client Decompresses and
`Plays Section on Browser
`
`232
`
`234
`
`Capture, Compress, and
`Update Content Files
`
`Check For Patch Thread x
`and kill if Present
`
`2
`
`48
`
`250
`
`
`
`Figure 5A
`
`IPR2022-01227
`IPR2022-01227
`EXHIBIT 1017 - PAGE 0007
`EXHIBIT 1017 - PAGE 0007
`
`
`
`U.S. Patent
`
`Apr. 27, 2004
`
`Sheet 7 of 7
`
`US 6,728,763 B1
`
`Web Client Flushes Cache 236
`
`NON oO
`
`
`Web Client Receives
`
`Section and Starts AMS
`Server Push Process
`
`
`
`2
`
`38
`
`Web Client Decompresses and
`Plays Section on Browser
`
`204
`
`256
`
`Patch Thread x Started
`
`Threadio1
`
`Patch Thread x Kills Pull
`
`©
`
`Patch Thread x Sleeps
`
`Resources Released
`
`260
`
`262
`
`264
`
`Patch Thread x Wakes Up
`
`266
`
`Patch Thread x Starts Pull
`Process
`
`268
`
`
`Repeat Steps 250-266if
`Web Client Still
`
`
`Requesting Service
`
`Web Client Flushes Cache
`
`2
`
`2
`
`40
`
`
`
`42
`Repeat Steps 230-240 if Web
`Client Still Requesting Media
`Content and Size not
`
`Reached
`
`
`
`Figure 5B
`
`IPR2022-01227
`IPR2022-01227
`EXHIBIT 1017 - PAGE 0008
`EXHIBIT 1017 - PAGE 0008
`
`
`
`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.
`
`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-
`puter system to have additional software or plug-ins.
`BACKGROUND OF THE INVENTION
`
`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. ‘he present invention addresses
`such a need.
`
`SUMMARYOF 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 webclient canflush the cache to allow the media content
`
`wm
`
`10
`
`15
`
`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 clicnts 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
`JAVA™virtual machines. Conventional browsers are used
`
`for manyfunctions and are capable of playing certain types
`of content. For example, conventional browsersare 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. ‘here are conven-
`tional systems that provide conventional streaming audio or
`video in real-time. or example, Real Audio and Real Video
`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
`or the Internet, decompressed and displayed, or played, by
`the webclient. 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 downloadedandinstalled 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 clicnt 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 webclient 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
`browseris capable of playing only certain types of content,
`such as stalic JPEG images. Consequently, without
`the
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`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 clientto flushthe section ofthe
`media content from the cache once each ofthe 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 eachofthe plurality of sections section bysection
`and flushing cach 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 webclient 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 embodimentof 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-
`ins.
`
`
`
`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-
`ins.
`
`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
`webclient that can play media content from the Internet or
`a network in real-time without requiring additional software
`or plug-ins.
`
`IPR2022-01227
`IPR2022-01227
`EXHIBIT 1017 - PAGE 0009
`EXHIBIT 1017 - PAGE 0009
`
`
`
`US 6,728,763 B1
`
`3
`FIG. 4A is a high-level flow chart of onc embodiment of
`a method for allowing a browserof 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 embodimentof 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
`
`10
`
`15
`
`The present invention relates to an improvementin 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 embodimentwill 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 clicnt 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 canfiush 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 webclient 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 ofthe 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 eachof 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
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`4
`method and system will operate cffectively 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 JAVA™, 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 AMSserver 110 via a network 102. The
`network 102 could include a local area network (LAN), the
`Internet, or another type of network. The AMSserver 110 is
`a server appliance that preferably includes or is coupled to
`a slorage (nol 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 AMSserver 110
`allows the web clicnt 170 to be capable of playing in real
`time media content that is delivered over the network 102
`from the AMSserver 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
`processfor displaying data on the browser 172. The browser
`172 preferably implements a virtual machine, such as a
`JAVA™virtual machine. The web client 170 requests media
`content, such as audio and video, from the AMSserver 110.
`In response, the AMSserver 110 provides the media content
`to the web client 170 in a mannerthat allows the web client
`
`time without the
`170 to play the media content in real
`installation of additional software or plug-ins.
`FIG. 2A is a more detailed block diagram of one embodi-
`ment of the AMSserver 110. The AMSserver 110 include
`a webinterface 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, tor 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 AMSserver 110 also
`includes a browser control block 214 for ensuring that the
`browser 172 of the web client 170 is capable of playing
`
`IPR2022-01227
`IPR2022-01227
`EXHIBIT 1017 - PAGE 0010
`EXHIBIT 1017 - PAGE 0010
`
`
`
`US 6,728,763 B1
`
`5
`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 AMSserver 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 AMSserver 110'. The AMSserver 110'
`
`10
`
`15
`
`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 AMSserver 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 AMSserver 110"
`is capable of controlling the web clicnt 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 AMSserver 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
`
`AMSserver 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 AMSserver
`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 performreal-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
`AMSserver 110". In another embodiment, image quality
`and frame size could be adjusted by an administrator.
`The AMSservers 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 AMSservers
`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 AMSservers 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 AMSservers 110, 110'
`and 110' control the web client 170 to ensure that the cache
`174 can be flushed between cach 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!
`
`IPR2022-01227
`IPR2022-01227
`EXHIBIT 1017 - PAGE 0011
`EXHIBIT 1017 - PAGE 0011
`
`interface 128. The media input
`includes a media input
`interface 128 allows the AMSserver 110' to receive media ,
`from input sources. For example, the AMSserver 110' could
`receive live video from media content sources 104, 106 and
`108 depicted in FIG. 1. Referring to FIGS. 1 and 2B, the
`AMSserver 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 webdelivery 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 AMSserver 110' also includes an on demand access
`
`30
`
`35
`
`40
`
`process 114. The on demandaccess process 114 ensuresthat
`the SSA process 116 becomes active when the web client
`170 requests media content from the AMSserver 110'. The
`on demand access process 114 also ensures that the SSA
`process 116 remainsactive 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 withoutthe installation of additional
`
`45
`
`50
`
`software or plug-ins. Thus, a portion of the on demand
`access process 114 is analogous to the browser control block
`113.
`
`55
`
`FIG. 2C is a block diagram of another embodiment of an
`AMSserver 110" in accordance with the present invention.
`The AMSserver 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
`
`60
`
`65
`
`
`
`US 6,728,763 B1
`
`7
`includes a web interface 171' browser 172', a cache 174! and
`a AMSserver 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 whenthe data is pushed
`from the source to the browser 172’.
`
`10
`
`15
`
`The AMSserver 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
`AMSserver 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 AMSserver 110, 110°
`and 110". The media content is broken into sections by the
`AMSserver 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 AMSserver 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
`hread 180 flushes the cache 174' after cach 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 embodimentof 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
`he webclient 170" to be coupled with a network 102, which
`could be the Internet. The cache 174" allows the browser
`
`8
`section is played by the pull-cnabled browser 172". Thus,
`the client pull process 182 pulls the section, the video/audio
`thread 184 decompresses the section and plays the section
`on the browser 172", the cache 174" is flushed, the client
`pull process 182 pulls the next section, and so on. The cache
`flush thread 188 and media content decompress and play
`thread 186 function in this manner because of information
`provided by the AMSserver 110, 110' or 110", as discussed
`below, and because of the patch thread x 190.
`In order to properly flush the cache 174", the patch thread
`x 190 is used in the pull-enabled browser 172". The patch
`thread x 190 is provided by