[go: up one dir, main page]

HK1171588B - Assembling streamed content for on-demand presentation - Google Patents

Assembling streamed content for on-demand presentation Download PDF

Info

Publication number
HK1171588B
HK1171588B HK12112338.2A HK12112338A HK1171588B HK 1171588 B HK1171588 B HK 1171588B HK 12112338 A HK12112338 A HK 12112338A HK 1171588 B HK1171588 B HK 1171588B
Authority
HK
Hong Kong
Prior art keywords
asset
cacheable
media asset
segments
media
Prior art date
Application number
HK12112338.2A
Other languages
Chinese (zh)
Other versions
HK1171588A1 (en
Inventor
J.A.博恰洛夫
J.C.西蒙斯
R.K.休斯
S.西里瓦拉
C.A.芬克尔斯坦
Original Assignee
微软技术许可有限责任公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US12/608,447 external-priority patent/US9002881B2/en
Application filed by 微软技术许可有限责任公司 filed Critical 微软技术许可有限责任公司
Publication of HK1171588A1 publication Critical patent/HK1171588A1/en
Publication of HK1171588B publication Critical patent/HK1171588B/en

Links

Description

Assembling streamed content for on-demand presentation
Background
Internet-based television delivery systems are designed to stream a video if the user requests it for direct live viewing, or to download it before the user wants to view it after it has been recorded. In addition, a system may be established such that the user can start playing back the video that is still being downloaded before the download is completed. This is commonly referred to as progressive playback. When the user initiates a request for a video, the user may then choose to begin streaming the video or downloading the video. When a video is streamed for viewing at a television client device, such as when a user subscribes to an on-demand video and begins viewing it, the video data is not stored for later viewing and cannot be copied to another playback device. If the user initiates the download of the video, the user will typically have to wait until the video data is downloaded to the television client device before beginning to view the video, and this delay may be longer due to the size of the video data file, bandwidth constraints, and/or device download limitations.
SUMMARY
This summary is provided to introduce simplified concepts of assembling streamed content for on-demand presentation. These simplified concepts are further described in the detailed description that follows. This summary is not intended to identify essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter.
Assembling streamed content for on-demand presentation is described. In embodiments, a media asset may be requested from a content distributor and cacheable segments of the media asset streamed to the requesting client device. The cacheable segments are received in an initial quality display format for uninterrupted playback of the media asset at the client device while the cacheable segments are received. An asset matrix is also received that correlates bit rates with temporal locations of each cacheable segment in a media asset. The cacheable segments of a media asset can be assembled from the asset matrix to generate an assembled asset data file of the media asset. The assembled asset data file may then be backfilled with selected ones of the cacheable segments that are replaced with a highest quality display format for on-demand presentation of the media asset when selected for viewing.
In other embodiments, metadata may be maintained corresponding to each of the cacheable segments of the media asset, where the metadata indicates an initial quality display format for each of the cacheable segments. The cacheable segments selected to backfill the assembled asset data file can be selected based on display content corresponding to the cacheable segments that will visually upgrade the media asset when displayed for viewing. The selected cacheable segment can be requested from the content distributor based on the identification of the cacheable segment in the asset matrix and can be maintained in a separate data file when received. Upon backfilling the assembled asset data file, the bandwidth for downloading the selected cacheable segments can be adjusted. In addition, asset permission licenses associated with cacheable segments of a media asset can be maintained to assemble, backfill, and display on-demand presentations of the media asset for viewing.
Brief Description of Drawings
Embodiments of assembling streamed content for on-demand presentation are described with reference to the following figures. In the drawings, like reference numerals are used to refer to like features and components:
FIG. 1 illustrates an example system in which embodiments of assembling streamed content for on-demand presentation can be implemented.
FIG. 2 illustrates an example system and client device in which embodiments of assembling streamed content for on-demand presentation can be implemented.
FIG. 3 illustrates an example method for assembling streamed content for on-demand presentation in accordance with one or more embodiments.
FIG. 4 illustrates additional example methods for assembling streamed content for on-demand presentation in accordance with one or more embodiments.
FIG. 5 illustrates an additional example method for assembling streamed content for on-demand presentation in accordance with one or more embodiments.
FIG. 6 illustrates components of an example device that can implement embodiments of assembling streamed content for on-demand presentation.
Detailed Description
Embodiments of assembling streamed content for on-demand presentation provide techniques for assembling cacheable segments of streamed content (e.g., video of a media asset) into an assembled asset data file that can then also be backfilled to upgrade the video quality of the cacheable segments. Thus, a user may request a streamed media asset for direct playback and viewing at a client device, yet maintain a copy of the media asset (which is portable and/or available for viewing at a time more convenient to the user).
While features and concepts of the described systems and methods for assembling streamed content for on-demand presentation can be implemented in any number of different environments, systems, and/or various configurations, embodiments of assembling streamed content for on-demand presentation are described in the context of the following example systems and environments.
FIG. 1 illustrates an example system 100 in which embodiments of assembling streamed content for on-demand presentation can be implemented. In this example, the system 100 includes a content distributor 102 that communicates or otherwise provides media assets and data to any number of various client devices 104 via a communication network 106. Some of the client devices 104 are also referred to as portable devices and/or user devices. The client devices 104 can include wired and/or wireless devices, some of which can be implemented as components in a client system of a media asset distribution system.
The communication network 106 can be implemented to include a broadcast network, an IP-based network 108, and/or a wireless network 110 that facilitates media asset distribution and data communication between the content distributor 102 and any number of various devices. The communication network 106 may also be implemented as part of a media asset distribution system using any type of network topology and/or communication protocol, and it may be represented or otherwise implemented as a combination of two or more networks. The communication network may also include a mobile carrier network managed by a communication service provider, such as a cellular telephone provider and/or an internet service provider, to facilitate mobile data and/or voice communications for any type of wireless device or mobile phone (e.g., cellular, VoIP, Wi-Fi, etc.).
The content distributor 102 can include one or more media content servers that are implemented to communicate or otherwise distribute media assets 112 and/or other data to any number of various client devices. In this example system 100, the content distributor 102 includes a storage medium 114 for storing or otherwise maintaining various data and media assets (such as media assets 112 and media asset metadata 116). Storage medium 114 may be implemented as any type of memory, Random Access Memory (RAM), non-volatile memory such as flash memory, Read Only Memory (ROM), and/or other suitable electronic data storage.
The media assets 112 can include any type of audio, video, and/or image data received from any type of media content source or data source. As described throughout, the media assets can include music (e.g., digital music files of songs), television programs, movies, on-demand media assets, interactive games, network-based applications, and any other audio, video, and/or image data (e.g., to include program guide data, user interface data, advertising content, closed caption data, content metadata, search results, and/or recommendations, etc.). The media assets 112 can include various display formats of the media assets, such as a highest quality display format (e.g., highest quality, high definition display format) to a lower quality display format (e.g., lower quality, standard definition display format), and any other quality display format over a contiguous interval therebetween.
The media asset metadata 116 may include any type of identifying criteria, descriptive information, and/or attributes associated with the media assets 112 that describe and/or classify the media assets. For example, metadata may include a media asset identifier, a title, a subject description, a production date, artistic information, a music compilation, and any other type of descriptive information about a particular media asset. In addition, the metadata may characterize a genre that describes a media asset, such as video content, as an advertisement, a movie, a comedy show, a sports event, a news program, a situation comedy, a talk show, an action/adventure program, or any number of other taxonomic descriptions.
The content distributor 102 includes a media asset service 118, the media asset service 118 being implemented as computer-executable instructions and executed by a processor to implement the various embodiments and/or features described herein. Additionally, content distributor 102 can be implemented with any number and combination of differing components as further described with reference to the example device shown in FIG. 6. The media asset service 118, as well as other functionality described to implement embodiments of assembling streamed content for on-demand presentation, may also be provided as a separate service from the content distributor 102 (e.g., on a separate server or provided by a third party service) or as a distributed service.
In an embodiment, the content distributor 102 can be implemented as a subscription-based service from which any of the various client devices 104 can request the media assets 112 for download and display for viewing. The media asset service 118 is implemented to manage the distribution of media assets to the various client devices 104. For example, the media asset service 118 may receive a request for a media asset 112 from a client device 104 and stream cacheable segments of the media asset to the client device. The media asset service 118 can initiate conditional streaming of the requested media asset 112 to the client device in a highest quality display format, which can be delivered according to the transmission rate of the communication network 106 and/or download limitations at the client device. The video data of the media asset may be delivered in a lower quality display format and the delivery bit rate may be changed so that the media asset is delivered faster and/or so that the user will be able to view the media asset without interruption (e.g., the system will not pause to keep up with the delivery of the media asset).
The media asset service 118 may also provide the client device with an asset matrix 120 that correlates bit rates with the temporal location of each cacheable segment in the media asset. In an embodiment, an adaptive streaming solution in conjunction with HTTP delivery may be implemented using an asset matrix 120 of media assets. Each row of the asset matrix is a different bit rate in the HTTP transmission spectrum (e.g., up to 3Mbps at 30 Kpbs). Each column of the asset matrix is a temporal location of a cacheable segment (e.g., a cacheable segment having a duration of about 2 seconds) in a media asset. As media assets are streamed to client devices for playback, the asset matrix is traversed to download and/or continuously receive cacheable segments from a content distributor.
In this example system 100, any of the client devices 104 includes a media asset manager 122 for managing media assets received from the content distributor 102 for display and viewing at the client devices. The media asset manager 122 at the client device 104 may be implemented as computer-executable instructions and may be executed by a processor to implement the various embodiments and/or features described herein. When a media asset is requested by a client device 104, a cacheable segment 124 of the media asset is streamed from the content distributor 102 to the client device. The client device 104 receives the cacheable segment 124 of the media asset and the media asset manager 122 can initiate display of the media asset for viewing.
Cacheable segments 124 of the media asset are received in an initial quality display format for uninterrupted playback of the media asset at the client device while the cacheable segments are received. The media asset manager 122 can initiate maintenance of metadata 116 corresponding to each of the cacheable segments 124 of the media asset at the client device 104. The metadata may indicate an initial quality display format for each of the cacheable segments of the received media asset. In an implementation, the cacheable segments 124 are approximately 2 seconds in duration of the media asset and may be assembled or otherwise stitched together to generate the media asset for display. The metadata 116 may also include information regarding the quality level at which each of the cacheable segments is provided for decoding and upgrade decisions.
The client device 104 also receives the asset matrix 120 from the content distributor 102. The asset matrix corresponds to the media assets and correlates bit rates with a temporal position of each cacheable segment in the media assets. The media asset manager 122 may assemble the cacheable segments of media assets 124 using the asset matrix to generate an assembled asset data file 126 of media assets. The assembled asset data file 126 is a cohesive file of the media asset and may be maintained or otherwise stored at the client device 104 for on-demand presentation when the media asset is selected for viewing. In implementations, the assembled asset data file 126 is a combination of cacheable segments 124 (which are video segments of a media asset) and audio segments related to the video segments.
The media asset manager 122 at the client device 104 may also be implemented to select one or more of the cacheable segments 124 to backfill the assembled asset data file 126 based on display content corresponding to the cacheable segments that will visually upgrade a media asset when displayed for viewing. The backfilling process may be implemented to evaluate the quality index metadata and download a higher quality version of the selected cacheable segment for the assembled asset data file. The media asset manager 122 can then request the selected cacheable segment from the content distributor 102 based on the identification of the selected cacheable segment in the asset matrix 120. The selected cacheable segments can be downloaded from the content distributor 102 when additional bandwidth and/or a different network is available. In implementations, the network over which the updated, higher quality segments of the media presentation are received may be a different network than the network that delivered the original cacheable segments. For example, the cacheable segments of a media asset may be initially available via a low quality network, and the media asset manager 122 may then wait for a high quality network connection via which an improved, cacheable segment is requested.
In backfilling the assembled asset data file with the selected cacheable segment, the media asset manager 122 can adjust the bandwidth used to download the selected cacheable segment. An algorithm may be implemented to determine how much bandwidth to use for the backfill process and how much bandwidth to reserve for each cacheable segment of the streaming media asset. In addition, content distributor 102 can implement bit rate throttling to deliver selected cacheable segments for the backfill process slower than downloading the cacheable segments when streaming the requested media asset to the client device. The backfill process may be ongoing as the requested media asset is streamed to the client device, and the backfill process utilizes a small amount of available bandwidth as a background process. In addition to determining how much bandwidth to use or allocate for the backfill process when the requested media asset is streamed to the client device, the media asset manager 122 can be implemented to suspend or defer the backfill process until sufficient network throughput is available and has been obtained.
The assembled asset data file 126 may then be backfilled with selected cacheable segments that are replaced with the highest quality display format for on-demand presentation of the media asset at a later time selected for viewing. The media asset manager 122 can evaluate the cacheable segments 124 of the media assets of the video for improved viewing perception at a higher quality display. For example, motion scenes in a video may be displayed with higher quality video, while slow moving or no moving scenes will be displayed with lower quality video. The cacheable segments 124 can be prioritized according to those segments that result in the greatest perceived quality of viewing for the user. In addition, the media asset manager 122 may implement quality detection or motion estimation techniques to determine the scenes in the video that will benefit most from the backfilling process.
In an implementation, the backfill process may specify selected cacheable segments outside of the asset segment data file 128. The client device 104 may maintain or otherwise store the asset fragment data file 128 of the selected cacheable fragment received from the content distributor 102. The asset fragment data file 128 is a separate data file from the assembled asset data file 126 of the media asset, and the selected cacheable fragment may be stored in the separate data file as it is received to avoid destroying the media asset in the event that the system or process crashes.
The client device 104 can also maintain or otherwise store an asset rights license 130 associated with the cacheable segment 124 of the media asset to assemble, backfill, and display an on-demand presentation of the media asset for viewing. In one implementation, a Digital Rights Management (DRM) license is maintained to facilitate the assembly, backfilling, and playback of a media asset that conforms to the asset rights provided by the content owner.
In this example system 100, the wireless devices may include any type of device implemented to receive and/or communicate wireless data, such as any one or combination of a mobile phone 132 (e.g., cellular, VoIP, WiFi, etc.), a portable computer device 134, a media device 136 (e.g., a personal media player, portable media player, etc.), and/or any other wireless device that may receive media assets in any form of audio, video, and/or image data. The client systems can include respective client devices and display devices 138 that collectively render or playback any form of audio, video, and/or image media content and media assets.
Display device 138 may be implemented as any type of television, High Definition Television (HDTV), LCD, or similar display system. The client device can be implemented as any one or combination of a television client device 140 (e.g., a television set-top box, Digital Video Recorder (DVR), etc.), a computer device 142, a gaming system 144, an appliance device, an electronic device, and/or as any other type of client device or user device that can be implemented to receive any form of media asset, such as audio, video, and/or image data, in a media asset distribution system.
Any of the various client devices 104 can be implemented with one or more processors, communication components, memory components, signal processing and control circuits, and media asset presentation systems. Further, any of the wireless devices and/or other client devices may be implemented with any number of the different components or combinations of components described with reference to the example device illustrated in fig. 2 and with reference to the example device illustrated in fig. 6. A client device may also be associated with a user (i.e., a person) and/or an entity that operates the device such that a user device describes logical devices that include users, software, and/or a combination of devices.
Any of the client devices 104 can communicate with the content distributor 102 via a bi-directional data communication link of the communication network 106. It is contemplated that the arrowed communication links along with any one or more of the communication networks 106 facilitate two-way data communication, such as from the client device 104 to the content distributor 102 and vice versa.
FIG. 2 illustrates an example system 200 in which embodiments of assembling streamed content for on-demand presentation can be implemented. The example system 200 includes a portable device 202 (e.g., a wired and/or wireless device) that may be any one or combination of a mobile personal computer 204, a Personal Digital Assistant (PDA), a mobile phone 206 (e.g., cellular, VoIP, WiFi, etc.) implemented for data, messaging, and/or voice communication, a portable computer device 208 (e.g., laptop with a touch screen, etc.), a media device 210 (e.g., a personal media player, portable media player, etc.), a gaming device, an appliance device, an electronic device, and/or any other type of portable device that can receive, display, and/or communicate data in any form of audio, video, and/or image data.
Each of the various portable devices (e.g., also referred to as client devices) may include an integrated display and/or an integrated touch screen, as well as selectable input controls via which a user may input data and/or select. For example, mobile personal computer 204 includes an integrated touch screen 212 on which a user interface 214 may be displayed, the user interface 214 including displayable objects and/or user interface elements 216, such as any type of icons, images, graphics, text, selectable buttons, user selectable controls, menu selections, map elements, and/or any other type of user interface displayable features or items.
Any of the various portable devices described herein may be implemented with one or more sensors, processors, communications components, data inputs, memory components, storage media, processing and control circuits, and/or content presentation systems. Any of the portable devices may also be implemented to communicate via a communication network, which may include any type of data network, voice network, broadcast network, IP-based network, and/or wireless network that facilitates data, messaging, and/or voice communication. The portable device may also be implemented with any number and combination of different components described with reference to the example device shown in fig. 6. The portable device may also be associated with a user (i.e., a person) and/or an entity that operates the device, such that the portable device describes logical devices that include users, software, and/or a combination of devices.
In this example, the portable device 202 includes one or more processors 218 (e.g., any of microprocessors, controllers, and the like), a memory 220, a communication interface 222 for data, messaging, and/or voice communication, and a data input 224 for receiving media items 226 and/or media content, and media assets 228. The media items may include any type of email message, text message, digital photograph, song selection, and the like. Media content (e.g., including recorded media content) can include any type of audio, video, and/or image data received from any media content source or data source, such as messages, television media content, music, video clips, data feeds, interactive games, network-based applications, and any other content.
The portable device 202 is implemented with a device manager 230, the device manager 230 including any one or combination of a control application, software application, signal processing and control module, code that is native to the particular device, and/or a hardware abstraction layer for the particular device. The portable device 202 also includes a presentation system 232, the presentation system 232 presenting user interfaces and user interface elements for display on any of the portable devices. The presentation system 232 is also implemented to receive and present any form of audio, video, and/or image data received from any media content source and/or data source.
The portable device 202 includes various software and/or media applications 234 that may incorporate components and/or modules that may be processed or otherwise executed by the processor 218. The media applications 234 may include music and/or video players, Web browsers, email applications, messaging applications, photo viewers, and so forth. The software and/or media applications 234 can also include an operating system and media asset manager 236 for implementing the embodiments described herein for assembling streamed media content for on-demand presentation at a client device. Features and aspects of the media asset manager 236 are described with reference to the media asset manager 122 shown at the client device 104 in fig. 1.
Example methods 300, 400, and 500 are described with reference to fig. 3, 4, and 5, respectively, in accordance with one or more embodiments of assembling streamed content for on-demand presentation. Generally, any of the functions, methods, procedures, components, and modules described herein can be implemented using hardware, software, firmware, fixed logic circuitry, manual processing, or any combination thereof. A software implementation represents program code that performs specified tasks when executed by a computer processor. The example methods may be described in the general context of computer-executable instructions, which may include software, applications, routines, programs, objects, components, data structures, procedures, modules, functions, and the like. The methods may also be practiced in distributed computing environments by processing devices that are linked through a communications network. In a distributed computing environment, computer-executable instructions may be located in both local and remote computer storage media and/or devices. Furthermore, the features described herein are platform-independent and may be implemented on a variety of computing platforms having a variety of processors.
FIG. 3 illustrates an example method 300 of assembling streamed content for on-demand presentation, and is described with reference to a client device. The order in which the methods are described is not intended to be construed as a limitation, and any number of the described method blocks can be combined in any order to implement the methods, or an alternate method.
At block 302, a media asset is requested from a content distributor. For example, the client devices 104 request to receive the media assets 112 from the content distributor 102, such as where the content distributor 102 is implemented as a subscription-based service to which any of the various client devices 104 can request the media assets 112 for download and display for viewing. At block 304, cacheable segments of a media asset that are streamed to a client device are received. For example, the client device 104 receives cacheable segments 124 of a media asset from the content distributor 102. In an implementation, each cacheable segment 124 is received in an initial quality display format for uninterrupted playback of the media asset at the client device while each cacheable segment is received.
At block 306, the cacheable segments are rendered to display the media assets for viewing as they are received as they are streamed to the client device. For example, the client device 104 receives the cacheable segment 124 of the media asset and the media asset manager 122 initiates display of the media asset for viewing. At block 308, an asset matrix is received that correlates bit rates with temporal locations of each cacheable segment in a media asset. For example, the client device 104 receives the asset matrix 120 from the content distributor 102. The asset matrix corresponds to the media assets and correlates bit rates with the temporal location of each cacheable segment 124 in the media assets.
At block 310, cacheable segments of media assets are assembled from the asset matrix to generate an assembled asset data file of the media assets. For example, the media asset manager 122 at the client device 104 assembles the cacheable segments 124 of the media asset using the asset matrix to generate an assembled asset data file 126 of the media asset. The assembled asset data file 126 is a cohesive file of the media asset and may be maintained or otherwise stored at the client device 104 for on-demand presentation when the media asset is selected for viewing.
At block 312, metadata is maintained corresponding to each of the cacheable segments of the media asset. For example, the client device 104 maintains or otherwise stores metadata 116 corresponding to each of the cacheable segments 124 of the media asset. The metadata indicates an initial quality display format for each of the cacheable segments and/or indicates cacheable segments for selecting to backfill the assembled asset data file to visually upgrade a media asset when the media asset is displayed for viewing. At block 314, asset rights licenses associated with cacheable segments of a media asset are maintained. For example, the client device 104 maintains or otherwise stores an asset right license 130 associated with the cacheable segment 124 of the media asset to assemble, backfill, and display an on-demand presentation of the media asset for viewing.
FIG. 4 illustrates an example method 400 of assembling streamed content for on-demand presentation, and is described with reference to a client device. The order in which the methods are described is not intended to be construed as a limitation, and any number of the described method blocks can be combined in any order to implement the methods, or an alternate method.
At block 402, cacheable segments are selected to backfill the assembled asset data file. For example, the media asset manager 122 at the client device 104 selects one or more of the cacheable segments 124 to backfill the assembled asset data file 126 based on display content corresponding to the cacheable segments that will visually upgrade the media asset when displayed for viewing. The backfill process downloads a higher quality version of the selected cacheable segment for the assembled asset data file.
At block 404, the selected cacheable segment is requested from the content distributor based on the identification of the cacheable segment in the asset matrix. For example, the media asset manager 122 requests the selected cacheable segment from the content distributor 102 based on the identification of the selected cacheable segment in the asset matrix 120. The selected cacheable segment is downloaded from the content distributor 102 when additional bandwidth is available.
At block 406, bandwidth for downloading the selected cacheable segment is adjusted. For example, the media asset manager 122 adjusts the bandwidth used to download the selected cacheable segment from the content distributor 102 when backfilling the assembled asset data file with the selected cacheable segment.
At block 408, the assembled asset data file is backfilled with the selected cacheable segments. For example, the media asset manager 122 evaluates the cacheable segments 124 of the media assets of the video for improved viewing perception at a higher quality display. The selected cacheable segment is replaced with the highest quality display format for use as an on-demand presentation of the media asset when selected for viewing.
At block 410, the selected cacheable segment is maintained in a separate data file. For example, the client device 104 maintains or otherwise stores an asset fragment data file 128 of the selected cacheable fragment received from the content distributor 102. The asset fragment data file 128 is a separate data file from the assembled asset data file 126 of the media asset.
FIG. 5 illustrates an example method 500 of assembling streamed content for on-demand presentation, and is described with reference to a content distributor. The order in which the methods are described is not intended to be construed as a limitation, and any number of the described method blocks can be combined in any order to implement the methods, or an alternate method.
At block 502, a request for a media asset is received from a client device. For example, the media asset service 118 at the content distributor 102 receives a request for a media asset 112 from a client device 104. At block 504, the media asset service 118 at the content distributor 102 initiates streaming of the cacheable segments 124 of the media asset to the client device, where the client device renders the cacheable segments as they are received to display the media asset for viewing. Each cacheable segment 124 is streamed to the client device in the initial quality display format for uninterrupted playback of the media asset 112 at the client device while each cacheable segment is received.
At block 506, an asset matrix is communicated to the client device, where the asset matrix correlates bit rates with temporal locations of each cacheable segment in the media asset. For example, the media asset service 118 at the content distributor 102 also provides the client device 104 with an asset matrix 120 that correlates bit rates with the temporal location of each cacheable segment 124 in the media assets 112. The client device may then assemble the cacheable segments 124 of the media assets 112 according to the asset matrix 120 to generate an assembled asset data file 126 of the media assets.
At block 508, a request for the selected cacheable segment is received from the client device. For example, the content distributor 102 receives a request for selected cacheable segments, wherein the client device 104 selects the selected cacheable segments to backfill the assembled asset data file 126 based on display content corresponding to the cacheable segments that will visually upgrade the media asset when displayed for viewing. The content distributor 102 receives a request for a selected cacheable segment based on the identification of the cacheable segment in the asset matrix.
At block 510, the requested ones of the selected cacheable segments are delivered to the client device. For example, the media asset service 118 initiates communication of the requested ones of the selected cacheable segments to the client device 104 that backfills the assembled asset data file 126 with the selected cacheable segments.
Fig. 6 illustrates various components of an example device 600 that can be implemented as any type of device and/or content distributor described with reference to fig. 1 and 2 to implement embodiments of assembling streamed content for on-demand presentation. In various embodiments, device 600 can be implemented as any one or combination of wired and/or wireless devices, such as any form of television client device (e.g., television set-top box, Digital Video Recorder (DVR), etc.), consumer device, computer device, server device, portable computer device, user device, communication device, video processing and/or rendering device, appliance device, gaming device, electronic device, and/or as any other type of device. Device 600 may also be associated with a user (i.e., a person) and/or an entity that operates the device such that a device describes logical means that include users, software, firmware, and/or a combination of devices.
Device 600 includes a communication device 602 that enables wired and/or wireless communication of device data 604 (e.g., received data, data being received, data scheduled for broadcast, data packets of the data, etc.). The device data 604 or other device content can include configuration settings of the device, media content stored on the device, and/or information associated with a user of the device. Media content stored on device 600 can include any type of audio, video, and/or image data. Device 600 includes one or more data inputs 606 via which any type of data, media content, and/or inputs can be received, such as user-selectable inputs, messages, music, television media content, recorded video content, and any other type of audio, video, and/or image data received from any content source and/or data source.
Device 600 also includes communication interfaces 608 that can be implemented as any one or more of a serial and/or parallel interface, a wireless interface, any type of network interface, a modem, and as any other type of communication interface. Communication interfaces 608 provide a connection and/or communication links between device 600 and a communication network by which other electronic, computing, and communication devices communicate data with device 600.
Device 600 includes one or more processors 610 (e.g., any of microprocessors, controllers, and the like) which process various computer-executable instructions to control the operation of device 600 and to implement embodiments for assembling streamed content for on-demand presentation. Additionally or alternatively, device 600 may be implemented with any one or combination of hardware, firmware, or fixed logic circuitry that is implemented in connection with processing and control circuits which are generally identified at 612. Although not shown, device 600 can include a system bus or data transfer system that couples the various components within the device. A system bus can include any one or combination of different bus structures, such as a memory bus or memory controller, a peripheral bus, a universal serial bus, and/or a processor or local bus that utilizes any of a variety of bus architectures.
Device 600 also includes computer-readable media 614, such as one or more memory components, examples of which include Random Access Memory (RAM), non-volatile memory (e.g., any one or more of a read-only memory (ROM), flash memory, EPROM, EEPROM, etc.), and a disk storage device. A disk storage device may be implemented as any type of magnetic or optical storage device, such as a hard disk drive, a recordable and/or rewriteable Compact Disc (CD), any type of a Digital Versatile Disc (DVD), and the like. The device 600 may also include a mass storage media device 616.
Computer-readable media 614 provides data storage mechanisms to store the device data 604, as well as various device applications 618 and any other types of information and/or data related to operational aspects of device 600. For example, an operating system 620 can be maintained as a computer application with the computer-readable media 614 and executed on processors 610. The device applications 618 can include a device manager (e.g., a control application, software application, signal processing and control module, code that is native to a particular device, a hardware abstraction layer for a particular device, etc.). The device applications 618 also include any system components or modules to implement embodiments of assembling streamed content for on-demand presentation. In this example, the device applications 618 can include the media asset manager 622 when the device 600 is implemented as a client device, and the device applications 618 can include the media asset service 624 when the device 600 is implemented as a server device or content distributor. The media asset manager 622 and media asset service 624 are shown as software modules and/or computer applications. Additionally or alternatively, media asset manager 622 and/or media asset service 624 may be implemented as hardware, software, firmware, or any combination thereof.
Device 600 also includes an audio and/or video input-output system 626 that provides audio data to an audio system 628 and/or provides video data to a display system 630. The audio system 628 and/or the display system 630 can include any devices that process, display, and/or otherwise render audio, video, and image data. Video signals and audio signals may be communicated from device 600 to an audio device and/or a display device via an RF (radio frequency) link, S-video link, composite video link, component video link, DVI (digital video interface), analog audio connection, or other similar communication link. In an embodiment, the audio system 628 and/or the display system 630 are implemented as external components to device 600. Alternatively, the audio system 628 and/or the display system 630 are implemented as integrated components of the example device 600.
Although embodiments of assembling streamed content for on-demand presentation have been described in language specific to features and/or methods, it is to be understood that the subject of the appended claims is not necessarily limited to the specific features or methods described. Rather, the specific features and methods are disclosed as example implementations of assembling streamed content for on-demand presentation.

Claims (13)

1. A computer-implemented method at a client device, comprising:
requesting a media asset from a content distributor;
receiving a cacheable segment of the media asset streamed to the client device, the cacheable segment received in an initial quality display format for uninterrupted playback of the media asset at the client device while receiving the cacheable segment;
receiving an asset matrix correlating bit rates with temporal locations of each cacheable segment in the media asset;
assembling cacheable segments of the media asset from the asset matrix to generate an assembled asset data file of the media asset; and
populating the assembled asset data file back with selected ones of the cacheable segments, wherein selected segments are selected based on display content corresponding to cacheable segments that will visually upgrade the media asset when displayed for viewing, and wherein these selected segments are replaced with a highest quality display format for on-demand presentation of the media asset when selected for viewing.
2. A computer-implemented method as recited in claim 1, further comprising rendering the cacheable segments to display the media asset for viewing when they are received while being streamed to the client device.
3. The computer-implemented method of claim 1, further comprising requesting selected ones of the cacheable segments from the content distributor based on an identification of the cacheable segments in the asset matrix.
4. The computer-implemented method of claim 1, further comprising maintaining metadata corresponding to each of the cacheable segments of the media asset, the metadata indicating at least an initial quality display format of each of the cacheable segments.
5. The computer-implemented method of claim 1, further comprising adjusting bandwidth for downloading selected ones of the cacheable segments when backfilling the assembled asset data file.
6. The computer-implemented method of claim 1, further comprising maintaining selected ones of the cacheable segments in a separate data file while backfilling the assembled asset data file.
7. The computer-implemented method of claim 1, further comprising maintaining an asset rights license associated with receiving the cacheable segment of the media asset to assemble, backfill, and display an on-demand presentation of the media asset for viewing.
8. A computer-implemented system at a client device, comprising:
means for requesting media assets from a content distributor;
means for receiving a cacheable segment of the media asset streamed to the client device, the cacheable segment received in an initial quality display format for uninterrupted playback of the media asset at the client device while receiving the cacheable segment;
means for receiving an asset matrix correlating bit rates with temporal locations of each cacheable segment in the media asset;
means for assembling cacheable segments of the media asset from the asset matrix to generate an assembled asset data file of the media asset; and
means for populating the assembled asset data file with selected ones of the cacheable segments, wherein the selected segments are selected based on display content corresponding to cacheable segments that will visually upgrade the media asset when displayed for viewing, and wherein the selected segments are replaced with a highest quality display format for on-demand presentation of the media asset when selected for viewing.
9. The computer-implemented system of claim 8, further comprising means for initiating display of the media asset for viewing when the cacheable segments are received as they are streamed to the client device.
10. The computer-implemented system of claim 8, further comprising means for requesting selected ones of the cacheable segments from the content distributor based on an identification of the cacheable segments in the asset matrix.
11. The computer-implemented system of claim 8, further comprising means for maintaining metadata corresponding to each of the cacheable segments of the media asset, the metadata indicating at least an initial quality display format of each of the cacheable segments.
12. The computer-implemented system of claim 8, further comprising means for adjusting bandwidth used to download selected ones of the cacheable segments while backfilling the assembled asset data file with the selected ones of the cacheable segments.
13. The computer-implemented system of claim 8, further comprising means for maintaining an asset fragment data file for a selected one of the cacheable fragments, the asset fragment data file being a separate data file from an assembled asset data file for the media asset.
HK12112338.2A 2009-10-29 2010-10-21 Assembling streamed content for on-demand presentation HK1171588B (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/608,447 US9002881B2 (en) 2009-10-29 2009-10-29 Assembling streamed content for on-demand presentation
US12/608,447 2009-10-29
PCT/US2010/053634 WO2011059657A2 (en) 2009-10-29 2010-10-21 Assembling streamed content for on-demand presentation

Publications (2)

Publication Number Publication Date
HK1171588A1 HK1171588A1 (en) 2013-03-28
HK1171588B true HK1171588B (en) 2014-10-10

Family

ID=

Similar Documents

Publication Publication Date Title
US9002881B2 (en) Assembling streamed content for on-demand presentation
EP2569750B1 (en) Editable bookmarks shared via a social network
EP2451151B1 (en) Method and apparatus for use in controlling the playback of contents related with a recorded content.
US9189806B2 (en) Streaming playback and dynamic ad insertion
US10423320B2 (en) Graphical user interface for navigating a video
US8312376B2 (en) Bookmark interpretation service
US8825809B2 (en) Asset resolvable bookmarks
CA2793450C (en) Media content improved playback quality
US20190149885A1 (en) Thumbnail preview after a seek request within a video
US20070294292A1 (en) Advertising transfer and playback on portable devices
US8176193B2 (en) Dynamic media asset delivery
US11356516B1 (en) Client-side caching of media content
US20060085441A1 (en) Method and apparatus for download and storage of content
HK1171588B (en) Assembling streamed content for on-demand presentation
AU2013101518B4 (en) Remote content download
HK1178654B (en) Editable bookmarks shared via a social network
HK1178654A (en) Editable bookmarks shared via a social network