Media content playback and comment management
Patent Information
- Application Number
- CN202180052923.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2020-08-31
- Filing Date
- 2021-08-25
- Publication Date
- 2026-09-25
- Estimated Expiration
- 2041-08-25
Smart Images

Figure CN116438788B_ABST
Abstract
Description
[0001] Priority application
[0002] This application is a continuation-to-priority application to U.S. Patent Application Serial No. 17 / 008,376, filed on August 31, 2020, the disclosure of which is incorporated herein by reference in its entirety. Background Technology
[0003] Electronic messaging, especially instant messaging, continues to be popular worldwide. Users can quickly and instantly share electronic media content, including text, electronic images, audio, and video, with each other.
[0004] As the number of users on social networking systems increases, each user also has a growing network of individuals they follow. Therefore, to maintain user engagement on social networking systems, it is crucial that the system has the ability to present each user with media content that is most interesting or relevant to them. Social networking systems face the challenge of presenting media content that has already been commented on by a user's friends, as such content is considered most interesting and relevant. Attached Figure Description
[0005] In the accompanying drawings, the same reference numerals may describe similar parts in different views, and the drawings are not necessarily drawn to scale. For ease of identification in discussion of any particular element or action, one or more of the most significant numerals in the reference numerals refer to the drawing number in which that element is first introduced. Some embodiments are shown in the accompanying drawings by way of example, not limitation, in the drawings:
[0006] Figure 1 It is a diagrammatic representation of a networked environment in which the content of this disclosure can be deployed, based on some examples.
[0007] Figure 2 It is a graphical representation of a messaging system with both client-side and server-side functionalities, based on some examples.
[0008] Figure 3 It is a graphical representation of the data structures maintained in the database based on some examples.
[0009] Figure 4 It is a graphical representation based on some example messages.
[0010] Figure 5 It is a flowchart of an access restriction process based on some examples.
[0011] Figure 6 A playback process 600 for generating media content items according to one embodiment is shown.
[0012] Figure 7 A user interface 700 displayed on a client device according to one embodiment is shown.
[0013] Figure 8 A user interface 800 displayed on a client device according to one embodiment is shown.
[0014] Figure 9 A user interface 900 displayed on a client device according to one embodiment is shown.
[0015] Figure 10 A user interface 1000 displayed on a client device according to one embodiment is shown.
[0016] Figure 11 A user interface 1100 displayed on a client device according to one embodiment is shown.
[0017] Figure 12 It is a graphical representation of a machine in the form of a computer system, based on some examples, within which a set of instructions can be executed to cause the machine to perform any or more of the methods discussed herein.
[0018] Figure 13 It is a block diagram showing a software architecture in which examples can be implemented.
[0019] Figure 14 It is a graphical representation of the processing environment based on some examples. Detailed Implementation
[0020] In a messaging system, users are connected to various other users with whom they have relationships of varying degrees and types. For example, a user may have social connections with a group of users who are close friends, colleagues, acquaintances, or people the user does not know outside the messaging system. Social connections a user can establish with another user within a messaging system can include one-way friendships and two-way friendships.
[0021] Social networking systems face the following challenges: providing users with media content items without displaying comments from individuals they don't know, as such individuals might post irrelevant or sometimes emotionally distressing comments on shared media content items, negatively impacting the user experience. Additionally, social networking systems face the challenge of concealing the full comment thread from users, given that they might experience some degree of distress from receiving further comments from their friends if they don't respond to comments in their thread.
[0022] Implementations of this disclosure improve the functionality of electronic messaging software and systems by recognizing that users may want to receive media content items associated only with comments from other users with whom the user has already established a social relationship (e.g., friendship) on the messaging system. Specifically, implementations of this disclosure involve generating playbacks of media content items available on the messaging system, containing comments created only by the viewing user's friends. The viewing user can post comments to the media content items. Each comment is associated with a timestamp indicating the time position at which the comment was created during the playback period. During playback, each comment is displayed at the corresponding time position (e.g., a timeline marker), allowing the viewing user to experience the creation of comments from friends.
[0023] In some implementations, when a comment is selected, the messaging system can direct the user to a private messaging user interface to participate in a private conversation with the comment creator. Therefore, no group of comment posts is generated for media content items. This helps to facilitate the goal of avoiding the generation of a complete group of comment posts visible to all users, which could unintentionally cause distress to some affected users.
[0024] This disclosure also relates to the generation of notifications for comments created by friends of users associated with media content items. A predetermined time period (e.g., a cooling-off period) is determined and evaluated between the generation of notifications on the client device.
[0025] In some implementations, users can post comments at any time during the display of a media content item. Users can mention other friends in their comments, and the messaging system can share the comment with the mentioned friends. In some implementations, the media content item is created by a commercial content creator or a designated user whose user profile is not linked to the viewing user in the entity graph stored in the messaging system. For example, the designated user is not a friend of the user requesting to view a media content item created by that designated user.
[0026] Networked computing environment
[0027] Figure 1 This 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 messaging clients 104. Each messaging client 104 is communicatively coupled to a messaging server system 108 and other instances of the messaging client 104 via a network 106 (e.g., the Internet).
[0028] The messaging client 104 can communicate and exchange data with another messaging client 104 and with the messaging server system 108 via the network 106. The data exchanged between messaging clients 104 and between messaging client 104 and messaging server system 108 includes functions (e.g., commands to activate functions) and payload data (e.g., text, audio, video, or other multimedia data).
[0029] Message transceiver server system 108 provides server-side functionality to specific message transceiver clients 104 via network 106. While some functions of message transceiver system 100 are described herein as being performed by message transceiver client 104 or message transceiver server system 108, the location of certain functions within message transceiver client 104 or message transceiver server system 108 can be a design choice. For example, it may be technically preferred that certain technologies and functions are initially deployed within message transceiver server system 108, but that technology and functions are later migrated to message transceiver client 104 with sufficient processing power on client device 102.
[0030] The messaging server system 108 supports various services and operations provided to the messaging client 104. Such operations include sending data to and receiving data from the messaging client 104, and processing data generated by the messaging client 104. As an example, this data may include message content, client device information, geolocation information, media enhancements and overlays, message content persistence conditions, social network information, and live event information. Data exchange within the messaging system 100 is activated and controlled through functions available via the user interface (UI) of the messaging client 104.
[0031] Specifically, turning to message transceiver server system 108, application programming interface (API) server 110 is coupled to application server 112 and provides a programming interface to application server 112. Application server 112 is communicatively coupled to database server 118, which provides access to database 120, which stores data associated with messages processed by application server 112. Similarly, web server 124 is coupled to application server 112 and provides a web-based interface to application server 112. To this end, web server 124 processes incoming network requests via Hypertext Transfer Protocol (HTTP) and several other related protocols.
[0032] Application Programming Interface (API) server 110 receives and sends message data (e.g., commands and message payloads) between client device 102 and application server 112. Specifically, API server 110 provides a set of interfaces (e.g., routines and protocols) that message sending and receiving client 104 can invoke or query to activate the functionality of application server 112. Application Programming Interface (API) server 110 exposes various functionalities supported by application server 112, including: account registration; login functionality; sending messages from one messaging client 104 to another messaging client 104 via application server 112; sending media files (e.g., images or videos) from messaging client 104 to messaging server 114 and providing possible access for another messaging client 104; setting up media data collections (e.g., stories); retrieving a user's friend list for client device 102; retrieving such collections; retrieving messages and content; adding and deleting entities (e.g., friends) in an entity graph (e.g., a social graph); locating friends in a social graph; and opening application events (e.g., related to messaging client 104).
[0033] Application server 112 hosts several server applications and subsystems, including, for example, messaging server 114, image processing server 116, and social networking server 122. Messaging server 114 implements several messaging technologies 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 messaging client 104. As will be described in further detail, text and media content from multiple sources can be aggregated into collections of content (e.g., referred to as stories or galleries). These collections are then made available to messaging client 104. Given the hardware requirements for such processing, additional processor- and memory-intensive data processing can also be performed on the server side by messaging server 114.
[0034] Application server 112 also includes image processing server 116, which is dedicated to performing various image processing operations, typically performing various image processing operations relative to the images or videos within the payload of messages sent from or received at message transceiver server 114.
[0035] Social networking server 122 supports various social networking functions and services, and makes these functions and services available to messaging server 114. To this end, social networking server 122 maintains and accesses entity graph 306 (such as...) within database 120. Figure 3(As shown). Examples of functions and services supported by the social network server 122 include identifying other users of the messaging system 100 who have a relationship with or “follow” a particular user, as well as identifying the interests and other entities of a particular user.
[0036] System Architecture
[0037] Figure 2 This is a block diagram illustrating further details of a messaging system 100 according to some examples. Specifically, the messaging system 100 is shown as including a messaging client 104 and an application server 112. The messaging system 100 includes several subsystems supported on the client side by the messaging client 104 and on the server side by the application server 112. These subsystems include, for example, a short-run timer system 202, a collection management system 204, an enhancement system 206, a map system 208, and a game system 210.
[0038] The short-duration timer system 202 is responsible for forcing temporary or time-limited access to content by the message sending client 104 and the message sending server 114. The short-duration timer system 202 includes several timers that selectively enable access (e.g., for rendering and displaying) of messages and associated content via the message sending client 104 based on the duration and display parameters associated with a message or set of messages (e.g., a story). Further details regarding the operation of the short-duration timer system 202 are provided below. In one embodiment, the short-duration timer system 202 is also responsible for determining the media content items to be played back, such as... Figure 7 The media content item 702 shown is for a predetermined duration. In one embodiment, the short timer system 202 is also responsible for determining the predetermined duration for displaying comments during playback of the media content item.
[0039] The collection management system 204 is responsible for managing groups or collections of media (e.g., collections of text, images, video, and audio data). Collections of content (e.g., messages, including images, videos, text, and audio) can be organized into "event libraries" or "event stories." Such collections can be made available for a specified period of time (e.g., the duration of an event related to the content). For example, content related to a concert can be made available for the duration of a concert. The collection management system 204 can also be responsible for publishing icons that notify the user interface of the messaging client 104 of the existence of a specific collection.
[0040] Furthermore, the collection management system 204 includes a curation interface 212 that enables collection managers to manage and curate specific content collections. For example, the curation interface 212 allows event organizers to curate content collections related to a specific event (e.g., removing inappropriate content or redundant messages). Additionally, the collection management system 204 employs machine vision (or image recognition technology) and content rules to automatically curate content collections. In some examples, users may be paid compensation for including user-generated content in the collection. In such cases, the collection management system 204 operates to automatically pay such users for using their content.
[0041] In one implementation, the collection management system 204 manages a collection of media content items that can be viewed and commented on by users in the messaging server system 108. The collection of media content items may include items created by commercial content creators or designated users. Commercial content creators may be third-party publishers such as the New York Times, Vice, etc. Designated users may include users with a large number of followers. User profiles may be stored as profile data 308 in entity table 304 in database 120. The number of followers is determined by the number of user profiles that are unidirectionally linked to designated user profiles in entity table 304. Specifically, the type of link between two user profiles may include bidirectional and unidirectional links, respectively represented by bidirectional link identifiers and unidirectional link identifiers associated with each user profile in entity table 304. A bidirectional link indicates that the linked users have each responded to a friend request sent from another user via client device 102. A unidirectional link indicates that only one of the two linked users requested a friend link, but the requested user did not respond or declined the request. The number of followers of a specified user is determined by the number of one-way link user profiles associated with users who requested a friend link with the specified user, but the specified user did not respond or declined the request. The number of friends of a user can be determined by the number of two-way link user profiles in entity table 304.
[0042] In one implementation, the designated user is determined by the administrator of the message transceiver server system 108. The user profile associated with the designated user is not in the grouped link profiles. Specifically, the designated user has not yet established a bidirectional link with the user who requested to view media content items created by the designated user.
[0043] In one implementation, the collection management system 204 is responsible for displaying only comments created by friends of the user who requested to view the media content item. In one implementation, when the collection management system 204 causes the client device 102 to play back a media content item (e.g., a video or image), the image is displayed for a predetermined duration, such as five seconds. The video is displayed for the duration of the video. Each comment created by a user for a media content item is associated with a user profile and a timestamp indicating the time each comment was created during the duration the media content item was displayed.
[0044] Enhancement system 206 provides various functionalities that enable users to enhance (e.g., annotate or otherwise modify or edit) media content associated with a message. For example, enhancement system 206 provides functionality related to generating and publishing media overlays for messages processed by messaging system 100. Enhancement system 206 can operablely provide media overlays or enhancements (e.g., image filters) to messaging client 104 based on the geographic location of client device 102. In another example, enhancement system 206 can operablely supply media overlays to messaging client 104 based on other information such as the social network information of the user of client device 102. Media overlays may include audio and visual content as well as 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 may be applied to media content items (e.g., photos) at client device 102. For example, a media overlay may include text or images that can be overlaid on top of a photo taken by client device 102. In another example, media overlays include location identifiers (e.g., Venice Beach) overlays, names of live events, or business names (e.g., Beach Cafe) overlays. In yet another example, enhancement system 206 uses the geographic location of client device 102 to identify media overlays that include the name of a business located at the geographic location of client device 102. Media overlays may include other tags associated with the business. Media overlays may be stored in database 120 and accessed via database server 118.
[0045] In some examples, enhancement system 206 provides a user-based publishing platform that allows users to select geographic locations on a map and upload content associated with those locations. Users can also specify when particular media overlays should be provided to other users. Enhancement system 206 generates media overlays that include the uploaded content and associate it with the selected geographic locations.
[0046] In other examples, Enhancement System 206 provides a merchant-based publishing platform that enables merchants to select specific media coverage associated with geographic locations via a bidding process. For example, Enhancement System 206 associates the media coverage of the highest-bidding merchant with a corresponding geographic location for a predefined amount of time.
[0047] Map system 208 provides various geolocation functions and supports the presentation of map-based media content and messages by messaging client 104. For example, map system 208 enables the display (e.g., stored in profile data 308) of user icons or avatars on a map to indicate the current or past locations of the user's "friends" in the context of the map, as well as media content generated by such friends (e.g., a collection of messages including photos and videos). For example, on the map interface of messaging client 104, a message posted by a user from a specific geographic location to messaging system 100 can be displayed to the specific user's "friends" in the context of that specific location on the map. The user can also share his or her location and status information with other users of messaging system 100 via messaging client 104 (e.g., using appropriate status avatars), where the location and status information is similarly displayed to the selected user in the context of the map interface of messaging client 104.
[0048] The game system 210 provides various game functions within the context of the messaging client 104. The messaging client 104 provides a game interface that displays a list of available games, which can be started by a user within the context of the messaging client 104 and played with other users of the messaging system 100. The messaging system 100 also enables specific users to invite other users to play a specific game by sending invitations from the messaging client 104 to such other users. The messaging client 104 also supports voice and text messaging (e.g., chat) within the game context, provides leaderboards for the game, and supports providing in-game rewards (e.g., items).
[0049] Data Architecture
[0050] Figure 3 This is a schematic diagram illustrating a data structure 300 that can be stored in a database 120 of a message transceiver server system 108, according to certain examples. Although the contents of the database 120 are shown as including several tables, it should be understood that the data can be stored in other types of data structures (e.g., as an object-oriented database).
[0051] Database 120 includes message data stored in message table 302. For any given message, this message data includes at least message sender data, message receiver (or recipient) data, and a payload. See below for reference. Figure 4 Further details are provided regarding information that can be included in the message and in the message data stored in message table 302.
[0052] Entity table 304 stores entity data and (for example, links to entity diagram 306 and profile data 308). Entities for which records are maintained within entity table 304 may include individuals, company entities, organizations, objects, locations, events, etc. Regardless of entity type, any entity whose data is stored in message transceiver server system 108 can be an identifiable entity. Each entity is provided with a unique identifier and an entity type identifier (not shown).
[0053] Entity graph 306 stores information about the relationships and associations between entities. As an example only, such relationships can be social relationships based on interests or activities, or professional relationships (e.g., working in a common company or organization).
[0054] Profile data 308 stores various types of configuration data about a specific entity. Based on the privacy settings specified by the specific entity, profile data 308 can be selectively used and presented to other users of messaging system 100. In the case of an individual, profile data 308 includes, for example, a username, phone number, address, settings (e.g., notification and privacy settings), and an avatar representation (or a set of such avatar representations) selected by the user. A specific user can then selectively include one or more of these avatar representations in the content of messages transmitted via messaging system 100 and in a map interface displayed to other users by messaging client 104. The set of avatar representations may include “status avatars,” which present a graphical representation of a user’s chosen state or activity at a specific time.
[0055] In the case that the entity is a group, in addition to the group name, members and various settings of the associated group (e.g., notifications), the group profile data 308 may similarly include one or more avatars associated with the group.
[0056] Database 120 also stores enhancement data, such as overlays or filters, in enhancement table 310. The enhancement data is associated with and applied to videos (for which data is stored in video table 314) and images (for which data is stored in image table 316).
[0057] In one example, a filter is an overlay displayed on top of an image or video during presentation to the receiving user. Filters can be of various types, including filters selected by the user from a set of filters presented to the sending user by the messaging client 104 when the sending user is composing a message. Other types of filters include geolocation filters (also known as geographic filters), which can be presented to the sending user based on geographic location. For example, a geolocation filter specific to a nearby or particular location can be presented by the messaging client 104 within the user interface based on geographic location information determined by the Global Positioning System (GPS) unit of the client device 102.
[0058] Another type of filter is a data filter, which can be selectively presented to the sending user by the messaging client 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 specific location, the current speed of the sending user, the battery life of the client device 102, or the current time.
[0059] Other augmented data that can be stored in image table 316 includes augmented reality content items (e.g., corresponding to an application lens or augmented reality experience). Augmented reality content items can be real-time special effects and sounds that can be added to images or videos.
[0060] As described above, augmented data includes augmented reality content items, overlays, image transformations, AR images, and similar items involving modifications that can be applied to image data (e.g., video or images). This includes real-time modifications, which modify images as they are captured using the device sensors (e.g., one or more cameras) of client device 102 and then display the modified images on the screen of client device 102. This also includes modifications to stored content, such as modifications to video clips in a library that can be modified. For example, in client device 102, which has access to multiple augmented reality content items, a user can use a single video clip with multiple augmented reality content items to see how different augmented reality content items will modify the stored clip. For example, by selecting different augmented reality content items for the content, multiple augmented reality content items with different pseudo-random motion models can be applied to the same content. Similarly, real-time video capture can be used with the illustrated modifications to show how the video image currently captured by the sensors of client device 102 will modify the captured data. Such data can be simply displayed on the screen without being stored in memory, or content captured by the device's sensors can be recorded and stored in memory with or without modification (or both). In some systems, preview functionality can show how different augmented reality content items will be displayed simultaneously in different windows of the display. For example, this allows viewing multiple windows with different pseudo-random animations on the display at the same time.
[0061] Therefore, using augmented reality content items and various systems, or other such transformation systems that modify content using that data, can involve the detection of objects (e.g., faces, hands, bodies, cats, dogs, surfaces, objects, etc.) in video frames, tracking these objects as they leave, enter, and move around within the field of view, and modifying or transforming them while tracking them. In various implementations, different methods can be used to achieve such transformations. Some examples may involve generating 3D mesh models of one or more objects, and using transformations and animated textures of the models within the video to achieve the transformations. In other examples, tracking points on objects can be used to place images or textures (which can be two-dimensional or three-dimensional) at the tracked locations. In further examples, neural network analysis of video frames can be used to place images, models, or textures within content (e.g., images or video frames). Thus, augmented reality content items refer both to the images, models, and textures used to create transformations within content, and to the additional modeling and analysis information required to achieve such transformations through object detection, tracking, and placement.
[0062] Real-time video processing can be performed using any type of video data (e.g., video streams, video files, etc.) stored in the memory of any type of computerized system. For example, a user can load a video file and store it in the device's memory, or a video stream can be generated using the device's sensors. Furthermore, computer-animated models can be used to process any object, such as a human face and parts of the human body, animals, or inanimate objects (such as chairs, cars, or other objects).
[0063] In some examples, when a specific modification is selected along with the content to be transformed, the element to be transformed is identified by the computing device and then detected and tracked if the element to be transformed exists in a frame of the video. The elements of the object are modified according to the modification request, thereby transforming the frames of the video stream. For different types of transformations, the transformation of the frames of the video stream can be performed using different methods. For example, for a transformation of frames that primarily refers to changing the form of elements of an object, feature points of each element of the object (e.g., using an Active Shape Model (ASM) or other known methods) are calculated. Then, a feature point-based mesh is generated for each of at least one element of the object. This mesh is used for subsequent stages of tracking the elements of the object in the video stream. During tracking, the mesh mentioned for each element is aligned with the position of each element. Then, additional points are generated on the mesh. A first set of first points is generated for each element based on the modification request, and a second set of points is generated for each element based on the first set of points and the modification request. The frames of the video stream can then be transformed by modifying the elements of the object based on the first set of points, the second set of points, and the mesh. In this method, the background of the object being modified can also be changed or distorted by tracking and modifying the background.
[0064] In some examples, transformations that alter certain regions of an object using its elements can be performed by calculating feature points for each element of the object and generating a mesh based on those calculated feature points. Points are generated on the mesh, and various regions are then generated based on these points. The elements of the object are then tracked by aligning the regions of each element with the positions of at least one of the elements, and the properties of the regions can be modified based on modification requests, thereby transforming frames of the video stream. Depending on the specific modification request, the properties of the mentioned regions can be transformed in different ways. Such modifications can involve: changing the color of the region; removing at least some portions of the region from the frames of the video stream; including one or more new objects in the region based on the modification request; and modifying or distorting the elements of the region or object. In various implementations, any combination of such modifications or other similar modifications can be used. For certain models to be animated, some feature points can be selected as control points to determine the entire state space for options used in model animation.
[0065] In some examples of computer animation models that use face detection to transform image data, a specific face detection algorithm (e.g., Viola-Jones) is used to detect faces on the image. Then, the Active Shape Model (ASM) algorithm is applied to the facial regions of the image to detect facial feature reference points.
[0066] In other examples, other methods and algorithms suitable for face detection can be used. For example, in some implementations, landmarks are used to locate features that represent distinguishable points present in most of the images considered. For example, for a face landmark, the location of the left pupil could be used. If the initial landmark is not recognizable (e.g., if the person is wearing an eye patch), secondary landmarks can be used. Such a landmark recognition process can be used for any such object. In some examples, a set of landmarks forms a shape. The shape can be represented as a vector using the coordinates of points in the shape. One shape is aligned with another shape through a similarity transformation (allowing translation, scaling, and rotation) that minimizes the average Euclidean distance between the points of the shapes. The average shape is the average of the aligned training shapes.
[0067] In some examples, a landmark search begins with an average shape aligned with the position and size of a face determined by a global face detector. This search then repeats the following steps: proposing provisional shapes by adjusting the positions of shape points using template matching of the image texture around each point, and then conforming the provisional shapes to a global shape model until convergence occurs. In some systems, individual template matching is unreliable, and the shape model pools the results of weak template matching to form a stronger overall classifier. The entire search is repeated at each level of the image pyramid, from coarse to fine resolution.
[0068] The transformation system can capture image or video streams on a client device (e.g., client device 102) and perform complex image manipulations locally on client device 102 while maintaining an appropriate user experience, computation time, and power consumption. Complex image manipulations can include size and shape changes, emotion shifts (e.g., changing a face from frowning to smiling), state shifts (e.g., aging an object, reducing its apparent age, or changing its gender), style shifts, application of graphical elements, and any other suitable image or video manipulations implemented by a convolutional neural network that has been configured to execute efficiently on client device 102.
[0069] In some examples, a computer animation model for transforming image data can be used by a system in which a user can use a client device 102 with a neural network to capture an image or video stream of the user (e.g., a selfie), the neural network operating as part of a messaging client application 104 operating on the client device 102. A transformation system operating within the messaging client 104 determines the presence of a face in the image or video stream and provides a modification icon associated with the computer animation model to transform the image data, or the computer animation model can be presented as associated with the interface described herein. The modification icon includes changes that can be the basis for modifying the user's face in the image or video stream as part of a modification operation. Once a modification icon is selected, the transformation system initiates a process of transforming the user's image to reflect the selected modification icon (e.g., generating a smiley face on the user). Once the image or video stream is captured and the specified modification is selected, the modified image or video stream can be presented in a graphical user interface displayed on the client device 102. The transformation system can implement a complex convolutional neural network on a portion of the image or video stream to generate and apply the selected modification. In other words, once an edit icon is selected, the user can capture an image or video stream and view the changes in real-time or near real-time. Furthermore, while a video stream is being captured, the edits can be persistent, and the selected edit icon continues to be toggled. Machine-trained neural networks can be used to achieve such edits.
[0070] A graphical user interface (GUI) presenting modifications performed by the transformation system can provide users with additional interactive options. Such options can be based on the interface used to initiate the selection and content capture of a specific computer animation model (e.g., initiated from a content creator user interface). In various implementations, modifications can be persistent after an initial selection of the modification icon. Users can turn modifications on or off by tapping or otherwise selecting a face modified by the transformation system and save it for later viewing or browsing to other areas of the imaging application. In the case of multiple faces being modified by the transformation system, users can globally turn modifications on or off by tapping or selecting a single face modified and displayed within the GUI. In some implementations, individual faces within a set of multiple faces can be modified individually, or such modifications can be toggled individually by tapping or selecting individual faces or a series of individual faces displayed within the GUI.
[0071] Story table 312 stores data about collections of messages and associated image, video, or audio data, compiled into collections (e.g., stories or galleries). The creation of a specific collection can be initiated by a specific user (e.g., each user for whom a record is maintained in entity table 304). A user can create a "personal story" in the form of a collection of content that has already been created and sent / broadcast by that user. For this purpose, the user interface of messaging client 104 may include user-selectable icons that allow the sending user to add specific content to his or her personal story.
[0072] The collection can also constitute a "live story" as a collection of content from multiple users, created manually, automatically, or using a combination of manual and automatic techniques. For example, a "live story" can constitute a curated stream of user-submitted content from different locations and events. Users whose client devices have location services enabled and are at a common location event at a specific time can be presented with options, for example, via the user interface of messaging client 104, to contribute content to a specific live story. The messaging client 104 can identify live stories to users based on their location. The end result is a "live story" told from a community perspective.
[0073] Another type of content collection is called a "location story," which allows users whose client devices 102 are located in a specific geographic location (e.g., on a college or university campus) to contribute to a specific collection. In some examples, contributing to a location story may require secondary authentication to verify that the end user belongs to a specific organization or other entity (e.g., a student on a university campus).
[0074] As mentioned above, video table 314 stores video data, which in one example is associated with messages for which records are maintained within message table 302. Similarly, image table 316 stores image data associated with messages whose message data is stored in entity table 304. Entity table 304 can associate various enhancements from enhancement table 310 with various images and videos stored in image table 316 and video table 314. In one implementation, image table 316 stores image data associated with an image type media content item and comments associated with that image. Video table 314 stores video data associated with a video type media content item and comments associated with that video.
[0075] Data communication architecture
[0076] Figure 4This is a schematic diagram illustrating the structure of message 400 according to some examples. Message 400 is generated by message transceiver client 104 for transmission to another message transceiver client 104 or message transceiver server 114. The content of a particular message 400 is used to populate message table 302 stored in database 120, which is accessible by message transceiver server 114. Similarly, the content of message 400 is stored in memory as "in transit" or "in flight" data of client device 102 or application server 112. Message 400 is shown to include the following example components:
[0077] ●Message Identifier 402: A unique identifier that identifies message 400.
[0078] ● Message text payload 404: The text to be generated by the user via the user interface of the client device 102 and included in message 400.
[0079] ●Message Image Payload 406: Image data captured by the camera component of the client device 102 or retrieved from the memory component of the client device 102 and included in the message 400. The image data for the sent or received message 400 can be stored in the image table 316.
[0080] ● Message video payload 408: Video data captured by the camera device component or retrieved from the memory component of the client device 102 and included in the message 400. The video data for the sent or received message 400 may be stored in the video table 314.
[0081] ●Message audio payload 410: Audio data captured by the microphone or retrieved from the memory component of the client device 102 and included in message 400.
[0082] ● Message Enhancement Data 412: Enhancement data (e.g., filters, stickers, or other annotations or enhancements) representing enhancements to be applied to the message image payload 406, message video payload 408, or message audio payload 410 of message 400. Enhancement data for the sent or received message 400 can be stored in enhancement table 310.
[0083] ● Message Duration Parameter 414: Parameter value that indicates the amount of time, in seconds, during which the content of the message (e.g., message image payload 406, message video payload 408, message audio payload 410) will be presented to the user or made accessible to the user via the message sending and receiving client 104.
[0084] ● Message geolocation parameter 416: Geographic location data (e.g., latitude and longitude coordinates) associated with the message's content payload. Multiple message geolocation parameter 416 values may be included in the payload, each of which is associated with a content item included in the content (e.g., a specific image within the message image payload 406 or a specific video within the message video payload 408).
[0085] ● Message Story Identifier 418: An identifier value that identifies one or more content sets (e.g., "Stories" identified in Story Table 312), wherein a specific content item in the message image payload 406 of message 400 is associated with one or more content sets. For example, the identifier value can be used to associate multiple images within the message image payload 406 with multiple content sets, respectively.
[0086] ● Message Tag 420: Each message 400 can be labeled with multiple tags, each tag indicating the subject of the content included in the message payload. For example, in the case where a specific image depicting an animal (e.g., a lion) is included in the message image payload 406, a tag value indicating the relevant animal can be included in the message tag 420. The tag value can be generated manually based on user input, or it can be automatically generated using, for example, image recognition.
[0087] ●Message sender identifier 422: An identifier (e.g., message sending system identifier, email address, or device identifier) indicating the user of the client device 102 on which message 400 is generated and from which message 400 is sent.
[0088] ● Message Recipient Identifier 424: An identifier (e.g., a message sending and receiving system identifier, email address, or device identifier) indicating the user of the client device 102 to which message 400 is addressed.
[0089] The content (e.g., values) of each component of message 400 can be pointers to locations in tables where content data values are stored. For example, image values in message image payload 406 can be pointers to locations (or addresses of locations) within image table 316. Similarly, values in message video payload 408 can point to data stored in video table 314, values stored in message enhancement data 412 can point to data stored in enhancement table 310, values stored in message story identifier 418 can point to data stored in story table 312, and values stored in message sender identifier 422 and message receiver identifier 424 can point to user records stored in entity table 304.
[0090] Time-based access restriction architecture
[0091] Figure 5 This is a schematic diagram illustrating an access restriction process 500, according to which access to content (e.g., a short message 502 and a multimedia payload of associated data) or a collection of content (e.g., a short message group 504) can be time-restricted (e.g., so that it is short).
[0092] A short message 502 is shown associated with a message duration parameter 506, the value of which determines the amount of time the message sending and receiving client 104 will display the short message 502 to the receiving user. In one example, depending on the amount of time specified by the sending user using the message duration parameter 506, the receiving user can view the short message 502 for up to 10 seconds. In one implementation, the short message 502 may include media content items, such as... Figure 7 The media content item 70 shown. Brief message 502 may include comments displayed during playback of the media content item.
[0093] Message duration parameter 506 and message receiver identifier 424 are shown as inputs to message timer 512, which is responsible for determining the amount of time for which brief message 502 is shown to a specific receiving user identified by message receiver identifier 424. Specifically, brief message 502 is shown to the relevant receiving user only within the time period determined by the value of message duration parameter 506. Message timer 512 is shown as providing output to a more generalized brief timer system 202, which is responsible for the overall timing of displaying content (e.g., brief message 502) to the receiving user. In one embodiment, message duration parameter 506 includes a predetermined duration for media content playback and a predefined duration for displaying comments during media content playback.
[0094] Figure 5 The transient message 502 shown is included within a transient message group 504 (e.g., a collection of messages in a personal story or event story). The transient message group 504 has an associated group duration parameter 508, the value of which determines the duration for which the transient message group 504 is presented and accessible to a user of the messaging system 100. For example, the group duration parameter 508 could be the duration of a concert, where the transient message group 504 is a collection of content related to that concert. Alternatively, when setting up and creating the transient message group 504, the user (owner user or curator user) can specify the value of the group duration parameter 508.
[0095] Additionally, each short message 502 within a short message group 504 has an associated group participation parameter 510, the value of which determines the duration for which the short message 502 will be accessible within the context of the short message group 504. Therefore, a particular short message group 504 can "expire" and become inaccessible within its context before the short message group 504 itself expires according to the group duration parameter 508. The group duration parameter 508, the group participation parameter 510, and the message receiver identifier 424 each provide input to a group timer 514, which is operable to first determine whether a particular short message 502 of the short message group 504 will be displayed to a specific receiving user, and if so, determine for how long. Note that the short message group 504 also knows the identity of the specific receiving user due to the message receiver identifier 424.
[0096] Therefore, the group timer 514 operatively controls the associated ephemeral message group 504 and the total lifetime of the individual ephemeral messages 502 included within the ephemeral message group 504. In one example, each ephemeral message 502 within the ephemeral message group 504 remains viewable and accessible for a period of time specified by the group duration parameter 508. In another example, within the context of the ephemeral message group 504, a particular ephemeral message 502 may expire based on the group participation parameter 510. Note that even within the context of the ephemeral message group 504, the message duration parameter 506 can still determine the duration for which a particular ephemeral message 502 is displayed to the receiving user. Therefore, the message duration parameter 506 determines the duration for which a particular ephemeral message 502 is displayed to the receiving user, regardless of whether the receiving user views the ephemeral message 502 within or outside the context of the ephemeral message group 504.
[0097] The short-lived timer system 202 can also operatively remove a specific short-lived message 502 from the short-lived message group 504 based on determining that the specific short-lived message 502 has exceeded its associated group participation parameter 510. For example, when the sending user has established a group participation parameter 510 for 24 hours from the date of publication, the short-lived timer system 202 will remove the relevant short-lived message 502 from the short-lived message group 504 after the specified twenty-four hours. The short-lived timer system 202 also operates to remove the short-lived message group 504 when the group participation parameter 510 for each short-lived message 502 within the short-lived message group 504 has expired, or when the short-lived message group 504 itself has expired according to the group duration parameter 508.
[0098] In certain use cases, the creator of a specific ephemeral message group 504 can specify an indefinite group duration parameter 508. In this case, the expiration of the group participation parameter 510 for the last remaining ephemeral message 502 within the ephemeral message group 504 will determine when the ephemeral message group 504 itself expires. In this case, adding a new ephemeral message 502 with a new group participation parameter 510 to the ephemeral message group 504 effectively extends the lifetime of the ephemeral message group 504 to a value equal to the group participation parameter 510.
[0099] In response to the short-lived timer system 202 determining that a short-lived message group 504 has expired (e.g., is no longer accessible), the short-lived timer system 202 communicates with the messaging system 100 (and, in particular, the messaging client 104) to cause the markers (e.g., icons) associated with the relevant short-lived message group 504 to no longer be displayed in the user interface of the messaging client 104. Similarly, when the short-lived timer system 202 determines that the message duration parameter 506 for a particular short-lived message 502 has expired, the short-lived timer system 202 causes the messaging client 104 to no longer display the markers (e.g., icons or text identifiers) associated with the short-lived message 502.
[0100] Media content playback and comment management
[0101] In one implementation, a user associated with the first client device 102 can send a request to the messaging server system 108 to view a media content item. The messaging server system 108 determines, based on links to user profiles in entity diagram 306, at least one comment from the linked user profile (e.g., a friend) at a specific time during playback of the media content item, indicating that a comment has been created.
[0102] Figure 6 A process 600 for generating and playing back media content items according to one embodiment is illustrated. The operation of process 600 can be performed by any number of different systems (such as the messaging server 114 or messaging client 104 described herein) or any part thereof (such as a processor included in any system).
[0103] At operation 602, the processor receives a request from client device 102 to view the playback of a media content item. The media content item can be an image, picture, video, text, or any combination thereof. Figure 7 A user interface 700 that can be displayed on the first client device 102 is shown. Figure 7The media content item 702 shown is an image or video of a person. The user interface 700 also includes a summary comment option 704, a playback progress bar 706, and multiple timeline markers 708. The creator name item 718 indicates the entity (e.g., XYZ) that created the media content item 702. In one implementation, entity XYZ is a commercial content creator or a designated user.
[0104] Client device 102 is associated with a user. The user is associated with a viewer profile in entity diagram 306. Media content items are associated with a set of comments represented by summary comment option 704. Media content item 702 has a playback duration. The duration is represented by a playback progress bar 706. For example, the playback duration for image-type media content could be five seconds. However, the duration for video-type media content is the length of the video. Each comment associated with a media content item is associated with a user profile and a timestamp indicating the specific time each comment was created within the playback duration. Multiple timeline markers 708 indicate the points in time when the comments included in summary comment option 704 were created.
[0105] A user profile can be associated with an entity identifier representing the user. A user's viewer profile is associated with... Figure 3 The entity diagram 306 in the figure is associated with a set of link profiles of linked users. In one implementation, the link between the viewer profile and the link profile is a bidirectional link (e.g., a friend link), such that the summary comment option 704 is generated only based on comments created by one or more friends of the user who requested to view the media content item 702.
[0106] At operation 604, the processor determines at least one comment associated with a corresponding user profile in a set of linked profiles, the at least one comment being associated with a specific time during which the at least one comment was created within a duration. For example, a first user creates a first comment at a time position indicated by timeline marker 708. When a user is requested to view playback of media content item 702, the first comment is displayed only at timeline marker 708 during the playback of media content item 702. In one embodiment, the time position at timeline marker 708 is identified by a timestamp associated with comments stored in video table 314 or image table 316 in database 120. In one embodiment, the display of a particular comment continues for a predefined duration, or if an immediately following comment is created before the predefined duration has elapsed, the display of the particular comment continues until the display of the later-created comment.
[0107] In one implementation, in response to detecting a user's selection of a comment creation button 712 as shown in user interface 700, the processor may cause a text input field 714 to be displayed for the user to enter a comment on media content item 702. After the user enters a comment in text input field 714, the user can publish or upload the comment to message transceiver server system 108 by selecting the publish button 716. Comments can be added to, for example,... Figure 8 The comment shown is displayed at 802. In one implementation, a user can enter text of a user's name associated with their profile as part of a comment or as a comment in general. The processor can generate a notification on the client device 102 associated with the mentioned user.
[0108] At operation 606, the processor generates a summary comment option 704 in the user interface 700 based at least in part on the first user's user profile. The summary comment option 704 includes at least one profile icon or avatar corresponding to the linked user profile. Figure 7 As shown, the summary comment option 704 includes two profile icons 710, each profile icon containing an avatar of the user who created the comment for the media content item 702. The profile icon can be an image of the user's silhouette. Once selected by the user, the summary comment option 704 can be expanded to... Figure 8 The comment display 802 is shown. In one implementation, if the summary comment option 704 is generated based on more than a threshold number of comments, the comment display 802 shows only the threshold number of comments at a time. Users can interact with the user interface 800 using gestures (e.g., scrolling up and down) to locate additional comments not shown in the comment display 802. The threshold number of comments can be determined based on several factors, including the allowed length of each comment, the number of comments, etc.
[0109] At operation 608, in response to a request from a user to view media content item 702, the processor causes the playback of media content item 702 and the option to display summary comments 704 to be displayed in user interface 700. In one embodiment, before displaying the playback of media content item 702 and the option to display summary comments 704, user interface 700 may briefly display (e.g., for two seconds) at least one profile icon above each corresponding timeline marker 708 to indicate which user has created a comment at which time position.
[0110] At operation 610, the processor causes at least one comment to be displayed at a specific time or time position indicated by timeline marker 708 during playback of media content item 702. For example... Figure 7As shown, if there is more than one comment during playback, each comment is associated with a timeline marker 708 based on the time position distribution on the progress bar 706. During playback of media content item 702, comments are displayed in the order they were created.
[0111] At operation 612, the processor receives a selection for a first comment from at least one comment. In one implementation, the selection of a comment can be made by selecting a comment from the list displayed at comment display 802, or the selection can be made by selecting comments displayed chronologically during playback of media content item 702. For example, as Figure 8 As shown, users can select the first comment 804 to activate the private messaging interface in order to participate in a private conversation with the creator of the first comment 804 (such as Bella).
[0112] At operation 614, the processor causes the display of a private messaging user interface, such as... Figure 9 The user interface 900 shown. The private messaging user interface 900 may include a quote comment option 902 corresponding to the selected first comment 804 and media content item 702. The private messaging user interface 900 is a one-to-one conversational user interface with the creator of the selected comment 804. Figure 8 As shown, the comment creator is Bella, as indicated by the text display 906 "Reply to Bella's comment". The user Bella is privately conversing with is "Evan", as indicated by name item 910. In this way, all replies to the comment are conducted in a private conversation with the comment creator, and the message sending and receiving server system 108 can avoid generating and displaying a full group of comment posts that might unintentionally cause some users distress, such as embarrassment.
[0113] In one implementation, the processor can generate, for example... Figure 10The user interface 1000 is shown. User interface 1000 includes a summary comment display 1002, a text display 1004, and multiple media content items 1006, 1008, and 1010. Each media content item is associated with a set of profile icons associated with comments created by users linked to by the viewing user. In one embodiment, the profile icons are displayed in order of ranking based on relationship intimacy scores. For example, among two-way linked users (e.g., friends), the viewing user can identify certain users as “close friends.” The identified users can be associated with an intimacy identifier in the corresponding user profile that indicates the relationship intimacy score. The intimacy identifier can be stored in entity diagram 306. The relationship intimacy score can also be determined by other factors, such as the amount of messages and associated content exchanged between users, the amount of time spent in audio or video communication, the amount of media content items exchanged or mentioned between users, or other interactive activities between users on the respective client device 102. The processor ranks the relationship intimacy scores associated with each linked user who created the comment. The profile icon of the user with the highest score can be displayed in the first position in the summary comment display 1002 or the summary comment option 704.
[0114] In one implementation, such as Figure 11 As shown, when a user receives a comment from a linked user who has commented on a media content item, an in-app notification 1102 can be displayed. Notification 1102 includes the linked user's name and profile icon, as well as the title or description of the media content item. In one implementation, if the processor determines that multiple comments have been created by multiple linked users, notification 1102 may only display the profile icon of the linked user with the highest relationship affinity score.
[0115] In one implementation, notification 1102 displays multiple linked users who created comments associated with the media content item. For example, as shown in user interface 1100, the number of linked users or friends associated with the media content item titled "What's it like to adopt a puppy?" is three, including "Amy" and two other comments indicated by the text display "+2".
[0116] In one implementation, for a media content item, the processor determines whether a predetermined time period has elapsed since a previous notification associated with the media content item, corresponding to a second comment, was generated on client device 102. Upon detecting that the predetermined time period has elapsed, the processor generates a subsequent notification on the client device in response to receiving a third comment for the media content item. The predetermined time period represents a cooling-off period, such as three hours. The second comment is associated with a second user profile from a grouped link profile, and the third comment is associated with a third user profile from a grouped link profile.
[0117] In one implementation, if both the second and third comments are generated by the same user in the grouped link profile, and that same user is identified as being associated with an affinity identifier corresponding to a high score, the processor may generate a follow-up notification before a predetermined time period has elapsed.
[0118] Figure 7 A user interface 700 displayed on a client device according to one embodiment is shown. The user interface 700 is displayed on the client device 102 when a user requests to view playback of media content item 702. The user can select summary comment option 704 to activate it. Figure 8 The comments are displayed in the comment display 802. Users can create a comment by selecting the comment creation button 712, enter the comment in the text input field 714, and publish or upload the comment by selecting the publish button 716. The uploaded comment is then displayed in the comment display 802. The user interface 700 includes a progress bar 706 and multiple timeline markers 708. The progress bar 706 indicates the duration for playing back the media content item 702. The multiple timeline markers 708 indicate the time points of the comments included in the create summary comment option 704.
[0119] Figure 8 A user interface 800 displayed on a client device according to one embodiment is shown. The user interface 800 includes a comment display 802. Users can view all comments referenced by the summary comment option 704. Users can also select any comment, such as the first comment 804, to activate a private messaging user interface 900 and participate in a private conversation with the creator of the selected comment.
[0120] Figure 9 A user interface 900 displayed on a client device according to one embodiment is shown. User interface 900 is a private messaging user interface. In response to detecting a user's selection of a first comment 804, the user can individually respond to the creator of the first comment (e.g., Bella). The private messaging user interface 900 may include a quote comment option 902 corresponding to the selected first comment 804 and media content item 702. The quote comment option 902 includes a quote of the selected first comment 804 and an illustrated overview of the media content item 702. The quote comment option 902 is associated with an HTTP link that can redirect the user back to user interface 700 once the link is activated by the user's selection of item 902.
[0121] Figure 10A user interface 1000 displayed on a client device according to one embodiment is shown. The user interface 1000 includes a summary comment display 1002, a text display 1004, and multiple media content items 1006, 1008, and 1010. Each media content item is associated with a set of profile icons associated with comments created by users who have links to them. In one embodiment, each media content item embeds an HTTP link that, once activated by user selection, can direct the user to a media content playback user interface, such as... Figure 7 The user interface 700 shown is shown.
[0122] Figure 11 A user interface 1100 displayed on a client device according to one embodiment is shown. The user interface 1100 includes an "in-app" notification 1102. The notification 1102 includes a profile icon and name linking to the user, the name of the media content creator, and a title or description of the media content item. In one embodiment, the notification 1102 embeds an HTTP link that, once activated by the user's selection, can direct the user to a media content playback user interface associated with the media content item referenced in the notification, such as... Figure 11 The media content item 1104 shown is created by content creator "DEF".
[0123] Machine architecture
[0124] Figure 12This is a schematic representation of machine 1200, within which instructions 1208 (e.g., software, programs, applications, applets, or other executable code) can be executed to cause machine 1200 to perform any or more of the methods discussed herein. For example, instructions 1208 can cause machine 1200 to perform any or more of the methods described herein. Instructions 1208 transform the general, non-programmed machine 1200 into a specific machine 1200 programmed to perform the described and illustrated functions in the described manner. Machine 1200 can operate as a standalone device or can be coupled (e.g., networked) to other machines. In a networked deployment, machine 1200 can 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. Machine 1200 may include, but is not limited to: server computers, client computers, personal computers (PCs), tablet computers, laptop computers, netbooks, set-top boxes (STBs), personal digital assistants (PDAs), entertainment media systems, cellular phones, smartphones, mobile devices, wearable devices (e.g., smartwatches), smart home devices (e.g., smart appliances), other smart devices, web devices, network routers, network switches, network bridges, or any machine capable of sequentially or otherwise executing instructions 1208 specifying actions to be taken by machine 1200. Furthermore, although only a single machine 1200 is shown, the term "machine" should also be considered as a collection of machines that individually or jointly execute instructions 1208 to perform any one or more of the methods discussed herein. For example, machine 1200 may include client device 102 or any of several server devices forming part of message transceiver server system 108. In some examples, machine 1200 may also include both client and server systems, wherein certain operations of a particular method or algorithm are performed on the server side and certain operations of a particular method or algorithm are performed on the client side.
[0125] Machine 1200 may include a processor 1202, a memory 1204, and an input / output (I / O) unit 1238 that can be configured to communicate with each other via a bus 1240. In the example, processor 1202 (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 application-specific integrated circuit (ASIC), a radio frequency integrated circuit (RFIC), another processor, or any suitable combination thereof) may include, for example, processor 1206 and processor 1210 that execute instruction 1208. The term "processor" is intended to include multi-core processors, which may include two or more independent processors (sometimes referred to as "cores") capable of executing instructions simultaneously. Although Figure 12 Multiprocessor 1202 is shown, but machine 1200 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.
[0126] Memory 1204 includes main memory 1212, static memory 1214, and memory cell 1216, which are accessible to processor 1202 via bus 1240. Main memory 1204, static memory 1214, and memory cell 1216 store instructions 1208 that implement any one or more of the methods or functions described herein. Instructions 1208 may also reside wholly or partially in main memory 1212, in static memory 1214, in machine-readable medium 1218 within memory cell 1216, within at least one processor in processor 1202 (e.g., within the processor's cache memory), or in any suitable combination thereof, during execution by machine 1200.
[0127] I / O component 1238 may include various components for receiving input, providing output, generating output, sending information, exchanging information, capturing measurement results, etc. The specific I / O component 1238 included in a particular machine will depend on the type of machine. For example, portable machines such as mobile phones may include touch input devices or other such input mechanisms, while headless server machines are unlikely to include such touch input devices. It will be understood that I / O component 1238 may include... Figure 12Many other components are not shown. In various examples, I / O component 1238 may include user output component 1224 and user input component 1226. User output component 1224 may include visual components (e.g., displays such as plasma display panels (PDPs), light-emitting diode (LED) displays, liquid crystal displays (LCDs), projectors, or cathode ray tube (CRT) displays), acoustic components (e.g., speakers), haptic components (e.g., vibration motors, resistance mechanisms), other signal generators, etc. User input component 1226 may include alphanumeric input components (e.g., keyboards, touchscreens configured to receive alphanumeric input, photoelectric keyboards, or other alphanumeric input components), point-based input components (e.g., mice, touchpads, trackballs, joysticks, motion sensors, or other pointing instruments), haptic input components (e.g., physical buttons, touchscreens that provide position and force for touch or touch gestures, or other haptic input components), audio input components (e.g., microphones), etc.
[0128] In other examples, I / O component 1238 may include biometric component 1228, motion component 1230, environmental component 1232, or positioning component 1234, as well as various other components. For example, biometric component 1228 includes components for detecting expressions (e.g., hand gestures, facial expressions, voice expressions, body posture, or eye tracking), measuring biosignals (e.g., blood pressure, heart rate, body temperature, sweating, or brain waves), and identifying a person (e.g., voice recognition, retinal recognition, facial recognition, fingerprint recognition, or EEG-based recognition). Motion component 1230 includes accelerometer components (e.g., accelerometers), gravity sensor components, and rotation sensor components (e.g., gyroscopes).
[0129] The environmental component 1232 includes, for example: one or more camera devices (with still image / photograph and video capabilities), lighting sensor components (e.g., photometers), temperature sensor components (e.g., one or more thermometers for detecting ambient temperature), humidity sensor components, pressure sensor components (e.g., barometers), acoustic sensor components (e.g., one or more microphones for detecting background noise), proximity sensor components (e.g., infrared sensors for detecting nearby objects), gas sensors (e.g., gas detection sensors for detecting the concentration of hazardous gases or measuring pollutants in the atmosphere for safety purposes), or other components that can provide indications, measurements, or signals corresponding to the surrounding physical environment.
[0130] Regarding the camera device, client device 102 may have a camera device system including, for example, a front-facing camera on the front surface of client device 102 and a rear-facing camera on the rear surface of client device 102. The front-facing camera may be used, for example, to capture still images and videos (e.g., "selfies") of the user of client device 102, which can then be enhanced using the aforementioned enhancement data (e.g., filters). For example, the rear-facing camera may be used to capture still images and videos in a more conventional camera device mode, which are similarly enhanced using the enhancement data. In addition to the front and rear-facing cameras, client device 102 may also include a 360° camera for capturing 360° photos and videos.
[0131] Furthermore, the camera system of the client device 102 may include dual rear cameras (e.g., a main camera and a depth-sensing camera), or even include triple, quadruple, or quintuple rear camera configurations on the front and rear sides of the client device 102. For example, these multi-camera systems may include wide-angle cameras, ultra-wide-angle cameras, telephoto cameras, macro cameras, and depth sensors.
[0132] The positioning component 1234 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 to obtain altitude), an orientation sensor component (e.g., a magnetometer), etc.
[0133] A wide variety of technologies can be used to implement communication. I / O component 1238 also includes communication component 1236, which is operable to couple machine 1200 to network 1220 or device 1222 via a suitable coupling or connection. For example, communication component 1236 may include a network interface component or another suitable device to interface with network 1220. In other examples, communication component 1236 may include wired communication components, wireless communication components, cellular communication components, near field communication (NFC) components, etc. Components (e.g.) (low power consumption) Components and other communication components that provide communication via other means. Device 1222 can be any peripheral device from other machines or various peripheral devices (e.g., a peripheral device coupled via USB).
[0134] Furthermore, the communication component 1236 may detect identifiers or include components operable to detect identifiers. For example, the communication component 1236 may 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 one-dimensional barcodes such as Universal Product Code (UPC) barcodes, multi-dimensional barcodes such as Quick Response (QR) codes, Aztec codes, Data Matrix, Dataglyph, MaxiCode, PDF417, UltraCode, UCC RSS-2D barcodes, and other optical codes) or an acoustic detection component (e.g., a microphone for identifying audio signals from the tag). Additionally, various information can be derived via the communication component 1236, such as location via Internet Protocol (IP) geolocation, etc. The location of signal triangulation, the location of NFC beacon signals that can be detected to indicate a specific location, etc.
[0135] Various memories (e.g., main memory 1212, static memory 1214, and the memory of processor 1202) and storage units 1216 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., instruction 1208) cause various operations to implement the disclosed examples when executed by processor 1202.
[0136] Instructions 1208 can be sent or received over network 1220 via a network interface device (e.g., a network interface component included in communication component 1236), using a transmission medium and employing any of several known transmission protocols (e.g., Hypertext Transfer Protocol (HTTP)). Similarly, instructions 1208 can be sent or received via a transmission medium through a coupling (e.g., peer-to-peer coupling) to device 1222.
[0137] Software Architecture
[0138] Figure 13This is a block diagram 1300 illustrating a software architecture 1304 that can be installed on any or more devices described herein. The software architecture 1304 is supported by hardware such as a machine 1302 including a processor 1320, memory 1326, and I / O components 1338. In this example, the software architecture 1304 can be conceptualized as a stack of layers, where each layer provides specific functionality. The software architecture 1304 includes layers such as an operating system 1312, libraries 1310, frameworks 1308, and applications 1306. Operationally, application 1306 activates API call 1350 via the software stack and receives message 1352 in response to API call 1350.
[0139] Operating system 1312 manages hardware resources and provides public services. Operating system 1312 includes, for example, a kernel 1314, services 1316, and drivers 1322. Kernel 1314 acts as an abstraction layer between the hardware layer and other software layers. For example, kernel 1314 provides memory management, processor management (e.g., scheduling), component management, network and security settings, and other functions. Service 1316 can provide other public services to other software layers. Driver 1322 is responsible for controlling or interfacing with the underlying hardware. For example, driver 1322 may include a display driver, a camera driver, etc. or Low-power drivers, flash drives, serial communication drivers (e.g., USB drives), Drivers, audio drivers, power management drivers, etc.
[0140] Library 1310 provides common low-level infrastructure used by application 1306. Library 1310 may include system library 1318 (e.g., the C standard library), which provides functions such as memory allocation, string manipulation, and mathematical functions. Additionally, library 1310 may include API library 1324, such as media libraries (e.g., libraries for supporting the rendering 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, Joint Picture Experts Group (JPEG or JPG), or Portable Web Graphics (PNG)), graphics libraries (e.g., the OpenGL framework for rendering graphic content on a display in two-dimensional (2D) and three-dimensional (3D) formats), database libraries (e.g., SQLite, which provides various relational database functions), web libraries (e.g., WebKit, which provides web browsing functionality), and so on. Library 1310 may also include a wide variety of other libraries 1328 to provide many other APIs to application 1306.
[0141] Framework 1308 provides common high-level infrastructure for use by application 1306. For example, framework 1308 provides various graphical user interface (GUI) functions, advanced resource management, and advanced location services. Framework 1308 can provide a wide range of other APIs that can be used by application 1306, some of which may be specific to a particular operating system or platform.
[0142] In the example, application 1306 may include home application 1336, contact application 1330, browser application 1332, book reader application 1334, location application 1342, media application 1344, messaging application 1346, game application 1348, and other applications in a broad category such as third-party application 1340. Application 1306 is a program that performs the functions defined in the program. One or more applications 1306 can be created using various programming languages, such as object-oriented programming languages (e.g., Objective-C, Java, or C++) or procedural programming languages (e.g., C or assembly language). In a particular example, third-party application 1340 (e.g., using Android by an entity other than the vendor of a particular platform). TM or iOS TM Applications developed using a Software Development Kit (SDK) can be used on platforms such as iOS. TM ANDROID TM , Mobile software running on the phone's mobile operating system or another mobile operating system. In this example, a third-party application 1340 may call API calls 1350 provided by the operating system 1312 to facilitate the functions described herein.
[0143] Processing components
[0144] Turn now Figure 14 The diagram illustrates a processing environment 1400, which includes processor 1402, processor 1406, and processor 1408 (e.g., GPU, CPU, or a combination thereof).
[0145] Processor 1402 is shown coupled to power supply 1404 and includes (permanently configured or temporarily instantiated) modules, namely collection management component 1410 and short-lived timer component 1412. Collection management component 1410 is operable to generate media content items and comments, manage the playback of media content items and the display of associated comments, and generate a private messaging user interface in response to detecting a user's selection of comments. Short-lived timer component 1412 is operable to manage a predetermined duration of media content playback and a predefined duration for displaying comments during media content playback. As shown, processor 1402 is communicatively coupled to both processor 1406 and processor 1408.
[0146] Glossary
[0147] "Carrier signal" refers to any intangible medium capable of storing, encoding, or carrying instructions to be executed by a machine, and includes digital or analog communication signals or other intangible media to facilitate the communication of such instructions. Instructions can be sent or received over a network using a transmission medium via a network interface device.
[0148] "Client device" refers to any machine that interfaces with a communication network to obtain resources from one or more server systems or other client devices. Client devices can be, but are not limited to, mobile phones, desktop computers, laptop computers, portable digital assistants (PDAs), smartphones, tablet computers, ultrabooks, netbooks, laptop computers, multiprocessor systems, microprocessor-based or programmable consumer electronics, game consoles, set-top boxes, or any other communication device that a user can use to access the network.
[0149] "Communication network" refers to one or more parts of a network, which can be an ad hoc network, intranet, extranet, virtual private network (VPN), local area network (LAN), wireless LAN (WLAN), wide area network (WAN), wireless WAN (WWAN), metropolitan area network (MAN), the Internet, a part of the Internet, a part of the Public Switched Telephone Network (PSTN), a POTS (Plain Old-Style Telephone Service) network, a cellular telephone network, a wireless network, etc. A network, other types of networks, or a combination of two or more such networks. For example, a network or part of a network may include a wireless network or a cellular network, and the coupling may be a Code Division Multiple Access (CDMA) connection, a Global System for Mobile Communications (GSM) connection, or other types of cellular or wireless coupling. In this example, the coupling can implement any data transmission technology of various types, such as Single Carrier Radio Transmission (1xRTT), Evolved Data Optimization (EVDO), General Packet Radio Service (GPRS), Enhanced Data Rate Evolution of GSM (EDGE), the 3rd Generation Partnership Project (3GPP) including 3G, fourth-generation wireless (4G) networks, Universal Mobile Telecommunications System (UMTS), High-Speed Packet Access (HSPA), Global Microwave Access Interoperability (WiMAX), Long Term Evolution (LTE) standards, other data transmission technologies defined by various standards setting organizations, other long-distance protocols, or other data transmission technologies.
[0150] A “component” refers to a device, physical entity, or logic having boundaries defined by functional or subroutine calls, branch points, APIs, or other technologies that provide partitioning or modularity for a particular processing or control function. A component can be combined with other components via its interface to perform machine processing. A component can be an encapsulated functional hardware unit designed for use with other components and can be part of a program that typically performs a specific function within a related function. A component can constitute a software component (e.g., code embodied on a machine-readable medium) or a hardware component. A “hardware component” is a tangible unit capable of performing certain operations and can be configured or arranged in some physical manner. In various example implementations, one or more computer systems (e.g., standalone computer systems, client computer systems, or server computer systems) or one or more hardware components (e.g., processors or processor groups) of a computer system can be configured by software (e.g., an application or application portion) to perform certain operations described herein. Hardware components can also be implemented mechanically, electronically, or in any suitable combination thereof. For example, a hardware component can include a dedicated circuit system or logic permanently configured to perform certain operations. Hardware components can be dedicated processors, such as field-programmable gate arrays (FPGAs) or application-specific integrated circuits (ASICs). Hardware components can also include programmable logic or circuitry systems temporarily configured by software to perform certain operations. For example, a hardware component may include software executed by a general-purpose processor or other programmable processor. Once configured by such software, the hardware component becomes a specific machine (or a specific part of a machine) uniquely tailored to perform the configured function, and no longer a general-purpose processor. It will be understood that the implementation of hardware components can be determined, for cost and time considerations, whether mechanically implemented in dedicated and permanently configured circuitry or in temporarily configured (e.g., software-configured) circuitry. Accordingly, the phrase “hardware component” (or “hardware-implemented component”) should be understood to include tangible entities, i.e., entities physically constructed, permanently configured (e.g., hardwired), or temporarily configured (e.g., programmed) to operate or perform certain operations described herein. Considering the implementation where hardware components are temporarily configured (e.g., programmed), it is not necessary to configure or instantiate each hardware component at any given time. For example, in cases where the hardware components include a general-purpose processor that can be configured by software to become a dedicated processor, this general-purpose processor can be configured as different dedicated processors (e.g., including different hardware components) at different times. The software accordingly configures one or more specific processors to constitute a specific hardware component, for example, at one moment and as different hardware components at different times. Hardware components can provide information to and receive information from other hardware components. Therefore, the described hardware components can be considered communicatively coupled.In the presence of multiple hardware components, communication can be achieved through signal transmission between or among two or more hardware components (e.g., via appropriate circuitry and buses). In embodiments where multiple hardware components are configured or instantiated at different times, such communication between hardware components can be achieved, for example, by storing information in a memory structure accessed by the multiple hardware components and retrieving information from that memory structure. For example, a hardware component can perform an operation and store the output of that operation in a memory device communicatively coupled to it. Other hardware components can then access the memory device at a subsequent time to retrieve the stored output and process it. Hardware components can also initiate communication with input or output devices and can operate on resources (e.g., information collection). The various operations of the example methods described herein can be performed at least in part by one or more processors that are temporarily configured (e.g., by software) or permanently configured to perform the relevant operations. Whether temporarily or permanently configured, such processors can constitute processor-implemented components that operate to perform one or more operations or functions described herein. As used herein, "processor-implemented component" refers to a hardware component implemented using one or more processors. Similarly, the methods described herein can be implemented at least in part by processors, where a particular processor or one or more processors are examples of hardware. For example, at least some operations of the methods can be performed by one or more processors 1406 or processor-implemented components. Furthermore, the one or more processors can also be configured to support the execution of related operations in a “cloud computing” environment or to operate as “Software as a Service” (SaaS). For example, at least some operations can be performed by a group of computers (as an example of a machine including processors), where these operations are accessible via a network (e.g., the Internet) and via one or more suitable interfaces (e.g., APIs). The execution of some operations can be distributed among processors, not residing within a single machine, but deployed across multiple machines. In some example implementations, the processor or processor-implemented component may reside in a single geographic location (e.g., in a home environment, office environment, or server cluster). In other example implementations, the processor or processor-implemented component may be distributed across several geographic locations.
[0151] "Computer-readable storage medium" refers to both machine-readable storage media and transmission media. Therefore, these terms encompass both storage devices / media and carrier / modulated data signals. The terms "machine-readable medium," "computer-readable medium," and "device-readable medium" refer to the same thing and may be used interchangeably in this disclosure.
[0152] A "brief message" is a message that is accessible for a limited period of time. Brief messages can be text, images, videos, etc. The access time for a brief message can be set by the message sender. Alternatively, the access time can be a default setting or a setting specified by the recipient. Regardless of the setting method, the message is temporary.
[0153] "Machine storage medium" refers to one or more storage devices and media (e.g., centralized or distributed databases, and associated caches and servers) that store executable instructions, routines, and data. Therefore, this term should be considered to include, but is not limited to, solid-state memory and optical and magnetic media, including memory internal or external to the processor. Specific examples of machine storage media, computer storage media, and / or device storage media include: non-volatile memory, including, for example, semiconductor memory devices such as erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), FPGAs, and flash memory devices; disks, such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks. The terms "machine storage medium," "device storage medium," and "computer storage medium" refer to the same thing and are used interchangeably in this disclosure. The terms "machine storage medium," "computer storage medium," and "device storage medium" expressly exclude carrier waves, modulated data signals, and other such media, at least some of which are covered by the term "signal medium."
[0154] "Non-transitory computer-readable storage medium" refers to a tangible medium capable of storing, encoding, or carrying instructions that can be executed by a machine.
[0155] "Signal medium" means any intangible medium capable of storing, encoding, or carrying instructions executable by a machine, and includes digital or analog communication signals or other intangible media that facilitate the communication of software or data. The term "signal medium" should be considered to include any form of modulated data signal, carrier wave, etc. The term "modulated data signal" means a signal whose characteristics are set or altered in a manner that encodes information in the signal. The terms "transmission medium" and "signal medium" mean the same thing and may be used interchangeably in this disclosure.
Claims
1. A method comprising: A request to view a media content item is received from a client device. The media content item is associated with a set of comments and has a duration for playback. Each comment in the set of comments is created within the duration. The request is associated with a viewer profile, which is associated with a set of connection profiles in an entity graph. Determine at least one comment from the set of comments was created at a specific time within the said duration; A single concise summary comment option is generated based on a set of user profiles. When displayed, the single concise summary comment option includes at least one profile icon corresponding to a corresponding user profile in the set of user profiles, display of at least one name associated with the at least one profile icon, and display of a value indicating the number of users who created comments at a specific time but were not represented by the at least one profile icon. In response to the request to view the media content item, the option to display playback of the media content item and the single concise summary comment is enabled; as well as During playback of the media content item, the single concise summary comment option is displayed above the progress bar at a timestamp associated with the specific time when the at least one comment was created.
2. The method according to claim 1, further comprising: In response to detecting a user's selection of the single concise summary comment option, the at least one comment associated with the corresponding user profile is displayed.
3. The method according to claim 1, further comprising: Receive a selection of a first comment from the at least one comment, the first comment being associated with a first user profile; as well as This enables the display of a private messaging user interface associated with the user profile associated with the first user profile, the private messaging user interface including a quote comment option corresponding to the first comment and the media content item.
4. The method according to claim 1, wherein, The at least one profile icon is displayed in order of ranking based on a score of relationship intimacy.
5. The method according to claim 1, wherein, The media content item is generated by a specified user corresponding to a specified user profile, which does not exist in the set of linked profiles.
6. The method according to claim 5, wherein, The specified user profile is associated with more than a predetermined threshold of follower user profiles in the entity graph.
7. The method according to claim 5, wherein, The specified user is a third-party publisher.
8. The method according to claim 1, further comprising: Determine whether a predetermined time period has elapsed since a previous notification associated with the media content item was generated on the client device, the previous notification corresponding to the second comment; as well as A follow-up notification is generated on the client device in response to receiving a third comment on the media content item.
9. The method according to claim 8, wherein, The second comment is associated with a second user profile in the set of linked profiles, and the third comment is associated with a third user profile in the set of linked profiles.
10. The method according to claim 8, wherein, The scheduled time period is three hours.
11. A system comprising: One or more processors; as well as A non-transitory computer-readable storage medium including instructions that, when executed by the one or more processors, cause the one or more processors to perform operations including: A request to view a media content item is received from a client device. The media content item is associated with a set of comments and has a duration for playback. Each comment in the set of comments is created within the duration. The request is associated with a viewer profile, which is associated with a set of connection profiles in an entity graph. Determine at least one comment from the set of comments was created at a specific time within the said duration; A single concise summary comment option is generated based on a set of user profiles. When displayed, the single concise summary comment option includes at least one profile icon corresponding to a corresponding user profile in the set of user profiles, display of at least one name associated with the at least one profile icon, and display of a value indicating the number of users who created comments at a specific time but were not represented by the at least one profile icon. In response to the request to view the media content item, the option to display playback of the media content item and the single concise summary comment is enabled; as well as During playback of the media content item, the single concise summary comment option is displayed above the progress bar at a timestamp associated with the specific time when the at least one comment was created.
12. The system according to claim 11, wherein, The one or more processors also perform the following operations: In response to detecting a user's selection of the single concise summary comment option, the at least one comment associated with the corresponding user profile is displayed.
13. The system according to claim 11, wherein, The one or more processors also perform the following operations: Receive a selection of a first comment from the at least one comment, the first comment being associated with a first user profile; as well as This enables the display of a private messaging user interface associated with the user profile associated with the first user profile, the private messaging user interface including a quote comment option corresponding to the first comment and the media content item.
14. The system according to claim 11, wherein, The at least one profile icon is displayed in order of ranking based on a score of relationship intimacy.
15. The system according to claim 11, wherein, The media content item is generated by a specified user corresponding to a specified user profile, which does not exist in the set of linked profiles.
16. The system according to claim 15, wherein, The specified user profile is associated with more than a predetermined threshold of follower user profiles in the entity graph.
17. The system according to claim 15, wherein, The specified user is a third-party publisher.
18. The system according to claim 11, wherein, The one or more processors also perform the following operations: Determine whether a predetermined time period has elapsed since a previous notification associated with the media content item was generated on the client device, the previous notification corresponding to the second comment; as well as A follow-up notification is generated on the client device in response to receiving a third comment on the media content item.
19. The system according to claim 18, wherein, The second comment is associated with a second user profile in the set of linked profiles, and the third comment is associated with a third user profile in the set of linked profiles.
20. A machine-readable non-transitory storage medium having instruction data, the instruction data being executable by a machine to cause the machine to perform operations including: A request to view a media content item is received from a client device. The media content item is associated with a set of comments and has a duration for playback. Each comment in the set of comments is created within the duration. The request is associated with a viewer profile, which is associated with a set of connection profiles in an entity graph. Determine at least one comment from the set of comments was created at a specific time within the said duration; A single concise summary comment option is generated based on a set of user profiles. When displayed, the single concise summary comment option includes at least one profile icon corresponding to a corresponding user profile in the set of user profiles, display of at least one name associated with the at least one profile icon, and display of a value indicating the number of users who created comments at a specific time but were not represented by the at least one profile icon. In response to the request to view the media content item, the option to display playback of the media content item and the single concise summary comment is enabled; as well as During playback of the media content item, the single concise summary comment option is displayed above the progress bar at a timestamp associated with the specific time when the at least one comment was created.
Citation Information
Patent Citations
Providing video presentation commentary
CN108965956A
Video comment content sending method and device, and storage medium
CN109151605A
Scaling notifications of events in a social networking system
US20110161987A1
Ranking and filtering comments based on audience
US20170139920A1