Methods and systems for streaming advertising content

One illustrative method for concatenating an unselected content stream (such as advertising) with a selected content stream to create a digital content stream includes interactions between a first server and a second server. The first server can receive a selection of the selected content stream from a hand-held device, transmit the selection to a second server, receive a playlist having location identifiers that identify at least the selected content stream and an unselected content stream, and communicate with a plurality of streaming servers collectively having streaming digital content including the selected and unselected content streams. The first server further communicates to the hand-held device a play time of the streaming digital content, concatenates the streaming digital content from the plurality of streaming servers, and provides the concatenated streaming digital content to the hand-held device as a single content stream.

CROSS-REFERENCE TO RELATED APPLICATIONS

Not applicable.

REFERENCE TO A MICROFICHE APPENDIX

Not applicable.

BACKGROUND

A wide variety of devices may access the Internet and can download information, such as web pages, audio files, and video files. Generally, these devices include computers and hand-held devices, such as mobile phones and wireless email devices, and may receive a streaming digital content, such as video and/or digital files. Often, an advertisement is included with the selected digital content to generate revenue for the providers of the selected content and/or service providers. As such, it is desirable to deliver the advertisements or other unselected content seamlessly with the user selected content.

SUMMARY

One illustrative method for concatenating an unselected content stream (such as advertising) with a selected content stream to create a digital content stream can include interactions between a first server and a second server. The first server can receive a selection of the selected content stream from a hand-held device, transmit the selection to a second server, receive a playlist having location identifiers that identify at least the selected content stream and an unselected content stream, and communicate with a plurality of streaming servers collectively having streaming digital content including the selected and unselected content streams. The first server further communicates to the hand-held device a play time of the streaming digital content, concatenates the streaming digital content from the plurality of streaming servers, and provides the concatenated streaming digital content to the hand-held device as a single content stream.

An illustrative system for delivering streaming digital content to a hand-held device can include a first server communicating with the hand-held device, a second server, and a plurality of streaming servers. Moreover, generally the first server communicates a selection from the hand-held device to the second server to obtain a play list having location identifiers. Each location identifier can correspond to a selected content stream or an unselected content stream, and then the first server may communicate with the plurality of streaming servers to obtain streaming digital content. The streaming digital content can include the selected content stream and unselected content stream. The first server can pass through concatenated streaming digital content to the handheld device.

An alternative method for concatenating a streaming advertising content can include operations by a first server, a second server, and a compiling server. The first server may receive a selection of streaming selected content from a hand-held device, transmit the selection to a second server, receive from the second server a playlist having location identifiers that identify at least the selected content stream and an unselected content stream, and communicate via a compiling server with a plurality of streaming servers collectively having streaming digital content that can include streaming selected and unselected content. The compiling server downloads and caches the streaming content, and either logically or physically concatenates the streaming selected and unselected content. The first server communicates to the hand-held device a play time of the streaming digital content, provides the concatenated streaming content from the compiling server to the hand-held device.

NOTATION AND NOMENCLATURE

In the detailed description and claims which follow, certain terms are used to refer to particular system components. As one skilled in the art will appreciate, components may be referred to by different names. Accordingly, this document does not intend to distinguish between components that differ in name, but not function.

Also in the detailed description and claims which follow, 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, wireline communicative, or wireless communicative connection. Thus, if a first device couples to a second device, that connection may be through a direct connection, or through an indirect connection via other devices and connections. Items shown or discussed as directly coupled or communicating with each other may be coupled through some interface or device, such that the items may no longer be considered directly coupled to each but may still be indirectly coupled and in communication, whether electrically, mechanically, or otherwise, with one another.

The term “streaming selected content” generally means digital content selected by a user from a website on the Internet or on some other network such as a private network. Desirably, this digital content is in the form of a video, a photograph and/or an audio file, such as news or music clips, or picture slides, although the digital content may also be in other formats. Generally, the selected content includes one or more streams, packets or clips with each stream, packet or clip selected separately or as a package by a user.

The term “streaming unselected content” generally means digital content such as advertisements, which are associated with a selected content by, e.g., an advertising server. Desirably, this digital content is in the form of a video, a photograph and/or an audio file, such as news or music clips, or picture slides, although the digital content may also be in other formats. Generally, the unselected content includes one or more streams, packets or clips.

The term “streaming digital content” generally means content including at least one streaming selected content and at least one streaming unselected content, and can include one or more digital content streams.

DETAILED DESCRIPTION

It should be understood at the outset that although an illustrative implementation of one embodiment of the present disclosure is illustrated below, the present system may be implemented using any number of techniques, whether currently known or in existence. The present disclosure should in no way be limited to the illustrative implementations, drawings, and techniques described below, but may be modified within the scope of the appended claims along with their full scope of equivalents.

One illustrative embodiment of the present system and method may include a streaming content concatenation server for receiving a selection of digital Internet content from a hand-held device, transmitting the selection to a second server, and receiving a play or content list of uniform resource locators. Each uniform resource locater (hereinafter “URL”) can correspond to a stream or clip of the streaming selected content and unselected content on respective streaming servers. Afterwards, the streaming content concatenation server may communicate with the streaming servers, concatenate the selected content stream and the one or more unselected content streams into a digital content stream, and seamlessly pass the digital content stream to the hand-held device.

The illustrative system and method can provide several advantages. Generally, the system and method eliminate incorporating advertisement plug-ins in a multitude of streaming servers for transmitting streaming digital content to a hand-held device, and thus, minimize the impact to content providers and their streaming infrastructures. In addition, the present system and method may reduce or eliminate the requirement and cost to store streaming advertising content on a server for sequencing and transmission to a hand-held device. Moreover, the system and method can seamlessly present the advertising content with the selected content so the user is unaware of the multiple server interaction, and thus, may increase flexibility for the service provider by allowing interaction with any advertisement server on the market and minimize impacts to the client and their devices. Furthermore, the system and method can provide easy integration and use of existing protocols/methods for integration, particularly for streaming servers not supporting for example, server-side play lists. Moreover the illustrative system and method eliminate any need to co-locate advertising and selected content on the same server, which is a configuration that does not scale well when the same advertising content needs to be employed by different streaming content servers. Moreover, the illustrative system and method avoid the need to provide client-side concatenation (i.e., client-side playlist support) on hand-held devices that have power and hardware limitations.

One illustrative system50may include a hand-held device140, a first server150, a second server200, and a plurality of streaming servers300. The hand-held device140can be a mobile phone, a wireless email device, a personal organizer, or some other form of an electronic device having wireless communications capability and relatively limited processing power. Generally, the hand-held device140has a media player144, such as speakers and/or a video screen for delivering Internet content to a user. The hand-held device140can communicate with the first server150by any suitable communication, such as modem, Ethernet, ATM, DSL, wireless Transmission Control Protocol/Internet Protocol (TCP/IP), and/or telephony. One desirable protocol is an Internet Telephony Service Provider (ITSP) protocol. The hand-held device140can receive streaming digital content100using real-time streaming protocol (RTSP) and real-time transport protocol (RTP). The streaming digital content100can include a digital content stream102, such as a selected content stream or clip112or an unselected content stream or clip122.

The first server or streaming content concatenation server150may communicate with the hand-held device140, the second server200, and a plurality of streaming servers300. The first server150can have some attributes of a proxy server because the first server150may serve as a gateway through which the hand-held device140gains access to streaming digital content100. Also, the first server150can have a cache152and one or more routines for creating a single “describe” response160and for concatenating a plurality of digital streaming packets112and122from the plurality of streaming servers300, as hereinafter described. Moreover, the first server150can optionally transmit client information to the second server200. Generally, the first server150modifies the stream or clip header fields received from the plurality of streaming servers300, such as clip sequence and RTP play time, to stream clips in a unitary fashion to the hand-held device140. The first server150can also receive RTSP reporting packets (also known as RTCP packets) from client and servers, combine or segregate header information as necessary, remove “BYE” RTCP packets if required, and forward the resulting RTCP packets to the proper destination.

Generally, the second or advertising server200(also termed the “ad management server”) receives a selection130from the first server150and may also receive consumer information such as a user identification, device location, and content information, such as the identification of the page that provided the link to the selected content stream112. In response, the second server200can determine, based on the streaming selected content and/or the user id, what streaming unselected content120should be displayed. The advertising content can include one or more advertising content streams or clips122, and the second server transmits to the first server a play or content list having a plurality of location identifiers210, e.g., URLs. The play or content list is a file containing a list of references to both the streaming selected content110and the streaming unselected content120in the order that the content is to be displayed. Each location identifier210may provide the location of a clip that resides on a streaming server300having access to the Internet. The list specifies streaming selected content110chosen by a user of the hand-held device140and at least one unselected content stream or one or more unselected clips122(e.g. advertising). The second server200can provide, in order, the URLs that include the location on the Internet of the streaming digital content100stored on a plurality of streaming servers300.

The streaming unselected content120can be targeted or non-targeted advertisements. To provide for targeted advertising, the first server150augments the message to the second server200with a user identification taken from the frame headers in the communications from the hand-held device140. The second server200may use this user information to access databases having information, such as demographic and behavioral information, associated with the owner of the hand-held device140. The second server200can select streaming unselected content120corresponding to the characteristics of the user. Alternatively, the streaming unselected content120may be chosen based on the streaming selected content110of the user. If non-target advertisements are provided by the second server200, the streaming unselected content120can be, e.g., pre-selected and rotated on a schedule. As one example, the second server may receive a request such as “rtsp://cnn.com/HoustonWeatherClip” with a user id that enables the server to determine that the requester is a golfer. The second server may then provide a play list such as {“rtsp://adserver.com/GolfClubAd”, “rtsp://cnn.com/HoustonWeatherClip”, “rtsp://HoustonGolfCourseAd”}.

Generally, the plurality of streaming servers300includes a vast number of streaming servers, such as a first streaming server320, a second streaming server340, a third stream server360, and up to an Nthstreaming server380. The streaming servers300collectively can provide streaming selected content110and streaming unselected content120. Each streaming server300can contain one or more of these streams or clips112or122, such as the second streaming server340having streaming unselected content120that may include, e.g., a first advertising clip or stream342and a second advertising clip or stream344. In fact, the second streaming server340may serve as a central storehouse for all the advertising content to be associated with a wide number of content providers. Such a configuration eliminates any need to distribute advertising content to the content providers for them to integrate into their systems.

The streaming digital content100can be transmitted utilizing any suitable protocol, such as RTSP and RTP. The streaming selected content110can include a video file114and an audio file118and the streaming unselected content120can include a video file124and an audio file128.

Generally, the system50does not include a compiling server500. Rather, the plurality of streaming servers300communicate with the first server150. However, in one alternative embodiment, the system50may include a compiling server500that provides processing and storage resources for downloading and caching the content streams, and for logically or physically concatenating the content streams in accordance with play lists from the second server, thereby creating a streaming digital content stream100to be provided to the hand-held device. The compiling server500may be a streaming server and be separate or incorporated into the first server150.

Referring toFIGS. 1-3, an illustrative method is depicted, which can utilize RTSP/RTP protocols for streaming content and an ITSP protocol. Generally, in accordance with the RTSP protocol, a hand-held device140transmits a “describe” request154including a selection130to a first server150at a block600. Next, the first server150can receive the “describe” request154and transmit the selection130of the streaming selected content110to a second server200at a block610. That being done, generally the second server200responds to the first server150by providing a content list of a plurality of location identifiers210for the streaming digital content100, which includes a location identifier210for the selected content stream112and a location identifier210for an advertising content stream122at a block620.

Afterwards, generally the first server150transmits a plurality of “describe” requests156to a plurality of streaming servers300identified in the content list at a block630, and then at a block640, each of the plurality of streaming servers300receiving a “describe” request156returns a “describe” response158to the first server150. The plurality of “describe” requests156can be sent simultaneously or sequentially to the plurality of streaming servers300. Each “describe” response158contains information about the clip112or122, such as the type of clip, e.g., audio and/or video, the play time of the clip, and, if a video, the screen resolution. At a block650, the plurality of “describe” responses158received from the plurality of streaming servers300may be cached at the first server150. Next, the first server150can add the play time400from all the “describe” responses158and create a single “describe” response160that includes the total duration of the streaming digital content100at a block660. As such, the hand-held device140may receive the “describe” response160that simulates a single clip or packet. That being done, the first server150can transmit the single “describe” response160to the hand-held device140at a block670.

An illustrative “describe” request can be as follows:

Next, “setup” requests and responses may be created and sent to negotiate which ports of the hand-held device140and the plurality of streaming servers300are to, respectively, receive and send audio and/or video tracks. Generally the hand-held device140transmits a “setup” request170to the first server150at a block680and the first server150transmits a plurality of “setup” requests172to the plurality of streaming servers300at a block690. The plurality of “setup” requests172can be sent simultaneously or sequentially. At a block700, the plurality of streaming servers300may transmit a plurality of “setup” responses174to the first server150, and the first server150may create and send a single “setup” response176to the hand-held device140at a block710.

Afterwards, generally the hand-held device140transmits a “play” request180to the first server150at a block720and the first server150transmits a plurality of “play” requests182to the plurality of streaming servers300at a block730. The first server150can receive the selected content stream112and the unselected content stream122from the plurality of streaming servers300at a block740and the first server150can modify the packet header fields and pass each selected content stream112and advertising content stream122to the hand-held device140at a block750. The content streams are sequenced within the overall content stream in the order given by the play list from the second server200. The packet header modifications may include adjusting packet sequence numbers and RTP time to make the different streams appear as a single stream to the hand-held device140. Next, generally the first server150receives reporting packets from the hand-held device140at the block760, and modifies header fields as appropriate, and the first server150passes through the reporting packets to the streaming servers300at the block770. Conversely, the reporting packets received from the streaming servers300are modified and passed to the hand-held device140.

At a diamond780, a query may be made, namely, is a forward or rewind request received from hand-held device140? If so, the forward or rewind request may be forwarded to the appropriate streaming server300at a block790and the hand-held device140may send request to stop forward or rewind at a block800. Optionally, one or both of these requests may be blocked by the first server150. Afterwards, the method may return to the block770. If not, after the last packet is sent to hand-held device140, the digital content stream102may cease at a block810.

The first server150concatenates or sequences the streaming selected content110and the streaming unselected content120in the order specified by the play list from server200. As an example, if one advertising clip122is being concatenated with one selected clip112, the advertising clip122can be presented before, i.e., pre-roll insertion, or after the selected clip112, i.e., post-roll insertion, or if two advertising clips122are being concatenated with the selected clip112, the selected clip112can be sandwiched with the advertising clips122. Alternatively, the advertising clip122can be inserted into the selected clip112, i.e., mid-roll insertion, so the selected clip112plays for a predetermined time, next the advertising clip122plays, and then the remainder of the selected clip112plays. Moreover, generally the entire streaming digital content100including the selected clip112and the one or more advertising clips122are presented seamlessly to the user via the hand-held device140, so as to appear as a single clip.

Another illustrative method is implemented in the alternative embodiment that includes the compiling server500. The first server150interfaces with the second server200to obtain a play list of streaming digital content100and forwards the play list and the “describe” request154to the compiling server500. The compiling server500downloads the streaming selected content110and streaming unselected content120from the plurality of streaming servers300and logically or physically assembles a single clip112or122in the order specified by the play list. Alternatively, the compiling server500assembles a single clip112or122from the streaming digital content100cached on the compiling server500. After assembling, the compiling server500can transmit the streaming digital content100to the first server150for passing or streaming to the hand-held device140. In this embodiment, the first server150passes through RTSP and RTP requests/responses between the hand-held device140and the compiling server500, and the compiling server handles modifying the requests/responses and combining the streaming digital content100.

The system described above may be implemented on any general-purpose computer with sufficient processing power, memory resources, and network throughput capability to handle the necessary workload placed upon it.FIG. 4illustrates a typical, general-purpose computer system suitable for implementing one or more embodiments disclosed herein. The computer system1000includes a processor1002(which may be referred to as a central processor unit or CPU) that is in communication with memory devices including a secondary storage1004, a read only memory (ROM)1006, a random access memory (RAM)1008, an input/output (I/O) devices1010, and a network connectivity devices1012. The processor may be implemented as one or more CPU chips.

The secondary storage1004is typically comprised of one or more disk drives or tape drives and is used for non-volatile storage of data and as an over-flow data storage device if the RAM1008is not large enough to hold all working data. The secondary storage1004may be used to store programs which are loaded into the RAM1008when such programs are selected for execution. The ROM1006is used to store instructions and perhaps data which are read during program execution. The ROM1006is a non-volatile memory device which typically has a small memory capacity relative to the larger memory capacity of secondary storage. The RAM1008is used to store volatile data and perhaps to store instructions. Access to both the ROM1006and RAM1008is typically faster than to the secondary storage1004.

The processor1002executes instructions, codes, computer programs, scripts which it accesses from hard disk, floppy disk, optical disk (these various disk based systems may all be considered the secondary storage1004), the ROM1006, the RAM1008, or the network connectivity devices1012.

While several embodiments have been provided in the present disclosure, it should be understood that the disclosed systems and methods may be embodied in many other specific forms without departing from the spirit or scope of the present disclosure. The present examples are to be considered as illustrative and not restrictive, and the intention is not to be limited to the details given herein, but may be modified within the scope of the appended claims along with their full scope of equivalents. For example, the various elements or components may be combined or integrated in another system or certain features may be omitted, or not implemented.

Also, techniques, systems, subsystems and methods described and illustrated in the various embodiments as discrete or separate may be combined or integrated with other systems, modules, techniques, or methods without departing from the scope of the present disclosure. Other items shown or discussed as directly coupled or communicating with each other may be coupled through some interface or device, such that the items may no longer be considered directly coupled to each other but may still be indirectly coupled and in communication, whether electrically, mechanically, or otherwise with one another. Other examples of changes, substitutions, and alterations are ascertainable by one skilled in the art and could be made without departing from the spirit and scope disclosed herein.