The present disclosure relates to delivery of media content, and in particular to a method and system for Adaptive Bitrate (ABR) delivery of media content using an obfuscated manifest.
Internet Protocol Television (IPTV) continues to grow at a rapid pace. IPTV allows for Internet television and/or radio to be delivered to a user device using the architecture and networking methods of the Internet Protocol Suite over a packet-switched network infrastructure. IPTV delivery on managed networks/services is done using a Moving Picture Experts Groups 2 Transport Stream (MPEG2TS) container format over Internet Group Management Protocol (IGMP) for Linear TV/broadcast content delivery and Real Time Streaming Protocol (RTSP) based streaming for on demand content delivery.
Recent years have seen the proliferation of more and more unmanaged devices for IPTV, i.e. devices that are not provided by the network operator, that are capable of playing video/streaming content and consuming content over managed and/or unmanaged, i.e., open internet, networks. The basic trait of an unmanaged network or open internet, is the use of “best effort” mechanism to get content. For video delivery where quality of experience (QoE) is dependent on a constant playout, i.e., streaming media, media delivery over HTTP with Adaptive Bitrate (ABR) mechanism, is used, where the media content is divided into small segments and encoded at different bitrates. At playout, the client device is provided with a list of available media content segments and various bit rates such that the client can go up or down in size of segments that the client devices fetches during playout. The client controls playout by requesting specific segments one after another. While this leads to varying resolution of the video playout, the playout is constant, which is a more acceptable QoE than buffering whenever the best effort network capacity is not enough.
With reference to
Manifest file 8 is transferred to client device upon request such the client device can request media segments according to manifest file 8. Manifest file 8 may indicate media content which is not part of the requested content such as commercial, i.e., advertising, content. In cases, where the ABR delivery is used, streaming resources are used per incoming client request, i.e., unicast.
However, existing ABR delivery procedures is not without faults. In particular, manifest based ABR delivery, even though dictated by the server side (server side generates manifest) is left in the hands of the client device/media player. The playout component in the client device can decide to jump segments, i.e., commercial content such as segment 4 in
In another example, program content is broken into 5 second segments and advertising content is broken into 30 second segments. The client device can identify a break of six 30 s segments and just skip over the segments after the break. Even if the advertising content was broken into 5 second segments, the client device could search the manifest file for a segment that is not 5 seconds long to indicate that the following segment is the start of a commercial, i.e., end of requested content is usually shorter in length then the other segments of the requested content. This leads to scenarios where advertisements, campaign videos or rating videos get “trimmed” as the client devices hops to the next available segments (skipping ads and other content streams).
The problem of guaranteeing commercial playout resides in the fact the end-user client has the ability to apply sufficient logic to determine where to break out of the purely linear playout behavior. One solution to skipping advertisements in ABR delivery involves using service provider clients that are able to read extra mark up in a manifest that disables fast forwarding/skipping streams However, in this case, the hacker community simply designs media players that understand the additional markup and are therefore able to skip the extra markup enforcements. Other existing solutions to the problem of advertisement skipping in the ABR delivery mechanism continue to fall short and lead to breakage of service provider desired service delivery. This leads to several key aspects in ABR delivery becoming compromised including insertion of advertisements or other form of playlists related benefit, targeted advertisement benefit and enforcements/rules around skipping, fast forwarding, etc. While media providers may simply orchestrate streams on the server side and send the pre-orchestrated media downstream, this would obviate the basic benefit of playout from caches and being able to go up/down in bitrate, thereby compromising ABR delivery.
The present disclosure advantageously provides a system, node, device and methods for media content delivery, and in particular to providing delivery of media content using an obfuscated manifest.
In accordance with one aspect of the disclosure, a system for a content delivery network, CDN, is provided. The CDN is configured to store a plurality of first media segments and a plurality of second media segments different from the first media segments. The system includes a manifest management node that includes a first processor and a first memory. The first memory contains instructions executable by the first processor are configured to cause the manifest management node to accept a manifest request, from a device, for media content corresponding to the plurality of first media segments and generate a manifest for requested media content. The manifest indicates a plurality of modified media segments including the plurality of first media segments and at least one of the plurality of second media segments. The plurality of modified media segments have uniform segment lengths with respect to each other. The instructions executable by the first processor that are configured to cause the manifest management node to transmit the manifest to the device for media playout.
In one embodiment of this aspect, the system includes a media server in communication with the device. The media server includes a second processor and a second memory. The second memory contains instructions executable by the second processor that are configured to cause the media server to accept a request, from the device, for the at least one modified media segment and cause retrieval of at least one first media segment and at least one second media segment corresponding to the requested at least one modified media segment from the CDN. The instructions executable by the second processor that are configured to cause the media server to transmit the at least one first media segment and the at least one second media segment as the requested modified media segment to the device.
In another embodiment of this aspect, the at least one second media segment is at least one advertisement segment. In another embodiment of this aspect, at least one modified media segment includes at least one first media segment and at least one advertisement segment. In another embodiment of this aspect, the manifest indicates a plurality of available bitrates for each modified media segment. The instructions executable by the first processor are further configured to cause the manifest management node to transmit at least one of the modified media segments at one of the plurality of bitrates and at least another of the modified media segments at another of the plurality of bitrates for adaptive bitrate transmission. In another embodiment of this aspect, each individual modified media segment has a larger segment length than each individual first media segment.
In another embodiment of this aspect, the instructions executable by the first processor are further configured to cause the manifest management node to detect a request, from the device, for the at least one modified media segment, cause retrieval of at least one first media segment and at least one second media segment corresponding to the requested at least one modified media segment from a media node in the CDN and transmit the requested at least one first media segment and the at least one second media segment as the modified media segment. In another embodiment of this aspect, the segment lengths are time segment lengths.
In accordance with another aspect of the disclosure, a method for a content delivery network, CDN, is provided. The CDN is configured to store a plurality of first media segments and a plurality of second media segments different from the first media segments. A manifest request, from a device, for media content corresponding to the plurality of first media segments is accepted. A manifest for requested media content is generated. The manifest indicates a plurality of modified media segments including the plurality of first media segments and at least one of the plurality of second media segments. The plurality of modified media segments have uniform segment lengths with respect to each other. The manifest to the device for media playout is transmitted.
In one embodiment of this aspect, a request, from the device, for a modified media segment is accepted. Retrieval of at least one first media segment and at least one second media segment corresponding to the requested modified media segment from a media node in the CDN is caused. The at least one first media segment and the at least one second media segment are transmitted as the requested modified media segment to the device. In another embodiment of this aspect, the at least one second media segment is at least one advertisement segment. In another embodiment of this aspect, at least one modified media segment includes at least one first media segment and at least advertisement segment.
In another embodiment of this aspect, the manifest indicates a plurality of available bitrates for each modified media segment. At least one of the modified media segments at one of the plurality of bitrates and at least another of the modified media segments at another of the plurality of bitrates are transmitted for adaptive bitrate transmission. In another embodiment of this aspect, each individual modified media segment has a larger segment length than each individual first media segments. In another embodiment of this aspect, the segment lengths are time segment lengths.
In accordance with another aspect of the disclosure, a node for a content delivery network, CDN, is provided. The CDN is configured to store a plurality of first media segments and a plurality of second media segments different from the first media segments. The node interacts with a device. The node includes a reception module configured to receive a manifest request, from the device, for media content corresponding to the plurality of first media segments. The node includes a manifest module configured to generate a manifest for the requested media content. The manifest indicates a plurality of modified media segments including the plurality of first media segments and at least one of the plurality of second media segments. The plurality of modified media segments have uniform segment lengths with respect to each other. The node includes a transmission module configured to transmit the manifest to the device for media playout.
In one embodiment of this aspect, the at least one second media segment is at least one advertisement segment. In another embodiment of this aspect, at least one modified media segment includes at least one first media segment and at least advertisement segment. In another embodiment of this aspect, each individual modified media segment has a larger segment length than each individual first media segment. In another embodiment of this aspect, the modified media segment includes at least two first media segments and at least one second media segment temporally located between the at least two first media segments.
In another embodiment of this aspect, for media playout: the reception module is further configured to receive a request, from the device, for the at least one modified media segment. A media module is configured to cause the retrieval of at least one first media segment and at least one second media segment corresponding to the at least one modified media segment. The transmission module is further configured to transmit the at least one first media segment and the at least one second media segment as the modified media segment.
In another embodiment of this aspect, the manifest indicates a plurality of available bitrates for each modified media segment and the transmission module is further configured to transmit at least one of the modified media segments at one of the plurality of bitrates and at least another of the modified media segments at another of the plurality of bitrates for adaptive bitrate delivery.
In accordance with another aspect of the disclosure, a device for media playout of content from a content delivery network, CDN, is provided. The CDN is configured to store a plurality of first media segments and a plurality of second media segments different from the first media segments. The device includes a processor and a memory. The memory contains instructions executable by the processor are configured to cause the device to detect a network condition and determine at least one suggested media segment characteristic for media playout. The at least one suggested media segment characteristic is based on the detected network condition. The instructions executable by the processor that are configured to cause the device to transmit a manifest request for media playout of the plurality of first media segments. The manifest request includes the at least one suggested media segment characteristic.
In one embodiment of this aspect, the instructions executable by the processor are further configured to cause the device to accept a received manifest. The manifest indicates a plurality of modified media segments. The plurality of modified media segments indicates the plurality of first media segments and at least one of the plurality of second media segments. The plurality of modified media segments have uniform segment lengths with respect to each other. The instructions executable by the processor are further configured to request at least one modified media segment for media playout based on the manifest.
In another embodiment of this aspect, the plurality of modified media segments conform to the at least one suggested media segment characteristic. In another embodiment of this aspect, the at least one suggested media segment characteristic includes a media segment length. In another embodiment of this aspect, the plurality of modified media segments have a media segment characteristic other than the at least one suggested media segment characteristic.
In accordance with another aspect of the disclosure, a method for media playout of content from a content delivery network, CDN, is provided. The CDN is configured to store a plurality of first media segments and a plurality of second media segments different from the first media segments. A network condition is detected.
At least one suggested media segment characteristic for media playout is determined. The at least one suggested media segment characteristic being based on the detected network condition. A manifest request for media playout of the plurality of first media segments is transmitted. The manifest request including the at least one suggested media segment characteristic.
In one embodiment of this aspect, a received manifest is accepted. The manifest indicates a plurality of modified media segments. The plurality of modified media segments indicates the plurality of first media segments and at least one of the plurality of second media segments. The plurality of modified media segments have uniform segment lengths with respect to each other. At least one modified media segments for media playout is requested based on the manifest. In another embodiment of this aspect, the plurality of modified media segments conform to the at least one suggested media segment characteristic. In another embodiment of this aspect, the at least one suggested media segment characteristic includes a media segment length. In another embodiment of this aspect, the plurality of modified media segments do not conform to the at least one suggested media segment characteristic.
A more complete understanding of the present invention, and the attendant advantages and features thereof, will be more readily understood by reference to the following detailed description when considered in conjunction with the accompanying drawings wherein:
As used herein, relational terms, such as “first” and “second,” “top” and “bottom,” and the like, may be used solely to distinguish one entity or element from another entity or element without necessarily requiring or implying any physical or logical relationship or order between such entities or elements.
In embodiments described herein, the joining term, “in communication with” and “connected to,” and the like, may be used to indicate a path for data communication, which may be accomplished by physical contact, induction, electromagnetic radiation, radio signaling, infrared signaling or optical signaling, for example. The above methods of achieving data communication are non-limiting and mentioned only for illustration. One having ordinary skill in the art will appreciate that multiple components may interoperate and modifications and variations are possible of achieving the electrical and data communication.
The present invention advantageously provides a system, node, device and methods for Adaptive Bitrate (ABR) delivery of media content using an obfuscated manifest. The present invention advantageously allows Internet Protocol television (IPTV), over-the-top (OTT) and managed TV service providers to have precise control over playout of media content including ABR based streaming formats that have content including user requested media content and non-user requested media content. This allows for server side orchestration of media streams that helps prevent or make difficult client side manipulation of media streams such as jumping/seeking across advertisement segments. Further, the present invention advantageously offers manifests that are obfuscated or made unclear as to the actual segment boundaries between requested media content and other media content, e.g., advertisements or non-user requested content, that are weaved into a media stream without hindering the benefit of having adaptive media playout switching across various segments that are encoded at different bitrates, i.e., does not hinder ABR delivery. Therefore, the present invention advantageously provides the benefits of targeted advertisement/content streams in a unicast based delivery environment without comprising the benefits of ABR downstream delivery.
Accordingly, the system, node, device and method components have been represented where appropriate by conventional symbols in the drawings, showing only those specific details that are pertinent to understanding the embodiments of the present invention so as not to obscure the disclosure with details that will be readily apparent to those of ordinary skill in the art having the benefit of the description.
Referring now to drawing figures in which like reference designators refer to like elements there is shown in
Manifest management node 14 is in communication with media server 16, media node 18 and/or device 20. Manifest management node 14 includes one or more transmitters 22, i.e., transmission module 22, and one or more receivers 24, i.e., reception module 24, for communicating with media server 16, media node 18 and device 20, among other nodes, servers and devices. Manifest management node 14 further includes one or more processors 26 that are configured to perform manifest management node 14 functionality describe herein. Manifest management node 14 includes memory 28 that may include volatile and non-volatile memory. For example, non-volatile memory may include a hard drive, flash memory, memory stick and the like. Also, volatile memory may include random access memory and other known in the art. Memory 28 may store program instructions, which when executed by processor 26, provide the functionality described herein for manifest module 30.
For example, manifest module 30 includes instructions, which when executed by processor 26, causes processor 26 (manifest management node 14) to perform the manifest generation and provisioning process, discussed in detail below with reference to
Media server 16 may be in communication with manifest management node 14, media node 18 and/or device 20, among other servers, nodes and devices. Media server 16 may include one or more transmitters 32, one or more receivers 34, one or more processors 36 and memory 38 that generally correspond to components of manifest management node 14, with size and performance being adjusted based on design needs, while providing the functionality described herein with respect to media server 16. For example, memory 38 includes orchestrator module 40, i.e., media module 40, among other modules. Orchestrator module 40 includes program instructions, which when executed by processor 36, causes processor 36 to perform the media content orchestrator/transmission process described in detail with respect to
Media node 18 may be in communication with manifest management node 14, media server 16, other media nodes 18 and/or device 20, among other nodes, servers and devices. Media nodes 18 are HTTP streaming servers or caches in CDN 12 that store and deliver unicast media streams. Requested media content, i.e., first media segments, and non-user requested media content such as advertisements, statutory warning clips, campaign clips and/or other media content that was not requested by the user, i.e., second media segments. In one embodiment, the first media segments are different in type from the second media segments.
Device 20 includes one or more transmitters 42, and one or more receivers 44 for communicating with manifest management node 14, media server 16, media node 18, CDN 12 and other devices 20, among other servers, nodes and devices. Device 20 includes one or more processors 46 and memory 48 that generally correspond to components of manifest management node 14, with size and performance being adjusted based on design needs, while providing the functionality described herein with respect to device 20. For example, memory 48 includes request module 50, among other modules. Request module 50 includes program instructions, which when executed by processor 46, causes processor 46 to perform manifest request process described in detail with respect to
While manifest management node 14 and media server 16 are illustrated in
An exemplary process for manifest generation and provisioning is described with reference to
In response to the request, processor 26, via manifest module 30, generates a manifest for the requested media content (Block S102). The manifest generation process is described in detail with respect to
Each modified media segment indicates one or more requested media content segments, one or more other media content segments, e.g., advertisements or non-user requested content, or both user requested content segment(s) and non-user requested content in which the modified media segments have uniform time segment lengths with respect to each other. In one example, assume there are only two requested media content segments of 30 seconds and 10 seconds, respectively, left to transmit to the device for media playout. The second to last modified media segment in the manifest may indicate a requested media content segment of 30 seconds that is treated as a single modified media segment of 30 seconds for media playout. The last modified media segment in the manifest may indicate the last requested media content segment of 10 seconds and an advertisement segment of 20 seconds that are treated as a single modified media segment of 30 seconds for media playout. Therefore, media player logic based on time segment length differentiation will be unable to differentiate the second to last modified media segment from the last modified media segment based on time/length characteristics of a media segment. In contrast, existing manifest solutions would simply have lists individual media segment lengths of 30 seconds (2nd to last segment), 10 second (last segment) and 20 seconds (advertisement segment), thereby making unwanted jumping of advertisement segments possible, i.e., segment boundaries between content are clear.
Processor 26 causes the generated manifest to be transmitted to device 20 for media playout (Block S104). Device 20 uses the generated manifest according to known ABR delivery procedures in which device 20 fetches modified media segments from the network, e.g., media server 16, at one or more bitrates. Each fetched modified media segment may map to one or more segments on the media server side but the client/device 20 does not know how many and what type of segments are mapped to each modified media segment. This obfuscating of mapped media segments helps maintain desired playout behavior at client/device 20 since device 20 does not know which modified media segment includes the advertisement segment(s), thereby rendering ad skipping impractical, i.e., ad skipping or fast forwarding using the manifest with modified media segments will lead to missing requested media content segments.
While each bitrate is shown having four minute segments, different bitrates may have different segments lengths in which segments of a respective bitrate are uniform to each other. In other words, obfuscated manifest 48 makes unclear where user requested media segments and other media content segments boundaries are, thereby reducing the chance of advertisement skipping or jumping, among other unwanted media playout behaviors. In contrast to
If processor 26 determines to use one or more suggested media segment characteristics based on the one or more predefined rules, processor 26 generates the manifest file for media playout based on the one or more suggested media segment characteristics, i.e., processor 26 conforms the manifest to one or more of the suggested media segment characteristics (Block S110). In one example, processor 26 generates a manifest that indicates modified media segments having equal time segment lengths where the time segment length is equal to the suggested time segment length received in the manifest request. Other media segment characteristics not suggested by device 20 may be predefined by the network operator or service provider. For example, bit rate support may be defined by a network operator or service provider.
Referring back to Block S106, if the determination is made that the manifest request message does not include one or more suggested media characteristics, processor 26 generates the manifest for media playout based on one or more default parameters such as a minimum time segment length and/or predefined segment lengths/sizes defined in one or more default/enforcement rules (Block S112). Referring back to Block S108, if the determination is made not to use the one or more suggested media segment characteristics, processor 26 performs Block S112 such that the manifests may not conform to one or more of the suggested media segment characteristics. For example, manifest management node 14 may try to accommodate the preferred segment size requested by device 20. However, if the request cannot be supported, e.g., the requested segment size is unreasonable when evaluated by processer 26, the request will be ignored and/or rejected. Also, it is contemplated that manifest management node 14 may be configured to support specific modified segment sizes in order provide effective, i.e., efficient, caching within the network. As such, manifest management node 14 may ignore and/or reject the preferred segment size requested by device 20 if the requested preferred segment size is not one of the specifically supported sizes.
If processor 36 determines a request for at least one media segment has been received, processor 36 causes retrieval of at least one first media segment (user requested media) and/or at least one second media segment (non-user requested media content) corresponding to the requested at least one modified media segment from media node 18 in CDN 12 (Block S116). For example, requested media content segments may be stored as two second segments in media node 18 but if the generated manifest indicates modified media segments have ten second segments, device 20 requests at least one ten second modified media segment. In one instance, processor 36 may retrieve five two second segments of user requested content from media node 18 for a single incoming modified media segment request. In another instance using the same manifest, processor 36 may retrieve a single two second segment of requested media content from media node 18 for a single incoming request and a single eight second advertisement segment from the same or a different media node 18.
Segments are dynamically retrieved, i.e., retrieved on the fly, such as to allow for targeted advertising. The advertisements selected for retrieval may be based on characteristics of the user and/or characteristics of device 20, among other factors that allow for media server 16 to provide targeted commercial/advertisement content. Processor 36 causes the at least one modified media segment to be transmitted or streamed to device 20 (Block S118). For example, processor 36 causes transmission of at least one first media segment (user requested media) and/or the at least one second media segment (non user requested media content) as the requested modified media segment to the device. In one example, the at least one second media segment may be at least one advertisement segment. In another example, the at least one modified media segment includes at least one first media segment and at least one advertisement segment. In one embodiment, each individual modified media segment has a larger segment length than each individual first media segment.
In the instances discussed above, media server 16 will stream down a single ten second modified media segment, i.e., stream the retrieved five two second segments, and then stream down another single ten second segment, i.e., stream the retrieved two second segment and eight second advertisement segment such that device 20 is only able to determine the boundaries between modified media segments and not the original segments. Blocks S116-S110 may alternatively be performed by manifest management node 14, media node 18 or CDN 12, among other nodes, servers and networks that are configured to perform the orchestration process.
Further, device 20 may include request module 50 that advantageously allows device 20 to suggest media segment characteristics such as media segment lengths to CDN 12 or manifest management node 14 for media content playout. This allows a manifest to be generated based on network and/or device conditions specific to device 20, thereby helping increase the QoE of the user of device 20.
Processor 46 determines at least one suggested media segment characteristic for media playout based at least in part on the detected network condition(s) (Block S122). For example, if the bandwidth in the network is volatile or unstable, device 20 may request smaller segment lengths than a predefined standard/default size such that device 20 can keep switch up or down bitrates without requiring buffering a substantial amount of video at a resolution which is not the best possible resolution. In another example where the network conditions remain poor over a predetermined period of time, device 20 may request larger segment sizes, e.g., n*10, but stay at a lower bitrate instead of requesting smaller media segments of lowest bitrate every n seconds. While the suggested media segment characteristic is described in terms of segment length, the suggested media segment characteristic may include other media segment parameters.
Processor 46 causes the manifest request message including the at least one suggested media segment characteristic to be transmitted to manifest management node 14 for manifest generation (Block S124). In other words, the instant invention advantageously allows device 20 to suggest at least one media segment characteristic that may be taken into account during manifest generation. Therefore, allowing device 20 to suggest a preferred media segment sizes that better suits device 20 based on network performance and device 20 capacity, without being limited to a media server 16 enforced segment size. Alternatively, device 20 may choose, instead of suggesting, the preferred media segment size. In another alternative embodiment, device 20 may not use request module 50, and may instead request the manifest file in accordance with existing ABR delivery procedures.
The described arrangements advantageously allow insertion of “other content” or non-user requested media content (e.g., targeted advertisements) without device 20 being able to distinguish the user requested media content from the other content (non-user requested content) based on media segmentation, thereby reducing the effectiveness of hacky logics to jump or skip over advertisements. Further, the arrangement described herein advantageously provide the benefits of server side (service provider side) orchestrated media streams, without compromising the benefits of ABR delivery, which in turn provides personalized or targeted streams with or without the ABR mechanism. Also, the arrangements described herein advantageously allow device 20 to suggest a preferred segment size without being limited to a server enforce segment size, i.e., default enforce rules.
It will be appreciated by persons skilled in the art that the present invention is not limited to what has been particularly shown and described herein above. In addition, unless mention was made above to the contrary, it should be noted that all of the accompanying drawings are not to scale. A variety of modifications and variations are possible in light of the above teachings without departing from the scope and spirit of the invention, which is limited only by the following claims.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/IB2014/058984 | 2/13/2014 | WO | 00 |