This application relates to the technical fields of software and/or hardware technology and, in one example embodiment, to system and method for preparation and delivery of custom personalized messages, such as advertisements, in streaming Internet video.
The approaches described in this section could be pursued, but are not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated herein, the approaches described in this section are not prior art to the claims in this application and are not admitted to be prior art by inclusion in this section.
Today's advertising, television advertising in particular, tends to be “shotgun” presentations where many or all viewers in a given area receive the identical advertisement. Furthermore, the television presentation is often interrupted for the advertising presentation. User studies show that many people drop off (stop viewing) during the commercial breaks. Some cable channels use “fly-ins” or overlaid video material to reduce the intrusiveness of the advertising material, but these are still fixed, “canned” pieces of video that are broadcasted identically to large numbers of viewers.
Embodiments are illustrated by way of example and not limitation in the figures of the accompanying drawings, in which like references indicate similar elements and in which:
In the following detailed description, numerous specific details are set forth to provide a thorough understanding of claimed subject matter. However, it will be understood by those skilled in the art that claimed subject matter may be practiced without these specific details. In other instances, methods, apparatuses or systems that would be known by one of ordinary skill have not been described in detail so as not to obscure claimed subject matter.
Some portions of the detailed description which follow are presented in terms of algorithms or symbolic representations of operations on binary digital signals stored within a memory of a specific apparatus or special purpose computing device or platform. In the context of this particular specification, the term specific apparatus or the like includes a general purpose computer once it is programmed to perform particular functions pursuant to instructions from program software. Algorithmic descriptions or symbolic representations are examples of techniques used by those of ordinary skill in the signal processing or related arts to convey the substance of their work to others skilled in the art. An algorithm is here, and generally, considered to be a self-consistent sequence of operations or similar signal processing leading to a desired result. In this context, operations or processing involve physical manipulation of physical quantities. Typically, although not necessarily, such quantities may take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared or otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to such signals as bits, data, values, elements, symbols, characters, terms, numbers, numerals or the like. It should be understood, however, that all of these or similar terms are to be associated with appropriate physical quantities and are merely convenient labels. Unless specifically stated otherwise, as apparent from the following discussion, it is appreciated that throughout this specification discussions utilizing terms such as “processing,” “computing,” “calculating,” “determining” or the like refer to actions or processes of a specific apparatus, such as a special purpose computer or a similar special purpose electronic computing device. In the context of this specification, therefore, a special purpose computer or a similar special purpose electronic computing device is capable of manipulating or transforming signals, typically represented as physical electronic or magnetic quantities within memories, registers, or other information storage devices, transmission devices, or display devices of the special purpose computer or similar special purpose electronic computing device.
In one example embodiment, an inventive solution provides not just an overlay of stock material selected from a range of “canned” video elements, but permits real-time image synthesis, where real-time animated elements may be combined with pre-packaged elements to produce a fully customized video stream that can then be delivered to a specific client. One example advantage of this approach is that the advertising or informational content can be exactly targeted to the individual viewer. A unique synthesized video may be created such that nobody but the targeted individual would receive the synthesized video stream that was created for that individual. For example, the synthesized video stream that was created for a particular viewer may include the name or even a picture of the viewer, as well as other information that could be obtained, e.g., based the viewer's social network profile, possibly gathered in real time. It will be noted that the word “viewer” will be understood as a current or potential viewer or an author of video content.
A method for the preparation delivery of custom personalized messages in streaming video may be implemented within a web server architecture that inserts advertising materials into a video stream. The basic elements of such architecture may include:
(1) a source of video content that may be either stored or live,
(2) an advertisement server that may be configured to access information about the video content and information about the viewer and select any of a number of prepared advertisements,
(3) a synthesizing component that includes a means of either overlaying the advertisement over the video presentation or switching to the selected advertising video, and
(4) a “play-out” server configured to encode and send the resulting synthesized video stream with advertising over the public Internet.
An advertisement server may be modified to produce not only prepared video content (such as advertisements that can be appended to or overlayed over the video stream that is being presented to a viewer), but also animation and video-processing scripts that can include instructions of how the information about the viewer is to be used in modifying the additional video content or how to assemble the modified advertisement content based on the features or attributes of video content itself, the information about the viewer, or both.
For example, a viewer' profile may include an indication that the viewer is interested in ecology and conservation. Based on this information, an advertisement for an energy-efficient automobile may be selected. A photograph of the viewer may then be composited into the selected advertisement to make it look like the viewer is driving the automobile. In another example, a viewer' profile may include an indication that the viewer is athletic. Animation in the selected advertisement may be synthesized to show the viewer in modern sportsware from particular vendor. In yet another example, a viewer' profile may include an indication that the viewer owns a lot of electronics. Video of the selected advertisement may then be synthesized in a way that shows an image of the viewer using the latest model of a cell phone. To reduce costs to advertisers, sometimes combinations of these attributes can be made. For instance, to combine the previous two items, the viewer can be shown in modern sportsware talking on the latest cell phone. In a further example, a viewer' profile may include an indication that the viewer and friends enjoy gaming. Animation may be synthesized showing the viewer and friends trying out the latest game controller.
Note that the viewer profile can also include information from the profiles of the viewer's circle of friends, as extracted, e.g., from social web sites. This extracted information may be stored in the viewer database together with other information from the user's profile.
Thus, an example method for preparation and delivery of custom personalized messages, such as advertisements, in streaming Internet video may include selecting additional video content (e.g., an advertisement) while the streaming video is being presented to a viewer, modifying the additional video content based on the information about the viewer, and associating the modified content with the streaming video. The associating of the modified content with the streaming video may be in the form of appending the modified content to the streaming video or, e.g., overlaying the modified content over the streaming video. The streaming video that is being presented to a viewer, for the purposes of this description, may be termed the main content. The additional video content that can be associated with the main content may include advertisement or any other content that is distinct from the main content. The additional video content that is to be modified using the techniques described herein may be termed source content or a source video. The resulting modified video stream—including the main content and the modified content—may be based on the features of the main content, the information about the source video and also include synthetic elements prepared based on the information about the viewer. The resulting custom video stream can then be sent to the play-out server to be forwarded to the client.
Example method and system for preparation and delivery of custom messages in streaming video may be described with reference to a network environment illustrated in
As shown in
The video preparation system 142 may be configured to have access to the video content (main video content) that is being presented to a viewer. The main video content may be either previously stored or streaming live. The server computer system 140, which, in one example embodiment, is an advertisement server, can access a video content database 152 and a user profiles database 154 and, based on the accessed information, select one or more previously stored advertisements. A synthesizing component, that may be termed a video synthesis module, may be provided as part of the video preparation system 142. A video synthesis module may be configured to synthesize an advertisement video from basic elements, some of which may be pre-recorded, some of which may be extracted from the viewer's profile (e.g., pictures of the viewer and friends), some of which may be stock footage. These basic elements may be combined using video production tools—e.g., video compositing, texture mapping, image morphing, and any of a number of digital techniques for manipulating video images. A video synthesis module may also be configured to perform the overlay of the advertising video based on the main video itself. For instance, a synthesized video of the viewer may be inserted in a particular car that appears in a street scene in the main video that is being presented to the viewer. The synthesized video can be combined with the presentation (e.g., with the main content that may be a streaming video being presented to the viewer) in very complex ways by using modern special effects techniques. In some instances, information related to the presentation in the main video (e.g., the location of the street shown in the main video) may be retrieved from a database derived during the presentation itself by direct video analysis of the images being presented.
A prepared video that was modified by the video preparation system 142 can be delivered to the client system 110 via a play-out server 120. A prepared video (also termed the resulting synthesized video stream) is a combination of the main content and the modified content. The play-out server 120 may be configured to receive the resulting synthesized video stream from the server system 140 and encode and send it over the public Internet to the client system 110. The client system 110 may host a browser application 112 that can be used for viewing video streams received form the play-out server 120.
While
As shown in
The event associated with a main video content may be, e.g., receiving a request from the viewer for specific video content. In some embodiments, the event may be detecting the main video content, e.g., the main video content is provided by the viewer. For example, a viewer may submit a video via a social network system, which video may then be and have it distributed to another viewer (or several viewers) in a personalized form. For example, the viewer (who may also be referred to as a user or an author or an originator of the video) may be allowed to submit the original assets (stills and videos right out of the camera) and instructions, rather than a finished frozen video. The original assets may then be assembled into a finished video, using the instructions. In one embodiment, the instructions are in the form of an “edit decision list,” or EDL. The assets may have some information associated with them, or this information may be derived by picture analysis. The kind of information might be what people appear in the images, where the images were taken, and so on. Depending on the prospective viewer of the newly-submitted video, the instructions for assembling the video may be altered, so that it contains more of the assets of interest to that viewer. The author might have provided instructions for this customization, or the server might make alterations to the presentation in an entirely automated fashion.
Examples of the kinds of modifications are listed below.
1. When the video is viewed by the grandparents of the author, additional images of the grandchildren might be included.
2. When a friend of the author is viewing the video, additional images known to be of interest to that friend (derived from the friend's viewer profile) can be selected. For instance, people the friend is known to be interested in (family members, schoolmates, etc.) could be included.
3. Depending on who is watching the video, some naughty words on the sound track might be bleeped (made unintelligible). For instance, if the 5-year-old cousins of the author are viewing the video, some alterations might be made to make the video age-appropriate (eliminate bad language or nudity or inappropriate references).
Returning to
At operation 320, the viewer information module 204 of
In one embodiment, the video synthesis module 208 may be provided with a template that provides instructions of how the information about the viewer (the information retrieved from the viewer's profile and, possibly, information related to the viewer's actions) is to be used in modifying the additional video content. The template may be in the form of a script. Shown below in Table 1 is an example of a script, in pseudo-code, for displaying three images.
The pseudo-code in Table 1 illustrates the instructions resulting in the overlapping of the images, where one image will fade in while the other is fading out. The middle image will also have a zoom and pan applied to slowly zoom in to the coordinates of a particular face in the image. Let us say that the images are all 720 pixels wide and 480 pixels tall (this is a standard video format). Let us say the file names of the images are “IMG1.jpg”, “IMG2.jpg”, and “IMG3.jpg.” Let us say that there is an interesting face in the second image that is located at a rectangle located 240 points to the right and 100 points down from the top (images generally have (0, 0) at the top-left), and is 105 pixels wide and 131 pixels high. This is just an example of how a slide show can be built up out of simple commands. It will be understood that the computer might insert a new image—it would just add a few lines of text and fix up the image start times. For instance, the computer might find an image (call it “IMG4.jpg”) that has the face of a friend of the viewer at a certain position in the image. Table 2 below is an example of a script, in pseudo-code, for inserting a new image into the EDL.
Thus, the process of modifying video content may include selecting additional video content (e.g., an advertisement), modifying the additional video content based on the information about the viewer, and associating the modified content with the main content. The additional video content may be appended to the main content or overlayed over the main content. For example, if the additional video content is a rolling a trailer of a superhero movie, this additional video content may be modified by placing an image on the viewer's face in place of the superhero's face. Returning to
The example computer system 500 includes a processor 502 (e.g., a central processing unit (CPU), a graphics processing unit (GPU) or both), a main memory 504 and a static memory 506, which communicate with each other via a bus 508. The computer system 500 may further include a video display unit 510 (e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT)). The computer system 500 also includes an alphanumeric input device 512 (e.g., a keyboard), a user interface (UI) cursor control device 514 (e.g., a mouse), a disk drive unit 516, a signal generation device 518 (e.g., a speaker) and a network interface device 520.
The disk drive unit 516 includes a computer-readable (or machine-readable) medium 522 on which is stored one or more sets of instructions and data structures (e.g., software 524) embodying or utilized by any one or more of the methodologies or functions described herein. The software 524 may also reside, completely or at least partially, within the main memory 504 and/or within the processor 502 during execution thereof by the computer system 500, the main memory 504 and the processor 502 also constituting machine-readable media.
The software 524 may further be transmitted or received over a network 526 via the network interface device 520 utilizing any one of a number of well-known transfer protocols (e.g., Hyper Text Transfer Protocol (HTTP)).
While the machine-readable medium 522 is shown in an example embodiment to be a single medium, the term “machine-readable medium” should be taken to include a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) that store the one or more sets of instructions. The term “machine-readable medium” shall also be taken to include any medium that is capable of storing or encoding a set of instructions for execution by the machine and that cause the machine to perform any one or more of the methodologies of the present invention, or that is capable of storing or encoding data structures utilized by or associated with such a set of instructions. The term “machine-readable medium” shall accordingly be taken to include, but not be limited to, solid-state memories, optical and magnetic media. Such medium may also include, without limitation, hard disks, floppy disks, flash memory cards, digital video disks, random access memory (RAMs), read only memory (ROMs), and the like.
The embodiments described herein may be implemented in an operating environment comprising software installed on a computer, in hardware, or in a combination of software and hardware. Although embodiments have been described with reference to specific example embodiments, it will be evident that various modifications and changes may be made to these embodiments without departing from the broader spirit and scope of the invention. Accordingly, the specification and drawings are to be regarded in an illustrative rather than a restrictive sense.