Adaptive video server with data rate control and methods for use therewith
First Claim
1. A streaming server comprising:
- a virtual file system that stores playlist data corresponding to a plurality of video programs available from at least one video source and that further stores variant playlist data corresponding to each of the plurality of video programs that indicates a single variant for streaming each of the plurality of video programs, wherein the variant playlist data includes network addresses corresponding to a plurality of program segments, prior to generating the plurality of program segments;
a network interface, coupled to bidirectionally communicate with a client device and to bidirectionally communicate with the at least one video source via at least one network, wherein the network interface further generates transmission feedback data;
a rate generator, coupled to the network interface, that generates rate data based on the transmission feedback data;
a command handler, coupled to the network interface and the virtual file system, that receives a request for a selected one of the plurality of video programs from the client device via the network interface and retrieves the selected one of the plurality of video programs from the at least one video source via the network interface and segments the selected one of the plurality of video programs into the plurality of program segments, in response to the request; and
a video encoder, coupled to the rate generator and the command handler, that encodes the plurality of program segments into a plurality of encoded video program segments at a rate that is controlled based on the rate data.
3 Assignments
0 Petitions
Accused Products
Abstract
A streaming video server includes a virtual file system that stores playlist data corresponding to a plurality of video programs available from at least one video source and that stores variant playlist data corresponding to each of the plurality of video programs that indicates a single variant for streaming each of the plurality of video programs. The streaming video server receives a request for a selected one of the plurality of video programs from a client device. The selected one of the plurality of video programs is retrieved from the at least one video source in response to the request. A rate generator generates rate data based on the transmission feedback data. A plurality of encoded segments are generated from the selected one of the plurality of video programs, based on rate data.
-
Citations
16 Claims
-
1. A streaming server comprising:
-
a virtual file system that stores playlist data corresponding to a plurality of video programs available from at least one video source and that further stores variant playlist data corresponding to each of the plurality of video programs that indicates a single variant for streaming each of the plurality of video programs, wherein the variant playlist data includes network addresses corresponding to a plurality of program segments, prior to generating the plurality of program segments; a network interface, coupled to bidirectionally communicate with a client device and to bidirectionally communicate with the at least one video source via at least one network, wherein the network interface further generates transmission feedback data; a rate generator, coupled to the network interface, that generates rate data based on the transmission feedback data; a command handler, coupled to the network interface and the virtual file system, that receives a request for a selected one of the plurality of video programs from the client device via the network interface and retrieves the selected one of the plurality of video programs from the at least one video source via the network interface and segments the selected one of the plurality of video programs into the plurality of program segments, in response to the request; and a video encoder, coupled to the rate generator and the command handler, that encodes the plurality of program segments into a plurality of encoded video program segments at a rate that is controlled based on the rate data. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method for use in a streaming server, the method comprising:
-
storing playlist data corresponding to a plurality of video programs available from at least one video source; storing variant playlist data corresponding to each of the plurality of video programs that indicates a single variant for streaming each of the plurality of video programs, wherein the variant playlist data includes network addresses corresponding to a plurality of program segments, prior to generating the plurality of program segments; bidirectionally communicating with a client device and the at least one video source via a network interface, wherein the network interface further generates transmission feedback data; generating rate data based on the transmission feedback data; receiving a request for a selected one of the plurality of video programs from the client device via the network interface; retrieving the selected one of the plurality of video programs from the at least one video source via the network interface and segmenting the selected one of the plurality of video programs into plurality of program segments, in response to the request and after receiving the request; and encoding the plurality of program segments into a plurality of encoded video program segments at a rate that is controlled based on the rate data. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
Specification