摘要:
A media stream delivery system encodes and fragments media streams into numerous media stream fragments maintained on fragment servers. Playlist information, media data, and bandwidth adaption data is provided as box information with media stream fragments to reduce the number of client requests required to begin playback or perform a channel change. A client no longer needs to make separate requests for bandwidth adaptation data, media data, or playlist information. Playback can begin as soon as sufficient media stream fragments are received.
摘要:
A live media stream encoding system encodes live media streams into numerous variants of the live media streams each including multiple fragments. Live media streams are delineated, dispatched as jobs, and converted using distributed and dynamically scalable encoder and fragmenter resources without using any centralized encoding management system. Encoded fragments are maintained in shared storage and accessed as needed by devices during playback. Localized redundancy and/or geographic redundancy is provided throughout the system to prevent disruption upon failure of a particular node.
摘要:
A distributed and scalable content streaming architecture includes a plurality of controllers and a plurality of servers. The controllers are operable to establish Real-Time Streaming Protocol (RTSP) sessions with individual devices. A controller selects a server to provide a requested media stream to a device. The server may be selected based on its proximity to the device, bandwidth availability, or latency characteristics. The server transmits the media stream using a Real-Time Transport Protocol (RTP) and/or a Real-Time Control Protocol (RTCP). A controller can manage a number of sessions many times greater than the number of streams a server can provide, so a controller typically has access to multiple servers. Additional servers can be added to a system without disrupting system operation.
摘要:
A media stream delivery system encodes and fragments media streams into numerous media stream fragments maintained on fragment servers. Playlist information, media data, and bandwidth adaption data is provided as box information with media stream fragments to reduce the number of client requests required to begin playback or perform a channel change. A client no longer needs to make separate requests for bandwidth adaptation data, media data, or playlist information. Playback can begin as soon as sufficient media stream fragments are received.
摘要:
A content server is configured to buffer and transmit numerous live media streams to individual devices. The content server analyzes characteristics associated with the live media streams to determine timing and sequence number information. Other characteristics such as network congestion metrics, device buffer usage metrics, etc., can also be evaluated. Combined peak transmission times are determined to allow packets designated for transmission at a bandwidth usage peak to be transmitted earlier in time. Earlier packets are shifted even earlier as sequence numbers allow. This evens out bandwidth usage rates and allows improved live media stream transmission.
摘要:
The media stream delivery system encodes and fragments media streams into numerous media stream fragments maintained on fragment servers. Devices obtain fragments to reconstruct media streams including live real-time media streams for playback on the devices. A device may perform caching of media stream fragments so that particular fragments need not be accessed again from a fragment server. A fragment server or even a content provider can analyze and monitor characteristics of media streams, viewing behavior, content popularity, etc., to identify fragments for caching at the playback devices. Caching indicators along with time period indicators may be included in the media stream fragments.
摘要:
Live media streams are encoded and fragmented to generate encoded fragments appropriate for different devices and networks. Different encoded fragments may correspond to different resolutions, audio bit rates, quality levels, and even codecs, etc. Devices request encoded fragments as needed to reconstitute a live media stream for playback. In many instances, encoding and fragmentation jobs are provided to numerous distributed and scalable encoder and fragmenter systems. Encoding and fragmentation jobs are intelligently weighted and scheduled to prevent any disruption or delay in playback of any particular live stream.
摘要:
Client buffer thresholds are dynamically adjusted to provide quick start up and smooth playback in a variety of network conditions. In some examples, multiple buffer configurations are available. An initial buffer configuration may be used in typical circumstances and will yield good behavior in most cases. A modified buffer configuration can be used when limited available network resources prevent smooth playback. In some embodiments, a client buffer configuration is continuously adapted based on network throughput and data transfer rates.
摘要:
Mechanisms are provided to accelerate Real-Time Streaming Protocol (RTSP) setup messages. A client transmits an RTSP request to a server. The server responds to the request and preemptively responds with acknowledgements for messages not yet received. For example, a server responds to an RTSP describe message with an RTSP describe acknowledgement, an RTSP setup acknowledgement, and an RTSP play response before setup and play messages are received by the server or even transmitted by the client. The client processes the anticipatory responses and transmits setup and play responses when the anticipatory responses are processed.
摘要:
Mechanisms are provided for performing real-time synchronization of key frames across multiple streams. A streaming server samples frames from variant media streams corresponding to different quality levels of encoding for a piece of media content. The streaming server identifiers key frames in the media streams and points in time to sample for key frames that increase the chances of detecting key frames from the same group of pictures (GOPs). In some examples, the sampling point is substantially in the middle between two GOPs. When a connection request is received from a client device for an alternative stream, a measured delay is used to calculate an improved start time.