WO2006079102A2 - Network broadcast system and method - Google Patents

Network broadcast system and method Download PDF

Info

Publication number
WO2006079102A2
WO2006079102A2 PCT/US2006/002620 US2006002620W WO2006079102A2 WO 2006079102 A2 WO2006079102 A2 WO 2006079102A2 US 2006002620 W US2006002620 W US 2006002620W WO 2006079102 A2 WO2006079102 A2 WO 2006079102A2
Authority
WO
WIPO (PCT)
Prior art keywords
component
player
componentized
content
user
Prior art date
Application number
PCT/US2006/002620
Other languages
French (fr)
Other versions
WO2006079102A3 (en
Inventor
Gregory C. Demetriades
Serge H. Stein
Original Assignee
Whiteblox, Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Whiteblox, Inc. filed Critical Whiteblox, Inc.
Publication of WO2006079102A2 publication Critical patent/WO2006079102A2/en
Publication of WO2006079102A3 publication Critical patent/WO2006079102A3/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1813Arrangements for providing special services to substations for broadcast or conference, e.g. multicast for computer conferences, e.g. chat rooms
    • H04L12/1827Network arrangements for conference optimisation or adaptation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • H04L67/306User profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/535Tracking the activity of the user
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/258Client or end-user data management, e.g. managing client capabilities, user preferences or demographics, processing of multiple end-users preferences to derive collaborative data
    • H04N21/25808Management of client data
    • H04N21/25841Management of client data involving the geographical location of the client
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/258Client or end-user data management, e.g. managing client capabilities, user preferences or demographics, processing of multiple end-users preferences to derive collaborative data
    • H04N21/25866Management of end-user data
    • H04N21/25891Management of end-user data being end-user preferences
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/65Transmission of management data between client and server
    • H04N21/658Transmission by the client directed to the server
    • H04N21/6581Reference data, e.g. a movie identifier for ordering a movie or a product identifier in a home shopping application
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/812Monomedia components thereof involving advertisement data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/16Analogue secrecy systems; Analogue subscription systems
    • H04N7/173Analogue secrecy systems; Analogue subscription systems with two-way working, e.g. subscriber sending a programme selection signal
    • H04N7/17309Transmission or handling of upstream communications
    • H04N7/17318Direct or substantially direct transmission and handling of requests

Definitions

  • Such players include, for example, Microsoft's Windows Media® player, Apple's QuickTime® player, RealNetwork's RealPlayer®, and Nullsoft's Winamp® player just to name a few.
  • advertisers working with content providers and targeting users of such "stock” players simply insert advertisements within the video and/or audio stream in the same manner as is commonly done in radio and television.
  • the Internet as a digital data transmission network, provides the capability for broadcasting far more than just audio or video, provided the player used by the consumer is designed to take advantage of such capability.
  • Advertisers and content providers have recognized the advantages of such data transmission capabilities and have worked with several of the manufacturers of media players to provide customized players that allow advertisements to be sent as digital data, in addition to the digitally encoded audio and/or video, which can then be displayed in conjunction with the streamed audio and/or video.
  • Figure IA shows an overview of a network broadcast system, in accordance with at least some illustrative embodiments
  • Figure IB shows an example of a personal computer (PC), usable to execute and operate a componentized player constructed in accordance with at least some illustrative embodiments;
  • PC personal computer
  • Figure 1C shows a block diagram of a PC, usable to execute and operate a componentized player constructed in accordance with at least some illustrative embodiments
  • Figure 2 shows a block diagram of a componentized player, in accordance with at least some illustrative embodiments
  • Figure 3 shows the layering of the componentized player relative to other software programs, in accordance with at least some illustrative embodiments
  • Figure 4 shows an example of a displayed componentized player, in accordance with at least some illustrative embodiments
  • Figure 5A shows a method for initializing a componentized player, in accordance with at least some illustrative embodiments
  • Figure 5B shows a method for downloading and executing an advertisement component and a display schedule, in accordance with at least some illustrative embodiments
  • Figure 5C shows a method for downloading and executing a set of interactive advertisement components, in accordance with at least some illustrative embodiments
  • Figure 5D shows a componentized player displaying a teaser advertisement, in accordance with at least some illustrative embodiments
  • Figure 5E shows a componentized player displaying an interactive order form linked to the teaser advertisement, in accordance with at least some illustrative embodiments
  • Figure 6A shows a block diagram of a broadcast server, in accordance with at least some illustrative embodiments
  • Figure 6B shows a method for downloading and automatically inserting substitute content into a broadcast, in accordance with at least some illustrative embodiments
  • Figure 7 shows a block diagram of an encoder used in a broadcast server, in accordance with at least some illustrative embodiments
  • Figure 8 shows a block diagram of a backend datacenter, in accordance with at least some illustrative embodiments
  • Figure 9 shows an example of a broadcast control center software menu, in accordance with at least some illustrative embodiments.
  • Figure 10 shows a method for controlling access to a broadcast based upon geo-positional constraints, in accordance with at least some illustrative embodiments;
  • Figure 11 shows a method for selecting an advertisement component based upon geo- positional constraints, in accordance with at least some illustrative embodiments
  • Figure 12 shows a method for providing multi-tiered moderation of a chat room, in accordance with at least some illustrative embodiments.
  • Figure 13 shows a method for providing additional content insertion during a broadcast, in accordance with at least some illustrative embodiments.
  • the terms “including” and “comprising” are used in an open-ended fashion, and thus should be interpreted to mean “including but not limited to."
  • the term “couple” or “couples” is intended to mean either an indirect or direct electrical connection. Thus, if a first device couples to a second device, that connection may be through a direct electrical connection, or through an indirect electrical connection via other devices and connections.
  • the term “system” refers to a collection of two or more parts and may be used to refer to a computer system or a portion of a computer system.
  • the term “software” includes any object image or executable image capable of causing a task to be performed by a processor, regardless of the media used to store the software. Thus, an image stored in non-volatile memory, and sometimes referred to as "embedded firmware,” is included within the definition of software.
  • Figure IA shows a network broadcasting system constructed in accordance with at least some illustrative embodiments.
  • the system 100 comprises broadcast servers at one or more sites
  • Broadcast Servers 400 and 600 each of which couples to a backend datacenter 800.
  • Content from a broadcast source such as, for example, video from camera 602 is digitally encoded by broadcast server 600 and transmitted to backend datacenter 800 via the Internet 110.
  • the broadcast may comprise digitally encoded content in the form of audio or video, or both, as well as other digital data.
  • Digital data may also be sent from the backend datacenter 800 to the broadcast server 600, and may include configuration and control messages used to remotely operate the broadcast server 600.
  • Componentized player 200 is a software implemented content player, constructed in accordance with at least some embodiments as described below, and executed on a computer system such as, for example, personal computer (PC) 170.
  • Figures IB and 1C show an illustrative system configuration 400 suitable for implementing PC 170.
  • the illustrative system configuration 400 includes a chassis 402, a display 404, and an input device 406.
  • the chassis 402 includes a processor 426, memory 430, and information storage devices 432.
  • the chassis 402 also includes a network interface 428 that allows the system 400 to receive information via a local area network (e.g., Internet 110 of Figure 1) and/or a wired or wireless wide area network, represented in Figure IB by a phone jack 412.
  • the information storage media and information transport media are collectively called "information carrier media.”
  • the chassis 402 is coupled to the display 404 and the input device 406 to interact with a player user.
  • the display 404 and the input device 406 may together operate as a user interface.
  • the input device 406 is shown as a keyboard, but other input devices such as a mouse or a keypad may also be included.
  • FIG. 1C shows a simplified functional block diagram of system 400.
  • the chassis 402 may include a display interface 422, a peripheral interface 424, a processor 426, a modem or other suitable network interface 428, a memory 430, an information storage device 432, and a bus 434.
  • System 400 may be a bus-based computer, with the bus 434 interconnecting the other elements and carrying communications between them.
  • the display interface 422 may take the form of a video card or other suitable display interface that accepts information from the bus 434 and transforms it into a form suitable for the display 404.
  • the peripheral interface 424 may accept signals from the keyboard 406 and other input devices such as a pointing device 436, and transform them into a form suitable for communication on the bus 434.
  • the processor 426 gathers information from other system elements, including input data from the peripheral interface 424, and program instructions and other data from the memory 430, the information storage device 432, or from other systems coupled to a local area network or a wide area network via the network interface 428.
  • the processor 426 carries out the program instructions and processes the data accordingly.
  • the program instructions may further configure the processor 426 to send data to other system elements, comprising information for the player user which may be communicated via the display interface 422 and the display 404.
  • the network interface 428 enables the processor 426 to communicate with other systems via a local area network or via a wide area network.
  • the memory 430 may serve as a low-latency temporary store of information for the processor 426, and the information storage device 432 may serve as a long term (but higher latency) store of information.
  • the processor 426 operates in accordance with one or more programs stored on the information storage device 432 or received via the network interface 428.
  • the processor 426 may copy portions of the programs into the memory 430 for faster access, and may switch between programs or carry out additional programs in response to player user actuation of the input device.
  • the additional programs may be retrieved from the storage device 432 or may be retrieved or received from other locations via the network interface
  • One or more of these programs executes on system 400 causing it to perform at least some of the network broadcasting methods disclosed herein.
  • Other embodiments of the componentized player 200 may execute on other types of systems configured to communicate with a network and to provide audio and/or video content, such as mobile devices (e.g., cellular telephones) and set top boxes, and all such embodiments are intended to be within the scope of this disclosure.'
  • componentized player 200 may also send information to backend datacenter 800, such as player user identification information, usage statistics, responses to queries made to the player user, as well as player user- initiated queries, messages and transactions. Also, data may be sent from backend datacenter 800 to initially configure componentized player 200 when first executed, and to reconfigure the componentized player 200, if desired by the content provider, during the course of a broadcast.
  • componentized player 200 may receive broadcast data from a content distribution network (CDN) server 130.
  • CDN server 130 operates as a localized provider of broadcast data and is configured to service a large number of componentized players 200 that are geographically proximate to the CDN server 130. This may be done by relaying or buffering the broadcast data in its entirety from the backend datacenter 800, or by receiving the digitally encoded content directly from the broadcast server 600, and additional broadcast-related data from the backend datacenter 800.
  • the CDN server 130 then retransmits the consolidated broadcast data to one or more componentized players 200. Data from individual player users likewise can either be sent directly over the Internet 110 to the backend datacenter 800, or alternatively to the CDN server 130, which then relays the data to the backend datacenter 800.
  • CDN server 130 may be one of a plurality of content servers that are part of a content distribution network, located over a large, geographically disperse area. Servers may be individually located to provide service to an area, or co-located in groups, depending on the number of player users within an area that wish to receive a broadcast. By distributing high-capacity servers over a large, geographically disperse area, broadcast traffic with individual player users is accomplished over shorter distances on the Internet with better performance results than might be possible with a geographically distant player user, and the amount of data being transmitted and received by any given server is reduced, thus distributing the overall communications and processing load of the broadcast over a plurality of CDN servers.
  • the illustrative embodiment of Figure IA also shows broadcast server 400, which encodes video from camera 402, and which couples to backend datacenter 800 through a satellite communications network 160.
  • This network comprises ground station 162, which couples to backend datacenter 800, and ground station 166, which couples to broadcast server 400.
  • the two ground stations communicate with each other yia orbiting satellite 164, which is also part of the satellite communications network 160.
  • satellite communications network 160 When using satellite communications network 160 in this manner, all communications with broadcast server 400 is routed through backend datacenter 800, including content provided to CDN server 130.
  • broadcast server 400 operates in the same manner as broadcast server 600.
  • componentized player 200 in accordance with at least some illustrative embodiments, is implemented as a software image executed on a computer system, which is shown in detail in Figure 2.
  • componentized player 200 is a web- based player, designed to operate within a web browser as part of a web page using a combination of a media player, such as Windows Media® Player, and a Shockwave® Flash® (SWF) program, written using Macromedia's ActionScript, that interacts with a Flash® plug-in installed within the web browser.
  • a media player such as Windows Media® Player
  • SWF Shockwave® Flash®
  • Other alternative media players, plug-ins, and programming languages may also be used, and all such alternatives are intended to be within the scope of this disclosure.
  • Componentized player 200 of the illustrative embodiment shown is downloaded and executed by the Flash® plug-in when a player user on a PC visits a content provider's web site and selects an event being broadcast or provided on an "on-demand" basis.
  • a player shell 210 is initially loaded that does not operate as a fully functional componentized player.
  • This player shell then loads individual components (e.g., components 221-225) that, once loaded, operate together to provide a fully functional componentized player with the capabilities and the look and feel desired by the content provider. Selection of these components can be preprogrammed and fixed in advance of an event, or can be reconfigured, both with regard to functionality and appearance, during the course of a broadcast. Changes may be made automatically according to a pre-programmed scheduled, or initiated in real-time by the content provider.
  • the player shell 210 that is downloaded comprises at least three tightly coupled core components: framework 210, event handler 216, and data engine 214.
  • the player shell 210 may also comprise libraries 218 that can include other components needed to operate the componentized player 200.
  • Framework 210 provides the functional logic of componentized player 200, performing the basic tasks necessary to initialize, configure and operate the full componentized player.
  • Event handler 216 provides the central coordinating point for requests and responses between all other
  • Data engine 214 responds to all requests to provide or retrieve information, regardless of whether the source or destination of the information is local to the PC executing componentized player 200 or at a remote location other than the PC.
  • componentized player 200 relies on existing event-driven '. ' mechanisms within the operating system (Windows O/S 310), the browser (Internet Explorer 312), : Flash® Macromedia (Flash® Plug-in 314), and the underlying media player (media player plug-in 316), but these mechanisms are not used to service events associated with configuring and reconfiguring componentized player 200.
  • componentized player 200 relies on event handler 216 within the downloaded player shell 210 to service events that are specific to the capabilities of componentized player 200.
  • Event handler 216 within componentized player 200 is layered on top of and/or alongside the other event-driven mechanisms of Figure 3, and acts in concert with these mechanisms. This allows multiple, independent transactions to be in progress contemporaneously.
  • event handler 216 of an operational componentized player 200 may receive updated information for a running ticker component, while a request for information from the player user is still outstanding and video continues to be provided and updated to the media player component.
  • the event handler services events related to each of these outstanding tasks as required, without one task necessarily precluding the event handler from servicing another.
  • the event handler thus permits componentized player 200 to maintain multiple active player components without the activity of one component adversely affecting another component.
  • the content presented by the media player component is not unintentionally disrupted or interrupted by activity involving other components.
  • framework 212 When player shell 210 is initially downloaded and activated, framework 212 sends a configuration request to event handler 216, which responds by directing framework 212 to data engine 214. Framework 212 then requests the location of the configuration information from data engine 214, and after data engine 214 responds with the location information, framework 212 retrieves the initial componentized player configuration.
  • the initial configuration may be available locally as part of the initial download of player shell 210, or it may be retrieved as one or more files transferred from one or more remote servers coupled to the Internet. These servers may be part of the backend datacenter 800 ( Figure 1), part of the content distribution network, or simply a single server coupled to the Internet 110.
  • the initial configuration of the componentized player 200 is provided by five configuration files: a structure file, a language file, a style file, an image file, and an activity file. Some embodiments may use more configuration files, while still other embodiments may use less files, and the present disclosure is intended to encompass all such embodiments.
  • Each of these files describes a number of characteristics of the componentized player, and may use a variety of description languages and formats, such as the extended markup language (XML) and the hypertext markup language (HTML), just to name a few examples.
  • the structure file provides a list of additional components needed by the componentized player 200 that are retrieved, incorporated into the componentized player, and activated.
  • the additional components may be available locally as part of the initial download of player shell 210 or. available remotely on a server coupled to the Internet.
  • the language file provides information as to the language and character sets used to display information.
  • the style file provides information related to the positioning on the screen of the various displayed components.
  • the image file provides information as to the overall look and feel of each displayed component (sometimes referred to as "skins").
  • the activity file if used, provides information related to the timing of changes to the appearance, functionality and overall configuration of the componentized player 200 and its components over the course of an event or broadcast. Once the configuration has been received, the componentized player 200 may then determine from the structure file which additional components need to be retrieved, configured, and activated in order to operate the componentized player as programmed by the content provider.
  • Each of the components needed are retrieved in a manner similar to the configuration files, either locally or remotely, then individually configured, activated and displayed.
  • the components when the components are displayed they are located on the screen in one or more areas reserved for player components. These areas (referred to as the "stage" in Flash® Macromedia) define the componentized player as displayed on the screen of the PC on which the componentized player executes (e.g., PC 170 of Figure 1). Components other than the media player component are placed so as to not overlap and obstruct any visual content displayed by the media player component.
  • the end result of the configuration process described is a displayed and active "componentized" player 200, an example of which is shown in Figure 4.
  • componentized player 200 may include a large variety of components, each providing different capabilities. These components, in addition to basic audio and/or video, may provide, for example, advertisements, information tickers, subtitles, statistics and general information gathering, polls, forums, moderated and unmoderated chat rooms, interactive crowd response simulators (where uses each enter a cheer or boo and the results are averaged and fed back to all player users as a simulated proportioned cheer or boo), on-line shopping (e-commerce), charitable donations, and video games.
  • Other components with additional capabilities may become apparent to those of ordinary skill in the art, and all such components are intended to be within the scope of the present disclosure.
  • Figure 5 A illustrates a method 500 for initializing a componentized player constructed in accordance with at least some embodiments.
  • a player user selects an event on the content provider's website (block 502) and the content provider authorizes access by the player user (e.g., by completing a credit card transaction by which the player user pays to access the broadcast)
  • the player shell is downloaded to the player user's PC from a server coupled to the Internet and activated (block 504).
  • the player shell retrieves information needed to configure itself for operation (block 506). In at least some embodiments this information may be retrieved from an extended markup language (XML) enabled system query language (SQL) database server located within a backend datacenter 800 ( Figure 1).
  • XML extended markup language
  • SQL system query language
  • the XML data returned describes what components the player shell initially needs to retrieve in order to operate and appear as desired by the content provider.
  • the information is downloaded as part of the player shell.
  • the information may be downloaded as a text file containing XML structures describing the configuration of the componentized player.
  • some of the information may be downloaded with the player shell, while the rest of the information is downloaded after the shell has already been downloaded.
  • the components are retrieved by the player shell (block 508).
  • the components may have already been downloaded together with the player shell, or they may have to be downloaded from a server coupled to the Internet.
  • the components are each configured, activated and displayed to the player user as a componentized player (block 510), similar to the componentized player of Figure 4.
  • the componentized player continues to process events (block 512), providing audio, video, and data to the player user as specified by the content provider, processing data from the player user when so configured, and updating the configuration of the componentized player as desired by the content provider.
  • the componentized player continues to process events in this manner until the componentized player is shutdown by either the player user or the content provider (block 514). Because individual components of the componentized player can operate independently of each other and can thus be added, altered or removed real-time "on-the-fly," the operation and appearance of the componentized player can be made to change significantly over the course of a broadcast.
  • the ability to alter components on-the-fly allows advertisement space to be shared between multiple advertisements and advertisers by periodically rotating ads. Display time is allocated, according to a downloaded schedule, to each advertiser based on the amount of time purchased. These changes are accomplished without disrupting or interrupting content being displayed by the media player component.
  • each of the advertising components is downloaded from the backend datacenter to the componentized player (block 534), together with the advertisement display schedule (block 536) upon initialization, but only some of them are displayed by the componentized player at any given time.
  • the start times and display duration times for each advertisement is controlled by the pre-programmed schedule that is downloaded to the componentized player. This schedule may later be modified by the content provider during a broadcast if necessary, and re-downloaded to the componentized player.
  • the first advertisement component is selected (block 540) and displayed for viewing (block 542).
  • the downloaded schedule is periodically checked to determine if it is time to select another advertisement component (block 544), and if it is time, another advertisement component is selected (block 546) and then displayed (block 542). This process continues until the end of the broadcast, or until the componentized player is shutdown.
  • the advertiser's logo can be displayed more prominently for the entire duration of the broadcast.
  • the ability to display or alter a component after a broadcast has already begun also allows components to be displayed at times that are relevant to the information displayed.
  • the statistics for an athlete can be displayed by a content provider along side the video display without interfering with the video, and can even provide an interactive user interface that allows the player user to search and obtain additional related information (e.g., more detailed statistics, or comparisons with other athletes), again without disruption or interruption of the content displayed by the media player component.
  • the coordinated display of componentized player components can be commanded by the content provider in real-time or preprogrammed in advance if all of the events are each known to occur at specific times.
  • an advertiser can provide player users with the ability to obtain more information about their products at key points of a broadcast, and even allow the player user to purchase the products. For example, at a known point of a broadcast a manufacturer's product may appear prominently in a movie. An advertisement for the product can be programmed to appear alongside the movie at that point in time, along with an interactive interface that allows the user of the componentized player to purchase the product online.
  • advertisement components may also be displayed in coordination with commercials that are part of the broadcast to supplement the commercial and add an interactive element that is directly related to the commercial seen by a player user.
  • Advertisement components may be designed to interact with the player user and with other advertisement components.
  • interactive advertisement components are downloaded (block 564) when the componentized player is first initialized, but not all components are initially displayed.
  • a first "teaser" advertisement component is displayed (block 568), and if an interested componentized player user clicks on the advertisement component or on a specific click point within the advertisement component (block 570), a second component is activated and displayed (block 572).
  • the newly displayed component may be displayed in place of the original advertisement component, or may be displayed in another area within the componentized player's display space or stage without obstructing the original advertisement component.
  • the second component will continue to be displayed until an inactivity timer expires, or the player user signals that they are done interacting with the second component (block 574), such as by clicking a "done" button. Once the second component is no longer needed, it is removed from the display (block 576) and the componentized player resumes waiting for the player user to click the advertisement component (block 570).
  • Figures 5D and 5E show a componentized player 200 that implements method 560.
  • componentized player 200 comprises content provider or sponsor logo component 250, teaser advertisement component 252, chat room component 254, media player component 256, ticker component 258, unused stage area 260, and poll component 262.
  • a teaser advertisement component for a pizza delivery service is shown, and when clicked by a player user, a second separate player component with an order form is shown (order form 264, Figure 5E), which the player user fills out to order a pizza.
  • order form is displayed over unused area 260 of Figure 5D.
  • the information provided by the player user is forwarded electronically to the nearest pizza franchise for processing and delivery.
  • the location of the nearest pizza franchise can be determined based on the player user's geo-positional information, which is maintained at the backend datacenter as described in more detail below.
  • the content that is provided to the media player component controlled by componentized player 200 may originate from one or more broadcast servers, as shown in Figure IA (broadcast servers 400 and 600). Although the various possible sources of content may be a mix of both analog and digital sources, the content that is sent across Internet 110 is in a digitally encoded format.
  • Figure 6A shows a detailed view of a broadcast server 600, constructed in accordance with at least some illustrative embodiments.
  • External analog source 640 e.g., a video camera
  • Encoder 608 may comprise hardware and software that samples the analog signal from external source 640 and converts it into digitally encoded and compressed data according to a specific multi-media format (e.g., the Windows Media® video or wmv format). Encoder 608 couples to digital select multiplexer 610, which also couples to digital source 604 and digital archive 606. Digital select multiplexer permits selection between digitally encoded analog source data from encoder 608, digital archive data from digital archive 606, and pre-encoded digital source data from digital source 604, for transmission to the Internet 110 through network interface 612.
  • a specific multi-media format e.g., the Windows Media® video or wmv format
  • a processing subsystem 602 couples to all of the other elements of server 600, allowing processing subsystem 602 to configure, monitor and control the other elements, and to communicate with other external systems (e.g., backend datacenter 800 of Figure IA) via network interface 612.
  • the output of network interface 612 may include up to four individual broadcast streams, each at different data rates.
  • the four streams include a Tl stream (750 kilobits per second), a DSL stream (300 kbps), a dial-up stream (37 kbps), and an audio only stream (32 kbps).
  • processing subsystem 602 includes such components (not shown) as a central processing unit (CPU), memory, one or more hard disks, and various communications ports.
  • Software executes on the CPU in order to provide the capability of controlling the broadcast server 600 locally, or remotely across Internet 110. Control may also be automated using such software, causing the broadcast server 600 to start, stop, and alter the content of the broadcast data sent out across the Internet at pre-programmed times during a broadcast.
  • control may also be automated using such software, causing the broadcast server 600 to start, stop, and alter the content of the broadcast data sent out across the Internet at pre-programmed times during a broadcast.
  • the broadcast server 600 is up and running it is not necessary to have personnel on site to configure or operate the server, or to control the broadcast.
  • digital select multiplexer 610 allows broadcast server 600 to switch between multiple sources during a broadcast. This capability may be used to provide timed substitution of broadcast program segments, such as commercial advertisements. For example, if analog source 640 is a radio station that uses broadcast server 600 to simulcast radio programs on the Internet 110, the station operator may not wish to broadcast over the Internet the same commercial advertisements as it is broadcasting over the airwaves. A control signal (not shown) may be sent by the radio station to broadcast server 600 during commercial ..breaks, causing processing subsystem 602 to configure digital select multiplexer 610 so that an alternate commercial advertisement, stored on digital source 604, is broadcast to on the Internet 110 in place of the original advertisement sent over the airwaves.
  • a control signal (not shown) may be sent by the radio station to broadcast server 600 during commercial ..breaks, causing processing subsystem 602 to configure digital select multiplexer 610 so that an alternate commercial advertisement, stored on digital source 604, is broadcast to on the Internet 110 in place of the original advertisement sent over the airwaves.
  • the alternate commercial advertisement may be stored on, for example, a hard drive within digital source 604, as a file already pre-encoded in the appropriate digital format (e.g., as a wmv file).
  • digital select multiplexer 610 Upon completion of the commercial break, digital select multiplexer 610 would switch back to encoder 608, which would cause the content of the Internet broadcast to again be the same as the radio broadcast.
  • Method 650 of Figure 6B shows such an illustrative embodiment, wherein after the substitute content is downloaded to the broadcast server (block 652), a schedule created by the content provider and stored on a database within the backend datacenter is also downloaded (block 654) as part of the configuration of the broadcast server. After the broadcast begins (block 565) the broadcast server periodically checks to see if the downloaded schedule calls for substitution (block 658). If no substitution is called for, and it is not the end of the broadcast (block 662), the broadcast server continues with the periodic check (block 658).
  • the broadcast server switches over automatically to a source within the broadcast server that stores the downloaded substitute content, and broadcasts at least part of the stored substitute content in place of the original broadcast material.
  • the substituted material is broadcast for a time period that is determined by the downloaded schedule (block 660).
  • the broadcast server checks to see if it is time to end the broadcast (block 662). If it is not time, the broadcast server switches back to the original broadcast source (block 663) and continues monitoring for the next scheduled substitution. If the end of the broadcast has been reached, the broadcast server stops broadcasting (block 664).
  • the output of encoder 608 also couples to the input of digital archive 606.
  • This allows content to be saved in digital form as it is being broadcast, and later uploaded to another server (e.g., a server within backend datacenter 800 of Figure IA), for later rebroadcast.
  • processing subsystem 602 configures digital select multiplexer 610 to select digital archive 606 as a data source.
  • the archived broadcast is then uploaded to a server within backend datacenter 800 (see Figure IA) at the highest data rate that the connection between broadcast server 600 and the server within backend datacenter 800 supports. Once uploaded, the archived broadcast can be made available for rebroadcast via, for example, an on demand system (either video or audio).
  • Broadcast server 600 may also be configured to provide a programmable delay of the video portion of a signal with respect to the audio signal. This may be necessary for radio stations that utilize broadcast server 600 to send out video from their studios onto the Internet 110. Many radio stations operate with a 7 second delay added to the audio in order to edit out such things as inadvertent profanity from the broadcast. * If the audio that is presented to broadcast server 600 includes this delay, it will not be synchronized with the broadcast video. Encoder 608 within broadcast server 600, in at least illustrative embodiments as shown in Figure 7, may be configured to introduce a delay of the video signal to resynchronize the video with the audio.
  • Analog video and audio from the radio station are applied to analog-to-digital (AJO) converters 620 and 622 respectively.
  • the digital audio output from AfD converter 622 is coupled directly to formatter 626, but the digital video output from AfD converter 620 is instead applied to first-in/first-out (FIFO) memory buffer 624.
  • FIFO 624 is sized such that the delay introduced in synchronously shifting the digital video data through FIFO 624 equals the audio delay introduced by the radio station.
  • the output of FIFO 624 is coupled to formatter 626, where the now resynchronized video and audio are formatted for output as the desired digitally encoded content.
  • the backend datacenter 800 of Figure IA is the central coordinating point for the broadcast activity of the network broadcasting system 100.
  • Figure 8 shows a detailed view of a backend datacenter 800, constructed in accordance with at least some illustrative embodiments.
  • Backend datacenter 800 comprises a processing subsystem 810 coupled to a content storage device 830, and a database storage device 840.
  • storage devices 840 and 850 are shown as separate, single devices, they may be configured as a single shared device, or as multiple distributed devices. In at least some illustrative embodiments, for example, the storage devices 840 and 850 each comprise multiple storage devices arranged in a RAID 5 configuration. Many other configurations of the storage devices are possible, and all are intended to be encompassed by the present disclosure.
  • Processing subsystem 810 comprises a CPU 820, as well as a network interface 850 that couples to both CPU 820 and Internet 110, thus providing Internet connectivity to one or more software programs executing on CPU 820.
  • Various software programs that implement the functionality of the backend datacenter execute on CPU 820, as shown in Figure 8. These include content server software 822, database server software 824, web server software 826, and broadcast control center (BCC) software 828.
  • Content server software 822 communicates with content storage device 830, BCC software 828, and network interface 850.
  • Database server software 824 communicates with database storage device 840, and BCC software 828.
  • Web server software 826 communicates with BCC software 828, and with network interface 850.
  • BCC software 828 communicates with content server software 822, database server software 824, and web server software 826, as well as with network interface 850.
  • BCC software 828 is the central software element of backend datacenter 800 as illustrated in Figure 8.
  • BCC software 828 provides the ability to configure, control and monitor the backend datacenter 800, as well as all the other subsystems within the network broadcasting system 100 of Figure IA that are external to backend datacenter 800.
  • Configuration data is stored to and retrieved from database storage device 830 by the BCC software 828 using database server software 824, ⁇ which is an XML enabled relational database server such as, for example, Microsoft SQL server 2000.
  • the configuration data includes the overall configuration of a componentized player for a particular broadcast or event, the configuration of components used by a componentized player for a particular broadcast or event, the configuration of the broadcast server for a particular broadcast or event, the configuration of a CDN server for a particular broadcast or event, and the configuration of a broadcast itself.
  • the database also includes information related to player users, content providers, and advertisers, some or all of which may be used to restrict access to the system or a broadcast, or to control how different subsystems within the network broadcasting system 100 of Figure IA behave during a broadcast. Content providers and other persons who wish to access the BCC software to configure or control a broadcast can do so through a web-based graphical user interface (GUI) provided by web server software 826.
  • GUI graphical user interface
  • Content storage device 830 provides storage for archived content already broadcast that can be re-broadcast through an on-demand request system. Content is stored and retrieved by content server software 822, which can also act as a content distribution server for a limited number of componentized player connections. If, however, a significant number of player users are anticipated for a broadcast, a separate content distribution network server or servers may be used to avoid overloading the processing subsystem 810 or the network interface 110. The content storage device may also store digitally encoded substitute commercials for download to, and use by, a broadcast server as previously described.
  • Operation of the content server is controlled in part by the configuration data stored on database storage device 840, and in part by content provider personnel operating BCC software 828 in real-time using the previously described GUI on a PC (not shown) coupled to the processing subsystem 810.
  • the PC may be coupled to the processing subsystem 810 locally through a local area network (not shown) or remotely through the Internet 110. Operation of the System
  • a broadcast is defined by configuring parameters that control the broadcast server transmission, that determine the configuration and appearance of the componentized player for each player user during a broadcast, and that determine how the content displayed by the componentized player changes or can be changed over the course of the broadcast.
  • Content provider personnel access the BCC software 828 of Figure 8 through a web interface using a web browser (e.g., Internet Explorer) executing on a PC coupled to the Internet.
  • the web interface is made accessible to content provider users on the Internet by web server 826.
  • a user ID and password are entered by the content provider user to gain access to the BCC software 828, and once logged into the system, the content provider user may then navigate a series of menus through which data entry forms are accessed to enter the data necessary to configure all of the elements of a broadcast which are then saved by database server software 824 on database storage device 840.
  • Figure 9 illustrates an example of a top level menu presented to a content provider user, in accordance with at least some preferred embodiments.
  • the content provider user may start by defining parameters that are downloaded to, and provide control of, the broadcast server. In at least some preferred embodiments, this includes the broadcast start and stop times, the number and types of streams available during the broadcast, the Internet address or universal resource located (URL) of any content distribution network servers that may be used to transmit the broadcast, the location within the broadcast server of any substitute broadcast content (described above) that may be switched in during the broadcast, and optionally an automated schedule for preprogrammed switching of such alternate content (e.g., alternate commercials).
  • the alternate content may also be substituted for the original content based on either manual control or external automated control of the broadcast server using equipment external to the broadcast server.
  • the content provider user may then define the configuration of the componentized player to be seen by the player user. This includes the location of components to be downloaded as part of the componentized player, the basic appearance of the componentized player, and operational constraints on the componentized player and its components.
  • the player components may each be stored within the backend datacenter, on a content distribution network server, on a separate server outside the network broadcasting system, or on any combination of all of these (some components at one location, some at others).
  • the location information stored in the database and downloaded as configuration data to the player shell allows the player shell to locate the components, regardless of where they are physically stored, as long as they can be accessed over the Internet.
  • the components may be stored as Shockwave® Flash® programs, hypertext markup language (HTML) files, and extended markup language (XML) files, as well as any number of other web-based programs and file formats.
  • HTML hypertext markup language
  • XML extended markup language
  • a graphical tool may also be used to define componentized player configurations.
  • a web-based player configuration tool is invoked by a content provider user. Such a tool allows the content provider user to pick components from a selection of available componentized player components, and to graphically drag and drop the selection from the graphical display of available components to a work area on the screen where a representation of the displayed componentized player is shown.
  • the configuration is saved and stored within the backend datacenter.
  • the data may be saved in a variety of different formats such as, for example, data within a relational database, or XML data within individually saved configuration files, just to name a few.
  • Operational constraints defined for a componentized player may be based upon interactions and combinations of parameters that establish rules controlling whether a player user is given access to the broadcast, and how some of the player components behaves. For example, if a player user is within 200 miles of a national football league game and a blackout of the game (local televising of the game is blocked until game is sold out) is in effect, that player user may be prohibited from accessing the broadcast of the game.
  • the content provider can configure the broadcast so that when a player user selects the broadcast (block 1002); BCC software 828 retrieves the player user's location information (block 1004) and checks the player user's location against the broadcast constraints to determine if the player user is allowed to access the broadcast (block 1006). If the player user is within a certain threshold distance from the venue, access to the broadcast is denied (block 1010), and the player user is notified of the denial (block 1012). The threshold that controls the access decision is also determined and stored into the database by the content provider user. If the player user is outside the threshold distance, access to the broadcast is allowed and the componentized player is configured for the broadcast (block 1008), thus completing the initial configuration of the componentized player (block 1014).
  • the location of the player user is determined by the BCC software 828 by using the player user's address, provided as part of the player user's credit card or other payment method information, as a basis for determining the latitude and longitude of the player user's residence, which for the purposes of the broadcast is presumed to be the player user's location.
  • Existing Internet services such as Mapquest® may be used to obtain such information, though other similar resources may also be used.
  • the internet protocol (IP) address of the player user's computer may instead be used as a basis for determining the coordinates of the player user's location. This geo-positional information, once determined, may be stored within the database as part of the player user's saved information for later use by the BCC software 828.
  • the geo-positional information may be used to control whether a player user is "blacked out" of a broadcast.
  • a player user may also be subject to a "white out,” that is, a player user may only be allowed to access a broadcast if they are within a certain distance from a particular reference location, rather than beyond that distance as is the case with a black out.
  • Other constraints or rules that can be used to restrict access to a broadcast based on geo-positional data may become apparent to those skilled in the art, and the present disclosure is intended to include all such constraints and rules.
  • Geo-positional information may also be used as a basis for configuring and displaying advertisements and other componentized player components.
  • Advertisements may be classified within a hierarchy as national, regional, and local advertisements based upon correspondingly defined markets.
  • the content provider user may configure individual advertisement components to be used by a componentized player such that advertisement components are only downloaded and displayed on the componentized player if that particular player user's location is within the national, regional, or local marketing area as defined within the database by the content provider user.
  • the componentized player would be configured to display all United States national ads, all Texas regional ads, and all Houston local ads, but not any local ads targeting the Dallas market (the Houston local ads would be shown instead).
  • FIG 11 shows a method 1100 that implements an advertisement component hierarchy, in accordance with at least some illustrative embodiments.
  • the advertisement components are selected and downloaded based on the geo-positional information for the player user when the broadcast is initially selected and the downloaded player shell begins to request downloads of components (block 1101) as previously described.
  • the BCC software 828 adjusts the base configuration, stored in the database by the content provider user, in accordance with the geo- positional constraints as also configured by the content provider user.
  • BCC software 828 checks to determine if the advertisement component is categorized as a local advertisement (block 1102) and if the player user is located within the local area defined for the advertisement component (block 1104).
  • BCC software 828 allows the advertisement component to be downloaded to the player shell (block 1110). If the component is categorized as a local advertisement, but the player user is not located within the local area, BCC software 828 disallows downloading the advertisement component, and the advertisement component is not processed any further with respect to the player shell requesting the download (block 1112).
  • the advertisement component is next checked to determine if it is categorized as a regional component (block 1106), and whether the player user is located within the area defined for the xegion (block 1108). If the player user is not located within the defined region, the advertisement component is not downloaded nor processed any further (block 1112). If the player user is located within the region defined for the advertisement component, BCC software 828 allows the component to be downloaded (block 1110). If BCC software 828. determines that the advertisement component is not- categorized as a regional advertisement, then the advertisement is treated as a national advertisement and BCC software 828 allows the download (block 1110).
  • Other hierarchical structures and relative priorities within such structures may become apparent to those skilled in the art, and the present disclosure is intended to encompass all such structures and priorities.
  • Geo-positional information may also be combined with player user demographic data stored in the database and with viewing and usage statistics periodically sent by the componentized player to the BCC software 828. This allows viewing and usage data to be correlated not only with the player user's demographic data, but also with the player user's location, permitting a detailed assessment of the effectiveness of advertisements within specific and well-defined markets. This data may be collected and sold to advertisers as a service, in addition to the advertisement itself. Data from polls and other interactive data collection player components may also combined with the geo-positional and demographic information of the player user. Further, different levels of statistical data may be offered, each with varying levels of geographic specificity.
  • the pricing model for each level or type of data in at least some illustrative embodiments, reflects the level of specificity of the data provided.
  • statistical viewing data for advertisement components displayed during a particular video broadcast of a concert by a musical group would be priced higher if broken down by neighborhood over an entire city, as compared to overall viewing data without the breakdown by neighborhoods for the city where the concert was made available for viewing.
  • the data generated by the advertisement components and other interactive components paid for by advertisers can also be used to provide a variety of billing options that the content provider can offer to advertisers.
  • Billing alternatives include billing by clicks, views, minutes, priority, event, date range, organization, network, geography, and player user's proximity to the event, just to name a few. Other billing alternatives may become apparent to those skilled in the art, and the present disclosure is intended to encompass all such alternatives.
  • content provider personnel begin by downloading configuration data to a broadcast server previously installed at the broadcast site. If necessary, substitute content is also downloaded to the broadcast server for use as previously described.
  • Such content in at least some illustrative embodiments, is preformatted in the broadcast format used for streaming to the internet (e.g., the wmv format).
  • the broadcast configuration may be altered either by remotely controlling the broadcast server directly, or by downloading a new configuration.
  • the broadcast itself may be started and stopped manually by content provider personnel, or automatically based on the downloaded configuration. If the broadcast is to be provided by a content distribution network (CDN) server, the CDN server may be enabled remotely so as to accept the incoming broadcast streams from broadcast server.
  • CDN content distribution network
  • the CDN server is used to provide components downloaded to the componentized player, these components are downloaded to the CDN server. This allows a player user to obtain downloaded components used by the componentized player, or even the player shell itself, from the CDN server as an alternative to downloading from the backend datacenter. Once a broadcast begins and is made accessible, player users begin by going to a website
  • the player uses their web browser to select the broadcast for viewing. This triggers the initialization process described above for the componentized player.
  • the player Once the componentized player has been downloaded, configured and activated, the player connects to one of the various broadcast streams available (based on the bandwidth of the player user's Internet connection), which may originate either at the backend datacenter (for small audience broadcasts), or from a CDN server (for large audience broadcasts). If one or more CDNs are used, the player is redirected to a CDN server by the backend datacenter and the player connects directly to that CDN.
  • the respective configurations of the broadcast server and the CDN provide all the information needed for the two to establish a connection between each other and to stream data from the broadcast server to the CDN, no data is transferred until at least one componentized player establishes a connection with the CDN.
  • the componentized player continues to actively communicate with the BCC software 828.
  • a message is sent regularly (e.g., every 30 seconds) from the componentized player to the BCC software.
  • This "heartbeat" message provides both feedback to the BCC software 828 (e.g., updated usage statistics and player user originated data) as well as a request for updates from the BCC software 828.
  • the BCC software 828 can thus download changes when necessary to the componentized player by responding to the heartbeat message.
  • a pre-programmed and downloaded schedule controls changes to the componentized player's configuration, and the heartbeat message may also be used to request a download of the componentized player components necessary to support the changes thus scheduled.
  • moderators e.g., DJs and sportscasters of a* live broadcast
  • the moderators login through the same web-based user interface used by the content provider to gain access to the BCC software 828 of Figure 8.
  • the user IDs used by the moderators have privilege levels that restrict their activities to interactions with player users.
  • multiple tiers of moderators may be configured, in which a first level moderator can see all of the player users that are active in the chat room, including all of the moderators, but in which higher levels of moderators only see a subset of the player users participating in the chat room.
  • player users receiving a broadcast of a sporting event may send comments via chat to the sportscaster (block 1202), which are reviewed and responded to initially by a first-level moderator (block 1204).
  • the first-level moderator selects player users that are allowed to interact with the second-level moderator (block 1206), which may be the actual sportscaster.
  • the selected player users are forwarded to, and can chat with, the sportscaster (block 1208), ending the moderation pre-selection process (block 1210).
  • Moderators may also have access to the results of player user polls and other data generated based on player user responses, allowing them to comment on this information during the broadcast.
  • the broadcast server stores the streamed broadcast data to a storage device (e.g., a hard disk), and once a broadcast has ended, the broadcast server uploads the recorded broadcast to the backend datacenter for storage on content storage device 830 of Figure 8.
  • a storage device e.g., a hard disk
  • the broadcast server uploads the recorded broadcast to the backend datacenter for storage on content storage device 830 of Figure 8.
  • the archived broadcast may be made available for re-broadcast as an on-demand product. Further, as the archived broadcast is streamed to a player user, additional content may be inserted at the beginning and end of the re-broadcast, and may also be inserted at any point desired during the re-broadcast.
  • Figure 13 shows method 1300, which describes inserting additional content in the form of streamed advertisements in this manner, in accordance with at least some illustrative embodiments.
  • Content is requested by a player user (block 1302) and both the requested content and an advertisement schedule is retrieved.
  • the advertisement schedule determines what additional content is used as inserted substitute content, and at what point in time each insertion of the selected additional content takes place. If one or more advertisements are scheduled as lead-in "bumper" advertisements (block 1306), the broadcast stream is switched to the source that stores the additional content in the form of advertisements (block 1308). After the inserted content broadcast has completed according to the advertisement schedule, the broadcast stream is switched back to the requested content (block 1310), and the broadcast proceeds.
  • the broadcast of the requested content is paused, the broadcast stream is switched over to the source of the source- of the advertisements, and the advertisements are broadcast according to the advertisement schedule (block 1314). If the broadcast of the requested content has not yet completed (block 1316), the broadcast stream is switched back to the requested content (block 1310) and broadcast of the requested content continues until the next scheduled advertisement (block 1312).
  • the scheduled is checked to determine if there are trailing bumper advertisements that need to be inserted (block 1318), and if there are such advertisements scheduled, the broadcast stream is switched to the source of the advertisements and the scheduled advertisements are broadcast on the stream (block 1320). Once the trailing bumper advertisement broadcast has completed, or if there are no trailing bumper advertisements, the entire broadcast has completed (block 1322) and the stream can be terminated.
  • a live event that was originally broadcast without commercial interruption may be re-broadcast with "bumper" ads added to the beginning and end of the broadcast and provided from an alternative source (e.g., separate wmv files) created for this purpose and stored on the content storage device 830.
  • an alternative source e.g., separate wmv files
  • commercials may be inserted where none previously existed during the re-broadcast.
  • the stream is paused while the alternate data source provides the inserted advertisement. Because the original broadcast is paused and the added or inserted material is substituted directly into the stream without altering the archived broadcast, the advertisements may be updated or replaced with new advertisements as needed by updating or replacing the alternate source files stored on the content storage device 830.

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Databases & Information Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Business, Economics & Management (AREA)
  • Marketing (AREA)
  • Computer Hardware Design (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

A network broadcast system and method is described in the present disclosure. Included is a method for playing streaming content in a componentized player, the method comprising displaying a media player component configured to display the streaming content; displaying an advertisement component that provides product information (568); detecting a user selection of the advertisement component (570); and displaying another component in response to detecting the user selection without interfering with a user's access to the streaming content (572).

Description

NETWORK BROADCAST SYSTEM AND METHOD
BACKGROUND
In recent years the Internet has experienced unprecedented growth, both in terms of use and capabilities. One Internet technology that has seen a dramatic increase in use has been streaming audio and video. On the one hand, higher available bandwidth has allowed content of increasingly higher quality to be provided to the consumer. On the other hand, improvements in signal compression techniques have allowed content of increasingly higher quality to be provided to consumers even in the absence of high network bandwidth. As a result of these improvements, smaller, non-national/non-syndicated broadcasters and content providers now have the capability to provide audio and video that is approaching broadcast quality to a far broader market than was previously available.
With the increased use of streaming audio and video over the Internet has come the proliferation of personal computer software-based "media players" that allow consumers with an Internet connection to view programming supplied by content providers. Such players include, for example, Microsoft's Windows Media® player, Apple's QuickTime® player, RealNetwork's RealPlayer®, and Nullsoft's Winamp® player just to name a few. Generally, advertisers working with content providers and targeting users of such "stock" players simply insert advertisements within the video and/or audio stream in the same manner as is commonly done in radio and television.
But the Internet, as a digital data transmission network, provides the capability for broadcasting far more than just audio or video, provided the player used by the consumer is designed to take advantage of such capability. Advertisers and content providers have recognized the advantages of such data transmission capabilities and have worked with several of the manufacturers of media players to provide customized players that allow advertisements to be sent as digital data, in addition to the digitally encoded audio and/or video, which can then be displayed in conjunction with the streamed audio and/or video.
As already noted, however, such capabilities are provided by players that have been customized for a particular content provider. Whether provided directly by the manufacturer of the player or by a third party developer, such customizations generally require the skills of one or more computer programmers, take a great deal of time and money to implement, and are not easily modified once the customization is complete. As a result, such customized capabilities have only been available to larger corporations that have access to both significant resources, as well as a large enough market to bear the cost of such an undertaking. BRIEF DESCRIPTION OF THE DRAWINGS
For a detailed description of various embodiments of the invention, reference is now made to the accompanying drawings in which:
Figure IA shows an overview of a network broadcast system, in accordance with at least some illustrative embodiments;
Figure IB shows an example of a personal computer (PC), usable to execute and operate a componentized player constructed in accordance with at least some illustrative embodiments;
Figure 1C shows a block diagram of a PC, usable to execute and operate a componentized player constructed in accordance with at least some illustrative embodiments; Figure 2 shows a block diagram of a componentized player, in accordance with at least some illustrative embodiments;
Figure 3 shows the layering of the componentized player relative to other software programs, in accordance with at least some illustrative embodiments;
Figure 4 shows an example of a displayed componentized player, in accordance with at least some illustrative embodiments;
Figure 5A shows a method for initializing a componentized player, in accordance with at least some illustrative embodiments;
Figure 5B shows a method for downloading and executing an advertisement component and a display schedule, in accordance with at least some illustrative embodiments; Figure 5C shows a method for downloading and executing a set of interactive advertisement components, in accordance with at least some illustrative embodiments;
Figure 5D shows a componentized player displaying a teaser advertisement, in accordance with at least some illustrative embodiments;
Figure 5E shows a componentized player displaying an interactive order form linked to the teaser advertisement, in accordance with at least some illustrative embodiments;
Figure 6A shows a block diagram of a broadcast server, in accordance with at least some illustrative embodiments;
Figure 6B shows a method for downloading and automatically inserting substitute content into a broadcast, in accordance with at least some illustrative embodiments; Figure 7 shows a block diagram of an encoder used in a broadcast server, in accordance with at least some illustrative embodiments;
Figure 8 shows a block diagram of a backend datacenter, in accordance with at least some illustrative embodiments;
Figure 9 shows an example of a broadcast control center software menu, in accordance with at least some illustrative embodiments; Figure 10 shows a method for controlling access to a broadcast based upon geo-positional constraints, in accordance with at least some illustrative embodiments;
Figure 11 shows a method for selecting an advertisement component based upon geo- positional constraints, in accordance with at least some illustrative embodiments; Figure 12 shows a method for providing multi-tiered moderation of a chat room, in accordance with at least some illustrative embodiments; and
Figure 13 shows a method for providing additional content insertion during a broadcast, in accordance with at least some illustrative embodiments.
NOTATION AND NOMENCLATURE Certain terms are used throughout the following description and claims to refer to particular system components. This document does not intend to distinguish between components that differ in name but not function.
In the following discussion and in the claims, the terms "including" and "comprising" are used in an open-ended fashion, and thus should be interpreted to mean "including but not limited to...." Also, the term "couple" or "couples" is intended to mean either an indirect or direct electrical connection. Thus, if a first device couples to a second device, that connection may be through a direct electrical connection, or through an indirect electrical connection via other devices and connections. Additionally, the term "system" refers to a collection of two or more parts and may be used to refer to a computer system or a portion of a computer system. Further, the term "software" includes any object image or executable image capable of causing a task to be performed by a processor, regardless of the media used to store the software. Thus, an image stored in non-volatile memory, and sometimes referred to as "embedded firmware," is included within the definition of software.
DETAILED DESCRIPTION The following discussion is directed to various embodiments of the invention. Although one or more of these embodiments may be preferred, the embodiments disclosed should not be interpreted, or otherwise used, as limiting the scope of the disclosure, including the claims, unless otherwise specified. The discussion of any embodiment is meant only to be illustrative of that embodiment, and not intended to intimate that the scope of the disclosure, including the claims, is limited to that embodiment. System Structure Overview
Figure IA shows a network broadcasting system constructed in accordance with at least some illustrative embodiments. The system 100 comprises broadcast servers at one or more sites
(Broadcast Servers 400 and 600) each of which couples to a backend datacenter 800. Content from a broadcast source such as, for example, video from camera 602 is digitally encoded by broadcast server 600 and transmitted to backend datacenter 800 via the Internet 110. The broadcast may comprise digitally encoded content in the form of audio or video, or both, as well as other digital data. Digital data may also be sent from the backend datacenter 800 to the broadcast server 600, and may include configuration and control messages used to remotely operate the broadcast server 600.
Once the digitally encoded content is received by the backend datacenter 800, it can be broadcast directly to one or more players coupled to the Internet 110, such as componentized player 200. Componentized player 200 is a software implemented content player, constructed in accordance with at least some embodiments as described below, and executed on a computer system such as, for example, personal computer (PC) 170. Figures IB and 1C show an illustrative system configuration 400 suitable for implementing PC 170. As shown, the illustrative system configuration 400 includes a chassis 402, a display 404, and an input device 406. The chassis 402 includes a processor 426, memory 430, and information storage devices 432. One or more of the information storage devices 432 may store programs and data on removable storage media such as a floppy disk 408 or an optical disc 410. The chassis 402 also includes a network interface 428 that allows the system 400 to receive information via a local area network (e.g., Internet 110 of Figure 1) and/or a wired or wireless wide area network, represented in Figure IB by a phone jack 412. The information storage media and information transport media (i.e., the networks) are collectively called "information carrier media." The chassis 402 is coupled to the display 404 and the input device 406 to interact with a player user. The display 404 and the input device 406 may together operate as a user interface. The input device 406 is shown as a keyboard, but other input devices such as a mouse or a keypad may also be included.
Figure 1C shows a simplified functional block diagram of system 400. The chassis 402 may include a display interface 422, a peripheral interface 424, a processor 426, a modem or other suitable network interface 428, a memory 430, an information storage device 432, and a bus 434. System 400 may be a bus-based computer, with the bus 434 interconnecting the other elements and carrying communications between them. The display interface 422 may take the form of a video card or other suitable display interface that accepts information from the bus 434 and transforms it into a form suitable for the display 404. Conversely, the peripheral interface 424 may accept signals from the keyboard 406 and other input devices such as a pointing device 436, and transform them into a form suitable for communication on the bus 434.
The processor 426 gathers information from other system elements, including input data from the peripheral interface 424, and program instructions and other data from the memory 430, the information storage device 432, or from other systems coupled to a local area network or a wide area network via the network interface 428. The processor 426 carries out the program instructions and processes the data accordingly. The program instructions may further configure the processor 426 to send data to other system elements, comprising information for the player user which may be communicated via the display interface 422 and the display 404. The network interface 428 enables the processor 426 to communicate with other systems via a local area network or via a wide area network. The memory 430 may serve as a low-latency temporary store of information for the processor 426, and the information storage device 432 may serve as a long term (but higher latency) store of information.
The processor 426, and hence the computer 400 as a whole, operates in accordance with one or more programs stored on the information storage device 432 or received via the network interface 428. The processor 426 may copy portions of the programs into the memory 430 for faster access, and may switch between programs or carry out additional programs in response to player user actuation of the input device. The additional programs may be retrieved from the storage device 432 or may be retrieved or received from other locations via the network interface
428. One or more of these programs executes on system 400 causing it to perform at least some of the network broadcasting methods disclosed herein. Other embodiments of the componentized player 200 may execute on other types of systems configured to communicate with a network and to provide audio and/or video content, such as mobile devices (e.g., cellular telephones) and set top boxes, and all such embodiments are intended to be within the scope of this disclosure.'
. In addition to the digitally encoded content, other information, such as advertisements and information related to the broadcast, may also be sent to, and displayed by, componentized player 200. The digitally encoded content together with all other transmitted broadcast-related data are hereinafter be referred to as broadcast data. Referring again to Figure IA, componentized player 200 may also send information to backend datacenter 800, such as player user identification information, usage statistics, responses to queries made to the player user, as well as player user- initiated queries, messages and transactions. Also, data may be sent from backend datacenter 800 to initially configure componentized player 200 when first executed, and to reconfigure the componentized player 200, if desired by the content provider, during the course of a broadcast.
Alternatively, componentized player 200 may receive broadcast data from a content distribution network (CDN) server 130. The CDN server 130, in accordance with at least some embodiments, operates as a localized provider of broadcast data and is configured to service a large number of componentized players 200 that are geographically proximate to the CDN server 130. This may be done by relaying or buffering the broadcast data in its entirety from the backend datacenter 800, or by receiving the digitally encoded content directly from the broadcast server 600, and additional broadcast-related data from the backend datacenter 800. The CDN server 130 then retransmits the consolidated broadcast data to one or more componentized players 200. Data from individual player users likewise can either be sent directly over the Internet 110 to the backend datacenter 800, or alternatively to the CDN server 130, which then relays the data to the backend datacenter 800.
CDN server 130 may be one of a plurality of content servers that are part of a content distribution network, located over a large, geographically disperse area. Servers may be individually located to provide service to an area, or co-located in groups, depending on the number of player users within an area that wish to receive a broadcast. By distributing high-capacity servers over a large, geographically disperse area, broadcast traffic with individual player users is accomplished over shorter distances on the Internet with better performance results than might be possible with a geographically distant player user, and the amount of data being transmitted and received by any given server is reduced, thus distributing the overall communications and processing load of the broadcast over a plurality of CDN servers.
The illustrative embodiment of Figure IA also shows broadcast server 400, which encodes video from camera 402, and which couples to backend datacenter 800 through a satellite communications network 160. This network comprises ground station 162, which couples to backend datacenter 800, and ground station 166, which couples to broadcast server 400. The two ground stations communicate with each other yia orbiting satellite 164, which is also part of the satellite communications network 160. When using satellite communications network 160 in this manner, all communications with broadcast server 400 is routed through backend datacenter 800, including content provided to CDN server 130. In all other respects, broadcast server 400 operates in the same manner as broadcast server 600. The Componentized player
As already noted, componentized player 200, in accordance with at least some illustrative embodiments, is implemented as a software image executed on a computer system, which is shown in detail in Figure 2. In the illustrative embodiment shown, componentized player 200 is a web- based player, designed to operate within a web browser as part of a web page using a combination of a media player, such as Windows Media® Player, and a Shockwave® Flash® (SWF) program, written using Macromedia's ActionScript, that interacts with a Flash® plug-in installed within the web browser. Other alternative media players, plug-ins, and programming languages may also be used, and all such alternatives are intended to be within the scope of this disclosure. Componentized player 200 of the illustrative embodiment shown is downloaded and executed by the Flash® plug-in when a player user on a PC visits a content provider's web site and selects an event being broadcast or provided on an "on-demand" basis. When the player user first selects an event, a player shell 210 is initially loaded that does not operate as a fully functional componentized player. This player shell then loads individual components (e.g., components 221-225) that, once loaded, operate together to provide a fully functional componentized player with the capabilities and the look and feel desired by the content provider. Selection of these components can be preprogrammed and fixed in advance of an event, or can be reconfigured, both with regard to functionality and appearance, during the course of a broadcast. Changes may be made automatically according to a pre-programmed scheduled, or initiated in real-time by the content provider.
The player shell 210 that is downloaded comprises at least three tightly coupled core components: framework 210, event handler 216, and data engine 214. The player shell 210 may also comprise libraries 218 that can include other components needed to operate the componentized player 200. Framework 210 provides the functional logic of componentized player 200, performing the basic tasks necessary to initialize, configure and operate the full componentized player. Event handler 216 provides the central coordinating point for requests and responses between all other
-components within componentized player 200. Data engine 214 responds to all requests to provide or retrieve information, regardless of whether the source or destination of the information is local to the PC executing componentized player 200 or at a remote location other than the PC.
As shown in Figure 3, componentized player 200 relies on existing event-driven '. ' mechanisms within the operating system (Windows O/S 310), the browser (Internet Explorer 312), : Flash® Macromedia (Flash® Plug-in 314), and the underlying media player (media player plug-in 316), but these mechanisms are not used to service events associated with configuring and reconfiguring componentized player 200. Referring again to Figure 2, componentized player 200 relies on event handler 216 within the downloaded player shell 210 to service events that are specific to the capabilities of componentized player 200. Event handler 216 within componentized player 200 is layered on top of and/or alongside the other event-driven mechanisms of Figure 3, and acts in concert with these mechanisms. This allows multiple, independent transactions to be in progress contemporaneously. Thus, for example, event handler 216 of an operational componentized player 200 may receive updated information for a running ticker component, while a request for information from the player user is still outstanding and video continues to be provided and updated to the media player component. The event handler services events related to each of these outstanding tasks as required, without one task necessarily precluding the event handler from servicing another. The event handler thus permits componentized player 200 to maintain multiple active player components without the activity of one component adversely affecting another component. In particular, the content presented by the media player component is not unintentionally disrupted or interrupted by activity involving other components.
When player shell 210 is initially downloaded and activated, framework 212 sends a configuration request to event handler 216, which responds by directing framework 212 to data engine 214. Framework 212 then requests the location of the configuration information from data engine 214, and after data engine 214 responds with the location information, framework 212 retrieves the initial componentized player configuration. The initial configuration may be available locally as part of the initial download of player shell 210, or it may be retrieved as one or more files transferred from one or more remote servers coupled to the Internet. These servers may be part of the backend datacenter 800 (Figure 1), part of the content distribution network, or simply a single server coupled to the Internet 110.
In at least some illustrative embodiments, the initial configuration of the componentized player 200 is provided by five configuration files: a structure file, a language file, a style file, an image file, and an activity file. Some embodiments may use more configuration files, while still other embodiments may use less files, and the present disclosure is intended to encompass all such embodiments. Each of these files describes a number of characteristics of the componentized player, and may use a variety of description languages and formats, such as the extended markup language (XML) and the hypertext markup language (HTML), just to name a few examples. The structure file provides a list of additional components needed by the componentized player 200 that are retrieved, incorporated into the componentized player, and activated. As with the initial configuration information, the additional components may be available locally as part of the initial download of player shell 210 or. available remotely on a server coupled to the Internet. The language file provides information as to the language and character sets used to display information. The style file provides information related to the positioning on the screen of the various displayed components. The image file provides information as to the overall look and feel of each displayed component (sometimes referred to as "skins"). The activity file, if used, provides information related to the timing of changes to the appearance, functionality and overall configuration of the componentized player 200 and its components over the course of an event or broadcast. Once the configuration has been received, the componentized player 200 may then determine from the structure file which additional components need to be retrieved, configured, and activated in order to operate the componentized player as programmed by the content provider. Each of the components needed are retrieved in a manner similar to the configuration files, either locally or remotely, then individually configured, activated and displayed. In at least some illustrative embodiments, when the components are displayed they are located on the screen in one or more areas reserved for player components. These areas (referred to as the "stage" in Flash® Macromedia) define the componentized player as displayed on the screen of the PC on which the componentized player executes (e.g., PC 170 of Figure 1). Components other than the media player component are placed so as to not overlap and obstruct any visual content displayed by the media player component. The end result of the configuration process described is a displayed and active "componentized" player 200, an example of which is shown in Figure 4. As can be seen, componentized player 200 may include a large variety of components, each providing different capabilities. These components, in addition to basic audio and/or video, may provide, for example, advertisements, information tickers, subtitles, statistics and general information gathering, polls, forums, moderated and unmoderated chat rooms, interactive crowd response simulators (where uses each enter a cheer or boo and the results are averaged and fed back to all player users as a simulated proportioned cheer or boo), on-line shopping (e-commerce), charitable donations, and video games. Other components with additional capabilities may become apparent to those of ordinary skill in the art, and all such components are intended to be within the scope of the present disclosure.
Figure 5 A illustrates a method 500 for initializing a componentized player constructed in accordance with at least some embodiments. After a player user selects an event on the content provider's website (block 502) and the content provider authorizes access by the player user (e.g., by completing a credit card transaction by which the player user pays to access the broadcast), the player shell is downloaded to the player user's PC from a server coupled to the Internet and activated (block 504). The player shell then retrieves information needed to configure itself for operation (block 506). In at least some embodiments this information may be retrieved from an extended markup language (XML) enabled system query language (SQL) database server located within a backend datacenter 800 (Figure 1). The XML data returned describes what components the player shell initially needs to retrieve in order to operate and appear as desired by the content provider. In at least some other embodiments, the information is downloaded as part of the player shell. In still other embodiments, the information may be downloaded as a text file containing XML structures describing the configuration of the componentized player. Further, in still other embodiments, some of the information may be downloaded with the player shell, while the rest of the information is downloaded after the shell has already been downloaded. Many other alternatives for providing the information describing the needed components may become apparent to those skilled in the art, and this disclosure is intended to encompass all such alternatives.
Once the required components are known by the player shell, the components are retrieved by the player shell (block 508). As with the configuration information, the components may have already been downloaded together with the player shell, or they may have to be downloaded from a server coupled to the Internet. Once all of the required components have been retrieved by the player shell, they are each configured, activated and displayed to the player user as a componentized player (block 510), similar to the componentized player of Figure 4. Continuing to refer to Figure 5A, once the components are configured, active, and displayed, the componentized player continues to process events (block 512), providing audio, video, and data to the player user as specified by the content provider, processing data from the player user when so configured, and updating the configuration of the componentized player as desired by the content provider. The componentized player continues to process events in this manner until the componentized player is shutdown by either the player user or the content provider (block 514). Because individual components of the componentized player can operate independently of each other and can thus be added, altered or removed real-time "on-the-fly," the operation and appearance of the componentized player can be made to change significantly over the course of a broadcast. The ability to alter components on-the-fly allows advertisement space to be shared between multiple advertisements and advertisers by periodically rotating ads. Display time is allocated, according to a downloaded schedule, to each advertiser based on the amount of time purchased. These changes are accomplished without disrupting or interrupting content being displayed by the media player component. Referring now to the illustrative method 530 of Figure 5B, after the componentized player is started (block 532), each of the advertising components is downloaded from the backend datacenter to the componentized player (block 534), together with the advertisement display schedule (block 536) upon initialization, but only some of them are displayed by the componentized player at any given time. The start times and display duration times for each advertisement is controlled by the pre-programmed schedule that is downloaded to the componentized player. This schedule may later be modified by the content provider during a broadcast if necessary, and re-downloaded to the componentized player. After the componentized player1 has been configured and begins operation (block 538), the first advertisement component is selected (block 540) and displayed for viewing (block 542). The downloaded schedule is periodically checked to determine if it is time to select another advertisement component (block 544), and if it is time, another advertisement component is selected (block 546) and then displayed (block 542). This process continues until the end of the broadcast, or until the componentized player is shutdown.
If the advertiser is willing to pay to be a sponsor of the event, the advertiser's logo can be displayed more prominently for the entire duration of the broadcast. The ability to display or alter a component after a broadcast has already begun also allows components to be displayed at times that are relevant to the information displayed. Thus, during a sports event the statistics for an athlete can be displayed by a content provider along side the video display without interfering with the video, and can even provide an interactive user interface that allows the player user to search and obtain additional related information (e.g., more detailed statistics, or comparisons with other athletes), again without disruption or interruption of the content displayed by the media player component. The coordinated display of componentized player components can be commanded by the content provider in real-time or preprogrammed in advance if all of the events are each known to occur at specific times. Thus an advertiser can provide player users with the ability to obtain more information about their products at key points of a broadcast, and even allow the player user to purchase the products. For example, at a known point of a broadcast a manufacturer's product may appear prominently in a movie. An advertisement for the product can be programmed to appear alongside the movie at that point in time, along with an interactive interface that allows the user of the componentized player to purchase the product online. Such advertisement components may also be displayed in coordination with commercials that are part of the broadcast to supplement the commercial and add an interactive element that is directly related to the commercial seen by a player user.
Advertisement components may be designed to interact with the player user and with other advertisement components. Referring to the illustrative method 560 of Figure 5C, after the componentized player is started (block 562), interactive advertisement components, are downloaded (block 564) when the componentized player is first initialized, but not all components are initially displayed. After the downloads are completed and operation of the componentized player begins (block 566), a first "teaser" advertisement component is displayed (block 568), and if an interested componentized player user clicks on the advertisement component or on a specific click point within the advertisement component (block 570), a second component is activated and displayed (block 572). The newly displayed component may be displayed in place of the original advertisement component, or may be displayed in another area within the componentized player's display space or stage without obstructing the original advertisement component. The second component will continue to be displayed until an inactivity timer expires, or the player user signals that they are done interacting with the second component (block 574), such as by clicking a "done" button. Once the second component is no longer needed, it is removed from the display (block 576) and the componentized player resumes waiting for the player user to click the advertisement component (block 570).
Figures 5D and 5E show a componentized player 200 that implements method 560. Initially, componentized player 200 comprises content provider or sponsor logo component 250, teaser advertisement component 252, chat room component 254, media player component 256, ticker component 258, unused stage area 260, and poll component 262. When first displayed, a teaser advertisement component for a pizza delivery service is shown, and when clicked by a player user, a second separate player component with an order form is shown (order form 264, Figure 5E), which the player user fills out to order a pizza. The order form is displayed over unused area 260 of Figure 5D. The information provided by the player user is forwarded electronically to the nearest pizza franchise for processing and delivery. The location of the nearest pizza franchise can be determined based on the player user's geo-positional information, which is maintained at the backend datacenter as described in more detail below.
Because of the componentized nature of the componentized player, additional features can be implemented by simply adding components. Although programming expertise may be required to create new components, the addition or reconfiguration of existing components requires little or no programming expertise. Tools may be developed that allow player users to generate configurations for componentized players through a graphical "what you see is what you get" (WYSIWYG) interface that produces, for example, an XML configuration file. Because such files are text files, the componentized player may also be configured manually by using a conventional text editor to create and edit the configuration files directly. The Broadcast Server
The content that is provided to the media player component controlled by componentized player 200 may originate from one or more broadcast servers, as shown in Figure IA (broadcast servers 400 and 600). Although the various possible sources of content may be a mix of both analog and digital sources, the content that is sent across Internet 110 is in a digitally encoded format. Figure 6A shows a detailed view of a broadcast server 600, constructed in accordance with at least some illustrative embodiments. External analog source 640 (e.g., a video camera) couples to encoder 608 and provides an analog signal to the encoder. Encoder 608 may comprise hardware and software that samples the analog signal from external source 640 and converts it into digitally encoded and compressed data according to a specific multi-media format (e.g., the Windows Media® video or wmv format). Encoder 608 couples to digital select multiplexer 610, which also couples to digital source 604 and digital archive 606. Digital select multiplexer permits selection between digitally encoded analog source data from encoder 608, digital archive data from digital archive 606, and pre-encoded digital source data from digital source 604, for transmission to the Internet 110 through network interface 612. A processing subsystem 602 couples to all of the other elements of server 600, allowing processing subsystem 602 to configure, monitor and control the other elements, and to communicate with other external systems (e.g., backend datacenter 800 of Figure IA) via network interface 612. The output of network interface 612 may include up to four individual broadcast streams, each at different data rates. In at least some illustrative embodiments, the four streams include a Tl stream (750 kilobits per second), a DSL stream (300 kbps), a dial-up stream (37 kbps), and an audio only stream (32 kbps).
In the illustrative embodiment of Figure 6A, processing subsystem 602 includes such components (not shown) as a central processing unit (CPU), memory, one or more hard disks, and various communications ports. Software executes on the CPU in order to provide the capability of controlling the broadcast server 600 locally, or remotely across Internet 110. Control may also be automated using such software, causing the broadcast server 600 to start, stop, and alter the content of the broadcast data sent out across the Internet at pre-programmed times during a broadcast. Thus, regardless of whether controlled manually from a remote location or automatically by locally executed software, once the broadcast server 600 is up and running it is not necessary to have personnel on site to configure or operate the server, or to control the broadcast.
As already noted, digital select multiplexer 610 allows broadcast server 600 to switch between multiple sources during a broadcast. This capability may be used to provide timed substitution of broadcast program segments, such as commercial advertisements. For example, if analog source 640 is a radio station that uses broadcast server 600 to simulcast radio programs on the Internet 110, the station operator may not wish to broadcast over the Internet the same commercial advertisements as it is broadcasting over the airwaves. A control signal (not shown) may be sent by the radio station to broadcast server 600 during commercial ..breaks, causing processing subsystem 602 to configure digital select multiplexer 610 so that an alternate commercial advertisement, stored on digital source 604, is broadcast to on the Internet 110 in place of the original advertisement sent over the airwaves. The alternate commercial advertisement may be stored on, for example, a hard drive within digital source 604, as a file already pre-encoded in the appropriate digital format (e.g., as a wmv file). Upon completion of the commercial break,, digital select multiplexer 610 would switch back to encoder 608, which would cause the content of the Internet broadcast to again be the same as the radio broadcast.
In other illustrative embodiments, content substitution as described above is accomplished by automatically switching from one source to the other based upon a pre-programmed schedule. Method 650 of Figure 6B shows such an illustrative embodiment, wherein after the substitute content is downloaded to the broadcast server (block 652), a schedule created by the content provider and stored on a database within the backend datacenter is also downloaded (block 654) as part of the configuration of the broadcast server. After the broadcast begins (block 565) the broadcast server periodically checks to see if the downloaded schedule calls for substitution (block 658). If no substitution is called for, and it is not the end of the broadcast (block 662), the broadcast server continues with the periodic check (block 658). If a scheduled substitution is reached, the broadcast server switches over automatically to a source within the broadcast server that stores the downloaded substitute content, and broadcasts at least part of the stored substitute content in place of the original broadcast material. The substituted material is broadcast for a time period that is determined by the downloaded schedule (block 660). After broadcasting substitute content for the duration called for by the downloaded schedule, the broadcast server checks to see if it is time to end the broadcast (block 662). If it is not time, the broadcast server switches back to the original broadcast source (block 663) and continues monitoring for the next scheduled substitution. If the end of the broadcast has been reached, the broadcast server stops broadcasting (block 664).
Referring again to Figure 6A, the output of encoder 608 also couples to the input of digital archive 606. This allows content to be saved in digital form as it is being broadcast, and later uploaded to another server (e.g., a server within backend datacenter 800 of Figure IA), for later rebroadcast. In accordance with at least some illustrative embodiments, once the broadcast has completed, processing subsystem 602 configures digital select multiplexer 610 to select digital archive 606 as a data source. The archived broadcast is then uploaded to a server within backend datacenter 800 (see Figure IA) at the highest data rate that the connection between broadcast server 600 and the server within backend datacenter 800 supports. Once uploaded, the archived broadcast can be made available for rebroadcast via, for example, an on demand system (either video or audio).
Broadcast server 600 may also be configured to provide a programmable delay of the video portion of a signal with respect to the audio signal. This may be necessary for radio stations that utilize broadcast server 600 to send out video from their studios onto the Internet 110. Many radio stations operate with a 7 second delay added to the audio in order to edit out such things as inadvertent profanity from the broadcast. * If the audio that is presented to broadcast server 600 includes this delay, it will not be synchronized with the broadcast video. Encoder 608 within broadcast server 600, in at least illustrative embodiments as shown in Figure 7, may be configured to introduce a delay of the video signal to resynchronize the video with the audio. Analog video and audio from the radio station are applied to analog-to-digital (AJO) converters 620 and 622 respectively. The digital audio output from AfD converter 622 is coupled directly to formatter 626, but the digital video output from AfD converter 620 is instead applied to first-in/first-out (FIFO) memory buffer 624. FIFO 624 is sized such that the delay introduced in synchronously shifting the digital video data through FIFO 624 equals the audio delay introduced by the radio station. The output of FIFO 624 is coupled to formatter 626, where the now resynchronized video and audio are formatted for output as the desired digitally encoded content. The Backend Datacenter
The backend datacenter 800 of Figure IA is the central coordinating point for the broadcast activity of the network broadcasting system 100. Figure 8 shows a detailed view of a backend datacenter 800, constructed in accordance with at least some illustrative embodiments. Backend datacenter 800 comprises a processing subsystem 810 coupled to a content storage device 830, and a database storage device 840. Although storage devices 840 and 850 are shown as separate, single devices, they may be configured as a single shared device, or as multiple distributed devices. In at least some illustrative embodiments, for example, the storage devices 840 and 850 each comprise multiple storage devices arranged in a RAID 5 configuration. Many other configurations of the storage devices are possible, and all are intended to be encompassed by the present disclosure.
Processing subsystem 810 comprises a CPU 820, as well as a network interface 850 that couples to both CPU 820 and Internet 110, thus providing Internet connectivity to one or more software programs executing on CPU 820. Various software programs that implement the functionality of the backend datacenter execute on CPU 820, as shown in Figure 8. These include content server software 822, database server software 824, web server software 826, and broadcast control center (BCC) software 828. Content server software 822 communicates with content storage device 830, BCC software 828, and network interface 850. Database server software 824 communicates with database storage device 840, and BCC software 828. Web server software 826 communicates with BCC software 828, and with network interface 850. BCC software 828 communicates with content server software 822, database server software 824, and web server software 826, as well as with network interface 850.
BCC software 828 is the central software element of backend datacenter 800 as illustrated in Figure 8. BCC software 828 provides the ability to configure, control and monitor the backend datacenter 800, as well as all the other subsystems within the network broadcasting system 100 of Figure IA that are external to backend datacenter 800. Configuration data is stored to and retrieved from database storage device 830 by the BCC software 828 using database server software 824, ■ which is an XML enabled relational database server such as, for example, Microsoft SQL server 2000. The configuration data includes the overall configuration of a componentized player for a particular broadcast or event, the configuration of components used by a componentized player for a particular broadcast or event, the configuration of the broadcast server for a particular broadcast or event, the configuration of a CDN server for a particular broadcast or event, and the configuration of a broadcast itself. The database also includes information related to player users, content providers, and advertisers, some or all of which may be used to restrict access to the system or a broadcast, or to control how different subsystems within the network broadcasting system 100 of Figure IA behave during a broadcast. Content providers and other persons who wish to access the BCC software to configure or control a broadcast can do so through a web-based graphical user interface (GUI) provided by web server software 826. Content storage device 830 provides storage for archived content already broadcast that can be re-broadcast through an on-demand request system. Content is stored and retrieved by content server software 822, which can also act as a content distribution server for a limited number of componentized player connections. If, however, a significant number of player users are anticipated for a broadcast, a separate content distribution network server or servers may be used to avoid overloading the processing subsystem 810 or the network interface 110. The content storage device may also store digitally encoded substitute commercials for download to, and use by, a broadcast server as previously described. Operation of the content server is controlled in part by the configuration data stored on database storage device 840, and in part by content provider personnel operating BCC software 828 in real-time using the previously described GUI on a PC (not shown) coupled to the processing subsystem 810. The PC may be coupled to the processing subsystem 810 locally through a local area network (not shown) or remotely through the Internet 110. Operation of the System
In order to operate the network broadcasting system 100 of Figure IA, the elements necessary to carry out a broadcast are defined and configured using the BCC software 828 of Figure 8. A broadcast is defined by configuring parameters that control the broadcast server transmission, that determine the configuration and appearance of the componentized player for each player user during a broadcast, and that determine how the content displayed by the componentized player changes or can be changed over the course of the broadcast. Content provider personnel access the BCC software 828 of Figure 8 through a web interface using a web browser (e.g., Internet Explorer) executing on a PC coupled to the Internet. The web interface is made accessible to content provider users on the Internet by web server 826. A user ID and password are entered by the content provider user to gain access to the BCC software 828, and once logged into the system, the content provider user may then navigate a series of menus through which data entry forms are accessed to enter the data necessary to configure all of the elements of a broadcast which are then saved by database server software 824 on database storage device 840. Figure 9 illustrates an example of a top level menu presented to a content provider user, in accordance with at least some preferred embodiments.
The content provider user may start by defining parameters that are downloaded to, and provide control of, the broadcast server. In at least some preferred embodiments, this includes the broadcast start and stop times, the number and types of streams available during the broadcast, the Internet address or universal resource located (URL) of any content distribution network servers that may be used to transmit the broadcast, the location within the broadcast server of any substitute broadcast content (described above) that may be switched in during the broadcast, and optionally an automated schedule for preprogrammed switching of such alternate content (e.g., alternate commercials). The alternate content may also be substituted for the original content based on either manual control or external automated control of the broadcast server using equipment external to the broadcast server.
Once the broadcast server configuration has been defined and saved to the database, the content provider user may then define the configuration of the componentized player to be seen by the player user. This includes the location of components to be downloaded as part of the componentized player, the basic appearance of the componentized player, and operational constraints on the componentized player and its components. The player components may each be stored within the backend datacenter, on a content distribution network server, on a separate server outside the network broadcasting system, or on any combination of all of these (some components at one location, some at others). The location information stored in the database and downloaded as configuration data to the player shell allows the player shell to locate the components, regardless of where they are physically stored, as long as they can be accessed over the Internet. The components may be stored as Shockwave® Flash® programs, hypertext markup language (HTML) files, and extended markup language (XML) files, as well as any number of other web-based programs and file formats. Those skilled in the art may find that other programming languages and file formats may be used to create and store player components, and the present disclosure is intended to include all such programming languages and file formats.
. A graphical tool may also be used to define componentized player configurations. In at least some illustrative embodiments a web-based player configuration tool is invoked by a content provider user. Such a tool allows the content provider user to pick components from a selection of available componentized player components, and to graphically drag and drop the selection from the graphical display of available components to a work area on the screen where a representation of the displayed componentized player is shown. Once all of the components have been ithus configured, together with any other needed configuration information {e.g., advertisement component display schedules), the configuration is saved and stored within the backend datacenter. The data may be saved in a variety of different formats such as, for example, data within a relational database, or XML data within individually saved configuration files, just to name a few.
Operational constraints defined for a componentized player may be based upon interactions and combinations of parameters that establish rules controlling whether a player user is given access to the broadcast, and how some of the player components behaves. For example, if a player user is within 200 miles of a national football league game and a blackout of the game (local televising of the game is blocked until game is sold out) is in effect, that player user may be prohibited from accessing the broadcast of the game. As shown in illustrative method 1000 of Figure 10, the content provider can configure the broadcast so that when a player user selects the broadcast (block 1002); BCC software 828 retrieves the player user's location information (block 1004) and checks the player user's location against the broadcast constraints to determine if the player user is allowed to access the broadcast (block 1006). If the player user is within a certain threshold distance from the venue, access to the broadcast is denied (block 1010), and the player user is notified of the denial (block 1012). The threshold that controls the access decision is also determined and stored into the database by the content provider user. If the player user is outside the threshold distance, access to the broadcast is allowed and the componentized player is configured for the broadcast (block 1008), thus completing the initial configuration of the componentized player (block 1014).
The location of the player user is determined by the BCC software 828 by using the player user's address, provided as part of the player user's credit card or other payment method information, as a basis for determining the latitude and longitude of the player user's residence, which for the purposes of the broadcast is presumed to be the player user's location. Existing Internet services such as Mapquest® may be used to obtain such information, though other similar resources may also be used. Alternatively, the internet protocol (IP) address of the player user's computer may instead be used as a basis for determining the coordinates of the player user's location. This geo-positional information, once determined, may be stored within the database as part of the player user's saved information for later use by the BCC software 828.
As already noted, the geo-positional information may be used to control whether a player user is "blacked out" of a broadcast. A player user may also be subject to a "white out," that is, a player user may only be allowed to access a broadcast if they are within a certain distance from a particular reference location, rather than beyond that distance as is the case with a black out. Other constraints or rules that can be used to restrict access to a broadcast based on geo-positional data may become apparent to those skilled in the art, and the present disclosure is intended to include all such constraints and rules. Geo-positional information may also be used as a basis for configuring and displaying advertisements and other componentized player components. Advertisements, for example, may be classified within a hierarchy as national, regional, and local advertisements based upon correspondingly defined markets. The content provider user may configure individual advertisement components to be used by a componentized player such that advertisement components are only downloaded and displayed on the componentized player if that particular player user's location is within the national, regional, or local marketing area as defined within the database by the content provider user. Thus, for example, if a player user is located in Houston, Texas, the componentized player would be configured to display all United States national ads, all Texas regional ads, and all Houston local ads, but not any local ads targeting the Dallas market (the Houston local ads would be shown instead).
Figure 11 shows a method 1100 that implements an advertisement component hierarchy, in accordance with at least some illustrative embodiments. The advertisement components are selected and downloaded based on the geo-positional information for the player user when the broadcast is initially selected and the downloaded player shell begins to request downloads of components (block 1101) as previously described. The BCC software 828 adjusts the base configuration, stored in the database by the content provider user, in accordance with the geo- positional constraints as also configured by the content provider user. Before an advertisement component is downloaded, BCC software 828 checks to determine if the advertisement component is categorized as a local advertisement (block 1102) and if the player user is located within the local area defined for the advertisement component (block 1104). If both conditions are met, BCC software 828 allows the advertisement component to be downloaded to the player shell (block 1110). If the component is categorized as a local advertisement, but the player user is not located within the local area, BCC software 828 disallows downloading the advertisement component, and the advertisement component is not processed any further with respect to the player shell requesting the download (block 1112).
If the advertisement component is not categorized as a local advertisement, the advertisement component is next checked to determine if it is categorized as a regional component (block 1106), and whether the player user is located within the area defined for the xegion (block 1108). If the player user is not located within the defined region, the advertisement component is not downloaded nor processed any further (block 1112). If the player user is located within the region defined for the advertisement component, BCC software 828 allows the component to be downloaded (block 1110). If BCC software 828. determines that the advertisement component is not- categorized as a regional advertisement, then the advertisement is treated as a national advertisement and BCC software 828 allows the download (block 1110). Other hierarchical structures and relative priorities within such structures may become apparent to those skilled in the art, and the present disclosure is intended to encompass all such structures and priorities.
Geo-positional information may also be combined with player user demographic data stored in the database and with viewing and usage statistics periodically sent by the componentized player to the BCC software 828. This allows viewing and usage data to be correlated not only with the player user's demographic data, but also with the player user's location, permitting a detailed assessment of the effectiveness of advertisements within specific and well-defined markets. This data may be collected and sold to advertisers as a service, in addition to the advertisement itself. Data from polls and other interactive data collection player components may also combined with the geo-positional and demographic information of the player user. Further, different levels of statistical data may be offered, each with varying levels of geographic specificity. The pricing model for each level or type of data, in at least some illustrative embodiments, reflects the level of specificity of the data provided. Thus, for example, statistical viewing data for advertisement components displayed during a particular video broadcast of a concert by a musical group would be priced higher if broken down by neighborhood over an entire city, as compared to overall viewing data without the breakdown by neighborhoods for the city where the concert was made available for viewing.
The data generated by the advertisement components and other interactive components paid for by advertisers (e.g., player user polls) can also be used to provide a variety of billing options that the content provider can offer to advertisers. Billing alternatives, in accordance with at least some illustrative embodiments, include billing by clicks, views, minutes, priority, event, date range, organization, network, geography, and player user's proximity to the event, just to name a few. Other billing alternatives may become apparent to those skilled in the art, and the present disclosure is intended to encompass all such alternatives. Once the broadcast, broadcast server, player components (including advertisements) and the player are all configured within the database, the network broadcasting system of Figure IA is ready to broadcast the configured broadcast event. Content provider personnel that monitor, operate, and moderate the event all login to the BCC software 828 of Figure 8 through the same web-based interface used to login and configure the broadcast. Different content provider users have different privileges depending on their functions, and thus have access to different capabilities.
Once logged in, content provider personnel begin by downloading configuration data to a broadcast server previously installed at the broadcast site. If necessary, substitute content is also downloaded to the broadcast server for use as previously described. Such content, in at least some illustrative embodiments, is preformatted in the broadcast format used for streaming to the internet (e.g., the wmv format). Once the downloads are completed, the broadcast configuration may be altered either by remotely controlling the broadcast server directly, or by downloading a new configuration. The broadcast itself may be started and stopped manually by content provider personnel, or automatically based on the downloaded configuration. If the broadcast is to be provided by a content distribution network (CDN) server, the CDN server may be enabled remotely so as to accept the incoming broadcast streams from broadcast server. If the CDN server is used to provide components downloaded to the componentized player, these components are downloaded to the CDN server. This allows a player user to obtain downloaded components used by the componentized player, or even the player shell itself, from the CDN server as an alternative to downloading from the backend datacenter. Once a broadcast begins and is made accessible, player users begin by going to a website
(using their web browser) where they select the broadcast for viewing. This triggers the initialization process described above for the componentized player. Once the componentized player has been downloaded, configured and activated, the player connects to one of the various broadcast streams available (based on the bandwidth of the player user's Internet connection), which may originate either at the backend datacenter (for small audience broadcasts), or from a CDN server (for large audience broadcasts). If one or more CDNs are used, the player is redirected to a CDN server by the backend datacenter and the player connects directly to that CDN. It should be noted that although the respective configurations of the broadcast server and the CDN provide all the information needed for the two to establish a connection between each other and to stream data from the broadcast server to the CDN, no data is transferred until at least one componentized player establishes a connection with the CDN.
Although the player is handed off to the CDN by the BCC software 828 for purposes of streaming content, the componentized player continues to actively communicate with the BCC software 828. A message is sent regularly (e.g., every 30 seconds) from the componentized player to the BCC software. This "heartbeat" message provides both feedback to the BCC software 828 (e.g., updated usage statistics and player user originated data) as well as a request for updates from the BCC software 828. The BCC software 828 can thus download changes when necessary to the componentized player by responding to the heartbeat message. In at least some^illustrative embodiments, a pre-programmed and downloaded schedule controls changes to the componentized player's configuration, and the heartbeat message may also be used to request a download of the componentized player components necessary to support the changes thus scheduled.
" Once a broadcast is in progress, moderators (e.g., DJs and sportscasters of a* live broadcast) may . interact with player, users via chat rooms. In at least some illustrative embodiments, the moderators login through the same web-based user interface used by the content provider to gain access to the BCC software 828 of Figure 8. The user IDs used by the moderators have privilege levels that restrict their activities to interactions with player users. In at least some illustrative embodiments, multiple tiers of moderators may be configured, in which a first level moderator can see all of the player users that are active in the chat room, including all of the moderators, but in which higher levels of moderators only see a subset of the player users participating in the chat room. Referring to the illustrative example of method 1200 (Figure 12), player users receiving a broadcast of a sporting event may send comments via chat to the sportscaster (block 1202), which are reviewed and responded to initially by a first-level moderator (block 1204). The first-level moderator then selects player users that are allowed to interact with the second-level moderator (block 1206), which may be the actual sportscaster. The selected player users are forwarded to, and can chat with, the sportscaster (block 1208), ending the moderation pre-selection process (block 1210). Moderators may also have access to the results of player user polls and other data generated based on player user responses, allowing them to comment on this information during the broadcast.
In at least some illustrative embodiments, the broadcast server stores the streamed broadcast data to a storage device (e.g., a hard disk), and once a broadcast has ended, the broadcast server uploads the recorded broadcast to the backend datacenter for storage on content storage device 830 of Figure 8. Once the broadcast has been uploaded, the archived broadcast may be made available for re-broadcast as an on-demand product. Further, as the archived broadcast is streamed to a player user, additional content may be inserted at the beginning and end of the re-broadcast, and may also be inserted at any point desired during the re-broadcast. Figure 13 shows method 1300, which describes inserting additional content in the form of streamed advertisements in this manner, in accordance with at least some illustrative embodiments. Content is requested by a player user (block 1302) and both the requested content and an advertisement schedule is retrieved. The advertisement schedule determines what additional content is used as inserted substitute content, and at what point in time each insertion of the selected additional content takes place. If one or more advertisements are scheduled as lead-in "bumper" advertisements (block 1306), the broadcast stream is switched to the source that stores the additional content in the form of advertisements (block 1308). After the inserted content broadcast has completed according to the advertisement schedule, the broadcast stream is switched back to the requested content (block 1310), and the broadcast proceeds.
If a time is reached wherein the advertisement schedule calls for more advertisements to be inserted (block 1312), the broadcast of the requested content, is paused, the broadcast stream is switched over to the source of the source- of the advertisements, and the advertisements are broadcast according to the advertisement schedule (block 1314). If the broadcast of the requested content has not yet completed (block 1316), the broadcast stream is switched back to the requested content (block 1310) and broadcast of the requested content continues until the next scheduled advertisement (block 1312). When the end of the broadcast is reached, the scheduled is checked to determine if there are trailing bumper advertisements that need to be inserted (block 1318), and if there are such advertisements scheduled, the broadcast stream is switched to the source of the advertisements and the scheduled advertisements are broadcast on the stream (block 1320). Once the trailing bumper advertisement broadcast has completed, or if there are no trailing bumper advertisements, the entire broadcast has completed (block 1322) and the stream can be terminated.
Thus, for example, a live event that was originally broadcast without commercial interruption may be re-broadcast with "bumper" ads added to the beginning and end of the broadcast and provided from an alternative source (e.g., separate wmv files) created for this purpose and stored on the content storage device 830. Additionally, commercials may be inserted where none previously existed during the re-broadcast. The stream is paused while the alternate data source provides the inserted advertisement. Because the original broadcast is paused and the added or inserted material is substituted directly into the stream without altering the archived broadcast, the advertisements may be updated or replaced with new advertisements as needed by updating or replacing the alternate source files stored on the content storage device 830.
The above discussion is meant to be illustrative of the principles and various embodiments of the present invention. Numerous variations and modifications are possible. For example, although the embodiments described in the present disclosure incorporate the Windows Media® player to provide access to streamed content using the wmv format, other media players and streaming content formats may be used and are intended to be within the scope of the present disclosure, including media players and formats that incorporate support for digital rights management. Further, although the examples disclosed primarily describe video broadcasts, it is intended that the present discloser also encompasses embodiments that provide the ability to provide audio broadcasts to listeners in the same manner. In at least some embodiments, radio stations providing audio programming may also include video of their studio activities. Many other combinations and variations of video and audio programming may be possible, and all such combinations and variations are intended to be within the scope if this disclosure. It is intended that the following claims be interpreted to embrace all such variations and modifications.

Claims

CLAIMSWhat is claimed is:
1. A method for playing streaming content in a componentized player, the method comprising: displaying a media player component configured to display the streaming content; displaying an advertisement component that provides product information; detecting a user selection of the advertisement component; and displaying another component in response to detecting the user selection without interfering with a user's access to the streaming content.
2. The method of claim 1, wherein the another component displayed in response to detecting the user selection of the advertisement component provides additional information related to the product information of the advertisement component, and wherein the another component is configured to accept input from the user.
3. The method of claim 1, further comprising displaying additional components in response to detecting the user selection.
4. The method of claim 1, further comprising downloading at least some of the three components from a backend datacenter.
5. The method of claim 4, wherein downloading at least some of the three components comprises downloading both the advertisement component and the information component before enabling the componentized player to operate.
6. The method of claim 4, wherein downloading at least some of the three components comprises downloading both the advertisement component and the information component after enabling the componentized player to operate.
7. The method of claim 4, wherein downloading at least some of the three components comprises downloading at least one component of the three components before enabling the componentized player to operate, and downloading at least one other component of the three components after enabling the componentized player to operate.
8. A system, comprising: a processor; a memory coupled to the processor; and instructions stored in the memory that, when executed by the processor, perform a method for playing streaming content in a componentized player, the method comprising: displaying a media player component configured to display the streaming content; displaying an advertisement component that provides product information; detecting a user selection of the advertisement component; and displaying another component in response to detecting the user selection without interfering with a user's access to the streaming content.
9. The system of claim 8, wherein the other component displayed in response to detecting the user selection of the advertisement component provides additional information related to the product information of the first advertisement component.
10. The system of claim 8, wherein the method further comprises displaying additional components in response to detecting the user selection.
11. The system of claim 8, wherein the method further comprises downloading at least some of the three components from a backend datacenter.
12. The system of claim 11, wherein downloading at least some of the three components comprises downloading both the advertisement component and the information component before enabling the componentized player to operate.
13. The system of claim 11, wherein downloading at least some of the three components comprises downloading both the advertisement component and the information component after enabling the componentized player to operate.
14. The system of claim 11, wherein downloading at least some of the three components comprises downloading, at least one component of the three components before enabling the componentized player to operate, and downloading at least one other component of the three components after enabling the componentized player to operate.
15. Software instructions on information carrier media, wherein the software instructions, when executed in a computer system, cause the computer system to: display a media player component configured to display the streaming content; display an advertisement component that provides product information; detect a user selection of the advertisement component; and display another component in response to detecting the user selection without interfering with a user's access to the streaming content.
16. The software instructions of claim 15, wherein the other component displayed in response to detecting the user selection of the advertisement component provides additional information related to the product information of the first advertisement component.
17. The software instructions of claim 15, wherein the software instructions further cause the computer system to display additional components in response to detecting the user selection.
18. The software instructions of claim 15, wherein the software instructions further cause the computer system to download at least some of the three components from a backend datacenter.
19. The software instructions of claim 18, wherein the software instructions further cause the computer system to download both the advertisement component and the information component before enabling the componentized player to operate.
20. The software instructions of claim 18, wherein the software instructions further cause the computer system to download both the advertisement component and the information component after enabling the componentized player to operate.
21. The software instructions of claim 18, wherein the software instructions further cause the computer system to download at least one component of the three components before enabling the componentized player to operate, and to further download at least one other component of the three components after enabling the componentized player to operate.
22. A method, comprising detecting a request to broadcast stored content, the stored content having an associated content insertion schedule and associated additionaLcontent; broadcasting the stored content; pausing the broadcast of the stored content according to the content insertion schedule; resuming the broadcast of the stored content according to the content insertion schedule; and u broadcasting at least a portion of the additional content in place of the stored content while the broadcast of the stored content is paused.
23. The method of claim 22, further comprising broadcasting at least a portion of the additional content before the broadcast of the stored content begins.
24. The method of claim 22, further comprising broadcasting at least a portion of the additional content after the broadcast of the stored content ends.
25. A method, comprising: displaying a media player component as part of a componentized player, the media player component configured to display streaming content; and displaying an advertisement component of the componentized player, the advertisement component selected for display from a plurality of advertisement components based upon geo- positional information associated with a user of the componentized player.
26. The method of claim 25, further comprising using location information of the user to determine latitude and longitude values that are included as part of the geo-positional information associated with the user.
27. The method of claim 25, wherein the advertisement component is selected additionally based upon geo-positional information associated with the advertisement component.
28. The method of claim 27, further comprising using a defined geographic area to determine a range of latitude and longitude values that are included as part of the geo-positional information associated with the selected advertisement component.
29. The method of claim 27, wherein the geo-positional information associated with the selected advertisement component delimits a targeted geographic market.
30. The method of claim 25, further comprising deriving the geo-positional information associated with the user from an address associated with credit card information provided by the user.
31. The method of claim 25, further comprising deriving the geo-positional information associated with the user from an Internet Protocol (IP) address of a system on which the user is operating the componentized player.
32. The method of claim 25, further comprising organizing a plurality of geographic areas into a plurality of sets of geographic areas and a plurality of subsets of geographic areas, wherein at least some geographic sets comprises at least some geographic subsets.
33. The method of claim 32, wherein a national geographic area comprises one or more regional subsets, and each of the regional subsets comprise one or more local geographic subsets, and wherein the componentized player operated by the user can select a national advertisement component if the user is located within the national geographic area defined by the geo-positional ' information of the national advertisement component.
34. The' method of claim 33, wherein the componentized player operated by the user selects one of a plurality of regional advertisement components if the user is located with a regional geographic area defined by the geo-positional information of the selected regional advertisement component.
35. The method of claim 33, wherein the componentized player operated by the user selects one of a plurality of regional advertisement components if the user is located with a local geographic area defined by the geo-positional information of the selected local advertisement component.
36. A method for controlling access to content, comprising: defining a geographic constraint based upon geo-positional information associated with a user of a componentized player, and based upon geo-positional information associated with the content; and authorizing a data transmissions to a componentized player if the geographic constraint is not violated
37. The method of claim 36, wherein the data transmission comprises a broadcast of content for display by a media player component of the componentized player.
38. The method of claim 36, wherein the data transmission comprise a download of an advertisement component for display by the componentized player.
39. The method of claim 36, further comprising using location information of the user to determine latitude and longitude values that are included as part of the geo-positional information associated with the user.
40. The method of claim 36, further comprising using a defined geographic area to determine a 5 range of latitude and longitude values that are included as part of the geo-positional information associated with the selected content.
41. The method of claim 36, wherein the geographic constraint defines an area within which the data transmission is authorized.
42. The method of claim 36, wherein the geographic constraint defines an area outside of which 10 the data transmission is authorized.
43. The method of claim 36, further comprising deriving the geo-positional information associated with the user from an address associated with credit card information provided by the user.
44. The method of claim 36, further comprising deriving the geo-positional information 15 associated with the user from an Internet Protocol (IP) address of a system on which the user is operating the componentized player.
45. A method for providing streaming content in a componentized player, the method comprising: .-, initializing a player shell comprising one or more core components that permit the player ' 20 shell to configure and operate additional components of the componentized player; configuring the additional components according to configuration information associated with a broadcast of the streaming content; displaying one or more of the additional components according to the configuration information, at least one of the additional components comprising a media player component 25 configured to display the streaming content; and enabling operation of the additional components, wherein operation of an additional component does not interrupt the display of the streaming content by the media player component.
46. The method of claim 45, further comprising displaying different additional components at different times based on a schedule included with the configuration information.
30 47. The method of claim 45, further comprising displaying different additional components at different times based on input by a user of the componentized player.
48. The method of claim 45, wherein the additional components comprise a component selected from the group consisting of an advertisement component, an information ticker component, a subtitle component, a statistical data gathering component, a poll component, a poll
35 component, a forum component, a chat room component, a comment component, a crowd response simulator component, an on-line shopping component, a donation component, and a video game component.
49. A system, comprising: a processor; a memory coupled to the processor that stores a componentized player configured to execute on the processor; wherein the componentized player comprises a media player component that presents streaming content to a user, and also comprises one or more additional components; and wherein the configuration, operation, and reconfiguration of the one or more additional components do not disrupt or interrupt the presentation of streaming content to the user by the media player component.
50. The system of claim 49, further comprising configuration information that determines the configuration of the one or more additional components.
51. The system of claim 50, wherein the configuration information comprises a plurality of configuration files.
52. The system of claim 49, wherein the componentized player operates within a web browser.
53. The system of claim 49, wherein the additional components comprise a component selected from the group consisting of an advertisement component, an information ticker component, a subtitle component, a statistical data gathering component, a poll component, a poll component, a forum component, a chat room component, a comment component, a crowd response simulator component, an on-line shopping component, a donation component, and a video game component.
54. A method, comprising: enabling a broadcast server to originate a content stream from a first source; configuring a switching schedule stored on the broadcast server and used by the broadcast server to control switching between content sources; switching the origin of the content stream from the first source to a second source at a scheduled start time, the second source comprising substitute content; and switching the origin of the content stream from the second source to the first source at a scheduled end time.
55. A method, comprising: configuring a broadcast server to provide streaming content over a network; selecting one source of a plurality of content sources as the origin of the streaming content; automatically controlling the selecting of the one source based upon a schedule configured before enabling the broadcast server to provide the streaming content; and enabling the broadcast server to provide the streaming content.
56. The method of claim 55, further comprising altering the schedule after the broadcast server has been enabled.
57. The method of claim 56, wherein altering the schedule comprises altering the schedule across the network from a remote system.
58. The method of claim 55, wherein configuring the broadcast server comprise configuring the broadcast server across the network from a remote system.
59. A method, comprising: enabling a componentized player to operate, the componentized player and comprising at least two components; displaying a media player component configured to display streaming content; and displaying a chat room component hosted by a plurality of moderators; wherein at least one of the plurality of moderators determines which of one or more componentized player users participating in a chat session are permitted to communicate with at least one other moderator of the plurality of moderators.
60. A network broadcast server, comprising: a video input circuit configured to receive video; an audio, input circuit configured to receive delayed audio that is out of synchronization with the video; a first-in/first-out (FIFO) buffer memory configured to store samples of the video; a formatter coupled to the output of the FIFO and to the output of the audio input circuit; wherein the formatter combines the delayed audio with the video samples stored in the FIFO to generate formatted content capable of being broadcasted onto a network; and wherein the formatted content generated by the formatter comprises the delayed audio and video samples output by the FIFO, the delayed audio re-synchronized to the video samples output by the FIFO.
61. The network broadcast server of claim 60, wherein the audio input circuit is an analog-to- digital converter.
62. The network broadcast server of claim 60, wherein the video input circuit is an analog-to- digital converter.
63. A system, comprising: a componentized player coupled to a network, the componentized player comprises a media player component and at least one additional component; a broadcast server coupled to a network, the broadcast server provides formatted streaming content across the network which is made available to one or more componentized players. a backend datacenter coupled to the network, the backend datacenter configures and controls the broadcast server, and controls the configuration and appearance of the componentized player; wherein the additional component of the componentized player is configured for display and operation by the backend datacenter when the componentized player is initially configured; and wherein the configuration and appearance of the additional component are changed after the componentized player is initially configured and enabled for operation;
64. The system of claim 63, wherein the configuration and appearance of the additional components are changed by commands issued from the backend datacenter.
65. The system of claim 63, wherein the additional components are changed based on a schedule and component configuration maintained within the componentized player.
66. The system of claim 65, wherein the schedule is downloaded from the backend datacenter, across the network, and into the componentized player.
67. The system of claim 65, wherein the component configuration is downloaded from the backend datacenter, across the network, and into the componentized player.
68. The system of claim 63, wherein the additional components are downloaded from the backend datacenter, across the network, and into the componentized player. J,
69. The system of claim 63, wherein operation of, and changes to, the additional components do not interrupt operation of the media player component and do not interrupt presentation of the content displayed by the media player component.
PCT/US2006/002620 2005-01-24 2006-01-23 Network broadcast system and method WO2006079102A2 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US64634705P 2005-01-24 2005-01-24
US60/646,347 2005-01-24
US71799005P 2005-09-16 2005-09-16
US60/717,990 2005-09-16

Publications (2)

Publication Number Publication Date
WO2006079102A2 true WO2006079102A2 (en) 2006-07-27
WO2006079102A3 WO2006079102A3 (en) 2006-09-14

Family

ID=36693022

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2006/002620 WO2006079102A2 (en) 2005-01-24 2006-01-23 Network broadcast system and method

Country Status (1)

Country Link
WO (1) WO2006079102A2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009140828A1 (en) * 2008-05-23 2009-11-26 广州视源电子科技有限公司 Method for generating streaming media increment description file and method and system for cutting in multimedia in streaming media

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6351736B1 (en) * 1999-09-03 2002-02-26 Tomer Weisberg System and method for displaying advertisements with played data
US20020095339A1 (en) * 2000-11-28 2002-07-18 Galloway Richard L. Methods for enhancing broadcast media advertising
US20050154636A1 (en) * 2004-01-11 2005-07-14 Markus Hildinger Method and system for selling and/ or distributing digital audio files

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6351736B1 (en) * 1999-09-03 2002-02-26 Tomer Weisberg System and method for displaying advertisements with played data
US20020095339A1 (en) * 2000-11-28 2002-07-18 Galloway Richard L. Methods for enhancing broadcast media advertising
US20050154636A1 (en) * 2004-01-11 2005-07-14 Markus Hildinger Method and system for selling and/ or distributing digital audio files

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009140828A1 (en) * 2008-05-23 2009-11-26 广州视源电子科技有限公司 Method for generating streaming media increment description file and method and system for cutting in multimedia in streaming media
US20110270831A1 (en) * 2008-05-23 2011-11-03 Xiang Xie Method for Generating Streaming Media Value-Added Description File and Method and System for Linking, Inserting or Embedding Multimedia in Streaming Media

Also Published As

Publication number Publication date
WO2006079102A3 (en) 2006-09-14

Similar Documents

Publication Publication Date Title
US9438966B2 (en) System and/or method for distributing media content and providing an option to maintain an advertising experience
US8583758B2 (en) Network based format conversion
US9100547B2 (en) Accessing broadcast media
US8893179B2 (en) Apparatus and methods for providing and presenting customized channel information
US20240048639A1 (en) System and method for remote cross platform portable simulcast network
US20060085816A1 (en) Method and apparatus to control playback in a download-and-view video on demand system
US20070174471A1 (en) Secure, continous, proxy-optimized, device-to-device data download reception system and method of use
US20070271587A1 (en) System and method for collaborative, peer-to-peer creation, management & synchronous, multi-platform distribution of profile-specified media objects
EP1382173B1 (en) Data distribution system
JP6214718B2 (en) Content organization for assembling customized content streams
US20070124781A1 (en) Networked content storage
US20070124779A1 (en) Networked PVR system
US20050154599A1 (en) User terminal, media system and method of delivering objects relating to broadcast media stream to user terminal
US20050050070A1 (en) Daypart guide workflow
CN104620591A (en) Method and system for dynamically inserting content into streaming media
JP2004514304A (en) Consumer access system and method of providing the same
WO2008157401A1 (en) Internet protocol television
CN102640512A (en) Bookmark calibration for video on demand applications incorporating dynamic advertising
US20130104180A1 (en) Method and system for delivering interactive content
US12075137B2 (en) Subsequent look media presentation on a playing device
JP4481939B2 (en) Data distribution device
US20030187953A1 (en) Method of preparing and integrating set programming for the internet
US20020013947A1 (en) Provision of broadcast network services
WO2005101842A1 (en) Programme content delivery
US20110258676A1 (en) Interactive Video Subscription Player

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application
122 Ep: pct application non-entry in european phase

Ref document number: 06719468

Country of ref document: EP

Kind code of ref document: A2