The present invention relates to video programming network and, more particularly, to an improved system and method for providing a personal channel of linear programming to a subscriber in a content delivery network (CDN).
In conventional broadcasting, the broadcast network determines particular programming of content for geographic markets and time slots based on a number of factors such as, for example, for the afternoon time slot (e.g. 1 PM-3 PM) the supply of soap opera programming is geared toward a drama oriented homemaker, which reflects the appeal of this program category in this time slot. In this sense advertisers and programmers have invested millions of dollars in attempts to reach audience segments of a particular age, sex or income level. As a result, various program categories have been established that are then utilized to populate the channel with particular programming content for geographic markets and time slots.
Presently, programming aggregated by over-the-air TV, cable systems, digital broadcast satellite (DBS) and other content delivery network (CDN) sources run channel lineups determined by the broadcast network linear programming A subscriber and/or user over-the-air TV, cable TV, digital broadcast satellite (DBS) TV and other TV sources is presented with viewing options of essentially what's “on” right now in the CDN. In order to achieve variety, the subscriber changes channels to select a particular channel for viewing, i.e. channel surfing. As a result, present conventional broadcasting and CDN's are limited to linear programming of this type.
Conventional network systems and methods have these limitations and disadvantages in providing non-linear programming to the user, whereby the subscriber has no means of creating a personal channel for the user's particular desired content consumption
As a result, there is a present need to provide a content delivery network (CDN) system and method of making a linear channel for a subscriber to optimize the playback and the user experience.
It is an object of the present invention to provide system and method of making a linear channel for a subscriber to optimize the playback and the user experience.
It is an object the apparatus, system and method of the present invention to overcome the disadvantages of the prior art and add flexibility in creating and recording linear and non-linear content with respect a personal channel of a subscriber and user.
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 personal channel 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 personal channel 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 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 by pulling ABR segments from storage available on the CDN. According to one embodiment, the content media may be, for example, linear broadcasting and non-linear or VOD content media (e.g. audio and podcast hosting, video delivery, live streaming, flash streaming), downloadable objects (media files, software, documents), live broadcast linear and database queries. Numerous devices are available for a user to play the content media such as TV, HD-monitors, mobile devices
Referring to
The resource manager 120 is responsible for allocating, monitoring, and controlling resources, particularly pulling ABR segments and bandwidth therefor, for recording and playback related services. The resource manager 120 operates in the delayed DVR system and method 100 to authorize viewing of copyrighted content according to policies and rights management across the CDN 105.
According to an embodiment, personal channel system and method 100 can be configured to use ABR technologies to transmit the content media files over HTTP for distribution across the CDN 105. In this manner, personal channel system and method 100 uses the advantages of ABR 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 ABR advantageously to switch among the different bit rate segments, thereby locating the segments that correspond best to the bandwidth.
Referring to
A CDN system may be configured as described in U.S. patent application Ser. No. 14/765,575 entitled System and Method of Distributing Content Based On Trending and Preemptive Data, which is incorporated by reference in its entirety. 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 (ABR) segments or in one or more multiple bit rate segments and file information (e.g. MPEG formatted segments 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 ABR segment pulling DVR system and method 100 may be configured to transfer content media files (e.g. media segments representing frames of video or other programming) 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. system and method 100 can be configured to use ABR technologies to transmit the content media files over HTTP for distribution across the private CDN 105. In this manner, ABR segment pulling DVR system and method 100 uses the advantages of ABR 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 segments. The media 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 (as shown in
According to an embodiment of the invention, the video core 101 is configured to ingest, segment and package the input linear 102 and non-linear 103 media content into ABR segments for later pulling ABR segments across CDN 105 to the video edge 110 for accessing by the user's device 140. A catalog of file information, metadata and other information about the content 102, 103 is written into a manifest file that is stored on a resource manager 120 for video control 122. When the user accesses the content media file(s) 102, 103, the user's device 140 requests the segments from the CDN by an address given in the manifest file. The resource manager 120 controls pulling of ABR segments of content media file(s) 102, 103 the user's device for playback and display. The player 146 in the device 140 may be configured to play the linear and non-linear content media file(s) 102, 103 to create an optimum user experience.
In an exemplary embodiment, as is illustrated in
The media segments are not multicast or broadcast to the end client, but can only be retrieved by an active request to pull them (for instance, using HTTP GET request) from the network serving device, such as a CDN. The mechanisms may make use of technologies such as adaptive bit-rate (ABR), fragmented MPEG-4 files or other formats that can typically delivered via download technology such as HTTP. Media segments could be delivered in real-time, near real-time or delivery (to account for network blocks, conservation of network resources or other use-cases). Media Segments would typically be video encapsulated in a format used to traverse the network and then made available for playback via a media player, though the segments could encompass other media types such as just audio, images, web hyperlinks, etc. Media Segments would typically consist of a program based on a time boundary, the program may be interspersed with other Media Segments such as for an advertisement, blackout/alternate content or other customized programming within the program boundary.
Referring to
According to an embodiment, the personal channel 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 network 105 from the video core 101 to the video edge 110 closest to the client device 140. In a movie, video or broadcast, frames and/or file information of the content media data are stored in a manifest file. Frames and/or file information of the content media data occur in a predetermined order based on time.
Referring to
In order to achieve variety, or change the displayed program of media content, the set-top box provides the guide to the subscriber who uses the guide to change channels to select a particular channel for viewing, i.e. commonly referred to channel surfing. For example, the subscriber may be presented with a programming schedule according to time slots for viewing and make user inputs as desired, for example, Channel A local news (6:00 PM to 6:30 PM), Channel B national news (6:30 PM to 7 PM), Channel C news commentary (7:00 PM to 8:00 PM), Channel D a movie or television series available from on-demand or DVR (VOD content 103) and the like. At the time 6:30 PM (i.e., termination of local news programming aired at 6:00 PM to 6:30 PM on Channel A) from the linear media content 102a, the subscriber is required to change to Channel B for national news program being aired between 6:30 PM to 7 PM to receive this linear media content 102b. Similar subscriber inputs are required to change from Channel B to Channel C for desired programming of news commentary (7:00 PM to 8:00 PM) linear media content 102c aired at the predetermined termination time of Channel B programming at 7 PM. Likewise, subscriber input(s) are required to change from Channel C to Channel D for desired programming of on-demand or VOD non-linear media content 103a.
Conventional systems require the subscriber to move essentially from one channel to the next. As a result, conventional network systems and methods have limitations and disadvantages in providing the user or subscriber with guides and line-ups of linear and non-linear programming, as the subscriber has no means of creating a personal channel for the user's particular desired content consumption. Moreover, conventional systems and methods lack capability to gather one or more user characteristics so as to “learn” over time from the user's viewing of linear and non-linear programming As a result, there is a present need to provide a content delivery network (CDN) system and method of making a linear subscriber personal channel based on one or more user characteristics gathered for a subscriber to optimize the playback and the user experience.
According to an embodiment of the present invention illustrated in
Referring to
Once one or more user characteristics are gathered from inputs from the device based on user interaction, the system and method 100 is configured to create a personal channel. As is illustrated in
The resource manager 120 prepares delivery of the media content data by identifying media content data and file information from the manifest file, catalog service 170 and scheduler service 160 for the line-up of linear media content 102a, 102b, 102c and non-linear media content 103a. Further subscriber inputs are not required to change from Channel A to Channel B, from Channel B to Channel C, or from Channel C to Channel D at the at the predetermined termination time for the particular aired programming which is an improvement over the prior art. Similarly, the recommendation of the non-linear media content 103a available on Channel D is based on the one or more user characteristics from previous subscriber input(s) which is an improvement over the prior art.
According to an embodiment of invention, the personal channel system and method 100 may be configured to manage the transmission of desired media content over an access link between a device of a user and a source of the media content in a CDN according to the established personal channel. The CDN is configured for a content processing and communication system that is communicatively coupled with the resource manager 120. The content processing and communication system may be configured to identify the media content data (e.g. 102a, 102b, 102c and 103a) from a manifest file according to the subscriber personal channel formed by the resource manager 102. Again, the subscriber personal channel is formed in a predetermined arrangement of program scheduling as shown in
Referring to
In a Step 201, one or more service requests input to the device 140 for desired media content 102, 103 are received by the resource manager 120 via the scheduler service 160. The scheduler service 160 may operate in connection with the resource manager 120 to request information of a catalog service 170, or the user's device 140 may seek information from the catalog service 170 directly, to provide a catalog of media content data to display to the user, which is essentially a listing of linear and non-linear content 102, 103 available on the CDN to the subscriber after being ingested and packaged by video core 101. The list of available linear and non-linear content 102, 103 may be displayed using metadata associated with the content by a description or title, available times, source of the programming, etc. For example, the subscriber may be presented with a programming schedule according to time slots for viewing and make user inputs as desired, for example, Channel A local news (6:00 PM to 6:30 PM), Channel B national news (6:30 PM to 7 PM), Channel C news commentary (7:00 PM to 8:00 PM), Channel D a movie or television series available from on-demand or DVR (VOD content 103) and the like. Each of these user inputs are received from the device 140 by the resource manager 120 and processed for the program schedule information. The resource manager 120 is configured to determine one or more user characteristics from the service requests over a period of time.
In a Step 203, the resource manager 120 gathers the one or more user characteristics from repeated service requests supplied from the device 140. In a Step 205, the resource manager 120 is configured to identify media content data information about the media content 102, 103 from the manifest file in storage 123, 147.
In a Step 207, the resource manager 120 may be configured to determine a predetermined arrangement of program scheduling from the one or more user characteristics to create a personal channel. The predetermined arrangement of program scheduling may be based on the user's daily viewing of media content. For example, the subscriber may be presented with a personalized channel for viewing based on the one or more user characteristics, for example, Channel A local news (6:00 PM to 6:30 PM), Channel B national news (6:30 PM to 7 PM), Channel C news commentary (7:00 PM to 8:00 PM), Channel D a movie or television series available from on-demand or DVR (VOD content 103) and the like. The resource manager 120 is configured to identify media content data information about the media content 102, 103 from the manifest file in storage 123, 147.
In a Step 209, the resource manager 120 identifies the media content data 102, 103 required for the user's personal channel based on the predetermined arrangement of program scheduling from the one or more user characteristics.
In a Step 211, the resource manager 120 stores the user's personal channel, i.e. predetermined arrangement of program scheduling from the one or more user characteristics.
In a Step 213, the resource manager 120 starts the user's personal channel, i.e. predetermined arrangement of program scheduling by obtaining the media content data 102, 103. For example, media content data for a linear Channel A local news (6:00 PM to 6:30 PM), shown in
In a Step 215, the resource manager 120 starts pulling ABR segments for the user's personal channel. The resource manager 120 is configured to pull and supply ABR segments of desiredmedia content data 102, 103 according to the predetermined arrangement of program scheduling such as, for example, media content data 102a, 102b, 102c, and 103. In this manner, the subscriber can create a personal channel and view linear programming 102a, 102b and 102c and non-linear programming 103c as shown in
The user may choose be currently watching a live stream of linear content 102. The user may use the catalog service 170 to search for live events present or in the future to watch and/or record. The scheduler 160 communicates with the resource manager 120 to obtain the desired media content 102 from storage on the CDN. The video core 101 has already segmented and stored a file information, manifest file and frames of the media content 102 in storage 123 as shown in
In Step 203, frames or file information containing the media content data is stored in storage 147 on the device 140 or in network storage 123 of the resource manager 120. The stored stream of media content 102 includes all frames including one or more uniform media content data 102a, non-uniform media content data 102b of the files and/or frames of transmitted and stored media content 102.
In Step 205, the resource manager 120 determines from file information, the manifest file, and catalog 170 instances of non-uniform media content data 102b in the recorded stored media content 102 as is described herein.
In Step 207, the resource manager 120 identifies from file information, the manifest file, and catalog 170 where uniform media content data 102a is stored in the system e.g. network storage 123 on the resource manager 120, video core 101, video edge 110, or in other system storage locations.
In Step 209, the resource manager 120 obtains the uniform media content data 102a stored in the system e.g. network storage 123 on the resource manager 120, video core 101, video edge 110, or in other system storage locations.
In Step 211, the resource manager 120 stores the uniform media content data 102a for the non-uniform media content data 102b recorded for the content media 102 in the nDVR 122 network storage 123 on the resource manager 120 or on the device 140 storage 147. The replacement of the uniform media content data 102a for the non-uniform media content data 102b recorded for the content media 102 may be to correct a dropped frame, no recorded frame, a corrupted frame, a frame of a lower resolution (e.g. SD/HD), and other replacements to provide an optimum playback for the user's experience.
As shown in
Referring to FIG.1, according to another embodiment, the system 100 may be configured with the UX platform 150 as an API that connects and subscribes to the resource manager 120 to receive resource notifications. If the UX platform 150 is configured with a mosaic viewing experience for the user having multiple streams displayed at once, In such a system, a main view and multiple other views can display multiple streams in a “mosaic” of tiles. The UX platform 150 may manage bandwidth of all the tiles on the Mosaic view, e.g. bandwidth for all mosaic tiles may utilize similar 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. 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. For any playback that requires an additional stream, the UX platform communicates with the resource manager 120 to request the stream.
In operation, the resource manager 120 can be configured to determine whether a stream may be allocated based the resources, policies, and applicable number of rules such as by the content management 122 and token restriction check 144. The resource manager 120 then broadcasts the list of streams with their latest statuses to all connected devices 140 to UX platform 150 of clients and to the DVR 143 function. The UX platform 150 may present the information to the device 140 of a user as needed to resolve resource conflicts such as, for example, the user may choose to end some conflicting streams to manually resolve the conflict. For any user actions that cause bandwidth resource changes, which include a stream starts and a stream stops, the UX platform 150 must report such events to the resource manager 120. The resource manager 120 will update the resource statuses accordingly. The UX platform 150 is configured to have the user's DVR 143 report to the resource manager 120 with current statuses of its streams.
The resource manager 120 broadcasts the list of streams including active streams and terminated/stopped/blocked streams to all connected UX platform 150 clients. The UX platform 150 must process such notifications and take actions when necessary. 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 a 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.
Accordingly, the personal channel system and method 100 can be configured to create personal channels for multiple subscribers the resource manager 120 and aspects of the CDN and system. A personalized channel may be a combination of an existing linear channel, media content in storage 147 (e.g. on the hard drive) of the user's device 140 for recording on the DVR 143, stored media content on storage 123 (e.g. in the operator facility) on the nDVR recording manager 121 of the resource manager, and/or media content delivered directly from the media content provider and/or programmer. The method of the present invention can be configured to store a predetermined arrangement of programming of the media content data in any storage 123, 127 so as to form a personalized channel for a particular user or subscriber of services in the CDN. Storing media content data from program to program can be utilized to form said predetermined arrangement of programming for the user's personalized channel such that the personalized channel is configured unique to the particular user's viewing preferences. The personal channel system and method 100 has additional advantages in storing media content data for individual programs obtained from any source in the CDN such as, for example, catalog one or more file information corresponding to media content data available in video-on-demand (VOD), digital video recording (DVR), network digital video recording NDVR or other file information corresponding to media content data sources from said CDN. The personal channel system and method 100 of the present invention has increased flexibility and adaptability to form a personalized channel configured unique to the particular user's viewing preferences and to enhanced the user experience.
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.