Corresponding reference characters indicate corresponding parts throughout the drawings.
Referring now to the drawings,
In
According to aspects of the invention, a portable computing device 112 also executes media player application 110, or a reduced version of media player application 110, for rendering media content. The portable computing device 112 may be a PDA 112A, mobile phone 112B, network media player or gaming system 112C (and associated monitor), laptop computer 112N, or the like. In this instance, portable computing device 112 may also maintain its own media library 108 containing media content files for rendering thereon. Although illustrated as communicating via network 104, it is to be appreciated that a number of wired and wireless network formats are available to enable communication between local computer 102 and the remote portable computing device 112. For example, portable computing device 112 and local computer 102 may be connected via a USB connection, Bluetooth, or a wireless network connection. Moreover, those skilled in the art are familiar with synchronizing content and information between computing device 102 and computing device 112.
Referring further to
In one embodiment, an online media content provider such as remote media service 116 utilizes one or more servers 118, also coupled to the network 104. The remote media service 116 includes a memory area, illustrated here as a database 120 associated with server 118. The remote media service 116 maintains a catalog of available media files, that is, a remote service media library, in database 120. The computer 102 (or remote computing device 112) may access the server 118 (and the information in the database 120) via network 104. For instance, the digital media files in media library 108 contain video or other media content downloaded from database 120 and adapted for rendering on computer 102. Server 118 and computer 102 communicate in the illustrated embodiment using, for example, the hypertext transfer protocol (HTTP). It is to be understood that remote computing device 112 may also access server 118 through computer 102 or directly via network 104.
As described above, the system 100 of
Although described primarily in the context of video media files, aspects of the invention may be applied to various forms of digital media, including video and multimedia files (e.g., movies, movie trailers, television shows, etc.), audio files (e.g., music tracks, news reports, audio web logs, audio books, speeches, comedy routines, etc.), media broadcasts (e.g., webcasts, podcasts, audiocasts, videocasts, video blogs, blogcasts, etc.), and images.
The media system 100 implements ad management in accordance with aspects of the invention. As described above, computer 102 executes media player application 110 for rendering one or more media files. In this instance, media library 108, which may be stored on the hard drive of computer 102 or a removable storage device associated with the computer, contains one or more media files. In addition, remote library 120 contains one or more media files. Although library 120 is remote from computer 102, its media files are accessible by media player application 110 via network 104. The system 100 operates on one or more media items selected from a collection or multiple collections (e.g., library 108 and/or library 120) of media items selected for consumption by the user. Although sometimes referred to as a playback, it is to be understood that media player application 110 may render media files not only by playing but also by other means (e.g., viewing, accessing, etc.). Selected media files may be further downloaded from computer 102 to portable computing device 112 (or downloaded directly from remote media service 116 via network 104) for rendering remotely. In one embodiment, portable computing device 112 implements MTP (Media Transfer Protocol) available from Microsoft Corporation for transferring media files and their associated metadata back and forth between computer 102 and portable computing device 112.
One of the challenges of synchronizing video to portable device 112 is the fact that device content usually needs to be encoded at a lower resolution than content rendered on local computer 102. In one embodiment, relatively higher resolution video files for computer 102 are transcoded into device-friendly, lower resolution files during synchronization. Because the transcoding process may slow down the sync process and may not support digital rights management, an alternative embodiment seamlessly delivers a device-friendly file along with the primary media file. In this instance, the device file is associated with the primary file within media player application 110. At sync time, this device file is synchronized transparently instead of the primary file.
Although described in connection with an exemplary computing system environment, aspects of the invention are operational with numerous other general purpose or special purpose computing system environments or configurations. The computing system environment is not intended to suggest any limitation as to the scope of use or functionality of aspects of the invention. Moreover, the computing system environment should not be interpreted as having any dependency or requirement relating to any one or combination of components illustrated in the exemplary operating environment. Examples of well known computing systems, environments, and/or configurations that may be suitable for use in embodiments of the invention include, but are not limited to, personal computers, server computers, hand-held or laptop devices, multiprocessor systems, microprocessor-based systems, set top boxes, programmable consumer electronics, PoP devices, mobile telephones, network PCs, minicomputers, mainframe computers, distributed computing environments that include any of the above systems or devices, and the like.
Referring next to
Advantageously, MTP permits enumerating, reading, and writing files. In addition, computer 102 and portable device 112 exchange metadata via MTP, transfer licenses or tokens for establishing user rights and enforcing ad playback, and permit custom commands to be defined. These functions are available when docking portable device 112 or otherwise connecting it to computer 102. In this manner, aspects of the present invention track the number of times either computer 102 or portable device 112, or both, renders a particular media file and overcome problems caused by the portable device 112 being offline or caused by the sync infrastructure itself.
Referring next to
In addition to the selected media content 126, one or more predetermined media content files 134, such as video advertisements, are also downloaded to the user's computer 102 from a library or catalog 136 of available ads or other predetermined media content (e.g., the remote service library of database 120) for rendering via playback engine 128. The ads may be randomly selected or targeted based on, for example, user information, or targeted based on the selected content. As shown in
In one embodiment, the local computer 102 executes computer-executable instructions implementing a client application in the form of a content insertion engine 140. The content insertion engine 140, as shown in
Once the content downloads are complete, the selected media content file 126 becomes available for decrypting and rendering by the playback engine 128. When the user selects the downloaded content for playback, an event is raised to the content insertion engine 140. In response to this event, content insertion engine 140 retrieves predetermined content file 134 from the ad cache 138 and sends it to playback engine 128 for rendering or otherwise instructs playback engine 128 to begin its playback.
According to aspects of the invention, a client application such as content insertion engine 140 executed by local computer 102 also supports ad functionality on the portable device 112. Although illustrated separately, it is to be understood that this client application may also implement playback engine 128 for rendering media content on computer 102. Augmenting the client application at computer 102 as contemplated herein supports ad delivery, insertion, and reporting on portable device 112 with minimal changes to the device 112. In other words, the local computer client does not require porting the business logic of the ad client to the portable device 112. Moreover, the client acts as a single aggregator on computer 102 for ad report caching and impressions. Thus, portable device 112 is not required to maintain a cache of ads on its relatively limited storage.
In one embodiment, content insertion engine 140 (i.e., a PC ad client) provides, at sync time, a list of ads or other predetermined media content files 134 to play with selected media content 126 for portable device 112. Those skilled in the art are familiar with existing mechanisms to select the particular ads to be shown (e.g. an ad manifest). The local computer sends both predetermined media content 134 and selected media content 126 to portable device 112 in a form resembling a playlist 144 (see
It is to be understood that one or more ads or other predetermined media content files 134 may be scheduled for playback at any time relative to playback of selected media content file 126 (e.g., as bumper ads, interstitial ads, or both). In the context of audio files, for example, predetermined ad entry points may occur at selected song boundaries to enable a listening experience similar to radio.
The ad insertion component of content insertion engine 140 implements a state machine, for example, that runs in a background thread within media player application 110 and relies on the player's object model to monitor playback and insert ads. The insertion engine 140 may also incorporate anti-tampering measures to prevent users from bypassing ads. For example, the client may enforce playback by disabling the transport controls of media player application 110 or simply requiring playback for a certain amount of time (e.g., the duration of an ad being played). This effectively negates the benefits of skipping or fast forwarding through the ad.
Advantageously, aspects of the invention provide an enforcement mechanism for ensuring that advertisements and other predetermined content may not be circumvented by the user when such files are downloaded to the user's computer 102. This enforcement mechanism deters the user from skipping, fast forwarding, fast reversing, or otherwise circumventing the rendering of the predetermined content file 134 by preventing playback of selected content file 126.
For example, content insertion engine 140 also monitors the playback of predetermined content file 134. The content insertion engine 140 acquires a playback token, digital rights management (DRM) license, or the like in response to the ad playback event, which indicates that the advertisement has been rendered. The selected media content file 126 may then be decrypted with a key included with the playback token or DRM license. Those skilled in the art are familiar with several encryption/decryption schemes that are suitable for implementing aspects of the invention. Advantageously, aspects of the invention thus provide the benefits of higher quality video and the like associated with downloading media content while preventing the predetermined media content file 134 from being skipped or otherwise circumvented by the user during playback. In addition, locally caching the predetermined media content 134 and an associated token allows offline ad delivery and enforcement.
Although described in the context of implementing the content insertion engine 140 on computer 102 as a PC client, it is to be understood that the ad insertion and enforcement functionality described above may be performed by a portable client content insertion engine executed on portable device 112 (see
As shown in
The playlist 144, predetermined media content files 134, and selected program content 126 may be synchronized via MTP. In one instance, playlist 144 specifies which ads are to be rendered at what time. By restricting the transport controls available for use with playlist 144, the user is unable to circumvent the ads. Although the ads 134 and selected content 126 are associated with each other for playback, it is contemplated that the ad itself will not be visible to the user as an item in the playlist 144.
Referring further to
Referring further to
Advantageously, DRM metering may be used to provide statistics relating to ad playback for tracking and reporting on ad delivery. For example, DRM metering keeps track of the number of plays on portable device 112 for each predetermined media content file 134. The portable device 112 keeps track of play counts via content insertion engine 140′ and uploads this information to content insertion engine 140 each time portable device 112 is synchronized.
It will be recognized by those skilled in the art that aspects of the invention may be implemented in a variety of software models, including an HTML application or a software add-in to an existing media player application 110. For example, the software add-in may provide a managed code plug-in that has access to an object model by which it can invoke media player functions. Likewise, the HTML application may provide access to media player functions via an object model. In the HTML example as executed on computer 102, a MediaCenter.PlayMediaEx( ) method allows playback or queuing of a media file and a MediaCenter.Experience object allows the application to query and set the play rate of media. In the add-in example as executed on computer 102, a HostControl.PlayMedia( ) method and a MediaProperties class perform similar functions. This control includes the ability to set the playback rate and receive events related to reaching the end of media.
As described above, the client enforces that advertisements play to completion. While the ad is playing back, the client operations run in the background and register an event (e.g., MediaCenter.onPlayStateChange on the PC client) that fires when the media being played (i.e., predetermined media content 134) changes state or rate. If the playback rate changes, the client resets the rate to 1 using, for example, an Experience.PlayRate property of media player application 110. If the playback position changes because the user has pressed fast forward or skip, the client resets the playback position to where it should have been at if the client had being playing at a playrate of 1. The PC client uses, for example, an Experience.MediaPosition property of media player application 110 to reset the playback position. In another embodiment, the client enforces playback by disabling the transport controls of media player application 110 or simply requiring playback for a certain amount of time. Those skilled in the art will recognize that media player application 110′ as executed on portable device 112 may be modified in a manner similar to these examples within the scope of various embodiments of the invention.
Each time an ad plays, playback engine 128 executes an ad enforcement state machine, for example, to report this event to content insertion engine 140. The insertion engine 140, in turn, periodically reports the ad playback to a web service (e.g. externally to remote media service 116) for use in rotating the ads, generating tracking statistics, etc. Upon completion of the playback of predetermined media content 134 (or a few seconds before it ends), the client acquires a token, for example, in response to the playback event and queues the selected media content 126 for playback using, for example, the MediaCenter.PlayMediaEx method.
The semantics described above may be enforced using, for example, a state machine that executes in the background while playback is in progress.
The exemplary operating environment illustrated in
Communication media typically embody computer readable instructions, data structures, program modules, or other data in a modulated data signal such as a carrier wave or other transport mechanism and include any information delivery media. Those skilled in the art are familiar with the modulated data signal, which has one or more of its characteristics set or changed in such a manner as to encode information in the signal. Wired media, such as a wired network or direct-wired connection, and wireless media, such as acoustic, RF, infrared, and other wireless media, are examples of communication media. Combinations of any of the above are also included within the scope of computer readable media. The computing device includes or has access to computer storage media in the form of removable and/or non-removable, volatile and/or nonvolatile memory.
Moreover, embodiments of the invention may be implemented with computer-executable instructions organized into one or more computer-executable components or program modules. Generally, these components or modules include, but are not limited to, routines, programs, objects, components, and data structures that perform particular tasks or implement particular abstract data types. Aspects of the invention may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote computer storage media including memory storage devices. For example, aspects of the invention are not limited to the specific computer-executable instructions or the specific components or modules illustrated in the figures and described herein. Other embodiments of the invention may include different computer-executable instructions or components having more or less functionality than illustrated and described herein.
The order of execution or performance of the methods illustrated and described herein is not essential, unless otherwise specified. That is, it is contemplated by the inventors that elements of the methods may be performed in any order, unless otherwise specified, and that the methods may include more or less elements than those disclosed herein. For example, it is contemplated that executing or performing a particular element before, contemporaneously with, or after another element is within the scope of the invention.
When introducing elements of the present invention or the embodiments thereof, the articles “a,” “an,” “the,” and “said” are intended to mean that there are one or more of the elements. The terms “comprising,” “including,” and “having” are intended to be inclusive and mean that there may be additional elements other than the listed elements.
In view of the above, it will be seen that the several objects of the invention are achieved and other advantages results attained.
As various changes could be made in the above constructions and methods without departing from the scope of embodiments of the invention, it is intended that all matter contained in the above description and shown in the accompanying drawings shall be interpreted as illustrative and not in a limiting sense.