Embodiments of the present invention relate to viewing and filtering media content. In one embodiment, the invention is a system for networking based redirecting of content, including but not limited to, media files, electronic documents, application data, on-demand data, and live-streamed data. The system includes at least one content delivery network (cdn) comprising a processor, memory to store data used by a processor, where the system includes more than one encoder server capable of sending more than one bit rate for a channel to an anchor server, where the anchor server determines which ingestion server to send content to, and where the channel content bit rate sent to a user device is dependent upon the user device internet bandwidth.
|
13. A method for managing content of at least one content delivery network server (cdn), comprising:
sending a plurality of channel content to a plurality of anchor servers, wherein the plurality of channel content have at least four streams each with a different bit rate;
determining that an ingestion server should receive the plurality of channel content;
determining that each of a plurality of user devices has internet bandwidth for the plurality of channel content with at least one of the different bit rates;
instructing a first cdn to perform an action so that the plurality of user devices receive the plurality of channel content; and
determining whether a first cdn has failed to perform the action, and if the first cdn failed to perform the action, then instruct a second cdn to take over and perform the action of the first cdn so that the plurality of user devices receive the plurality of channel content.
7. A computer program for managing content of at least one content delivery network server (cdn), embodied on a non-transitory computer readable medium, the computer program, when executed by a processor, causes the processor to:
send a plurality of channel content to a plurality of anchor servers, wherein the plurality of channel content have at least four streams each with a different bit rate;
determine that an ingestion server should receive the plurality of channel content;
determine that each of a plurality of user devices has internet bandwidth for the plurality of channel content with at least one of the different bit rates;
instruct a first cdn to perform an action so that the plurality of user devices receive the plurality of channel content; and
determine whether a first cdn has failed to perform the action, and if the first cdn failed to perform the action, then instruct a second cdn to take over and perform the action of the first cdn so that the plurality of user devices receive the plurality of channel content.
1. A system for managing content of at least one content delivery network server (cdn), the system comprising:
at least one processor; and
at least one memory including computer program code,
wherein the at least one memory and the computer program code are configured to, with the at least one processor, cause the system to:
send a plurality of channel content to a plurality of anchor servers, wherein the plurality of channel content have at least four streams each with a different bit rate;
determine that an ingestion server should receive the plurality of channel content;
determine that each of a plurality of user devices has internet bandwidth for the plurality of channel content with at least one of the different bit rates;
instruct a first cdn to perform an action so that the plurality of user devices receive the plurality of channel content; and
determine whether a first cdn has failed to perform the action, and if the first cdn failed to perform the action, then instruct a second cdn to take over and perform the action of the first cdn so that the plurality of user devices receive the plurality of channel content.
2. The system according to
3. The system according to
4. The system according to
check a number of active sessions across different user devices that are receiving the plurality of channel content to determine if the number of active sessions exceeds a threshold amount,
limit the number of active sessions across different user devices receiving the plurality of channel content,
delete a previously active session that is an oldest active session, in order to activate a new active session, and
add a new active session after deleting the previously active session.
5. The system according to
8. The computer program according to
9. The computer program according to
10. The computer program according to
check a number of active sessions across different user devices that are receiving the plurality of channel content to determine if the number of active sessions exceeds a threshold amount,
limit the number of active sessions across different user devices receiving the plurality of channel content,
delete a previously active session that is an oldest active session, in order to activate a new active session, and
add a new active session after deleting the previously active session.
11. The computer program according to
14. The method according to
15. The method according to
16. The method according to
check a number of active sessions across different user devices that are receiving the plurality of channel content to determine if the number of active sessions exceeds a threshold amount,
limiting the number of active sessions across different user devices receiving the plurality of channel content,
deleting a previously active session that is an oldest active session, in order to activate a new active session, and
adding a new active session after deleting the previously active session.
17. The method according to
18. The method according to
|
This Application is a Continuation of co-pending U.S. patent application Ser. No. 15/263,325, filed on Sep. 12, 2016, which claims priority from U.S. Provisional Patent Application No. 62/217,620, filed on Sep. 11, 2015. The entire disclosures of these earlier applications are hereby incorporated herein by reference.
Embodiments of the present invention relate to viewing and filtering media content.
Content delivery networks may provide content to end-users via an internet content delivery network (CDN). A CDN is a network of geographically distributed system of servers that arrange for efficient delivery of content on behalf of third party content providers. The provided content may include, but is not limited to, media files, electronic documents, application data, on-demand data, and live-streamed data, for example.
For proper understanding of the invention, reference should be made to the accompanying drawings, wherein:
This invention discloses several embodiments for viewing and filtering media content. This description uses terms such as “one embodiment” or “an embodiment” to mean that a particular feature, structure, or characteristic described in connection with the embodiment can be included in at least one embodiment of the invention. The appearances of the phrase “in one embodiment” in various places in the specification are not necessarily all referring to the same embodiment, nor are separate or alternative embodiments necessarily mutually exclusive of other embodiments.
For purposes of understanding the invention, it should be understood that terms “component,” “module,” “interface,” or the like are generally intended to refer to a computer-related entity, either hardware, a combination of hardware and software, software, or software in execution. For example, a component may be, but is not limited to being, a process running on a processor, a processor, an object, an executable, a thread of execution, a program, and/or a computer. By way of illustration, both an application running on a controller and the controller can be a component. One or more components may reside within a process and/or thread of execution and a component may be localized on one computer and/or distributed between two or more computers.
Further, it should be understood that various embodiments of systems and methods described herein may be implemented fully or partially in software and/or firmware. This software and/or firmware may take the form of instructions contained in or on a non-transitory computer-readable storage medium. Those instructions then may be read and executed by one or more processors to enable performance of the operations described herein. The instructions may be in any suitable form such as, but not limited to, source code, compiled code, interpreted code, executable code, static code, dynamic code, and the like. Such a computer-readable medium may include any tangible non-transitory medium for storing information in a form readable by one or more computers such as, but not limited to, read only memory (ROM); random access memory (RAM); magnetic disk storage media; optical storage media; a flash memory, etc.
In addition, the embodiments of systems and methods described herein may be implemented in a variety of systems including, but not limited to, smartphones, tablets, laptops, and combinations of computing devices and cloud computing resources. For instance, portions of the operations may occur in one device, and other operations may occur at a remote location, such as a remote server or servers. For instance, the collection of the data may occur at a smartphone, and the data analysis may occur at a server or in a cloud computing resource. Any single computing device or combination of computing devices may execute the methods described.
Certain embodiments of the present invention relate to implementing a system for viewing and filtering media content. The content may be delivered via different media channels. A media channel may generally refer to physical or logical connection that is used to transmit a signal. The transmitted signal may be in the form of a digital or analog stream, for example. Different channels may transmit different types of content. With the introduction of a large number of different channels that are viewable by a user, the user may wish to filter the different channels in accordance with certain criteria that is specified by the user. By filtering the different channels, a user may more readily determine channels that are relevant to the user's interests, for example.
In view of the above, certain embodiments of the present invention may be directed to providing functionality that allows a user to perform channel filtering.
As described in more detail below, the plurality of channels may be filtered in accordance with the logical framework of categories and criteria. The filtered results may be channels that meet the following logical condition: (Category 1 [Sub Category 1 OR Sub Category 2 OR Sub Category 3 . . . ]) AND (Category 2 [Sub Category 2 OR Sub Category 2 OR Sub Category 3 . . . ]) AND (Category 3 [Sub Category 1 OR Sub Category 2 OR Sub Category 3 . . . ]) AND . . . .
For example, referring to the example of
In addition, the user interface of
In view of the above, a user may perform in-depth filtering of media channels. Certain embodiments may provide an intuitive interface, such as the interface of
In general, as described above, the user may filter desired channels out of a larger plurality of channels.
In addition, in one embodiment, a user may select a specific channel or show and forward a link to another user via text, SMS, email, facebook messenger, or the like. A user may also select a specific channel or show and forward a link containing a token to a non-user, where the user then is given a short time to view the channel or show.
Certain embodiments may also provide a customizable interface that reports different statistics/measurements relating to the user's viewing experience. The different statistics/measurements that are reported may include, for example, the utilized bandwidth, the utilized resources, and/or any other usage reporting and statistics related to a user's viewing session.
Certain embodiments may be directed to customizable sub-accounts that may be granted to others who are associated with a user. For, example a user may customize a sub-account for the user's family members, friends, or other acquaintances. The created sub-accounts can include customized functionality and/or preferences that are different than the functionality/preferences of the main account of the user.
Additionally, certain embodiments may implement dynamic session management via a registration of devices, regardless of the type of device, as described in more detail below. The registration of different devices, regardless of the type of device, may generally be referred to as “agnostic registration. “
Referring to
As illustrated in
Certain embodiments of the present invention may be directed to implementing features on back-end systems.
Each user device 1010 may initiate a login, which includes performing each of the communication flows 1040-1090. With regard to communication flow 1040, the user device may provide user authentication information to the customer record database 1030. Next, with communication flow 1050, the customer record database 1030 may provide package information to the user device 1010. The package information may include, for example, information that indicates the type of service package that the user has subscribed to. Next, with communication flow 1060, the user device requests metadata regarding the content that is to be displayed on the user interfaces for the user (where the user interfaces may correspond to the user interfaces shown in
Certain embodiments may utilize multiple CDNs. By utilizing multiple CDNs, certain embodiments may perform active switching between the different CDNs. By performing such active switching, certain embodiments may perform superior live streaming for better streaming availability and reliability. For example, certain embodiments may have the ability to use multiple different CDNs (e.g., an Akamai™ CDN and/or an L-3™ CDN, for example). In addition, the content delivery network (CDN) may alternatively be multiple servers designed to serve video or other content from content publishers to the end users. Note that the CDN may be servers in one location, or may be distributed on a cloud.
Certain embodiments may be directed to a back end that uses multiple Electronic Programming Guide (EPG) metadata. In other words, certain embodiments allow multiple metadata sources to be used for each channel, allowing each channel to utilize the best possible channel programming information.
Certain embodiments may implement an analytics engine to collect and generate statistics regarding the users, while maintaining the anonymity of the users.
Apparatus 10 can further include a memory 14, coupled to processor 22, for storing information and instructions that can be executed by processor 22. Memory 14 can be one or more memories and of any type suitable to the local application environment, and can be implemented using any suitable volatile or nonvolatile data storage technology such as a semiconductor-based memory device, a magnetic memory device and system, an optical memory device and system, fixed memory, and removable memory. For example, memory 14 include any combination of random access memory (RAM), read only memory (ROM), static storage such as a magnetic or optical disk, or any other type of non-transitory machine or computer readable media. The instructions stored in memory 14 can include program instructions or computer program code that, when executed by processor 22, enable the apparatus 10 to perform tasks as described herein.
Apparatus 10 can also include one or more antennas (not shown) for transmitting and receiving signals and/or data to and from apparatus 10. Apparatus 10 can further include a transceiver 28 that modulates information on to a carrier waveform for transmission by the antenna(s) and demodulates information received via the antenna(s) for further processing by other elements of apparatus 10. In other embodiments, transceiver 28 can be capable of transmitting and receiving signals or data directly.
Processor 22 can perform functions associated with the operation of apparatus 10 including, without limitation, precoding of antenna gain/phase parameters, encoding and decoding of individual bits forming a communication message, formatting of information, and overall control of the apparatus 10, including processes related to management of communication resources.
In an embodiment, memory 14 can store software modules that provide functionality when executed by processor 22. The modules can include an operating system 15 that provides operating system functionality for apparatus 10. The memory can also store one or more functional modules 18, such as an application or program, to provide additional functionality for apparatus 10. The components of apparatus 10 can be implemented in hardware, or as any suitable combination of hardware and software.
The claimed invention also has numerous variations to accommodate customers. For instance, in one embodiment, the user device can stream the video content directly to a larger screen such as a computer screen, tablet, or TV via chromecast, cables (HDMI cable, displayport cable, and the like), wireless communication (Bluetooth, appletv, wifi).
In one embodiment, the user device 1500 logged into the account displays a user interface that includes a header bar 1510 that may display account access and possible alerts or messages. The user interface also contains at least one video content 1520 that plays the video, a playing now bar 1530 that may show the current channel, program, time and the like. The bar 1530 may also allow a user to toggle the channel or show as a favorite for the user. The user interface may also contain a content browser 1540 that illustrates channels and shows, where the user may search for content, rearrange the channels or shows. The content browser may display icon displays for live content, reminder icons for programs which air in the future, set reminders (10 minute reminder for a show), and show names and channel icon that change to that channel and play current live program. Here the user can swipe up, down, left and right to change the panel or see more content. The content bar 1550 may also show information such as channels, shows, search function icon and filter icon. Other variations of the content bar 1550 include an icon for DVR (recording show(s)) functionality.
In one embodiment, a user may add a reminder to a user calendar (including but not limited to Microsoft outlook, Google calendar, Apple calendar and the like) to watch a certain show. In this embodiment, upon locating a show of interest where the program airs in the future, the user may engage the set reminder icon. The reminder parameters (time in advance for reminder, method of reminder, and the like) may be set by the user. Engaging the set reminder icon may also result in a native dialogue pop up on the user interface, requesting access to the calendar to add a reminder on the calendar of the program viewing time.
The described features, advantages, and characteristics of the invention can be combined in any suitable manner in one or more embodiments. One skilled in the relevant art will recognize that the invention can be practiced without one or more of the specific features or advantages of a particular embodiment. In other instances, additional features and advantages can be recognized in certain embodiments that may not be present in all embodiments of the invention. One having ordinary skill in the art will readily understand that the invention as discussed above may be practiced with steps in a different order, and/or with hardware elements in configurations which are different than those which are disclosed. Therefore, although the invention has been described based upon these preferred embodiments, it would be apparent to those of skill in the art that certain modifications, variations, and alternative constructions would be apparent, while remaining within the spirit and scope of the invention.
Holder, Louis, Tribolet, Michael, Sarnowski, Tomasz
Patent | Priority | Assignee | Title |
Patent | Priority | Assignee | Title |
9680685, | May 08 2014 | SPB TV AG | System and method for managing video content feeds |
20050005025, | |||
20110197237, | |||
20110296048, | |||
20120023530, | |||
20120114302, | |||
20120317197, | |||
20130031211, | |||
20130246643, | |||
20140019593, | |||
20140108671, | |||
20150085654, | |||
20150326868, | |||
20160044080, | |||
20160307596, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Jul 16 2018 | YIPTV, INC. | (assignment on the face of the patent) | / |
Date | Maintenance Fee Events |
Jul 16 2018 | BIG: Entity status set to Undiscounted (note the period is included in the code). |
Jul 31 2018 | SMAL: Entity status set to Small. |
Feb 26 2024 | REM: Maintenance Fee Reminder Mailed. |
Aug 12 2024 | EXP: Patent Expired for Failure to Pay Maintenance Fees. |
Date | Maintenance Schedule |
Jul 07 2023 | 4 years fee payment window open |
Jan 07 2024 | 6 months grace period start (w surcharge) |
Jul 07 2024 | patent expiry (for year 4) |
Jul 07 2026 | 2 years to revive unintentionally abandoned end. (for year 4) |
Jul 07 2027 | 8 years fee payment window open |
Jan 07 2028 | 6 months grace period start (w surcharge) |
Jul 07 2028 | patent expiry (for year 8) |
Jul 07 2030 | 2 years to revive unintentionally abandoned end. (for year 8) |
Jul 07 2031 | 12 years fee payment window open |
Jan 07 2032 | 6 months grace period start (w surcharge) |
Jul 07 2032 | patent expiry (for year 12) |
Jul 07 2034 | 2 years to revive unintentionally abandoned end. (for year 12) |