Server side adaptive bit rate control for http streaming clients
US-2015381690-A1 · Dec 31, 2015 · US
US9838725B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9838725-B2 |
| Application number | US-201514884559-A |
| Country | US |
| Kind code | B2 |
| Filing date | Oct 15, 2015 |
| Priority date | Apr 27, 2015 |
| Publication date | Dec 5, 2017 |
| Grant date | Dec 5, 2017 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
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.
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.
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
Related publications grouped by family.
Answers are generated from the same data shown on this page.