[go: up one dir, main page]

HK1171583B - Media content location awareness and decision making - Google Patents

Media content location awareness and decision making Download PDF

Info

Publication number
HK1171583B
HK1171583B HK12112173.0A HK12112173A HK1171583B HK 1171583 B HK1171583 B HK 1171583B HK 12112173 A HK12112173 A HK 12112173A HK 1171583 B HK1171583 B HK 1171583B
Authority
HK
Hong Kong
Prior art keywords
endpoint
computing device
content
metadata
instance
Prior art date
Application number
HK12112173.0A
Other languages
Chinese (zh)
Other versions
HK1171583A1 (en
Inventor
J.C.亚伯拉罕
B.K.达科斯塔
Z.约翰逊
S.麦克罗伯茨
A.L.西尔弗曼
J.麦克拉纳汉
R.N.普利亚姆
R.邦芬
S.克伦卡克
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 US13/023,413 external-priority patent/US8725680B2/en
Application filed by 微软技术许可有限责任公司 filed Critical 微软技术许可有限责任公司
Publication of HK1171583A1 publication Critical patent/HK1171583A1/en
Publication of HK1171583B publication Critical patent/HK1171583B/en

Links

Description

Media content location awareness and decision making
Technical Field
The present invention relates to media content consumption.
Background
End users often have media collections distributed across multiple endpoint computing devices (e.g., phones, personal computers, laptops, game consoles, tablet devices, etc.) across multiple networks. With the advent of fast network connections to most devices and the ability to maintain nearly continuous connections for many endpoints, users do not have to have a local copy of a piece of content in order to access the piece of content. However, the location of all content in a user's collection of users from any of the users ' endpoint computing devices in the user's domain is currently unknown. Furthermore, intelligent decisions regarding selecting one instance of the same content item for playback when multiple instances of the content item are located on different endpoint computing devices cannot currently be made to maintain a high quality user experience.
Disclosure of Invention
Embodiments are disclosed that relate to the ability to find content for consumption across all endpoint computing devices in a computing system. For example, one disclosed embodiment provides a method for presenting content, including aggregating endpoint metadata for each of a plurality of endpoint computing devices in a computing system and content metadata for content stored on each endpoint computing device, receiving a request for a content item on a selected endpoint computing device, querying the aggregated endpoint metadata and content metadata for an instance of the content item and a corresponding endpoint computing device location, generating a ranked list of instances of the content item based on selection criteria, and selecting an instance of the content item from the ranked list for playback by the selected endpoint computing device.
This summary is provided to introduce a selection of concepts in a simplified form that are further described below in the detailed description. This summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter. Furthermore, the claimed subject matter is not limited to implementations that solve any or all disadvantages noted in any part of this disclosure.
Drawings
FIG. 1 is a block diagram of one embodiment of a computing system of the present invention.
FIG. 2 is a flow diagram of an embodiment of a method for presenting content.
FIG. 3 is a block diagram of one embodiment of a table of contents on an endpoint.
DETAILED DESCRIPTION OF EMBODIMENT (S) OF INVENTION
This specification relates to the ability to find media content across a user's domain or all endpoint computing devices in a computing system. In other words, all of the media content may be presented to each computing device in the user's domain. More particularly, the present specification relates to examples of selecting content items for playback without interaction from a user by making intelligent decisions based on selection criteria. Such a decision may be made based on: endpoint metadata describing characteristics of each endpoint computing device in the user's domain, and content metadata describing characteristics of each content item, including on which endpoint computing device the content item is located. Further, when different instances of a content item are stored in multiple endpoint computing device locations in a user's computing system, selection criteria may be applied to determine which instance of the content item should be retrieved for playback to the user.
FIG. 1 illustrates a block diagram of one embodiment of a computing system 100 of the present invention. Computing system 100 may include a plurality of endpoint computing devices 102 that may be operatively coupled or in communication via a computing cloud 104. Computing cloud 104 may include various interconnected networks whereby shared computing devices (e.g., servers) are able to provide, communicate, or share resources, software, and/or data to any, some, or all of the plurality of endpoint computing devices 102 and/or other devices as needed.
In the illustrated embodiment, the plurality of endpoint computing devices 102 may represent various computing devices in a user's domain or computing system. In other words, a user may access, use, and/or own multiple endpoint computing devices. These endpoint computing devices may be located in different locations, such as the user's home, school, office, automobile, body, and so forth. Further, these computing devices may be used for different applications, such as entertainment, education, occupation, communication, travel, and so forth. For example, the plurality of endpoint computing devices 102 may include a first computing device 106 (e.g., a personal computer), a second computing device 108 (e.g., a laptop computer), a mobile computing device 110 (e.g., a smartphone), and a game console 112. Additionally, the plurality of endpoint computing devices 102 may include a web client 114 that may be used by a user to access the user's domain from another suitable computing device. For example, the web client 114 may be used by a user to access the user's media collection from a public computer, such as at a library. As another example, the web client 114 may be used by a user to access the user's media collection from a friend's computer. In some implementations, the endpoints of the user's domain may include a virtual marketplace, library, website, or other storage hosted by a third party from which the user may retrieve or receive licenses for content items for consumption. Note that in some implementations, the computing cloud 104 includes cloud data stores 120 that can be categorized as endpoints of a user's domain.
In addition to being operatively coupled through the computing cloud 104, some endpoint computing devices may be directly connected without communicating through the computing cloud. For example, the first computing device 106 and the second computing device 108 may communicate over the local area network 126 without connecting to a computing cloud. As another example, the mobile computing device 110 may be directly connected to the first computing device 106, such as through a Universal Serial Bus (USB) cable. In some cases, these connections may allow various synchronization, streaming, and/or playback operations to be performed without communicating through the computing cloud.
Each of the plurality of endpoint computing devices 102 may include an Application Programming Interface (API)122 or be configured to execute the API 122. API122 may allow communication between endpoint computing devices through computing cloud 104. The API122 may be employed for lighter operations such as streaming playback of a content item. API122 is a suitable carrier for lower-capability endpoint computing devices to perform various operations; however, it should be understood that the API122 may be employed by any of a plurality of endpoint computing devices 102.
Further, some of the plurality of endpoint computing devices 102 may include or be configured to execute native applications 124, the native applications 124 using the resources of the endpoint computing devices to perform various synchronization, streaming, and/or playback operations. In some implementations, the native application 124 may execute on a full-capability endpoint computing device, such as the first computing device 106, which may have a persistent connection to the computing cloud 104 and hold the content 116, and may also have processing capabilities to perform content item synchronization and management operations.
The plurality of endpoint computing devices 102 collectively store a user's media collection, which may include different content items 116. By way of example, the content items 116 may include any suitable digital media, such as image files, video files, audio files, and the like. In some cases, one or more content items 116 in a media collection may be stored in multiple locations. For example, a song may be stored on the user's personal computer as well as the user's smart phone. In some cases, more than one instance of a content item 116 may be present in a media collection. For example, an access-limited (e.g., Digital Rights Management (DRM) -limited) instance of a song and an unlimited instance of the song may be stored on the user's personal computer (or another endpoint computing device).
As described above, to present a user's media collection to each endpoint computing device in computing system 100, metadata for each endpoint computing device and metadata for each instance of content stored on each computing device may be aggregated. In particular, each computing device may be configured to execute location-aware playback module 118. The location-aware playback module 118 may be configured to allow metadata of the multiple endpoint computing devices 102 to be synchronized such that each endpoint is aware of each instance of each content item for playback. In particular, each endpoint computing device may become aware of the storage location of each instance of each content item 116 in the user's media collection, as well as the characteristics of each endpoint computing device and each instance of each content item via endpoint metadata 130 and content metadata 132. The endpoint metadata 130 and the content metadata 132 may be considered in retrieving instances of the content item for playback on the selected endpoint computing device to provide the most appropriate playback experience. For example, endpoint metadata 130 may include endpoint computing device capabilities, presence status, connection speed/rate, network location, battery life, display capabilities, and streaming capabilities. In addition, the content metadata 132 may include access restrictions, encoding bit rates, formats including resolution, audio streams (e.g., 2-channel, 5.1, 7.1, etc.), languages, subtitles, playback status, and the like. Note that although not shown in fig. 1, each instance of location-aware playback module 118 may include various elements listed in the detailed example implemented on first computing device 106, including endpoint metadata 130 and content metadata 132.
In some implementations, the process for synchronizing multiple computing devices 102 may be cloud-based. For example, each endpoint computing device may send endpoint metadata 130 for the endpoint computing device and content metadata 132 for each instance of each content item stored on the endpoint computing device to computing cloud 104. Endpoint metadata 130 and content metadata 132 aggregated from multiple endpoint computing devices 102 may be saved or stored in cloud data storage 120. In some implementations, the endpoint metadata 130 and the content metadata 132 may be aggregated into the on-endpoint content table 128. In some implementations, the on-endpoint content table 128 may be stored locally on one or more endpoint computing devices. The cloud data store 120 may be synchronized to or made available to each of a plurality of endpoint computing devices by queries across all of the endpoint computing devices of the user (such as through the API 122). In some cases, the endpoint computing device may send metadata to cloud data storage 120 in response to the metadata being updated. In some cases, an endpoint computing device with intermittent cloud connection/connection persistence, such as a mobile computing device, may send metadata to cloud data store 120 in response to a connection to a computing cloud.
Additionally or alternatively, in some implementations, the process of metadata synchronization among multiple computing devices 102 may be peer-to-peer (P2P) based. For example, each endpoint computing device may include a data store such as an on-endpoint content table 128, the on-endpoint content table 128 including endpoint metadata 130 and content metadata 132 aggregated from all endpoint computing devices of users in the computing system 100. Synchronization may be performed by each computer's P2P query to aggregate metadata, such as through API 122. Note that the aggregation operation described herein is exemplary and other aggregation operations may be performed without departing from the scope of this specification. Further, note that endpoint metadata and content metadata may be maintained and/or synchronized at each storage location even when changes are made to the endpoint computing devices, endpoint lists, and content contained in the computing system.
Once different instances of a content item and their storage locations have been exposed to each endpoint computing device by aggregating the endpoint and content metadata, location-aware playback module 118 may facilitate retrieval of content for consumption by a user from any endpoint computing device in the user's domain. In particular, the position-aware playback module 118 may be configured to receive a request for a content item, such as a user request to listen to a song, on a selected endpoint computing device. Location-aware playback module 118 may query the aggregated endpoint metadata and content metadata locally or in cloud data storage 120 to find the location of the available instance of the requested content item. When multiple instances of the requested content item exist at different locations in the computing system, the query may generate a list 134 of available instances of the content item. As an example, an instance of a content item is available if the computing device on which the instance is stored is currently connected to a computing cloud. As another example, if an instance of a content item is access limited, a license to playback the content must be obtained for the instance to be considered available.
The location-aware playback module 118 may rank the list 134 of available instances of content items or generate a ranked list based on selection criteria 136. Selection criteria 136 may include access limitations, network topology, network bandwidth, cost of service to transfer content (e.g., relay versus subnet), cost of users (e.g., WiFi is preferred over-the-air transfers such as 3G), persistent availability of the source endpoint computing device (e.g., network persistence), proximity and/or latency, playback device capabilities (e.g., what the device is capable of streaming, whether the device has the ability to transcode content into other formats, etc.), and/or another suitable playback factor.
In some implementations, each instance of a content item in the list of available instances may be awarded a score based on a selection criterion. For example, the selection criteria may have a priority order or weight of scores added to the content items. The scoring of the selection criteria may be as follows.
For an access restriction, if DRM or another access restriction does not exist, in other words the instance is unrestricted, the score of the instance is increased. Otherwise, if the instance has access restrictions, the score for the instance may be lowered. Further, if a license for an instance is not available, the instance may be removed from the list.
For a network topology, the topology may be learned as a result of aggregation operations, and it may be determined whether any instances are stored on endpoint computing devices that may be reached directly on a local subnet. In one example, techniques such as Simple Service Discovery Protocol (SSDP) and/or universal plug and play (UPNP) may be employed to perform such a determination. As another example, the determination may be made based on the number of network hops (network hops) between the two endpoints involved. The score may be increased if the instance is reachable (or directly connected) on the local subnet. Otherwise, the score may be decreased. For example, the first computing device 106 may request an instance of a content item that is available from both the second computing device 108 and the computing cloud 104. Because the first computing device and the second computing device are connected via the local area network 126 and share the same subnet, instances stored on the second computing device 108 may have a greater score increase than instances stored on devices accessible through the computing cloud.
For network bandwidth, the score may be increased in proportion to the available bandwidth of the corresponding endpoint computing device. In some implementations, the upper limit of fractional increase may be set to a maximum streaming rate if playback of the content item is streamed rather than downloaded. For example, two different instances of a content item may be stored at the same endpoint computing device, such as a high-definition and standard-definition instance of the same movie. In some cases, the fractional improvement of the standard-definition instance of the content item may be higher than the fractional improvement of the high-definition instance in order to conserve bandwidth depending on the selected endpoint capabilities.
For service costs of transferring content (e.g., relay versus subnet or direct connection), the score may be reduced if content from an endpoint computing device connected through the cloud is transferred (and may incur a cost to the service operator). On the other hand, the score may be increased if the endpoint computing device on which the instance is stored is on the same subnet, local area network, or otherwise capable of negotiating a firewall/Network Address Translation (NAT) boundary and directly connecting to the selected endpoint computing device to receive the instance of the content item. In some implementations, there may be additional score increases for wired and wireless connections with the same subnet.
For user cost, some network connections (e.g., 3G/4G/LTE), such as through a cellular network, may have associated bandwidth costs that are much higher than other wired/wireless networks. Thus, the score may be improved for using a "free" network, such as an unlimited WiFi hotspot. Otherwise, the score may be reduced for use with other networks.
For continued availability of source or network persistence, in the event that the endpoint computing device on which the instance is stored is not a desktop computer, it is more likely that the endpoint computing device will become inaccessible (e.g., the laptop goes to sleep, the phone goes out of range, the game console is used to play the game and fails to satisfy the content request, etc.), and as a result, instances of the content item should be retrieved from sources that are likely to remain available to increase the likelihood of successful transfer of the content. Thus, the score may be increased for instances stored on the non-transient endpoint computing device, which may be determined from the endpoint metadata. On the other hand, the score may be decreased for instances stored on the transient endpoint computing device. In some implementations, persistent availability may be scored differently depending on the type of content. As an example, persistent availability may have less impact than video when streaming/copying music, since music files are typically much smaller and can be transmitted in less time.
Endpoint computing devices that are "closer" to each other in a network sense are more likely to provide a better streaming/downloading experience with respect to endpoint proximity/latency. Thus, the score may be increased for endpoint computing devices that are stored in lower latency and/or closer proximity. On the other hand, the score may be decreased for instances stored on higher latency and/or longer distance endpoint computing devices.
With respect to device capabilities, device capabilities can be measured based on how well an endpoint computing device will stream content and at what resolution and/or bit rate the content item can be presented. As such, the score may be increased based on how well the instance and/or endpoint computing device matches the endpoint computing device selected for playback. For example, if an endpoint computing device including a high-definition display is selected for playback, a higher resolution instance of the video may have a greater fractional increase than a lower resolution instance. As another example, if a mobile phone is selected for playback, an instance that matches the resolution of the mobile phone may be granted a greater fractional increase than another instance with a higher or lower resolution. Note that in some implementations, the score may simply remain the same rather than decrease. In other words, no score increase may be granted to instances that do not satisfy a given selection criterion. Further, in some cases, the device capabilities may include battery life. For example, a plugged-in laptop or desktop computing device may have a higher score than a mobile device operating on the same network.
Once the list 134 of available instances of content items is scored and ranked according to the selection criteria described above, the location-aware playback module 118 may be configured to select one instance of a content item from the ranked list for playback by the selected endpoint computing device. In some implementations, the instance with the highest rank or score may be selected for playback. Further, the ranked list may be maintained until the content item is successfully played back. If playback of the selected instance is not complete for a given reason, such as the endpoint computing device disconnecting from the computing cloud, the next highest ranked instance may be selected from the ranked list for playback, and so on until playback is successfully completed or the list is exhausted. In some implementations, the ranked list can be presented to a user, and an instance can be selected according to a user input indicating the selection. In some implementations, third party instances from the marketplace may score higher and may be selected over some instances stored on the user endpoint computing device location.
Playback may be performed differently depending on the nature of the playback request, the device capabilities, and/or the connection between the selected playback device and the device on which the selected instance of the content item is stored. In some cases, playback may include sending/receiving, at the endpoint computing device, a copy of the selected instance of the content item, such as via a native application executable by the endpoint computing device. For example, the first computing device 106 may save an instance of the content items selected from the ranked list for playback at the second computing device 108. Thus, a copy of the selected instance of the content item may be transmitted from the second computing device 108 to the first computing device 106 via the local area network 126. As another example, the first computing device 106 may save an instance of the content item selected from the ranked list for playback at the mobile computing device 110, and the mobile computing device 110 may connect directly to the first computing device 106. Thus, a copy of the selected instance of the content item may be sent from the first computing device 106 to the mobile computing device 110 via a direct connection (e.g., a USB cable).
Further, in some cases, playback may include streaming the selected instance of the content item to the endpoint computing device, such as via an API. For example, the user may be accessing the location-aware playback module 118 through the web client 114 to request playback of an instance of a content item from the first computing device 106. In this example, the web client 114 may have limited capabilities. Thus, the first computing device 106 streams the selected instance to the web client 114. As another example, the mobile computing device 110 may stream instances of content items from the computing cloud 104, such as from a content marketplace service.
Note that playback, as used herein, may include sending a copy of an instance of a content item from one endpoint to another for immediate consumption or for later consumption, as well as streaming an instance of a content item.
In different implementations, the endpoint computing device may take the form of: a mainframe computer, server computer, desktop computer, laptop computer, tablet computer, home entertainment device (e.g., a television with data storage capabilities), network computing device, mobile communication device, gaming device, tablet, etc.
Further, each endpoint computing device may include a processing device and a data storage device. The processing device includes one or more physical devices configured to execute one or more instructions. For example, a processing device may be configured to execute one or more instructions that are part of one or more applications, services, programs, routines, libraries, objects, components, data structures, or other logical constructs. Such instructions may be implemented to perform a task, implement a data type, transform the state of one or more devices, or otherwise arrive at a desired result.
The data storage system may include one or more physical, non-transitory devices configured to hold data and/or instructions executable by the logic subsystem to implement the methods and processes described herein. In implementing such methods and processes, the state of the data storage device may be transformed (e.g., to save different data). The data storage device may include removable computer-readable storage media and/or built-in devices. The data storage devices may include optical memory devices (e.g., CD, DVD, HD-DVD, blu-ray disc, etc.), semiconductor memory devices (e.g., RAM, EPROM, EEPROM, flash memory, etc.), and/or magnetic memory devices (e.g., hard disk drive, floppy disk drive, tape drive, MRAM, etc.), among others. The data storage device may comprise a device having one or more of the following characteristics: volatile, nonvolatile, dynamic, static, read/write, read-only, random access, sequential access, location addressable, file addressable, and content addressable data stores.
The terms "module," "program," and "engine" may be used to describe an aspect of computing system 100 that is implemented to perform one or more particular functions. In some cases, such a module, program, or engine may be instantiated via a processing device executing instructions held by a data storage device. It should be appreciated that different modules, programs, and/or engines may be instantiated from the same application, service, code block, object, library, routine, API, function, etc. Likewise, the same module, program, and/or engine may be instantiated by different applications, services, code blocks, objects, routines, APIs, functions, etc. The terms "module," "program," and "engine" are intended to encompass a single or group of executable files, data files, libraries, drivers, scripts, database records, and the like.
In some implementations, a particular endpoint computing device may not have access or knowledge of all instances of all of the content of the user's domain. For example, each endpoint computing device may select or be limited to which subtypes of content item metadata are consumed and synchronized with the computing cloud. The computing cloud may store all content metadata subtypes. As a particular example, a mobile endpoint computing device may only have a partial view of a user's collection of content (e.g., music rather than video). As one example, partial access to a user's content collection may be employed due to limitations in device capabilities.
FIG. 2 is a flow diagram of an embodiment of a method 200 for presenting content. In one example, method 200 may be performed by an endpoint computing device of computing system 100. At 202, the method includes aggregating endpoint metadata for each endpoint computing device in the computing system and content metadata for content stored on each endpoint computing device. In some implementations, endpoint metadata includes endpoint computing device capabilities, presence status, connection speed/rate, and network location. In some implementations, the content metadata includes access restrictions, encoding bit rate, format, and playback status. In some implementations, aggregation may include building a table of contents on the endpoints to help retrieve storage locations for different instances of the content item. In some implementations, the aggregated endpoint metadata and content metadata may be stored at a cloud storage accessible by each endpoint computing device in a user's domain or computing system. In some implementations, the aggregated endpoint metadata and content metadata may be stored at each endpoint computing device in the user's domain or computing system.
At 204, the method may include receiving a request for a content item at the selected endpoint computing device.
At 206, the method may include querying the aggregated endpoint metadata and content metadata to find instances of the requested content item and endpoint computing device locations corresponding to the instances. In some implementations, querying can include providing input to the table of contents on the endpoint to retrieve the available instance.
At 208, the method may include generating a ranked list of instances of the requested content item based on the selection criteria. In some implementations, at 210, the method can include generating a ranked list based on selection criteria including the determined availability of the instances. For example, the method may include determining whether any instances are unavailable due to access restrictions, such as DRM restrictions, that do not have the ability to obtain playback licenses. Alternatively or additionally, as another example, the method may include determining whether any instances are unavailable due to an inability to connect to an endpoint computing device on which the instances are stored, such as an endpoint device intermittently or not connected to a computing cloud. If an instance is determined to be unavailable, it may receive a low ranking or may not be included in the ranked list. Further, instances that are deemed unavailable at any given time may be tracked in cloud data store 120 to check if availability changes and the score or ranking may be changed accordingly.
In some implementations, at 212, the method may include generating a ranked list based on selection criteria including the determined bandwidth of the endpoint device on which the instance is stored. For example, instances stored on endpoint computing devices with higher bandwidths may be ranked higher in the list, while instances stored on endpoint computing devices with lower bandwidths may be ranked lower in the list. In implementations in which instances are scored, higher bandwidth instances may receive a fractional increase that is greater than the fractional increase of lower bandwidth instances.
In some implementations, at 214, the method can include generating a ranked list based on selection criteria including the determined cost of service of the transmission instance. For example, instances stored on the user-owned endpoint computing device may rank higher in the list, while instances stored on the service provider-owned endpoint computing device (e.g., the server computing device hosting the online marketplace) may rank lower in the list. In implementations in which the score is scored for the instance, the instance stored on the user-owned endpoint computing device may receive a score increase that is greater than the score increase of the instance stored on the service provider-owned endpoint computing device.
In some implementations, at 216, the method can include generating a ranked list based on selection criteria including the determined user cost of the instance. For example, instances of transmissions over some network connections (e.g., 3G/4G/LTE), such as cellular networks, may have a much higher bandwidth cost associated with them than other wired/wireless networks, such as WiFi or direct connections. Thus, instances that may be transferred over a lower user cost connection may be ranked higher in the list, while instances that may be transferred over a higher user cost connection may be ranked lower in the list. In implementations where instances are scored, lower user cost instances may receive a score increase that is greater than the score increase of higher user cost instances.
In some implementations, at 218, the method may include generating a ranked list based on selection criteria including the determined availability of the endpoint computing device. For example, instances stored on endpoint computing devices with persistent connections to the computing cloud, such as desktop computing devices with wired connections, may be ranked higher in the list, while instances stored on endpoint computing devices with less persistent connections, such as smartphones with cellular connections to the computing cloud, may be ranked lower in the list. In implementations in which instances are scored, more persistently connected instances may receive a score increase that is greater than the score increase of less persistently connected instances.
In some implementations, at 220, the method may include generating a ranked list based on selection criteria including the determined proximity and/or latency of the endpoint device on which the instance is stored. For example, instances stored on endpoint computing devices that are closer in network topology (e.g., on the same subnet) or have lower latencies may be ranked higher in the list, while instances stored on endpoint computing devices that are farther in network topology or have higher latencies may be ranked lower in the list. In implementations where instances are scored, closer or lower latency instances may receive a score increase that is greater than the score increase of farther or higher latency instances.
In some implementations, at 222, the method may include generating the ranked list based on selection criteria including the determined capabilities of the endpoint computing device selected to play back the requested content item. For example, instances having formats that more closely match the playback capabilities of the selected endpoint computing device may be ranked higher in the list, while instances that less closely match the playback capabilities of the selected endpoint computing device may be ranked lower in the list. As an example, when the playback capability of the requested endpoint computing device has a lower resolution playback capability, the lower resolution formatted instance is ranked higher than the higher resolution formatted instance. In implementations in which instances are scored, more closely matching instances may receive a score increase that is greater than the score increase of less closely matching instances.
Note that in different implementations, the above-described selection criteria may be considered separately or in combination to rank different instances of the requested content item. Further, in some implementations, the user input may change the scoring based on the selection criteria described above.
At 224, the method may include selecting an instance of the requested content item from the ranked list for transmission to and/or playback at the selected endpoint computing device. In some implementations, the method can include selecting a high ranked instance from the ranked list.
At 226, the method may include presenting the selected instance of the requested content item at the selected endpoint computing device.
The above method has the following potential advantages: the method can expose all of the different instances of the content item in the user's domain to all of the endpoint computing devices, and can provide the ability to select the most appropriate instance of the content item for transmission and/or playback based on the connection characteristics of the selected endpoint computing device and/or capabilities at any of the endpoint computing devices in the user's domain.
Fig. 3 is a block diagram of one embodiment of an on-endpoint table of contents 300. The on-endpoint content table 300 may be generated via aggregating metadata from endpoint computing devices in the user's domain. In particular, the on-endpoint content table 300 may include a representation 302 of each endpoint computing device in the user's domain. Each endpoint computing device representation 302 may include endpoint metadata 304. For example, endpoint metadata may include computing device capabilities, presence status, connection speed/rate, and network location.
Further, each endpoint computing device representation 302 may include a representation of each instance 306 of each content item stored on the endpoint computing device. Each instance 306 may include content metadata 308. For example, the content metadata may include access restrictions, encoding bit rate, format, and playback status.
By aggregating such metadata, each endpoint computing device in the user's domain may be synchronized to present all instances of content in the user's domain at each endpoint computing device. Further, an on-endpoint content table (stored locally or in a computing cloud) may be queried from any endpoint computing device to select and playback content items.
It will be appreciated that the configurations and/or approaches described herein are exemplary in nature, and that these specific embodiments or examples are not to be considered in a limiting sense, because numerous variations are possible. The specific routines or methods described herein may represent one or more of any number of processing strategies. As such, various acts illustrated may be performed in the sequence illustrated, in other sequences, in parallel, or in some cases omitted. Also, the order of the above-described processes may be changed.
The subject matter of the present disclosure includes all novel and nonobvious combinations and subcombinations of the various processes, systems and configurations, and other features, functions, acts, and/or properties disclosed herein, as well as any and all equivalents thereof.

Claims (7)

1. A method (200) of user presentation of content, comprising:
aggregating (202) endpoint metadata for each of a plurality of endpoint computing devices in a computing system, including endpoint computing device capabilities, presence status, connection speed/rate, and network location, and content metadata for content stored on each endpoint computing device, including access restrictions, encoding bitrate, format, and playback status;
receiving (204), on the selected endpoint computing device, a request for a content item;
querying (206) the aggregated endpoint metadata and content metadata for instances of the content item and a corresponding endpoint computing device location;
generating a ranked list of instances of the content item based on selection criteria by considering the endpoint metadata and the content metadata; and
selecting (224) an instance of the content item for playback by the selected endpoint computing device.
2. The method of claim 1, wherein the aggregated endpoint metadata and content metadata are stored at a cloud storage accessible by each endpoint computing device in the computing system.
3. The method of claim 1, wherein the aggregated endpoint metadata and content metadata are stored at each endpoint computing device in the computing system.
4. The method of claim 1, further comprising:
selecting a highest-ranked instance of the content item from the ranked list for playback by the selected endpoint computing device.
5. The method of claim 1, wherein the selection criteria comprises a selected endpoint computing device capability.
6. The method of claim 1, in which the selection criteria comprises service and/or user cost.
7. The method of claim 1, wherein the selection criteria include endpoint computing device availability and/or instance availability, connection speed/rate, and/or network proximity/latency of an endpoint computing device on which the instance of the content item is stored.
HK12112173.0A 2011-02-08 2012-11-27 Media content location awareness and decision making HK1171583B (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/023,413 US8725680B2 (en) 2011-02-08 2011-02-08 Media content location awareness and decision making
US13/023,413 2011-02-08

Publications (2)

Publication Number Publication Date
HK1171583A1 HK1171583A1 (en) 2013-03-28
HK1171583B true HK1171583B (en) 2017-01-13

Family

ID=

Similar Documents

Publication Publication Date Title
US8725680B2 (en) Media content location awareness and decision making
US20120203932A1 (en) Multi-master media metadata synchronization
KR101700667B1 (en) Storage network data allocation
US8990364B2 (en) Architecture for content awareness and control among peer-to-peer communication devices
US9680891B2 (en) System, method and network device for streaming data from a network
US20220083591A1 (en) Systems and Methods for Generating Playlists in a Music Service
US20080005358A1 (en) Method and apparatus for synchronizing content directory service in universal plug and play network
EP3136655B1 (en) Multimedia display method, device and equipment
US9300986B2 (en) Media system with canonical architecture for integrating media productions from different content providers
US9912746B2 (en) Content distribution system
EP3042500B1 (en) Metadata-based file-identification systems and methods
EP2560404A2 (en) Electronic device and operating method of the same
US20160041879A1 (en) Data backup to and restore from trusted devices
KR20150029918A (en) System of synchronizing contents in a cloud system having a plurality of distributed servers
EP2547038B1 (en) Electronic device for managing a network and operating method of the same
EP3699776B1 (en) Communicating shuffled media content
CN112637626A (en) Plug flow method, system, device, electronic equipment and storage medium
HK1171583B (en) Media content location awareness and decision making
CN104268208B (en) A kind of method and device of centralized displaying file
US8909826B2 (en) System and method for extending user-interface, and storage medium storing the same
HK1185168A (en) Multi-master media metadata synchronization
KR20150026125A (en) File storage, method and apparatus of managing files using the same