Method and apparatus for communication, and device and medium

WO2025185601A8PCT designated stage Publication Date: 2025-10-02BEIJING ZITIAO NETWORK TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2025/080424
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-03-05
Filing Date
2025-03-04
Publication Date
2025-10-02

AI Technical Summary

Technical Problem

In the existing technology, the signaling interaction process during the start of audio and video live broadcast takes a long time, resulting in a long first frame time and poor user experience. In addition, the uncertainty of the signaling interaction time causes excessive fluctuation in the first frame time.

Method used

The initialization process of the media engine instance is decoupled from the acquisition of authentication information, and the creation instruction and authentication information are sent to the second component through the first component, so that the SDP-based media capability negotiation process and the initialization process of the media engine instance are executed in parallel at the first component and the second component.

Benefits of technology

It effectively reduces the signaling interaction time during the start-up process, shortens the first frame time, alleviates the first frame time fluctuation caused by the uncertainty of signaling interaction time, and improves the user's viewing experience.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2025080424_02102025_PF_FP_ABST
    Figure CN2025080424_02102025_PF_FP_ABST
Patent Text Reader

Abstract

Provided in the embodiments of the present disclosure are a method and apparatus for communication, and a device and a medium. In the method, a first component sends to a second component a creation instruction for creating, at the second component, a media engine instance for the first component, wherein the media engine instance is used for communicating with a server to acquire streaming media data for the first component; furthermore, the first component sends authentication information to the second component, wherein the authentication information is used for using the media engine instance to establish a connection with the server at the second component. In this way, the time consumption of a signaling exchange process can be effectively reduced.
Need to check novelty before this filing date? Find Prior Art

Description

Method, apparatus, device and medium for communication

[0001] This application claims priority to the Chinese invention patent application entitled “Methods, Apparatus, Devices and Media for Communication” filed on March 5, 2024, with application number 202410251745.9, the entire contents of which are incorporated herein by reference. Technical Field

[0002] Embodiments of the present disclosure generally relate to the field of computers, and more particularly, to methods, apparatuses, devices, and media for communication. Background Art

[0003] In recent years, mobile terminals such as mobile phones and tablet computers have become important tools for people's daily life, study and work. Live audio and video broadcasting has become an increasingly popular way of online interaction. For example, people can use mobile terminals to watch live broadcasts, hold remote meetings, and so on. Real Time Media (RTM) live broadcasting is a live broadcasting solution that aims to enhance the user interaction experience. Compared with conventional live broadcasting solutions, RTM live broadcasting has a smaller end-to-end delay, for example, it can reach 1 second. Since the live broadcast startup process involves a signaling interaction process, how to reduce the time consumption of the signaling interaction process has become an urgent problem to be solved. Summary of the Invention

[0004] In a first aspect of the present disclosure, a method for communication is provided. In this method, a first component sends a creation instruction to a second component to create a media engine instance for the first component at the second component. The media engine instance is used to communicate with a server to obtain streaming media data for the first component. Furthermore, the first component sends authentication information to the second component. The authentication information is used by the second component to establish a connection with the server using the media engine instance.

[0005] In a second aspect of the present disclosure, another method for communication is provided. In this method, in response to receiving a creation instruction from a first component, a second component creates a media engine instance for the first component. The media engine instance is used to communicate with a server to obtain streaming media data for the first component. The second component receives authentication information from the first component. Further, based on the authentication information, the second component uses the media engine instance to establish a connection with the server.

[0006] In a third aspect of the present disclosure, a device for communication is provided. The device includes an instruction sending module and an information sending module. The instruction sending module is configured to send a creation instruction to a second component for creating a media engine instance for a first component at the second component, where the media engine instance is used to communicate with a server to obtain streaming media data for the first component. The information sending module is configured to send authentication information to the second component, where the authentication information is used to establish a connection between the second component and the server using the media engine instance.

[0007] In a fourth aspect of the present disclosure, another apparatus for communication is provided. The apparatus includes a creation module, a receiving module, and a connection module. The creation module is configured to, in response to receiving a creation instruction from a first component, create a media engine instance for the first component, the media engine instance being used to communicate with a server to obtain streaming media data for the first component. The receiving module is configured to receive authentication information from the first component. The connection module is configured to establish a connection with the server using the media engine instance based on the authentication information.

[0008] In a fifth aspect of the present disclosure, an electronic device is provided. The electronic device includes: at least one processor; and at least one memory, the at least one memory being coupled to the at least one processor and storing instructions for execution by the at least one processor, wherein the instructions, when executed by the at least one processor, cause the electronic device to perform the method according to the first or second aspect of the present disclosure.

[0009] In a sixth aspect of the present disclosure, a computer-readable storage medium is provided, on which instructions are stored. When the instructions are executed by a processor, the processor implements the method according to the first aspect or the second aspect of the present disclosure.

[0010] It should be understood that the content described in this summary section is not intended to limit the key features or important features of the embodiments of the present disclosure, nor is it 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

[0011] The above and other features, advantages and aspects of the embodiments of the present disclosure will become more apparent hereinafter with reference to the following detailed description in conjunction with the accompanying drawings. In the accompanying drawings, the same or similar reference numerals represent the same or similar elements, wherein:

[0012] FIG1 is a schematic diagram illustrating an example environment in which various embodiments of the present disclosure can be implemented;

[0013] FIG2 shows a signaling diagram for communication according to some embodiments of the present disclosure;

[0014] FIG3 shows a flow chart of a method for communication according to some embodiments of the present disclosure;

[0015] FIG4 shows a flow chart of a method for communication according to some embodiments of the present disclosure;

[0016] FIG5 illustrates a block diagram of an example apparatus for communication according to some embodiments of the present disclosure;

[0017] FIG6 illustrates a block diagram of an example apparatus for communication according to some embodiments of the present disclosure; and

[0018] FIG7 illustrates a block diagram of a device in which one or more embodiments of the present disclosure may be implemented. DETAILED DESCRIPTION

[0019] The following describes embodiments of the present disclosure in more detail with reference to the accompanying drawings. Although certain embodiments of the present disclosure are shown in the accompanying drawings, it should be understood that the present disclosure can be implemented in various forms and should not be construed as limited to the embodiments described herein. Rather, these embodiments are provided to provide a more thorough and complete understanding of the present disclosure. It should be understood that the drawings and embodiments of the present disclosure are for illustrative purposes only and are not intended to limit the scope of protection of the present disclosure.

[0020] In the description of the embodiments of the present disclosure, the term "including" and similar terms should be understood as open inclusion, that is, "including but not limited to". The term "based on" should be understood as "based at least in part on". The term "one embodiment" or "the embodiment" should be understood as "at least one embodiment". The term "some embodiments" should be understood as "at least some embodiments". The following may also include other explicit and implicit definitions. As used herein, the term "model" can represent the association relationship between various data. For example, the above-mentioned association relationship can be obtained based on a variety of technical solutions currently known and / or to be developed in the future.

[0021] As used herein, the term "in response to" refers to a state in which a corresponding event occurs or a condition is satisfied. It will be understood that the timing of executing a subsequent action executed in response to the event or condition is not necessarily strongly correlated with the time when the event occurs or the condition is satisfied. For example, in some cases, the subsequent action may be executed immediately when the event occurs or the condition is satisfied; in other cases, the subsequent action may be executed some time after the event occurs or the condition is satisfied.

[0022] It is understandable that the data involved in this technical solution (including but not limited to the data itself, the acquisition or use of the data) must comply with the requirements of relevant laws, regulations and relevant provisions.

[0023] It is understandable that before using the technical solutions disclosed in the various embodiments of this disclosure, the type, scope of use, usage scenarios, etc. of the personal information involved in this disclosure should be informed to the user and the user's authorization should be obtained in an appropriate manner in accordance with relevant laws and regulations.

[0024] For example, in response to a user's active request, a prompt message is sent to the user to clearly inform the user that the operation requested will require the acquisition and use of the user's personal information. This allows the user to independently choose whether to provide personal information to the electronic device, application, server, storage medium, or other software or hardware that performs the operations of the disclosed technical solution based on the prompt message.

[0025] As an optional but non-limiting embodiment, in response to receiving a user's active request, the prompt information may be sent to the user in the form of a pop-up window, in which the prompt information may be presented in text form. Furthermore, the pop-up window may also include a selection control for the user to select "agree" or "disagree" to provide personal information to the electronic device.

[0026] It is understandable that the above notification and user authorization process are merely illustrative and do not limit the embodiments of the present disclosure. Other methods that meet relevant laws and regulations may also be applied to the embodiments of the present disclosure.

[0027] Sample Environment

[0028] FIG1 shows a schematic diagram of an example environment 100 in which various embodiments of the present disclosure can be implemented. The example environment 100 may generally include a terminal device 110, a server 120, and a user 130. The terminal device 110 may be communicatively coupled to the server 120. In some embodiments, the terminal device 110 may communicate directly with the server 120. In other embodiments, a content delivery network (CDN) may be deployed between the terminal device 110 and the server 120, so that the terminal device 110 can obtain the required content nearby. The embodiments of the present disclosure are not limited in this respect.

[0029] The terminal device 110 can be any type of mobile terminal or portable terminal, including a mobile phone, a laptop computer, a notebook computer, a netbook computer, a tablet computer, a media computer, a multimedia tablet, a personal communication system (PCS) device, a personal navigation device, a personal digital assistant (PDA), an audio / video player, a digital camera / camcorder, a positioning device, a television receiver, a radio broadcast receiver, an e-book device, a gaming device, or any combination thereof, including accessories and peripherals of these devices or any combination thereof. In some embodiments, the terminal device 110 can also support any type of interface for the user 130 (such as a "wearable" circuit, etc.).

[0030] As shown in FIG1 , terminal device 110 may include a media engine 112 and a client 114. For example, media engine 112 may communicate with server 120 to send or receive streaming media data. Media engine 112 may also be responsible for framing and outputting frames. Client 114 may, for example, be an application client for viewing live broadcasts. Client 114 may interact with media engine 112 (e.g., by calling media engine 112) to obtain streaming media data.

[0031] In some embodiments, server 120 may include a signaling server and a media server. For example, server 120 may be a device with computing and communication capabilities, such as a workstation or cloud server. It should be understood that the structure and functionality of environment 100 are described for exemplary purposes only and do not imply any limitation on the scope of this disclosure. For example, media engine 112 and client 114 may also be implemented in a distributed manner on different devices.

[0032] As briefly mentioned above, live audio and video streaming technology is becoming increasingly widely used. A key metric for the live audio and video viewing experience is first frame time, which refers to the time it takes for the user to click Start to play until the first frame of the video is displayed. In existing solutions, during the broadcast startup process, the client calls the media engine to create a media engine instance. The media engine initializes the PeerConnectionFactory object and creates a PeerConnection object. Furthermore, the media engine obtains authentication information for establishing the connection and creates a Session Description Protocol (SDP) offer for negotiating media capabilities. The media engine sends the SDP offer to the client, and the client forwards the SDP offer to the server for subsequent connection establishment. As can be seen, in conventional solutions, the initialization process of the media engine instance, the acquisition of authentication information, and the SDP-based media capability negotiation process are performed serially at the media engine, resulting in a lengthy signaling interaction process. This results in a longer first frame time, which in turn leads to a poor viewing experience for users. Furthermore, the serial execution of these processes may increase the uncertainty of signaling interaction time, causing the first frame time to fluctuate excessively, impacting the user experience.

[0033] To this end, the various embodiments of the present disclosure propose a solution for decoupling the initialization process of a media engine instance from the acquisition of authentication information. Specifically, according to an embodiment of the present disclosure, a solution for communication is proposed. In this solution, a first component sends a creation instruction to a second component for creating a media engine instance for the first component at the second component. The media engine instance is used to communicate with a server to obtain streaming media data for the first component. Furthermore, the first component sends authentication information to the second component. The authentication information is used to establish a connection with the server using the media engine instance at the second component. Correspondingly, according to an embodiment of the present disclosure, another solution for communication is proposed. In this solution, in response to receiving a creation instruction from the first component, the second component creates a media engine instance for the first component. Furthermore, the second component receives authentication information from the first component, and establishes a connection with the server using the media engine instance based on the authentication information.

[0034] It will be more clearly understood through the description below that, according to an embodiment of the present disclosure, the creation instruction of the first component triggers the second component to create a media engine instance for the first component, and the first component sends authentication information to the second component for the media engine instance to establish a connection with the server. In this way, the acquisition of authentication information can be decoupled from the initialization process of the media engine instance, so that the first component does not need to wait for the authentication information provided by the second component. This further allows the subsequent SDP-based media capability negotiation process to be decoupled from the initialization process of the media engine instance, so that the SDP-based media capability negotiation process and the initialization process of the media engine instance can be executed in parallel at the first component and the second component. In this way, on the one hand, the time consumption of the signaling interaction process in the startup process can be effectively reduced, thereby reducing the first frame time. On the other hand, it can effectively alleviate the problem of excessive fluctuation of the first frame time introduced by the uncertainty of the signaling interaction time, thereby improving the user's viewing experience.

[0035] Example signaling

[0036] FIG2 shows a signaling diagram 200 for communication according to some embodiments of the present disclosure. The signaling diagram 200 generally relates to a first component 201 and a second component 202. In some embodiments, the first component 201 can be implemented as the client 114 in FIG1 , and the second component 202 can be implemented as the media engine 112 in FIG1 . Additionally, the signaling diagram 200 can also relate to the server 120 shown in FIG1 . It should be understood that the first component 201 and / or the second component 202 can also be implemented as any other suitable software module and / or hardware device. The scope of the present disclosure is not limited in this respect.

[0037] As shown in FIG2 , the first component 201 sends 205 to the second component 202 a creation instruction for creating a media engine instance for the first component 201 at the second component 202. The media engine instance is used to communicate with the server 120 to obtain streaming media data for the first component 201. By way of example and not limitation, the streaming media data includes live broadcast data (e.g., RTM live broadcast data), online video data, etc. In some embodiments, the first component 201 may send the creation instruction in response to a trigger operation for the first component 201.

[0038] In response to receiving 210 a create instruction from the first component 201, the second component 202 creates 215 a media engine instance for the first component 201. By way of example and not limitation, the second component 202 may initialize a PeerConnectionFactory object of the media engine 112 and create a PeerConnection object.

[0039] In addition, the first component 201 sends 230 authentication information to the second component 202. The authentication information is used to establish a connection with the server 120 using the media engine instance at the second component 202. In some embodiments, the authentication information may include username information. Exemplarily, the username information may be indicated by an ufrag attribute. Alternatively or additionally, the authentication information may include password information. Exemplarily, the password information may be indicated by a password attribute. It should be understood that the authentication information may also include any other suitable information, and the scope of the present disclosure is not limited in this respect.

[0040] In some embodiments, the authentication information may be predetermined. Alternatively, the authentication information may be generated at the first component 201, for example, based on a preset configuration. In this way, the acquisition of the authentication information may be decoupled from the initialization process of the media engine instance, so that the first component 201 does not need to wait for the media engine instance at the second component 202 to generate the authentication information. In this way, on the one hand, the time consumption of the signaling interaction process during the start-up process can be effectively reduced, thereby reducing the first frame time. On the other hand, the problem of excessive first frame time fluctuation introduced by the uncertainty of the signaling interaction time can be effectively alleviated, thereby improving the user's viewing experience.

[0041] Furthermore, the second component 202 receives 235 authentication information from the first component 201 and establishes 265 a connection with the server 120 using the media engine instance based on the authentication information. By way of example and not limitation, the authentication information can be used to verify the legitimacy of the session during the Session Traversal Utilities for Network Address Translation (STUN) phase for network address translation. For example, the second component 202 can use the media engine instance to send a STUN packet containing the authentication information to the server 120. If the server 120 determines through verification that the authentication information received from the second component 202 is correct, the server 120 can establish a connection with the media engine instance. Furthermore, the server 120 can send a Real-time Transport Protocol (RTP) packet containing streaming media data to the second component 202. In this way, the legitimacy of the connection established with the server 120 can be ensured with the help of the authentication information, thereby improving the security of streaming media data transmission.

[0042] In some embodiments, the first component 201 may further send 220 a Session Description Protocol (SDP) proposal for negotiating media capabilities to the server 120. Exemplarily, the SDP proposal may include media codec capability information, such as media codec capability information supported by the client 114. Examples of media codec capability information include, but are not limited to, media streams and / or codec parameter sets supported by the proposer, and the like.

[0043] The inventors have found through research that for some specific live broadcast scenarios (for example, RTM live broadcast, etc.), the media configuration of the live broadcast is fixed. Therefore, in this case, the media codec capability information can also be predetermined without being generated by the media engine instance. This allows the first component 201 to directly generate an SDP proposal based on the locally available media codec capability information and / or authentication information without waiting for the second component 202 to provide relevant information. In this way, the SDP-based media capability negotiation process can be decoupled from the initialization process of the media engine instance, so that the SDP-based media capability negotiation process and the media engine instance initialization process can be executed in parallel at the first component 201 and the second component 202. In this way, on the one hand, the time consumption of the signaling interaction process in the startup process can be effectively reduced, thereby reducing the first frame time. On the other hand, the problem of excessive first frame time fluctuation introduced by the uncertainty of the signaling interaction time can be effectively alleviated, thereby improving the user's viewing experience.

[0044] In some embodiments, media codec capability information may be indicated by a codec payload type. The codec payload type may be transmitted, for example, in an RTP packet. By way of example and not limitation, a codec payload type equal to a first value may indicate that client 114 supports the H.264 codec standard, while a codec payload type equal to a second value may indicate that client 114 supports the H.265 codec standard. In this manner, media codec capability information may be transmitted more efficiently, thereby improving transmission efficiency.

[0045] Additionally or alternatively, the SDP offer may include the above-mentioned authentication information. It should be understood that the SDP offer may also include any other suitable information, such as the Internet Protocol (IP) address and port used by the offeror to receive media data, etc. The scope of the present disclosure is not limited in this respect.

[0046] In response to receiving 225 the SDP offer from the first component 201, the server 120 may send 240 an SDP answer to the SDP offer to the first component 201. For example, if the server 120 accepts the offer, the server 120 may generate an SDP message (i.e., an SDP answer) to describe the sessions that the server 120 can accept based on the received offer and the server 120's own capabilities. For example, in the answer, there may be a matching stream for each media stream in the offer, indicating whether the media stream is accepted. Additionally, the answer may also include codec parameters to be used, and the IP address and port that the server 120 expects to use to receive media data, etc.

[0047] Further, the first component 201 may receive 245 the SDP response from the server 120 and send 250 the SDP response to the second component 202. Correspondingly, the second component 202 may receive 255 the SDP response from the first component 201 and set 260 the remote SDP description information based on the SDP response. This may be achieved, for example, by calling the SetRemoteDescription method of the media engine 112. In this way, the SDP-based media capability negotiation process may be decoupled from the initialization process of the media engine instance, so that the SDP-based media capability negotiation process and the initialization process of the media engine instance may be executed in parallel at the first component 201 and the second component 202. In this way, on the one hand, the time consumption of the signaling interaction process during the startup process may be effectively reduced, thereby reducing the first frame time; on the other hand, the problem of excessive first frame time fluctuation caused by the uncertainty of the signaling interaction time may be effectively alleviated, thereby improving the user's viewing experience.

[0048] In some embodiments, at 265, the connection can be established based on an interactive connectivity establishment (ICE) process. For example, the media engine instance can collect local IP addresses and port numbers to create ICE candidates. The media engine instance can send the ICE candidates directly to the server 120. Furthermore, the server 120 returns an ICE response to the media engine instance to establish the ICE connection. In this way, the connection can be established more efficiently.

[0049] It should be understood that the order of description above and the reference numerals for the various actions in FIG2 do not imply a limitation on the order in which the various actions are performed. The actions involved in the solutions according to the various embodiments of the present disclosure can be performed in any suitable order. For example, the first component 201 can send 220 an SDP proposal 225 to the server 120 at the same time as sending 205 a creation instruction to the second component 202. For another example, the first component 201 can send 230 authentication information to the second component 202 at the same time as sending 220 an SDP proposal 225 to the server 120. The scope of the present disclosure is not limited in this respect.

[0050] From the above description in combination with Figures 1 and 2, it can be seen that in the method for communication according to each embodiment of the present disclosure, the creation instruction of the first component triggers the second component to create a media engine instance for the first component, and the first component sends authentication information to the second component for the media engine instance to establish a connection with the server. In this way, the acquisition of authentication information can be decoupled from the initialization process of the media engine instance, so that the first component does not need to wait for the authentication information provided by the second component. This further allows the subsequent SDP-based media capability negotiation process to be decoupled from the initialization process of the media engine instance, so that the SDP-based media capability negotiation process and the initialization process of the media engine instance can be executed in parallel at the first component and the second component. In this way, on the one hand, the time consumption of the signaling interaction process during the startup process can be effectively reduced, thereby reducing the first frame time. On the other hand, it can effectively alleviate the problem of excessive fluctuation in the first frame time introduced by the uncertainty of the signaling interaction time, thereby improving the user's viewing experience.

[0051] Example Method

[0052] FIG3 illustrates a flow chart of a method 300 for communication according to some embodiments of the present disclosure. In some embodiments, the method 300 may be executed at the client 114 shown in FIG1 or the first component 201 shown in FIG2. It should be understood that the method 300 may include additional blocks not shown and / or may omit one (or some) of the blocks shown, and the scope of the present disclosure is not limited in this respect.

[0053] In block 302, a first component sends a creation instruction to a second component for creating a media engine instance for the first component at the second component. The media engine instance is used to communicate with a server to obtain streaming media data for the first component.

[0054] At block 304, the first component sends authentication information to the second component. The authentication information is used by the second component to establish a connection with the server using the media engine instance.

[0055] In some embodiments, the authentication information is predetermined or generated at the first component.

[0056] In some embodiments, the authentication information includes at least one of the following: user name information, password information.

[0057] In some embodiments, the method 300 further includes: sending a Session Description Protocol (SDP) offer for negotiating media capabilities to the server; receiving an SDP answer to the SDP offer from the server; and sending the SDP answer to the second component.

[0058] In some embodiments, the SDP proposal includes at least one of the following: authentication information and media codec capability information.

[0059] In some embodiments, the media codec capability information is predetermined.

[0060] In some embodiments, the media codec capability information is indicated by a codec payload type.

[0061] In some embodiments, the connection is established based on an Interactive Connection Establishment (ICE) procedure.

[0062] In some embodiments, the streaming media data includes low-latency RTM live data.

[0063] In some embodiments, the first component comprises a client and the second component comprises a media engine.

[0064] FIG4 shows a flow chart of a method 400 for communication according to some embodiments of the present disclosure. In some embodiments, the method 400 may be executed at the media engine 112 shown in FIG1 or the second component 202 shown in FIG2. It should be understood that the method 400 may also include additional blocks not shown and / or may omit one (or some) of the blocks shown, and the scope of the present disclosure is not limited in this respect.

[0065] In block 402, in response to receiving a creation instruction from a first component, a second component creates a media engine instance for the first component, wherein the media engine instance is used to communicate with a server to obtain streaming media data for the first component.

[0066] At block 404, the second component receives authentication information from the first component.

[0067] At block 406 , based on the authentication information, the second component establishes a connection with the server using the media engine instance.

[0068] In some embodiments, the authentication information is predetermined or generated at the first component.

[0069] In some embodiments, the authentication information includes at least one of the following: user name information, password information.

[0070] In some embodiments, the method 400 further includes: receiving an SDP answer to the SDP offer for negotiating media capabilities from the first component; and setting the remote SDP description information based on the SDP answer.

[0071] In some embodiments, the SDP proposal includes at least one of the following: authentication information and media codec capability information.

[0072] In some embodiments, the media codec capability information is predetermined.

[0073] In some embodiments, the media codec capability information is indicated by a codec payload type.

[0074] In some embodiments, the connection is established based on an Interactive Connection Establishment (ICE) procedure.

[0075] In some embodiments, the streaming media data includes low-latency RTM live data.

[0076] In some embodiments, the first component comprises a client and the second component comprises a media engine.

[0077] Example devices and equipment

[0078] Embodiments of the present disclosure also provide corresponding apparatuses and devices for implementing the above-described methods or processes. FIG5 illustrates a block diagram of an example apparatus 500 for communication according to some embodiments of the present disclosure. The apparatus 500 can, for example, be used to implement the methods according to some embodiments of the present disclosure. In some embodiments, the apparatus 500 can be used to implement the client 114 shown in FIG1 or the first component 201 shown in FIG2.

[0079] As shown in FIG5 , apparatus 500 may include an instruction sending module 502 and an information sending module 504. Instruction sending module 502 is configured to send a creation instruction to a second component for creating a media engine instance for a first component at the second component. The media engine instance is used to communicate with a server to obtain streaming media data for the first component. Information sending module 504 is configured to send authentication information to the second component. The authentication information is used to establish a connection with the server using the media engine instance at the second component.

[0080] In some embodiments, the authentication information is predetermined or generated at the first component.

[0081] In some embodiments, the authentication information includes at least one of the following: user name information, password information.

[0082] In some embodiments, the apparatus 500 further includes a proposal sending module, a response receiving module, and a response sending module. The proposal sending module is configured to send a Session Description Protocol (SDP) proposal for negotiating media capabilities to the server. The response receiving module is configured to receive an SDP response to the SDP proposal from the server. The response sending module is configured to send the SDP response to the second component.

[0083] In some embodiments, the SDP proposal includes at least one of the following: authentication information and media codec capability information.

[0084] In some embodiments, the media codec capability information is predetermined.

[0085] In some embodiments, the media codec capability information is indicated by a codec payload type.

[0086] In some embodiments, the connection is established based on an Interactive Connection Establishment (ICE) procedure.

[0087] In some embodiments, the streaming media data includes low-latency RTM live data.

[0088] In some embodiments, the first component comprises a client and the second component comprises a media engine.

[0089] FIG6 shows a block diagram of an example apparatus 600 for communication according to some embodiments of the present disclosure. The apparatus 600 can be used, for example, to implement methods according to some embodiments of the present disclosure. In some embodiments, the apparatus 600 can be used to implement the media engine 112 shown in FIG1 or the second component 202 shown in FIG2.

[0090] As shown in Figure 6, apparatus 600 may include a creation module 602, a receiving module 604, and a connection module 606. Creation module 602 is configured to, in response to receiving a creation instruction from a first component, create a media engine instance for the first component. The media engine instance is used to communicate with a server to obtain streaming media data for the first component. Receiving module 604 is configured to receive authentication information from the first component. Connection module 606 is configured to establish a connection with the server using the media engine instance based on the authentication information.

[0091] In some embodiments, the authentication information is predetermined or generated at the first component.

[0092] In some embodiments, the authentication information includes at least one of the following: user name information, password information.

[0093] In some embodiments, the apparatus 600 further includes a response receiving module and a setting module. The response receiving module is configured to receive an SDP response to an SDP proposal for negotiating media capabilities from the first component. The receiving module is configured to set remote SDP description information based on the SDP response.

[0094] In some embodiments, the SDP proposal includes at least one of the following: authentication information and media codec capability information.

[0095] In some embodiments, the media codec capability information is predetermined.

[0096] In some embodiments, the media codec capability information is indicated by a codec payload type.

[0097] In some embodiments, the connection is established based on an Interactive Connection Establishment (ICE) procedure.

[0098] In some embodiments, the streaming media data includes low-latency RTM live data.

[0099] In some embodiments, the first component comprises a client and the second component comprises a media engine.

[0100] The modules and / or units included in the device 500 and / or the device 600 can be implemented in various ways, including software, hardware, firmware or any combination thereof. In some embodiments, one or more units can be implemented using software and / or firmware, such as machine executable instructions stored on a storage medium. In addition to or as an alternative to machine executable instructions, some or all of the units in the device 500 and / or the device 600 can be implemented at least in part by one or more hardware logic components. By way of example and not limitation, exemplary types of hardware logic components that can be used include field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), application specific standard products (ASSPs), system on chip (SOCs), complex programmable logic devices (CPLDs), and the like.

[0101] The modules and / or units shown in Figures 5 and / or 6 may be implemented in part or in whole as hardware modules, software modules, firmware modules, or any combination thereof. In particular, in some embodiments, the processes, methods, or procedures described above may be implemented by hardware in a storage system, a host corresponding to the storage system, or other computing devices independent of the storage system.

[0102] FIG7 shows a block diagram of a device 700 in which one or more embodiments of the present disclosure may be implemented. It should be understood that the electronic device 700 shown in FIG7 is merely exemplary and should not be construed as limiting the functionality and scope of the embodiments described herein. The electronic device 700 shown in FIG7 can be used to implement the media engine 112, client 114, first component 201, second component 202 shown in FIG1 and / or the methods described above.

[0103] As shown in FIG7 , electronic device 700 is a general-purpose electronic device. Components of electronic device 700 may include, but are not limited to, one or more processing units or processors 710, memory 720, storage device 730, one or more communication units 740, one or more input devices 750, and one or more output devices 760. Processor 710 may be a real or virtual processor and is capable of executing various processes according to programs stored in memory 720. In a multi-processor system, multiple processing units execute computer-executable instructions in parallel to increase the parallel processing capabilities of electronic device 700.

[0104] The electronic device 700 typically includes a plurality of computer storage media. Such media can be any available media accessible to the electronic device 700, including but not limited to volatile and non-volatile media, removable and non-removable media. The memory 720 can be a volatile memory (e.g., registers, cache, random access memory (RAM)), a non-volatile memory (e.g., read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory) or some combination thereof. The storage device 730 can be a removable or non-removable medium and can include a machine-readable medium, such as a flash drive, a disk or any other medium, which can be used to store information and / or data (e.g., training data for training) and can be accessed within the electronic device 700.

[0105] The electronic device 700 may further include additional removable / non-removable, volatile / non-volatile storage media. Although not shown in FIG. 7 , a disk drive for reading from or writing to a removable, non-volatile disk (e.g., a “floppy disk”) and an optical drive for reading from or writing to a removable, non-volatile optical disk may be provided. In these cases, each drive may be connected to a bus (not shown) by one or more data media interfaces. The memory 720 may include a computer program product 725 having one or more program modules configured to perform various methods or actions of various implementations of the present disclosure.

[0106] The communication unit 740 enables communication with other electronic devices via a communication medium. Additionally, the functions of the components of the electronic device 700 can be implemented as a single computing cluster or multiple computing machines that can communicate via a communication connection. Thus, the electronic device 700 can operate in a networked environment using a logical connection with one or more other servers, a network personal computer (PC), or another network node.

[0107] Input device 750 may be one or more input devices, such as a mouse, keyboard, or trackball. Output device 760 may be one or more output devices, such as a display, a speaker, or a printer. Electronic device 700 may also communicate with one or more external devices (not shown) via communication unit 740 as needed, such as storage devices, display devices, or the like, with one or more devices that allow a user to interact with electronic device 700, or with any device that allows electronic device 700 to communicate with one or more other electronic devices (e.g., a network card, a modem, etc.). Such communication may be performed via an input / output (I / O) interface (not shown).

[0108] According to an exemplary implementation of the present disclosure, a computer-readable storage medium is provided, on which computer-executable instructions are stored, wherein the computer-executable instructions are executed by a processor to implement the method described above. According to an exemplary implementation of the present disclosure, a computer program product is also provided, which is tangibly stored on a non-transitory computer-readable medium and includes computer-executable instructions, and the computer-executable instructions are executed by a processor to implement the method described above. According to an exemplary implementation of the present disclosure, a computer program product is provided, on which a computer program is stored, and when the program is executed by a processor, the method described above is implemented.

[0109] Various aspects of the present disclosure are described herein with reference to flowcharts and / or block diagrams of methods, apparatuses, devices, and computer program products implemented according to the present disclosure. It should be understood that each block of the flowcharts and / or block diagrams, and combinations of blocks in the flowcharts and / or block diagrams, can be implemented by computer-readable program instructions.

[0110] These computer-readable program instructions can be provided to a processing unit of a general-purpose computer, a special-purpose computer, or other programmable data processing device, thereby producing a machine, such that when these instructions are executed by the processing unit of the computer or other programmable data processing device, a device is generated that implements the functions / actions specified in one or more blocks in the flowchart and / or block diagram. These computer-readable program instructions can also be stored in a computer-readable storage medium, where these instructions cause the computer, programmable data processing device, and / or other device to operate in a specific manner. Thus, the computer-readable medium storing the instructions comprises an article of manufacture that includes instructions for implementing various aspects of the functions / actions specified in one or more blocks in the flowchart and / or block diagram.

[0111] Computer-readable program instructions can be loaded onto a computer, other programmable data processing apparatus, or other device so that a series of operational steps are performed on the computer, other programmable data processing apparatus, or other device to produce a computer-implemented process, thereby causing the instructions executed on the computer, other programmable data processing apparatus, or other device to implement the functions / actions specified in one or more boxes in the flowchart and / or block diagram.

[0112] The flow charts and block diagrams in the accompanying drawings show the possible architecture, functions and operations of the systems, methods and computer program products according to multiple implementations of the present disclosure. In this regard, each box in the flow chart or block diagram can represent a part for a module, program segment or instruction, and a part for a module, program segment or instruction comprises one or more executable instructions for realizing the logical function of the specification. In some alternative implementations, the functions marked in the box can also occur in a sequence different from that marked in the accompanying drawings. For example, two continuous boxes can actually be executed substantially in parallel, and they can sometimes be executed in the opposite order, depending on the functions involved. It should also be noted that each box in the block diagram and / or flow chart, and the combination of the boxes in the block diagram and / or flow chart can be realized by a special hardware-based system that performs the function or action of the specification, or can be realized by a combination of special hardware and computer instructions.

[0113] While various implementations of the present disclosure have been described above, the foregoing description is intended to be illustrative, not exhaustive, and not limited to the disclosed implementations. Many modifications and variations will be apparent to those skilled in the art without departing from the scope and spirit of the described implementations. The terminology used herein is selected to best explain the principles of the implementations, their practical applications, or improvements to existing technologies, or to enable others skilled in the art to understand the various implementations disclosed herein.

Claims

1. A method for communication, comprising: The first component sends a creation instruction to the second component for creating a media engine instance for the first component at the second component, wherein the media engine instance is used to communicate with a server to obtain streaming media data for the first component; as well as The first component sends authentication information to the second component, where the authentication information is used to establish a connection with the server using the media engine instance at the second component. 2 . The method according to claim 1 , wherein the authentication information is predetermined or generated at the first component.

3. The method according to claim 1, wherein the authentication information includes at least one of the following: user name information and password information.

4. The method according to claim 1, further comprising: Sending a Session Description Protocol (SDP) proposal for negotiating media capabilities to the server; receiving an SDP answer to the SDP offer from the server; as well as The SDP answer is sent to the second component.

5. The method according to claim 4, wherein the SDP proposal includes at least one of the following: the authentication information and media codec capability information. The method according to claim 5 , wherein the media codec capability information is predetermined. The method according to claim 5 , wherein the media codec capability information is indicated by a codec payload type.

8. The method according to claim 1, wherein the connection is established based on an Interactive Connection Establishment (ICE) procedure.

9. The method according to claim 1, wherein the streaming media data comprises low-latency RTM live broadcast data.

10. The method of any one of claims 1 to 9, wherein the first component comprises a client and the second component comprises a media engine.

11. A method for communication, comprising: In response to receiving a creation instruction from the first component, the second component creates a media engine instance for the first component, the media engine instance being used to communicate with a server to obtain streaming media data for the first component; A second component receives authentication information from the first component; as well as Based on the authentication information, the second component establishes a connection with the server using the media engine instance.

12. The method of claim 11, wherein the authentication information is predetermined or generated at the first component.

13. The method according to claim 11, wherein the authentication information comprises at least one of the following: user name information and password information.

14. The method according to claim 11, further comprising: receiving, from the first component, an SDP answer to the SDP offer for negotiating media capabilities; as well as Based on the SDP response, remote SDP description information is set.

15. The method according to claim 14, wherein the SDP proposal includes at least one of the following: the authentication information and media codec capability information. The method according to claim 15 , wherein the media codec capability information is predetermined. The method of claim 15 , wherein the media codec capability information is indicated by a codec payload type.

18. The method of claim 11, wherein the connection is established based on an Interactive Connection Establishment (ICE) procedure.

19. The method according to claim 11, wherein the streaming media data comprises low-latency RTM live data.

20. The method of any one of claims 11 to 19, wherein the first component comprises a client and the second component comprises a media engine.

21. An apparatus for communication, comprising: an instruction sending module, configured to: send a creation instruction for creating a media engine instance for the first component at the second component to the second component, the media engine instance being used to communicate with a server to obtain streaming media data for the first component; as well as The information sending module is configured to: send authentication information to the second component, where the authentication information is used to establish a connection with the server using the media engine instance at the second component.

22. An apparatus for communication, comprising: a creation module configured to: in response to receiving a creation instruction from a first component, create a media engine instance for the first component, the media engine instance being used to communicate with a server to obtain streaming media data for the first component; A receiving module is configured to: receive authentication information from the first component; as well as The connection module is configured to: establish a connection with the server using the media engine instance based on the authentication information.

23. An electronic device comprising: at least one processor; as well as At least one memory, the at least one memory being coupled to the at least one processor and storing instructions for execution by the at least one processor, the instructions, when executed by the at least one processor, causing the electronic device to perform the method according to any one of claims 1 to 10 or the method according to any one of claims 11 to 20.

24. A computer-readable storage medium having instructions stored thereon, which, when executed by a processor, cause the processor to implement the method according to any one of claims 1 to 10 or the method according to any one of claims 11 to 20.

25. A computer program product tangibly stored in a computer storage medium and comprising computer executable instructions which, when executed by a device, cause the device to perform the method of any one of claims 1 to 10 or the method of any one of claims 11 to 20.