Patent application number | Description | Published |
20090089401 | SERVER-CONTROLLED DISTRIBUTION OF MEDIA CONTENT - Described is a technology in which media content is sent to clients in partial pieces, so that a server may control how clients view (and/or hear) the media content. A client requests partial content, and the server allows or disallows the request based upon one or more various conditions, as evaluated against a playlist provided (e.g., by a playlist provider) for that client. For example, the playlist may specify that the client cannot skip content, whereby the server disallows a request for a piece of content that skips over other content. Session related data may be kept to track the content sent to the client. Media content may be sent based on a dynamic condition, and/or the playlist may be dynamically adapted. A piece of media content may comprise an advertisement, which may be custom-selected for that client, such as based upon user profile data and/or client location information. | 04-02-2009 |
20090319681 | Dynamic Throttling Based on Network Conditions - The dynamic management of download rates when downloading digital resources to clients. A server concurrently maintains download sessions with any number of clients, each download session for downloading a corresponding digital resource to a corresponding client. The download rates for the various download sessions are adjusted as download sessions are completed, and as new download sessions are added. As new download sessions are initiated, a minimum and target download rate may be calculated. The target download rate is the rate at which the server will attempt to download the requested digital resource to the client, and will depend on the total available bandwidth for use to download the digital resources. | 12-24-2009 |
20100114921 | Dynamic Fragmentation of Digital Media - Media fragmentation may be provided. First, a request for a manifest may be received from a client. Then, in response to the received request for the manifest, the manifest may be sent to the client. Next, a request may be received from the client for a file fragment. The request may indicate a start time and an end time corresponding to the file fragment. The request may be in a format defined by the manifest. Then a lookup table may be queried for a first byte location in a media file corresponding to the start time and a second byte location in the media file corresponding to the end time. Next, a portion of the media file between the first byte location and the second byte location may be extracted from the media file. The portion may comprise the file fragment. The file fragment may be sent to the client. | 05-06-2010 |
20100180011 | URL BASED RETRIEVAL OF PORTIONS OF MEDIA CONTENT - A media fragmenting system is described herein that allows requesting portions of a content item through information specified in a Uniform Resource Identifier (URI) used to retrieve the content item. Media fragments retrieved using the media fragmenting system are cacheable by existing Internet infrastructure and allow clients to retrieve portions of a content item without retrieving the entire content item. The media fragmenting system adds a content range segment to the URI to specify a portion of the content item. A server receiving the URI accesses the content item, identifies the requested portion, and returns the requested portion in a standard HTTP response to the client. Because no changes to the HTTP protocol are involved, intermediate servers, routers, and proxies, can all handle the request and response as well as cache the response without modification. | 07-15-2010 |
20100235472 | SMOOTH, STATELESS CLIENT MEDIA STREAMING - An adaptive streaming system is described herein that provides a stateless connection between the client and server for streaming media playback in which the data is formatted in a manner that allows the client to make decisions and react more quickly to changing network conditions. The client requests uniform chunks of media from the server that include a portion of the media. The adaptive streaming system requests portions of a media file or of a live streaming event in small-sized chunks each having a distinguished URL. This allows streaming media data to be cached by existing Internet cache infrastructure. Each chunk contains metadata information that describes the encoding of the chunk and media content for playback by the client. The server may provide chunks in multiple encodings so that the client can switch quickly to chunks of a different bit rate or playback speed. | 09-16-2010 |
20100235494 | FLEXIBLE LOGGING, SUCH AS FOR A WEB SERVER - A flexible logging system is described herein that operates with a web server to provide activity logging in a way that is customizable to include a variety of data fields, can capture both client and server log information to a single location, and can provide data to an analysis engine directly to provide near real-time reporting. The system captures events within the web server as they occur and can provide reporting before the final response occurs. During request processing in the web server, server extension modules raise log events whenever an event occurs. The system matches the received data to a log definition and writes the data to any log that matches. Thus, the flexible logging system provides a rich, flexible, and fast platform for content providers and administrators to get a real-time view of the state of requests to their web servers. | 09-16-2010 |
20100235528 | DELIVERING CACHEABLE STREAMING MEDIA PRESENTATIONS - A smooth streaming system provides a stateless protocol between a client and server in which the server embeds incremental control information in media fragments. The server provides uniform media fragment responses to media fragment requests that are cacheable by existing Internet cache infrastructure. The smooth streaming system receives media data in fragments from one or more encoders, creates an index of each fragment, and stores the fragments. The server provides fragments to clients that contain metadata information describing the encodings available on the server and the encoding of the fragment. The server may also provide information within each fragment that allows the client to determine whether the client is requesting data too fast or too slow, so that the client can adapt its request rate to a cadence in tune with the rate at which the server is receiving encoder data. | 09-16-2010 |
20110083144 | INTEGRATING CONTINUOUS AND SPARSE STREAMING DATA - A sparse streaming system provides a first-class means for sparse metadata to be added to streaming media presentations and to be delivered using an integrated data channel that is cacheable using readily available HTTP-based Internet caching infrastructure for increased scalability. The sparse streaming system stores a reference to a sparse track within a continuous track. If a continuous fragment arrives at the client that refers to a sparse fragment that the client has not yet retrieved, then the client requests the sparse fragment. In addition, each sparse fragment may include a backwards reference to the sparse fragment created immediately prior. The references in the continuous fragments make the client aware of new sparse track fragments, and the backwards references in the sparse track fragments ensure that the client has not missed any intervening sparse track fragments. | 04-07-2011 |
20110161485 | MANAGING MULTIPLE DYNAMIC MEDIA STREAMS - A coordinated adaptive streaming system provides a level of intelligence between adaptive streaming heuristics applied to multiple multi-bitrate streams playing on a client computer at the same time. The system receives a media event that includes multiple multi-bitrate streams and plays two or more of the streams. Each stream registers with the coordinated adaptive streaming system so that the system is aware of each of the streams. The system receives a priority indication from each stream that indicates the priority of the stream relative to other streams associated with the media event. The system uses the received priority indications to make adaptive streaming decisions. Thus, the coordinated adaptive streaming system provides playback that more closely aligns with a user's priorities and provides a higher quality experience to a user viewing multiple concurrent media streams. | 06-30-2011 |
20110296109 | CACHE CONTROL FOR ADAPTIVE STREAM PLAYER - An adaptive stream player that has control over whether a retrieved stream is cached in a local stream cache. For at least some of the stream portions requested by the player, before going out over the network, a cache control component first determines whether or not an acceptable version of the stream portion is present in a stream cache. If there is an acceptable version in the stream cache, that version is provided rather than having to request the stream portion of the network. For stream portions received over the network, the cache control component decides whether or not to cache that stream portion. Thus, the cache control component allows the adaptive stream player to work in offline scenarios and also allows the adaptive stream player to have rewind, pause, and other controls that use cached content. | 12-01-2011 |
20110302238 | VIRTUAL PLAYBACK SPEED MODIFICATION - A multispeed playback system is described herein that allows for playback of smooth streaming media presentations at speeds other than the normal speed or direction, while still using an underlying platform that does not natively support multispeed. The system provides frames to the underlying platform so that the platform is still playing 1× content while the system manipulates video and/or audio samples being fed to the platform to make rendered data look appropriately for a selected speed and direction. The system may feed the underlying platform frames at a faster rate or skip every other frame for faster playback, or may feed each frame to the underlying platform multiple times for slower playback. Thus, the multispeed playback system allows a client application developer to provide users with expected multispeed playback at the client without encoding multiple different streams at the server. | 12-08-2011 |
20110307623 | SMOOTH STREAMING CLIENT COMPONENT - A streaming abstraction system is described herein that provides application developers a client software development kit (SDK) on top of which to build smooth streaming solutions. The system reduces development time considerably and abstracts platform specific intricacies and protocol handling on the client. In addition, the streaming abstraction system makes it possible to monetize streaming content with advanced features like advertising and analytics and provides advanced capabilities like multiple camera angles, diagnostics, and error handling. In some embodiments, the streaming abstraction system provides an intermediate layer that operates between an application and an underlying client media platform. The intermediate layer manages smooth streaming protocol handling as well as interactions with the platform-specific runtime. | 12-15-2011 |
20110307781 | SEAMLESS PLAYBACK OF COMPOSITE MEDIA - A streaming composition system is described herein that provides easy workflow and playback capabilities for content producers to create composite media assets from existing and on-going media content and for streaming clients to seamlessly playback composite multimedia streams provided from different sources. These assets provide broadcasters an option to quickly turn around highlights for an on-going event. The streaming composition system allows a producer to identify clips within existing media assets and compose the clips into a new unified streaming presentation. For producers that already have smooth streaming media assets, the system leverages these assets to provide seamless playback across clip boundaries including advanced playback support for advertisement insertion, fast forward, rewind, and so on. | 12-15-2011 |
20140164926 | SEAMLESS PLAYBACK OF COMPOSITE MEDIA - A streaming composition system is described herein that provides easy workflow and playback capabilities for content producers to create composite media assets from existing and on-going media content and for streaming clients to seamlessly playback composite multimedia streams provided from different sources. These assets provide broadcasters an option to quickly turn around highlights for an on-going event. The streaming composition system allows a producer to identify clips within existing media assets and compose the clips into a new unified streaming presentation. For producers that already have smooth streaming media assets, the system leverages these assets to provide seamless playback across clip boundaries including advanced playback support for advertisement insertion, fast forward, rewind, and so on. | 06-12-2014 |
20140189139 | SEAMLESSLY PLAYING A COMPOSITE MEDIA PRESENTATION - A computer-implemented method for seamlessly playing a composite media presentation, includes receiving, by a sequencer, a sequential playlist provided by a scheduler. The sequential playlist refers to a sequence of one or more streaming media content items. The sequencer receives calls from a native player application at regular intervals, and sends playback segments and seekbar update information to the native player application based on the sequential playlist in response to the calls. The native player application is configured to play the composite media presentation using at least one core player and generate a corresponding seekbar for the presentation based on the playback segments and the seekbar update information sent by the sequencer. | 07-03-2014 |
20140189761 | ARCHIVING A LIVE MEDIA PRESENTATION - A computer-implemented method for archiving a live media presentation includes archiving the live media presentation as it is being streamed from a live server, wherein the archiving includes recording the live media presentation in fixed-length segments. A segment name is associated with each of the segments, wherein each of the segment names includes a time stamp. The fixed-length segments are stored on a video on-demand (VOD) server. A manifest is generated that describes at least a portion of the live media presentation and identifies a uniform resource locator (URL) to be used by a client device to access a first one of the segments, wherein the URL includes the segment name of the first segment. | 07-03-2014 |
20140245346 | OVERWRITING EXISTING MEDIA CONTENT WITH VIEWER-SPECIFIC ADVERTISEMENTS - Embodiments are directed to pacing on-demand linear advertisement entries to appear as being live entries, to generating a sequential segment map from a parallel playlist and to consolidating linear ad and main content portions into a single linear chunklist. In one embodiment, a computer system receives video content updates for a portion of live video programming, and generates a parallel playlist with parallel playlist entries that identify a presentation that is to be played. The computer system then generates a sequential segment map from the parallel playlist that identifies which parallel playlist entry is to be played, monitors a live position for new media, determines that an on-demand linear advertisement is to be played at the live position, and appends on-demand linear advertisement chunks to a chunklist to replace the main content chunks and play the on-demand linear advertisement entries in a pseudo-live format as if they were live. | 08-28-2014 |