This invention relates generally to the electronic distribution of media content. More particularly, this invention relates to a browser based integration of broadcast television and internet content.
A web browser is a software application for traversing, retrieving and presenting information resources on the World Wide Web. One resource that may be accessed with a web browser is streamed video content. Traditionally, web sites provide this content to a client computer by streaming it over the Internet using a dedicated connection or pipe. Each user who wants to watch the video content secures a dedicated connection. If many users want to watch the same content at the same time, it results in duplicated data being sent to each user's computer. When a major event or a special program is being shown, this solution does not scale well and results in over all poor performance for the user. In addition, this solution requires vast bandwidth, which becomes expensive for the broadcaster.
A computer may receive live television content if the computer is equipped with a hardware television tuner and a software television player that presents the received television content. This represents a standalone hardware and software channel. As a result, the content is not integrated with other resources, such as information available on the internet.
It would be desirable to combine broadcast television with internet content in a browser to produce a richer and more personalized viewing experience of live broadcast content.
A computer readable storage medium includes executable instructions to adapt live broadcast content for display within a browser. The live broadcast content is displayed within the browser. Internet content related to the live broadcast is also supplied within the browser. Television events that include live broadcast content and corresponding internet content are shared by a group of users. Broadcast content and internet content consumption is tracked.
The invention is more fully appreciated in connection with the following detailed description taken in conjunction with the accompanying drawings, in which:
Like reference numerals refer to corresponding parts throughout the several views of the drawings.
The system 100 also includes a television broadcast source 108. The television broadcast source may be a cable signal provider, a satellite signal provider or an over-the-air signal provider. The broadcast signal may reach a client computer 102_1 by any of these techniques. For example, a cable signal may be received at a TV tuner 118 via a cable link 107. Alternately, an over-the-air signal may be communicated from antenna 109 (or satellite) to antenna 111 (or satellite dish). The particular TV broadcast technique utilized with the invention is insignificant. What is significant is that a standard broadcast signal is combined with internet content to enhance the user experience associated with a broadcast event. The utilization of a broadcast signal avoids the scaling problems associated with prior art streamed events.
Each client computer 102 includes standard components, such as a central processing unit 110 and input/output devices 112 connected via a bus 114. The input/output devices 112 may include a keyboard, mouse, display, printer, and the like. An antenna 111 and associated television tuner 118 may be connected to a port of an input device 112. Alternately, the TV tuner 118 may be a card within the computer 102 (e.g., connected directly to bus 114). The TV tuner 118 allows television signals to be received by the computer 102. A network interface circuit 116 is also connected to the bus 114. The network interface circuit 116 provides interconnectivity to a computer network.
Television tuners rely upon dedicated software to present broadcast content to a user at a client computer. Thus, for example, a window on a monitor of a computer may display broadcast content. In this case, the broadcast content represents a standalone experience. The invention enhances this experience by incorporating broadcast content into a standard browser, thereby removing the need for an independent application. As a result, the browser can display the broadcast content along with internet content. Typically, the internet content is related to the broadcast content, as discussed below and therefore enhances the viewing experience.
As shown in
In one embodiment, the broadcast adapter module 122 is implemented as a vector and raster graphics player in communication with a client side module operating as a content server. The emulated content server delivers the broadcast television content to the player, which displays the content in a browser. For example, the vector and raster graphics player may be an Adobe® Hash® player (hereinafter Flash). Flash is a widely used multimedia platform that allows one to add animation and interactivity to web pages. Flash also allows one to integrate video into web pages and to develop rich internet applications. Flash has a scripting language called ActionScript® (hereinafter ActionScript). ActionScript is a scripting language for controlling vector animations. ActionScript may be used to connect to servers. In this case, instead of the server being remote, the server is emulated to be on the local host or client. The Flash NetConnection class may be used to create a bidirectional connection between a Flash Player and a Flash Media Server or an application server running a Flash Remoting class. In this case, the server is an emulated content server module on the client.
The broadcast adapter module 122 may also be implemented as a client-side TV Tuner class native to Flash. Flash already has support for client-side classes such as a camera and microphone. These classes are unique in Flash since they specifically communicate with devices that are connected to the user's computer. This implementation provides a clean architecture built upon existing precedence. It also allows for a device process to be started on demand.
The broadcast adapter module 122 may also be implemented by utilizing existing camera and microphone devices to process the broadcast content. That is, existing camera and microphone content processing modules are used to process the video and audio streams of broadcast content. For example, client-side ActionScript classes may be used to emulate camera and microphone devices, which receive a TV tuner stream.
Alternately, the broadcast adapter module 122 may be implemented with executable instructions that transform the broadcast content into an emulated local file that is executed by a vector and raster graphics player. For example, a Flash player may process this content as it would process other audio/visual files.
The broadcast adapter module 122 may also be implemented as a custom browser plug-in. For example, the custom browser plug-in may be combined with ActiveX®, Microsoft's reusable software components that perform specified functions in a programming language independent manner.
Solutions may also be implemented with Microsoft's Silverlight®, which is a programmable web browser plug-in that enables features such as animation, vector graphics and audio-video playback that characterize rich internet applications. Other solutions may be implemented using JavaFX®, which is a software platform for creating and delivering rich internet applications that operate across a wide variety of connected devices. JavaFX is fully integrated with the Java Runtime Environment (JRE). JavaFX applications run on any desktop and browser that runs the JRE and on top of mobile phones running Java ME.
The Flash Player 6 and later versions support video playback. Video can be provided to a Flash Player in a number of ways. First, one can embed video within a SWF file by using SWF video tags. SWF files, an acronym for ShockWave Flash files, are supported by the Adobe Flash player and are identified by a “.swf” file name extension. Video can also be delivered as a video stream over Real Time Messaging Protocol (RTMP), which is a protocol supported by Adobe® for streaming audio, video and data over the internet between a Flash player and a server. In one embodiment, the video data is loaded into an FLV file format. FLV is a container file format used to deliver video over the internet for use by a Flash player. An FLV file can be directly loaded into a Flash Player using the NetStream.play ActionScript method. This method is only available in Flash Player 7 and later. The SWF and FLV file formats share a common video encoding format. As of SWF 7, a video format called screen video is available. Screen video is a simple lossless sequential-bitmap format with blocked inter-framing. It is designed for sending captures of computer screens in action, but can be leveraged for streamed TV video.
In the embodiment of
Returning to
Server 104 includes standard components, such as a central processing unit 160 connected to input/output devices 164 via a bus 162. A network interface circuit 166 provides connectivity to client devices 102_1 through 102_N and other servers (e.g., 104_N). The server 104 also includes a memory 170 to store modules that implement various functions associated with the invention, as discussed below.
The social network support module 172 and/or social network module 122 operate to facilitate various social interactions associated with a broadcast. These interactions may include chat, instant messaging, wall posts, quizzes, user ratings and newsfeeds served via the internet. Again, this is achieved in conjunction with a broadcast event as opposed to streaming video with its associated limitations for large audiences. The approach of the invention improves the user experience and eliminates costly bandwidth requirements of streaming video over the internet.
One type of social network event supported by the social network module 124 is a television event called a TVchat. A TVchat is a broadcast event simultaneously viewed and chatted about by a group of users. In particular, a TVchat includes live broadcast content and associated internet content shared by the group of users. The associated internet content may be chat information, targeted advertising, links to other websites, and the like.
Private Televents are organized by an individual for a select group of friends. Once a Televent commences, users visit the host's main page called the “Living Room” to watch the show together and chat in an event-specific chat room, such as panel 408 of
Public Televents are open to all users. An example of a public Televent is a premier of a new show that a broadcaster wishes to promote by hosting a Televent that any subscriber can attend. The site also supports broadcaster sponsored Televents, where the look and feel of the Televent page is defined by the broadcaster.
A Living Room is the main page of a user. A Living Room typically contains a list of friends online and what they are watching. Preferably, the Living Room includes a customizable background or skin. Users can personalize their living room and their experience applying a skin to the living room, assembling virtual living room objects and arranging the living room display to suit their tastes.
Returning to
Social data collected allows the metrics analytics module 174 to provide suggestions on where to purchase associated products or view other relevant information related to what the user is watching. For example, users who liked show X may be advised about a similar show Y. The metric analytics module 174 may also track information about users who visit a recommended web site to purchase a sponsored product featured in a broadcast event.
The metrics analytics module 174 captures all user behavior (within applicable privacy laws) and is therefore able to provide real-time analytics about television-watching behaviors. Statistics are collected across the user base for a given user or for a group of users. Additionally, data is collected over time, during a specific episode, across multiple episodes of a series or a sports team local airing. Specific likes and dislikes of a given user can also be collated to help recommend websites. This level of analytics surpasses anything currently available that measures television-watching behavior.
An embodiment of the invention may include a virtualization module 128. The virtualization module 128 includes executable instructions to render virtual objects and/or services during a broadcast. The virtualized content appears as interact content associated with a broadcast event. In one embodiment, the virtualization module 128 receives information from a virtualization control module 176 resident on server 104. The virtualization module 128 allows a user to personalize a viewing experience. Virtual objects, such as a “poster” for a living room wall or a “drink” that one user buys for another can be purchased via micro-transactions or may be “sponsored” by external entities. For example, the Coca Cola Company might give away virtual Coke® bottles to users. Virtual services provide for an enhanced user experience. For example, a virtual concierge may be used to inform a user of unique information about a show. The virtualization control module 176 may also be used for virtual world advertising promotion and placement. This operates as an extension beyond standard banner ads and sponsored links. Virtualization operations may be combined with rewards programs. For example, a user can earn currency online by watching a certain number of hours of a show or channel or by displaying a sponsored link. This currency can then be used to purchase virtual objects and services.
The enhanced processing module 130 at client 102_1 and/or server 104_1 includes executable instructions to support any number of additional features that leverage the functionality of the invention's combined broadcast television and internet content. For example, interactive internet content can enhance an otherwise standard live broadcast. Consider a situation where the director or star of a show comments on the show through an interne feed as the show is broadcasted. Alternatively, hosts that are qualified or just general users of the site can chat about the live TV broadcast in a way that provides interest for other viewers. If two well known movie critics are chatting during a movie, users may tune into the broadcast on the site to supplement their viewing experience. Alternately, users can develop a community or following on their own, based on their knowledge and expertise. An example of this is two users that are fans of a particular football team and are very knowledgeable about statistics, the sport, etc. These users might host a public Televent every time the team plays a game and other users could attend those public Televents and follow the hosts' commentary.
The enhanced processing module 130 may also support mobile entry points via Short Message Service (SMS) messaging or smart phone applications. SMS integration is enabled with a short code for messaging to the site (e.g., server 104_1) and notifications from the site based on user preferences. Smartphone applications and the mobile version of the website allow users to access a subset of the site features on their mobile device, e.g. one can follow a particular Televent when one is not able to watch on a PC or a television, creating a Televent, inviting friends, posting to the personal wall, etc.
The enhanced processing module 130 may also be configured to support peer-to-peer streaming. One of the issues with streaming of video content over the internet is that numerous users go to the same site at the same time to download the same bandwidth-intensive content. This means that servers optimized for sub-peak load will typically fail or significantly degrade the video experience when high traffic exceeds the server optimization level. The enhanced processing module 130 may be used to allow users without a television tuner or with a bad broadcast signal in their watching area to stream content from a peer who is watching the same content received via broadcast. If a high number of users were to do this it would put some strain on internet bandwidth, but that strain would likely be randomly distributed between internet service providers due to the peer-to-peer nature of this method.
The enhanced processing module 130 may also be used to exploit the vertical blanking interval (VBI). The vertical blanking interval is a dead space between frames of video sent and rendered on a television set. Information like closed-captioning text is currently sent in the VBI. In older television sets, this interval needed to be longer than is required today. As a result, now there is an opportunity to send additional data in the broadcast signal. The enhanced processing module 130 deciphers and renders the additional VBI information for viewers.
The system 100 may also be implemented with a server guide module 178 on server 104 and a corresponding client guide module 132 on client 102. Currently, computer TV players extract information from a broadcast to build a channel map—the list of channels, frequencies, and information about what's on what channel at a given time and in the future. The process of collecting this information is very time-consuming as the whole broadcast spectrum must be scanned. The server guide module 178 may use channel map information obtained over the internet and pass that information to the client guide module 132 in order to greatly reduce the amount of processing that is required from the broadcast message and to create a faster, more seamless connection.
The server guide module 178 may provide program information to users in different ways depending on an internal preference algorithm. The traditional Electronic Programming Guide (EPG) that television viewers are familiar with provides a grid pattern with channels listed down the left side, contiguous timeslots listed across the top, and television program information listed in the table created by the two axes.
The server guide module 178 may be configured to provide information that does not rely upon a time axis. For example, content views may be supplied based on relevance to certain factors: user-defined or “intelligent/user-behavior determined” selection criteria. All information available may not be visible at one time, and is dependent on the user interface implementation.
The user can specify different selection criteria and the broadcast material will be displayed accordingly. Multiple selection criteria or keywords searches, rather than selection from a drop down list, can also be utilized. Finally, intelligent filters may recommend viewing material to the user using settings or information entered by the user. Other analytics that track the user's behavior on the site may also be used. Some of the selection criteria can include:
An embodiment of the present invention relates to a computer storage product with a computer readable storage medium having computer code thereon for performing various computer-implemented operations. The media and computer code may be those specially designed and constructed for the purposes of the present invention, or they may be of the kind well known and available to those having skill in the computer software arts. Examples of computer-readable media include, but are not limited to: magnetic media such as hard disks, floppy disks, and magnetic tape; optical media such as CD-ROMs, DVDs and holographic devices; magneto-optical media; and hardware devices that are specially configured to store and execute program code, such as application-specific integrated circuits (“ASICs”), programmable logic devices (“PLDs”) and ROM and RAM devices. Examples of computer code include machine code, such as produced by a compiler, and files containing higher-level code that are executed by a computer using an interpreter. For example, an embodiment of the invention may be implemented using JAVA®, C++, or other object-oriented programming language and development tools. Another embodiment of the invention may be implemented in hardwired circuitry in place of, or in combination with, machine-executable software instructions.
The foregoing description, for purposes of explanation, used specific nomenclature to provide a thorough understanding of the invention. However, it will be apparent to one skilled in the art that specific details are not required in order to practice the invention. Thus, the foregoing descriptions of specific embodiments of the invention are presented for purposes of illustration and description. They are not intended to be exhaustive or to limit the invention to the precise forms disclosed; obviously, many modifications and variations are possible in view of the above teachings. The embodiments were chosen and described in order to best explain the principles of the invention and its practical applications, they thereby enable others skilled in the art to best utilize the invention and various embodiments with various modifications as are suited to the particular use contemplated. It is intended that the following claims and their equivalents define the scope of the invention.