Selecting avatar to be included in video generated on demand
By identifying the avatars of the user and their contact persons and generating media content requests containing these avatars, the problem of insufficient personalization and real-timeness of video content in the prior art is solved, and the effective presentation of media content that users are interested in is achieved.
Patent Information
- Application Number
- CN202411811608.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2020-01-30
- Filing Date
- 2021-01-28
- Publication Date
- 2025-04-11
- Estimated Expiration
- 2041-01-28
AI Technical Summary
It is difficult to effectively generate personalized video content in the prior art, especially in social networking systems, the avatar of the user and the avatar of the contact person need to be accurately presented in the video, and the system needs to adjust the media content in real time according to the user's interests and interaction situation.
By detecting the user's selection of optional options associated with the animation series, identifying users who have recently interacted with the user through the communication platform, generating media content requests containing the avatars of the user and their contacts, realizing on-demand video content.
The personalization and real-time nature of video content is realized, and users can convey their feelings in the video more accurately through avatars, and the system can more effectively present the media content they are interested in to users.
Smart Images

Figure CN119815072A_ABST
Abstract
Description
[0001] This application is a divisional application of the Chinese patent application filed on July 29, 2022, with application number 202180011914.6 and invention name “Selecting an avatar to be included in a video generated on demand”. The international filing date of the parent application is January 28, 2021, and the international application number is PCT / US2021 / 015497.
[0002] CROSS-REFERENCE TO RELATED APPLICATIONS
[0003] This application claims priority to U.S. patent application serial number 16 / 777,798, filed on January 30, 2020, the contents of which are incorporated herein by reference in their entirety.
[0004] This application is related to U.S. patent application serial number 16 / 777,817 filed on January 30, 2020, U.S. patent application serial number 16 / 777,793 filed on January 30, 2020, U.S. patent application serial number 62 / 968,111 filed on January 30, 2020, and U.S. patent application serial number 16 / 777,799 filed on January 30, 2020, the contents of each of the above U.S. patent applications are incorporated herein by reference in their entirety. Technical Field
[0005] The present application relates generally to message processing. Background Art
[0006] The continued growth in popularity of social networking systems and the increasing use of customized avatars by users within electronic messaging such as text messaging, email, and chat reflect a global need to communicate more intuitively.
[0007] These customized avatars can be personalized by the user to represent the user in various applications, video games, messaging services, etc. Since the customized avatars can be generated in a different array of situations, displaying various emotions, or even animated, the user is able to more accurately convey their feelings in a message using the customized avatar. The user can use the customized avatar as a virtual extension of themselves online.
[0008] Furthermore, as the number of users on a social networking system increases, each user also has a growing network of individuals that she follows. In order to maintain user engagement on a social networking system, it is of utmost importance that the system has the ability to present to each user the media content items that are of most interest or relevance to her. In addition to the need to curate media content items, social networking systems also face the challenge of providing a graphical user interface that attracts the user's attention and allows her to view the curated media content items and further interact with the network of individuals that she follows. Summary of the invention
[0009] One aspect of the present application discloses a method, comprising: detecting, by a processor, a selection of an optional item associated with an animation series by a first user of a first client device; identifying a second user to be included in the animation series with the first user, wherein identifying the second user comprises identifying a user who recently sent an electronic message to the first client device via a communication platform; generating a request for a media content item associated with a first episode of a plurality of episodes of the animation series, the request comprising a primary user identifier associated with the first user and a secondary user identifier associated with the second user, wherein the request causes the first episode to be generated on demand to include a first avatar associated with the first user and a second avatar associated with the second user as character members in the first episode; and receiving a playlist associated with the media content item, wherein the playlist comprises a plurality of media content item segments, the plurality of media content item segments comprising the first avatar and the second avatar.
[0010] One aspect of the present application discloses a system, comprising: a processor; and a memory component having instructions stored thereon, which, when executed by the processor, cause the system to perform operations including the following steps: detecting a selection of an optional item associated with an animation series by a first user of a first client device; identifying a second user to be included in the animation series with the first user, wherein identifying the second user includes identifying a user who recently sent an electronic message to the first client device via a communication platform; generating a request for a media content item associated with a first episode of a plurality of episodes of the animation series, the request including a primary user identifier associated with the first user and a secondary user identifier associated with the second user, wherein the request causes the first episode to be generated on demand to include a first avatar associated with the first user and a second avatar associated with the second user as character members in the first episode; and receiving a playlist associated with the media content item, wherein the playlist includes a plurality of media content item segments, and the plurality of media content item segments include the first avatar and the second avatar.
[0011] One aspect of the present application discloses a non-transitory computer-readable storage medium having instructions stored thereon, which, when executed by a processor, causes the processor to perform operations including the following steps: detecting a selection of an optional item associated with an animation series by a first user of a first client device; identifying a second user to be included in the animation series with the first user, wherein identifying the second user includes identifying a user who recently sent an electronic message to the first client device via a communication platform; generating a request for a media content item associated with a first episode of a plurality of episodes of the animation series, the request including a primary user identifier associated with the first user and a secondary user identifier associated with the second user, wherein the request causes the first episode to be generated on demand to include a first avatar associated with the first user and a second avatar associated with the second user as character members in the first episode; and receiving a playlist associated with the media content item, wherein the playlist includes a plurality of media content item segments, and the plurality of media content item segments include the first avatar and the second avatar. BRIEF DESCRIPTION OF THE DRAWINGS
[0012] To easily identify the discussion of any particular element or act, one or more of the highest digits in a reference number refers to the figure number in which the element is first introduced.
[0013] Figure 1 is a pictorial representation of a networked environment in which the present disclosure may be deployed, according to some example implementations.
[0014] Figure 2 is a graphical representation of a messaging client application according to some example implementations.
[0015] Figure 3 is a graphical representation of a data structure as maintained in a database according to some example implementations.
[0016] Figure 4 is a graphical representation of a message according to some example embodiments.
[0017] Figure 5 is a graphical representation of details of a networking environment in which the present disclosure may be deployed, according to some example implementations.
[0018] Figure 6 A flow chart of a process for rendering video on demand is shown according to one embodiment.
[0019] Figure 7 A flow chart of a process for rendering a second set of media content item segments according to one embodiment is shown.
[0020] Figure 8A flow chart of a process for rendering video on demand using multiple GPUs is shown according to one embodiment.
[0021] Fig. 9 A flow chart of a process for rendering video on demand using multiple servers is shown according to one embodiment.
[0022] Fig.10 A flow chart of a process for selecting avatars to include in a video generated on demand is shown according to one embodiment.
[0023] Fig.11 An example of a user interface 1100 displayed by a client device is shown according to one embodiment.
[0024] Fig.12 An example of a frame 1200 of a media content item displayed by a client device is shown according to one embodiment.
[0025] Fig.13 An example of a frame 1300 of a media content item displayed by a client device is shown according to one embodiment.
[0026] Fig.14 is a block diagram illustrating a software architecture in which the present disclosure may be implemented according to some example implementations.
[0027] Fig.15 is a diagrammatic representation of a machine in the form of a computer system within which a set of instructions may be executed, causing the machine to perform any one or more of the methodologies discussed herein, according to some example embodiments.
[0028] Fig.16 is a graphical representation of a processing environment according to some example implementations. DETAILED DESCRIPTION
[0029] The following description includes systems, methods, techniques, instruction sequences and computing machine program products that implement the illustrative embodiments of the present disclosure. In the following description, for the purpose of illustration, many specific details are set forth to provide an understanding of the various embodiments of the subject of the present invention. However, it will be apparent to those skilled in the art that the embodiments of the subject of the present invention can be put into practice without these specific details. Typically, known instruction instances, protocols, structures and techniques are not necessarily shown in detail.
[0030] As customized avatars are increasingly used as virtual extensions of users online, the messaging system 100 can also attract users by creating content (e.g., video content) that can feature the user's avatar as well as the avatars of the user's contacts. The content can be in the form of multiple episodes in a series like a television series that is released periodically (e.g., daily, weekly, monthly, etc.).
[0031] As used herein, an "avatar" of a user is any visual representation of a user. The user's avatar may be based on information (e.g., characteristics) derived from an image of the user, together with avatar characteristics identified from the user's relationships with other users. Alternatively or additionally, the user may select and customize the characteristics of the user's avatar via the user's computing device. Such avatar characteristics may include, for example, the user's physical characteristics (e.g., strong, thin, etc.), facial features, clothing and accessories, text displayed in conjunction with the avatar, and images displayed in conjunction with the avatar.
[0032] On digital content platforms, content is pre-generated, uploaded to a server, and transmitted to a user's device upon receiving a user's request. However, given that the content needs to be personalized to characterize the user's avatar and / or the avatars of the user's friends, it would be challenging to generate content individually for each of the millions of users on the messaging system 100 and wait for the user to request the content. Furthermore, users on the messaging system 100 customize their avatars on a whim and also interact with different users on the messaging system 100, making it challenging to pre-generate content including the latest avatars.
[0033] Embodiments of the present invention improve the functionality of electronic messaging and imaging software and systems by rendering video content including a user's avatar on demand. Thus, the video content is personalized for the requesting user exactly at the time of delivery to the user's client device 102. Thus, embodiments of the present invention can receive, for example, an animation (e.g., a media content item) with a placeholder avatar from a content creator, and when the user requests the media content item, the placeholder avatar is replaced by the user's avatar, and the media content item personalized for the requesting user is sent to the user's device.
[0034] Embodiments of the present invention further improve the functionality of electronic messaging and imaging software and systems by minimizing the delay between requesting a media content item and sending it to a user's device, by selecting relevant avatars to be incorporated into the media content, and by simplifying the animation process for content creators.
[0035] Figure 11 is a block diagram illustrating an example messaging system 100 for exchanging data (e.g., messages and associated content) over a network. The messaging system 100 includes multiple instances of client devices 102, each hosting multiple applications including a messaging client application 104. Each messaging client application 104 is communicatively coupled to other instances of the messaging client application 104 and a messaging server system 108 via a network 106 (e.g., the Internet).
[0036] The messaging client application 104 is able to communicate and exchange data with another messaging client application 104 and a messaging server system 108 via a network 106. The data exchanged between messaging client applications 104 and between messaging client applications 104 and messaging server systems 108 includes functions (e.g., commands to invoke functions) and payload data (e.g., text, audio, video, or other multimedia data).
[0037] The messaging server system 108 provides server-side functionality to specific messaging client applications 104 via the network 106. Although certain functions of the messaging system 100 are described herein as being performed by the messaging client application 104 or by the messaging server system 108, the location of certain functions within the messaging client application 104 or the messaging server system 108 is a design choice. For example, it may be technically preferable to initially deploy certain technologies and functions within the messaging server system 108, but later migrate the technologies and functions to the messaging client application 104 where the client device 102 has sufficient processing power.
[0038] The messaging server system 108 supports various services and operations provided to the messaging client applications 104. Such operations include sending data to the messaging client applications 104, receiving data from the messaging client applications 104, and processing data generated by the messaging client applications 104. As examples, the data may include message content, client device information, geographic location information, media annotations and overlays, message content persistence conditions, social network information, and live event information. The data exchange within the messaging system 100 is invoked and controlled through functions available through the user interface (UI) of the messaging client applications 104.
[0039] Turning now specifically to the messaging server system 108, an application program interface (API) server 110 is coupled to and provides a programming interface to an application server 112. The application server 112 is communicatively coupled to a database server 116, which facilitates access to a database 124 in which data associated with messages processed by the application server 112 is stored.
[0040] The API server 110 receives and sends message data (e.g., commands and message payloads) between the client device 102 and the application server 112. In particular, the API server 110 provides a set of interfaces (e.g., routines and protocols) that the messaging client application 104 can call or query to invoke the functions of the application server 112. The API server 110 exposes various functions supported by the application server 112, including account registration, login functionality, sending messages from a particular messaging client application 104 to another messaging client application 104 via the application server 112, sending media files (e.g., images or videos) from a messaging client application 104 to a messaging server application 114 and accessible by another messaging client application 104, setting of collections of media data (e.g., stories), retrieving a friend list of a user of the client device 102, retrieving such a collection, retrieving messages and content, adding friends to and removing friends from a social graph, locating friends within a social graph, and opening application events (e.g., related to the messaging client application 104).
[0041] The application server 112 hosts multiple applications and subsystems, including a messaging server application 114, an image processing system 116, a social networking system 122, and a content controller system 124. The messaging server application 114 implements multiple message processing techniques and functions, particularly those related to the aggregation and other processing of content (e.g., text and multimedia content) included in messages received from multiple instances of the messaging client application 104. As will be described in further detail, text and media content from multiple sources can be aggregated into content collections (e.g., referred to as stories or galleries). These collections are then made available to the messaging client applications 104 by the messaging server application 114. In view of the hardware requirements for such processing, the messaging server application 114 can also perform other processor- and memory-intensive data processing on the server side.
[0042] The application server 112 also includes an image processing system 116 that is dedicated to performing various image processing operations, typically on images or videos received within the payload of messages at the messaging server application 114 .
[0043] The social networking system 122 supports various social networking functional services and makes these functional services available to the messaging server application 114. To this end, the social networking system 122 maintains and accesses the entity graph 304 (e.g., Figure 3 ). Examples of functionality and services supported by the social networking system 122 include identification of other users of the messaging system 100 with whom a particular user has relationships or “follows,” and identifying other entities and interests of a particular user.
[0044] The application server 112 is communicatively coupled to a database server 118 , which facilitates access to a database 120 in which data associated with messages processed by the messaging server application 114 is stored.
[0045] The content controller system 124 is dedicated to managing media content items that are rendered on demand to users including avatars of client devices 102. The content controller system 124 may include a delivery server system 502 and a rendering server system 504, such as Figure 5 shown.
[0046] Figure 2 1 is a block diagram showing additional details about the messaging system 100 according to an example implementation. Specifically, the messaging system 100 is shown to include a messaging client application 104 and an application server 112, which in turn contain a number of subsystems, namely a short timer system 202, a collection management system 204, and an annotation system 206.
[0047] The short timer system 202 is responsible for implementing temporary access to content permitted by the messaging client application 104 and the messaging server application 114. To this end, the short timer system 202 incorporates multiple timers that selectively display messages and associated content and enable access to the messages and associated content via the messaging client application 104 based on durations and display parameters associated with the message or collection of messages (e.g., stories). Additional details regarding the operation of the short timer system 202 are provided below.
[0048] The collection management system 204 is responsible for managing collections of media (e.g., collections of text, image video, and audio data). In some examples, collections of content (e.g., messages including images, videos, text, and audio) may be organized into "event galleries" or "event stories." Such collections may be made available for a specified time period, such as the duration of an event to which the content relates. For example, content related to a concert may be made available as a "story" for the duration of the concert. The collection management system 204 may also be responsible for publishing an icon to the user interface of the messaging client application 104 that provides notification that a particular collection exists.
[0049] In addition, the collection management system 204 also includes a curation interface 208 that allows the collection manager to manage and curate specific collections of content. For example, the curation interface 208 enables an event organizer to curate a collection of content related to a specific event (e.g., to remove inappropriate content or redundant messages). In addition, the collection management system 204 uses machine vision (or image recognition technology) and content rules to automatically curate content collections. In some embodiments, compensation can be paid to users to include user-generated content in a collection. In such a case, the curation interface 208 operates to automatically pay such users for using their content.
[0050] The annotation system 206 provides various functions that enable users to annotate or otherwise modify or edit media content associated with a message. For example, the annotation system 206 provides functions related to generating and publishing media overlays for messages processed by the messaging system 100. The annotation system 206 can operatively supply media overlays or supplements (e.g., image filters) to the messaging client application 104 based on the geographic location of the client device 102. In another example, the annotation system 206 can operatively supply media overlays to the messaging client application 104 based on other information (e.g., social network information of the user of the client device 102). The media overlay can include audio and visual content and visual effects. Examples of audio and visual content include pictures, text, logos, animations, and sound effects. Examples of visual effects include color overlays. Audio and visual content or visual effects can be applied to media content items (e.g., photos) at the client device 102. For example, the media overlay can include text that can be overlaid on a photo taken by the client device 102. In another example, the media overlay includes a location identifier (e.g., Venice Beach) overlay, a name of a live event, or a business name (e.g., a beach cafe) overlay. In another example, the annotation system 206 uses the geographic location of the client device 102 to identify a media overlay that includes a business name at the geographic location of the client device 102. The media overlay may include other tags associated with the business. The media overlay may be stored in the database 120 and accessed through the database server 118.
[0051] In one example implementation, the annotation system 206 provides a user-based publishing platform that enables a user to select a geographic location on a map and upload content associated with the selected geographic location. The user can also specify an environment in which a particular media overlay should be provided to other users. The annotation system 206 generates a media overlay including the uploaded content and associates the uploaded content with the selected geographic location.
[0052] In another example implementation, the annotation system 206 provides a merchant-based publishing platform that enables merchants to select specific media coverage associated with a geographic location via a bidding process. For example, the annotation system 206 associates the media coverage of the highest bidding merchant with the corresponding geographic location within a predefined amount of time.
[0053] Figure 3 is a schematic diagram illustrating a data structure 300 that may be stored in a database 120 of a messaging server system 108 according to certain example implementations. Although the contents of the database 120 are illustrated as including a plurality of tables, it should be appreciated that data may be stored in other types of data structures (e.g., as an object-oriented database).
[0054] The database 120 includes message data stored in a message table 314. The entity table 302 stores entity data, including an entity graph 304. The entities whose records are maintained in the entity table 302 may include individuals, corporate entities, organizations, objects, places, events, etc. Regardless of the type, any entity about which the messaging server system 108 stores data may be an identified entity. Each entity is provided with a unique identifier as well as an entity type identifier (not shown).
[0055] The entity graph 304 also stores information about relationships and associations between entities. As examples only, such relationships may be social relationships, professional relationships (e.g., working in a common company or organization) based on interests or activities.
[0056] The database 120 also stores annotation data in the form of an example of a filter in the annotation table 312. The filter whose data is stored in the annotation table 312 is associated with a video (whose data is stored in the video table 310) and / or an image (whose data is stored in the image table 308) and is applied to the video and / or image. In one example, the filter is displayed as an overlay on an image or video during presentation to the recipient user. The filter can be of various types, including filters selected by the user in the filter gallery presented to the sender user by the messaging client application 104 when the sender user is composing a message. Other types of filters include geographic location filters (also referred to as geographic filters), which can be presented to the sending user based on geographic location. For example, based on geographic location information determined by the GPS unit of the client device 102, the messaging client application 104 can present a geographic location filter specific to a nearby or special location in the user interface. Another type of filter is a data filter, which can be selectively presented to the sending user by the messaging client application 104 based on other inputs or information collected by the client device 102 during the message creation process. Examples of data filters include the current temperature at a particular location, the current speed at which the sending user is traveling, the battery life of the client device 102, or the current time.
[0057] Other annotation data that may be stored in the image table 308 is so-called "lens" data. A "lens" may be real-time special effects and sounds that may be added to an image or video.
[0058] As mentioned above, the video table 310 stores video data, which in one embodiment is associated with messages whose records are maintained within the message table 314. Similarly, the image table 308 stores image data associated with messages whose message data is stored in the entity table 302. The entity table 302 may associate various annotations from the annotation table 312 with the various images and videos stored in the image table 308 and the video table 310.
[0059] The story table 306 stores data about a collection of messages and associated image, video, or audio data that are compiled into a collection (e.g., a story or gallery). The creation of a particular collection can be initiated by a particular user (e.g., each user whose record is maintained in the entity table 302). A user can create a "personal story" in the form of a collection of content that has been created and sent / broadcasted by the user. To this end, the user interface of the messaging client application 104 may include an icon that the user can select to enable the sending user to add specific content to his or her personal story.
[0060] A collection may also constitute a "life story," which is a collection of content from multiple users that is created manually, automatically, or using a combination of manual and automatic techniques. For example, a "live story" may constitute a curated stream of user-submitted content from various locations and events. Users whose client devices have location services enabled and who are at a public location event at a particular time may be presented with an option, for example, via a user interface of the messaging client application 104, to contribute content to a particular live story. Live stories may be identified to a user by the messaging client application 104 based on his or her location. The end result is a "live story" told from a community perspective.
[0061] Another type of content collection is called a "location story," which enables users whose client devices 102 are located in a particular geographic location (e.g., at a college or university campus) to contribute to a particular collection. In some implementations, contributions to location stories may require a second degree of authentication to verify that the end user belongs to a particular organization or other entity (e.g., is a student on a college campus).
[0062] The database 120 also stores metadata table 316, segment table 318 and segment status table 320. Metadata table 316 includes metadata associated with media content items. Metadata can be associated with animation and media content identifiers created by content creators. Media content items can include multiple media content segments, which include user's avatars. Along with the media content segments including user's avatars being generated, segment table 318 can store media content segments. Segment status table 320 can store segment states associated with each of the media content segments. For example, segment state can indicate that the media content segments associated with it are ready and can be used for transmission.
[0063] Figure 4 is a schematic diagram illustrating the structure of a message 400 generated by a messaging client application 104 for transmission to another messaging client application 104 or a messaging server application 114 according to some embodiments. The content of a particular message 400 is used to populate a message table 314 stored in a database 120 accessible to a messaging server application 114. Similarly, the content of the message 400 is stored in memory as "in-transit" or "in-flight" data of a client device 102 or application server 112. The message 400 is shown to include the following components:
[0064] Message identifier 402 : a unique identifier that identifies the message 400 .
[0065] Message text payload 404 : Text to be generated by a user via the user interface of the client device 102 and included in the message 400 .
[0066] Message image payload 406 : Image data captured by a camera component of the client device 102 or retrieved from a memory component of the client device 102 and included in the message 400 .
[0067] Message video payload 408 : Video data captured by a camera component or retrieved from a memory component of the client device 102 and included in the message 400 .
[0068] Message audio payload 410 : audio data captured by a microphone or retrieved from a memory component of the client device 102 and included in the message 400 .
[0069] Message annotation 412: Annotation data representing an annotation (eg, a filter, sticker, or other enhancement) to be applied to the message image payload 406, the message video payload 408, or the message audio payload 410 of the message 400.
[0070] Message duration parameter 414: A parameter value indicating the amount of time in seconds that the content of a message (eg, message image payload 406, message video payload 408, message audio payload 410) will be presented or made accessible to a user via the messaging client application 104.
[0071] Message geolocation parameters 416: Geolocation data (e.g., latitude and longitude coordinates) associated with the content payload of the message. A plurality of message geolocation parameter values 416 may be included in the payload, each of which is associated with respect to a content item included in the content (e.g., a specific image within a message image payload 406 or a specific video in a message video payload 408).
[0072] Message story identifier 418: An identifier value that identifies one or more content collections (e.g., "story") associated with a particular content item in message image payload 406 of message 400. For example, multiple images within message image payload 406 may each be associated with multiple content collections using an identifier value.
[0073] Message tags 420: Each message 400 may be tagged with a plurality of tags, each of which indicates the subject of the content included in the message payload. For example, where a particular image included in the message image payload 406 depicts an animal (e.g., a lion), a tag value may be included within the message tags 420 indicating the relevant animal. The tag value may be manually generated based on user input, or may be automatically generated using, for example, image recognition.
[0074] • Message sender identifier 422: An identifier (eg, a messaging system identifier, an email address, or a device identifier) that indicates the user of the client device 102 on which the message 400 was generated and from which the message 400 was sent.
[0075] • Message recipient identifier 424: Indicates an identifier (eg, a messaging system identifier, an email address, or a device identifier) of the user of the client device 102 to which the message 400 is addressed.
[0076] The content (e.g., value) of the various components of message 400 may be pointers to locations in a table in which the content data values are stored. For example, the image value in message image payload 406 may be a pointer to a location (or address) in image table 308. Similarly, the value in message video payload 408 may point to data stored in video table 310, the value stored in message annotation 412 may point to data stored in annotation table 312, the value stored in message story identifier 418 may point to data stored in story table 306, and the values stored in message sender identifier 422 and message recipient identifier 424 may point to user records stored in entity table 302.
[0077] Figure 5 is a graphical representation of details 500 of a networked environment in which the present disclosure may be deployed, according to some example implementations.
[0078] like Figure 5 As shown, the content controller system 124 including the delivery server system 502 and the rendering server system 504 is communicatively coupled to the client device 102 and the segment table 318 , segment state table 320 , and metadata table 316 of the database 120 .
[0079] Content creators (such as animators) can periodically upload new content to Figure 1 The messaging server system 108 in the messaging server system 108. New content can be uploaded by a content creator via an electronic device (e.g., client device 102), or can be uploaded by the messaging server system 108. The content can be in the form of multiple episodes in a series, such as a television series that is released periodically (e.g., daily, weekly, monthly, etc.). The media content item can be in the form of a video including animation.
[0080] In one embodiment, the content controller system 124 receives requests for new content (e.g., media content items) from the client device 102. The content controller system 124 delivers the media content items on demand to the client device 102 by using a streaming playlist, wherein the delivery server system 502 coordinates with the rendering server system 504 to progressively append newly rendered media content item segments (e.g., 2 to 3 second video segments) at the end of the playlist.
[0081] In one embodiment, delivery server system 502 receives the request from client device 102. The request may be sent to delivery server system 502 when a user of client device 102 selects a selectable icon or link associated with a media content item that is being displayed on client device 102. Fig.11 An example user interface 1100 is shown displayed on a client device 102. Fig.11 As shown, user interface 1100 may be an electronic program guide that includes multiple episodes of a video program (e.g., similar to a television series) or a single video (e.g., similar to a feature-length movie). Portions of the electronic program guide in user interface 1100 may be selectable to cause a request for a media content item to be sent to delivery server system 502. For example, when a user selects the link "Night Court" in user interface 1100, a request for the "Night Court" media content item is sent to delivery server system 502.
[0082] The request from the client device 102 may include request parameters, such as a media content identifier and a primary user identifier. The media content identifier identifies the media content item being requested to be viewed. The media content identifier may be an episode identifier (e.g., Night Court Episode 1). The primary user identifier may be an identifier of a user of the client device 102 requesting the media content item. The primary user identifier may also be an identifier of an avatar associated with the user of the requesting client device 102 (e.g., a primary user avatar identifier). In one embodiment, the request from the client device 102 also includes a second user identifier associated with a user of a different client device 102. In another embodiment, the request from the client device 102 also includes multiple user identifiers associated with multiple users of different client devices 102.
[0083] The delivery server system 502 of the content controller system 124 can retrieve (or obtain) the status of the segments of the media content item from the segment state table 320. The delivery server system 502 can use the media content identification and the primary user identifier (and / or the second user identifier) to retrieve the status of the segment. The delivery server system 502 compiles a playlist using the latest available video segments (e.g., media content item segments). In one embodiment, when each of the media content item segments is available, the rendering server system 504 updates the status of the segments in the segment state table 320 to indicate that the segment is available.
[0084] The content controller system 124 can send a playlist including the first group of media content segments to the client device 102. In one embodiment, the transmission server system 502 sends the playlist including the first group of media content segments to the client device 102. The first group of media content segments can include an introduction video portion of the media content item. The introduction video portion can be the first few video segments (e.g., 3 video segments) of the media content item. The introduction video portion can be, for example, a static introduction video of 6 seconds to 10 seconds. The group of media content item segments can also be a plurality of frames included in the media content item.
[0085] When displaying the first group of media content item segments, the delivery server system 502 can also send a signal to the rendering server system 504 to start rendering a subsequent group of media content item segments (e.g., a second group of media content item segments), which causes the rendering server system 504 to start rendering. The second group of media content items can be, for example, the next 3 segments after the introduction video portion. In one embodiment, when displaying the first group of media content item segments, the rendering server system 504 uses the media content identifier and the primary user identifier to render the second group of media content item segments.
[0086] In one embodiment, the rendering server system 504 retrieves (or obtains) metadata from the metadata table 316 and processes it into a second group of media content item fragments. The metadata can be, for example, metadata associated with a media content item identifier (e.g., episode metadata) required for the video fragment of the rendering request. The metadata can be packaged as a large file per episode so that the rendering server system 504 renders the corresponding fragments by cutting the file into a plurality of frame windows. Once rendered, the rendering server system 504 stores the second group of media content item fragments in the fragment table 318. Each group of media content item fragments stored in the fragment table 318 can be an MPEG-TS (.ts) file format. In one embodiment, the rendering server system 504 can render the second group of media content item fragments by rendering the main user avatar based on the main user identifier and incorporating the main user avatar into the second group of media content fragments.
[0087] Fig.12and Fig.13 An example of different frames of a media content item displayed on a user interface of a client device 102 according to some embodiments of the present invention is shown. As shown in frames 1200 and 1300, an avatar associated with a user of the client device 102 can be incorporated into the media content item. For example, frames 1200 and 1300 can be frames of an animated episode of a television series. Frames 1200 and 1300 can include recurring characters (e.g., avatar character members) in the series, and also include avatars associated with the user of the client device 102 and / or avatars associated with friends or contacts of the user of the client device 102 on the social networking system 122. Therefore, the episodes in the series can feature the avatar user of the client device 102 and the avatars of the user's friends. By using the primary user identification and the identification of the second user (e.g., the user of a different client device 102 as a contact), the rendering server system 504 can retrieve the latest version of the avatar to be incorporated into the media content item segment.
[0088] Rendering server system 504 can also update segment state table 320 to indicate that the second group of media content item fragments can be used for being processed by transmission server system 502 by updating the state that is associated with the second group of media content item fragments.When client device 102 attempts to refresh playlist next time, transmission server system 502 can pick up the change of the state of available next group of media content item fragments (for example the second group of media content item fragments), and compile new playlist.In one embodiment, rendering server system 504 can update playlist to include the second group of media content item fragments.Transmission server system 502 can send the playlist of update to client device 102.
[0089] This process is repeated by the delivery server system 502 and the rendering server system 504 until it is determined that the media content item is completely rendered. For example, once the delivery server system 502 and / or the rendering server system 504 determine that all of the groups of media content item segments in the media content item are rendered, the playlist is no longer updated and the client device 102 will have displayed the entire media content item.
[0090] Although the flowchart below may describe the operations as a sequential process, many of the operations may be performed in parallel or simultaneously. In addition, the order of the operations may be rearranged. The process is terminated when its operations are completed. A process may correspond to a method, a procedure, etc. The steps of a method may be performed in whole or in part, may be performed in combination with some or all steps in other methods, and may be performed by any number of different systems, such as Figure 1 , Figure 5 , Fig.14 , Fig.15 and / or Fig.16The system described in or any part thereof, such as a processor included in any system, is executed.
[0091] Figure 6 A flow chart of a process 600 for rendering video on demand according to one embodiment is shown. In operation 602, a delivery server system 502 of a content controller system 124 receives a request for a media content item from a client device 102. The request may include a media content identifier and a primary user identifier. In one embodiment, the media content item is a video associated with the media content identifier, and the primary user identifier is associated with a user of the client device 102.
[0092] In operation 604, the delivery server system 502 sends a playlist including a first set of media content item segments to the client device 102. The first set of media content item segments may be an introduction video portion of a media content item. In one embodiment, the content controller system 124 causes the first set of media content item segments to be displayed on the client device 102.
[0093] When the first group of media content item segments are displayed on the display of the client device 102, at operation 606, the rendering server system 504 of the content controller system 124 uses the media content identification and the primary user identification to render the second group of media content item segments. The rendering server system 504 can upload the second group of media content item segments to a storage device. For example, the rendering server system 504 can upload and store the second group of media content item segments to the segment table 318. The rendering server system 504 can also set a segment state to indicate that the storage device (e.g., the segment table 318) includes a second group of media content item segments for consumption by the client device 102. The rendering server system 504 can set a segment state stored in the segment state table 320 and associated with the second group of media content item segments.
[0094] At operation 608, the rendering server system 504 updates the playlist to include the second set of media content item segments. In one embodiment, the delivery server system 502 retrieves the segment states from the segment state table 320 and updates the playlist based on the segment states.
[0095] At operation 610, the delivery server system 502 sends the updated playlist to the client device 102. In one embodiment, the delivery server system 502 delivers the updated playlist to the client device 102 while the first set of media content item segments are displayed on the client device 102.
[0096] Figure 7 A method for rendering according to one embodiment is shown. Figure 66. In order to render the second set of media content item segments, the rendering server system 504 may render the primary user avatar based on the primary user identification in operation 702. In operation 704, the rendering server system 504 may incorporate the primary user avatar into the second set of media content item segments.
[0097] In one embodiment, the rendering server system 504 may also render the second set of media content item segments using a secondary user identification associated with a user (e.g., a second user) associated with a different client device 102. The second user may be a contact of the user (e.g., the primary user) of the client device 102 on the social networking system 122. The second user may be, for example, a friend, family member, or contact of the primary user on the social networking system 122. The rendering server system 504 may render the secondary user avatar based on the secondary user identification and incorporate the secondary user avatar into the second set of media content item segments.
[0098] In this embodiment, the rendering server system 504 generates a media content item segment including the second user's avatar to be displayed on the primary user's client device 102. Thus, the media content item displayed to the primary user of the client device 102 requesting the media content item may include at least one of the primary user's avatar or an avatar of his friend, family member, or contact (e.g., the second user) as the main character of the episode.
[0099] Figure 8 A flow chart of a process 800 for rendering video on demand using multiple graphics processing units (GPUs) according to one embodiment is shown. Generating media content items for each requesting user on the messaging system 100 involves extensive rendering and video encoding, so using a GPU-enabled instance can greatly speed up the process of providing media content items to multiple client devices 102.
[0100] Delivery server system 502 may receive a request for a media content item from client device 102, the request including a media content identifier and a primary user identifier. In one embodiment, the media content item is a video associated with the media content identifier, and the primary user identifier is associated with a user of client device 102 (eg, primary user).
[0101] In this embodiment, the rendering server system 504 includes multiple GPUs to render a group of media content item segments using the media content identifier and the primary user identifier. The group of media content item segments can be multiple frames included in the media content item. The multiple GPUs included in the rendering server system 504 can be GPU groups that render the media content item segments respectively.
[0102] To render the set of media content item segments, the rendering server system 504 may perform operations 802 to 808. At operation 802, the rendering server system 504 retrieves metadata from a metadata database, such as the metadata table 316. The retrieved metadata is associated with the media content identification.
[0103] At operation 804, rendering server system 504 uses metadata to render this group of media content item fragments.At operation 806, rendering server system 504 generates main user avatar based on main user identification.At operation 808, rendering server system 504 incorporates main user avatar into this group of media content item fragments.At operation 810, rendering server system 504 uploads this group of media content item fragments to fragment database (for example fragment table 318) then.The fragment state indication in the fragment state table 320 is associated with the availability of media content item fragments.Rendering server system 504 then updates the fragment state in the fragment state database (for example fragment state table 320) to indicate that this group of media content item fragments is available.
[0104] The delivery server system 502 may retrieve the segment status from a segment status database (eg, the segment status table 320 ) and compile a playlist including the set of media content item segments and send it to the client device 102 .
[0105] In one embodiment, when the delivery server system 502 receives a request for a media content item from the client device 102, the delivery server system 502 retrieves the segment state from the segment state database (e.g., the segment state table 320), and compiles a first set of media content item segments based on the segment state and sends it to the client device 102. For example, the first set of media content item segments may be an introduction video portion of the media content item. The delivery server system 502 then initiates rendering of a second set of media content item segments.
[0106] In this embodiment, the rendering server system 504 including multiple GPUs uses the media content identifier and the main user identifier to render the second group of media content item fragments. The first group of media content item fragments and the second group of media content item fragments are respectively multiple frames included in the media content items. The first group of media content item fragments can be continuous with the second group of media content item fragments.
[0107] For example, the rendering server system 504 can render the second group of media content item segments by retrieving metadata from a metadata database (e.g., metadata table 316) associated with the media content identifier, using the metadata to render the second group of media content item segments, generating a primary user avatar based on the primary user identifier, and incorporating the primary user avatar into the second group of media content item segments. The rendering server system 504 can then upload the second group of media content item segments to a segment database (e.g., segment table 318) and update the segment status in the segment status database (e.g., segment status table 320) to indicate that the second group of media content item segments are available.
[0108] In this embodiment, the delivery server system 502 can update the playlist to include the second set of media content item segments. The delivery server system 502 can update the playlist by compiling an updated playlist to include the second set of media content item segments, and send the updated playlist to the client device 102. In one embodiment, the client device 102 receives the second set of media content item segments from a segment database.
[0109] Fig. 9 A flow chart of a process 900 for rendering video on demand using multiple servers according to one embodiment is shown. Generating a media content item for each requesting user on the messaging system 100 involves extensive rendering and video encoding, so that a group of servers that separately generate segments in a media content item can greatly speed up the process of providing the media content item to multiple client devices 102. Each of the servers in the multiple servers can perform operations simultaneously or sequentially.
[0110] In one embodiment, process 900 begins at operation 902, wherein a rendering server system 504 including a plurality of servers receives a plurality of segment rendering requests. The segment rendering requests may correspond to segments included in a group of media content item segments, respectively. The group of media content item segments is a plurality of frames included in the media content item. The media content item may be a video associated with a media content identifier.
[0111] The rendering server system 504 renders the segment corresponding to the segment rendering request using the media content identification and the primary user identification associated with the user of the client device 102 .
[0112] In one embodiment, the rendering server system 504 may render the segment by performing operations 904 to 910. At operation 904, the rendering server system 504 retrieves metadata from a metadata database (e.g., metadata table 316) associated with the media content identifier. At operation 906, the rendering server system 504 renders the segment using the metadata. At operation 908, the rendering server system 504 generates a primary user avatar based on the primary user identifier. At operation 910, the rendering server system 504 incorporates the primary user avatar into the segment.
[0113] At operation 912, the rendering server system 504 uploads the fragment to a fragment database (eg, fragment table 318). At operation 914, the rendering server system 504 updates the fragment status in the fragment status database (eg, fragment status table 320) to indicate that the fragment is available.
[0114] In one embodiment, the content controller system 124 may include a delivery server system 502 and a rendering server system 504 including a plurality of servers. In one embodiment, the delivery server system 502 receives a request for a media content item from a client device 102. The request includes a media content identifier and a primary user identifier. The delivery server system 502 retrieves a segment state from a segment state database (e.g., a segment state table 320) indicating the availability associated with the media content item segment. The delivery server system 502 compiles a playlist including a first group of media content item segments and sends it to the client device 102. The first group of media content item segments are based on the segment state. The delivery server system 502 initializes the rendering of a second group of media content item segments by generating a plurality of segment rendering requests. In one embodiment, the segment rendering requests correspond to the segments included in the second group of media content item segments, respectively. The first group of media content item segments may be continuous with the second group of media content item segments.
[0115] In one embodiment, multiple servers in the rendering server system 504 receive segment rendering requests respectively, and use the media content identifier and the primary user identifier to render segments corresponding to the segment rendering requests respectively.
[0116] like Fig. 9As shown, each of the plurality of servers may render the segment by retrieving metadata from a metadata database associated with the media content identifier (operation 904), rendering the segment using the metadata (operation 906), generating a primary user avatar based on the primary user identifier (operation 908), and incorporating the primary user avatar into the segment (operation 910). The plurality of servers in the rendering server system 504 may then upload the segment to the segment database (operation 912), and update the segment status in the segment status database to indicate that the segment is available (operation 914). In one embodiment, the delivery server system 502 also retrieves the segment status from the segment status database (e.g., segment status table 320).
[0117] In one embodiment, the delivery server system 502 collects the segments and generates a second set of media content item segments. In one embodiment, the delivery server system 502 updates the playlist to include the second set of media content item segments. The delivery server system 502 can update the playlist by compiling an updated playlist to include the second set of media content item segments and by sending the updated playlist to the client device 102.
[0118] Considering that a media content item is personalized to represent an avatar of a primary user on messaging system 100 (eg, a user requesting the media content item) and / or an avatar of another user connected to the primary user, it is necessary to determine which avatars to incorporate into the media content item. Fig.10 A flow diagram of a process 1000 for selecting an avatar to include in a video generated on demand is shown, according to one embodiment.
[0119] The following process 1000 may be performed by any number of different systems, such as the content controller system 124 and / or the client device 102, or any portion thereof, such as a processor included in any system or device.
[0120] At operation 1002 of process 1000, the processor may cause an electronic program guide to be displayed on a display of a first client device 102. The first client device 102 is associated with a first user (eg, a primary user) who is associated with a first avatar. Fig.11 An example of a user interface 1100 displayed by a client device 102 according to one embodiment is shown. The user interface 1100 may be an example of an electronic program guide that includes selectable items (eg, text, images, links, or icons) associated with a plurality of media content items.
[0121] In another embodiment, the user interface including the electronic program guide is in the form of multiple optional tiles. The user can scroll the electronic program guide vertically or horizontally on the display screen. Each of the optional tiles can be associated with different media content items (e.g., episodes of an animated series). In another embodiment, the optional tiles can also be associated with multiple media content items (e.g., an animated series including multiple episodes). In this embodiment, by selecting one of the optional tiles, a profile page of the animated series associated with the selected optional tiles is displayed. Via the profile page of the animated series, the user can access the available episodes.
[0122] At operation 1004, the processor detects a selection of a selectable item associated with the media content item by the first user. For example, the processor may detect that the user selected the selectable item associated with the "Golden Girls" media content item via a touch screen or display device of the client device 102 by selecting an area around the "Golden Girls" text.
[0123] At operation 1006, the processor identifies a second user associated with a second client device 102 connected to the first user on a communication platform (e.g., messaging system 100). The second user may be a friend, family member, contact, or contact person on the communication platform. In one embodiment, the second user may be another user on the communication platform that is random or unknown to the first user. In one embodiment, the second user may be based on the timing of the last communication with the first user on the messaging system 100. In this embodiment, the processor may identify the second user by identifying the user who recently sent an electronic message to the first client device 102. The processor may also identify the second user by identifying the user who sent an electronic message to the first client device 102 within a predetermined time period. In another embodiment, the first user may also select the second user from a list of users. Alternatively, the second user may select the first user so that the second user identifies himself to the processor.
[0124] In some cases, the processor needs to select the second user based on whether the user has created a personalized avatar for the messaging system 100. In order to ensure that the second user has an avatar that can be used for rendering of the media content item, the processor can identify the second user by identifying a user associated with the avatar associated with the first user on the communication platform (e.g., messaging system 100). The processor can also select the second user based on the timing of the last communication between the user and the first user and whether the user is associated with the avatar. In this embodiment, the processor identifies the second user by determining whether the user who sent the electronic message to the first client device 102 within a predetermined time period is associated with the avatar.
[0125] In one embodiment, if the processor determines that no user associated with the first user on the communication platform (e.g., messaging system 100) is associated with an avatar, the processor selects a generic second user and indicates that the generic avatar should be used as the second avatar. In another embodiment, the processor may select a contact who is the first user on messaging system 100, but assign a generic avatar to the second user of the contact.
[0126] At operation 1008, the processor may retrieve a primary user identification associated with the first user and a secondary user identification associated with the second user. The second user is associated with a second avatar.
[0127] At operation 1010, the processor generates a request for a media content item. The request may include a media content identification associated with the media content item, a primary user identification, and a secondary user identification.
[0128] At operation 1012, the processor receives a playlist associated with a media content item. The playlist includes a plurality of media content item segments, the media content item segments including a first avatar and a second avatar. Fig.12 and Fig.13 Examples of frames (eg, frame 1200 and frame 1300 ) of a media content item displayed by client device 102 that may include a first avatar and a second avatar are shown according to one embodiment.
[0129] In one embodiment, a request for a media content item may be received by a processor of a content controller system 124 (e.g., a delivery server system 502), and the processor of the content controller system 124 (e.g., a rendering server system 504) renders a media content item segment using the media content identification, the primary user identification, and the secondary user identification. The processor of the content controller system 124 may render the media content item segment by rendering a first avatar based on the primary user identification, rendering a second avatar based on the secondary user identification, and incorporating the first avatar and the second avatar into the media content item segment.
[0130] To further optimize on-demand rendering of media content items, the content controller system 124 may also include a puppet animation system and an avatar matching system. In one embodiment, the puppet animation system and the avatar matching system may be included in the rendering server system 504.
[0131] The puppet animation system receives animation input from a client device 102 of a content creator. The content creator is the author of the media content item (e.g., an animator). The animation input may include software, code, or artwork for generating an animation file for creating the media content item. The puppet animation system generates an animation file including metadata based on the animation input. The animation file is associated with a media content identifier. Therefore, the animation file may include placeholder puppets animated based on the animation input. These placeholder puppets may be replaced with an avatar of the primary user (a first avatar) and / or an avatar of a second user (a second avatar).
[0132] The avatar matching system can receive animation files and replace the placeholder puppet with an avatar.
[0133] The rendering server system 504 renders a group of media content item segments using the media content identification and the primary user identification. In one embodiment, the rendering server system 504 renders the group of media content item segments by retrieving metadata from a metadata database associated with the media content identification, using the metadata to render the group of media content item segments, generating a primary user avatar based on the primary user identification, and incorporating the primary user avatar into the group of media content item segments. The rendering server system 504 may also upload the group of media content item segments to a segment database, and update the segment status in the segment status database to indicate that the group of media content item segments are available.
[0134] Fig.14 1400 is a block diagram illustrating a software architecture 1404 that may be installed on any one or more of the devices described herein. The software architecture 1404 is supported by hardware such as a machine 1402 including a processor 1420, a memory 1426, and an I / O component 1438. In this example, the software architecture 1404 may be conceptualized as a stack of layers, where each layer provides specific functionality. The software architecture 1404 includes layers such as an operating system 1412, a library 1410, a framework 1408, and an application 1406. In operation, the application 1406 invokes an API call 1450 through the software stack and receives a message 1452 in response to the API call 1450.
[0135] The operating system 1412 manages hardware resources and provides public services. The operating system 1412 includes, for example, a kernel 1414, services 1416, and drivers 1422. The kernel 1414 acts as an abstraction layer between the hardware layer and other software layers. For example, the kernel 1414 provides functions such as memory management, processor management (such as scheduling), component management, networking, and security settings. Services 1416 can provide other public services for other software layers. Drivers 1422 are responsible for controlling or interfacing with the underlying hardware. For example, drivers 1422 may include display drivers, camera drivers, or Low-power drivers, Flash drivers, serial communication drivers (such as Universal Serial Bus (USB) drivers), Drivers, audio drivers, power management drivers, etc.
[0136] The libraries 1410 provide a low-level common infrastructure used by the applications 1406. The libraries 1410 may include system libraries 1418 (e.g., C standard libraries) that provide functions such as memory allocation functions, string manipulation functions, mathematical functions, etc. In addition, the libraries 1410 may include API libraries 1424, such as media libraries (e.g., libraries for supporting the presentation and manipulation of various media formats, such as Moving Picture Experts Group-4 (MPEG4), Advanced Video Coding (H.264 or AVC), Moving Picture Experts Group Layer-3 (MP3), Advanced Audio Coding (AAC), Adaptive Multi-Rate (AMR) audio codec, Scalable Vector Graphics (SVG), Joint Photographic Experts Group (JPEG or JPG), or Portable Network Graphics (PNG)), graphics libraries (e.g., OpenGL framework for rendering in two dimensions (2D) and three dimensions (3D) in graphics content on a display), database libraries (e.g., SQLite that provides various relational database functions), web libraries (e.g., WebKit that provides web browsing functions), Compute Unified Device Architecture (CUDA), and other libraries. TM ) etc. The library 1410 may also include a variety of other libraries 1428 to provide many other APIs to the application 1406.
[0137] The framework 1408 provides a high-level common infrastructure used by the applications 1406. For example, the framework 1408 provides various graphical user interface (GUI) functions, advanced resource management, and advanced location services. The framework 1408 can provide a wide range of other APIs that can be used by the applications 1406, some of which can be specific to a particular operating system or platform.
[0138] In an example implementation, applications 1406 may include a home application 1436, a contacts application 1430, a browser application 1432, a book reader application 1434, a location application 1442, a media application 1444, a messaging application 1446, a game application 1448, and various other applications such as third-party applications 1440. Application 1406 is a program that performs the functions defined in the program. Various programming languages may be used to create one or more applications 1406 constructed in various ways, such as an object-oriented programming language (e.g., Objective-C, Java, or C++) or a procedural programming language (e.g., C or assembly language). In a specific example, third-party applications 1440 (e.g., those created by an entity other than the vendor of a particular platform using ANDROIDTM or IOS TM Software Development Kit (SDK) can be used to develop applications on platforms such as IOS TM ANDROID TM , Mobile software running on the mobile operating system of the phone or other mobile operating systems. In this example, third-party applications 1440 can call API calls 1450 provided by the operating system 1412 to facilitate the functions described herein.
[0139] Fig.15 1500 in which instructions 1508 (e.g., software, programs, applications, applet, app, or other executable code) may be executed to cause the machine 1500 to perform any one or more of the methodologies discussed herein. For example, the instructions 1508 may cause the machine 1500 to perform any one or more of the methodologies described herein. The instructions 1508 convert a general purpose, unprogrammed machine 1500 into a specific machine 1500 that is programmed to perform the functions described and illustrated in the manner described. The machine 1500 may operate as a standalone device or may be coupled (e.g., networked) to other machines. In a networked deployment, the machine 1500 may operate as a server machine or a client machine in a server-client network environment, or as a peer machine in a peer-to-peer (or distributed) network environment. The machine 1500 may include, but is not limited to, a server computer, a client computer, a personal computer (PC), a tablet computer, a laptop computer, a netbook, a set-top box (STB), a PDA, an entertainment media system, a cellular phone, a smart phone, a mobile device, a wearable device (e.g., a smart watch), a smart home device (e.g., a smart appliance), other smart devices, a web device, a network router, a network switch, a network bridge, or any machine capable of sequentially or otherwise executing instructions 1508 that specify actions to be taken by the machine 1500. In addition, while only a single machine 1500 is shown, the term "machine" should also be taken to include a collection of machines that individually or jointly execute instructions 1508 to perform any one or more of the methodologies discussed herein.
[0140] The machine 1500 may include a processor 1502, a memory 1504, and an I / O component 1542, which may be configured to communicate with each other via a bus 1544. In an example embodiment, the processor 1502 (e.g., a central processing unit (CPU), a reduced instruction set computing (RISC) processor, a complex instruction set computing (CISC) processor, a graphics processing unit (GPU), a digital signal processor (DSP), an ASIC, a radio frequency integrated circuit (RFIC), other processors, or any suitable combination thereof) may include, for example, a processor 1506 that executes instructions 1508 and a processor 1510. The term "processor" is intended to include a multi-core processor that may include two or more independent processors (sometimes referred to as "cores") that may execute instructions simultaneously. Although Fig.15 Multiple processors 1502 are shown, but the machine 1500 may include a single processor with a single core, a single processor with multiple cores (e.g., a multi-core processor), multiple processors with a single core, multiple processors with multiple cores, or any combination thereof.
[0141] The memory 1504 includes a main memory 1512, a static memory 1514, and a storage unit 1516, which are all accessible by the processor 1502 via the bus 1544. The main memory 1504, the static memory 1514, and the storage unit 1516 store instructions 1508 that implement any one or more of the methods or functions described herein. The instructions 1508 may also reside, completely or partially, within the main memory 1512, within the static memory 1514, within the machine-readable medium 1518 within the storage unit 1516, within at least one of the processors 1502 (e.g., within a cache memory of the processor), or within any suitable combination thereof during execution thereof by the machine 1500.
[0142] I / O components 1542 may include a variety of components for receiving input, providing output, generating output, sending information, exchanging information, capturing measurements, etc. The specific I / O components 1542 included in a particular machine will depend on the type of machine. For example, a portable machine such as a mobile phone may include a touch input device or other such input mechanism, while a headless server machine may not include such a touch input device. It will be appreciated that I / O components 1542 may include Fig.151542 may include an output component 1528 and an input component 1530. The output component 1528 may include a visual component (e.g., a display such as a plasma display panel (PDP), a light emitting diode (LED) display, a liquid crystal display (LCD), a projector, or a cathode ray tube (CRT)), an auditory component (e.g., a speaker), a tactile component (e.g., a vibration motor, a resistance mechanism), other signal generators, etc. The input component 1530 may include an alphanumeric input component (e.g., a keyboard, a touch screen configured to receive alphanumeric input, an optical keyboard, or other alphanumeric input component), a point-based input component (e.g., a mouse, a touch pad, a trackball, a joystick, a motion sensor, or other pointing instrument), a tactile input component (e.g., a physical button, a touch screen that provides the location and / or force of a touch or touch gesture, or other tactile input component), an audio input component (e.g., a microphone), etc.
[0143] In other example embodiments, the I / O component 1542 may include a biometric component 1532, a motion component 1534, an environmental component 1536, or a positioning component 1538, as well as various other components. For example, the biometric component 1532 includes a component for detecting expressions (e.g., hand expressions, facial expressions, voice expressions, body postures, or eye tracking), measuring biosignals (e.g., blood pressure, heart rate, body temperature, sweat, or brain waves), identifying a person (e.g., voice recognition, retinal recognition, facial recognition, fingerprint recognition, or EEG-based recognition), etc. The motion component 1534 includes an acceleration sensor component (e.g., an accelerometer), a gravity sensor component, a rotation sensor component (e.g., a gyroscope), etc. The environment component 1536 includes, for example, an illumination sensor component (e.g., a photometer), a temperature sensor component (e.g., one or more thermometers that detect ambient temperature), a humidity sensor component, a pressure sensor component (e.g., a barometer), an acoustic sensor component (e.g., one or more microphones that detect background noise), a proximity sensor component (e.g., an infrared sensor that detects nearby objects), a gas sensor (e.g., a gas detection sensor that detects the concentration of dangerous gases for safety or measures pollutants in the atmosphere), or other components that can provide indications, measurements, or signals corresponding to the surrounding physical environment. The positioning component 1538 includes a position sensor component (e.g., a GPS receiver component), an altitude sensor component (e.g., an altimeter or barometer that detects air pressure, from which the altitude can be obtained), an orientation sensor component (e.g., a magnetometer), etc.
[0144] Various technologies may be used to implement communications. I / O components 1542 also include communication components 1540 that are operable to couple machine 1500 to network 1520 or device 1522 via coupling 1524 and coupling 1526, respectively. For example, communication components 1540 may include a network interface component or other suitable device that interfaces with network 1520. In other examples, communication components 1540 may include wired communication components, wireless communication components, cellular communication components, near field communication (NFC) components, Parts (such as Low energy consumption), Components, and other communication components for providing communication via other forms. Device 1522 can be any peripheral device (eg, a peripheral device coupled via USB) from other machines or a variety of peripheral devices.
[0145] In addition, the communication component 1540 can detect an identifier or include a component operable to detect an identifier. For example, the communication component 1540 can include a radio frequency identification (RFID) tag reader component, an NFC smart tag detection component, an optical reader component (e.g., an optical sensor for detecting the following: a one-dimensional barcode, such as a universal product code (UPC) barcode; a multi-dimensional barcode, such as a Quick Response (QR) code, Aztec code, Data Matrix, Dataglyph, MaxiCode, PDF417, Hypercode, UCC RSS-2D barcode, and other optical codes), or an acoustic detection component (e.g., a microphone for identifying an audio signal of a tag). In addition, various information can be obtained via the communication component 1540, such as a location via Internet Protocol (IP) geolocation, a location via Internet Protocol (IP), ... The location of signal triangulation, the location of an NFC beacon signal via detection that can indicate a specific location, etc.
[0146] Various memories (e.g., memory 1504, main memory 1512, static memory 1514, and / or memory of processor 1502) and / or storage unit 1516 may store one or more sets of instructions and data structures (e.g., software) implemented or used by any one or more of the methods or functions described herein. These instructions (e.g., instructions 1508) when executed by processor 1502 cause various operations to implement the disclosed embodiments.
[0147] Instructions 1508 may be sent or received over network 1520 via a network interface device, such as a network interface component included in communications component 1540, using a transmission medium and using any of a number of well-known transmission protocols, such as the Hypertext Transfer Protocol (HTTP). Similarly, instructions 1508 may be sent or received to device 1522 via coupling 1526, such as a peer-to-peer coupling, using a transmission medium.
[0148] Now go to Fig.16 , a diagrammatic representation of a processing environment 1600 is shown, which includes a processor 1606 and a processor 1602 (eg, a GPU, a CPU, or a combination thereof).
[0149] Processor 1602 is shown coupled to power source 1604 and includes modules (permanently configured or temporarily instantiated), namely, delivery component 1608 and rendering component 1610. Delivery component 1608 is operative to perform operations of delivery server system 502, such as processing requests and delivery of media content items, and rendering component 1610 is operative to perform operations of rendering server system 504, such as generating segments of media content items included in a playlist.
[0150] When phrases similar to "at least one of A, B, or C," "at least one of A, B, and C," "one or more A, B, or C," or "one or more of A, B, and C" are used, it is intended that the phrase be interpreted to mean that A can exist alone in an embodiment, B can exist alone in an embodiment, C can exist alone in an embodiment, or any combination of elements A, B, and C can exist in a single embodiment; for example, A and B, A and C, B and C, or A and B and C.
[0151] Regarding the implementation methods including the above embodiments, the following technical solutions are also disclosed:
[0152] Solution 1. A method comprising:
[0153] causing an electronic program guide to be displayed on a display of a first client device, the first client device being associated with a first user, the first user being associated with a first avatar;
[0154] detecting a selection by the first user of a selectable item associated with a media content item, the electronic program guide including the selectable item;
[0155] identifying a second user associated with a second client device connected to the first user on the communication platform;
[0156] retrieving a primary user identifier associated with the first user and a secondary user identifier associated with the second user, the second user being associated with a second avatar;
[0157] generating a request for the media content item, the request comprising a media content identifier associated with the media content item, the primary user identifier, and the secondary user identifier; and
[0158] A playlist associated with the media content item is received, wherein the playlist includes a plurality of media content item segments, the plurality of media content item segments including the first avatar and the second avatar.
[0159] Solution 2. The method according to Solution 1, wherein identifying the second user further comprises:
[0160] A user who recently sent an electronic message to the first client device is identified.
[0161] Solution 3. The method according to Solution 1, wherein identifying the second user further comprises:
[0162] A user who sent electronic messages to the first client device within a predetermined time period is identified.
[0163] Solution 4. The method according to Solution 3, wherein identifying the second user further comprises:
[0164] A determination is made as to whether a user who sent the electronic message to the first client device within the predetermined time period is associated with an avatar.
[0165] Option 5. The method according to Option 4, wherein the second user is a user who sends the electronic message to the first client device within the predetermined time period and is associated with the avatar.
[0166] Solution 6. The method according to Solution 1, wherein identifying the second user further comprises:
[0167] A user associated with an avatar that is associated with the first user on the communication platform is identified.
[0168] Solution 7. The method according to Solution 1, wherein identifying the second user further comprises:
[0169] It is determined that no user associated with the first user on the communication platform is associated with an avatar, wherein the second avatar is a generic avatar.
[0170] Solution 8. The method according to Solution 1 further includes:
[0171] Rendering the media content item segment using the media content identifier, the primary user identifier, and the secondary user identifier, wherein rendering the media content item segment includes
[0172] rendering the first avatar based on the primary user identification,
[0173] rendering the second avatar based on the secondary user identification, and
[0174] The first avatar and the second avatar are incorporated into the media content item segment.
[0175] Solution 9. A system comprising:
[0176] Processor; and
[0177] a memory component having instructions stored thereon, which, when executed by the processor, cause the processor to perform operations comprising:
[0178] causing an electronic program guide to be displayed on a display of a first client device, the first client device being associated with a first user, the first user being associated with a first avatar;
[0179] detecting a selection by the first user of a selectable item associated with a media content item, the electronic program guide including the selectable item;
[0180] identifying a second user associated with a second client device connected to the first user on the communication platform;
[0181] retrieving a primary user identifier associated with the first user and a secondary user identifier associated with the second user, the second user being associated with a second avatar;
[0182] generating a request for the media content item, the request comprising a media content identifier associated with the media content item, the primary user identifier, and the secondary user identifier; and
[0183] A playlist associated with the media content item is received, wherein the playlist includes a plurality of media content item segments, the plurality of media content item segments including the first avatar and the second avatar.
[0184] Solution 10. The system according to Solution 9, wherein identifying the second user further comprises:
[0185] A user who recently sent an electronic message to the first client device is identified.
[0186] Solution 11. The system according to Solution 9, wherein identifying the second user further comprises:
[0187] A user who sent electronic messages to the first client device within a predetermined time period is identified.
[0188] Solution 12. The system according to Solution 11, wherein identifying the second user further comprises:
[0189] A determination is made as to whether a user who sent the electronic message to the first client device within the predetermined time period is associated with an avatar.
[0190] Option 13. The system according to Option 12, wherein the second user is a user who sends the electronic message to the first client device within the predetermined time period and is associated with the avatar.
[0191] Solution 14. The system according to Solution 9, wherein identifying the second user further comprises:
[0192] A user associated with an avatar that is associated with the first user on the communication platform is identified.
[0193] Solution 15. The system according to Solution 9, wherein identifying the second user further comprises:
[0194] It is determined that no user associated with the first user on the communication platform is associated with an avatar, wherein the second avatar is a generic avatar.
[0195] Embodiment 16. The system according to embodiment 9, wherein the operation further comprises:
[0196] Rendering the media content item segment using the media content identifier, the primary user identifier, and the secondary user identifier, wherein rendering the media content item segment includes
[0197] rendering the first avatar based on the primary user identification,
[0198] rendering the second avatar based on the secondary user identification, and
[0199] The first avatar and the second avatar are incorporated into the media content item segment.
[0200] Solution 17. A non-transitory computer-readable storage medium having instructions stored thereon, the instructions, when executed by a processor, causing the processor to perform operations comprising the following steps:
[0201] causing an electronic program guide to be displayed on a display of a first client device, the first client device being associated with a first user, the first user being associated with a first avatar;
[0202] detecting a selection by the first user of a selectable item associated with a media content item, the electronic program guide including the selectable item;
[0203] identifying a second user associated with a second client device connected to the first user on the communication platform;
[0204] retrieving a primary user identifier associated with the first user and a secondary user identifier associated with the second user, the second user being associated with a second avatar;
[0205] generating a request for the media content item, the request comprising a media content identifier associated with the media content item, the primary user identifier, and the secondary user identifier; and
[0206] A playlist associated with the media content item is received, wherein the playlist includes a plurality of media content item segments, the plurality of media content item segments including the first avatar and the second avatar.
[0207] Option 18. The non-transitory computer-readable storage medium of Option 17, wherein identifying the second user further comprises:
[0208] A user who sent electronic messages to the first client device within a predetermined time period is identified.
[0209] Embodiment 19. The non-transitory computer-readable storage medium of Embodiment 18, wherein identifying the second user further comprises:
[0210] A determination is made as to whether a user who sent the electronic message to the first client device within the predetermined time period is associated with an avatar.
[0211] Option 20. The non-transitory computer-readable storage medium of Option 19, wherein the second user is a user who sends the electronic message to the first client device within the predetermined time period and is associated with the avatar.
[0212] Option 21. The non-transitory computer-readable storage medium of Option 17, wherein identifying the second user further comprises:
[0213] A user associated with an avatar that is associated with the first user on the communication platform is identified.
[0214] Changes and modifications may be made to the disclosed embodiments without departing from the scope of the present disclosure. These and other changes or modifications are intended to be included within the scope of the present disclosure as expressed in the appended claims.
Claims
1. A method comprising: detecting, by a processor, a selection of a selectable item associated with an animation series by a first user of a first client device; identifying a second user to be included in the animation series with the first user, wherein identifying the second user comprises identifying a user who recently sent an electronic message to the first client device via a communication platform; generating a request for a media content item associated with a first episode of a plurality of episodes of the animation series, the request including a primary user identifier associated with the first user and a secondary user identifier associated with the second user, wherein the request causes the first episode to be generated on demand to include a first avatar associated with the first user and a second avatar associated with the second user as character members in the first episode; and A playlist associated with the media content item is received, wherein the playlist includes a plurality of media content item segments, the plurality of media content item segments including the first avatar and the second avatar.
2. The method according to claim 1, wherein: The request includes a media content identification associated with the media content item.
3. The method according to claim 1, wherein: Identifying the second user further includes: A user who sent electronic messages to the first client device within a predetermined time period is identified.
4. The method according to claim 3, wherein: Identifying the second user further includes: A determination is made as to whether a user who sent the electronic message to the first client device within the predetermined time period is associated with an avatar.
5. The method according to claim 4, wherein: The second user is a user who sent the electronic message to the first client device within the predetermined time period and who is associated with the avatar.
6. The method according to claim 1, wherein: Identifying the second user further includes: A user associated with an avatar that is associated with the first user on the communication platform is identified.
7. The method according to claim 1, wherein: Identifying the second user further includes: It is determined that no user associated with the first user on the communication platform is associated with an avatar, wherein the second avatar is a generic avatar.
8. The method according to claim 2, further comprising: Rendering the media content item segment using the media content identifier, the primary user identifier, and the secondary user identifier, wherein rendering the media content item segment comprises: rendering the first avatar based on the primary user identification, rendering the second avatar based on the secondary user identification, and The first avatar and the second avatar are incorporated into the media content item segment.
9. A system comprising: processor; as well as a memory component having instructions stored thereon that, when executed by the processor, cause the system to perform operations comprising: detecting a selection of a selectable item associated with an animation series by a first user of a first client device; identifying a second user to be included in the animation series with the first user, wherein identifying the second user comprises identifying a user who recently sent an electronic message to the first client device via a communication platform; generating a request for a media content item associated with a first episode of a plurality of episodes of the animation series, the request including a primary user identifier associated with the first user and a secondary user identifier associated with the second user, wherein the request causes the first episode to be generated on demand to include a first avatar associated with the first user and a second avatar associated with the second user as character members in the first episode; and A playlist associated with the media content item is received, wherein the playlist includes a plurality of media content item segments, the plurality of media content item segments including the first avatar and the second avatar.
10. The system according to claim 9, wherein: The request includes a media content identification associated with the media content item.
11. The system according to claim 9, wherein: Identifying the second user further includes: A user who sent electronic messages to the first client device within a predetermined time period is identified.
12. The system according to claim 11, wherein: Identifying the second user further includes: A determination is made as to whether a user who sent the electronic message to the first client device within the predetermined time period is associated with an avatar.
13. The system according to claim 12, wherein: The second user is a user who sent the electronic message to the first client device within the predetermined time period and who is associated with the avatar.
14. The system according to claim 9, wherein: Identifying the second user further includes: A user associated with an avatar that is associated with the first user on the communication platform is identified.
15. The system according to claim 9, wherein: Identifying the second user further includes: It is determined that no user associated with the first user on the communication platform is associated with an avatar, wherein the second avatar is a generic avatar.
16. The system of claim 10, wherein: The operations also include: Rendering the media content item segment using the media content identifier, the primary user identifier, and the secondary user identifier, wherein rendering the media content item segment comprises: rendering the first avatar based on the primary user identification, rendering the second avatar based on the secondary user identification, and The first avatar and the second avatar are incorporated into the media content item segment.
17. A non-transitory computer-readable storage medium having stored thereon instructions, which, when executed by a processor, cause the processor to perform operations comprising: detecting a selection of a selectable item associated with an animation series by a first user of a first client device; identifying a second user to be included in the animation series with the first user, wherein, Identifying the second user includes identifying a user who recently sent an electronic message to the first client device via a communication platform; generating a request for a media content item associated with a first episode of a plurality of episodes of the animation series, the request including a primary user identifier associated with the first user and a secondary user identifier associated with the second user, wherein the request causes the first episode to be generated on demand to include a first avatar associated with the first user and a second avatar associated with the second user as character members in the first episode; and A playlist associated with the media content item is received, wherein the playlist includes a plurality of media content item segments, the plurality of media content item segments including the first avatar and the second avatar.
18. The non-transitory computer readable storage medium of claim 17, wherein: Identifying the second user further includes: A user who sent electronic messages to the first client device within a predetermined time period is identified.
19. The non-transitory computer readable storage medium of claim 18, wherein: Identifying the second user further includes: A determination is made as to whether a user who sent the electronic message to the first client device within the predetermined time period is associated with an avatar.
20. The non-transitory computer readable storage medium of claim 19, wherein: The second user is a user who sent the electronic message to the first client device within the predetermined time period and who is associated with the avatar.
21. The non-transitory computer readable storage medium of claim 17, wherein: Identifying the second user further includes: A user associated with an avatar that is associated with the first user on the communication platform is identified.
Citation Information
Patent Citations
Method and device for controlling addition of personal hobby information into media demo
CN1980332A
System and method of providing video content commentary
US20090007200A1
Avatar Integrated Shared Media Experience
US20100306655A1
Systems and methods for facilitating communication between users receiving a common media asset
US20140081988A1
System and method for personalizing digital content
US20150143209A1