Video decoding method and device for cloud phone
By using the SDK in the cloud phone service to actively detect the client hardware decoder properties and intelligently decide the video decoding format and resolution, the compatibility and experience issues caused by differences in client hardware decoding capabilities are resolved, achieving efficient video streaming and a better user experience.
Patent Information
- Application Number
- CN202410268762.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-03-08
- Publication Date
- 2025-09-19
- Estimated Expiration
- 2044-03-08
AI Technical Summary
In existing cloud phone services, differences in client hardware decoding capabilities lead to poor video streaming compatibility and user experience, requiring reliance on server-side whitelist configuration or collaboration. The operation process is complex and the streaming success rate is low.
Through the SDK, the client's hardware decoder properties are actively detected, the most appropriate video decoding format and resolution are intelligently determined, the video decoding standards supported by the client are automatically identified, and H265 or H264 are prioritized for streaming, simplifying the operation process.
It improves the quality and smoothness of video streaming, simplifies the operation process, increases the success rate of video streaming, and provides users with a better video experience.
Smart Images

Figure CN117956226B_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates to the field of cloud computing technology, specifically the field of cloud mobile phone technology, and can be applied to cloud gaming scenarios. Background Art
[0002] Cloud gaming is a gaming method based on cloud computing. In this mode, all games are run on the server, and the rendered game images are compressed and transmitted to the client over the network. The client does not require any high-end processors or graphics cards, only basic video decompression capabilities.
[0003] However, there are a wide variety of client brands and decoding chips, and each client has different hardware decoding capabilities. To ensure optimal compatibility and user experience, multiple video formats must be used for streaming. For example, in current cloud phone services, the increasingly popular H265 video format can be pushed through a server-side whitelist configuration. Only clients on the whitelist will use the H265 video format for streaming. All other clients will use the H264 video format by default. Summary of the Invention
[0004] The embodiments of the present disclosure provide a method, apparatus, device, storage medium, and program product for video decoding on a cloud phone.
[0005] In a first aspect, an embodiment of the present disclosure proposes a video decoding method for a cloud phone, comprising: in response to a client starting the cloud phone, detecting whether the client has a decoder for decoding videos of a first video compression standard; in response to the decoder having the ability to decode videos of the first video compression standard, decoding the pushed video of the cloud phone based on at least one resolution supported by the first video compression standard; in response to successful decoding of the pushed video based on at least one resolution, playing the video obtained by decoding the pushed video based on the first video compression standard.
[0006] In the second aspect, an embodiment of the present disclosure proposes a video decoding device for a cloud phone, including: a detection module, configured to detect whether the client has a decoder for decoding videos of a first video compression standard in response to the client starting the cloud phone; a decoding module, configured to decode the pushed streaming video of the cloud phone based on at least one resolution supported by the first video compression standard in response to the decoder having the ability to decode videos of the first video compression standard; a first playback module, configured to play the video obtained by decoding the pushed streaming video based on the first video compression standard in response to successful decoding of the pushed streaming video based on at least one resolution.
[0007] In a third aspect, an embodiment of the present disclosure proposes an electronic device comprising: at least one processor; and a memory communicatively connected to the at least one processor; wherein the memory stores instructions executable by the at least one processor, and the instructions are executed by the at least one processor to enable the at least one processor to execute the method described in the first aspect.
[0008] In a fourth aspect, an embodiment of the present disclosure proposes a non-transitory computer-readable storage medium storing computer instructions, where the computer instructions are used to enable a computer to execute the method described in the first aspect.
[0009] In a fifth aspect, an embodiment of the present disclosure proposes a computer program product, including a computer program, which implements the method described in the first aspect when executed by a processor.
[0010] The disclosed embodiment provides a video decoding method for a cloud phone. The SDK actively initiates decoding detection of the streaming video of the cloud phone, and combines the properties of the client's hardware decoder to intelligently decide the most appropriate video decoding format and resolution. There is no need to rely on the whitelist configuration on the server side or to cooperate with other departments, which simplifies the operation process. Through this pre-detection method, it can be ensured that the current client can use the optimal video format and resolution to initiate video streaming, thereby improving the quality and smoothness of the streaming video. It not only simplifies the processing flow of video streaming, but also improves the success rate of video streaming, providing users with a better video experience.
[0011] The key or important features of the embodiments of the present disclosure are not intended to limit the scope of the present disclosure. Other features of the present disclosure will become easily understood through the following description. BRIEF DESCRIPTION OF THE DRAWINGS
[0012] Other features, objects, and advantages of the present disclosure will become more apparent upon reading the detailed description of the non-limiting embodiments made with reference to the following drawings. The drawings are provided for a better understanding of the present disclosure and do not constitute a limitation of the present disclosure. Among them:
[0013] Figure 1 is an exemplary system architecture diagram to which the present application may be applied;
[0014] Figure 2 is a flow chart of an embodiment of a video decoding method for a cloud phone according to the present disclosure;
[0015] Figure 3 is a flowchart of another embodiment of a video decoding method of a cloud phone according to the present disclosure;
[0016] Figure 4 This is a flow chart of a scenario in which the video decoding method of the cloud phone disclosed herein can be implemented;
[0017] Figure 5 1 is a schematic structural diagram of an embodiment of a video decoding device for a cloud phone according to the present disclosure;
[0018] Figure 6 3 is a block diagram of an electronic device used to implement the video decoding method of the cloud phone in the embodiment of the present disclosure. DETAILED DESCRIPTION
[0019] The following description of exemplary embodiments of the present disclosure is made in conjunction with the accompanying drawings, including various details of the embodiments of the present disclosure to facilitate understanding. These details should be considered as merely exemplary. Therefore, those skilled in the art will recognize that various changes and modifications may be made to the embodiments described herein without departing from the scope and spirit of the present disclosure. Similarly, for the sake of clarity and conciseness, descriptions of well-known functions and structures are omitted in the following description.
[0020] It should be noted that, in the absence of conflict, the embodiments and features of the embodiments in the present disclosure may be combined with each other. The present disclosure will be described in detail below with reference to the accompanying drawings and in combination with the embodiments.
[0021] Figure 1 An exemplary system architecture 100 is shown in which the present application may be applied.
[0022] like Figure 1 As shown, system architecture 100 may include terminal device 101, network 102, and server 103. Network 102 is used to provide a medium for a communication link between terminal device 101 and server 103. Network 102 may include various connection types, such as wired or wireless communication links or fiber optic cables.
[0023] The user can use the terminal device 101 to interact with the server 103 through the network 102 to receive or send messages, etc. Various client applications can be installed on the terminal device 101, such as a cloud gaming application.
[0024] The terminal device 101 can be hardware or software. When the terminal device 101 is hardware, it can be various electronic devices, including but not limited to smartphones, tablet computers, laptop computers, and desktop computers. When the terminal device 101 is software, it can be installed in the electronic devices listed above. It can be implemented as multiple software or software modules (for example, multiple software or software modules for providing distributed services), or it can be implemented as a single software or software module. No specific limitations are given here.
[0025] Server 103 can be a server that provides various services, such as a backend server for a cloud gaming application. Cloud gaming can run on server 103 and compress the rendered game screen before transmitting it to terminal device 101 via network 102. Terminal device 101 decompresses the compressed game screen to display it.
[0026] It should be noted that the server 103 can be hardware or software. When the server 103 is hardware, it can be implemented as a distributed server cluster consisting of multiple servers, or it can be implemented as a single server. When the server 103 is software, it can be implemented as multiple software or software modules (for example, for providing distributed services), or it can be implemented as a single software or software module. No specific limitation is made here.
[0027] It should be noted that the video decoding method of the cloud phone provided in the embodiment of the present application is generally executed by the terminal device 101. Accordingly, the video decoding device of the cloud phone is generally set in the terminal device 101.
[0028] It should be understood that Figure 1 The number of terminal devices, networks and servers in the embodiment is merely illustrative. Any number of terminal devices, networks and servers may be provided as required.
[0029] Continue to refer Figure 2 , which shows a process 200 of an embodiment of a video decoding method of a cloud phone according to the present disclosure. The video decoding method of the cloud phone includes the following steps:
[0030] Step 201 , in response to the client starting the cloud phone, detecting whether the client has a decoder for decoding videos of a first video compression standard.
[0031] In this embodiment, when the client starts the cloud phone, it can detect whether the client has a decoder capable of decoding videos of the first video compression standard. If the client has a decoder capable of decoding videos of the first video compression standard, step 202 is continued.
[0032] Typically, the server can provide the client with an SDK (Software Development Kit) for streaming of the cloud phone. The client can install the SDK to integrate the cloud phone into the client. When the client starts the cloud phone, the SDK will be run and loaded. At this time, it can be detected whether the client has a decoder for decoding videos of the first video compression standard. Specifically, the client's configuration information can be obtained to determine whether it has a decoder for decoding videos of the first video compression standard.
[0033] A cloud phone is a mobile phone that applies cloud computing technology to network terminal services, accessing cloud services through cloud servers. Based on integrated end-to-end virtualization technology, cloud phones leverage digital capabilities such as cloud networking, security, and artificial intelligence to flexibly adapt to users' personalized needs, freeing up the phone's hardware resources to load a vast array of cloud applications on demand. Because cloud phones run on 5G networks, they can store complex calculations and large amounts of data in the cloud. Users can remotely control cloud phones in real time via video streaming, ultimately enabling the cloud-based operation of native Android apps and mobile games.
[0034] The first video compression standard may be, for example, a newly developed video compression standard that can provide higher video quality and lower bandwidth requirements, thereby enhancing the user's viewing experience and bringing better services to users. For example, in the current cloud phone service, the first video compression standard may be, for example, H265. Among them, H265 is also known as HEVC (High Efficiency Video Coding), which is one of the several potential successors to the widely used AVC (Advanced Video Coding). Compared with AVC, H265 provides approximately twice the data compression ratio at the same video quality level, or significantly improves video quality at the same bit rate. H265 supports multiple resolutions, among which the mainstream resolutions are 1080*1920 and 720*1280.
[0035] Step 202 : In response to a decoder capable of decoding videos in accordance with a first video compression standard, the streaming video of the cloud phone is decoded based on at least one resolution supported by the first video compression standard.
[0036] In this embodiment, if the client has a decoder for decoding videos of the first video compression standard, the streaming video of the cloud phone can be decoded based on at least one resolution supported by the first video compression standard.
[0037] Among them, the first video compression standard can support at least one resolution. Here, the pushed streaming video of the cloud phone can be decoded based on at least one resolution supported by the first video compression standard. For example, the first video compression standard supports two mainstream resolutions, and the pushed streaming video of the cloud phone can be decoded based on these two mainstream resolutions respectively. In some embodiments, the pushed streaming video of the cloud phone is first decoded based on the largest mainstream resolution. If the decoding is successful, the corresponding decoded video is obtained; if the decoding fails, the pushed streaming video of the cloud phone is decoded using the smallest mainstream resolution. If the decoding is successful, the corresponding decoded video is obtained. In some embodiments, the pushed streaming video of the cloud phone is decoded based on two mainstream resolutions at the same time. If only one mainstream resolution is decoded successfully, the decoded video corresponding to the successfully decoded resolution is obtained; if both mainstream resolutions are decoded successfully, the decoded video corresponding to the largest resolution is obtained. It can be seen that the above two embodiments can ensure that the client can use the optimal video format and resolution to initiate video streaming, thereby improving the quality and smoothness of the pushed streaming video.
[0038] Step 203 : In response to the successful decoding of the pushed stream video based on at least one resolution, a video obtained by decoding the pushed stream video based on the first video compression standard is played.
[0039] In this embodiment, if the push-stream video is successfully decoded based on at least one resolution, the video obtained by decoding the push-stream video based on the first video compression standard can be played. For example, if the push-stream video of the cloud phone is successfully decoded based on the maximum mainstream resolution, the video obtained by decoding the push-stream video of the cloud phone based on the maximum mainstream resolution can be played. If the push-stream video of the cloud phone fails to be decoded based on the maximum mainstream resolution, but the push-stream video of the cloud phone is successfully decoded based on the minimum mainstream resolution, the video obtained by decoding the push-stream video of the cloud phone based on the minimum mainstream resolution can be played.
[0040] The disclosed embodiment provides a video decoding method for a cloud phone. The SDK actively initiates decoding detection of the streaming video of the cloud phone, and combines the properties of the client's hardware decoder to intelligently decide the most appropriate video decoding format and resolution. There is no need to rely on the whitelist configuration on the server side or to cooperate with other departments, which simplifies the operation process. Through this pre-detection method, it can be ensured that the current client can use the optimal video format and resolution to initiate video streaming, thereby improving the quality and smoothness of the streaming video. It not only simplifies the processing flow of video streaming, but also improves the success rate of video streaming, providing users with a better video experience.
[0041] Further references Figure 3, which shows a process 300 of an embodiment of a video decoding method of a cloud phone according to the present disclosure. The video decoding method of the cloud phone includes the following steps:
[0042] Step 301: The client starts the cloud phone.
[0043] In this embodiment, the client can start the cloud phone.
[0044] Typically, the server provides the client with a cloud phone SDK for streaming. The client can install the SDK to integrate the cloud phone into the client. When the client launches the cloud phone, the SDK is run and loaded.
[0045] A cloud phone is a mobile phone that applies cloud computing technology to network terminal services, accessing cloud services through cloud servers. Based on integrated end-to-end virtualization technology, cloud phones leverage digital capabilities such as cloud networking, security, and artificial intelligence to flexibly adapt to users' personalized needs, freeing up the phone's hardware resources to load a vast array of cloud applications on demand. Because cloud phones run on 5G networks, they can store complex calculations and large amounts of data in the cloud. Users can remotely control cloud phones in real time via video streaming, ultimately enabling the cloud-based operation of native Android apps and mobile games.
[0046] Step 302: Detect whether the client has a decoder capable of decoding videos of the first video compression standard.
[0047] In this embodiment, when the client starts the cloud phone, it can detect whether the client has a decoder capable of decoding videos in the first video compression standard. If the client has a decoder capable of decoding videos in the first video compression standard, step 303 is executed; if the client does not have a decoder capable of decoding videos in the first video compression standard, step 310 is continued.
[0048] When the client starts the cloud phone, the SDK will be run and loaded. At this time, it can be detected whether the client has a decoder for decoding videos in the first video compression standard. Specifically, the client's configuration information can be obtained to determine whether it has a decoder for decoding videos in the first video compression standard.
[0049] The first video compression standard may be, for example, a newly developed video compression standard that can provide higher video quality and lower bandwidth requirements, thereby enhancing the user's viewing experience and bringing better services to users. For example, in the current cloud phone service, the first video compression standard may be, for example, H265. Among them, H265, also known as HEVC, is one of several potential successors to the widely used AVC. Compared with AVC, H265 provides approximately twice the data compression ratio at the same video quality level, or significantly improves video quality at the same bit rate. H265 supports multiple resolutions, among which the mainstream resolutions are 1080*1920 and 720*1280.
[0050] Step 303: Decode the pushed stream video using at least one resolution in descending order of resolution until the pushed stream video is successfully decoded.
[0051] In this embodiment, if the client has a decoder for decoding videos of the first video compression standard, the pushed video can be decoded using at least one resolution in descending order of resolution until the pushed video is successfully decoded.
[0052] The first video compression standard may support at least one resolution. For example, if the first video compression standard supports two mainstream resolutions, the cloud phone's pushed video can be decoded based on these two mainstream resolutions. Specifically, the cloud phone's pushed video is first decoded based on the largest mainstream resolution. If decoding is successful, decoding stops. If decoding fails, the cloud phone's pushed video is decoded using the smallest mainstream resolution.
[0053] Step 304: Determine whether the pushed video is successfully decoded using the maximum resolution among the at least one resolution.
[0054] In this embodiment, it is determined whether the pushed stream video is successfully decoded using the maximum resolution among the at least one resolution. If the pushed stream video is successfully decoded using the maximum resolution among the at least one resolution, step 305 is executed; if the pushed stream video is not successfully decoded using the maximum resolution among the at least one resolution, step 309 is executed.
[0055] Step 305: Determine the maximum resolution of the first video compression standard supported by the decoder.
[0056] In this embodiment, if the pushed video is successfully decoded using the maximum resolution among at least one resolution, the maximum resolution of the first video compression standard supported by the decoder can be determined. Specifically, the client configuration information can be obtained to determine the maximum resolution of the first video compression standard supported by the decoder. The maximum resolution of the first video compression standard supported by the decoder is related to the client configuration, and the maximum resolution of the first video compression standard supported by the decoders of different clients generally varies.
[0057] Step 306: Determine whether the maximum resolution of the first video compression standard supported by the decoder is greater than the maximum resolution of the at least one resolution.
[0058] In this embodiment, it is determined whether the maximum resolution of the first video compression standard supported by the decoder is greater than the maximum resolution of the at least one resolution. If the maximum resolution of the first video compression standard supported by the decoder is greater than the maximum resolution of the at least one resolution, step 307 is executed; if the maximum resolution of the first video compression standard supported by the decoder is not greater than the maximum resolution of the at least one resolution, step 308 is executed.
[0059] Step 307 : Play the video obtained by decoding the pushed stream video using the maximum resolution of the first video compression standard supported by the decoder.
[0060] In this embodiment, if the maximum resolution of the first video compression standard supported by the decoder is greater than the maximum resolution of at least one resolution, the video obtained by decoding the pushed video using the maximum resolution of the first video compression standard supported by the decoder can be played.
[0061] Step 308: Play a video obtained by decoding the pushed stream video using the maximum resolution among the at least one resolution.
[0062] In this embodiment, if the maximum resolution of the first video compression standard supported by the decoder is not greater than the maximum resolution of at least one resolution, a video obtained by decoding the pushed video using the maximum resolution of at least one resolution can be played.
[0063] Step 309 : Play the video obtained by decoding the pushed stream video using the resolution at which decoding is successful.
[0064] In this embodiment, if the pushed stream video is successfully decoded using at least one resolution other than the maximum resolution, a video obtained by decoding the pushed stream video using the successfully decoded resolution may be played.
[0065] Step 310: Determine the maximum resolution of the second video compression standard supported by the decoder.
[0066] In this embodiment, if decoding of the pushed video fails based on at least one resolution, the maximum resolution of the second video compression standard supported by the decoder can be determined. Specifically, the client configuration information can be obtained to determine the maximum resolution of the second video compression standard supported by the decoder. The maximum resolution of the second video compression standard supported by the decoder is related to the client configuration, and the maximum resolution of the second video compression standard supported by the decoders of different clients generally varies.
[0067] The second video compression standard can be, for example, a commonly used video compression standard. Typically, the second video compression standard supports a lower resolution than the first video compression standard. For example, in current cloud phone services, the first video compression standard can be H265, and the second video compression standard can be H264. H264 is a highly compressed digital video codec standard. H264's greatest advantage is its high data compression ratio. The low bit rate plays a significant role in H264's high compression ratio. H264 compression technology will significantly save users download time and data usage charges. It is particularly noteworthy that H264 not only achieves a high compression ratio but also produces high-quality and smooth images. Because of this, video data compressed by H264 requires less bandwidth during network transmission, making it more economical. H265 is a new video coding standard developed after H264. Compared to H264, it can provide higher video quality and lower bandwidth requirements.
[0068] Step 311 : Play a video obtained by decoding the pushed stream video using the maximum resolution of the second video compression standard supported by the decoder.
[0069] In this embodiment, after determining the maximum resolution of the second video compression standard supported by the decoder, the pushed video can be decoded using the maximum resolution of the second video compression standard supported by the decoder and the decoded video can be played. This ensures that even if decoding of the first video compression standard fails, the second video compression standard can still be used for pushing the video.
[0070] The disclosed embodiments provide a cloud phone video decoding method that can automatically detect and identify the decoding status of cloud phone videos supported by a client, and has the following significant advantages:
[0071] 1. Efficient Decision-Making: The SDK proactively detects the actual video decoding of the cloud phone's live streams and, based on the client's hardware decoder properties, intelligently determines the most appropriate video decoding format and resolution. This mechanism ensures that the H.265 video format is prioritized for high-quality, low-data-rate streaming, providing users with a superior viewing experience.
[0072] 2. Simplified process: No need to rely on server-side whitelist configuration or coordination with other departments, simplifying the operation process. This greatly accelerates the promotion of H265 video streaming.
[0073] 3. Improved success rate: By increasing detection of H265 and H264 and determining resolution, the probability of successful streaming connection on cloud phones has been increased. This improvement ensures the stability and reliability of streaming connections and reduces connection interruptions or failures.
[0074] In summary, automatic detection and intelligent decision-making simplify the operational process and improve the quality and success rate of video streaming. This provides users with a smoother, higher-quality cloud mobile video experience and a more efficient video streaming solution for service providers.
[0075] Further references Figure 4 , which shows a process 400 of a scenario in which the video decoding method of the cloud phone of the present disclosure can be implemented, including the following steps:
[0076] Step 401: Determine whether the mobile phone decoder supports H265. If so, execute steps 402 and 403; if not, execute step 409.
[0077] Step 402: Obtain the maximum width and height supported by the mobile phone H265 decoder.
[0078] Step 403: Check if the 1080*1920 H265 video is successfully decoded. If so, go to step 404; if not, go to step 407.
[0079] Step 404: Determine whether the maximum width and height are greater than 1080*1920. If so, proceed to step 405; if not, proceed to step 406.
[0080] Step 405: Obtain the maximum width and height supported by the mobile phone H265 decoder.
[0081] In step 406, the maximum value supported by the H265 decoder is 1080*1920.
[0082] Step 407: Check whether the 720*1280 H265 video is successfully decoded. If so, go to step 408; if not, go to step 409.
[0083] In step 408, the maximum value supported by the H265 decoder is 720*1280.
[0084] Step 409: H265 is not supported.
[0085] Step 410: Obtain the maximum width and height supported by the mobile phone H264 decoder.
[0086] In the scenario of implementing the video decoding method of the cloud phone disclosed in the present invention, when the SDK is loaded, a mechanism is designed to detect whether the mobile phone client has a hardware decoder for decoding H265 videos. If supported, hardware decoding attempts are made on the cloud phone streaming video in the H265 encoding format with two pre-built-in resolutions. By judging whether a complete video frame can be decoded, it can be determined whether the current mobile phone client has the ability to decode H265 videos. Once the decoding is successful, the maximum resolution supported by the client's current decoder for decoding H265 is also parsed so that the appropriate resolution can be selected during subsequent streaming.
[0087] If H265 decoding fails, the maximum resolution supported by the client's current decoder for H264 decoding will be analyzed. This step ensures that H264 can still be used for streaming even if H265 decoding fails.
[0088] This pre-detection method ensures that the current client can initiate video streaming using the optimal video format and resolution, thereby improving the quality and smoothness of the streaming. This design not only simplifies the video streaming process, but also increases the success rate of video streaming, providing users with a better video experience.
[0089] Further references Figure 5 As an implementation of the methods shown in the above figures, the present disclosure provides an embodiment of a video decoding device for a cloud phone. Figure 2 Corresponding to the method embodiment shown, the device can be specifically applied to various electronic devices.
[0090] like Figure 5 As shown, the video decoding device 500 of the cloud phone of this embodiment may include: a detection module 501, a decoding module 502, and a first playback module 503. The detection module 501 is configured to, in response to a client launching the cloud phone, detect whether the client has a decoder capable of decoding videos of a first video compression standard; the decoding module 502 is configured to, in response to the decoder having the decoder capable of decoding videos of the first video compression standard, decode the pushed stream video of the cloud phone based on at least one resolution supported by the first video compression standard; and the first playback module 503 is configured to, in response to successful decoding of the pushed stream video based on at least one resolution, play the video obtained by decoding the pushed stream video based on the first video compression standard.
[0091] In this embodiment, in the video decoding device 500 of the cloud phone, the specific processing of the detection module 501, the decoding module 502 and the first playback module 503 and the technical effects thereof can be referred to respectively. Figure 2 The relevant descriptions of steps 201-203 in the corresponding embodiment are not repeated here.
[0092] In some optional implementations of this embodiment, the decoding module 502 is further configured to: decode the pushed stream video using at least one resolution in descending order of resolution until the pushed stream video is successfully decoded.
[0093] In some optional implementations of this embodiment, the first playback module 503 is further configured to: in response to successful decoding of the pushed stream video using the maximum resolution among at least one resolution, determine the maximum resolution of the first video compression standard supported by the decoder; if the maximum resolution of the first video compression standard supported by the decoder is greater than the maximum resolution among at least one resolution, play the video obtained by decoding the pushed stream video using the maximum resolution of the first video compression standard supported by the decoder.
[0094] In some optional implementations of this embodiment, the first playback module 503 is further configured to: if the maximum resolution of the first video compression standard supported by the decoder is not greater than the maximum resolution of at least one resolution, play the video obtained by decoding the pushed streaming video using the maximum resolution of at least one resolution.
[0095] In some optional implementations of this embodiment, the first playback module 503 is further configured to: in response to successful decoding of the pushed stream video using at least one resolution other than the maximum resolution, play the video obtained by decoding the pushed stream video using the resolution at which the decoding is successful.
[0096] In some optional implementations of this embodiment, the video decoding device 500 of the cloud phone also includes: a determination module, configured to determine the maximum resolution of the second video compression standard supported by the decoder in response to a failure to decode the pushed stream video based on at least one resolution, wherein the resolution supported by the second video compression standard is lower than the resolution supported by the first video compression standard; a second playback module, configured to play the video obtained by decoding the pushed stream video using the maximum resolution of the second video compression standard supported by the decoder.
[0097] In the technical solutions disclosed herein, the acquisition, storage, and application of user personal information involved comply with the provisions of relevant laws and regulations and do not violate public order and good morals.
[0098] According to an embodiment of the present disclosure, the present disclosure also provides an electronic device, a readable storage medium, and a computer program product.
[0099] Figure 6A schematic block diagram of an example electronic device 600 that can be used to implement embodiments of the present disclosure is shown. The electronic device is intended to represent various forms of digital computers, such as laptop computers, desktop computers, workstations, personal digital assistants, servers, blade servers, mainframe computers, and other suitable computers. The electronic device can also represent various forms of mobile devices, such as personal digital assistants, cellular phones, smartphones, wearable devices, and other similar computing devices. The components shown herein, their connections and relationships, and their functions are provided as examples only and are not intended to limit the implementation of the present disclosure described and / or claimed herein.
[0100] like Figure 6 As shown, the device 600 includes a computing unit 601, which can perform various appropriate actions and processes according to a computer program stored in a read-only memory (ROM) 602 or a computer program loaded from a storage unit 608 into a random access memory (RAM) 603. Various programs and data required for the operation of the device 600 can also be stored in the RAM 603. The computing unit 601, the ROM 602, and the RAM 603 are connected to each other via a bus 604. An input / output (I / O) interface 605 is also connected to the bus 604.
[0101] Various components in device 600 are connected to I / O interface 605, including an input unit 606, such as a keyboard, mouse, etc.; an output unit 607, such as various types of displays, speakers, etc.; a storage unit 608, such as a magnetic disk, optical disk, etc.; and a communication unit 609, such as a network card, modem, wireless communication transceiver, etc. The communication unit 609 allows device 600 to exchange information / data with other devices via a computer network such as the Internet and / or various telecommunication networks.
[0102] The computing unit 601 can be a variety of general and / or special processing components with processing and computing capabilities. Some examples of the computing unit 601 include, but are not limited to, a central processing unit (CPU), a graphics processing unit (GPU), various dedicated artificial intelligence (AI) computing chips, various computing units that run machine learning model algorithms, digital signal processors (DSPs), and any appropriate processors, controllers, microcontrollers, etc. The computing unit 601 performs the various methods and processes described above, such as the video decoding method of the cloud phone. For example, in some embodiments, the video decoding method of the cloud phone can be implemented as a computer software program that is tangibly contained in a machine-readable medium, such as a storage unit 608. In some embodiments, part or all of the computer program can be loaded and / or installed on the device 600 via the ROM 602 and / or the communication unit 609. When the computer program is loaded into the RAM 603 and executed by the computing unit 601, one or more steps of the video decoding method of the cloud phone described above can be performed. Alternatively, in other embodiments, the computing unit 601 can be configured to execute the video decoding method of the cloud phone by any other appropriate means (e.g., by means of firmware).
[0103] Various embodiments of the systems and techniques described herein can be implemented in digital electronic circuit systems, integrated circuit systems, field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), application specific standard products (ASSPs), system-on-chip systems (SOCs), programmable logic devices (CPLDs), computer hardware, firmware, software, and / or combinations thereof. These various embodiments can include being implemented in one or more computer programs that are executable and / or interpreted on a programmable system that includes at least one programmable processor, which can be a special purpose or general purpose programmable processor that can receive data and instructions from a storage system, at least one input device, and at least one output device, and transmit data and instructions to the storage system, the at least one input device, and the at least one output device.
[0104] The program code for implementing the method of the present disclosure can be written in any combination of one or more programming languages. These program codes can be provided to a processor or controller of a general-purpose computer, a special-purpose computer, or other programmable data processing device so that when the program code is executed by the processor or controller, the functions / operations specified in the flow chart and / or block diagram are implemented. The program code can be executed entirely on the machine, partially on the machine, as a stand-alone software package, partially on the machine and partially on a remote machine, or entirely on a remote machine or server.
[0105] In the context of the present disclosure, a machine-readable medium can be a tangible medium that can contain or store a program for use by or in conjunction with an instruction execution system, device or equipment. A machine-readable medium can be a machine-readable signal medium or a machine-readable storage medium. A machine-readable medium can include, but is not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, device or equipment, or any suitable combination of the foregoing. A more specific example of a machine-readable storage medium can include an electrical connection based on one or more lines, a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing.
[0106] To provide interaction with a user, the systems and techniques described herein can be implemented on a computer having: a display device (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) for displaying information to the user; and a keyboard and pointing device (e.g., a mouse or trackball) through which the user can provide input to the computer. Other types of devices can also be used to provide interaction with the user; for example, the feedback provided to the user can be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback); and input from the user can be received in any form (including acoustic input, voice input, or tactile input).
[0107] The systems and techniques described herein can be implemented in a computing system that includes back-end components (e.g., as a data server), or a computing system that includes middleware components (e.g., an application server), or a computing system that includes front-end components (e.g., a user computer having a graphical user interface or a web browser through which a user can interact with implementations of the systems and techniques described herein), or a computing system that includes any combination of such back-end components, middleware components, or front-end components. The components of the system can be interconnected by any form or medium of digital data communication (e.g., a communication network). Examples of communication networks include a local area network (LAN), a wide area network (WAN), and the Internet.
[0108] A computer system may include a client and a server. The client and server are generally remote from each other and typically interact through a communication network. The client-server relationship arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other. The server may be a cloud server, a server in a distributed system, or a server integrated with a blockchain.
[0109] It should be understood that the various forms of processes shown above can be used to reorder, add, or delete steps. For example, the steps described in this disclosure can be performed in parallel, sequentially, or in a different order, as long as the desired results of the technical solutions provided by this disclosure can be achieved. This is not limited herein.
[0110] The above specific embodiments do not constitute a limitation on the scope of protection of this disclosure. Those skilled in the art will appreciate that various modifications, combinations, sub-combinations, and substitutions may be made based on design requirements and other factors. Any modifications, equivalent substitutions, and improvements made within the spirit and principles of this disclosure shall be included within the scope of protection of this disclosure.
Claims
1. A video decoding method for a cloud phone, comprising: In response to a client launching a cloud phone, detecting whether the client has a decoder capable of decoding a video of a first video compression standard, wherein the server provides the client with an SDK for streaming of the cloud phone, the client installing the SDK to integrate the cloud phone into the client, and when the client launches the cloud phone, running and loading the SDK to detect whether the client has a decoder capable of decoding a video of the first video compression standard; In response to a decoder capable of decoding videos of the first video compression standard, decoding the streaming video of the cloud phone based on at least one resolution supported by the first video compression standard; In response to successful decoding of the pushed stream video based on the at least one resolution, a video obtained by decoding the pushed stream video based on the first video compression standard is played.
2. The method according to claim 1, wherein The decoding of the streaming video of the cloud phone based on at least one resolution supported by the first video compression standard includes: The pushed stream video is decoded using the at least one resolution in descending order of resolution until the pushed stream video is successfully decoded.
3. The method according to claim 2, wherein: The playing of the video obtained by decoding the pushed stream video based on the first video compression standard includes: In response to successfully decoding the pushed stream video using a maximum resolution among the at least one resolution, determining a maximum resolution of the first video compression standard supported by the decoder; If the maximum resolution of the first video compression standard supported by the decoder is greater than the maximum resolution of the at least one resolution, a video obtained by decoding the pushed stream video using the maximum resolution of the first video compression standard supported by the decoder is played.
4. The method according to claim 3, wherein: The playing of the video obtained by decoding the pushed stream video based on the first video compression standard further includes: If the maximum resolution of the first video compression standard supported by the decoder is not greater than the maximum resolution of the at least one resolution, a video obtained by decoding the pushed stream video using the maximum resolution of the at least one resolution is played.
5. The method according to claim 4, wherein The playing of the video obtained by decoding the pushed stream video based on the first video compression standard further includes: In response to successfully decoding the pushed stream video using a resolution other than the maximum resolution among the at least one resolution, playing a video obtained by decoding the pushed stream video using the successfully decoded resolution.
6. The method according to any one of claims 1 to 5, wherein The method further comprises: In response to a failure in decoding the pushed stream video based on the at least one resolution, determining a maximum resolution of a second video compression standard supported by the decoder, wherein the resolution supported by the second video compression standard is lower than the resolution supported by the first video compression standard; Play a video obtained by decoding the pushed stream video using the maximum resolution of the second video compression standard supported by the decoder.
7. A video decoding device for a cloud phone, comprising: a detection module configured to detect, in response to a client launching a cloud phone, whether the client has a decoder capable of decoding videos of a first video compression standard, wherein a server provides an SDK for streaming of the cloud phone to the client, the client installs the SDK to integrate the cloud phone into the client, and when the client launches the cloud phone, runs and loads the SDK to detect whether the client has a decoder capable of decoding videos of the first video compression standard; a decoding module configured to decode the streaming video of the cloud phone based on at least one resolution supported by the first video compression standard in response to a decoder capable of decoding videos of the first video compression standard; The first playback module is configured to, in response to successful decoding of the push-stream video based on the at least one resolution, play a video obtained by decoding the push-stream video based on the first video compression standard.
8. The device according to claim 7, wherein The decoding module is further configured to: The pushed stream video is decoded using the at least one resolution in descending order of resolution until the pushed stream video is successfully decoded.
9. The device according to claim 8, wherein The first playback module is further configured to: In response to successfully decoding the pushed stream video using a maximum resolution among the at least one resolution, determining a maximum resolution of the first video compression standard supported by the decoder; If the maximum resolution of the first video compression standard supported by the decoder is greater than the maximum resolution of the at least one resolution, a video obtained by decoding the pushed stream video using the maximum resolution of the first video compression standard supported by the decoder is played.
10. The device according to claim 9, wherein The first playback module is further configured to: If the maximum resolution of the first video compression standard supported by the decoder is not greater than the maximum resolution of the at least one resolution, a video obtained by decoding the pushed stream video using the maximum resolution of the at least one resolution is played.
11. The device according to claim 10, wherein The first playback module is further configured to: In response to successfully decoding the pushed stream video using a resolution other than the maximum resolution among the at least one resolution, playing a video obtained by decoding the pushed stream video using the successfully decoded resolution.
12. The device according to any one of claims 7 to 11, wherein: The device further comprises: a determining module configured to, in response to a failure in decoding the pushed stream video based on the at least one resolution, determine a maximum resolution of a second video compression standard supported by the decoder, wherein the resolution supported by the second video compression standard is lower than the resolution supported by the first video compression standard; The second playback module is configured to play a video obtained by decoding the pushed stream video using the maximum resolution of the second video compression standard supported by the decoder.
13. An electronic device comprising: at least one processor; as well as a memory communicatively connected to the at least one processor; wherein, The memory stores instructions that can be executed by the at least one processor, and the instructions are executed by the at least one processor to enable the at least one processor to perform the method according to any one of claims 1 to 6.
14. A non-transitory computer-readable storage medium storing computer instructions, wherein the computer instructions are configured to cause the computer to execute the method according to any one of claims 1 to 6.
15. A computer program product comprising a computer program, which, when executed by a processor, implements the method according to any one of claims 1 to 6.
Citation Information
Patent Citations
Video processing method and device, electronic equipment and computer readable storage medium
CN113542795A
Live broadcast stream pushing method and device
CN114173160A