Intelligent video streaming system

US9838725B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9838725-B2
Application numberUS-201514884559-A
CountryUS
Kind codeB2
Filing dateOct 15, 2015
Priority dateApr 27, 2015
Publication dateDec 5, 2017
Grant dateDec 5, 2017

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A system for intelligent video streaming a video controller having at least one processor and non-transitory computer readable media having a set of instructions executable by the at least one processor to receive a playback request from a user device for a live stream, determine, from the playback request, whether source streaming content for the live stream is being transcoded, and allocate an available transcoder to transcode the source streaming content. The system further includes a transcoding having at least one processor and non-transitory computer readable media having a set of instructions executable by the at least one processor to join the multicast stream, retrieve the source streaming content, and transcode the source streaming content, and provide transcoded streaming content for delivery to the user device.

First claim

Opening claim text (preview).

What is claimed is: 1. A system for intelligent video streaming comprising: a user device in communication with a service provider network, the user device generating a playback request for a live stream in response to a user selection to view a channel associated with live stream; a video controller in communication with the user device and accessible over the service provider network, the video controller comprising: at least one processor; non-transitory computer readable media having encoded thereon computer software comprising a set of instructions executable by the at least one processor to: allocate at least one transcoder of a pool of transcoders to be continuously active based on analysis of viewing history of a plurality of users, the viewing history comprising at least one of one or more commonly watched channels, one or more commonly watched live streams, viewing history by time of day, viewing history by day of week, viewing history by specific time ranges, viewing history by specific date ranges, viewing requests exceeding a threshold number of requests from the plurality of users for one or more particular channels, or viewing requests exceeding a threshold number of requests from the plurality of users for one or more particular live streams; receive, from the user device, the playback request for the live stream; determine, from the playback request, whether source streaming content for the live stream is being transcoded; allocate, in response to determining that the source streaming content is not being transcoded, an available transcoder from the pool of transcoders to join a multicast stream and transcode the source streaming content; determine, while the streaming content is being transcoded, that no user devices are viewing the streaming content of the live stream for a first threshold period; determine, while the streaming content is being transcoded, that no requests for the live stream have been received from any user devices for a second threshold period; and release the available transcoder that is currently transcoding the streaming content, in response to a determination that no user devices have viewed the transcoded streaming content of the live stream for the first threshold period, and that no requests for the live stream have been received for the second threshold period; wherein the available transcoder of the pool of transcoders further comprises: at least one processor; non-transitory computer readable media having encoded thereon a set of instructions executable by the at least one processor to: generate a join request for the multicast stream of the source streaming content; join the multicast stream; retrieve, from the multicast stream, the source streaming content; transcode the source streaming content for viewing by the user device; and provide transcoded streaming content for delivery to the user device. 2. The system of claim 1 , wherein the video controller further comprises instructions to return, to the user device, in response to receiving the playback request, a pre-roll video playlist, wherein the pre-roll video playlist indicates one or more videos to be played before the requested stream is provided to the user device. 3. The system of claim 2 , wherein the pre-roll video playlist includes one or more of a dynamic advertisement, static advertisement, static video, or other live stream. 4. The system of claim 1 , wherein the video controller further comprises instructions to track how many transcoders of the pool of transcoders are in use. 5. The system of claim 4 , wherein the video controller further comprises instructions to generate an alert if a number of available transcoders in the pool of transcoders falls below a threshold. 6. The system of claim 4 , further comprising at least one transcoder host machine, wherein the transcoders comprise virtualized transcoder instances hosted on the transcoder host machine, wherein the video controller further comprises instructions to dynamically scale the number of virtualized transcoder instances provisioned on the at least one transcoder host machine according to load requirements. 7. The system of claim 1 , wherein the video controller further comprises instructions to assign idle transcoders in the pool of transcoders to transcode at least one of video on demand content or adaptive bitrate streaming content, wherein the idle transcoder is an available transcoder that may be dynamically requested by the video controller, wherein in response to being requested, the idle transcoder will switch from transcoding the at least one of video on demand content or adaptive bitrate streaming content to transcoding the source streaming content for the content stream. 8. An intelligent video streaming controller comprising: at least one processor; non-transitory computer readable media having encoded thereon computer software comprising a set of instructions executable by the at least one processor to: allocate at least one transcoder of a pool of transcoders to be continuously active based on analysis of viewing history of a plurality of users, the viewing history comprising at least one of one or more commonly watched channels, one or more commonly watched live streams, viewing history by time of day, viewing history by day of week, viewing history by specific time ranges, viewing history by specific date ranges, viewing requests exceeding a threshold number of requests from the plurality of users for one or more particular channels, or viewing requests exceeding a threshold number of requests from the plurality of users for one or more particular live streams; receive, from a user device, a playback request for a live stream associated with a channel selected by the user device; determine, from the playback request, whether the source streaming content for the live stream is being transcoded; allocate, in response to determining that the source streaming content is not being transcoded, an available transcoder from the pool of transcoders; identify, based on the playback request, a multicast stream for the source streaming content; retrieve, via the available transcoder, the source streaming content from the multicast stream; transcode, via the available transcoder, the source streaming content; provide, via the available transcoder, transcoded streaming content for delivery to the user device; determine, while the streaming content is being transcoded, that no user devices are viewing the streaming content of the live stream for a first threshold period; determine, while the streaming content is being transcoded, that no requests for the live stream have been received from any user devices for a second threshold period; and release the available transcoder that is currently transcoding the streaming content, in response to a determination that no user devices have viewed the transcoded streaming content of the live stream for the first threshold period, and that no requests for the live stream have been received for the second threshold period. 9. The video controller of claim 8 , further comprising instructions to return, to the user device, in response to receiving the playback request, a pre-roll video playlist, wherein the pre-roll video playlist indicates one or more videos to be played before the requested stream is provided to the user device. 10. The video controller of claim 8 , further comprising instructions to track how many transcoders of the pool of transcoders are in use. 11. The video controller of claim 10 , further comprising instructions to generate an alert if a number of transcoders in the pool of transcoders falls below a threshold.

Assignees

Inventors

Classifications

  • Multicasting {(data broadcast and multicast in packet switching networks H04L12/18)} · CPC title

  • Monitoring of the internal components or processes of the server, e.g. server load (allocation of resources in multiprogramming arrangements G06F9/50; performance measurement of computer activity G06F11/34) · CPC title

  • Interfacing the upstream path of the transmission network, e.g. for transmitting client requests to a VOD server {(flow control in data networks H04L47/10; streaming protocols, e.g. RTP or RTCP, H04L65/65; scheduling or organising the servicing of application requests in data packet switching networks H04L67/60)} · CPC title

  • by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4 or from Quicktime to Realvideo (conversion of standards in analog television systems H04N7/01) · CPC title

  • involving transmission via Internet (transmission by internet of broadcast information H04H60/82) · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9838725B2 cover?
A system for intelligent video streaming a video controller having at least one processor and non-transitory computer readable media having a set of instructions executable by the at least one processor to receive a playback request from a user device for a live stream, determine, from the playback request, whether source streaming content for the live stream is being transcoded, and allocate a…
Who is the assignee on this patent?
Centurylink Ip Llc, Century Link Intellectual Property LLC
What technology area does this patent fall under?
Primary CPC classification H04N21/234309. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Dec 05 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 2 related publications on this page (citations in our corpus or others sharing the same primary CPC).