Abstract:
A computer system receives a first compressed media stream and stores corresponding data in a first compressed buffer. The computer system generates a first decompressed media stream based on the first compressed media stream. While providing the first decompressed media stream to a presentation device, the computer system receives a content-transition indication indicating that a second decompressed media stream is to be provided to the presentation device instead of the first decompressed media stream. While continuing to generate the first decompressed media stream using the first compressed buffer, the computer system receives a second compressed media stream corresponding to the second decompressed media stream and stores corresponding data in a second compressed buffer. After storing the data in the second compressed buffer, the computer system provides a second decompressed media stream, based on the second compressed media stream, to the presentation device instead the first decompressed media stream.
Abstract:
In accordance with an embodiment, described herein is a system and method for providing commercial (advertisement) detection in digital media environments. A media stream, for example, a video stream of television shows or movies, can be analyzed either in advance or in realtime, to determine commercial segments or blocks within the media stream, and to distinguish them from (non-commercial) content segments or blocks. In accordance with an embodiment, frame features, black spaces, cue points, or other segment or block information can be used to improve the accuracy and precision with which commercials are identified. Particular commercials can be identified, together with information as to the location of those commercials within the media stream. In accordance with an embodiment, the media streams can be used within an on-demand cloud-based media environment, which allows a user to select within a plurality of media channels, or to locate or skip particular commercials.
Abstract:
An electronic device with one or more processors, memory and a display receives a first request to display a first video stream and in response, displays the first video stream. The device allocates, in accordance with a bandwidth allocation, available bandwidth for receiving data at the device between receiving the first video stream and preloading one or more other, non-displayed, video streams. While displaying the first video stream on the display, the device preloads at least a portion of one or more non-displayed video streams based on the bandwidth allocation. After the preloading, the device receives a second request to display a second video stream. In response to receiving the second request, the device displays at least a portion of the second video stream on the display using a preloaded portion of the second video stream that was preloaded in accordance with the bandwidth allocation.
Abstract:
An electronic device with one or more processors, memory and a display obtains information that enables distribution of content to a plurality of clients having different file format processing capabilities. The device provides, to a first client, first information that enables access to respective content in a first file format and provides, to a second client, second information that enables access to the respective content in a second file format different from the first file format. The first information identifies a first set of file portions that can be combined to generate the respective content in the first file format. The second information identifies a second set of file portions that can be combined to generate the respective content in the second file format. The second set of file portions includes one or more shared file portions that are included in the first set of file portions.
Abstract:
An electronic device with one or more processors, memory and a display receives a first request to display a first video stream and, in response, displays the first video stream. After receiving the first request, the device preloads a second video stream that corresponds to live content, including caching a cached portion of the second video stream. While displaying the first video stream, the device receives a second request to display the second video stream. In response to receiving the second request, the device determines whether the second request meets recency criteria. When the second request meets recency criteria, the device starts to play the second video stream using the cached portion. When the second request does not meet the recency criteria, the device requests, from a content source for the second video stream, data corresponding to a portion of the second video stream other than the cached portion.
Abstract:
An electronic device with one or more processors and memory starts to download first content from a content delivery server. The first content corresponds to a first channel in a predetermined sequence of channels. While downloading the first content and before presenting second content that corresponds to a second channel that is adjacent to the first channel in the predetermined sequence of channels, the device presents the first content and periodically preloads, using a connection over the Internet to a content delivery server for the second content, portions of the second content from the content delivery server for the second content. The device periodically stores the preloaded portions of the second content in the memory. While presenting the first content, the electronic device receives a request for the second content. In response to receiving the request, the device transitions between presenting the first content to presenting the second content.
Abstract:
An electronic device obtains a file header for a file that corresponds to a plurality of clusters. The file header includes a cluster index that enables coarse searching within the file. At least one of the file header and the file omits information that is known to or calculable by the device for extracting content from the file. In response to receiving a request to seek to a position within the file, the device identifies a cluster that includes content that corresponds to the position based on the cluster index and obtains a cluster header that enables fine searching within the cluster. After obtaining the cluster header, the device identifies, within the cluster, the content that corresponds to the position based on the content index and provides at least a portion of content corresponding to the file to a presentation device, starting with the content that corresponds to the position.
Abstract:
A computer system receives a content-transition indication to provide a second decompressed media stream to a presentation device instead of providing a first decompressed media stream. In response to receiving the content-transition indication, the computer system ceases to receive a first compressed media stream corresponding to the first decompressed media stream and continues to provide the first decompressed media stream to the presentation device using first buffered data. The computer system selects a transition point for a second compressed media stream, corresponding to the second decompressed media stream, based on a quantity of data of the second compressed media stream to be buffered. While continuing to provide the first decompressed media stream to the presentation device using the first buffered data, the computer system receives and buffers the second compressed media stream starting at the transition point. The computer system provides the second decompressed media stream to the presentation device.
Abstract:
An electronic device with one or more processors, memory and a display obtains a file header for a file that corresponds to a plurality of separately indexed clusters. The file is divided into segments one or more of which include multiple sequential clusters. The file header includes a segment index that enables identification of a segment that includes requested content. The device receives a request to seek to a respective position within the file. In response, the device identifies a first segment that includes content that corresponds to the respective position based on the segment index, obtains the first segment, and obtains a content index for a respective cluster within the first segment. After obtaining the first segment and the content index, the device identifies respective content within the respective cluster that corresponds to the respective position based on a content index and provides the respective content to a user.
Abstract:
An electronic device with one or more processors, memory and a display displays a first video stream on the display. While displaying the first video stream, the electronic device downloads and stores a first portion of a second video stream and receives a request to display the second video stream on the display. In response to receiving the request, the electronic device starts to play the second video stream using the first portion of the second video stream, if the first portion of the second video stream meets recency criteria with respect to a current stream time of the second video stream. But if the first portion of the second video stream does not meet the recency criteria, the electronic device requests a second portion of the second video stream that is outside of the first portion of the second video stream.