Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
SYSTEM AND METHOD FOR DATA COMMUNICATION
Document Type and Number:
WIPO Patent Application WO/2022/211786
Kind Code:
A1
Abstract:
The subject application relates to a data communication system and data communication method. The data communication includes a receiving unit, determining unit, and a transferring unit. The receiving unit is configured to receive an action performed by a user terminal. The determining unit is connected to the receiving unit and configured to determine a communication protocol toward the user terminal according to the action. The communication protocol is transferred to the user terminal, and the user terminal requests real-time data via the communication protocol. According to the subject application, the satisfaction for the user to watch the live streaming is improved and the user experience is also optimized.

Inventors:
CHANG YUCHUAN (TW)
CHEN YUCHUN (TW)
Application Number:
PCT/US2021/024810
Publication Date:
October 06, 2022
Filing Date:
March 30, 2021
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
17LIVE USA CORP (US)
International Classes:
H04L12/00
Foreign References:
US20190098687A12019-03-28
US20200186580A12020-06-11
US20150089077A12015-03-26
Attorney, Agent or Firm:
GUSEV, Vladimir Y. (US)
Download PDF:
Claims:
CLAIMS

1. A data communication system, comprising: a receiving unit, configured to receive an action performed by a user terminal; and a determining unit, connected to the receiving unit and configured to determine a communication protocol toward the user terminal according to the action, wherein the communication protocol is transferred to the user terminal for the user terminal to request real-time data via the communication protocol.

2. The data communication system according to claim 1, wherein the receiving unit further receives available communication protocols mutually applicable to the user terminal and a server, and the determining unit selects the communication protocol from the available communication protocols and further determines the communication protocol according to the action.

3. The data communication system according to claim 1, wherein the determining unit further includes a predicting element, the predicting element is configured to predict a following action according to the action, the determining unit determines the communication protocol according to the following action.

4. The data communication system according to claim 3, wherein the predicting element collects a plurality of historical data from the user terminal to predict the following action.

5. The data communication system according to claim 1, wherein the action further includes an interaction action, the interaction action transmits and/or receives interaction data, or transmits and receives streaming data, and the determining unit determines the communication protocol according to the interaction action.

6. The data communication system according to claim 1, wherein the action further includes a non-interaction action, the non-interaction action receives without transmitting streaming data or transmits without receiving streaming data, and the determining unit determines the communication protocol according to the non-interaction action.

7. The data communication system according to claim 1, wherein die determining unit determines the communication protocol for the user terminal to receive the streaming data with audio contents only.

8. The data communication system according to claim 1, wherein the determining unit determines the communication protocol for the user terminal to receive the streaming data with video contents only.

9. The data communication system according to claim 1, wherein the determining unit determines the communication protocol for the user terminal to transmit the streaming data with audio contents and/or video contents.

10. The data communication system according to claim 1, wherein the determining unit determines the communication protocol for the user terminal to receive or transmit the interaction data.

11. The data communication system according to claim 1, wherein the determining unit determines the communication protocol for the user terminal to receive and transmit the interaction data.

12. The data communication system according to claim 1, wherein tire determining unit determines the communication protocol for the user terminal to receive streaming data from different user terminals continuously in a short time.

13. The data communication system according to claim 1, wherein the determining unit determines the communication protocol for the user terminal to receive streaming data from different user terminals concurrently.

14. The data communication system according to claim 1, further comprising a feedback collecting unit, the feedback collecting unit being collecting feedback from the user terminal and transmitting the feedback to the determining unit, wherein the determining unit determines the communication protocol according to the feedback.

15. The data communication system according to claim 1, the determining unit determines the communication protocol according to internet quality, the internet quality is evaluated by indexes of first render, video latency, buffering ratio or buffering count.

16. A data communication method, comprising: receiving an action performed by an user terminal; and determining a communication protocol toward the user terminal according to the action, wherein the communication protocol is transferred to the user terminal for the user terminal to request real-time data via the communication protocol.

17. The data communication method according to claim 16, wherein the action further includes an interaction action, the interaction action transmits and/or receives interaction data, or transmits and receives streaming data, and the determining unit determines the communication protocol according to the interaction action.

18. The data communication method according to claim 16, wherein the action further includes a non-interaction action, the non-interaction action receives without transmitting streaming data or transmits without receiving streaming data, and the determining unit determines the communication protocol according to the non-interaction action.

19. The data communication method according to claim 16, wherein the determining unit determines the communication protocol for the user terminal to receive streaming data from different user terminals continuously in a short time.

20. The data communication method according to claim 16, wherein the determining unit determines the communication protocol for the user terminal to receive streaming data from different user terminals concurrently.

Description:
SYSTEM AND METHOD FOR DATA COMMUNICATION

Field of the Invention

This disclosure relates to information and communication technology, and in particular, to a system and a method for data communication.

Background

Technologies for enabling users to have mutual on-line communication are known. Communication protocols are necessary for users to transmit and receive data via the internet. With the vigorous development of communication technology, real-time communication such as video calls and live streaming is in great demand.

There are a lot of communication protocols for real-time communication. With different communication protocols, the advantages and disadvantages are all different. Some communication protocols are good for real-time interactions with low latency while some communication protocols guarantee the smoothness of the streaming.

Different communication protocols are requested in different scenarios. For example, for the users who want to have real-time interaction such as playing interactive games, communication protocols with low latency are necessary. If the communication protocols are not appropriate, it might cause any sort of user dissatisfaction. Therefore, it is a very' important issue to communicate via appropriate communication protocols in response to different scenarios.

Summary

An embodiment of subject application relates to a data communication system, comprising: a receiving unit, configured to receive an action performed by a user terminal; and a determining unit, connected to the receiving unit and configured to determine a communication protocol toward the user terminal according to the action. The communication protocol is transferred to the user terminal for the user terminal to request real-time data via the communication protocol.

Another embodiment of subject application relates to a data communication method, comprising: receiving an action performed by a user terminal; and determining a communication protocol toward the user terminal according to the action. The communication protocol is transferred to the user terminal for the user terminal to request real-time data via the communication protocol.

The present invention switches different communication protocols while the user terminal takes different actions in different scenarios. Therefore, the satisfaction for the user to watch the live streaming is improved and the user experience is also optimized.

Brief description of the drawings

FIG. 1 is a schematic configuration of a communication system 1 according to some embodiments of the subject application;

FIG. 2 is a schematic block diagram of the data communication system 100 according to some embodiments of the subject application;

FIG. 3 is an exemplary functional configuration of the action A;

FIG. 4 is an exemplary functional configuration of the action A;

FIG. 5 is an exemplary functional configuration of the action A;

FIG. 6 is an exemplary functional configuration of the action A;

FIG. 7 is an exemplary functional configuration of the action A;

FIG. 8 is an exemplary sequence chart illustrating an operation of the communication system 1 and the data communication system 100.

Detailed Description

FIG. 1 shows a schematic configuration of a communication system 1 according to some embodiments of tire subject application. The communication system 1 provides a live streaming service with interaction via content. Here, the term “content” refers to digital content that can be played on a computer device. In other words, the communication system 1 enables a user to have a real-time interaction with other users on-line. The communication system 1 includes plural user terminals 10, an interaction server 30, and a streaming server 40. The user terminals 10, the interaction server 30, and the streaming server 40 are connected via a network 90, which is the Interet, for example. The interaction server 30 is a server for synchronizing interaction feedback. In some embodiments, the interaction server 30 may be referred to as the backend server of an APP. The streaming server 40 is a server for providing live streaming. In some embodiments, the streaming server 40 may be referred to as a CDN provider. In some embodiments, the interaction server 30 and the streaming server 40 may be integrated into one server. The user terminals 10 are client devices for the live streaming. In some embodiments, the user terminal 10 may be referred to as viewer, streamer, podcaster, audience, listener or the like. Each of the user terminal 10, the interaction server 30, and the streaming server 40 is an example of an information-processing device.

FIG. 2 is a schematic block diagram of the data communication system 100 according to some embodiments of the subject application. The data communication system 100 includes a receiving unit 110, a determining unit 120 and a transferring unit 130. The receiving unit 110 is configured to receive an action A performed by a user terminal 10. In some embodiments, the receiving unit 110 may include a storage element, the storage element is configured to store the action A collected from the user terminal 10. The determining unit 120 is connected to the receiving unit 110 and configured to determine a communication protocol P toward the user terminal 10 according to the action A. The transferring unit 130 is connected to the determining unit 120 and configured to transfer the communication protocol P to the interaction server 30 and/or the streaming server 40. In some embodiments, the interaction server 30 and/or the streaming server 40 may receive and/or transmit real-time data toward the user terminal 10 via the communication protocol P in response to the action A.

As shown in FIG. 2, the user terminal 10 performs an action A and the receiving unit 110 receives the action A performed by the user terminal 10. In some embodiments, the action A may include requesting receiving and/or transmitting real-time data from and/or to a server. Then, the receiving unit 110 transmits the action A to the determining unit 120, and the determining unit 120 determines a communication protocol P toward the user terminal 10 according to the action A. Then, the transferring unit 130 receives the communication protocol P determined by the determining unit 120 and transfers the communication protocol P to the interaction server 30. The interaction server 30 transmits the communication protocol P to the user terminal 10 for the user terminal 10 to request the streaming data. In some embodiments the data communication system 100 may be integrated into the interaction server 30. More specifically, the receiving unit 110, determining unit 120 and the transferring unit 130 may be integrated into the interaction server 30. The interaction server 30 may include storage for storing the action A performed by the user terminal 10. In some embodiments, the storage may be configured to store historical action A performed by the user terminal A. For the user terminal 10 which gets access to the interaction server 30 first time, the determining unit 120 may determine a communication protocol P toward the user terminal 10 according to the historical action A. For the user terminal 10 which gets involved in the interaction server 30 for a specific time, the determining unit 120 may determine a communication protocol P toward the user terminal 10 according to the real-time action A.

The action A may refer to an operation the user terminal 10 performed in an APP. The action A may include clicking, sending, interacting, swiping, silencing, muting, expanding, minimizing, or other operations the user 10 may perform, and the combination of above. In some embodiments, the action A may be achieved by clicking a graphical object such as a button or audio input, or the like. For example, the user terminal 10 may click a gift to send the gift to the streamer. The user terminal 10 may minimize the live stream screen or display the live stream room in a picture-in-picture mode while multitasking with other APPs or other live streaming at the same time. The user terminal 10 may silence or mute the live stream while watching the live streaming in a quiet place. The user terminal 10 may click a button to have an audio and/or video communication with viewers or streamers. The user terminal 10 may play interactive games with the viewers or streamers in the APP.

There are a lot of communication protocols for real-time data communication such as HLS, RTP(WebRTC), RTMP, RTSP, DASH, MirrorOP and so on, and each communication protocol P has its advantages and disadvantages for real-time data communication. In the present invention, the communication protocols of HLS, RTC(WebRTC), and RTMP are taken as examples to discuss. Table 1 shows the exemplary communication protocol P and the advantages and disadvantages for reference.

When it comes to real-time interaction, video latency may be one of the most important indexes to be considered. Here, the index “video latency” may refer to the degree of delay between the time the streaming data is transferred from one user terminal and the time the first frame of the streaming data is rendered at the other user terminal. WebRTC offers near real-time latency with less than 0.5 seconds, so WebRTC is highly recommended for real-time interaction. Similarly, the latency of RTMP is often 5-8 seconds, so RTMP is also recommended for real-time data communication. However, HLS has relatively high latency compared with WebRTC and RTMP, so HLS is not recommended for real-time interaction.

When it comes to the smoothness of the live streaming, low buffering may be some of the most important indexes to be considered. The index “buffering” may further be classified into “buffering ratio” and “buffering count”. The index “buffering ratio” refers to the ratio of the buffering time to the totally watching time. The index “buffering count” refers to the number of times the buffering occurs. HLS (HTTP Live Streaming) is an Hl lP-based adaptive bitrate streaming communication protocol. HLS measures the internet speed available to each viewer and changes the quality accordingly to ensure the smoothness of the streaming data. Therefore, HLS is recommended for the smoothness of the live streaming.

RTMP is based on Transmission Control Protocol (TCP), and it allows data communication in a given sequence and order with a delivery guarantee. One of the advantages of RTMP is that the time to first render is relatively short compared with WebRTC and HLS. Here, the index “first render”, which may also be called “time to view”, refers to the time from the streaming data being requested to the first frame of the streaming data being rendered. Therefore, RTMP is recommended for the action A of requesting a short time to first render.

In some embodiment, the real-time data may include streaming data and interaction data. The streaming data refers to audio contents and/or video contents. The audio contents and video contents may be collected from a microphone or camera from the user terminal 10. The interaction data refers to data showing interaction with the user terminals 10. For example, the interaction data may refer to operations the user terminal 10 performed to interact with other user terminals 10. For example, the user terminal 10 may click a gift to send the gift to the streamer. The user terminal 10 may click the enter button to send a message to the streamer. The terminal 10 may click the game button to have an interactive game with the streamer.

FIG. 3-7 are exemplary functional configurations of the action A. In FIG. 3 to FIG. 7, the user terminal 10, the interaction server 30 and the streaming server 40 are shown. The interaction server 30 transmits and receives interaction data and the streaming server 40 transmits and receives streaming data. The user terminal 10 includes an interaction unit 11, a decoder 12, a display 13, a streaming input 14 and an encoder 15. The interaction unit 11 receives interaction data from the interaction server 30 and/or transmits interaction data to the interaction server 30. The decoder 12 decodes the streaming data from the streaming server 40 and the display 13 displays the streaming data, the streaming input 14 collects streaming data from tire user terminal 10. The encoder 15 encodes the streaming data collected from the streaming input 14 and transmits the streaming data to the streaming server 40. In some embodiments, the streaming input 14 may be a microphone or a camera for collecting audio contents and video contents from the user terminal 10.

In some embodiments, the action A may further include an interaction action Ai and a non-interaction action Ani. The determining unit 120 may determine the communication protocol P toward the user terminal 10 according to the interaction action Ai and the non-interaction action Ani. In some embodiments, the interaction action Ai may refer to the actions A that transmits and/or receives interaction data. For example, If the user terminal 10 clicks the gift button to send a gift to the streamer, the user terminal 10 transmits an interaction data to the streamer. In this situation, tire action A of sending a gift may be referred to as an interaction action Ai. If the user terminal 10 clicks the game button to have an interactive game with the streamer such as shooting monsters together, the user terminal 10 transmits interaction data to the streamer and receives interaction data from the streamer. In this situation, the action A of playing interactive games may be referred to as an interaction action Ai.

In some embodiments, the interaction action Ai may also refer to the actions that transmit and receive streaming data. For example, the viewer may click the voice call button or video call button to invite the streamer to have a voice chat or video chat. In this situation, the action A of inviting the streamer to have a voice chat or video chat may be referred to as an interaction action Ai.

The non-interaction action Ai may refer to the actions A of receiving without transmitting streaming data or transmitting without receiving streaming data. For example, if the user terminal 10 watches the streamer without doing anything, the user terminal 10 receives the streaming data from the streamer without transmitting streaming data or interaction data to the streamer. In this situation, the action A of watching the streamer may be referred to as a noninteraction action Ai. If the user terminal 10 is live broadcasting without interaction with other user terminals 10, the user terminal 10 transmits the streaming data without receiving any streaming data or interaction data. In this situation, tire action A of live broadcasting may be referred to as a noninteraction action Ai.

FIG. 3 shows an exemplary functional configuration of the non-interaction action Am. In some embodiments, the user terminal 10 may be referred to as a viewer, listener, audience or the like. The user terminal 10 requests receiving streaming data from the streaming server 40. The streaming data may include the audio and video contents from the streamer. As shown in FIG. 3, the user terminal 10 receives streaming data from the streaming server 40 and the decoder 12 decodes the streaming data to display the streaming data on the display 13. According to the action A, the user terminal 10 requests receiving streaming data, so it shows that the user terminal 10 would like to watch a streamer. Therefore, the action A may be referred to as a non-interaction action Ani. In response to the non-interaction action Ani, the buffering and first render of the streaming data would be the first priority to fulfill the user satisfaction. Therefore, the determining unit 120 may determine the HLS or RTMP as the communication protocol P toward the user terminal 10 according to the action A. In some embodiments, when the user terminal 10 clicks a streamer and enters a streaming room, a short first render is preferred. Therefore, the communication protocol P of RTMP is recommended. In some embodiments, after entering the streaming room, the low buffering is preferred. Therefore, the communication protocol P of HLS may be recommended.

In some embodiments, the determining unit 120 may further determine the communication protocol P toward tire user terminal 10 according to the internet quality of the user terminal 10. For example, if the internet quality of the user terminal 10 is good, the communication protocol P of RTMP is recommended. On the other hand, if the internet quality of the user terminal 10 is bad, the communication protocol P of HLS is recommended. In some embodiments, the good and bad of the internet quality may be evaluated according to the index of latency, buffering, first render or the like. For example, if the buffering is high, it shows that the user terminal’s internet quality is bad. On the other hand, if the buffering is low, it shows that the user terminal’s internet quality is good. The determining unit 120 may further determine the communication protocol P according to the internet quality of the user terminal 10.

In some embodiments, the streaming data may be audio contents only, the determining unit 120 may determine the communication protocol P toward the user terminal 10 for receiving the streaming data with audio contents only. For example, the user terminal 10 may minimize the live stream to listen to the streamer’s voice only, or the user terminal 10 may click a podcaster to listen to the live podcasting. In response to the action A of pulling streaming data with audio contents only, the communication protocol P of RTMP may be recommended, for example. Therefore, the determining unit 120 determines RTMP as the communication protocol P toward the user terminal 10. The communication protocol P of RTMP may pull the streaming data with audio contents only to lower the network traffic, so that the audio contents may be played smoothly.

In some embodiments, the streaming data may be video contents only, the determining unit 120 may determine the communication protocol P toward the user terminal 10 for receiving the streaming data with video contents only. For example, the user terminal 10 may silence or mute the live stream to watch streamer’s video only when the user terminal 10 is at a quiet place such as the library. In response to the action A of pulling streaming data with video contents only, the communication protocol P of RTMP and HLS may be recommended. Therefore, the determining unit 120 determines such as RTMP or HLS as the communication protocol P toward the user terminal 10.

In some embodiments, the user terminal 10 may perform an action A of receiving streaming data from different user terminals 10 continuously in a short time. Here, the “short time” refers to the time for the user terminal 10 to receive streaming data from a first streamer and receive another streaming data from a second streamer once the streaming data from the first streamer is rendered on display for watching. The determining unit 120 may determine tire communication protocol P according to the action A. For example, the user terminal 10 may swipe the live streaming rooms quickly to check if there are streamers the user terminal 10 is interested in. In other words, the user terminal 10 requests receiving streaming data from different user terminals 10 quickly, such as 1-3 seconds for each request. In this situation, the time length to first render the video would be the shorter the better in order to check different streamers as quickly as possible. The communication protocol P of RTMP may be recommended in response to the action A. Therefore, the determining unit 120 may determine RTMP as the communication protocol P toward the user terminal 10.

In some embodiments, the user terminal 10 may perform an action A of receiving streaming data from different streamers concurrently. The determining unit 120 may determine different communication protocols P toward the user terminal 10 for each streaming data from each streamer according to the action A. For example, the user terminal 10 may watch different streamers with different windows at the same time. In other words, the user terminal 10 requests receiving streaming data from different user terminals 10 at the same time. In this situation, each streaming data recommends a different communication protocol P. For example, the user terminal 10 may watch a lot of streamers at the same time. The user terminal 10 interacts with his or her favorite streamer while keeping other streams being broadcasted without interaction. In this situation, the real-time interaction with his or her favorite streamer would be the first priority, and the rest streamer’s streaming may be recommended to focus on the smoothness of the video. Therefore, the communication protocol P of WebRTC may be recommended for the user terminal 10 to interact with the streamer. The communication protocol P of HLS with low-resolution streaming data is recommended for the rest of live streaming to be broadcasted smoothly.

FIG. 4 shows another exemplary functional configuration of the noninteraction action Ani. In some embodiments, the user terminal 10 may be referred to as a streamer, podcaster, or the like. The user terminal 10 requests transmitting streaming data to the streaming server 40. The streaming data may also include the audio and video contents from the user terminal 10. As shown in

FIG. 4, the user terminal 10 collects streaming data from the streaming input 14 such as microphone or camera and the encoder 15 encodes the streaming data to transmit the streaming data to the streaming server 40.

In some embodiments, the streaming data may also include audio contents and/or video contents, the determining unit 120 may determine the communication protocol P toward the user terminal 10 for transmitting the streaming data with audio contents and/or video contents. For example, the streamer may transmit a video, short video, live stream, podcasting, and the like. In response to the action A above, the determining unit 120 may determine communication protocols P toward the user terminal 10.

FIG. 5 shows an exemplary functional configuration of the interaction action Ai. In some embodiments, the user terminal 10 may be referred to as a viewer, streamer, audience, listener, podcaster, or the like. The user terminal 10 requests transmitting streaming data to the streaming server 40 and receiving streaming data from the streaming server 40. As shown in FIG. 5, the user terminal 10 receives streaming data from the streaming server 40 and the decoder 12 decodes tire streaming data to display the streaming data on the display 13. At the same time, the user terminal 10 collects streaming data from the streaming input 14 and the encoder 15 encodes the streaming data to transmit the streaming data to the streaming server 40. Similarly, the streaming data may include audio contents and/or video contents. For example, the viewer may click the voice call button or video call button to invite the streamer to have a voice chat or video chat. The streamer may click a button to accept the voice chat or the video chat, the action A of inviting or accepting the voice chat or the video chat may be referred to as an interaction action Ai. Therefore, the communication protocol P of WebRTC, for example, may be recommended.

FIG. 6 shows another exemplary functional configuration of the interaction action Ai. In some embodiments, the user terminal 10 may also be referred to as a viewer, streamer, audience, listener, podcaster or the like. The user terminal 10 requests receiving streaming data from the streaming server 40 and transmitting interaction data to the interaction server 30. As shown in FIG. 6, the user terminal 10 receives streaming data from the streaming server 40 and the decoder 12 decodes the streaming data to display the streaming data on the display 13. At the same time, the user terminal 10 transmits interaction data to the interaction server 30. For example, the viewer may click the gift button to send a gift to the streamer while watching or listening to the streamer or podcaster. The interaction data may trigger a dynamic sticker on the streamer’s screen and the streamer may express gratitude by voice or gesture in response to the interaction data from the user terminal 10. Therefore, the communication protocol P of WebRTC, for example, may be recommended.

FIG. 7 shows another exemplary functional configuration of the interaction action Ai. In some embodiments, the user terminal 10 may also be referred to as a viewer, streamer, audience, listener, podcaster or the like. The user terminal 10 requests transmitting interaction data to the interaction server and receiving interaction data from the interaction server 30. In some embodiments, the user terminal 10 may further transmit streaming data to the streaming server 40 and receive streaming data from the streaming server 30. As shown in FIG. 7, the user terminal 10 transmits and receives interaction data to and from the interaction server 30 at the same time, the user terminal 10 may further receive and/or transmit streaming data from and/or to the streaming server 40 at the same time. For example, the viewer may click the interaction button to have interactive games with the streamer. Therefore, the communication protocol P of WebRTC, for example, may be recommended. FIG. 8 shows an exemplary- sequence chart illustrating an operation of the communication system 1 and the data communication system 100. In step S101, the client application APP in the user terminal 10’ (not shown in the FIG) upload live streaming data to the streaming server 40, in response to an instruction by the user terminal 10’ such as a streamer. Here, the live stream includes streaming data collected from the microphone and/or the camera. In many cases, the streaming data includes audio and video contents of the streamer.

In step S102, the client application APP in the user terminal 10 performed an action A in an APP or platform. In some embodiments, the action A may be logging in the APP and clicking streamers to view the live streaming. In step S103, the user terminal 10 sends a request for live streaming data information to the interaction server 30 in response to the action A. In step S104, the receiving unit 110 receives the action A performed by the user terminal 10. In some embodiments, the receiving unit 110 stores the action A in a storage element. In step S105, the receiving unit 110 transmits the action A performed by the user terminal 10 to the determining unit 120. In step S106, the determining unit 120 determines a communication protocol P toward the user terminal 10 according to the action A. In step S107, the determining unit 120 transmits the communication protocol P to the interaction server 30. In step S108, the interaction server 30 transmits the communication protocol P to the user terminal 10. In step S109, the user 10 requests streaming data via the communication protocol P. In step SI 10, the streaming server 40 transmits the streaming data via the communication protocol P in response to the request from the user terminal 10.

In some embodiments, the receiving unit 110, determining unit 120, and the transferring unit 130 may be integrated into one server. In some embodiments, the receiving unit 110, determining unit 120, and the transferring unit 130 may be integrated into the interaction server 30. In some embodiments, the receiving unit 110 and the transferring unit 130 may be replaced with the receiving means and transferring means of the interaction server 30.

In some embodiments, tire action A the user terminal 10 performed in step 102 may be an interaction action Ai. More specifically, in step S102, the user terminal 10 may perform an action A. For example, the action A may include watching a streamer and clicking the gift button to send a gift to the streamer. In step S103, the user terminal 10 requests transmitting interaction data to the interaction server 30 and receiving streaming data fiom the streaming server 40 in response to the action A. In step SI 04, the receiving unit 110 receives the action A performed by the user terminal 10. In step SI 05, the receiving unit 110 transmits the action A performed by the user terminal 10 to the determining unit 120. In step SI 06, the determining unit 120 determines a communication protocol P toward the user terminal 10 according to tire action A. More specifically, the user terminal 10 requests transmitting interaction data and receiving streaming data according to the action A, so it shows that the user terminal 10 would like to watch the streamer and interact with the streamer by sending a gift to the streamer. Therefore, the action A may be referred to as an interaction action Ai. In response to the interaction action Ai, the real-time interaction would be the first priority to fulfill the user satisfaction. Therefore, the determining unit 120 determines such as WebRTC or RTMP as the communication protocol P toward the user terminal 10 according to the action A.

In some embodiments, the action A may include watching the streamer and clicking the interaction game button to have an interactive game with the streamer. In step S103, the user terminal 10 requests transmitting interaction data to the interaction server 30 and receiving interaction data fiom the interaction server 30 in response to the action A. In step S106, the determining unit 120 determines a communication protocol P toward the user terminal 10 according to the action A. According to the action A, the user terminal 10 requests transmitting and receiving interaction data, so it shows that the user terminal 10 would like to interact with the streamer by playing an interactive game such as shooting monsters together. Therefore, the action A may be referred to as an interaction action Ai. In response to the action A, the real-time interaction especially the short latency would be the first priority to fulfill the user satisfaction. Therefore, the determining unit 120 determines such as WebRTC as the communication protocol P toward the user terminal 10.

In some embodiments, the determining unit may further include a predicting element. The predicting element is configured to predict the following action A according to the action A. The predicting element analyzes the action A to identify relevant actions and predicts the following action A based on the relevant actions. For example, the user terminal 10 clicks the input box, it implies that the user terminal 10 would like to start a chat with the streamers. If the user terminal 10 clicks the gift box, it may be predicted that the user terminal 10 is going to send a gift to the streamer. In some embodiments, the predicting element may further analyze the message left by the user terminal 10 and predict the following action A according to the message. The message left by the user terminal 10 may include text, audio, emoji and so on. For example, the user terminal 10 may enter a text to ask the streamer to have an interactive game, so it may be predicted that the user terminal 10 is going to have an interactive game with the streamer. In response to the request of interactive games from the user terminal 10, if the streamer responds with Okay via audio message such as microphone, it may also imply that the user terminal 10 and tire streamer is going to have an interactive game. Therefore, the predicting element may analyze the message the user terminal 10 left and the audio message the streamer said and predict that the user terminal 10 is going to have an interactive game with the streamer. In some embodiments, the determining unit 120 may further determine the communication protocol P according to the following action A.

In some embodiments, the predicting element may collect a plurality of historical data from the user terminal 10. The historical data may include the historical actions A and the historical following actions A from the user terminal 10. The predicting elements may predict the following action A according to the historical actions A and historical following actions A. For example, the user terminal 10 is accustomed to have video and audio chat with a specific streamer after entering the streamer’s live stream, it may be predicted that the user terminal 10 may have video and audio chat with the stream once user terminal 10 enters the streamer’s room.

In some embodiments, the receiving unit 110 further receives available communication protocols from the user terminal 10. Hie available communication protocols refer to the communication protocols P which are mutually applicable to the user terminal 10 and the server 30/40. In some embodiments, the determining unit 120 may select the communication protocol P from the available communication protocols and further determines the communication protocol P according to the action A.

In some embodiments, the data communication system 100 may further include a feedback collecting unit. The feedback collecting unit is configured to collect feedback from the user terminal 10 and transmit the feedback to the determining unit 120. In some embodiments, the determining unit 120 determines the communication protocol P according to the feedback. For example, the user terminal 10 may have feedback on the real-time data communication. The feedback may be satisfaction or dissatisfaction with the communication. The determining unit 120 may take the feedback as a reference to determine the communication protocol P.

In some embodiments, the receiving unit 110 may receive the internet quality of the user terminal 10. The determining unit 120 may determine a communication protocol P toward the user terminal 10 according to the internet quality. The internet quality may be evaluated according to the indexes such as first render (time to view), video latency, buffering ratio, or buffering count.

In some embodiments, the determining unit 120 may evaluate the four indexes and determine the communication protocol P according to the four indexes. More specifically, the determining unit 120 analyzes one of the indexes such as the video latency, checks which communication protocol P has the shortest video latency, and determines the communication protocol P with shortest video latency toward the user terminal 10 according to the internet quality of the user terminal 10. For example, if the user terminal 10 sends a request to the interaction server 30, the receiving unit 110 may receive the internet quality' of the user terminal 10. The determining unit 120 may evaluate the buffering while communicating via each communication protocol P and determine the communication protocol P with the lowest buffering toward the user terminal 10.

In some embodiments, the user terminal 10 may receive and transmit realtime data from different streaming servers 40. The determining unit 120 may determine a streaming server 40 toward the user terminal 10 according to the internet quality'. In some embodiments, the streaming server 40 may be referred to as a CDN (Content Delivery Network) provider. As shown in FIG. 8, the determining unit 120 may further determine a streaming server 40 toward the user terminal 10 according to the internet quality' in step S106. More specifically, the determining unit 120 may evaluate the internet quality of tire user terminal 10 via different streaming servers 40. For example, the determining unit 120 evaluates buffering of the streaming data while the user terminal 10 communicates with different streaming servers 40 and determines the streaming servers 40 with the shortest buffering toward the user terminal 10. In step S108, the interaction server 30 transmits the information of the streaming server 40 to the user terminal 10. In some embodiments, the information of the streaming server 40 may be a URL of the streaming server 40. In step S109, the user 10 requests streaming data via the streaming server 40. In step SI 10, the streaming server 40 transmits the streaming data in response to the request from the user terminal 10. Therefore, the data communication system 100 may access the user terminal 10 to a suitable streaming server 40 for a better user experience.

In some embodiments, the receiving unit 110 may further receive historical data from the user terminal 10. The historical data may further include the historical internet quality, geographical location, and time information of the user terminal 10. The determining unit 120 may evaluate the historical data and determine the streaming server 40 toward the user terminal 10 in advance. For example, it shows that the users in a specific location during a specific time have the shortest video latency via a specific streaming server 40 according to the historical data, the determining unit 120 may determine the streaming server 40 toward users from the specific location during the specific time in advance.

Furthermore, the system and method described in the above embodiments may be provided with a computer-readable non-transitory storage device such as a solid-state memory device, an optical disk storage device, or a magnetic disk storage device. Alternatively, the programs may be downloaded from a server via the Interet.

Although technical content and features of the present invention are described above, a person having common knowledge in the technical field of the present invention may still make many variations and modifications without disobeying the teaching and disclosure of the present invention. Therefore, the scope of the present invention is not limited to the embodiments that are already disclosed, but includes another variation and modification that do not disobey the present invention, and is the scope covered by the following patent application scope.

Description of reference numerals

1 Communication system 10 User terminal 11 Interaction unit 12 Decoder

13 Display 14 Streaming input

15 Encoder 30 Interaction server

40 Streaming server 100 Data communication system

110 Receiving unit 120 Determining unit

130 Transferring unit P Communication protocol

A Action Ai Interaction action

Ani Non-interaction action