System and method for communicating between mobile device and smart television

By generating identifiers and signature URLs, receiving and storing media, and transcoding and transmission based on the characteristics of receiving devices, the problem of difficult to efficiently share and present visual media among different device types is solved, and high-quality media sharing and presentation effects are achieved.

CN120226364APending Publication Date: 2025-06-27VIZIO INC
View PDF 0 Cites 1 Cited by

Patent Information

Application Number
CN202380079905.X
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2022-11-17
Filing Date
2023-11-16
Publication Date
2025-06-27

AI Technical Summary

Technical Problem

The prior art is difficult to efficiently share and present visual media among different device types, especially in digital television systems, resulting in a degradation of media quality or the inability of the device to render non-native media efficiently.

Method used

By generating an identifier associated with the media and a signed unified resource locator, receiving and storing the media, transcoding the media based on the characteristics of the receiving device, and transmitting the transcoded media to the receiving device, ensuring that it is presented in the best form and format.

Benefits of technology

High-quality visual media sharing and presentation between different device types is achieved, ensuring media is presented in the best form, improving user experience and device rendering capabilities.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120226364A_ABST
    Figure CN120226364A_ABST
Patent Text Reader

Abstract

Social media communications may be shared between different device types, such as mobile devices and televisions. New social media communications may be generated by identifying user profiles and media to be shared. A signed uniform resource locator (URL) and unique identifier may be generated for the new social media communication to enable sharing of media with another device. Media may be uploaded and processed using the signed URL. For example, the media may be transcoded into a format that is based on processing and / or display capabilities of the device associated with the user profile. The transcoded media may be stored in association with the signed URL. Notifications corresponding to the social media communications may be transmitted to devices associated with the user profile to enable access to the media.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Cross - Reference to Related Applications

[0002] This patent application claims the benefit of priority of U.S. Provisional Patent Application No. 63 / 426,332, filed on November 17, 2022, which is hereby incorporated by reference in its entirety for all purposes. Technical Field

[0003] The present disclosure generally relates to cross - platform data sharing technologies, and more particularly to a cross - platform data sharing and logistics system for distributing and managing visual media on digital television systems. Background Art

[0004] Computing devices can communicate with different devices using a variety of different protocols based on the capabilities of the computing device and other devices. For example, a computing device can communicate with other devices via the Internet, wireless communication frequencies (such as Wi - Fi or Bluetooth), peripherals via a Universal Serial Bus (USB) interface, etc. The complexity of the communication and functions available to a computing device can be based on the processing power and / or software of the computing device. Devices not designed for general - purpose processing tasks lack the ability to communicate fully with specific devices or networks. For example, a television can have processing components specifically configured to receive, process, and display video, but lacks the ability to exchange communication with a specific network type (such as a network frequently accessed by other devices) for presenting and exchanging media. Summary of the Invention

[0005] Methods for communicating across different device types are described herein. The method can include: receiving a request to transmit a communication to a media device, the request including an identification of media; generating an identifier associated with the media and a signed Uniform Resource Locator; receiving the media via the signed Uniform Resource Locator, wherein the media is stored in association with the signed Uniform Resource Locator; transcoding the media based on the characteristics of the media device; and transmitting the communication to the media device, wherein the communication includes the transcoded media.

[0006] Systems for presenting communications across different device types are described herein. The system includes: one or more processors and a non - transitory computer - readable storage medium storing instructions that, when executed by the one or more processors, cause the one or more processors to perform any of the methods described above.

[0007] The non - transitory computer - readable media described herein can store instructions that, when executed by one or more processors, cause the one or more processors to perform any of the methods described above.

[0008] These illustrative examples are not intended to limit or define the present disclosure, but rather to aid in understanding the present disclosure. Additional embodiments are discussed in the specific embodiments and further description is provided there. BRIEF DESCRIPTION OF THE DRAWINGS

[0009] The features, embodiments, and advantages of the present disclosure will be better understood when the following description is read with reference to the accompanying drawings.

[0010] Figure 1 is a high-level block diagram of the disclosed system in accordance with aspects of the present disclosure.

[0011] Figure 2 is a functional-level block diagram of the disclosed system in accordance with aspects of the present disclosure.

[0012] Figure 3 is a state diagram of an example process for uploading and processing content steps in accordance with aspects of the present disclosure.

[0013] Figure 4 is a state diagram of an example process for obtaining messages and media from a smart TV in accordance with aspects of the present disclosure.

[0014] Figures 5A to 5B is a state diagram of an example process for managing friend requests in accordance with aspects of the present disclosure.

[0015] Figure 6 is a state diagram of an example process for managing friend status and updates in accordance with aspects of the present disclosure.

[0016] Figure 7 is a system state flow diagram of an example process for posting a message (gram) in accordance with aspects of the present disclosure.

[0017] Figure 8 Shows three example user interfaces presented by a media sharing application of a mobile device in accordance with aspects of the present disclosure.

[0018] Figure 9 Shows two example user interfaces presented by a media sharing application of a media device in accordance with aspects of the present disclosure.

[0019] Figure 10 Shows a flowchart of an example process for transferring data between a mobile device and a display device in accordance with aspects of the present disclosure.

[0020] Figure 11 Shows an example computing device in accordance with aspects of the present disclosure. DETAILED DESCRIPTION

[0021] This document describes methods and systems for a media sharing system that is configured to share media between different device types in an optimized media format. Some device types may be configured to present a specific type of media, such as a television being configured to present video. A device may not be configured to present other types of media, or may present other types of media in a lower quality. A television can process non-video media (e.g., text, images, audio, etc.) in a processing pipeline separate from the video media, which may result in the non-video media being presented in a sub-optimal form and / or format (e.g., low resolution, undesirable aspect ratio, undesirable size, etc.). For example, regardless of the original resolution at which an image was captured, the image is typically processed at a lower resolution, resulting in poor display quality. The media sharing system described in this document can transcode media according to the processing capabilities of the corresponding device for presentation on different device types, enabling native presentation of non-native media. For example, the media sharing system can encapsulate a static image in an MP4 or other compatible video container represented by a single I-frame for presentation by a display device. The display device can then display the image as a video with a single frame. The image can be presented by the display device until it is replaced by other content.

[0022] The media sharing system enables high-quality video and image sharing between connected 'friend' accounts for display on a television or home theater display (collectively referred to hereinafter as "television" or "TV"). Media can be uploaded from a user's mobile device, and notifications can be sent to the user's contacts.

[0023] The media sharing system is configured to connect users by sending video or photos from a mobile device to a contact's television. The video or photo can be presented using the television's high-quality video display. The video or photo can be presented using high dynamic range (HDR) or ultra-high definition (UHD) video or static images.

[0024] In some instances, a media sharing system can be facilitated by a mobile application (e.g., executed on a mobile device such as a smartphone, tablet, etc.), a display device application executed on a display device, and one or more servers (e.g., cloud services, etc.). One or more servers can be used to exchange communications including content (e.g., video, audio, text, etc.) between the mobile application and the display device application. One or more servers can provide transcoding and / or security services to the mobile application and the display device application. For example, a mobile device (e.g., a smartphone, tablet, etc.) can transmit a communication to the server, the communication including a user identifier (e.g., which can be used to identify the receiving device, such as the device executing the mobile device application or the display device application, etc.) and a payload (e.g., the content to be presented by the device executing the mobile device application or the display device application, etc.). One or more servers can transcode the communication into the native form or format of the receiving device (e.g., depending on the processing capabilities of the receiving device, etc.) so that the communication can be displayed in a specific form or format. One or more servers can store the transcoded communication in a memory and transmit a notification indicating the existence of the transcoded communication to the receiving device. Upon receiving a request for the transcoded communication, one or more servers can transmit the transcoded communication to the receiving device for presentation.

[0025] A media sharing application can generate and store user account information. The user account can be associated with the following: user information (e.g., the user's name or the user's username, user interests, demographic information, device information, etc.), a user identifier, an account identifier, the identification of the user's contacts (e.g., friends, family members, colleagues, etc.), historical communications generated by and / or addressed to the user, the identification of one or more devices associated with the user, information associated with one or more devices (e.g., device type, processing capabilities, etc.), combinations thereof, etc. In some instances, the user account can also be generated and / or stored in the memory of the device executing the display device application and / or the mobile application.

[0026] A user can generate one or more new communications for one or more of the user's contacts by selecting the content to be shared, providing text to be presented with the selected content, and providing the identification of one or more contacts (e.g., name, username, user identifier, account identifier, etc.). For example, a user can take a picture and select the contacts with whom to share the picture. The user can also provide a message to be displayed with the picture. The media sharing system can use the identification of one or more contacts to identify the user accounts associated with each of the one or more contacts. The media sharing system can transmit a notification to a receiving device (e.g., via a mobile application or a display device application executed on the receiving device). In some instances, a notification can be generated when a new communication is received at a mobile device or a display device. In other instances, the mobile device and / or the display device can receive a notification of the new communication and request access to the new communication in response to receiving the notification. The notification can be presented on a portion of the display of the mobile device or the display device. The user can select the new communication for display, causing the new communication to be presented by the display of the mobile device and / or the display device. The new communication can be presented in a portion of the display of the mobile device and / or the display device, or presented using approximately the entire display (e.g., "full screen", etc.).

[0027] The content can be processed by the media sharing system so that the content can be presented in a specific form or format based on the device type of the receiving device and / or the processing capabilities of the receiving device. Processing the content can include converting the content into a different format (e.g., different file types, containers, etc.), changing the form or format of the content (e.g., aspect ratio, size, resolution, frame rate, color correction, upscaling, etc.), combinations thereof, etc. The media sharing system can process the content based on the processing information stored in the user account associated with the receiving device. The processing information can include, but is not limited to, the device type associated with the receiving device, the processing capabilities of the receiving device, the hardware and / or software installed on the receiving device, user preferences, combinations thereof, etc. For example, if the receiving device is a television (or a device that may not be configured to present a single image), the media sharing system can encapsulate the content into a video-based container so that the picture is presented as a single video frame rather than an image, enabling the television to present the content in higher quality.

[0028] A media sharing system can protect the rendering of content on a receiving device using encryption, time limits, combinations thereof, etc. For example, the media sharing system can protect the content such that the receiving device provides access credentials, such as a username and / or password, personal identification number, voice key, combinations thereof, etc., to render the media. In another example, the shared content can be time-sensitive or display-sensitive such that the shared content can be deleted after a predetermined time interval has elapsed since it was displayed. Alternatively or additionally, the shared content can be deleted after a predetermined time interval regardless of whether the shared content has been displayed. In some instances, the media sharing system can use both access credentials and time limits to protect the shared content. A user can adjust the shared content (add and remove content), adjust the content viewable by other users, restrict content by age, prevent the display of flagged content, report inappropriate content, etc.

[0029] In an illustrative example, a computing device can receive a request to transmit a communication from a sending device to a receiving device. The request can include an identification of media to be rendered by the receiving device. The computing device can be a component of a service that enables communication between different device types. For example, the computing device can operate within a cloud network. The computing device can operate between a sending device (e.g., another computing device, mobile device, media device, any other processing device capable of communicating over a network, etc.) and a receiving device (e.g., another computing device, mobile device, media device, any other processing device capable of communicating over a network, etc.). The computing device can be configured to process the communication transmitted between the sending device and the receiving device such that the receiving device can efficiently and in a high-quality form and / or format render the communication (and the content included therein). For example, the sending device can be a mobile device and the receiving device can be a media device. The computing device can receive a communication request from the mobile device to share content (e.g., images, videos, audio clips, text, etc.) with the media device.

[0030] In some instances, the sending device can be authenticated before the request is transmitted to the computing device. For example, the sending device can transmit an identification of a user account of a media sharing application executed on the sending device, as well as access credentials that authenticate the user identity of the sending device. In some instances, the sending device can request a token (e.g., a JWT token, an object, etc.) from an authentication service. The sending device and / or its user can be authenticated by the authentication service using, for example, access credentials, cryptographic keys, digital signatures, tokens, personally identifiable information, etc. Once authenticated, the authentication service can transmit a token associated with the sending device and / or its user (e.g., also referred to as a sending token). The sending device can provide the token to the computing device to identify the sending device as an authenticated device. In some instances, the token can expire to cause the sending device to repeat the authentication process of the authentication service.

[0031] The sending device can transmit a token and a request for communication to indicate that the sending device and / or the request has been authenticated. Then, the computing device can use the information in the request to identify the receiving device. The receiving device can be a device associated with the same user (e.g., a media device operated by the same user who operates the sending device), or the receiving device can be associated with a different user who is a contact of the user operating the sending device. The computing device can use the name of the receiving user, the user identifier corresponding to the receiving user, the identifier of the user account, the device identifier, the device address (e.g., IP address, MAC address, etc.) to identify the user account associated with the request. The computing device can perform a user account search to identify the receiving device associated with the user account.

[0032] Then, the computing device can determine characteristics based on the device information associated with the computing device. The device information can include the identification of the receiving device, the address of the device (e.g., IP address, MAC address, URL, memory address, etc.), the device type (such as but not limited to smartphone, tablet, computing device, server, TV, monitor, etc.), the processing capacity (e.g., processing core, processing speed, the amount of volatile and / or non-volatile memory, the presence of a graphics processing unit (GPU), the identification of the number of GPU cores, the graphics processing unit memory or video memory, the identification of the maximum resolution of the display, the refresh rate of the display, the response time of the display, etc.), the identification of the connected peripheral devices (e.g., camera, microphone, keyboard, etc.), the identification software installed on the device (e.g., media sharing application, operating system, etc.), user preferences (e.g., presentation preferences, etc.), combinations thereof, etc.

[0033] The computing device can generate an identifier associated with the media and a signed uniform resource locator (URL). The computing device can generate one or more identifiers associated with the communication to enable tracking of the communication and authentication of access rights to the communication. In some instances, the computing device can generate a first identifier corresponding to the communication and a second identifier corresponding to the content to be included in the communication. If the content includes two or more media instances, identifiers can be generated for each instance of the media.

[0034] The signed URL can be used by the sending device to upload the content to be included in the communication. Alternatively, the computing device can transmit the identification of a network address, a memory address, etc. to the sending device to enable the sending device to upload the content.

[0035] A computing device may receive content via a signed uniform resource locator. The content may be stored in association with the signed uniform resource locator. For example, the content may be stored in a memory space defined based on the signed uniform resource locator. Alternatively or additionally, the content may be stored in association with a communication identifier (e.g., a first identifier) and / or one or more second identifiers associated with the content. For example, the first identifier and / or one or more second identifiers may be translated into a memory address that can be used to store the content.

[0036] A computing device may transcode content based on the characteristics of the receiving device. The computing device may include one or more transcoders, where each transcoder is configured to transcode different input content and / or generate different output content. For example, a first transcoder may be configured to transcode an image file into a video by encapsulating the image into a video-based container and setting a flag in the image file header such that the image file is recognized as an I-frame. The image file may be presented as an adaptive bitrate stream including a single video frame. The first transcoder or a second transcoder may be configured to modify the single video frame such that the single video frame can be presented, thereby leveraging the processing capabilities of the receiving device. For example, the first transcoder or transcoder may increase the resolution of the single video frame, adjust the aspect ratio, adjust the frame rate (for content including more than one video frame), perform color correction or other image processing (e.g., increasing or decreasing sharpness, changing depth of field, etc.), and so on. The computing device may select a transcoder to transcode the content based on the receiving device, the content, and / or user preferences.

[0037] A computing device may define one or more fields in the transcoded image file to further define the presentation of the content. For example, the computing device may define access restrictions that may require the receiving device to input access credentials (e.g., a personal identification number, a username and password, a voice key, a cryptographic key, etc.) to present the transcoded content, and / or define the expiration period of the content. For example, the computing device may define an expiration period such that the content is deleted (or prevented from being presented) after a predetermined time interval. The predetermined time interval may be configured to start when the content is received at the receiving device or when the receiving device first presents the content. The one or more fields may also define presentation characteristics such as, but not limited to, the presentation size, the presentation layout, a thumbnail of the content, the presentation location of the transcoded content or the thumbnail, and so on.

[0038] A computing device can transmit a communication to a receiving device. In some instances, the communication can be transmitted by transmitting a signed URL to the receiving device such that the receiving device can use the URL to download the communication. In other instances, the communication can be transmitted via a web-based communication protocol or other network protocol. The communication can include transcoded content and an identification of a user account associated with the sending device and / or its user. The transcoded content can be presented by the receiving device according to presentation characteristics.

[0039] Figure 1 FIG. 4 is a high-level block diagram of an exemplary system in accordance with aspects of the present disclosure. Mobile device 104 can share content (e.g., audio, video, images, text, combinations thereof, etc.) with different device types such as other mobile devices, televisions, computers, etc. Mobile device 104 can generate a new communication via a media sharing application executed on mobile device 104. The communication can include the content and an identification of a user or user account with whom the communication is to be shared. Mobile device 104 can transmit the communication (via the media sharing application) to cloud network 110 using an application programming interface (API 108). API 108 can be accessed within mobile device 104 (e.g., via the media sharing application, etc.), accessed by mobile device 104 via a remote server (shown as being located between mobile device 104 and cloud network 110), and / or accessed within cloud network 110. API 108 can enable direct access to the functionality of cloud network 110. In some instances, API 108 can enable the communication to be transformed into a form or format that can be processed by cloud network 110.

[0040] In some instances, mobile device 104 can transmit the communication to the cloud network via a signed URL. Mobile device 104 can request a signed URL for the new communication from cloud network 110, and in response, cloud network 110 can transmit the signed URL to mobile device 104. The mobile device can use the signed URL to transmit the communication.

[0041] The cloud network 110 may include one or more distributed devices configured to provide network services, transcoding, communication routing, load balancing, etc. The cloud network 110 may include a cloud service 112 that manages the operation of the cloud network 110 and the communication routing between devices. The cloud service 112 may access an account 116 to identify a user account associated with a user to receive a communication. The cloud service 112 may identify device information associated with the user account. The device information may include information associated with a device capable of presenting a communication to a user of the user account. The device information may include an identification of the device (e.g., such as a media device 128, another mobile device, a computing device, etc.), an address of the device (e.g., an Internet Protocol (IP) address, a MAC address, a URL, a memory address, etc.), a device type (such as but not limited to a smartphone, a tablet, a computing device, a server, a television, a monitor, etc.), processing capabilities (e.g., processing cores, processing speed, amount of volatile and / or non-volatile memory, presence of a Graphics Processing Unit (GPU), identification of the number of GPU cores, Graphics Processing Unit memory or video memory, identification of the maximum resolution of a display, refresh rate of a display, response time of a display, etc.), an identification of connected peripheral devices (e.g., such as a camera, a microphone, a keyboard, etc.), identification software installed on the device (e.g., such as a media sharing application, an operating system, etc.), user preferences (e.g., presentation preferences, etc.), combinations thereof, etc.

[0042] The cloud service 112 may pass the content of the communication and the device information to a transcoder 118. The transcoder 118 may transcode the content into a higher quality version of the content based on the device type, the processing capabilities of the device, and / or user preferences. For example, the content may include an image addressed to the media device 128. The media device 128 (e.g., a television) may not be configured to efficiently render the image or render the image in as high a quality as a video. The transcoder 118 may transcode the image by converting the image to the highest resolution that can be presented by the media device 128 (thereby maintaining the image quality) and encapsulating the image into a video-based container (e.g., MP4, etc.). By encapsulating the image into a video-based container, the media device 128 may render the image as a single video frame. The media device 128 renders the image as if the image were a video (e.g., as a single video frame), such that the media device 128 can process the image more efficiently (e.g., using a video processing pipeline, etc.) and in higher quality than the case where the media device 128 renders the image as an image. The transcoder 118 may pass the transcoded content for storage by a Content Delivery Network (CDN 120) for distribution to devices. The CDN 120 may store the transcoded content until a request for the transcoded content is received.

[0043] Alternatively, cloud service 112 may not transcode the content until a device associated with the user account addressed by the communication requests the content. For example, upon receiving a notification of content associated with a user account, media device 128 may request the content. The request may include an access token (e.g., such as JavaScript Object Notation (JSON), Web Token (JWT), an object, etc.), access credentials (e.g., username and password, personal identification number, voice key, etc.), an identification of the device, device information, user preferences, etc. Cloud service 112 may use the information included in the request to determine a transcoding scheme to customize the presentation of the content for the media device (e.g., minimum or maximum resolution, frame rate, aspect ratio, color correction, etc.).

[0044] Cloud service 112 may register a communication associated with a user account with notification service 132. In some instances, cloud service 112 may register a communication associated with a user account in parallel with transcoding the content of the communication at 116. In other instances, cloud service 112 may register a communication associated with a user account before delivering the content of the communication to transcoder 118. In other instances, cloud service 112 may register a communication associated with a user account once the transcoded content has been delivered to CDN 120. When registering a communication with notification service 132, notification service 132 may transmit a notification to a device associated with the user account. For example, a device may transmit a request for outstanding notifications to cloud service 112 (via a media sharing application). The request may include an identification of the device, an instance of the media sharing application, and / or an identification of the user account. The device may transmit requests for notifications at fixed intervals, upon receiving user input, upon detecting an event (e.g., upon powering on, upon executing the media sharing application, etc.), a combination thereof, etc. Cloud service 112 may receive the request, identify the user account using the request, retrieve outstanding notifications from notification service 132 (e.g., notifications for a user that have not yet been transmitted to the user account, notifications for a user that have not yet been presented to the user account, etc.), and transmit the outstanding notifications to the device. Alternatively or additionally, cloud service 112 may transmit outstanding notifications to each device associated with the user account (via a media sharing application executed on the device) via other API 124, as push notifications, communications (e.g., such as text, email, direct communication, instant message, etc.), etc. The notifications may be pop-up communications that are typically displayed at the bottom of the screen to alert the user of new events on the media sharing application or media device.

[0045] The media device 128 can receive notifications of new communications via the notification service 132 of the cloud network 110. The notification can include an access token that can be used by the media device 128 to access the transcoded content corresponding to the communication identified by the notification. Alternatively or additionally, the media device 128 can request a token from the CDN 120 or the cloud network 110. The media device 128 can transmit a request for the transcoded content, where the request can include the token. In some instances, a signed URL can be used to transmit the request. The cloud network 110 can verify the access token (e.g., checksum, compare the access token with another access token, etc.). If the access token can be verified, the CDN 120 can transmit the transcoded content to the media device 128 (e.g., using other APIs 124).

[0046] The media device 128 can communicate with the cloud network 110 via other APIs 124. The other APIs 124 can include one or more application programming interfaces configured to enable access to the services of the cloud network 110. The other APIs 124 can be the same as or different from the API 108 (e.g., configured for different device types). For example, the API 108 can be configured to enable the mobile device 104 (and / or computing device, server, etc.) to communicate with the cloud network 110, such as to perform the functions of the cloud network 110, and the other APIs 124 can be configured to enable the media device 128 (e.g., display device, television, etc.) to communicate with the cloud network 110. Like the API 108, the API 124 can be accessed within the media device 128 (e.g., via a media sharing application, etc.), accessed by the media device 128 through a remote server (as shown, located between the media device 128 and the cloud network 110), and / or accessed within the cloud network 110.

[0047] Once the media device 128 receives the transcoded content, the media device can start presenting the transcoded content. In some instances, the transcoded content can be protected using access credentials such as but not limited to username and password, personal identification number, voice key, combination, etc. In these instances, the media device 128 can request the access credentials before presenting the content. In some instances, the media device 128 can limit the presentation of the transcoded content to a specific device, limit it to a specific time interval (e.g., as a time interval after receiving the notification, a time interval after presenting the transcoded content, etc.), combinations thereof, etc.

[0048] Figure 2It is a functional block diagram of a media sharing system according to aspects of the present disclosure. A mobile device may include an operating system that manages specific operations of the mobile device, such as phone functions, contacts, messaging, cameras, memory, etc. The mobile device may execute a mobile app (e.g., a media sharing app) to enable content transfer with different devices. The mobile app may include one or more standard development kits (e.g., SDKs), which include executable instructions accessible to the mobile app and enable the mobile app to perform the functions of the media sharing app. For example, the first SDK may access the services of the cloud network via the container service of the cloud network. The container service manages access to the containers (e.g., discrete environments, etc.) of the cloud network. The container service may also manage the instantiation, update, and termination of containers for workload management, load balancing, etc.

[0049] The cloud network may include a container service, one or more databases, a video media service (e.g., a transcoder), a CDN, etc. The cloud network may access additional services that may be provided inside the cloud network and / or by one or more remote servers. The additional services include a user account service (e.g., storing data associated with a user account, etc.), a notification service (e.g., notification service 132), an identity service (e.g., configured to identify users, user accounts, content, transcoders, etc.).

[0050] The mobile device may transmit media to a TV for presentation. The TV may include an operating system that implements TV functions, one or more operation libraries, a user interface, etc. The TV may also include one or more SDKs that enable the TV to access the cloud network, receive communications from the mobile device, transmit communications, secure communications, etc.

[0051] In some instances, a proxy service may be established to secure some of these operations. The SDK may be used to access the services of the proxy service. For example, the SDK may be used to ping the proxy service to generate a token (e.g., when generating or receiving a new communication), verify the token to authenticate a request, etc.

[0052] For example, the mobile app of the mobile device may request a signed URL to access cloud processing that can accept the content to be shared. The mobile app may utilize the cloud upload service to transmit a gram (e.g., a communication including text and / or one or more images, videos, audio clips, etc.). After completing the upload process, the cloud upload service may then initiate a transcoding service to convert the content of the gram into a compatible media format for TV presentation. The transcoding service for sharing video content may format or create an adaptive bitrate stream of a predetermined quality (e.g., the best quality of the TV, a preferred quality based on user input, etc.) for display on the destination TV.

[0053] Figure 3 is a state diagram of an example process of uploading and processing content according to aspects of the present disclosure. Some media devices may process some media in different ways, which may result in some media being presented at a lower quality than other media. For example, when an image is processed by some smart TVs capable of displaying 4K or UHD video using a still image path (API), these TVs are restricted to only displaying 1080p still images. Figure 3 An example process of uploading and processing content can process a still image as a video by passing the still image through a video transcoding process and encoding the still image in a video program stream protocol (e.g., such as an MP4 file, etc.). Before sending the image from the network to the TV, the image file can be identified as an I-frame by setting certain data flags in the file header. When the modified image file is received on the TV, although the still image is just a single frame, the image file will be processed as video media. The TV can render the image file as video media at the highest resolution available to the TV in the same way as video media. In Figure 3 The example process of uploading and processing content is shown in the sequence diagram of

[0054] Figure 4 is a state diagram of an example process of obtaining messages and media according to aspects of the present disclosure. A media sharing application can transmit and receive media from other mobile devices, computing devices, media devices (e.g., TVs, etc.). In some instances, the media sharing application can enable the media received by a mobile device to be presented at another device (e.g., such as another mobile device, computing device, media device, etc.). For example, the media sharing application can receive information associated with a communication and present the content on a display device. Figure 4 The obtaining and playing process shown in Figure 4 shows the operation of a media sharing system, where the media sharing application executes a call to obtain a list of grams that have been transmitted or received by the media sharing application operating on a mobile device. The identification of a gram can be received, which includes communication content and / or a thumbnail (a compressed-sized image) of the content. The media sharing application operating on a media device can receive information associated with the gram and present the content. In

[0055] Figures 5A to 5BA state diagram of an example process for managing contact requests in accordance with aspects of the present disclosure. A media sharing application can manage contacts associated with a user of the media sharing application. The contacts can be friends, colleagues, family members, users, etc. associated with the user. The process can be initiated from a media sharing application executing on a mobile device of a first user (e.g., a mobile sender) requesting to add a second user (mobile recipient) as a contact of the first user. The media sharing application can communicate with a communication manager that executes within a remote device (e.g., a server, a cloud service such as cloud service 112, etc.) to provide information of the media sharing system to the media sharing application, such as but not limited to user information, user accounts, user status, etc. The process can include generating a link (e.g., a URL, a quick response (QR) code, etc.) that can be transmitted to the mobile recipient. If the mobile recipient does not have the media sharing application and / or an account, executing the link can enable the mobile recipient to download the media sharing application and / or create an account. The mobile recipient can then accept or cancel the contact request. If the contact request is accepted, a notification indicating that the mobile recipient has accepted the contact request can be transmitted to the mobile sender. In some instances, the mobile sender can then confirm the contact request, thereby transmitting a notification to the mobile recipient.

[0056] Figure 6 A state diagram of an example process for managing contact status and updates in accordance with aspects of the present disclosure. An example process for managing contact status and updates can be executed by a media sharing application to retrieve information associated with a contact. The media sharing application can transmit requests to a communication manager that manages the contacts of a user, such as adding a contact, removing a contact, blocking a contact, etc. For example, a first user can transmit a status request and an identifier of a second user or a second user account to the communication manager. The communication manager can return a blocked or unblocked response indicating that the second user is blocked or unblocked for the first user. If blocked, the first user can be prevented from transmitting communications to the second user, and the second user can be prevented from transmitting communications to the first user. The communication manager can determine that a communication is associated with a blocked user and discard the communication to prevent further processing of the communication. The first user can transmit a block request to block the second user or an unblock request to unblock the second user. The communication manager can store an indication of the status of the second user (stored as blocked or unblocked) in the user account associated with the first user. An abuse service can operate to determine whether the block / unblock system is being abused (e.g., too many requests, duplicate requests, etc.), which can affect system or user performance, etc.

[0057] In some instances, a media device may use a third-party user authentication service to generate a guest account. The guest account may be a credential-less account that does not use a login process. A token (e.g., such as a JWT) may be requested from the authentication service. When a refresh token is called, a new token that authorizes the guest account may be generated. The guest account may not be linked to a mobile guest account or a credentialed account. The guest account may receive communications from other user accounts. In some instances, the guest account may be temporary and expire after a certain time interval.

[0058] Figure 7 is a system state flow diagram of an example process for publishing a communication (gram) according to aspects of the present disclosure. A communication may be published (e.g., transmitted) to another user or device of a media sharing system. A media sharing application of a mobile device may transmit a call to the media sharing system via an API endpoint. The request may be authenticated (e.g., using a token, access credentials, etc.). If the authentication fails, an error message may be returned to the media sharing application. If the authentication passes, the media sharing application may generate a communication identifier and a content identifier for any content to be transmitted with the communication. The media sharing system may perform a call to a media service API to generate a signed upload URL (e.g., getUploadURL). If the media service API does not return a response (e.g., or returns an empty response, an undefined response, etc.), the media service API may return an error to the media sharing application of the mobile device.

[0059] If the media service API returns a URL, the process continues, where the content and the communication identifier are inserted into a new communication. In some instances, the content may be transcoded (e.g., transcoded into a different form or format, file type, etc.) before being inserted. The new communication may be stored in a communication database. The database may be used to populate the media sharing application of the mobile device with communications transmitted from and / or received by the media sharing application. Old communications and communications removed by the media sharing application may be removed from the database to prevent these communications from being repopulated within the media sharing application. If the communication is not successfully stored, an error may be returned to the media sharing application of the mobile device. If the communication is successfully stored, the process continues, where the response may be formatted for presentation by the media sharing application of the mobile device. The response may be formatted based on default rules, user preferences, the mobile device, the communication, the content, etc. For example, the response may include a thumbnail of the content.

[0060] Figure 8Shows three example user interfaces presented by a media sharing application of a mobile device in accordance with aspects of the present disclosure. User interface 804 depicts a start screen providing information to start operating the media sharing application. User interface 804 includes one or more tabs, such as gram (e.g., communication) and friends (e.g., contact list). User interface 804 may include a button that can be selected to start generating a new gram. When the button is selected, user interface 808 may be presented, which provides a presentation of selectable content (e.g., such as video, photo, audio clip, etc.) and a list of users who will receive the gram. When content and one or more users are selected, user interface 816 may be presented. User interface 816 depicts a gram that has been transmitted. The depicted gram may be deleted after a predetermined time interval. User interface 816 may also include a button for starting to generate a new gram.

[0061] Figure 9 Shows two example user interfaces presented by a media sharing application of a media device in accordance with aspects of the present disclosure. The media device may execute the media sharing application to present content received from a remote device. The media sharing application of the media device may be configured to present the content in a form or format based on the device type of the media device, the processing capabilities of the media device, and / or user preferences. A gram received by the media sharing application of the media device may be configured to be presented in the highest quality (e.g., highest resolution, frame rate, etc.) that can be presented by the media device.

[0062] The content of the gram may be presented in any format. For example, the content may be presented in a side-by-side view (user interface 904) or in a full-screen view (user interface 908). In some instances, the gram or its content may be presented in thumbnail form, where thumbnails of one or more grams may be presented within the same user interface. The user interface of the media sharing application of the media device may include icons that can be selected to present a gram that has been received and icons that can be selected to manage contacts (e.g., view contacts, search for contacts, add contacts, remove contacts, block or unblock contacts, etc.). When presenting the content of the gram, the user interface may present the properties of the gram, such as the geographical location associated with the content, the identity of the user or user account that transmitted the gram, the time interval of validity of the gram (the time interval before the gram will be removed from the media device), etc.

[0063] Figure 10A flowchart showing an example process for transferring data between a mobile device and a display device in accordance with aspects of the present disclosure. At block 1004, a computing device may receive a request to transfer a communication to a media device. The request may include an identification of the media. The computing device may be a component of a service that enables communication between different device types. For example, the computing device may operate within a cloud network (e.g., a cloud network 110 such as Figure 1 ). The computing device may operate between a sending device (e.g., another computing device, a mobile device, a media device, any other processing device capable of communicating over a network, etc.) and a receiving device (e.g., another computing device, a mobile device, a media device, any other processing device capable of communicating over a network, etc.). The computing device may be configured to process the communication transferred between the sending device and the receiving device such that the receiving device can efficiently and in a high-quality form and / or format present the communication (and the content included therein). For example, the sending device may be a mobile device (e.g., a mobile device 104 such as Figure 1 ), and the receiving device may be a media device (e.g., a media device 128 such as Figure 1 ). The computing device may receive a communication request from the mobile device to share content (e.g., an image, a video, an audio clip, text, etc.) with the media device.

[0064] In some instances, the mobile device may be authenticated before the request is transferred to the computing device. For example, the mobile device may transfer an identification of a user account of a media sharing application executed on the mobile device, as well as access credentials for authenticating the user identity of the mobile device. In some instances, the mobile device may request a token (e.g., a JWT token, an object, etc.) from an authentication service. The mobile device and / or its user may be authenticated by the authentication service using, for example, access credentials, cryptographic keys, digital signatures, tokens, personally identifiable information, etc. Once authenticated, the authentication service may transfer a token associated with the mobile device and / or its user (e.g., also referred to as a sending token). The mobile device may provide the token to the computing device to identify the mobile device as an authenticated device. In some instances, the token may expire to cause the mobile device to repeat the authentication process of the authentication service.

[0065] A mobile device can transmit a token and a request for communication to indicate that the mobile device and / or the request has been authenticated. Then, the computing device can use the information in the request to identify the media device. The media device can be a device associated with the same user (e.g., a media device operated by the same user who operates the mobile device), or the media device can be associated with a different user who is a contact of the user operating the mobile device. The computing device can use the name of the receiving user, the user identifier corresponding to the receiving user, the identifier of the user account, the device identifier, the device address (e.g., IP address, MAC address, etc.) to identify the user account associated with the request. The computing device can perform a user account search to identify the media device associated with the user account.

[0066] Then, the computing device can determine characteristics based on the device information associated with the computing device. The device information can include the identification of the media device, the address of the device (e.g., IP address, MAC address, URL, memory address, etc.), the device type (such as but not limited to smartphones, tablets, computing devices, servers, TVs, monitors, etc.), the processing capacity (e.g., processing cores, processing speed, the amount of volatile and / or non-volatile memory, the presence of a graphics processing unit (GPU), the identification of the number of GPU cores, the graphics processing unit memory or video memory, the identification of the maximum resolution of the display, the refresh rate of the display, the response time of the display, etc.), the identification of the connected peripheral devices (e.g., cameras, microphones, keyboards, etc.), the identification software installed on the device (e.g., media sharing applications, operating systems, etc.), user preferences (e.g., presentation preferences, etc.), combinations thereof, etc.

[0067] At block 1008, the computing device can generate an identifier associated with the media and a signed uniform resource locator (URL). The computing device can generate one or more identifiers associated with the communication to enable tracking of the communication and authentication of access rights to the communication. In some instances, the computing device can generate a first identifier corresponding to the communication and a second identifier corresponding to the content to be included in the communication. If the content includes two or more media instances, an identifier can be generated for each instance of the media.

[0068] The signed URL can be used by the mobile device to upload the content to be included in the communication. Alternatively, the computing device can transmit the identification of a network address, a memory address, etc. to the mobile device to enable the mobile device to upload the content.

[0069] At block 1012, the computing device can receive content via a signed uniform resource locator. The content can be stored in association with the signed uniform resource locator. For example, the content can be stored in a memory space defined based on the signed uniform resource locator. Alternatively or additionally, the content can be stored in association with a communication identifier (e.g., a first identifier) and / or one or more second identifiers associated with the content. For example, the first identifier and / or one or more second identifiers can be translated into a memory address that can be used to store the content.

[0070] At block 1016, the computing device can transcode the content based on the characteristics of the media device. The computing device can include one or more transcoders, where each transcoder is configured to transcode different input content and / or generate different output content. For example, a first transcoder can be configured to transcode an image file into a video by encapsulating the image into a video-based container and setting a flag in the image file header to cause the image file to be recognized as an I-frame. The image file can be presented as an adaptive bitrate stream that includes a single video frame. The first transcoder or a second transcoder can be configured to modify the single video frame such that the single video frame can be presented, thereby leveraging the processing capabilities of the media device. For example, the first transcoder or transcoder can increase the resolution of the single video frame, adjust the aspect ratio, adjust the frame rate (for content that includes more than one video frame), perform color correction or other image processing (e.g., increasing or decreasing sharpness, changing depth of field, etc.), and so on. The computing device can select a transcoder to transcode the content based on the media device, the content, and / or user preferences.

[0071] The computing device can define one or more fields in the transcoded image file to further define the presentation of the content. For example, the computing device can define access restrictions that may require the media device to input access credentials (e.g., a personal identification number, a username and password, a voice key, a cryptographic key, etc.) to present the transcoded content, and / or define the expiration date of the content. For example, the computing device can define an expiration date such that the content is deleted (or prevented from being presented) after a predetermined time interval. The predetermined time interval can be configured to start when the content is received at the media device or when the media device first presents the content. The one or more fields can also define presentation characteristics such as, but not limited to, presentation size, presentation layout, a thumbnail of the content, the presentation location of the transcoded content or the thumbnail, and so on.

[0072] At block 1020, the computing device may transmit a communication to the media device. In some instances, the communication may be transmitted by transmitting a signed URL to the media device such that the media device can use the URL to download the communication. In other instances, the communication may be transmitted via a web-based communication protocol or other network protocol. The communication may include transcoded content and an identification of a user account associated with the mobile device and / or its user. The transcoded content may be presented by the media device according to presentation characteristics.

[0073] The following includes example features of a media sharing system. The media sharing system may include more or fewer features than those described.

[0074] Backend API: The backend API may be responsible for authenticating incoming API requests to the backend services of the media sharing system, such as but not limited to retrieving a directly signed upload URL, listing owned videos, listing videos with access rights, revoking shared videos with others, etc. The backend API may interact with a database, a media service API, and an identity service API.

[0075] Authentication service: Authentication may be performed using a signed token from a third-party authentication service. The token may enable the mobile device and / or the media device to perform authentication.

[0076] Technology stack: The backend API may be a monolithic codebase with different routes and can call account and media service helper APIs. In some instances, the backend API may not be a microservices architecture to prevent codebase fragmentation.

[0077] Database: The database may store the identification of user accounts, the identification of relationships between user accounts, the identification of access relationships of accounts to media, to media status, combinations thereof, etc. A unique user identifier (or, when not available, a unique device identifier) may be used as the partition key for the database.

[0078] Media service API: The media service may provide APIs for deleting videos and obtaining a directly signed upload URL.

[0079] Identity service API: The API may enable access to list friends connected to the current account, remove friends, and add friends to the account, etc.

[0080] Media ingestion and conversion, uploading media: Signed direct upload URLs can enable upload access to cloud service buckets. These URLs can be valid multiple times until the expiration date and time. API endpoints behind the backend API can provide signed URLs for uploading media. A unique identifier can be assigned to the media uploaded to the client along with the direct upload URL. The upload status can be stored for resumable uploads. Thumbnails can be created. Uploading to the cloud service bucket can trigger processing and conversion by the cloud service media conversion process.

[0081] The backend API can use lambda functions to manage the expiration of content. The media sharing system can use transaction locks on the status of content in the database to prevent race conditions.

[0082] Mobile App: The mobile application can include tabs with a first tab for gram. The mobile application can be used to request contacts, remove contacts, block and / or unblock contacts, share content (e.g., with other mobile devices and / or media devices, etc.). Shared content can be transmitted to the API via a direct upload link. In some instances, the mobile app can convert an image to Joint Photographic Experts Group (JPEG) or other image format before transmitting the content to the server.

[0083] Web Page: The web page associated with the media sharing system can direct users to download the mobile application. If the contact request link is accessed outside a mobile device, the web page can be accessed. If the contact request link is accessed from a mobile device, the friend request link can deep link into the mobile application or take the user to the app store to download the mobile application.

[0084] Operational Infrastructure: Features of the display device application and the mobile application can be added and / or removed to optimize resource utilization locally (e.g., at the display device and mobile device respectively) and remotely (e.g., servers, cloud networks, etc.). In some instances, a 'getConfiguration' API backend call can be executed to enable or disable individual features. Logging can also be selectively increased or decreased based on each mobile device or display device via a remote configuration API call.

[0085] In some instances, the backend API can be hosted in a cloud service-based container.

[0086] Metric Collection: Metrics and log collection on the mobile application, display device application, and backend API can be stored centrally or in a distributed database. Metrics and logs can be searched via a local interface or a web-based interface (e.g., from any location).

[0087] Figure 11Illustrates an example computing device in accordance with aspects of the present disclosure. For example, computing device 1100 may implement any of the systems or methods described herein. In some instances, computing device 1100 may be a component of or included within a media device. Components of computing device 1100 are shown as being in electrical communication with each other using connection component 1106, such as a bus. Example computing device 1100 includes a processor 1104 (e.g., CPU, processor, etc.) and a connection component 1106 (e.g., such as a bus, etc.) that is configured to couple components of computing device 1100, such as but not limited to memory 1120, read only memory (ROM) 1118, random access memory (RAM) 1116, and / or storage device 1108, to processor 1104.

[0088] Computing device 1100 may include a cache 1102 of high-speed memory that is directly connected to, adjacent to, or integrated within processor 1104. Computing device 1100 may copy data from memory 1120 and / or storage device 1108 to cache 1102 for faster access by processor 1104. In this way, cache 1102 may provide a performance boost that avoids latency while processor 1104 waits for data. Alternatively, processor 1104 may directly access data from memory 1120, ROM 1118, RAM 1116, and / or storage device 1108. Memory 1120 may include various types of homogeneous or heterogeneous memory (e.g., such as but not limited to magnetic memory, optical memory, solid state memory, etc.).

[0089] Storage device 1108 may include one or more non-transitory computer-readable media, such as volatile and / or non-volatile memory. The non-transitory computer-readable media may store instructions and / or data accessible by computing device 1100. The non-transitory computer-readable media may include but not limited to magnetic tape cartridges, hard disk drives (HDDs), flash memory, solid state memory devices, digital versatile disks, cassette tapes, optical disks, random access memory (RAM), read only memory (ROM), combinations thereof, and the like.

[0090] The storage device 1108 may store one or more services executable by the processor 1104 and / or other electronic hardware, such as service 1 1110, service 2 1112, and service 3 1114. The one or more services include instructions executable by the processor 1104 for: performing operations such as any of the techniques, steps, processes, blocks, and / or operations described herein; controlling the operation of devices communicating with the computing device 1100; controlling the operation of the processor 1104 and / or any dedicated processors; combinations thereof; and so on. The processor 1104 may be a system-on-chip (SOC) that includes one or more cores or processors, buses, memories, clocks, memory controllers, caches, and other processor components. A multi-core processor may be symmetric or asymmetric.

[0091] The computing device 1100 may include one or more input devices 1122, which may represent any number of input mechanisms, such as microphones, touch-sensitive screens for graphical input, keyboards, mice, motion input, voice, media devices, sensors, combinations thereof, and so on. The computing device 1100 may include one or more output devices 1124 that output data to a user. Such output devices 1124 may include, but are not limited to, media devices, projectors, televisions, speakers, combinations thereof, and so on. In some instances, a multimodal computing device may enable a user to provide multiple types of input to communicate with the computing device 1100. The communication interface 1126 may be configured to manage user input and computing device output. The communication interface 1126 may also be configured to manage communication with remote devices (e.g., establish connections, receive / send communications, etc.) via one or more communication protocols and / or via one or more communication media (e.g., wired, wireless, etc.).

[0092] The computing device 1100 is not limited to the components as Figure 11 shown. The computing device 1100 may include other components not shown and / or the shown components may be omitted.

[0093] The following examples correspond to various interchangeable embodiments of the present disclosure. Any reference to a series of examples should be understood as a separate reference to each of those examples (e.g., "Examples 1 to 4" should be understood as "Example 1, 2, 3, or 4").

[0094] Example 1 is a system, including: one or more processors; and a non-transitory machine-readable storage medium storing instructions that, when executed by the one or more processors, cause the one or more processors to perform operations including the following: receiving a request to transmit a communication to a media device, the request including an identifier of media; generating an identifier associated with the media and a signed uniform resource locator; receiving the media via the signed uniform resource locator, wherein the media is stored associated with the signed uniform resource locator; transcoding the media based on characteristics of the media device; and transmitting the communication to the media device, wherein the communication includes the transcoded media.

[0095] Example 2 is the system of any one of Example 1 and Examples 3 to 7, wherein the operations further include: determining that an amount of time associated with the request to transmit the communication exceeds a threshold; and deleting the media, the signed uniform resource locator, and the identifier associated with the media.

[0096] Example 3 is the system of any one of Examples 1 to 2 and Examples 4 to 7, wherein the media includes one or more of text, audio, image, or video.

[0097] Example 4 is the system of any one of Examples 1 to 3 and Examples 5 to 7, wherein the media is transcoded into an adaptive bitrate stream.

[0098] Example 5 is the system of any one of Examples 1 to 4 and Examples 6 to 7, wherein the media includes an image, and wherein the media is transcoded by encoding the image into a video program stream protocol and setting a flag in a header of the video program stream protocol to identify the image as an I-frame.

[0099] Example 6 is the system of any one of Examples 1 to 5 and 7, wherein the media is transcoded into the highest resolution that can be presented by the media device.

[0100] Example 7 is the system of any one of Examples 1 to 6, wherein the operations further include: compressing a portion of the media to generate a size-reduced representation of the media, wherein the size-reduced representation of the media is configured to be presented by the media device as a representation of the media; and storing the size-reduced representation of the media associated with the media.

[0101] Example 8 is a method that includes: receiving a request to transmit a communication to a media device, the request including an identification of media; generating an identifier associated with the media and a signed uniform resource locator; receiving the media via the signed uniform resource locator, wherein the media is stored associated with the signed uniform resource locator; transcoding the media based on characteristics of the media device; and transmitting the communication to the media device, wherein the communication includes the transcoded media.

[0102] Example 9 is the method of any one of Example 8 and Examples 10 to 14, further including: determining that an amount of time associated with the request to transmit the communication exceeds a threshold; and deleting the media, the signed uniform resource locator, and the identifier associated with the media.

[0103] Example 10 is the method of any one of Examples 8 to 9 and Examples 11 to 14, wherein the media includes one or more of text, audio, image, or video.

[0104] Example 11 is the method of any one of Examples 8 to 10 and Examples 12 to 14, wherein the media is transcoded into an adaptive bitrate stream.

[0105] Example 12 is the method of any one of Examples 8 to 11 and Examples 13 to 14, wherein the media includes an image, and wherein the media is transcoded by encoding the image into a video program stream protocol and setting a flag in a header of the video program stream protocol to identify the image as an I-frame.

[0106] Example 13 is the method of any one of Examples 8 to 12 and 14, wherein the media is transcoded into the highest resolution that can be presented by the media device.

[0107] Example 14 is the method of any one of Examples 8 to 13, further including: compressing a portion of the media to generate a size-reduced representation of the media, wherein the size-reduced representation of the media is configured to be presented by the media device as a representation of the media; and storing the size-reduced representation of the media associated with the media.

[0108] Example 15 is a non-transitory machine-readable storage medium storing instructions that, when executed by the one or more processors, cause the one or more processors to perform operations including: receiving a request to transmit a communication to a media device, the request including an identifier of media; generating an identifier associated with the media and a signed uniform resource locator; receiving the media via the signed uniform resource locator, wherein the media is stored associated with the signed uniform resource locator; transcoding the media based on characteristics of the media device; and transmitting the communication to the media device, wherein the communication includes the transcoded media.

[0109] Example 16 is the non-transitory machine-readable storage medium of any one of Example 15 and Examples 17 to 20, wherein the operations further include: determining that an amount of time associated with the request to transmit the communication exceeds a threshold; and deleting the media, the signed uniform resource locator, and the identifier associated with the media.

[0110] Example 17 is the non-transitory machine-readable storage medium of any one of Examples 15 to 16 and Examples 18 to 20, wherein the media includes one or more of text, audio, image, or video.

[0111] Example 18 is the non-transitory machine-readable storage medium of any one of Examples 15 to 18 and Examples 19 to 20, wherein the media is transcoded into an adaptive bitrate stream.

[0112] Example 19 is the non-transitory machine-readable storage medium of any one of Examples 15 to 18 and 20, wherein the media includes an image, and wherein the media is transcoded by encoding the image into a video program stream protocol and setting a flag in a header of the video program stream protocol to identify the image as an I-frame.

[0113] Example 20 is the non-transitory machine-readable storage medium of any one of Examples 15 to 19, wherein the operations further include: compressing a portion of the media to generate a size-reduced representation of the media, wherein the size-reduced representation of the media is configured to be presented by the media device as a representation of the media; and storing the size-reduced representation of the media associated with the media.

[0114] The term "computer-readable medium" includes, but is not limited to, portable or non-portable storage devices, optical storage devices, and various other media capable of storing, containing, or carrying instructions (or sets of instructions) and / or data. The computer-readable medium can include non-transitory media, where data can be stored in a form other than a carrier wave and / or an electronic signal. Examples of non-transitory media can include, but are not limited to, magnetic disks or tapes, optical storage media (such as compact discs (CDs) or digital versatile discs (DVDs)), flash memory, memory or memory devices. Code and / or machine-executable instructions can be stored on the computer-readable medium, which can represent procedures, functions, subroutines, programs, routines, subroutines, modules, software packages, classes, or any combination of instructions, data structures, or program statements. Code segments can be joined to another code segment or a hardware circuit by passing and / or receiving information, data, arguments, parameters, or memory contents. Information, arguments, parameters, data, etc. can be passed, forwarded, or transmitted via any suitable means including memory sharing, message passing, token passing, network transmission, etc.

[0115] Some portions of this specification describe example operations in terms of algorithms and symbolic representations of information manipulation. Although these operations are described functionally, computationally, or logically, they can be implemented by a computer program, an equivalent circuit, microcode, etc. Additionally, without loss of generality, the arrangement of operations can be referred to as a module. The described operations and their associated modules can be embodied in software, firmware, hardware, or any combination thereof.

[0116] Any of the steps, operations, or processes described herein can be performed or implemented by one or more hardware or software modules, either alone or in combination with other devices. In some examples, a software module can be implemented using a computer-readable medium storing computer program code, which can be executed by a processor to perform any or all of the described steps, operations, or processes.

[0117] Some examples can relate to an apparatus or system for performing any or all of the described steps, operations, or processes. The apparatus or system can be specially constructed for the desired purpose, and / or it can include a general-purpose computing device selectively activated or reconfigured by a computer program stored in the memory of a computing device. The memory can be or include a non-transitory tangible computer-readable storage medium, or it can be or include any type of medium suitable for storing electronic instructions that can be coupled to a bus. Additionally, any computing system mentioned in this specification can include a single processor or multiple processors.

[0118] Although the subject matter has been described in detail with respect to specific examples, it should be understood that those skilled in the art can readily generate alterations, variations, and equivalents of such examples upon learning the foregoing. Numerous specific details are set forth herein to provide a thorough understanding of the claimed subject matter. However, those skilled in the art will understand that the claimed subject matter may be practiced without these specific details. In other instances, well-known methods, devices, or systems have not been described in detail so as not to obscure the claimed subject matter. Accordingly, this disclosure is presented for purposes of illustration and not limitation, and does not exclude the inclusion of such modifications, variations, and / or additions to the subject matter that would be apparent to a person of ordinary skill in the art.

[0119] For clarity of explanation, in some instances, the present disclosure may be presented as including separate functional blocks, including functional blocks having devices, device components, steps or routines in methods embodied as software or a combination of hardware and software. In addition to the functional blocks shown in the figures and / or described herein, additional functional blocks may be used. For example, circuits, systems, networks, processes, and other components may be shown as components in block diagram form so as not to obscure the embodiments with unnecessary detail. In other instances, well-known circuits, processes, algorithms, structures, and techniques may be shown without unnecessary detail to avoid obscuring the embodiments.

[0120] Separate examples may be described herein as a process or method, which may be depicted as a flowchart, a flow diagram, a data flow diagram, a structure diagram, or a block diagram. Although a flowchart may describe operations as a sequential process, many of these operations may be performed in parallel or concurrently. In addition, the order of the operations may be rearranged. A process terminates upon completion of its operations, but may have additional steps not shown. A process may correspond to a method, a function, a procedure, a subroutine, a subprogram, etc. When a process corresponds to a function, its termination may correspond to the function returning to the calling function or the main function.

[0121] The processes and methods according to the above examples may be implemented using computer-executable instructions stored on or otherwise obtainable from a computer-readable medium. Such instructions may include, for example, instructions and data that cause or otherwise configure a general-purpose computer, a special-purpose computer, or a processing device to perform a certain function or a group of functions. The portion of the computer resources used may be accessed via a network. The computer-executable instructions may be, for example, binary instructions, intermediate format instructions (such as assembly language), firmware, source code, etc.

[0122] Devices implementing the methods and systems described herein may include hardware, software, firmware, middleware, microcode, hardware description languages, or any combination thereof, and may take any of a variety of form factors. When implemented in software, firmware, middleware, or microcode, the program code or code segments for performing the necessary tasks (e.g., a computer program product) may be stored in a computer-readable or machine-readable medium. The program code may be executed by a processor, which may include one or more processors, such as but not limited to one or more digital signal processors (DSPs), general-purpose microprocessors, application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), or other equivalent integrated or discrete logic circuitry. Such a processor may be configured to perform any of the techniques described in this disclosure. The processor may be a microprocessor; a conventional processor, controller, microcontroller, state machine, etc. The processor may also be implemented as a combination of computing components (e.g., a combination of a DSP and a microprocessor, multiple microprocessors, one or more microprocessors coupled with a DSP core, or any other such configuration). Thus, as used herein, the term "processor" may refer to any of the foregoing structures, any combination of the foregoing structures, or any other structure or device suitable for implementing the techniques described herein. The functions described herein may also be embodied in peripheral devices or add-on cards. By way of further example, such functions may also be implemented on a circuit board among different chips or on different processes executed in a single device.

[0123] In the foregoing description, aspects of the present disclosure have been described with reference to specific examples of the present disclosure, but those skilled in the art will recognize that the present disclosure is not limited thereto. Thus, while illustrative examples of the present disclosure have been described in detail herein, it should be understood that the inventive concept may be embodied and employed in other ways, and the appended claims are intended to be construed to include such variations. The various features and aspects of the foregoing disclosure may be used alone or in any combination. Further, the examples may be utilized in any number of environments and applications beyond those described herein without departing from the broader spirit and scope of the present disclosure. Accordingly, the present disclosure and the figures are to be regarded as illustrative rather than restrictive.

[0124] The various illustrative logical blocks, modules, circuits, and algorithmic steps described in connection with the embodiments disclosed herein can be implemented as electronic hardware, computer software, firmware, or combinations thereof. To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules, circuits, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present application.

[0125] Unless explicitly stated otherwise, it should be understood that throughout the specification, discussions using terms such as "processing," "computing," "calculating," "determining," and "identifying" refer to actions or processes of a computing device, such as one or more computers or one or more similar electronic computing devices, that manipulate or transform data represented as physical electronic or magnetic quantities within a memory, register, or other information storage device, transmission device, or media device of the computing platform. The use herein of "adapted to" or "configured to" means open and inclusive language that does not exclude devices adapted to or configured to perform additional tasks or steps. Additionally, the use of "based on" is open and inclusive because a process, step, calculation, or other action "based on" one or more recited conditions or values may, in practice, be based on additional conditions or values beyond the recited conditions or values. The categories, lists, and numbering included herein are for ease of explanation only and are not meant to be restrictive.

[0126] For purposes of illustration and description, the foregoing detailed description of the technology has been presented. It is not intended to be exhaustive or to limit the technology to the precise form disclosed. Many modifications and variations are possible in light of the above teachings. The described embodiments were chosen in order to best explain the principles of the technology and its practical application, and to enable others skilled in the art to utilize the technology in various embodiments and with various modifications as are suited to the particular use contemplated. It is intended that the scope of the technology be defined by the claims.

Claims

1. A system, comprising: one or more processors; and a non-transitory machine-readable storage medium storing instructions that, when executed by the one or more processors, cause the one or more processors to perform operations including the following: receiving a request to transmit a communication to a media device, the request including an identifier of media; generating an identifier associated with the media and a signed uniform resource locator; receiving the media via the signed uniform resource locator, wherein the media is stored associated with the signed uniform resource locator; transcoding the media based on characteristics of the media device; and transmitting the communication to the media device, wherein the communication includes the transcoded media.

2. The system according to claim 1, wherein The operations further include: determining that an amount of time associated with the request to transmit the communication exceeds a threshold; and deleting the media, the signed uniform resource locator, and the identifier associated with the media.

3. The system according to claim 1, wherein, The media includes one or more of text, audio, image, or video.

4. The system according to claim 1, wherein, The media is transcoded into an adaptive bitrate stream.

5. The system according to claim 1, wherein, The media includes an image, and wherein the media is transcoded by encoding the image into a video program stream protocol and setting a flag in a header of the video program stream protocol to identify the image as an I-frame.

6. The system according to claim 1, wherein The media is transcoded into the highest resolution that can be presented by the media device.

7. The system according to claim 1, wherein, The operations further include: compressing a portion of the media to generate a size-reduced representation of the media, wherein the size-reduced representation of the media is configured to be presented by the media device as a representation of the media; and storing the size-reduced representation of the media associated with the media.

8. A method, comprising: receiving a request to transmit a communication to a media device, the request including an identifier of media; generating an identifier associated with the media and a signed uniform resource locator; receiving the media via the signed uniform resource locator, wherein the media is stored associated with the signed uniform resource locator; transcoding the media based on characteristics of the media device; and transmitting the communication to the media device, wherein the communication includes the transcoded media.

9. The method of claim 8, further comprising: determining that an amount of time associated with the request to transmit the communication exceeds a threshold; and deleting the media, the signed uniform resource locator, and the identifier associated with the media.

10. The method according to claim 8, wherein, The media includes one or more of text, audio, image, or video.

11. The method according to claim 8, wherein, The media is transcoded into an adaptive bitrate stream.

12. The method according to claim 8, wherein, The media includes an image, and wherein the media is transcoded by encoding the image into a video program stream protocol and setting a flag in a header of the video program stream protocol to identify the image as an I-frame.

13. The method according to claim 8, wherein, The media is transcoded into the highest resolution that can be presented by the media device.

14. The method of claim 8, further comprising: Compress a portion of the media to generate a size-reduced representation of the media, wherein the size-reduced representation of the media is configured to be presented by the media device as a representation of the media; and Store the size-reduced representation of the media in association with the media.

15. A non-transitory machine-readable storage medium storing instructions that, when executed by one or more processors, cause the one or more processors to perform operations including the following: Receive a request to transmit a communication to a media device, the request including an identifier of media; Generate an identifier associated with the media and a signed uniform resource locator; Receive the media via the signed uniform resource locator, wherein the media is stored in association with the signed uniform resource locator; Transcode the media based on characteristics of the media device; and Transmit the communication to the media device, wherein the communication includes the transcoded media.

16. The non-transitory machine-readable storage medium according to claim 15, wherein, The operations further include: Determine that an amount of time associated with the request to transmit the communication exceeds a threshold; and Delete the media, the signed uniform resource locator, and the identifier associated with the media.

17. The non-transitory machine-readable storage medium according to claim 15, wherein, The media includes one or more of text, audio, image, or video.

18. The non-transitory machine-readable storage medium according to claim 15, wherein, The media is transcoded into an adaptive bitrate stream.

19. The non-transitory machine-readable storage medium according to claim 15, wherein, The media includes an image, and wherein the media is transcoded by encoding the image into a video program stream protocol and setting a flag in a header of the video program stream protocol to identify the image as an I-frame.

20. The non-transitory machine-readable storage medium according to claim 15, wherein, The operations further include: Compress a portion of the media to generate a size-reduced representation of the media, wherein the size-reduced representation of the media is configured to be presented by the media device as a representation of the media; and Store the size-reduced representation of the media in association with the media.

Citation Information

Cited By

  • Graphic processor, simulation method and device, medium, product, fault positioning method and equipment

    CN122312366A