`
`(12) United States Patent
`Shapiro
`
`(10) Patent No.:
`(45) Date of Patent:
`
`US 7,356,575 B1
`*Apr. 8, 2008
`
`(54) SYSTEM, METHOD, AND COMPUTER
`PROGRAMI PRODUCT FOR REMOTELY
`DETERMINING THE CONFIGURATION OF
`A MULT-MEDIA CONTENT USER
`
`(75) Inventor: Jody Shapiro, San Jose, CA (US)
`(73) Assignee: Sony Corporation, Tokyo (JP)
`
`(*) Notice:
`
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 499 days.
`This patent is Subject to a terminal dis
`claimer.
`
`(21) Appl. No.: 10/700,409
`
`(22) Filed:
`
`Nov. 3, 2003
`Related U.S. Application Data
`(63) Continuation-in-part of application No. 09/986,683,
`filed on Nov. 9, 2001.
`(60) Provisional application No. 60/516,017, filed on Oct.
`31, 2003.
`
`(51) Int. Cl.
`(2006.01)
`G6F 3/
`(52) U.S. Cl. ...................................................... 709/220
`(58) Field of Classification Search .
`None
`See application file for complete search history.
`References Cited
`
`(56)
`
`U.S. PATENT DOCUMENTS
`
`7, 1968 Wernikoff et al.
`3,394,352 A
`3,913,093 A 10, 1975 De Vincentiis et al.
`5,526,397 A
`6, 1996 Lohman
`5,657,015 A
`8/1997 Nakajima et al.
`
`8/1998 Newby et al.
`5,796,829 A
`5,818,537 A 10, 1998 Enokida et al.
`5,818,933 A 10, 1998 Kambe et al.
`5,838,927 A 11/1998 Gillon et al.
`5,848,134 A 12/1998 Sekiguchi et al.
`5,949,876 A
`9, 1999 Ginter et al.
`5.991,795 A 11/1999 Howard et al.
`6,122.290 A
`9/2000 Kawamata
`(Continued)
`FOREIGN PATENT DOCUMENTS
`
`EP
`
`O 727 888
`8, 1996
`(Continued)
`OTHER PUBLICATIONS
`Rakesh Mohan et al., Content Adaptation Framework: Bringing the
`Internet to Information Appliances (IBM), Multimedia Services and
`Technology
`Issues,
`Global
`Telecommunications
`Conference—Globecom '99, pp. 2015-2021.
`(Continued)
`Primary Examiner Robert B Harrell
`(74) Attorney, Agent, or Firm—Frommer Lawrence & Haug
`LLP. William S. Frommer; Thomas F. Presson
`
`(57)
`
`ABSTRACT
`
`A method for remotely determining the configuration of a
`computer of a multimedia content user includes sending
`player detection code to the user's computer and receiving
`configuration information regarding the user's computer. A
`method of determining a connection speed of a computer
`includes determining a size of a timing block based on an
`estimated bandwidth and retrieving the timing block. The
`connection speed is determined based on the timing block
`size and the times at which transfer begins and ends.
`
`18 Claims, 17 Drawing Sheets
`
`
`
`Delivery management
`
`Serwar contact
`code 2
`
`
`
`http request 130,
`Configuration
`
`Timing
`Bock SS
`
`1
`
`Charter Ex. 1131
`
`
`
`US 7,356,575 B1
`Page 2
`
`U.S. PATENT DOCUMENTS
`
`6,247,050 B1
`6,594,699 B1*
`FOREIGN PATENT DOCUMENTS
`
`6, 2001 Tso et al.
`7/2003 Sahai et al. ................. TO9,228
`
`EP
`EP
`EP
`EP
`WO
`
`O 992 922
`1 O26872
`1 032 217
`1 043 655
`WOOO 725 17
`
`4/2000
`8, 2000
`8, 2000
`10, 2000
`11 2000
`
`OTHER PUBLICATIONS
`Richard Han et al., Dynamic Adaptation in an Image Transcoding
`Proxy for Mobile Web Browsing (IBM), IEEE Personal Commu
`nications, Dec. 1998, pp. 8-17.
`“Broadcast Help.” retrieved Aug. 20, 2002 at http://help.yahoo.
`com/helpfus/bcst?, 2 pages.
`“BrowserHawk features and benefits,” retrieved Jan. 23, 2004 at
`http://www.cyscape.com/products/bhawk? features.asp, 6 pages.
`“Yahoo! Broadcast,” retrieved Aug. 20, 2002 at http://broadcast.
`yahoo.com/home.html, 3 pages.
`
`"Larry Bouthillier's Streaming Media Player Detection
`Tutorial Client-side code.” retrieved Sep. 20, 2002 at http://
`www.emediacommunications.biz. Sm3/Sm3 clientcode.html.
`4
`pageS.
`"Streaming Media Player/Connection Speed Detection Tutorial.”
`retrieved Sep. 20, 2002 at http://www.emediacommunications.biz
`Sm3/index.html, 2 pages.
`A flowchart, retrieved Sep. 20, 2002 at http://www.emediacom
`munications.biz. Sm3/playDetectFlow.gif, 1 page.
`A flowchart, retrieved Sep. 20, 2002 at http://www.emediacom
`munications.biz. Sm3/playerDataObjectUML.gif, 1 page.
`Youn Jet al: “Video Transcoding for Multiple Clients' Proceedings
`of the SPIE, SPIE, Bellingham, VA, US, vol. 4067. No. PART 1-3,
`Jun. 2000, pp. 76-85, XPO080 12075 ISSN: 0277-786X.
`Smith J R et al: “Content-based transcoding of images in the
`Internet” Image Processing. 1998 ICIP 98. Proceedings. 1998
`International Conference on Chicago, IL, USA Oct. 4-7, 1998, Los
`Alamitos, CA, USA, IEEE Comput. Soc, US, vol. 3, Oct. 4, 1998,
`pp. 7-11, XPO 10586855 ISBN: 0-8186-8821-1.
`* cited by examiner
`
`2
`
`
`
`U.S. Patent
`
`Apr. 8, 2008
`
`Sheet 1 of 17
`
`US 7,356,575 B1
`
`100
`
`
`
`
`
`
`
`
`
`
`
`Content
`provider
`O5
`
`
`
`
`
`Server contact
`Code 120
`
`Scripts 40
`
`Delivery management
`SW
`25
`
`HTTP request 130,
`Configuration
`informatio
`35
`
`
`
`
`
`
`
`
`
`
`
`Timing
`Bock 55
`
`Preferences
`Page f 50
`
`FIG. 1
`
`3
`
`
`
`U.S. Patent
`
`Apr. 8, 2008
`
`Sheet 2 of 17
`
`US 7,356,575 B1
`
`(-) Processo 20
`
`() Main Memory 208
`
`(
`
`) Display interface 202
`
`Display 230
`
`Secondary Memory 210
`
`hard Disk Orive 22
`
`Cortly cator
`infrastructurns
`20S
`
`( )
`
`Removable Storage
`Orive 24
`
`interface 22O
`
`
`
`
`
`Removable
`Sorage Unit
`218
`
`Renovable
`Storage Unit
`222
`
`
`
`
`
`Communications
`interface 224
`
`Communications Path 226
`
`F.G. 2
`
`4
`
`
`
`U.S. Patent
`
`Apr. 8, 2008
`
`Sheet 3 of 17
`
`US 7,356,575 B1
`
`300
`
`O5
`
`User loads page of Content
`provider
`
`10
`
`Player detection code is fetched 1-32O
`from delivery managment server
`
`Perform player detection
`
`25
`
`Store in cookies
`
`30
`
`33
`
`Present preference page
`
`
`
`No
`
`Sufficient
`nfort nation
`
`33
`
`Receive preferences
`
`
`
`Store in Cookies
`
`User makes HTTP request, any
`cookies are sent to delivery
`management server
`
`
`
`35
`
`CReturn D-370
`
`FIG. 3 A
`
`5
`
`
`
`U.S. Patent
`
`Apr. 8, 2008
`
`Sheet 4 of 17
`
`US 7,356,575 B1
`
`2 Flow Charts
`
`Server-side
`request processing
`(Figure 1)
`
`
`
`Oevery Manager
`HTTP request
`received
`
`g 1
`
`72
`
`Delivery Manager
`cookies received?
`
`
`
`Yes
`
`Send HTTP response
`containing code to send
`client to detection UR
`
`
`
`Return empty
`HTTP response
`
`FIG. 3B
`
`
`
`
`
`
`
`
`
`detection url
`HTTP request
`received
`
`Analyze HTTP onel- 3 7.
`to determine Operating
`System, Platform, HTTP
`cent nt user agen 2
`
`Send limer Start code
`
`Send data block for
`bandwidth
`fmeasulfe?tinent
`
`379
`
`Send TimeStop code
`
`7
`
`Calculate bandwidth
`and store it in a cookie
`
`3 go
`
`
`
`Send cent-side
`medla player
`defection code
`
`F.G. 3C
`
`6
`
`
`
`U.S. Patent
`
`Apr. 8, 2008
`
`Sheet 5 of 17
`
`US 7,356,575 B1
`
`SEND MODIFIED NFORMATION
`HEADER INSTRUCTION
`
`3's 2
`
`V
`
`SEND UNCRUE CENTD
`
`u- 33 3
`
`
`
`
`
`
`
`LIENT ACKNOWLEDGES INSTRUCTION AND
`APPENDS CLIENT D POINTER ADDRESS
`NFORMATION
`
`3 g t
`
`CLENT PREPARES MODIFEED
`HEADER INFORMATION
`
`u-
`
`8 s
`
`CLENT SENDS MODIFIED HEADER
`NFORMATION WITH
`DUPON FURTHER REQUEST
`
`v- 3 s (e
`
`3
`
`return
`
`FIG. 3D
`
`7
`
`
`
`U.S. Patent
`
`Apr. 8, 2008
`
`Sheet 6 of 17
`
`US 7,356,575 B1
`
`325
`
`Try to instantiate
`object for media
`player
`
`Player is present
`
`heck for
`another media
`player?
`
`
`
`
`
`
`
`NETSCAPE
`
`Netscape
`Or E?
`
`String search
`through mimetype
`and plugin arrays
`for media player
`
`
`
`41
`
`Player found?
`
`
`
`
`
`Player is present
`
`
`
`
`
`heck for
`another media
`player?
`
`417
`
`F.G. 4A
`
`8
`
`
`
`U.S. Patent
`
`Apr. 8, 2008
`
`Sheet 7 of 17
`
`US 7,356,575 B1
`
`
`
`
`
`
`
`
`
`
`
`
`
`is WMP
`avai on his
`OS/platform?
`
`ls ActiveX
`avail on this
`browser?
`
`
`
`
`
`
`
`
`
`
`
`
`
`No
`
`
`
`
`
`
`
`
`
`Cen
`Class D for
`WMP7 or WMPB
`be created?
`
`No
`
`Can Class)
`for WMP7
`be created?
`
`Can Class)
`for WMP8.4
`ba created?
`
`
`
`Can WMP object
`be creatad?
`
`WMPversion ano
`
`
`
`
`
`
`
`Client-sid
`Windows Media Player (WMP) detection
`
`
`
`
`
`Yes
`
`Yes
`
`
`
`
`
`Yes
`
`
`
`
`
`
`
`
`
`1
`
`US 2
`
`/
`
`s at N
`
`applicationix-ms-wmd
`registered by
`a plugin?
`
`No
`
`( 5 S
`
`ls ninetype
`applicationix-ins-win or
`applicatonic-ms-wmv.
`registered to
`a plugin?
`
`
`
`
`
`
`
`
`
`No
`
`- N
`
`(4 (
`
`application/x-rysplayev2
`registered to
`a plugin?
`
`
`
`Gold
`RealPlayer
`detection
`
`
`
`F.G. 4B
`
`9
`
`
`
`U.S. Patent
`
`Apr. 8, 2008
`
`Sheet 8 of 17
`
`US 7,356,575 B1
`
`
`
`
`
`Cilent-Side
`RealPlayer (Real) detection
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`is Real
`avail on this
`oSplatform?
`
`1 is Activex
`avail on ps
`browsy
`
`Car
`Raagplayer G2
`object be
`cTeated?
`
`Yas
`
`
`
`
`
`N
`
`Car
`RealPlayer
`object be
`created
`
`
`
`1 Car
`RealVideo
`object be
`creates?
`
`Reaversion no
`
`is mine type
`audiofr pn-faataudio-plugin
`regislared by
`a plugin
`
`qt 5
`
`freaiversion = yes
`
`
`
`
`
`
`
`
`
`WM
`
`ls there a
`plugla ma?te
`containing
`Resone?
`
`No
`
`is there a
`plugin Narva
`containing
`RealPlayer s2
`
`Yes
`
`Reaycrson 2 One
`
`reson-on
`
`Yes
`
`Reaversions G2
`
`
`
`
`
`t{40
`
`ve- rt salversion = 5. -
`L
`(a 2
`
`
`
`
`
`is the?e a
`plugirl name
`containing
`RealPlayer?
`
`No
`
`47
`is there EN
`plugin name
`N containing
`RealVideo?
`
`Yes
`
`10
`
`
`
`U.S. Patent
`
`Apr. 8, 2008
`
`Sheet 9 of 17
`
`US 7,356,575 B1
`
`Cent-side
`QuickTime (QT) detection
`
`
`
`
`
`(11
`
`is G
`ava at this
`OSplatform?
`
`- 13
`
`is ActiveX
`eva on this
`browser?
`
`(
`
`Yes
`
`
`
`-
`Cir
`Quicknechsck
`object the
`creatad?
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Yes
`
`Ces
`QuickTimeCheckObjectVersion.
`hsQuickTimeAvailable()
`
`Y
`
`Twersloh a
`OuickTimeCheckobject ouickTimeVersion
`
`& 7 (2
`
`
`
`No.
`
`u
`
`is there
`plug nome curtaining
`QuickTirna Phug-in"?
`
`
`
`No
`
`yes
`
`LSl
`
`QTversion D duickTime Plug-in version
`
`Nin
`
`
`
`F 16
`
`D
`
`11
`
`
`
`U.S. Patent
`
`Apr. 8, 2008
`
`Sheet 10 of 17
`
`US 7,356,575 B1
`
`Start
`
`05
`
`332
`
`1.
`
`Begin loading preference
`page
`
`50
`
`Mark start time and begin
`loading timing block
`
`515
`
`Finish loading timing
`block and mark end time
`
`Calculate data rate
`
`530
`
`Display possible
`Configurations
`
`Receive user input
`
`Return
`
`545
`
`F.G. 5 A
`
`12
`
`
`
`U.S. Patent
`
`Apr. 8, 2008
`
`Sheet 11 of 17
`
`US 7,356,575 B1
`
`Start
`
`gig O
`
`Fetch estimated bandwidth
`information
`
`determining estimated time to
`retrieve data for determining
`connection speed with
`adequate resolution
`
`Determine chunk-size that will
`take estimated time to retrieve
`
`Retrievelsend determined chunk size
`and measure time to retrievelsend
`
`
`
`Determine bandwidth based on
`chunk size and retrieval time
`
`F.G. 5B
`
`13
`
`
`
`U.S. Patent
`
`Apr. 8, 2008
`
`Sheet 12 of 17
`
`US 7,356,575 B1
`
`Viewer Sends a request to access media content
`
`5O2
`
`Task Manager determines if
`necessary request information is available
`
`504
`
`
`
`Necessary
`request information
`available?
`
`
`
`
`
`Task Manager fetches
`necessary information
`
`NO
`
`508
`
`
`
`
`
`
`
`YES
`
`Task Manager determines what tasks
`need to be executed in order to deliver
`requested media content
`
`510
`
`Resource Manager assigns each task to
`one or more machines within the machine farm
`
`512
`
`Task Manager sends a reply to the viewer client,
`redirecting viewer client to streaming server from
`which requested media content will be received
`
`
`
`514
`
`F.G. 6A
`
`14
`
`
`
`U.S. Patent
`
`Apr. 8, 2008
`
`Sheet 13 of 17
`
`US 7,356,575 B1
`
`23 2
`
`YES
`
`AUTOSOURCETYPE
`
`EECTION ON? -
`- - Y - - - -, 16
`REQUEST INPUT THROUGH
`SOURC FNTERFAC Er
`user
`
`
`
`
`
`
`
`FC SORCE (YPE
`NFORMATON FROM
`SOURCE SERVERJCLENT
`
`
`
`YES
`
`AUTO DESTINATION
`TYPE DEEECTION ON
`
`NO
`
`FETC OESTNATION TYPE
`NFORMATION FROM
`DESTINATION SERVER/CLENT
`
`
`
`
`
`A57 2 -
`
`
`
`REQUEST (NPUT THROUGH
`DESTINATIONNTERFAC E.
`e
`
`
`
`
`
`15
`
`
`
`U.S. Patent
`
`Apr. 8, 2008
`
`Sheet 14 of 17
`
`US 7,356,575 B1
`
`
`
`
`
`
`
`Requested media
`content in transcoded
`cache in appropriate
`destination type?
`
`YES
`
`Transmitter server begins fetching
`the requested media content from the source location
`
`
`
`
`
`Source type
`the Safe as
`destination type?
`
`Transcoding server transcodes the
`media content from source type
`to destination type as it is fetched
`
`Streaming servers stream media content to the
`viewer client in appropriate destination type
`
`Viewer client receives and plays streaming media content
`
`526
`
`F.G. 6C
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`16
`
`
`
`U.S. Patent
`
`Apr. 8
`
`, 2008
`
`Sheet 15 of 17
`
`US 7,356,575 B1
`
`059
`
`HAQOOSNVYEL
`
`L£°9ld
`
`
`
`QNIGOON]SORNOS
`
`PCILIC
`IODOLOYdNOLLVOINNANODNOILYNILSAQ@
`
`
`OO
`LN3LNODVIQAWSdALNOIWVNILSAO
`
`
`WNIGAWTWOISAHdNOLLYNILSS0@
`
`
`LVWHOSSidNOLLVNILSSO@
`
`DNIQOONSNOILYNILSSC@
`
`01gAPICIE
`
`
`1OD0LO8dNOILVYOINNWNOD398NOS
`
`
`LNSLNOODVIASWSdAL30kdNOS
`
`
`WIGSWWOISAHd308NOS
`
`3LVeLISNOILYNILS30@
`
`LYW8OsSd3DHNOS
`
`3LV¥LidSOUNOS
`
`17
`
`17
`
`
`
`U.S. Patent
`
`
`
`
`
`SdAlNOILVNILSSC3dALNOILVNILSSOSdAL3DuNOS
`
`
`
`
`
`
`
`
`
`SIIVIEVAONIKSNBNd
`
`Apr. 8
`
`
`
`
`
`
`
`ASOMLANSSSISEIMWNICSAWTWOISAHd
`
`2
`
`356,575 B1
`
`US 7
`
`
`
`aLVeLIGDNIQOONS
`
`, 2008
`
`Sheet 16 of 17
`
`
`
`VIQSWSMOGNIMLVWHOsYSNIVLNOOD
`
`
`
`
`
`
`
`
`
`ViGSWSMOQNIMNOILVOINAWNOD
`
`SAWSNINVSELS
`
`18
`
`18
`
`
`
`
`
`
`
`
`U.S. Patent
`
`Apr. 8
`
`, 2008
`
`Sheet 17 of 17
`
`US 7,356,575 B1
`
`
`
`L’yGSMINWOYOdLISX|O'€HOLVOIAVNYOdLdIYOSVAYS
`
`6‘Sis
`
`
`
`
`
`
`adALNOLVNILSAGddALSDNNOSANAND
`XSOOVIdXSMOQNIM
`
`0S8O18LNAWNOUIAN]
`
`
`
`YSSMOUNS883M
`
`NOISUAA
`
`JYVMOYVH
`
`WdO4LV1d
`
`SA1aVINvA
`
`NOISH3ASO
`
`JOVAYNALNIwasn
`
`SASVNONVI
`
`19
`
`19
`
`
`
`
`
`
`
`
`US 7,356,575 B1
`
`1.
`SYSTEM, METHOD, AND COMPUTER
`PROGRAMI PRODUCT FOR REMOTELY
`DETERMINING THE CONFIGURATION OF
`A MULT-MEDIA CONTENT USER
`
`PRIORITY
`
`This application is a continuation-in-part of U.S. patent
`application Ser. No. 09/986,683, filed Nov. 9, 2001, pub
`lished May 15, 2003 as U.S. published application No.
`2003/0093507, which is hereby incorporated by reference:
`and this application claims priority to U.S. provisional
`application Ser. No. 60/516,017, filed Oct. 31, 2003, by
`inventor Jody Shapiro, entitled “System, Method, and Com
`puter Program Product for Remotely Determining the Con
`15
`figuration of a Multi-Media Content User’.
`
`10
`
`BACKGROUND OF THE INVENTION
`
`25
`
`30
`
`45
`
`1. Field of the Invention
`The invention described herein relates to information
`systems, and more particularly to detection of multimedia
`content client configuration information.
`2. Related Art
`Given the availability of data networks and the availabil
`ity of high-speed data connections, it is now commonplace
`for end users to access multi-media content. A number of
`web sites now offer audio and video to users. Ideally, the
`user simply clicks on a link or control presented in a web
`page, and one or more multi-media files are delivered. If the
`user has the appropriate hardware and Software configura
`tion, the file can then be played.
`There are currently a significant variety of user configu
`rations, however. Some users have INTEL based personal
`computers (PCs), while others may have APPLE MACIN
`35
`TOSH computers. Different operating systems are also
`present. Some users will have a version MICROSOFT
`WINDOWS, from MICROSOFT, Inc., while others have a
`version of MAC OS, from APPLE, Inc. Moreover, each of
`these operating systems now has several versions in the user
`40
`community. In addition, a number of Software programs are
`now available to play multimedia on the computers of users.
`These players include QUICKTIMETM (from APPLE, Inc.),
`REALPLAYERTM (from REALNETWORKS, Inc.), and
`WINDOWS MEDIAPLAYERTM (from MICROSOFT,
`Inc.). Moreover, each of these players has several versions
`that are currently available in the user community. Finally,
`different users may be operating at different data rates. Some
`users may have a high speed broadband connection, while
`others may have a 56K modem connection.
`Given this variety of platforms, operating systems, play
`ers, and data rates, a content provider is faced with the
`problem of how to format the content to be delivered.
`Incorrect formatting would result in the delivery of content
`that was incompatible with a users configuration. This
`could result in content that is unusable. If the content is
`usable, the content may be in a format that fails to take
`advantage of all the features available in the user's configu
`ration, Such that the content, as experienced by the user, is
`not as rich as it could be.
`In the past, content providers have addressed this problem
`by choosing some set of common user configurations. The
`provider, for example, might identify the most common
`media players and versions thereof. The provider formats the
`content for each of these players and stores these assorted
`versions of the content. The provider would then develop a
`menu to be provided to the user, in effect asking which
`
`50
`
`55
`
`60
`
`65
`
`2
`media player the user has, or, if the user has more than one,
`which player is preferred by the user. The user then makes
`a selection, and the content that has been pre-encoded in the
`selected format is delivered to the user.
`This solution has limitations. First, it is relatively inflex
`ible. The number of options is limited. A user's specific
`configuration may not have been presented as an option in
`the menu. And if an end user has more than one media player
`available to him, the user's preferred choice may not have
`been listed as an option. Also, the Solution above requires
`user input each time. The user might not want to be queried.
`The user may instead prefer that formatting be resolved for
`him. In other situations, the user might not know the
`information requested by the menu. The user may not know
`what version of a media player he has. This solution also
`requires that a content provider change their menus and
`re-encode content whenever new players (or new versions of
`existing players) become prevalent. The above solution,
`therefore, is inflexible and burdensome to both the user and
`the provider.
`What is needed, therefore, is a way to determine a user's
`configuration so as to provide the user with content in a
`compatible format that leads to the optimal viewing expe
`rience. In addition, determination of the configuration
`should be made in a manner that minimizes the need for user
`input and is otherwise user-friendly. Moreover, an efficient
`way to determine the connection speed of a user is desired.
`
`SUMMARY OF THE INVENTION
`
`A method is provided for remotely determining the con
`figuration of a computer of a multimedia content user. The
`method includes sending player detection code to the user's
`computer. Configuration information is received regarding
`the user's computer including information regarding OS
`version, web browser version, hardware platform, user inter
`face language type, encoding format, or compression algo
`rithm, or combinations thereof. The method may include
`setting a cookie at the user's computer to a domain of a
`delivery management server, performed before the receiv
`ing, and wherein the configuration information is received in
`the cookie.
`A method for remotely determining the configuration of a
`computer of a multimedia content user is further provided
`including sending player detection code to the user's com
`puter, receiving configuration information regarding the
`user's computer, and sending a modified information header
`instruction.
`The method may also include sending unique client ID.
`The instructions may be received after the information is
`sent, and the modified information may include Some infor
`mation that was not included in the sent information and/or
`the modified information may exclude Some information
`that was included in the sent information. The modified
`information header instruction may also be sent prior to the
`receiving, and the configuration information received may
`be prepared according to the modified information header
`instruction.
`The received configuration information may include one
`or more adaptations such as a hardware adaptation and/or a
`user interface version adaptation. The modified header infor
`mation instruction may be prepared according to the adap
`tation information.
`A method is further provided for remotely determining the
`configuration of a computer of a multimedia content user
`including receiving at a user's computer player detection
`code from a second computer, sending to the second com
`
`20
`
`
`
`3
`puter configuration information regarding the user's com
`puter, and receiving a modified information header instruc
`tion.
`An unique client ID may be received. A client ID pointer
`address may be appended with configuration information for
`sending to the second computer. Modified header informa
`tion may be prepared based on the received header instruc
`tion. The modified header information with appended client
`ID may be sent to the second computer. A further configu
`ration information request may be received prior to the
`sending of the modified header information. The instruction
`may be received after the configuration information is sent.
`The modified information may include some information
`that was not included in the sent information and/or may
`exclude some information that was included in the sent
`information. The instruction may also be received before the
`configuration information is sent. The configuration infor
`mation sent may be prepared according to the modified
`information header instruction. The configuration informa
`tion may include one or more adaptations such as a hardware
`adaptation and/or a user interface version adaptation, and the
`modified header information instruction may be prepared
`according to the adaptation information.
`A method is also provided for determining a connection
`speed of a computer including determining a size of a timing
`block based on an estimated bandwidth, marking the time at
`which transfer of the timing block begins, marking the time
`at which transfer of the timing block ends, and determining
`the connection speed based on the determined timing block
`size and the times at which transfer begins and ends.
`A further method that is provided for determining a
`connection speed of a computer includes receiving a timing
`block of data having a known size, receiving a start time at
`which transfer of the timing block is to begin, beginning the
`timing block transfer at the start time, marking the time at
`which transfer of the timing block ends, and determining the
`connection speed based on the timing block size and the
`times at which transfer begins and ends.
`In each case, the timing block size may be determined by
`fetching estimated bandwidth information, determining an
`estimated time to retrieve data for determining connection
`speed with adequate resolution, and determining the timing
`block size that will take the determined estimated time to
`retrieve. The timing block may be received in a markup
`language comment as part of a preferences page. The
`method may also include storing the connection speed in a
`cookie. The method may include sending the cookie to a
`50
`delivery management server. The timing block may com
`prise random data.
`According to a further aspect of the invention, a method
`for remotely determining the configuration of a computer of
`a multimedia content user is provided. This method includes
`sending player detection code to the user's computer, receiv
`ing configuration information regarding the user's computer,
`and determining a type of digital rights management infor
`mation on the user's computer based on the received con
`figuration information.
`One or more processor readable storage devices are also
`provided having processor readable code embodied thereon.
`The processor readable code is for programming one or
`more processors to perform a method for remotely deter
`mining the configuration of a computer of a multimedia
`content user and/or for determining a connection speed of a
`computer, in accordance with any of the above.
`
`4
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`The accompanying drawings, which are incorporated
`herein and form a part of the specification, illustrate the
`present invention and, together with the description, further
`serve to explain the principles of the invention and to enable
`a person skilled in the pertinent art to make and use the
`invention.
`In the drawings:
`FIG. 1 illustrates the general architecture of an embodi
`ment of the invention.
`FIG. 2 is a block diagram illustrating the computing
`environment of an embodiment of the invention.
`FIG. 3A is a flow chart illustrating the overall process of
`an embodiment of the invention.
`FIG. 3B is a flow chart illustrating server-side request
`processing in accordance with an embodiment including
`receiving a delivery manager HTTP request.
`FIG. 3C is a flow chart illustrating server-side request
`processing in accordance with an embodiment including
`receiving a detection URL HTTP request.
`FIG. 3D is a flow chart illustrating further request pro
`cessing according to an embodiment of the invention.
`FIG. 4A is a flow chart illustrating the process of media
`player detection, according to an embodiment of the inven
`tion.
`FIG. 4B is a flow chart illustrating client-side windows
`media player (WMP) detection in accordance with an exem
`plary embodiment of the invention.
`FIG. 4C is a flow chart illustrating client-side RealPlayer
`(Real) detection in accordance with another exemplary
`embodiment of the invention.
`FIG. 4D is a flow chart illustrating client-side QuickTime
`(QT) detection in accordance with an exemplary embodi
`ment of the invention.
`FIG. 5A is a flow chart illustrating the process of pre
`senting a preferences page to the user, according to an
`embodiment of the invention.
`FIG. 5B is a flow chart generally illustrating a bandwidth
`detection method according to an embodiment of the inven
`tion.
`FIGS. 6A-6C are a flowchart that describes a routine for
`accessing media content according to an embodiment of the
`present invention.
`FIG. 7 depicts an exemplary transcoder that may be used
`in accordance with embodiments of the present invention.
`FIG. 8 is a table showing exemplary transcoding source
`types and destination types for various publishing variables
`according to an embodiment of the present invention.
`FIG. 9 is a table showing exemplary client environment
`variable types according to an embodiment of the invention.
`Preferred embodiments of the present invention will now
`be described with reference to the accompanying drawings.
`In the drawings, like reference numbers indicate identical or
`functionally similar elements.
`
`INCORPORATION BY REFERENCE
`
`What follows is a cite list of references each of which is,
`in addition to that which is described as background of the
`invention, the abstract and the invention Summary, hereby
`incorporated by reference into the detailed description of the
`preferred embodiments below, as disclosing alternative
`embodiments of elements or features of the preferred
`embodiments not otherwise set forth in detail below. A
`single one or a combination of two or more of these
`
`US 7,356,575 B1
`
`10
`
`15
`
`25
`
`30
`
`35
`
`40
`
`45
`
`55
`
`60
`
`65
`
`21
`
`
`
`5
`references may be consulted to obtain a variation of the
`preferred embodiments described in the detailed description
`herein:
`U.S. Pat. No. 3,394,352, issued July, 1968; 3,937,881,
`issued February, 1976; 5,657,015, issued August, 1997: 5
`6,593,860, issued Jul. 15, 2003; 6.407,680, issued June,
`2002; 6,466,939, issued Oct. 15, 2002; 5,928.330, issued
`Jul. 27, 1999; 6,317,134, issued Nov. 13, 2001; and 6,070,
`002, issued May 30, 2000; and
`U.S. published applications No. 2003/0158913, published 10
`Aug. 21, 2003, 2003/0093507, published May 15, 2003,
`2002/0099858, published Jul. 25, 2002, 2002/0099770, pub
`lished Jul. 25, 2002, and 2002/0091800, published Jul. 11,
`2002; and
`U.S. patent application Ser. No. 10/644,602, filed Aug. 20,
`2003; and
`Chapman, Nigel et al., “Digital Multimedia.” John Wiley
`& Sons, Ltd., Copyright 2000; and
`Murray, James D. et al., “Encyclopedia of Graphics File 2O
`Formats: Second Edition.” O’Reilly & Associates, Inc.,
`Copyright 1994, 1996.
`
`DETAILED DESCRIPTION OF THE
`PREFERRED EMBODIMENTS
`
`25
`
`Overview of Preferred Embodiments
`
`A system, method, and computer program product for
`determining the configuration of an end user's computer 30
`system. In particular, the media players and network con
`nection speed of the user are determined. This configuration
`information is then received by a second computer, prefer
`ably a delivery management server. The configuration infor
`mation is used to format multi-media content for delivery to 35
`the user. Because the content is formatted according to the
`configuration information, the content is compatible with the
`user's configuration. The configuration determination pro
`cess involves server contact code placed in the web page of
`the content provider. When the web page is loaded by the 40
`user, the server contact code directs the browser to retrieve
`code from the delivery management server. When the code
`is executed by the user, the media player of the user is
`determined. This information is saved in cookies at the user
`and is sent to the delivery management server. If the 45
`configuration information is indeterminate or incomplete,
`the user is presented with a preferences page in which the
`user can indicate the configuration. The preferences page
`also contains a mechanism for determining the connection
`speed of the user. The preferences page can also make so
`specific recommendations to the user, e.g., recommend that
`the user choose a specific media player. The preferences
`page contains a block of data having a known size. The time
`required to transfer the block is measured, and the connec
`tion speed is then calculated and provided to the delivery 55
`management server.
`In accordance with a preferred embodiment, the configu
`ration determination process involves server contact code
`that is placed in the web page of the content provider. When
`the web page is loaded by the user, the server contact code 60
`directs the browser to retrieve scripts from the delivery
`management server. When the scripts are executed by the
`user, the media player of the user is determined. This
`information is saved in cookies at the user and is sent to the
`delivery management server. The configuration information 65
`can then be used by a transcoder that formats the media
`content according to the configuration information.
`
`US 7,356,575 B1
`
`6
`If the configuration information is indeterminate or
`incomplete, the user is presented with a preferences page in
`which the user can indicate the configuration. This configu
`ration, as determined through the preferences page, is also
`stored in cookies and sent to the delivery management server
`to allow formatting of content. The preferences page can
`also make specific recommendations to the user, e.g., rec
`ommend that the user choose a specific media player.
`
`DESCRIPTION OF THE PREFERRED
`EMBODIMENTS
`
`The preferred embodiments described herein relate to a
`system, method, and computer program product that allows
`the remote determination of a user's computer system con
`figuration. This allows multimedia content destined for that
`computer to be formatted in a manner compatible with the
`user's configuration. If sufficient configuration information
`is obtained, the content can be formatted so as to provide the
`best possible media experience for the user.
`Note that in the description that follows, the concept of a
`user's computer is defined broadly to include the full range
`of programmable or programmed-devices. A user's com
`puter can be, but is not limited to, a personal computer or
`other workstation, a laptop, a palmtop, a personal data
`assistant, or a cell phone.
`In accordance with a preferred embodiment, server con
`tact code is contained in a web page sent by a content
`provider to the user. The server contact code retrieves one or
`more scripts from a delivery management server. The Scripts
`enable the determination of configuration information of the
`user's computer system. In an embodiment of the invention,
`the configuration information comprises the identity and
`version of the user's media player(s). The configuration
`information is then returned to the delivery management
`server. The configuration information can then be used to
`format the multi-media content appropriately. In an embodi
`ment of the invention, configuration information is also
`stored locally at the user's computer in the form of cookies.
`In subsequent hypertext transfer protocol (HTTP) requests,
`the cookies can be sent to the delivery management server
`as a way of conveying the configuration information.
`If the configuration information is determined to be
`incomplete or potentially outdated, an additional web p