Abstract:
Data objects can be delivered over a network using a file delivery system and universal object delivery and template-based file delivery. This might be done by forming source data into a sequence of data objects represented by symbols in packets, sending those to receivers on request, wherein a transmitter obtains a template file delivery table with delivery metadata for the data objects, and constructing a first transmission object identifier for a data object based on a transmission object identifier construction rule described in the template file delivery table. A receiver might receive packets, extract a second transmission object identifier, associate encoded symbols comprising the received data packet with the data object if the first transmission object identifier and the second transmission object identifier identify the same data object, and recover, at least approximately, the source data for the data object based on the encoded symbols associated with the data object.
Abstract:
Data objects are delivered over a packet-switched network and receivers receive encoded symbols, such as repair symbols, broadcast or multicast, with sufficient information to form requests for additional symbols as needed based on what source symbols or sub-symbols are needed or missing. The requests can be made in a unicast or request fashion. Requesting and broadcasting might be done by different entities. A broadcast server can generate and store repair symbols while a source server can store content in source form. A request can be a unicast HTTP byte-range request, such as a URL, starting position and length. Requests might be aligned with starting positions of files. A receiver can calculate starting and ending byte positions of symbols or sub-symbols in a file and get indications that conventional HTTP servers are usable for file repair. Repair servers can request broadcast of repair data when byte-range requests from multiple receivers overlap.
Abstract:
A client device presents streaming media and includes a stream manager for controlling streams, a request accelerator for making network requests for content, a source component coupled to the stream manager and the request accelerator for determining which requests to make, a network connection, and a media player. A process for rate estimation is provided that will react quickly to reception rate changes. The rate estimator can use an adaptive windowed average and take into account the video buffer level and the change in video buffer level in a way so to guarantee that the rate adjusts fast enough if there is a need, while keeping the windowing width large (and thus the measurement variance) large. A guarantee might be that when a rate drop or rise happens, the estimator adjusts its estimate within a time proportional to a buffer drain rate or buffer fill level.
Abstract:
A client/receiver downloads data over a network path between a source and the receiver coupled by the network path and stores the media data in a presentation buffer of the receiver and from there it is consumed by a presentation element. The receiver monitors a presentation buffer fill level that represents what portion of the presentation buffer contains media data not yet consumed by a presentation element. The receiver makes requests for additional data to download. If the fill level is above a high fill threshold, the receiver does not make further requests and eventually the fill level goes down. If the fill level is below a low fill threshold, the receiver restarts the downloading and updates the fill level as media data is consumed by the presentation element. The fill level might be measured in units of memory storage capacity and/or units of presentation time.
Abstract:
A client device presents streaming media and includes a stream manager for controlling streams, a request accelerator for making network requests for content, a source component coupled to the stream manager and the request accelerator for determining which requests to make, a network connection, and a media player. The request accelerator can accelerate a download rate using a plurality of TCP connections. A target download rate can vary among HTTP requests. The TCP receiver window size for a given TCP connection might be based on the target download rate for that TCP connection and/or a current estimated round-trip time for the current TCP connection multiplied by a multiplier rate, wherein the multiplier rate is within a range bounded by the target download rate for the current TCP connection and a rate that is higher than the target download rate by a predetermined amount.
Abstract:
A block-request streaming system provides for low-latency streaming of a media presentation. A plurality of media segments are generated according to an encoding protocol. Each media segment includes a random access point. A plurality of media fragments are encoded according to the same protocol. The media segments are aggregated from a plurality of media fragments.
Abstract:
Data objects can be delivered over a network using a file delivery system and universal object delivery and template-based file delivery. This might be done by forming source data into a sequence of data objects represented by symbols in packets, sending those to receivers on request, wherein a transmitter obtains a template file delivery table with delivery metadata for the data objects, and constructing a first transmission object identifier for a data object based on a transmission object identifier construction rule described in the template file delivery table. A receiver might receive packets, extract a second transmission object identifier, associate encoded symbols comprising the received data packet with the data object if the first transmission object identifier and the second transmission object identifier identify the same data object, and recover, at least approximately, the source data for the data object based on the encoded symbols associated with the data object.
Abstract:
A receiver receives media for playing out using a presentation element of the receiver can make requests and wait for responses, but can also cancel requests, possibly reissuing new requests, to improve a user experience taking into account network and other conditions. The receiver can select a playback rate and make requests at that playback rate, monitor a presentation buffer that stores media data to be consumed by a presentation element, store an indication of a buffer level corresponding to how much of the presentation buffer is occupied by the media data that is received and not yet consumed by the presentation element, maintain a state of an issued request for downloading a selected first chunk of media data, and when an issued request is outstanding, determine, based on network conditions and the state of the issued request, whether to continue the request or cancel the request.
Abstract:
A client device presents streaming media and includes a stream manager, a request accelerator, and a source component coupled to the stream manager and the request accelerator for determining which requests to make. A rate selection process can make rate decisions so that the buffer is filled when it is low, avoiding erratically changing rates and can choose the correct steady rate quickly. Multimedia download strategies can be used for HTTP that allow for accurate rate estimations, achieving link capacity even if network delays and packet loss rates are high, achieving timely delivery of the stream, and achieving relatively steady download rates with little short term variability. A receiver might use multiple HTTP connections, decompose media requests into smaller chunk requests, synchronize the connections using TCP flow control mechanisms, and request data in bursts. In addition, the receiver might use an HTTP pipelining process to keep the connections busy.