System and method for simultaneous media streaming services
By using two servers in an online conferencing system to process the first and second parts of the media stream respectively, and combining these parts on the client device, the problem of instability in the media stream quality in the prior art is solved, and high-quality and stable media streaming services are achieved.
Patent Information
- Application Number
- CN202111060466.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2016-06-29
- Filing Date
- 2017-06-22
- Publication Date
- 2025-04-08
- Estimated Expiration
- 2037-06-22
AI Technical Summary
When existing online conferencing systems handle multimedia streaming services, it is difficult to effectively manage and distribute media streams, resulting in unstable media streaming quality and poor user experience.
Two servers are used to process the first and second parts of the media stream respectively, and combine these parts through client devices to output high-quality media streams. This method can ensure the integrity and quality of media streams through error control of encoding and redundant information in the event of network congestion or server failure.
It realizes that in multimedia streaming services, improve the quality and stability of media streams, enhance user experience, and maintain high media stream integrity when network conditions are poor.
Smart Images

Figure CN113794854B_ABST
Abstract
Description
[0001] This application is a divisional application of the invention patent application "System and method for simultaneous media streaming services" with application date of June 22, 2017 and application number 201780040505.2. Background Art
[0002] Online conferencing (also known as web conferencing and / or Internet conferencing) systems have a range of features, including voice / video communications, instant messaging, data / application sharing, and whiteboards. These online collaborative service systems enable users to participate in communication sessions to exchange different types of communication media, such as voice data, video data, content sharing, and combinations thereof. Some conferencing systems enable users to share and collaborate to create and modify documents or other shared content. Online conferencing typically allows real-time point-to-point communications as well as multicast communications (i.e., from one sender to multiple recipients). Some services provide data streams for voice and / or video chats for simultaneous sharing across geographically dispersed locations. Applications for online conferencing include meetings, training events, lectures, and presentations. Summary of the invention
[0003] The example discussed here relates to a system comprising a first server having a plurality of user devices linked to each other via the first server. The plurality of user devices share a media stream. The media stream comprises at least a first portion of the media stream and a second portion of the media stream. The first portion of the media stream is different from the second portion of the media stream. The first server sends the first portion of the media stream to the plurality of user devices. The system also comprises a second server having a plurality of users linked to each other via the second server. The second server sends the second portion of the media stream to the plurality of user devices.
[0004] In an example, a method of operating a system includes linking a plurality of user devices to each other via a first server. The plurality of user devices will share a media stream. The method also includes linking the plurality of user devices to each other via a second server. The method also includes sending a first partial version of the media stream from the first server to the plurality of user devices. The method also includes sending a second partial version of the media stream from the second server to the plurality of user devices. The method also includes receiving, by at least a first user device among the plurality of user devices, a first part of the first partial version and a second part of the second partial version. The method also includes combining, by the first user device, the first part and the second part to output a version of the media stream to a user.
[0005] In one example, a method of operating a user device linked to a system includes: receiving a first partial version of a media stream from a first server linking a plurality of user devices to each other. The method also includes receiving a second partial version of the media stream from a second server. The method also includes outputting a version of the media stream using at least one of the first partial version and the second partial version.
[0006] This summary is provided to introduce some concepts in a simplified form, which are further described in the detailed description below. This summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter. Furthermore, the claimed subject matter is not limited to implementations that solve any or all of the disadvantages mentioned in any part of this disclosure. BRIEF DESCRIPTION OF THE DRAWINGS
[0007] In order to describe the manner in which the above and other advantages and features can be obtained, a more specific description is set forth and will be presented by reference to specific examples thereof shown in the accompanying drawings. It should be understood that these drawings depict only typical examples and are not to be considered limiting of the scope thereof, and implementations will be described and explained with additional specificity and detail through the use of the accompanying drawings.
[0008] Figure 1 is a block diagram illustrating an online communication system.
[0009] Figure 2 is a flow chart illustrating a method of operating an online communication system.
[0010] Figure 3A is a diagram illustrating content sharing using multiple content streams.
[0011] Figure 3B is a diagram illustrating content sharing using a single input content stream.
[0012] Figure 4 is a flow diagram illustrating the reception of multiple content streams.
[0013] Figure 5 is a block diagram illustrating a computer system. DETAILED DESCRIPTION
[0014] Examples are discussed in detail below. Although specific implementations are discussed, it should be understood that this is done for illustrative purposes only. Those skilled in the relevant art will recognize that other components and configurations may be used without departing from the spirit and scope of the subject matter of the present disclosure. The implementation may be a machine-implemented method, a computing device, or a computer-readable medium.
[0015] In one embodiment, online content is provided to participant devices using two or more data centers or servers residing therein. The content provided by each server is not identical. Instead, the content stream from each server is a partial or low-quality version of the original high-quality version of the content stream. The participant device can use a single data stream in the partial data stream to output a lower-quality version of the original content stream to the user. In one embodiment, the received partial content streams can be combined to output a high-quality version of the original content stream to the user.
[0016] As used herein, the term "real-time" is intended to refer broadly to conditions that generally correspond to actual time. For example, if approximately one minute of data playback is required to describe an event that takes approximately one minute to occur, the data may be real-time. Real-time data may be, but is not necessarily, "live" data that is generated and transmitted substantially simultaneously with minimal delay, or such that the delay is not obtrusive with respect to a particular application. As an example, for the purposes of the present system, a delay between an event and the communication of this event to another computer user of less than a few seconds, or less than 1.0 or 0.25 seconds, or another similar time may be considered live.
[0017] For example, in an online conference, multiple participants can send and receive live real-time video and audio data to each other - each participant talks to one or more others in real time with an appropriate minimum level of delay so that the "conversation" between users over the network can proceed in real time. Therefore, it should be understood that the term "live" or "real-time" when used in this context is not limited to zero delay, but allows for some minimum delay, for example, it can be approximately several seconds. The delay should not be so large that it causes difficulties for different users to communicate with each other. Delays greater than about 5 seconds may not be suitable for many applications.
[0018] Figure 1 is a block diagram showing an online communication system. Figure 1 1 , system 100 includes participants 101-104, client devices 131-134, network 120, and servers 151-152. Participants 101-104 use software programs deployed on client devices 131-134, respectively, to participate in online communication sessions hosted by at least servers 151-152. Client devices 131-134 are operably coupled to network 120. Network 120 includes servers 151-152, or is operably coupled to servers 151-152. Thus, participants 101-104 are able to join, leave, receive, and participate in online communication sessions via client devices 131-134, network 120, and servers 151-152.
[0019] The network 120 is a wide area communication network that can provide wired and / or wireless communication between client devices 131-134 and servers 151-152. The network 120 may include a wired and / or wireless communication network, including processing nodes, routers, gateways, physical and / or wireless data links for carrying data between various network elements, including combinations thereof, and may include local area networks, wide area networks, and interconnected networks (including the Internet). The network 120 may also include a wireless network, including base stations, wireless communication nodes, telephone switches, Internet routers, network gateways, computer systems, communication links, or some other types of communication equipment, and combinations thereof. The wired network protocols that the network 120 may use include Ethernet, Fast Ethernet, Gigabit Ethernet, local calls (such as carrier sense multiple access with collision avoidance), token ring, fiber distributed data interface (FDDI), and asynchronous transfer mode (ATM). The links between the elements of the network 120 may be, for example, twisted pair cables, coaxial cables, or fiber optic cables, or combinations thereof.
[0020] Other network elements may be present in the network 120 to facilitate communication but are omitted for clarity, such as base stations, base station controllers, gateways, mobile switching centers, dispatch application processors, and location registers such as home location registers or visitor location registers. In addition, other network elements may be present to facilitate communication between elements of the system 100, which are omitted for clarity, including additional computing devices, client devices, access nodes, routers, gateways, and physical and / or wireless data links for carrying data between the various network elements.
[0021] The client devices 131-134 may be, for example, desktop computers, tablet computers, laptop computers, mobile phones, wireless phones, personal digital assistants (PDAs), voice over Internet protocol (VoIP) phones, voice over packet (VOP) phones, or soft phones, and may execute a web browser, online conferencing software, and / or online communication software (e.g., Skype from Microsoft Corporation). TM Other types of devices or systems that may be, include, or comprise client devices 131-134 include, but are not limited to, example computer system 500 (herein referred to as Figure 5 describe).
[0022] In one embodiment, client devices 131-134 are linked to each other via server 151. Client devices 131-134 are able to share media streams via server 151. For example, client devices 131-134 may be able to share real-time media streams via server 151. Client devices 131-134 are also linked to each other via server 152.
[0023] Server 151 sends a first partial version of the media stream to client devices 131-134. Figure 1 This is shown in FIG. 1 by arrow 141 running from server 151 to client device 131. Figure 1 Also shown in FIG. 1 is arrow 143 running from server 151 to client device 132. Additional arrows running from server 151 to client devices 133 and 134 may be seen in FIG. Figure 1 1 to illustrate the first partial version of the content stream flowing to client devices 133 and 134. However, for the sake of brevity, these additional arrows are omitted.
[0024] Server 152 sends a second partial version of the media stream to client devices 131-134. Figure 1 This is shown in FIG. 1 by arrow 142 running from server 152 to client device 131. Figure 1 Also shown in FIG. 1 by arrow 144 running from server 152 to client device 132. Additional arrows running from server 152 to client devices 133 and 134 may be seen in FIG. Figure 1 1 to illustrate the flow of a second partial version of the content stream to client devices 133 and 134. However, for the sake of brevity, these additional arrows are omitted.
[0025] In one embodiment, server 152 is designated as a redundant server for server 151. In other words, if server 151 fails or is otherwise disconnected from one or more client devices 131-133 and / or network 120, server 152 can be configured to "take over" server 151. Typically, server 151 and server 152 are located in geographically separated facilities. These facilities may include many servers. These facilities may also be referred to as data centers. Example devices that may include and / or contain servers 151-152 include, but are not limited to, example computer system 500 (herein referred to as Figure 5 describe).
[0026] Client device 131 receives a first portion of a first partial version of the content stream. Client device 131 receives a second portion of a second partial version of the content stream. Due to lost packets, network 120 congestion, server 151-152 congestion, server 151-152 failure, etc., client device 131 may receive only a portion of the first and / or second partial versions of the content stream.
[0027] The client device 131 combines the first part and the second part to output a version of the media stream to the user 101. The version may be a high quality or "full" version of the media stream shared between the client devices 131-134. The version may be a lower quality or "incomplete" version of the media stream shared between the client devices 131-134.
[0028] Likewise, client device 132 receives a third portion of the first partial version of the content stream. Client device 132 receives a fourth portion of the second partial version of the content stream. Due to lost packets, network 120 congestion, server 151-152 congestion, server 151-152 failure, etc., client device 132 may receive only a portion of the first and / or second partial versions of the content stream.
[0029] The client device 132 combines the third part and the fourth part to output a version of the media stream to the user 101. The version can be a high-quality or "complete" version of the media stream shared between the client devices 131-134. The version can be a lower quality or "incomplete" version of the media stream shared between the client devices 131-134. Due to the difference in the communication path from the server 151 to the client device 131 (arrow 141) and the client device 132 (arrow 143), the first part of the first part version and the third part of the first part version can be different. Similarly, for the same reason, the second part of the first part version and the fourth part of the second part version can be different. The first and third parts and the second and fourth parts can be different because the communication path between the server 151-152 and the client device 131-132 experiences different lost packets, network 120 congestion, server 151-152 congestion, server 151-152 failure, etc.
[0030] In one embodiment, servers 151 and 152 send partial content streams based on the encoded content stream with error control coding or other redundant information (eg, repeated coding) that can be used to reconstruct the complete content stream in the presence of lost portions of the encoded content stream.
[0031] For example, the content stream to be shared can be encoded with a low-rate error control code. The content stream can be encoded with a low-rate error control code such as Reed-Solomon coding. The redundancy of a given Reed-Solomon coding can be expressed as RS(N, K), where the coding uses N codewords of length N symbols, each codeword storing K symbols. In one embodiment, N>K. In another embodiment, N=2K, so that at least half of all codewords must be received by a given client device 131-134 in order to reconstruct all the codewords sent (i.e., the "original" content stream). Therefore, if the original content stream is arbitrarily split into two halves, and the half sent by the separate server 151-152 (half of the encoded stream, if received without loss) can be used by the client device 131-134 to reconstruct a full-quality version of the content stream. Assuming that there is a packet or partial loss of the stream sent by the server 151-152, the remaining parts of the two halves of the encoded content stream can be used to reconstruct a full-quality version of the content stream.
[0032] The low bit rate encoding may be generalized for M servers. In this case, RS(M*K, K) may be used to generate M output symbols for each input symbol. The resulting encoded content stream may be segmented and provided to the client devices 131-134 by the M servers 151-152. Other types of error control encoding may be used. For example, an appropriately selected turbo code or the like may be used to generate an encoded content stream, which may then be segmented for transmission from separate servers 151-152.
[0033] In another embodiment, the system 100 can dynamically segment the coded data stream based on the content of the coded data stream. For example, the system 100 can search for segments in the coded data stream that exhibit relatively large distance characteristics from each other. In other words, the system 100 can segment the coded data stream into sequences separated by large distances from each other, and then send each of these sequences using different servers 151-152.
[0034] In one embodiment, client devices 131-134 may choose to use only one (or a subset, if there are more than two servers) of the information in the content streams sent by servers 151-152. In this case, the segmented portions of the coded media streams from the non-selected servers may be ignored. Client devices 131-134 may choose to use a subset of the information in the content streams sent by servers 151-152 based on the quality of the content streams received from the servers 151-152 to be or ignored, or the servers being used. For example, if the quality of the partially coded content stream received from server 151 is sufficient to reproduce a full-quality version of the content stream, the partially coded content stream from server 152 may be ignored. Conversely, for example, if the quality of the partially coded content stream received from server 152 is too poor to contribute significantly to reproducing the full-quality version of the content stream, the partially coded content stream from server 152 may be ignored.
[0035] Figure 2 is a flow chart illustrating a method of operating an online communication system. Figure 2 The steps shown in can be performed by one or more elements of the system 100. A plurality of user devices are linked to each other via a first server, wherein the plurality of user devices will share a media stream (202). For example, the client devices 131-134 can be linked to each other via the server 151 to share audio, video, text messages, presentations, screen sharing, etc. The client devices 131-134 can be linked to each other via the server 151 to share audio, video, text messages, presentations, screen sharing, etc. in real time.
[0036] Multiple user devices are linked to each other via the second server (204). For example, client devices 131-134 can be linked to each other via server 152 to share audio, video, text messages, presentations, screen sharing, etc. Client devices 131-134 can be linked to each other via server 152 to share audio, video, text messages, presentations, screen sharing, etc. in real time. In another example, client devices 131-134 can be linked to each other via server 152 to provide redundancy in the event of a failure of a first server (e.g., server 151).
[0037] A first partial version of the media stream is sent from the first server to the plurality of user devices (206). For example, server 151 may send the first partial version of the media stream to client devices 131-134. The partial content stream sent by server 151 may be a portion of an encoded content stream with error control coding or other redundant information (e.g., repeated coding) that may be used to reconstruct the complete content stream in the presence of a lost portion of the encoded content stream.
[0038] A second partial version of the media stream is sent from the second server to the plurality of user devices (208). For example, server 152 may send a second partial version of the media stream to client devices 131-134. The partial content stream sent by server 152 may be a different portion of the encoded content stream than that sent by server 151.
[0039] A first portion of a version of a first portion and a second portion of a version of a second portion are received, via at least a first user device among a plurality of user devices (210). For example, client device 131 may receive a first portion of a version of a first portion of a content stream. Client device 131 may receive a second portion of a version of a second portion of the content stream. Due to lost packets, network 120 congestion, server 151-152 congestion, server 151-152 failure, etc., client device 131 may receive only a portion of the first and / or second portion of the content stream.
[0040] The first portion and the second portion are combined to output a version of the media stream to the user via the first user device (212). For example, client device 131 may combine the first portion and the second portion to output a version of the media stream to user 101. The version may be a high quality or "full" version of the media stream shared between client devices 131-134. The version may be a lower quality or "incomplete" version of the media stream shared between client devices 131-134.
[0041] Figure 3A is a diagram illustrating content sharing using multiple content streams. Figure 3A , system 300 includes participants 301-302, client devices 331-332, network 320, and servers 351-352. Participants 301-302 use software programs deployed on client devices 331-332, respectively, to participate in online communication sessions hosted by at least servers 351-352. Client devices 331-332 are operably coupled to network 320. Network 320 includes or is operably coupled to servers 351-352. Thus, participants 301-302 are able to join, leave, receive, and participate in online communication sessions via client devices 331-332, network 320, and servers 351-352.
[0042] The network 120 is a wide area communication network that can provide wired and / or wireless communication between the client devices 331-332 and the servers 351-352. The network 320 is similar to the network 120 described herein. Therefore, for the sake of brevity, further description of the network 320 will be omitted here.
[0043] The client devices 331-332 may be, for example, desktop computers, tablet computers, laptop computers, mobile phones, wireless phones, personal digital assistants (PDAs), voice over Internet protocol (VoIP) phones, voice over packet (VOP) phones, or soft phones, and may execute a web browser, online conferencing software, and / or online communication software (e.g., Skype from Microsoft Corporation). TM Other types of devices or systems (such as applications) may participate in a communication session hosted by the servers 351-352. Other types of communication platforms are also possible. Example devices that may include and / or contain the client devices 331-332 include, but are not limited to, the example computer system 500 (herein referred to as Figure 5 describe).
[0044] In one embodiment, client devices 331-332 are linked to each other via server 351 and server 352. Client devices 131-134 are able to share media streams via servers 351-352.
[0045] Client device 331 sends a first partial version of the media stream to server 351. Figure 3A 3 is shown by arrow 341 running from client device 331 to server 351. Client device 331 sends a second partial version of the media stream to server 352. Figure 3A This is illustrated by arrow 342 running from client device 331 to server 351 .
[0046] Server 351 sends the first partial version of the media stream to client device 332. Figure 3A 34 is shown by arrow 343 running from server 351 to client device 332. Server 352 sends a second partial version of the media stream to client device 332. Figure 3A This is illustrated by arrow 344 running from server 352 to client device 332.
[0047] In one embodiment, server 352 is designated as a redundant server for server 351. In other words, if server 351 fails or is otherwise disconnected from one or more client devices 331-332 and / or network 320, server 352 can be configured to "take over" server 351. Typically, server 351 and server 352 are located in geographically separated facilities. These facilities may include many servers. These facilities may also be referred to as data centers. Example devices that may include and / or contain servers 351-352 include, but are not limited to, example computer system 500 (herein referred to as Figure 5 describe).
[0048] Client device 332 receives a first portion of a first partial version of the content stream. Client device 332 receives a second portion of a second partial version of the content stream. Due to lost packets, network 320 congestion, server 351-352 congestion, server 351-352 failure, etc., client device 332 may receive only a portion of the first and / or second partial versions of the content stream.
[0049] Client device 332 combines the first portion and the second portion to output a version of the media stream to user 302. The version may be a high quality or "full" version of the media stream shared between client devices 331-332. The version may be a lower quality or "incomplete" version of the media stream shared between client devices 331-332.
[0050] In one embodiment, client device 331 sends a partial content stream based on an encoded content stream with error control coding or other redundant information (e.g., repeated coding) that can be used to reconstruct the complete content stream in the presence of missing portions of the encoded content stream. For example, a content stream to be shared by client device 331 can be encoded with a low-rate error control code and split by client device 331, as described herein.
[0051] In one embodiment, the receiving client device 332 may choose to use only one (or a subset if there are more than two servers) of the information in the content stream sent by the client device 331 via the servers 351-352. In this case, the segmented portion of the coded media stream from the non-selected server may be ignored. The client device 302 may choose to use a subset of the information in the content stream relayed by the servers 351-352 based on the quality of the content stream received from the server 351-352 that is either to be ignored or the server 351-352 that is being used. For example, if the quality of the partially coded content stream received via the server 351 is sufficient to reproduce a full-quality version of the content stream, the partially coded content stream sent via the server 352 may be ignored. Conversely, for example, if the quality of the partially coded content stream received via the server 352 is too poor to contribute significantly to reproducing the full-quality version of the content stream, the partially coded content stream sent via the server 352 may be ignored.
[0052] Figure 3B is a diagram illustrating content sharing using a single input content stream. Figure 3B , system 301 includes participants 301-302, client devices 331-332, network 320, and servers 351-352.
[0053] In one embodiment, client devices 331-332 are linked to each other via server 351 and server 352. Client devices 131-134 are able to share media streams via servers 351-352.
[0054] Client device 331 sends a complete version of the media stream to server 351. Figure 3B 351 is shown by arrow 361 running from client device 331 to server 351. The complete version of the media stream sent by client device 331 may be unencoded, or may be encoded as described herein. Server 351 sends a first partial version of the media stream to client device 332. This is shown in FIG. Figure 3B 351 is shown by arrow 363 running from server 351 to client device 332. Server 351 sends a second partial version of the media stream to server 352. This Figure 3B 352. Server 352 sends a second partial version of the media stream to client device 332. Figure 3B 352 is shown by arrow 364 running from server 352 to client device 332. Figure 3A and 3B It should be appreciated that the segmentation of the shared media stream may be accomplished by the sending client device 331 or by the server 351. When segmentation is accomplished by a single server 351, that server 351 sends the segmented portions to other servers 352 linked to the client devices 331-332 for the purpose of the online communication session.
[0055] Figure 4 is a flow diagram illustrating the reception of multiple content streams. Figure 4 The steps shown in can be performed by one or more elements of system 100, system 300 and / or system 301. A first partial version of a media stream is received from a first server linking multiple user devices to each other (402). For example, client device 332 can receive the first partial version of the media stream from server 351. In an example, client device 332 can receive a partial version from server 351 created by sending client device 331. In another example, client device 332 can receive a partial version from server 351 created by server 351.
[0056] Receive a second partial version of the media stream from a second server (404). For example, client device 332 may receive a second partial version of the media stream from server 352. In an example, client device 332 may receive a partial version from server 352 created by sending client device 331. In another example, client device 332 may receive a partial version from server 351 created by server 351 and sent to client device 332 via server 352.
[0057] At least one of the first partial version and the second partial version is used to output a version of the media stream (406). For example, client device 332 may use the received partial versions (alone or in combination) to output a version of the media stream to user 302. Client device 332 may receive only a portion of the first and / or second partial versions of the content stream. Client device 332 may receive only a portion of the first and / or second partial versions of the content stream due to lost packets, network 320 congestion, server 351-352 congestion, server 351-352 failure, etc.
[0058] The above methods, systems and devices may be implemented in a computer system or stored by a computer system. The above methods may also be stored on a non-transitory computer readable medium. The devices, circuits and systems described herein may be implemented using computer-aided design tools available in the art and embodied by computer readable files containing software descriptions of such circuits. This includes but is not limited to one or more elements of system 100, system 300 and / or system 301 and their components. These software descriptions may be: behavioral, register transfer, logic component, transistor and layout geometry level descriptions.
[0059] Data formats that may implement such descriptions may be stored on non-transitory computer readable media, including but not limited to: formats that support behavioral languages such as C, formats that support register transfer level (RTL) languages such as Verilog and VHDL, formats that support geometry description languages such as GDSII, GDSIII, GDSIV, CIF, and MEBES, and other suitable formats and languages. Physical files may be implemented on non-transitory machine readable media, such as: 4mm tape, 8mm tape, 3-1 / 2 inch floppy disk media, CD, DVD, hard drive, solid state disk drive, solid state memory, flash drive, etc.
[0060] Alternatively or additionally, the functional descriptions herein may be at least partially performed by one or more hardware logic components. For example, but not limited to, illustrative types of hardware logic components that may be used include field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), application specific standard products (ASSPs), system-on-chip systems (SOCs), complex programmable logic devices (CPLDs), etc.
[0061] Figure 5 A block diagram of an example computer system is shown. Computer system 500 includes a communication interface 520, a processing system 530, a storage system 540, and a user interface 560. Processing system 530 is operably coupled to storage system 540. Storage system 540 stores software 550 and data 570. Processing system 530 is operably coupled to communication interface 520 and user interface 560. Computer system 500 may include a programmed general-purpose computer. Computer system 500 may include a microprocessor. Computer system 500 may include programmable or dedicated circuits. Computer system 500 may be distributed between multiple devices, processors, memories, and / or interfaces that together include elements 520-570.
[0062] The communication interface 520 may include a network interface, a modem, a port, a bus, a link, a transceiver or other communication device. The communication interface 520 may be distributed in multiple communication devices. The processing system 530 may include a microprocessor, a microcontroller, a logic circuit or other processing device. The processing system 530 may be distributed in multiple processing devices. The user interface 560 may include a keyboard, a mouse, a voice recognition interface, a microphone and a speaker, a graphic display, a touch screen or other types of user interface devices. The user interface 560 may be distributed in multiple interface devices. The storage system 540 may include a disk, a tape, an integrated circuit, a RAM, a ROM, an EEPROM, a flash memory, a network storage, a server or other storage functions. The storage system 540 may include a computer-readable medium. The storage system 540 may be distributed in multiple memory devices.
[0063] Processing system 530 retrieves and executes software 550 from storage system 540. Processing system 530 can retrieve and store data 570. Processing system 530 can also retrieve and store data through communication interface 520. Processing system 530 can create or modify software 550 or data 570 to achieve a tangible result. Processing system can control communication interface 520 or user interface 560 to achieve a tangible result. Processing system 530 can retrieve and execute remotely stored software via communication interface 520.
[0064] Software 550 and remotely stored software may include operating systems, utilities, drivers, network software, and other software typically executed by a computer system. Software 550 may include applications, applets, firmware, or other forms of machine-readable processing instructions typically executed by a computer system. When executed by processing system 530, software 550 or remotely stored software may instruct computer system 500 to operate as described herein.
[0065] The implementations discussed here include but are not limited to the following examples:
[0066] Example 1: A system comprises: a first server having a plurality of user devices linked to each other via the first server, wherein the plurality of user devices share a media stream, the media stream comprising at least a first portion of the media stream and a second portion of the media stream, the first portion of the media stream being different from the second portion of the media stream, the first server sending the first portion of the media stream to the plurality of user devices; and a second server having a plurality of users linked to each other via the second server, the second server sending the second portion of the media stream to the plurality of user devices.
[0067] Example 2: The system of Example 1, wherein at least one of the plurality of user devices combines the first portion of the media stream and the second portion of the media stream to output a full-quality version of the media stream.
[0068] Example 3: The system of Example 1, wherein the first server and the second server are online conference servers.
[0069] Example 4: The system of Example 1, wherein the media stream originates from a first user device among the plurality of user devices, and the first server divides the media stream into the first portion of the media stream and the second portion of the media stream.
[0070] Example 5: The system of Example 1, wherein the media stream originates from a first user device among the plurality of user devices, and the first user device splits the media stream into the first portion of the media stream and the second portion of the media stream.
[0071] Example 6: The system of Example 1, wherein the media stream includes error control coding.
[0072] Example 7: The system of Example 6, wherein at least one of the plurality of user devices outputs a full quality version of the media stream using error control coding in the first portion of the media stream.
[0073] Example 8: A method for operating a system, comprising: linking multiple user devices to each other via a first server, wherein the multiple user devices share a media stream; linking the multiple user devices to each other via a second server; sending a first partial version of the media stream from the first server to the multiple user devices; sending a second partial version of the media stream from the second server to the multiple user devices; receiving a first part of the first partial version and a second part of the second partial version by at least a first user device among the multiple user devices; and combining the first part and the second part by the first user device to output a version of the media stream to a user.
[0074] Example 9: The method of Example 8, wherein the first part and the second part are used by the first user equipment to output a full quality version of the media stream.
[0075] Example 10: The method of Example 8, wherein the first partial version and the second partial version include error control information.
[0076] Example 11: The method of Example 8 further includes: receiving, by the first server, the media stream from a second user device among the multiple user devices.
[0077] Example 12: The method of Example 8 also includes: receiving, by the first server, a first partial version of the media stream from a second user device among the multiple user devices; and receiving, by the second server, a second partial version of the media stream from a second user device among the multiple user devices.
[0078] Example 13: The method of Example 8, wherein the first partial version of the media stream and the second partial version of the media stream include error control information calculated from the media stream.
[0079] Example 14: The method of Example 8 further includes: receiving, by the first server, the media stream from a second user device among the multiple user devices; and receiving, by the second server, a second partial version of the media stream from the first server.
[0080] Example 15: A method for operating a user device linked to a system, comprising: receiving a first partial version of a media stream from a first server that links multiple user devices to each other; receiving a second partial version of the media stream from a second server; and, using at least one of the first partial version and the second partial version to output a version of the media stream.
[0081] Example 16: The method of Example 15 further includes: decoding error control information provided by at least one of the first part version and the second part version to output a version of the media stream.
[0082] Example 17: The method of Example 16, wherein decoding error control information provided by at least one of the first partial version and the second partial version produces a full quality version of the media stream.
[0083] Example 18: The method of Example 15, wherein the media stream includes error control information determined by a second user equipment among the plurality of user equipments.
[0084] Example 19: The method of Example 15, wherein the media stream includes error control information determined by at least one of the first server and the second server.
[0085] Example 20: The method of Example 19, wherein the second partial version is provided by the first server to the second server.
[0086] The foregoing descriptions of the disclosed embodiments have been presented for purposes of illustration and description. They are not intended to be exhaustive or to limit the scope of the claimed subject matter to the precise form disclosed, and other modifications and variations are possible in light of the above teachings. The embodiments are selected and described in order to best explain the principles of the disclosed embodiments and their practical application, thereby enabling others skilled in the art to best utilize the various embodiments and various modifications suitable for the particular use contemplated. The appended claims are intended to be interpreted to include other alternative embodiments, unless limited by the prior art.
Claims
1. A communication system, comprising: A first server communicating with a plurality of user devices, wherein the plurality of user devices share a media stream, the media stream comprising at least a first portion of a media stream and a second portion of a media stream different from the first portion of the media stream, the first portion of the media stream and the second portion of the media stream being capable of being used to output a low-quality version of the media stream and being capable of being combined to output a full-quality version of the media stream, the first server sending the first portion of the media stream to the plurality of user devices; and A second server in communication with the plurality of user equipments, the second server sending the second part of the media stream to the plurality of user equipments.
2. The system of claim 1, wherein: At least one of the plurality of user devices combines the first portion of the media stream and the second portion of the media stream to output a full-quality version of the media stream.
3. The system of claim 1, wherein: The first server and the second server include online conference servers.
4. The system of claim 1, wherein: The media stream originates from a first user equipment among the plurality of user equipments, and the first server is configured to split the media stream into the first partial media stream and the second partial media stream.
5. The system of claim 1, wherein: The media stream originates from a first user equipment among the plurality of user equipments, and the first user equipment is configured to split the media stream into the first partial media stream and the second partial media stream.
6. The system of claim 1, wherein: The media stream includes error control coding, and the first portion of the media stream includes error control coding.
7. The system of claim 6, wherein: At least one of the plurality of user equipments is configured to output a version of the media stream using error control coding in the first portion of the media stream.
8. A method of operating a communication system, the communication system comprising (i) a plurality of user devices sharing a media stream comprising a first portion of a media stream and a second portion of a media stream different from the first portion of the media stream, and (ii) a first server and a second server communicating with the plurality of user devices, the method comprising: Sending the first portion of the media stream from the first server to the plurality of user devices; Sending the second part of the media stream from the second server to the plurality of user equipments; Receiving, by at least a first user device among the plurality of user devices, the first portion of the media stream and the second portion of the media stream, the first portion of the media stream and the second portion of the media stream being capable of being used to output a low-quality version of the media stream and being capable of being combined to output a full-quality version of the media stream; as well as The first user equipment combines the first portion of the media stream and the second portion of the media stream to output the media stream.
9. The method of claim 8, wherein: The first portion of the media stream and the second portion of the media stream are used by the first user equipment to output a full-quality version of the media stream.
10. The method of claim 8, wherein: The first portion of the media stream and the second portion of the media stream include error control information.
11. The method of claim 8, further comprising receiving, by the first server, the media stream from a second user device among the plurality of user devices.
12. The method of claim 8, further comprising: The first server receives the first portion of the media stream from a second user device among the plurality of user devices, and The second part of the media stream is received by the second server from the second user equipment among the plurality of user equipments.
13. The method of claim 8, wherein: The first portion of the media stream and the second portion of the media stream include error control information calculated from the media streams.
14. The method of claim 8, further comprising: Receiving, by the first server, the media stream from a second user equipment among the plurality of user equipments; as well as The second portion of the media stream is received by the second server from the first server.
15. A method for operating a first user device among a plurality of user devices communicating with a first server and a second server, the plurality of user devices sharing a media stream, the media stream comprising a first portion of a media stream and a second portion of a media stream different from the first portion of the media stream, the method comprising: receiving the first portion of the media stream from the first server; receiving the second portion of the media stream from the second server, wherein the first portion of the media stream and the second portion of the media stream can be used to output a low-quality version of the media stream and can be combined to output a full-quality version of the media stream; as well as A version of the media stream is output using at least one of the first portion of the media stream and the second portion of the media stream.
16. The method of claim 15, further comprising decoding error control information provided by at least one of the first portion of the media stream and the second portion of the media stream to output the version of the media stream.
17. The method of claim 16, wherein: Decoding the error control information produces a full quality version of the media stream.
18. The method of claim 15, wherein: The media stream includes error control information determined by a second user equipment among the plurality of user equipments.
19. The method of claim 15, wherein: The media stream includes error control information determined by at least one of the first server and the second server.
20. The method of claim 19, wherein: The second part of the media stream is provided by the first server to the second server.
Citation Information
Patent Citations
Digital broadcasting method
US20120201328A1