The present invention relates to a system and method for managing network delivery of media content to a client device and, more particularly, to processing a scheduler service request to determine to deliver to the user at least one asset by the digital video recorder (DVR) or network DVR (nDVR) utilizing one or more user characteristics so as to conserve bandwidth of the content delivery network.
In a content delivery network (CDN) when a user seeks to record digital media content (e.g. a linear broadcast event or a non-linear VOD title that has been ingested and metadata pushed into the system), distribution of the media content consists of on-demand or push-based mechanisms that move content from an origin server to the client servers closest to the user's device. Typically, a CDN is implemented as a combination of a server and communication infrastructure with resource management control for the routing and distribution of the digital media content. The media content delivery usually comprises a set of origin servers that push content to one or more tiers of cache servers located at strategic locations (e.g., Internet network access points, Internet Points of Presence, and the like) for delivering copies of the media content to requesting end users. The routing and delivery of media content is utilizes a resource manager and scheduler service to accept and respond to requests client servers in a way that, for media content delivery, minimizes a given client's response time and, for the ultimate streaming media delivery, provides for the highest quality viewing for the user.
While this CDN infrastructure is suitable for routing and delivery of media content to the user that is actually being watched, other user requests of the resource manager and scheduler service should not be prioritized for immediate delivery. For example, a user may choose at a particular moment in time to request from the scheduler service to record multiple assets of media content (e.g. all episodes of an entire season of the media content) by the digital video recorder (DVR) of the device or network DVR (nDVR) service. In conventional CDN infrastructures, the resource manager will start the delivery across the CDN infrastructure to the client server for storage on the user's device according the scheduler service (e.g. when the new program airs, or if a VOD asset as available) whereby such delivery utilizes the available bandwidth of the CDN. Conventional resource managers do not determine whether it can delay the delivery of content media to conserve bandwidth based on one or more user characteristics such as, for example, the particular user watches the program at the time airs, the user is merely time-shifting the recording for later viewing, the user has selected all episodes for later viewing (e.g. user will not be binge watching), and other user scheduler service inputs that may not be a request for immediate viewing.
It would be an improvement over conventional digital video recording systems to provide a system and method of device DVR and/or network DVR, or both, that can delay the delivery and storage of content media to conserved bandwidth across the CDN network based on one or more user characteristics.
It is an object of the present invention to provide a system and method for digital video recording on a device DVR and/or a network DVR, or both, that can delay the delivery and storage of content media to conserved bandwidth across the CDN network based on one or more user characteristics.
It is an object the apparatus, system and method of the present invention to provide a scheduler service in connection with a digital video recording system and method that can operate upon a “pause” of linear and/or nonlinear content to delay any caching and/or storing content media at a predetermined time to conserved bandwidth across the CDN network based on one or more user characteristics.
Non-limiting and non-exhaustive embodiments of the present invention are described with reference to the following drawings. In the drawings, like reference numerals refer to like parts throughout the various figures unless otherwise specified.
For a better understanding of the present invention, reference will be made to the following Description of the Embodiments, which is to be read in association with the accompanying drawings, which are incorporated in and constitute a part of this specification, show certain aspects of the subject matter disclosed herein and, together with the description, help explain some of the principles associated with the disclosed implementations, wherein:
Non-limiting embodiments of the present invention will be described below with reference to the accompanying drawings, wherein like reference numerals represent like elements throughout. While the invention has been described in detail with respect to the preferred embodiments thereof, it will be appreciated that upon reading and understanding of the foregoing, certain variations to the preferred embodiments will become apparent, which variations are nonetheless within the spirit and scope of the invention.
The terms “a” or “an”, as used herein, are defined as one or as more than one. The term “plurality”, as used herein, is defined as two or as more than two. The term “another”, as used herein, is defined as at least a second or more. The terms “including” and/or “having”, as used herein, are defined as comprising (i.e., open language). The term “coupled”, as used herein, is defined as connected, although not necessarily directly, and not necessarily mechanically.
Reference throughout this document to “some embodiments”, “one embodiment”, “certain embodiments”, and “an embodiment” or similar terms means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the present invention. Thus, the appearances of such phrases or in various places throughout this specification are not necessarily all referring to the same embodiment. Furthermore, the particular features, structures, or characteristics may be combined in any suitable manner in one or more embodiments without limitation.
The term “or” as used herein is to be interpreted as an inclusive or meaning any one or any combination. Therefore, “A, B or C” means any of the following: “A; B; C; A and B; A and C; B and C; A, B and C”. An exception to this definition will occur only when a combination of elements, functions, steps or acts are in some way inherently mutually exclusive.
The drawings featured in the figures are provided for the purposes of illustrating some embodiments of the present invention, and are not to be considered as limitation thereto. Term “means” preceding a present participle of an operation indicates a desired function for which there is one or more embodiments, i.e., one or more methods, devices, or apparatuses for achieving the desired function and that one skilled in the art could select from these or their equivalent in view of the disclosure herein and use of the term “means” is not intended to be limiting.
As used herein the term “DVR” refers to a device or application software that digitally compressing analog and/or video feeds and storing these feeds in memory (i.e. that records video in a digital format to a hard-drive, system memory, a disk drive, USB flash drive, SD memory card, SSD or other local or networked mass storage device, etc.). The term includes set-top boxes (STB) with direct to disk recording facility, portable media players (PMP) with recording, recorders (PMR) as camcorders that record onto Secure Digital memory cards and software for personal computers which enables video capture and playback to and from a hard disk drive. The term “digital” referring to the compression and storage technology, not the transmitted video images.
As used herein the term “network digital video recording” or “nDVR” refers to a device or application software that stores digital images or video on the network “in the cloud” (e.g. directly from the IP-network into a networked mass storage device). As used herein the term “Quality of Services” or “QoS” refers to a device or application software device is one that is capable, in order to comply with bandwidth limitations of a network, of limiting the transmission rate it uses for transmission or reception over the network. A QoS device may be capable of negotiating with a system resource manager for varying amounts of bandwidth.
As used herein the term “application programming interface” or “API” refers to a software component in terms of its operations, inputs, outputs, and underlying types is a set of routines, protocols, and tools for building software applications.
The invention is a delayed DVR system and method for recording digital content to ensure quality of the user experience is generally designated as numeral 100. According to an embodiment, the delayed DVR system and method 100 may be formed and implemented using a digital video recorder (DVR) integrated a devices (e.g. a set-top box) and/or on a network digital video recorder (nDVR). The delayed DVR system and method 100 provides a user the ability to backing up and playing recorded program material linear and non-linear content media (e.g. TV broadcast programs, VOD, and digital video). The system and method 100 may be implemented in a content delivery network (CDN) system using computers to distribute copies of data placed at various nodes of a network by subscription to the device of a user. According to one embodiment, the content media may be, for example, linear broadcasting and non-linear or VOD content media (audio and podcast hosting, video delivery, live streaming, flash streaming), downloadable objects (media files, software, documents), live streaming and database queries. Numerous devices are available for a user to play the content media such as TV, HD-monitors, mobile devices
Referring to
Referring to
A preferred embodiment of the invention when recording TV, video and/or movie content media files, the video core 101 ingests non-linear 102 and linear content 103 and packages to encode in, for example, adaptive bit rate streaming (ABR) or in one or more multiple bit rate streams (e.g. MPEG streams extracted from the analog and digital TV signal streams, for and storage example, analog forms such as National Television Standards Committee (NTSC) or PAL broadcast, and digital forms such as Digital Satellite System (DSS), Digital Broadcast Services (DBS), or Advanced Television Standards Committee (ATSC). According to an embodiment, the delayed DVR system and method 100 may be configured to transfer content media files (e.g. frames of video) by way of Transmission Control Protocol (TCP)/Internet protocol suite (IP). TCP/IP transfer may use a variety of protocols (e.g. HTTP, HTTPS, SMTP, POP3, IMAP, SSH, FTP, Telnet, etc.) encapsulated in TCP to transfer and deliver across the CDN 105 network 105 from the video core 104 to the video edge 110 closest to the client device 140.
According to an embodiment, delayed DVR system and method 100 can be configured to use ABS streaming technologies to transmit the content media files over HTTP for distribution across the private CDN 105. In this manner, delayed DVR system and method 100 uses the advantages of ABS by dynamically monitoring CPU and memory capacity to make corresponding adjustments in the video quality of the transmitted content media by encoding the source linear and non-linear content (e.g. live broadcast, movie, video, etc.) at varying bit rates, and then segmenting each of the different bit rate streams. The segment length may be a predetermined size and duration, for example, between 2 and 10 seconds. The client or user's device 130 includes a player 146 to use the ABS advantageously to switch among the different bit rate segments, thereby locating the segments that correspond best to the bandwidth.
However, problems occur if the user utilizes the scheduler service 160 to begin the recording and storage of content media 102, 103 in response to a user input performing a DVR “function” that begins the caching and storage of such content media 102, 103 on the user device 140 and storage 147 or in the network using resource manager 120 and storage 123, or both, e.g. “record” function or “pause” function. For example, user experience (UX) interface 150 may have multiple streams utilizing the user's bandwidth on the CDN 105 as allocated by the resource manager 120. If the user requests a single DVR “record” function regarding non-linear or VOD content media 103, bandwidth utilization should be able to accommodate the request under normal circumstances. However, if the user requests multiple DVR “record” functions for multiple content media 103 assets banded with utilization may exceed that as allocated by the resource manager 120. In order to accommodate the multiple DVR “record” functions, according to an embodiment and aspect of the present invention, the delayed DVR system and method 100 overcomes these problems to detect one or more user characteristics to determine whether the system may delay delivery (i.e. caching and/or storing) of the content media 103 to a predetermined time when bandwidth resources should be more available to utilize. For example the delayed recording of all episodes of an entire season of “Game of Thrones”, herein categorized as multiple content media 103 assets, would available as the resource manager 120 can determine that the user characteristics indicate the user would not be immediately viewing such multiple content media 103 assets. The scheduler service 160 could then schedule the storage in the storage 123, 147, as appropriate, at a predetermined off-peak time (e.g. 3 AM). In this way, the user's present consumption of media content via the device 140 and user experience platform 150 would be able to maintain an optimum user experience within bandwidth restrictions and maintaining low latency.
According to another embodiment and aspect of the present invention, the delayed DVR system and method 100 can overcomes problems if the user were to request storage of linear or live broadcast content media 102 in connection with a “pause” DVR function. According to this embodiment, the resource manager 120 can determine from one or more user characteristics stored on the resource manager 120, or on the device 140, or both, that the user would not be viewing the content 102 immediately. One or more user characteristics may be configured to determine the time of day, previous pause history of the user to actual playback of the content, the nature of the content, and other data that indicates with reasonable certainty the user's characteristics. For example the delayed DVR system and method 100 may determine that the user watches the live broadcast of a baseball game up to a particular point (e.g. time such as 10 pm or 7th inning approximate time) and uses the “pause” DVR function to store the remainder of the content media 102. The one or more user characteristics also may indicate that the particular program (i.e. live sporting event) and time (i.e. 10 PM) and even time of playback (e.g. lunchtime or plus 14 hours) are correlated. The resource manager 120 can determine from the user characteristics that the user would not be immediately viewing the content media 102. The scheduler service 160 could then schedule the storage of the linear media content 102 in the storage 123, 147, as appropriate, at a predetermined off-peak time (e.g. 3 AM). In this way, the user's present consumption of media content via the device 140 and user experience platform 150 would be able to maintain an optimum user experience within bandwidth restrictions and maintaining low latency.
Referring now to
As shown in
The resource manager 120 also is adapted to track and monitor all bandwidth resource usage locally so as to be able to determine if delaying the storage of media content 102, 103 is appropriate or possible according one or more user characteristics. DVR 143 connects and subscribes to the resource manager 120 to receive resource notifications. Near recording start time, whether it is X minutes (X is configurable by the DVR 143) or immediately before a recording starts (for impulse recordings), the DVR 143 must communicate with the resource manager 120 to request resource for a recording to start. The resource manager 120 determines whether a stream can be allocated based on a number of rules. The resource manager 120 then broadcasts the list of active streams and terminated streams to all connected UX platform 150 clients and the DVR 143. The UX platform 150 may present the information to the user as needed. In case of resource conflict, the user may choose to end some conflicting streams to manually resolve the conflict. If a recording cannot be started due to conflict constraints, the DVR 143 reports the blocked (or failed?) status back to the scheduler service 160. For any events that cause resource changes, which include recording starts/stops/fails, the DVR 143 must report such events to the resource manager 120. The resource manager 120 will update the resource statuses accordingly. The resource manager 120 broadcasts the list of streams including active streams and terminated/stopped/blocked streams to all connected UX platform 150 clients and DVR 143. The DVR 143 must process such notifications and take actions when necessary.
Referring to
In an exemplary embodiment, as is illustrated in
Similarly, when a user utilizes the DVR function such as “pause” or “record” the DVR function is managed by the resource manager 120. The resource manager 120 may be configured to determine whether a stream may be delayed based the one or more user characteristics as in the process 200 illustrated in
As shown in
For example, when the user tunes to a particular linear channel (or flipping through channels), the UX platform 150 requests a single linear stream from the resource manager 120. If the user navigates away from viewing linear TV the resource manager 120 will release the stream from the device 140. Once the user starts viewing a channel, the UX platform 150 may be configured to report profile changes (such as registering 4K display device in the profile) to the resource manager 140 for further video control 122 of the available bandwidth and APS resource management. A Mosaic view takes up one stream regardless how many tiles will be displayed on that view, which is based on the assumption that all tiles on the Mosaic view together would utilize about the same bandwidth as a normal stream. When a user requests to view a video in full screen from a Mosaic view tile, UX kills the Mosaic view stream and requests a new stream for the full screen video. Any ongoing stream that gets absorbed into the Mosaic view will still be considered as an ongoing stream. That is, if a user goes back to the Mosaic view from playing a video (or an ongoing DVR recording is displayed in the Mosaic view), the video still consumes one stream until it gets stopped by the user.
While certain configurations of structures have been illustrated for the purposes of presenting the basic structures of the present invention, one of ordinary skill in the art will appreciate that other variations are possible which would still fall within the scope of the appended claims. Additional advantages and modifications will readily occur to those skilled in the art. Therefore, the invention in its broader aspects is not limited to the specific details and representative embodiments shown and described herein. Accordingly, various modifications may be made without departing from the spirit or scope of the general inventive concept as defined by the appended claims and their equivalents.