The present invention is defined by the claims below. An embodiment of the present invention provides delivery and synchronization of an ad to a user of a primary media stream, either within streaming media or external to the streaming media.
In a first aspect, computer-readable media are provided for facilitating a method for delivering an ad to a user of a primary media stream. The method includes receiving a primary media stream that includes a transport protocol. A cue point, defined in the transport protocol, is identified, for an ad to be inserted into at least one of the primary media stream or a secondary media stream. The transport protocol includes an ad-type field that indicates a type of ad format that is allowable in response to the cue point. A group of timing bits in the transport protocol is decoded to determine a delivery time of the ad with respect to a content of the primary stream. A group of bits within the transport protocol is decoded to determine a starting point and an ending point of the ad with respect to a point in the primary media stream. At least one of the primary media stream or the secondary media stream is selected based on information in the transport protocol. The ad is selected based at least on the type of ad format that is allowable. The ad is inserted by way of a splicer in at least one of the primary media stream or the secondary media stream that was selected. The ad is delivered to the user.
In a second aspect, a system is provided for delivering an ad to a user of a primary media stream. The system includes the primary media stream connected to a splicer. The system also includes a transport protocol within the primary media stream. The transport protocol defines a cue point at which the ad is to be delivered to the user, and includes one or more fields that define aspects of the cue point. A group of bits is encoded within the transport protocol specifying at least one of a starting point and an ending point of the ad, with respect to a point in the primary media stream. The system further includes a media presentation device that is operable to A) receive at least one of the primary media stream or a secondary media stream, B) retrieve the ad from an external source other than the primary media stream and the secondary media stream, and C) present to the user at least one of the primary media stream, the secondary media stream, or the ad from the external source. The system includes the splicer that is operable to A) receive the primary media stream, B) identify the cue point, including decoding a group of timing bits in the transport protocol to determine a delivery time of the ad with respect to a content of the primary stream, C) transmit the primary media stream to the user, and D) transmit the ad to the user in at least one of the primary media stream or the secondary media stream based on information in the transport protocol.
In a third aspect, computer-readable media are provided for facilitating a method of delivering an ad to a user of a primary media stream. The method includes receiving the primary media stream which has, within a transport protocol, a transport protocol header extension that defines an ad cue point. One or more fields within the header extension that define aspects of the ad cue point are interpreted. A limit field indicates a maximum number of ads that may be played in response to the ad cue point. Interpreting the one or more fields includes decoding a group of timing bits to determine a delivery time of the ad. The ad is transmitted at the ad cue point in at least one of the primary media stream or a secondary media stream, based on information in the transport protocol header extension.
Illustrative embodiments of the present invention are described in detail below with reference to the attached drawing figures, which are incorporated by reference herein and wherein:
An embodiment of the present invention may provide systems, methods and apparatuses for ad cues in streaming media. This is analogous to digital programming insertion in cable television broadcasting. A description of digital programming insertion may be found in specifications ANSI/SCTE 35 2004 Digital Program Insertion Cueing Message for Cable by the Society of Cable Telecommunications Engineers, Inc. of Exton, Pa. and ANSI/SCTE 30 2006 Digital Program Insertion Splicing API by the Society of Cable Telecommunications Engineers, Inc. of Exton, Pa., which are incorporated herein by reference. An embodiment of the present invention extends ad cues to enable the delivery and synchronization of an ad to a user within a streaming media and also external to the streaming media, in multiple formats and from multiple sources by means of an ad cue implemented as a Real-time Transport Protocol (RTP) header extension in an RTP media stream. It will be apparent to one skilled in the art upon reading, and because of, this disclosure that an embodiment of the invention is not limited to RTP and may use any communication protocol suitable for delivering media over an Internet Protocol (IP) network.
Acronyms and Shorthand Notations
Throughout the description of the present invention, several acronyms and shorthand notations are used to aid the understanding of certain concepts pertaining to the associated system and services. These acronyms and shorthand notations are solely intended for the purpose of providing an easy methodology of communicating the ideas expressed herein and are in no way meant to limit the scope of the present invention. The following is a list of these acronyms:
ANSI American National Standards Institute
CD-ROM Compact Disc read-only memory
DVD Digital Versatile Disc
EEPROM Electrically Erasable Programmable Read-Only Memory
HTTP Hypertext Transfer Protocol
IP Internet Protocol
IPTV Internet Protocol Television
RAM Random Access Memory
ROM Read Only Memory
RTP Real-time Transport Protocol
SCTE Society of Cable Telecommunications Engineers
SLA Service Level Agreement
TCP/IP Society of Cable Telecommunications Engineers
Further, various technical terms are used throughout this description. An illustrative resource that fleshes out various aspects of these terms can be found in Newton's Telecom Dictionary by H. Newton, 22nd Edition (2006).
As one skilled in the art will appreciate, an embodiment of the present invention may be embodied as, among other things: a method, system, or computer-program product. Accordingly, the embodiments may take the form of a hardware embodiment, a software embodiment, or an embodiment combining software and hardware. In one embodiment, the present invention takes the form of a computer-program product that includes computer-useable instructions embodied on one or more computer-readable media.
Computer-readable media include both volatile and nonvolatile media, removable and nonremovable media, and contemplates media readable by a database, a switch, and various other network devices. By way of example, and not limitation, computer-readable media comprise media implemented in any method or technology for storing information. Examples of stored information include computer-useable instructions, data structures, program modules, and other data representations. Media examples include, but are not limited to information-delivery media, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile discs (DVD), holographic media or other optical disc storage, magnetic cassettes, magnetic tape, magnetic disk storage, and other magnetic storage devices. These technologies can store data momentarily, temporarily, or permanently.
The particular embodiments herein are intended in all respects to be illustrative rather than restrictive. Alternative embodiments will become apparent to those skilled in the art to which the present invention pertains without departing from its scope, upon reading, and because of, this disclosure.
In traditional television broadcasting, an insertion point for a local ad is indicated to a local broadcaster by means of cue tones. A cue tone indicates the point at which a video ad may be inserted into the broadcast video. As with traditional television broadcasting, it is desirable in Internet Protocol Television (IPTV) broadcasting to deliver an ad to a user, but in a variety of formats.
RTP provides a means for delivering audio and video data over an Internet Protocol network. The RTP specification provides for user-defined header extensions that may contain other types of information. An embodiment of the present invention may provide apparatuses, systems and methods for using an RTP header extension to indicate a cue point, in IPTV broadcasting, for an ad in any of a variety of formats. Unlike a traditional cue point, which defines an ad insertion point in a primary media stream, an embodiment of the present invention provides a cue point that indicates the delivery of an ad to a user within the primary media stream, within an ancillary stream, or from other sources (such as an exemplary HTTP connection) accessed by a media player. One skilled in the art will recognize that protocols other than RTP may be used in implementing an embodiment of the present invention.
Referring to the drawings in general, and initially to
Ad cue system 100 is an exemplary system for using RTP ad cue extensions to deliver an ad, in a variety of formats, to a user of streaming media. With continued reference to
In one embodiment, the streaming media is carried in RTP format, with RTP header extensions (ad cue extensions) indicating ad cue points. The splicer will deliver ads to the user as directed by the information contained in the ad cue points, with specified timing and ad format. Exemplary formats may include, but are not limited to, overlay, takeover, rich media, and standard banner.
Exemplary ad formats suitable for use in implementing some embodiments of RTP ad cue extensions are shown in
While takeover ads and overlay ads are inserted into the primary media stream, an external ad is transmitted either in an existing media stream other than the primary media stream, or a new stream may be initiated in which to transmit the ad. Alternatively, the splicer may direct the media player to retrieve the ad from another web source.
Referring now to
By way of background, a traditional splicer is a device for inserting programming or ads into broadcast programming such as in cable television. A splicer typically is used by a broadcast affiliate to insert local ads or programming into regionally broadcast programming. The broadcast programming is received on a primary channel of the splicer, and ads or other programming to be inserted are received on an insertion channel. An upcoming insertion point in the broadcast programming is indicated to the splicer by some means, such as a cue embedded in the broadcast programming. The splicer requests an ad from an ad server, which then sends the ad to the splicer over the insertion channel. The ad is inserted by the splicer into the media stream at the insertion point. Splicer operation for broadcast cable programming is more fully addressed in the aforementioned references ANSI/SCTE 35 2004 and ANSI/SCTE 30 2006.
With continued reference to
With continued reference to
An exemplary RTP header extension format suitable for use in implementing an embodiment of RTP ad cue extensions is shown in
With continued reference to
The TAG field 510 is an exemplary 4-bit label, defined by the user, identifying the header extension. The value of the TAG field 510 does not affect the ad cue, other than identifying it to whatever system, method or apparatus is making use of the ad cue.
The LENGTH field 515 is an exemplary 4-bit value indicating the length of the header extension in 32-bit words, exclusive of the first 32-bit word of the header extension. In one embodiment, the value of the LENGTH field 515 is one, or a binary value of 0001, because the header extension is defined as having a total of 64 bits. Other embodiments may be defined such that the LENGTH field 515 takes on other values.
The TYPE field 520 is an exemplary 2-bit field indicating the type of the ad cue.
In one embodiment, the bit definitions, in binary format, for the TYPE field 520 are as follows: a value of 00 indicates a Splice In point, which signifies that an ad is to begin at the designated point in the media stream; a value of 01 indicates a Splice Out point, which signifies that an ad is to end at the designated point; a value of 10 indicates an Informational ad cue, which may convey other information about an ad cue not defined in this embodiment; and a value of 11 is reserved for purposes not defined in this embodiment.
The AD TYPE MASK field 525 is an exemplary 4-bit field indicating the type of ad or ads allowable in response to the ad cue. Each bit represents a different ad type: bit 0—Overlay; bit 1—Takeover; bit 2—Rich Media; and bit 3—Standard Banner. Any combination of these ad types may be specified in the AD TYPE MASK field 525.
The LIMIT field 530 is an exemplary 4-bit field indicating the maximum number of ads that may be played in response to the ad cue. It should be noted that, in the embodiment in
The DURATION field 535 is an exemplary 16-bit field indicating the maximum duration, in seconds, of the ad or ads to be played in response to the ad cue. As with the LIMIT field 530, it should be noted that, in the embodiment in
The SIB field 540 is an exemplary 2-bit field indicating the Stream Insertion Behavior associated with delivery of the ad in response to the ad cue. A binary value of 00 indicates Do Nothing, signifying that the ad is not to be inserted into the primary stream (the stream containing the RTP header extension) but will be delivered by another means, such as a Standard Banner ad delivered to the user via HTTP; a binary value of 01 indicates Splice Over Content, signifying that the ad will be inserted into the primary media stream; a binary value of 10 indicates Treat as Playlist, signifying that ads will be played sequentially from a predetermined list; and a binary value of 11 is reserved for purposes not defined in this embodiment.
The SPLICE IN SEQUENCE OFFSET field 545 is an exemplary 12-bit field indicating the offset position, in number of RTP packets, of the splice in point (the point at which the ad will begin), with respect to the current RTP sequence number.
The SPLICE OUT SEQUENCE OFFSET field 550 is an exemplary 16-bit field indicating the offset position, in number of RTP packets, of the splice out point (the point at which the ad will end), with respect to the current RTP sequence number.
Many different arrangements of the various components depicted, as well as components not shown, are possible without departing from the spirit and scope of the present invention. Some embodiments of the present invention have been described with the intent to be illustrative rather than restrictive. Upon reading, and because of, this disclosure alternative embodiments will become apparent to those skilled in the art that do not depart from its scope. A skilled artisan may develop alternative means of implementing the aforementioned improvements without departing from the scope of the present invention.
It will be understood that certain features and subcombinations are of utility and may be employed without reference to other features and subcombinations and are contemplated within the scope of the claims. Not all steps listed in the various figures need be carried out in the specific order described.
This application is a continuation of U.S. patent application Ser. No. 12/136,810, filed Jun. 11, 2008, entitled “Real-Time Transport Protocol Ad Cue Extensions,” which is herein incorporated by reference.
Number | Name | Date | Kind |
---|---|---|---|
5283639 | Esch et al. | Feb 1994 | A |
7511846 | Hart et al. | Mar 2009 | B2 |
20030190961 | Seidman | Oct 2003 | A1 |
20030199292 | Greenberg | Oct 2003 | A1 |
20060075449 | Jagadeesan et al. | Apr 2006 | A1 |
20070055983 | Schiller et al. | Mar 2007 | A1 |
20070130590 | Nash-Putnam | Jun 2007 | A1 |
20090094634 | Haberman et al. | Apr 2009 | A1 |
20130042265 | Copley et al. | Feb 2013 | A1 |
Number | Date | Country | |
---|---|---|---|
Parent | 12136810 | Jun 2008 | US |
Child | 13557844 | US |