SYSTEM AND METHOD FOR COMMUNICATION BETWEEN A MOBILE DEVICE AND A SMART TV - Patent application

The media sharing system transcodes media for optimal display across devices with varying capabilities, addressing sub-optimal presentation issues by converting non-native media into formats suitable for the receiving device, ensuring high-quality media sharing.

JP2025538478APending Publication Date: 2025-11-28ビジオインコーポレイテッド
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2025528777
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2022-11-17
Filing Date
2023-11-16
Publication Date
2025-11-28

AI Technical Summary

Technical Problem

Devices with specific processing capabilities, such as televisions, struggle to efficiently communicate and present non-native media types like images and videos due to differing processing pipelines, resulting in sub-optimal display quality.

Method used

A media sharing system that transcodes media for presentation on heterogeneous devices based on their processing capabilities, using a cloud network to convert content into a format suitable for the receiving device, such as wrapping still images in a video container for display as a single frame of video.

Benefits of technology

Enables high-quality presentation of media across different devices by adapting content to their native formats, ensuring optimal display quality and efficient communication between heterogeneous device types.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025538478000001_ABST
    Figure 2025538478000001_ABST
Patent Text Reader

Abstract

Social media communications may be shared between disparate device types, such as mobile devices and televisions. A new social media communication may be created by identifying a user profile and the 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 the media with another device. The media may be uploaded and processed using the signed URL. For example, the media may be transcoded into a format based on the 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. A notification corresponding to the social media communication may be sent to the device associated with the user profile to enable access to the media.
Need to check novelty before this filing date? Find Prior Art

Description

CROSS-REFERENCE TO RELATED APPLICATIONS

[0001]

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

[0002]

[0002] The present disclosure relates generally to cross-platform data sharing technologies, and more particularly to a cross-platform data sharing and logistics system for the distribution and management of visual media on digital television systems. [Background technology]

[0003]

[0003] Computing devices may communicate with different devices using a variety of different protocols based on the capabilities of the computing device and the other devices. For example, a computing device may communicate with other devices via the Internet, wireless communication frequencies such as Wi-Fi or Bluetooth, peripheral devices via a universal serial bus (USB) interface, etc. The complexity of communications and functionality available to a computing device may be based on the computing device's processing power and / or software. Devices not designed for general processing tasks lack the capabilities for full-functional communication with specific devices or networks. For example, a television may have processing components specifically configured to receive, process, and display video, but may lack the ability to exchange communications with specific network types, such as networks frequently accessed by other devices for media presentation and exchange. Summary of the Invention

[0004]

[0004] A method for communicating across heterogeneous device types is described herein. The method may include receiving a request to send a communication to a media device, the request including an identification of the media, generating an identifier and a signed uniform resource locator associated with the media, receiving the media via the signed uniform resource locator, where the media is stored in association with the signed uniform resource locator, transcoding the media based on characteristics of the media device, and sending a communication to the media device, where the communication includes the transcoded media.

[0005]

[0005] Described herein is a system for presenting communication across heterogeneous device types, the system including one or more processors and a non-transitory computer-readable storage medium having stored thereon instructions that, when executed by the one or more processors, cause the one or more processors to perform any of the methods described above.

[0006]

[0006] The non-transitory computer-readable media described in this specification may store instructions that, when executed by one or more processors, cause the one or more processors to perform any of the methods described above.

[0007]

[0007] These illustrative examples are mentioned to aid in understanding the present disclosure, not to limit or define it. Additional embodiments are set forth in the detailed description, and further explanation is provided therein.

[0008]

[0008] The features, embodiments, and advantages of the present disclosure will be better understood from the following description taken in conjunction with the accompanying drawings. [Brief explanation of the drawings]

[0009] [Figure 1]FIG. 1 is a high-level block diagram of the disclosed system according to an aspect of the present disclosure. [Figure 2]

[0010] FIG. 2 is a functional level block diagram of the disclosed system, according to an aspect of the present disclosure. [Figure 3]

[0011] FIG. 3 is a state diagram of example content upload and processing steps according to aspects of the present disclosure. [Figure 4]

[0012] FIG. 4 is a state diagram of an example process for retrieving messages and media from a smart TV, according to an aspect of the disclosure. [Figure 5A]

[0013] FIG. 5A is a state diagram of an example process for managing friend requests according to an aspect of the disclosure. [Figure 5B] FIG. 5B is a state diagram of an example process for managing friend requests according to aspects of the disclosure. [Figure 6]

[0014] FIG. 6 is a state diagram of an example process for managing friend status and updates according to an aspect of the disclosure. [Figure 7]

[0015] FIG. 7 is a system state flow diagram of an example process for posting a message(gram) according to an aspect of the present disclosure. [Figure 8]

[0016] FIG. 8 illustrates three example user interfaces presented by a media sharing application on a mobile device according to aspects of the disclosure. [Figure 9]

[0017] FIG. 9 illustrates two example user interfaces presented by a media sharing application of a media device according to aspects of the present disclosure. [Figure 10]

[0018] FIG. 10 illustrates a flowchart of an example process for transmitting data between a mobile device and a display device according to an aspect of the disclosure. [Figure 11]

[0019] FIG. 11 illustrates an example computing device according to an aspect of the present disclosure. DETAILED DESCRIPTION OF THE INVENTION

[0010]

[0020] Described herein are methods and systems for a media sharing system configured to share media among heterogeneous device types in an optimized media format. Some device types may be configured to present certain types of media, such as televisions configured for video. These devices may not be configured to present other types of media or may present other types of media at a lower quality. Televisions may process non-video media (e.g., text, images, audio, etc.) in a separate processing pipeline from video media, which may cause the non-video media to be presented in a sub-optimal form and / or format (e.g., low resolution, undesirable aspect ratio, undesirable size, etc.). For example, images are often processed at a lower resolution regardless of the original resolution at which the image was captured, resulting in poor display quality. The media sharing system described herein may transcode media for presentation on heterogeneous device types according to the processing capabilities of each device to enable native presentation of the non-native media. For example, the media sharing system may wrap a still image in an MP4 or other compatible video container represented by a single I-frame for presentation by a display device. The display device may then display the image as a video having a single frame, which may be presented by the display device until it is replaced by other content.

[0011]

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

[0012]

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

[0013]

[0023] In some instances, a media sharing system may be facilitated by a mobile application (e.g., running on a mobile device such as a smartphone, tablet, etc.), a display device application running on a display device, and one or more servers (e.g., a cloud service, etc.). Communications including content (e.g., video, audio, text, and / or the like) may be exchanged between the mobile application and the display device application using the one or more servers. The one or more servers may 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.) may send a communication to a server that includes a user identifier (e.g., usable to identify a receiving device, such as a device running a mobile device application or a display device application, etc.) and a payload (e.g., content to be presented by a device running a mobile device application or a display device application, etc.). The one or more servers may 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.) to enable the communication to be displayed in a particular form or format. The one or more servers may store the transcoded communication in memory and may send a notification to the receiving device indicating the presence of the transcoded communication. Upon receiving a request for the transcoded communication, the one or more servers may send the transcoded communication to the receiving device for presentation.

[0014]

[0024] The media sharing application may generate and store user account information. A user account may be associated with user information (e.g., the user's name or user's username, the user's interests, demographic information, device information, etc.), a user identifier, an account identifier, identification of the user's contacts (e.g., friends, family, colleagues, etc.), historical communications generated by and / or addressed to the user, 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, or the like. In some cases, a user account may also be created and / or stored in memory of a device executing the display device application and / or the mobile application.

[0015]

[0025] A user may create a new communication for one or more of the user's contacts by selecting content to share, providing text to present with the selected content, and providing identification of the one or more contacts (e.g., name, username, user identifier, account identifier, etc.). For example, a user may take a photo and select contacts to share the photo with. The user may also provide a message to be displayed with the photo. The media sharing system may use the identification of the one or more contacts to identify a user account associated with each of the one or more contacts. The media sharing system may send a notification to the receiving device (e.g., via a mobile application or display device application running on the receiving device). In some cases, the notification may be generated when a new communication is received at the mobile device or display device. In other cases, the mobile device and / or display device may receive notification of the new communication and, in response to receiving the notification, request access to the new communication. The notification may be presented on a portion of the display of the mobile device or display device. The user may select the new communication to display and cause the new communication to be presented by the display of the mobile device and / or display device. The new communication may be presented in a portion of the display of the mobile device and / or display device, or using substantially the entire display (e.g., "full screen," etc.).

[0016]

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

[0017]

[0027] The media sharing system may protect the presentation of content by receiving devices using encryption, time restrictions, a combination thereof, or the like. For example, the media sharing system may protect content by requiring receiving devices to provide access credentials, such as a username and / or password, a pin, an audio key, a combination thereof, or the like, in order to present the media. In another example, the shared content may be time- or display-sensitive, such that the shared content may be deleted once it has been displayed for a predetermined time interval. Alternatively or additionally, the shared content may be deleted after a predetermined time interval regardless of whether it has been displayed. In some instances, the media sharing system may use both access credentials and time restrictions to protect the shared content. Users may moderate the shared content (add and remove content), moderate the content viewable by other users, restrict content by age, block the display of flagged content, report inappropriate content, and / or the like.

[0018]

[0028] In an illustrative example, a computing device may receive a request from a sending device to send a communication to a receiving device. The request may include an identification of media to be presented by the receiving device. The computing device may be a component of a service that enables communication between heterogeneous device types. For example, the computing device may operate within a cloud network. 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 communications sent to and from the sending and receiving devices to enable the receiving device to present the communication (and the content contained therein) efficiently and in a high-quality manner and / or format. For example, the sending device may be a mobile device and the receiving device may be a media device. The computing device may receive a communication request from a mobile device to share content (e.g., images, videos, audio segments, text, etc.) with the media device.

[0019]

[0029] In some cases, the sending device may be authenticated before sending a request to the computing device. For example, the sending device may send identification of a user account of a media sharing application running on the sending device and access credentials that authenticate the identity of the user of the sending device. In some cases, the sending device may request a token (e.g., a JWT token, an object, etc.) from an authentication service. The sending device and / or its user may be authenticated by the authentication service using, for example, access credentials, a cryptographic key, a digital signature, a token, personally identifiable information, and / or the like. Once authenticated, the authentication service may send a token (e.g., also referred to as a sending token) associated with the sending device and / or its user. The sending device may provide the token to the computing device to identify the sending device as an authenticated device. In some cases, the token may expire to force the sending device to repeat the authentication process with the authentication service.

[0020]

[0030] The sending device may send a token along with a request to send a communication to indicate that the sending device and / or the request has been authenticated. The computing device may then use the information in the request to identify the receiving device. The receiving device may be a device associated with the same user (e.g., a media device operated by the same user as the user operating the sending device), or the receiving device may be associated with a different user who is a contact of the user operating the sending device. The computing device may identify a user account associated with the request using the receiving user's name, a user identifier corresponding to the receiving user, a user account identifier, a device identifier, a device address (e.g., IP address, MAC address, etc.), and / or the like. The computing device may perform a user account lookup to identify the receiving device associated with the user account.

[0021]

[0031] The computing device may then determine the characteristics from device information associated with the computing device. The device information may include an identification of the receiving device, an address of the device (e.g., an IP address, a MAC address, a URL, a memory address, or the like), a device type (e.g., without limitation, a smartphone, a tablet, a computing device, a server, a television, a monitor, etc.), processing capabilities (e.g., processing cores, processing speed, amount of non-volatile and / or volatile memory, presence or absence 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 the display, the display refresh rate, the display response time, etc.), identification of connected peripherals (e.g., a camera, a microphone, a keyboard, etc.), identification of software installed on the device (e.g., a media sharing application, an operating system, etc.), user preferences (e.g., presentation preferences, etc.), combinations thereof, or the like.

[0022]

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

[0023]

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

[0024]

[0034] 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 memory addresses usable for storing the content.

[0025]

[0035] A computing device may transcode content based on characteristics of a receiving device. The computing device may include one or more transcoders, each 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 video by wrapping the image in a video-based container and setting a flag in the image file header to recognize the image file as an I-frame. The image file may be presented as an adaptive bitrate stream comprising a single frame of video. The first transcoder or the second transcoder may be configured to modify a single frame of video to enable presentation of the single frame of video to utilize the processing capabilities of the receiving device. For example, the first transcoder or the second transcoder may increase the resolution of a single frame of video, adjust the aspect ratio, adjust the frame rate (for content comprising more than one frame of video), perform color correction or other image processing (e.g., increase or decrease sharpness, change the depth of field, etc.), etc. The computing device may select a transcoder for transcoding content based on the receiving device, the content, and / or user preferences.

[0026]

[0036] The 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 enter access credentials (e.g., a PIN, username and password, audio key, encryption key, etc.) to present the transcoded content and / or may define an expiration date for the content. For example, the computing device may define an expiration date such that the content is deleted (or prevented from being presented) after a predetermined time interval. The predetermined time interval may be configured to begin when the content is received at the receiving device or when the content is first presented by the receiving device. The one or more fields may also define presentation characteristics such as, but not limited to, presentation size, presentation layout, thumbnails of the content, presentation location of the transcoded content or thumbnails, etc.

[0027]

[0037] The computing device may send a communication to a receiving device. In some cases, the communication may be sent by sending a signed URL to the receiving device, allowing the receiving device to download the communication using the URL. In other cases, the communication may be sent via a web-based communication protocol or other network protocol. The communication may include the transcoded content and an identification of a user account associated with the sending device and / or its user. The transcoded content may be presented by the receiving device according to presentation characteristics.

[0028]

[0038] 1 is a high-level block diagram of a disclosed system according to aspects of the present disclosure. A mobile device 104 may share content (e.g., audio, video, images, text, combinations thereof, or the like) with disparate device types, such as other mobile devices, televisions, computers, etc. The mobile device 104 may generate new communications via a media sharing application running on the mobile device 104. The communication may include content and an identification of a user or user account with which the communication is to be shared. The mobile device 104 may send communications (via the media sharing application) to a cloud network 110 using an application programming interface (API 108). The API 108 may be accessed from within the mobile device 104 (e.g., via the media sharing application, etc.), by the mobile device 104 through a remote server (located between the mobile device 104 and the cloud network 110 as shown), and / or within the cloud network 110. The API 108 may enable direct access to functionality of the cloud network 110. In some cases, the API 108 may enable the conversion of communications into a form or format that can be processed by the cloud network 110.

[0029]

[0039] In some instances, the mobile device 104 may send a communication to the cloud network through a signed URL. The mobile device 104 may request a signed URL for a new communication from the cloud network 110, and in response, the cloud network 110 may send the signed URL to the mobile device 104. The mobile device may use this signed URL to send the communication.

[0030]

[0040] Cloud network 110 may include one or more distributed devices configured to provide network services, transcoding, communication routing, load balancing, etc. Cloud network 110 may include cloud service 112 that manages the operation of cloud network 110 and the routing of communications between devices. Cloud service 112 may access account 116 to identify a user account associated with a user who is to receive the communication. Cloud service 112 may identify device information associated with the user account. The device information may include information associated with devices capable of presenting the communication to a user of the user account. Device information may include an identification of the device (e.g., 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, or the like), a device type (e.g., without limitation, a smartphone, a tablet, a computing device, a server, a television, a monitor, etc.), processing capabilities (e.g., processing cores, processing speed, amount of non-volatile and / or volatile memory, presence or absence 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 the display, the display refresh rate, the display response time, etc.), identification of connected peripherals (e.g., a camera, a microphone, a keyboard, etc.), identification of software installed on the device (e.g., a media sharing application, an operating system, etc.), user preferences (e.g., presentation preferences, etc.), combinations thereof, or the like.

[0031]

[0041] Cloud service 112 may pass the content and device information from the communication to transcoder 118. Transcoder 118 may transcode the content into a higher quality version of the content based on the device type, the device's processing capabilities, and / or user preferences. For example, the content may include an image addressed to media device 128. Media device 128 (e.g., a television) may not be configured to render images efficiently or to render images with as high quality as video. Transcoder 118 may transcode the image by converting the image to the highest resolution presentable by media device 128, which preserves the quality of the image, and wrapping the image in a video-based container (e.g., MP4, etc.). By wrapping the image in a video-based container, media device 128 may render the image as a single frame of video. Media device 128 renders the image as if it were a video (e.g., as a single video frame), allowing media device 128 to process the image more efficiently and with higher quality (e.g., using a video processing pipeline, etc.) than if media device 128 rendered the image as an image. Transcoder 118 may pass the transcoded content for storage by a content delivery network (CDN 120) for delivery to devices. CDN 120 may store the transcoded content until a request for the transcoded content is received.

[0032]

[0042] Alternatively, the 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, a media device 128 may request the content upon receiving a notification of content associated with the user account. The request may include an access token (e.g., a JavaScript Object Notation (JSON) Web Token (JWT), an object, etc.), access credentials (e.g., a username and password, a pin, a voice key, etc.), device identification, device information, user preferences, etc. The cloud service 112 may use the information included in the request to determine a transcoding scheme (e.g., minimum or maximum resolution, frame rate, aspect ratio, color correction, etc.) to tailor the presentation of the content to the media device.

[0033]

[0043] The cloud service 112 may register the communication in association with the user account using the notification service 132. In some cases, the cloud service 112 may register the communication in association with the user account in parallel with transcoding the content of the communication at 116. In other cases, the cloud service 112 may register the communication in association with the user account before passing the content of the communication to the transcoder 118. In other cases, the cloud service 112 may register the communication in association with the user account once the transcoded content is passed to the CDN 120. The notification service 132 may send notifications to devices associated with the user account once the communication is registered with the notification service 132. For example, a device may send a request (via a media sharing application) to the cloud service 112 for outstanding notifications. The request may include an identification of the device, an instance of the media sharing application, and / or an identification of the user account. A device may send a request for notifications periodically, when it receives user input, when it detects an event (e.g., when it is powered on, when it runs a media sharing application, etc.), a combination of these, or the like. The cloud service 112 may receive the request, use the request to identify the user account, retrieve outstanding notifications from the notification service 132 (e.g., notifications that have not yet been sent to the user of the user account, notifications that have not yet been presented to the user of the user account, etc.), and send the outstanding notifications to the device. Alternatively or additionally, the cloud service 112 may send outstanding notifications via other APIs 124 to each device associated with the user account (through a media sharing application running on that device) as a push notification, a communication (e.g., text, email, direct communication, instant message, etc.), or the like. A notification may be a pop-up communication, typically displayed at the bottom of a screen, to inform the user about new events on the media sharing application or media device.

[0034]

[0044] The media device 128 may receive notification of a new communication via the notification service 132 of the cloud network 110. The notification may 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 may request the token from the CDN 120 or the cloud network 110. The media device 128 may send a request for the transcoded content, where the request may include the token. In some cases, the request may be sent using a signed URL. The cloud network 110 may validate the access token (e.g., by checksum, comparing the access token to another access token, etc.). If the access token can be validated, the CDN 120 may send the transcoded content to the media device 128 (e.g., using another API 124).

[0035]

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

[0036]

[0046] Once media device 128 receives the transcoded content, the media device may begin presenting the transcoded content. In some cases, the transcoded content may be protected using access credentials, such as, but not limited to, a username and password, a pin, a voice key, a combination, or the like. In these cases, media device 128 may request the access credentials before presenting the content. In some cases, media device 128 may limit the presentation of the transcoded content to particular devices, particular time intervals (e.g., a time interval after receiving a notification, a time interval after presenting the transcoded content, or the like), a combination thereof, or the like.

[0037]

[0047] 2 is a functional-level block diagram of a media sharing system according to an aspect of the present disclosure. A mobile device may include an operating system that manages certain operations of the mobile device, such as telephony, contacts, messaging, camera, memory, etc. The mobile device may execute mobile apps (e.g., media sharing applications) to enable content communication with heterogeneous devices. The mobile apps may include one or more standard development kits (e.g., SDKs) that contain executable instructions accessible to the mobile apps and enable the mobile apps to perform the functions of the media sharing applications. For example, a first SDK may access services of a cloud network through a container service of the cloud network. The container service manages access to containers (e.g., individual environments, etc.) of the cloud network. The container service may also manage instantiation, update, and termination of containers for workload management, load balancing, etc.

[0038]

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

[0039]

[0049] The mobile device may send media to the television for presentation, and the television may include an operating system, one or more operating libraries, a user interface, and / or the like that enable the functionality of the television. The television may also include one or more SDKs that enable the television to access cloud networks, receive from the mobile device, send communications, secure communications, etc.

[0040]

[0050] In some cases, a proxy service may be established to protect some of the operations. An 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 tokens (e.g., when a new communication is created or received), validate the tokens to authenticate requests, etc.

[0041]

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

[0042]

[0052] FIG. 3 is a state diagram of an exemplary content upload and processing process according to an embodiment of the present disclosure. Some media devices may process some media differently, which may cause some media to be presented at a lower quality than other media. For example, some smart TVs, while capable of displaying 4K or UHD video, are limited to showing only 1080p still images when the images are processed by the TV using a still image pathway (API). The exemplary content upload and processing process of FIG. 3 may cause still images to be processed as video by passing them through a video transcoding process and encoding them in a video program stream protocol (e.g., MP4 files, etc.). Image files may be identified as I-frames by setting a specific data flag in the file header before sending the image from the network to the TV. When the modified image file is received at the TV, it is processed as video media, even if the still image is only a single frame. The TV may render the image file as video media at the highest resolution available to the TV in the same manner as video media. The exemplary content upload and processing process is illustrated in the sequence diagram of FIG. 3.

[0043]

[0053] FIG. 4 is a state diagram of an exemplary process for retrieving messages and media according to aspects of the present disclosure. A media sharing application may send and receive media from other mobile devices, computing devices, or media devices (e.g., a television, etc.). In some instances, the media sharing application may enable presentation of media received by the mobile device on another device (e.g., another mobile device, computing device, media device, etc.). For example, the media sharing application may receive information associated with a communication and present the content on a display device. The retrieval and playback process shown in FIG. 4 illustrates operation of a media sharing system in which the media sharing application executes a call to retrieve a list of grams sent or received by the media sharing application running on the mobile device. Identification of the grams may be received, including the content of the communication and / or thumbnails (compressed-size images) of the content. The media sharing application running on the media device may receive the information associated with the grams and present the content. An exemplary process for retrieving messages and media is illustrated in the sequence diagram of FIG. 4.

[0044]

[0054] 5A-5B are state diagrams of an example process for managing contact requests according to aspects of the present disclosure. A media sharing application may manage contacts associated with a user of the media sharing application. The contacts may be friends, colleagues, family members, users, etc. associated with the user. The process may begin with a media sharing application running on a mobile device of a first user (e.g., a mobile sender) requesting to add a second user (a mobile recipient) as a contact of the first user. The media sharing application may communicate with a communications manager running within a remote device (e.g., a server, a cloud service such as cloud service 112, etc.) to provide the media sharing application with information about the media sharing system, such as, but not limited to, user information, user account, user status, etc. The process may include generating a link (e.g., a URL, a quick response (QR) code, etc.) that can be sent to the mobile recipient. If the mobile recipient does not have the media sharing application and / or an account, executing the link may enable the mobile recipient to download the media sharing application and / or create an account. The mobile recipient may then approve or cancel the contact request. If the contact request is approved, a notification may be sent to the mobile sender indicating that the mobile recipient has approved the contact request. In some cases, the mobile sender may then confirm the contact request, causing a notification to be sent to the mobile recipient.

[0045]

[0055] FIG. 6 is a state diagram of an example process for managing contact status and updates according to aspects of the present disclosure. The example process for managing contact status and updates may be executed by a media sharing application to retrieve information associated with a contact. The media sharing application may send a request to a communications manager to manage a user's contacts, such as adding a contact, deleting a contact, blocking a contact, etc. For example, a first user may send a status request to the communications manager along with an identification of a second user or a second user account. The communications manager may return a block or unblock response indicating that the second user is blocked or unblocked with respect to the first user. If blocked, the first user may be prevented from sending communications to the second user, and the second user may be prevented from sending communications to the first user. The communications manager may determine that the communication is associated with a blocked user and discard the communication to prevent further processing of the communication. The first user may send a block request to block the second user or an unblock request to unblock the second user. The communications manager may store an indication of the second user's status (as blocked or unblocked) in a user account associated with the first user. The abuse service may operate to determine that the block / unblock system is being abused (e.g., too many requests, repeated requests, etc.), which may affect system or user performance, etc.

[0046]

[0056] In some cases, a media device may create a guest account using a third-party user authentication service. A guest account may be an uncredentialed account that does not use a sign-in process. A token (e.g., JWT, etc.) may be requested from the authentication service. When a refresh token is invoked, a new token may be generated that authorizes the guest account. A guest account may not be linked to a mobile guest account or a credentialed account. A guest account may receive communications from other user accounts. In some cases, a guest account is temporary and expires after a certain time interval.

[0047]

[0057] FIG. 7 is a system state flow diagram of an example process for posting a communication (gram) according to an aspect of the present disclosure. The communication may be posted (e.g., sent) to another user or device of the media sharing system. A media sharing application on a mobile device may send a call to the media sharing system through an API endpoint. The request may be authenticated (e.g., using a token, access credentials, or the like). If authentication fails, an error message may be returned to the media sharing application. If authentication passes, the media sharing application may generate a communication identifier and a content identifier for any content to be sent with the communication. The media sharing system may perform a call to a media services API (e.g., getUploadURLs) to generate a signed upload URL. If the media services API does not return a response (e.g., or returns a null, undefined, etc. response), the media services API may return an error to the media sharing application on the mobile device.

[0048]

[0058] If the media services API returns a URL, the process continues, where the content and communication identifier are inserted into the new communication. In some cases, the content may be transcoded (e.g., to a different form or format, file type, etc.) before being inserted. The new communication may be stored in a database of communications. The database may be used to populate the media sharing application of the mobile device with communications sent from and / or received by the media sharing application. Old communications and communications deleted by the media sharing application may be deleted from the database to prevent the communications from being re-populated 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 a 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, and / or the like. For example, the response may include a thumbnail of the content.

[0049]

[0059] FIG. 8 illustrates three example user interfaces presented by a media sharing application on a mobile device, according to aspects of the present disclosure. User interface 804 depicts a start screen that provides information for beginning to operate the media sharing application. User interface 804 includes one or more tabs, such as 'grams' (e.g., communications) and 'friends' (e.g., contacts list). User interface 804 may include a button that can be selected to begin creating a new 'gram.' Upon selecting the button, user interface 808 may be presented, providing a presentation of content for selection (e.g., videos, photos, audio segments, etc.) and a list of users who will receive the 'gram.' Upon selection of content and one or more users, user interface 816 may be presented. User interface 816 depicts the sent 'gram.' The depicted 'gram' may be deleted after a predetermined time interval. User interface 816 may also include a button for beginning the creation of a new 'gram.

[0050]

[0060] 9 illustrates two example user interfaces presented by a media sharing application of a media device according to 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. The gram received by the media sharing application of the media device may be configured to be presented at the highest quality (e.g., highest resolution, frame rate, etc.) capable of being presented by the media device.

[0051]

[0061] The content of a gram may be presented in any format. For example, the content may be presented in a side-by-side view (user interface 904) or a full-screen view (user interface 908). In some cases, a gram or its content may be presented in thumbnail format, where thumbnail versions of one or more gram versions may be presented within the same user interface. The user interface of a media sharing application on a media device may include icons that may be selected to present received gram versions and icons that may be selected to manage contacts (e.g., view contacts, search for contacts, add contacts, delete contacts, block or unblock contacts, etc.). While presenting the content of a gram, the user interface may display characteristics of the gram, such as a geolocation associated with the content, an identification of the user or user account that sent the gram, and a time interval for the gram's expiration (before the gram is deleted from the media device).

[0052]

[0062] FIG. 10 illustrates a flowchart of an example process for transmitting data between a mobile device and a display device according to aspects of the present disclosure. At block 1004, a computing device may receive a request to transmit 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 heterogeneous device types. For example, the computing device may operate within a cloud network (e.g., cloud network 110 of FIG. 1, etc.). 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 communications sent to and from the sending and receiving devices to enable the receiving device to present the communication (and the content contained therein) efficiently and in a high-quality manner and / or format. For example, the sending device may be a mobile device (e.g., mobile device 104 of FIG. 1), and the receiving device may be a media device (e.g., media device 128 of FIG. 1). The computing device may receive a communication request from the mobile device to share content (e.g., images, videos, audio segments, text, etc.) with the media device.

[0053]

[0063] In some cases, a mobile device may be authenticated before sending a request to a computing device. For example, the mobile device may transmit identification of a user account of a media sharing application running on the mobile device and access credentials that authenticate the identity of the user of the mobile device. In some cases, 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, and / or the like. Once authenticated, the authentication service may transmit a token (e.g., also referred to as a transmission token) associated with the mobile device and / or its user. The mobile device may provide the token to the computing device to identify the mobile device as an authenticated device. In some cases, the token may expire to cause the mobile device to repeat the authentication process with the authentication service.

[0054]

[0064] The mobile device may send a token along with a request to send a communication to indicate that the mobile device and / or the request has been authenticated. The computing device may then use the information in the request to identify the media device. The media device may be a device associated with the same user (e.g., a media device operated by the same user as the user operating the mobile device), or the media device may be associated with a different user who is a contact of the user operating the mobile device. The computing device may identify a user account associated with the request using the name of the receiving user, a user identifier corresponding to the receiving user, a user account identifier, a device identifier, a device address (e.g., IP address, MAC address, etc.), and / or the like. The computing device may perform a user account lookup to identify the media device associated with the user account.

[0055]

[0065] The computing device may then determine the characteristics from device information associated with the computing device. The device information may include an identification of the media device, an address of the device (e.g., an IP address, a MAC address, a URL, a memory address, or the like), a device type (e.g., without limitation, a smartphone, a tablet, a computing device, a server, a television, a monitor, etc.), processing capabilities (e.g., processing cores, processing speed, amount of non-volatile and / or volatile memory, presence or absence 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 the display, the display refresh rate, the display response time, etc.), identification of connected peripherals (e.g., a camera, a microphone, a keyboard, etc.), identification of software installed on the device (e.g., a media sharing application, an operating system, etc.), user preferences (e.g., presentation preferences, etc.), combinations thereof, or the like.

[0056]

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

[0057]

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

[0058]

[0068] At block 1012, the computing device may receive the content via the 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 memory addresses usable for storing the content.

[0059]

[0069] At block 1016, the computing device may transcode content based on characteristics of the media device. The computing device may include one or more transcoders, each 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 video by wrapping the image in a video-based container and setting a flag in the image file header to recognize the image file as an I-frame. The image file may be presented as an adaptive bitrate stream comprising a single frame of video. The first transcoder or the second transcoder may be configured to modify a single frame of video to enable presentation of the single frame of video to utilize the processing capabilities of the media device. For example, the first transcoder or the second transcoder may increase the resolution of a single frame of video, adjust the aspect ratio, adjust the frame rate (for content comprising more than one frame of video), perform color correction or other image processing (e.g., increase or decrease sharpness, change the depth of field, etc.), etc. The computing device may select a transcoder for transcoding content based on media device, content, and / or user preferences.

[0060]

[0070] The 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 a media device to enter access credentials (e.g., a PIN, username and password, audio key, encryption key, etc.) to present the transcoded content and / or may define an expiration date for the content. For example, the computing device may define an expiration date such that the content is deleted (or prevented from being presented) after a predetermined time interval. The predetermined time interval may be configured to begin when the content is received at the media device or when the content is first presented by the media device. The one or more fields may also define presentation characteristics such as, but not limited to, presentation size, presentation layout, thumbnails of the content, presentation location of the transcoded content or thumbnails, etc.

[0061]

[0071] At block 1020, the computing device may send the communication to the media device. In some cases, the communication may be sent by sending a signed URL to the media device, allowing the media device to download the communication using the URL. In other cases, the communication may be sent via a web-based communication protocol or other network protocol. The communication may include the 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 the presentation characteristics.

[0062]

[0072] The following include example features of a media sharing system: A media sharing system may include more or less features than those described.

[0063]

[0073] Backend API: The backend API may be responsible for authenticating incoming API requests to backend services for the media sharing system, such as, but not limited to, fetching direct signed upload URLs, listing videos owned, listing videos to which you have access, revoking videos shared with others, etc. The backend API may interact with a database, a media services API, and an identity services API.

[0064]

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

[0065]

[0075] Technology stack: The backend API may be a monolithic code base with different routes and calls to the account and media services helper APIs. In some cases, the backend API may not be a microservices architecture to prevent fragmentation of the code base.

[0066]

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

[0067]

[0077] Media Services API: Media Services may provide an API for deleting videos and for obtaining direct signed upload URLs.

[0068]

[0078] Identity Services API: The API may allow access to list friends connected to the current account, remove and add friends to the account, and / or the like.

[0069]

[0079] Media Ingest and Conversion, Media Upload: A signed direct upload URL may enable upload access to a cloud service bucket. The URL may be valid multiple times until an expiration date and time. An API endpoint behind a backend API may provide a signed URL for uploading media. A unique identifier may be assigned to the media to be uploaded along with the direct upload URL to the client. Upload status may be stored to allow resumable uploads. Thumbnails may be created. Uploading to a cloud service bucket may trigger processing and conversion by a cloud service media conversion process.

[0070]

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

[0071]

[0081] Mobile App: The mobile application may include tabs, with a first tab for gramming. The mobile application may be used to request contacts, delete contacts, block and / or unblock contacts, share content (e.g., with other mobile and / or media devices, etc.), etc. Shared content may be sent via a direct upload link to an API. In some cases, the mobile app may convert images to Joint Photographic Experts Group (JPEG) or other image formats before sending the content to a server.

[0072]

[0082] Web Page: A web page associated with the media sharing system may instruct the user to download the mobile application. The web page may be accessed when the contact request link is accessed outside of the mobile device. When the contact request link is accessed from the mobile device, the friend request link may deep link to the mobile application or take the user to an app store to download the mobile application.

[0073]

[0083] Operational Infrastructure: Display device application and mobile application features can be added and / or removed locally (e.g., at the display device and mobile device, respectively) and remotely (e.g., at a server, cloud network, etc.) to optimize resource utilization. In some cases, a "getConfiguration" API backend call can be performed to enable or disable individual features. Logging can also be selectively increased or decreased per mobile device or display device via remote configuration API calls.

[0074]

[0084] In some cases, the backend API may be hosted within a cloud service-based container.

[0075]

[0085] Metrics Collection: Metrics and logs collected on mobile applications, display device applications, and backend APIs can be stored in a centralized or distributed database. Metrics and logs can be retrieved (e.g., from any location) via a local interface or a web-based interface.

[0076]

[0086] FIG. 11 illustrates an example computing device according to aspects of the present disclosure. For example, computing device 1100 may implement any of the systems or methods described herein. In some cases, computing device 1100 may be a component of or included within a media device. The components of computing device 1100 are shown in electrical communication with each other using connections 1106, such as a bus. The example computing device 1100 includes a processor 1104 (e.g., a CPU, processor, or the like) and connections 1106 (e.g., a bus, or the like) 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(s) 1108, to the processor 1104.

[0077]

[0087] The computing device 1100 may include a cache 1102 of high-speed memory directly connected to, proximate to, or integrated within the processor 1104. The computing device 1100 may copy data from the memory 1120 and / or the storage device 1108 to the cache 1102 for faster access by the processor 1104. In this manner, the cache 1102 may provide a performance boost that avoids delays while the processor 1104 waits for data. Alternatively, the processor 1104 may access data directly from the memory 1120, the ROM 1117, the RAM 1116, and / or the storage device 1108. The memory 1120 may include multiple types of homogeneous or heterogeneous memory (such as, for example, without limitation, magnetic, optical, solid state, etc.).

[0078]

[0088] 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 are not limited to, a magnetic cassette, a hard disk drive (HDD), a flash memory, a solid-state memory device, a digital versatile disk, a cartridge, a compact disk, a random access memory (RAM 1125), a read-only memory (ROM), combinations thereof, or the like.

[0079]

[0089] The storage device 1108 may store one or more services, such as service 1 1110, service 2 1112, and service 3 1114, that are executable by the processor 1104 and / or other electronic hardware. The one or more services include instructions executable by the processor 1104 to perform operations, such as any of the techniques, steps, processes, blocks, and / or operations described herein, to control the operation of devices in communication with the computing device 1100, to control the operation of the processor 1104 and / or any dedicated processors, combinations thereof, or the like. The processor 1104 may be a system-on-chip (SOC) that includes one or more cores or processors, buses, memory, clocks, memory controllers, caches, other processor components, and / or the like. Multi-core processors may be symmetric or asymmetric.

[0080]

[0090] The computing device 1100 may include one or more input devices 1122, which may represent any number of input mechanisms, such as a microphone, a touch-sensitive screen for graphical input, a keyboard, a mouse, motion input, voice, a media device, a sensor, a combination thereof, or the like. 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, a media device, a projector, a television, speakers, a combination thereof, or the like. In some cases, a multimodal computing device may allow 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 communications (e.g., establish connections, receive / send communications, etc.) with remote devices via one or more communication protocols and / or via one or more communication media (e.g., wired, wireless, etc.).

[0081]

[0091] Computing device 1100 is not limited to the components shown in Figure 11. Computing device 1100 may include other components not shown and / or components shown may be omitted.

[0082]

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

[0083]

[0093] Example 1 is a system comprising one or more processors and a non-transitory machine-readable storage medium having stored thereon instructions that, when executed by the one or more processors, cause the one or more processors to perform operations including receiving a request to send a communication to a media device, the request including an identification of the media; generating an identifier and a signed uniform resource locator associated with the media; 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 characteristics of the media device; and sending a communication to the media device, wherein the communication includes the transcoded media.

[0084]

[0094] Example 2 is the system of any of Examples 1 and 3-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.

[0085]

[0095] Example 3 is the system of any of examples 1-2 and 4-7, wherein the media includes one or more of text, audio, images, or video.

[0086]

[0096] Example 4 is the system of any of examples 1-3 and 5-7, wherein the media is transcoded into an adaptive bitrate stream.

[0087]

[0097] Example 5 is the system of any of Examples 1-4 and 6-7, wherein the media includes an image, and 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.

[0088]

[0098] Example 6 is the system of any of examples 1-5 and 7, wherein the media is transcoded to the highest resolution that can be presented by the media device.

[0089]

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

[0090]

[0100] Example 8 is a method comprising: receiving a request to send a communication to a media device, the request including an identification of the media; generating an identifier and a signed uniform resource locator associated with the media; 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 characteristics of the media device; and sending a communication to the media device, wherein the communication includes the transcoded media.

[0091]

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

[0092]

[0102] Example 10 is the method of any of examples 8-9 and 11-14, wherein the media includes one or more of text, audio, images, or video.

[0093]

[0103] Example 11 is the method of any of examples 8-10 and 12-14, wherein the media is transcoded into an adaptive bitrate stream.

[0094]

[0104] Example 12 is the method of any of Examples 8-11 and 13-14, wherein the media includes an image, and the media is transcoded by encoding the image into a Video Program Stream Protocol and setting a flag in a Video Program Stream Protocol header to identify the image as an I-frame.

[0095]

[0105] Example 13 is the method of any of examples 8-12 and 14, wherein the media is transcoded to the highest resolution that can be presented by the media device.

[0096]

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

[0097]

[0107] Example 15 is a non-transitory machine-readable storage medium having stored thereon instructions that, when executed by one or more processors, cause the one or more processors to perform operations including receiving a request to send a communication to a media device, the request including an identification of the media; generating an identifier and a signed uniform resource locator associated with the media; 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 characteristics of the media device; and sending a communication to the media device, wherein the communication includes the transcoded media.

[0098]

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

[0099]

[0109] Example 17 is the non-transitory machine-readable storage medium of any of examples 15-16 and 18-20, where the media includes one or more of text, audio, images, or video.

[0100]

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

[0101]

[0111] Example 19 is the non-transitory machine-readable storage medium of any of Examples 15-18 and 20, wherein the media includes an image, and 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.

[0102]

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

[0103]

[0113] 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 transporting instruction(s) and / or data. Computer-readable media may include non-transitory media in which data may be stored in a form excluding carrier waves and / or electronic signals. Examples of non-transitory media may 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. A computer-readable medium may store code and / or machine-executable instructions, which may represent a procedure, a function, a subprogram, a program, a routine, a subroutine, a module, a software package, a class, or any combination of instructions, data structures, or program statements. A code segment may be coupled 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. may be passed, forwarded, or transmitted via any suitable means including memory sharing, message passing, token passing, network transmission, or the like.

[0104]

[0114] Some portions of this description describe examples in terms of algorithms and symbolic representations of operations on information. These operations, while described functionally, computationally, or logically, may be implemented by computer programs or equivalent electrical circuits, microcode, or the like. Further, arrangements of operations may be referred to as modules, without loss of generality. The described operations and their associated modules may be embodied in software, firmware, hardware, or any combination thereof.

[0105]

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

[0106]

[0116] Some examples may relate to an apparatus or system for performing any or all of the described steps, operations, or processes. This apparatus may be specially constructed for the required purposes and / or it may comprise a general-purpose computing device selectively activated or reconfigured by a computer program stored in the computing device's memory. The memory may be or may include a non-transitory, tangible, computer-readable storage medium, or any type of medium suitable for storing electronic instructions, that may be coupled to a bus. Furthermore, any computing system referred to herein may include a single processor or multiple processors.

[0107]

[0117] Although the present subject matter has been described in detail with reference to specific examples, it will be understood that those skilled in the art, upon achieving an understanding of the foregoing, may readily create modifications to, variations of, and equivalents of, such embodiments. Numerous specific details have been described 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, methods, apparatuses, or systems that would be known to those skilled in the art have not been described in detail so as not to obscure the claimed subject matter. Accordingly, the present disclosure has been presented for purposes of example and not limitation, and is not intended to exclude the inclusion of such modifications, variations, and / or additions to the present subject matter as would be readily apparent to those skilled in the art.

[0108]

[0118] For clarity of explanation, in some instances, the disclosure may be presented as including individual functional blocks, including devices, device components, steps or routines in a method implemented in software, or functional blocks comprising a combination of hardware and software. Additional functional blocks other than those shown and / or described herein 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 in unnecessary detail. In other instances, well-known circuits, processes, algorithms, structures, and techniques may be shown without unnecessary detail to avoid obscuring the embodiments.

[0109]

[0119] Each example 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. A flowchart may describe operations as a sequential process, but many of the operations may occur in parallel or concurrently. In addition, the order of operations may be rearranged. A process terminates when its operations are completed, but may have additional steps that are 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 a return of the function to the calling function or the main function.

[0110]

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

[0111]

[0121] 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 (e.g., a computer program product) to perform the necessary tasks may be stored on 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 logic arrays (FPGAs), or other equivalent integrated circuits or discrete logic circuitry. Such processors may be configured to perform any of the techniques described in this disclosure. The processor may be a microprocessor, a conventional processor, a controller, a microcontroller, a state machine, or the like. A 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 in conjunction with a DSP core, or any other such configuration). Accordingly, 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 apparatus suitable for implementing the techniques described herein. The functionality described herein may also be embodied in a peripheral device or an add-in card. Such functionality may also be implemented across different chips on a circuit board or in different processes running on a single device, as further examples.

[0112]

[0122] In the foregoing description, aspects of the present disclosure have been described with reference to particular examples thereof, but those skilled in the art will recognize that the present disclosure is not limited thereto. Accordingly, while illustrative examples of the present disclosure have been described in detail herein, it should be understood that the inventive concepts may be embodied and used in a variety of other ways, and that the appended claims are intended to be interpreted to include such variations. The various features and aspects of the present disclosure described above may be used individually or in any combination. Furthermore, the examples may be utilized in any number of environments and applications other than 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 and not restrictive.

[0113]

[0123] The various illustrative logic blocks, modules, circuits, and algorithm steps described in connection with the embodiments disclosed herein may be implemented as electronic hardware, computer software, firmware, or any combination 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 on 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.

[0114]

[0124] Unless otherwise specified, throughout this specification, descriptions utilizing terms such as “processing,” “computing,” “calculating,” “determining,” and “identifying,” or the like, are understood to refer to the 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 the memory, registers, or other information storage, transmission, or media devices of a computing platform. The use of “adapted to” or “configured to” herein is intended as open and inclusive language that does not exclude devices adapted or configured to perform additional tasks or steps. Additionally, the use of “based on” is intended to be open and inclusive in that a process, step, calculation, or other action “based on” one or more stated conditions or values ​​may, in fact, be based on additional conditions or values ​​other than those stated. The headings, lists, and numbering contained herein are for ease of description only and are not intended to be limiting.

[0115]

[0125] The foregoing detailed description of the present technology has been presented for purposes of illustration and description. 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 to best explain the principles of the present technology, its practical application, and to enable others skilled in the art to utilize the technology in various embodiments and with various modifications suitable for the particular uses contemplated. It is intended that the scope of the present technology be defined by the claims.

Claims

1. 1. A system comprising: one or more processors; a non-transitory machine-readable storage medium having stored thereon instructions that, when executed by the one or more processors, cause the one or more processors to: receiving a request to send a communication to a media device, the request including an identification of the media; generating an identifier and a signed uniform resource locator associated with the media; 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 characteristics of the media device; transmitting the communication to the media device, wherein the communication includes the transcoded media; and A system that performs an operation including:

2. The operation is determining that an amount of time associated with the request to transmit the communication exceeds a threshold; removing the media, the signed uniform resource locator, and the identifier associated with the media; The system of claim 1 further comprising:

3. The system of claim 1 , wherein the media includes one or more of text, audio, images, or video.

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

5. 2. The system of claim 1, wherein the media includes an image, and 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 of claim 1 , wherein the media is transcoded to the highest resolution that can be presented by the media device.

7. The operation is compressing a portion of the media to generate a reduced-size representation of the media, wherein the reduced-size representation of the media is configured to be presented by the media device as a representation of the media; storing the reduced size representation of the media in association with the media; The system of claim 1 further comprising:

8. 1. A method comprising: receiving a request to send a communication to a media device, the request including an identification of the media; generating an identifier and a signed uniform resource locator associated with the media; 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 characteristics of the media device; transmitting the communication to the media device, wherein the communication includes the transcoded media; and A method for providing the above.

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

10. The method of claim 8 , wherein the media includes one or more of text, audio, images, or video.

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

12. 9. The method of claim 8, wherein the media includes an image, and 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 of claim 8 , wherein the media is transcoded to the highest resolution that can be presented by the media device.

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

15. A non-transitory machine-readable storage medium having stored thereon instructions that, when executed by one or more processors, cause the one or more processors to: receiving a request to send a communication to a media device, the request including an identification of the media; generating an identifier and a signed uniform resource locator associated with the media; 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 characteristics of the media device; transmitting the communication to the media device, wherein the communication includes the transcoded media; and A non-transitory machine-readable storage medium that causes operations to be performed, including:

16. The operation is determining that an amount of time associated with the request to transmit the communication exceeds a threshold; removing the media, the signed uniform resource locator, and the identifier associated with the media; 20. The non-transitory machine-readable storage medium of claim 15, further comprising:

17. The non-transitory machine-readable storage medium of claim 15 , wherein the media comprises one or more of text, audio, images, or video.

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

19. 16. The non-transitory machine-readable storage medium of claim 15, wherein the media includes an image, and 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 operation is compressing a portion of the media to generate a reduced-size representation of the media, wherein the reduced-size representation of the media is configured to be presented by the media device as a representation of the media; storing the reduced size representation of the media in association with the media; 20. The non-transitory machine-readable storage medium of claim 15, further comprising: