Patent ID: 9015470
Filing Date: 2015-04-21
Classification: H04L,H04N

Abstract:
1. A streaming server comprising: at least one memory; at least one processor that operates in conjunction with the at least one memory; a virtual file system that operates via the at least one memory that stores playlist data corresponding to a plurality of video programs available from at least one video source in a memory of the streaming server and that further stores variant playlist data corresponding to each of the plurality of video programs, wherein the virtual file system includes a segment memory that stores at least one initial video program segment for each of the plurality of video programs; 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 that operates via the at least one processor, coupled to the network interface, that generates rate data based on the transmission feedback data; a command handler that operates via the at least one processor, 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 in response to the request; and a video encoder that operates via the at least one processor, coupled to the rate generator and the command handler, that encodes the selected one of the plurality of video programs into a plurality of encoded video program segments at a rate that is controlled based on the rate data; and a multiplexer that the operates via the at least one processor of the streaming server, coupled to the virtual file system and the video encoder, that generates a plurality of output segments from the at least one initial video program segment corresponding to the selected one of the plurality of video programs during an initial temporal period and that generates the plurality of output segments from the plurality of encoded video program segments subsequent to the initial temporal period in a temporal sequence of the plurality of output segments, wherein the at least one initial video program segment includes a plurality of initial video program segments that cover the initial temporal period of selected one of the plurality of video programs corresponding to an initial latency period of the video encoder in producing a first encoded video segment in a temporal sequence of the plurality of encoded video program segments.