System and method for simultaneous media streaming service

文档序号:1966099 发布日期:2021-12-14 浏览:13次 中文

阅读说明:本技术 用于同时媒体流服务的系统和方法 (System and method for simultaneous media streaming service ) 是由 D·莱温 B·R·克拉克 A·哈桑 于 2017-06-22 设计创作,主要内容包括:本发明涉及一种用于同时媒体流服务的系统和方法。使用两个或更多系统将在线内容提供给参与者设备。每个系统提供的内容不尽相同。相反,来自每个系统的内容流是内容流的原始高质量版本的部分或低质量版本。参与者设备可以使用部分数据流中的单个数据流来向用户输出原始内容流的较低质量版本。可替代地,可以组合所接收的部分内容流,以向用户输出原始内容流的高质量版本。(The present invention relates to a system and method for simultaneous media streaming services. Online content is provided to participant devices using two or more systems. The content provided by each system is different. Rather, the content stream from each system is a partial or low quality version of the original high quality version of the content stream. The participant device may use a single data stream of the partial data streams to output a lower quality version of the original content stream to the user. Alternatively, the received partial content streams may be combined to output a high quality version of the original content stream to the user.)

1. A communication system, comprising:

a first server in communication with a plurality of user devices, wherein the plurality of user devices share a media stream, the media stream comprising at least a first partial media stream and a second partial media stream different from the first partial media stream, the first server transmitting the first partial media stream to the plurality of user devices; and

a second server in communication with the plurality of user devices, the second server sending the second portion of the media stream to the plurality of user devices.

2. The system of claim 1, wherein at least one of the plurality of user devices combines the first partial media stream and the second partial 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 comprise online conferencing servers.

4. The system of claim 1, wherein the media stream originates from a first user device of the plurality of user devices, 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 device of the plurality of user devices and the first user device 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 devices 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 that includes (i) a plurality of user devices that share a media stream that includes a first portion of the media stream and a second portion of the media stream, and (ii) a first server and a second server that communicate 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;

transmitting the second partial media stream from the second server to the plurality of user devices;

receiving, by at least a first user device of the plurality of user devices, the first and second partial media streams; and

combining, by the first user equipment, the first partial media stream and the second partial media stream to output the media stream.

9. The method of claim 8, wherein the first partial media stream and the second partial 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 partial media stream and the second partial 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 of the plurality of user devices.

12. The method of claim 8, further comprising:

receiving, by the first server, the first portion of the media stream from a second user device of the plurality of user devices, an

Receiving, by the second server, the second partial media stream from the second user device of the plurality of user devices.

13. The method of claim 8, wherein the first and second partial media streams include error control information calculated from the media stream.

14. The method of claim 8, further comprising:

receiving, by the first server, the media stream from a second user device of the plurality of user devices; and

receiving, by the second server, the second portion of the media stream from the first server.

15. A method of operating a first user device of a plurality of user devices in communication 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 the media stream and a second portion of the media stream, the method comprising:

receiving the first portion of the media stream from the first server;

receiving the second partial media stream from the second server; and

outputting a version of the media stream using at least one of the first partial media stream and the second partial media stream.

16. The method of claim 15, further comprising decoding error control information provided by at least one of the first partial media stream and the second partial 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 of 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 portion of the media stream is provided by the first server to the second server.

Background

Online conferencing (also known as web conferencing and/or internet conferencing) systems have a range of functions including voice/video communication, instant messaging, data/application sharing, and white board. These online collaboration services 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 communication as well as multicast communication (i.e., from one sender to multiple recipients). Some services provide data streaming for voice and/or video chat for simultaneous sharing across geographically dispersed locations. Applications for online meetings include meetings, training activities, lectures, and presentations.

Disclosure of Invention

Examples discussed herein relate to a system including a first server having a plurality of user devices linked to each other via the first server. Multiple user devices share a media stream. The media stream comprises at least a first part of the media stream and a second part 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 a first portion of the media stream to a plurality of user devices. The system also includes 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.

In an example, a method of operating a system includes linking a plurality of user devices to one another via a first server. Multiple user devices will share the media stream. The method also includes linking the plurality of user devices to each other via a second server. The method also includes sending the first partial version of the media stream from the first server and to the plurality of user devices. The method also includes sending, from the second server and to the plurality of user devices, the second partial version of the media stream. The method also includes receiving, by at least a first user device of the plurality of user devices, a first portion of the first portion version and a second portion of the second portion version. The method also includes combining, by the first user device, the first portion and the second portion to output a version of the media stream to the user.

In one example, a method of operating a user equipment linked to a system comprises: a first partial version of a media stream is received 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.

This summary is provided to introduce a selection of concepts in a simplified form that are further described below in the detailed description. 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 disadvantages noted in any part of this disclosure.

Drawings

In order to describe the manner in which the above-recited and other advantages and features can be obtained, a more particular description is set forth, and will be rendered by reference to specific examples thereof which are illustrated in the appended drawings. Understanding that these drawings depict only typical examples and are not therefore to be considered to be limiting of its scope, implementations will be described and explained with additional specificity and detail through the use of the accompanying drawings.

Fig. 1 is a block diagram illustrating an online communication system.

Fig. 2 is a flow chart illustrating a method of operating an online communication system.

Fig. 3A is a diagram illustrating content sharing using a plurality of content streams.

Fig. 3B is a diagram illustrating content sharing using a single input content stream.

Fig. 4 is a flow chart illustrating the reception of multiple content streams.

Fig. 5 is a block diagram illustrating a computer system.

Detailed Description

Examples are discussed in detail below. While specific implementations are discussed, it should be understood that this is done for illustrative purposes only. A person skilled in the relevant art will recognize that other components and configurations may be used without parting from the spirit and scope of the subject matter of this disclosure. Implementations may be a machine-implemented method, computing device, or computer-readable medium.

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 different. Rather, 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 may use a single data stream of the partial data streams to output a lower quality version of the original content stream to the user. In one embodiment, the received partial content streams may be combined to output a high quality version of the original content stream to the user.

As used herein, the term "real-time" is intended to broadly refer 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. The 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. By way of example, for purposes of the present system, a delay between an event and the communication of such 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.

For example, in an online conference, multiple participants may send and receive live real-time video and audio data to each other-each participant talking to one or more others in real-time with an appropriate minimum level of delay so that a "conversation" between users over a network can occur in real-time. Thus, it should be understood that the terms "live" or "real-time" as used in this context are not limited to zero delay, but allow some minimum delay, which may be on the order of several seconds, for example. The delay should not be so great as to cause difficulties for different users to communicate with each other. Delays greater than about 5 seconds may not be suitable for many applications.

Fig. 1 is a block diagram illustrating an online communication system. In FIG. 1, the system 100 includes participants 101, 104, a client device 131, 134, a network 120, and a server 151, 152. The participants 101-104 each use a software program deployed on the client device 131-134 to participate in an online communication session hosted by at least the server 151-152. Client device 131 and 134 are operatively coupled to network 120. Network 120 includes server 151 and 152, or is operatively coupled to server 151 and 152. Accordingly, the participants 101, 104 via the client device 131, the network 120, and the server 151, 152 are able to join, leave, receive, and participate in the online communication session.

Network 120 is a wide area communication network that can provide wired and/or wireless communication between client device 131 and server 151 and 152. Network 120 may include wired and/or wireless communication networks including processing nodes, routers, gateways, physical and/or wireless data links used to carry data between various network elements, including combinations thereof, and may include local area networks, wide area networks, and the internetwork (including the internet). 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 type of communication device, and combinations thereof. Wired network protocols that network 120 may use include ethernet, fast ethernet, gigabit ethernet, local telephony (such as carrier sense multiple access with collision avoidance), token ring, Fiber Distributed Data Interface (FDDI), and Asynchronous Transfer Mode (ATM). The links between elements of network 120 may be, for example, twisted pair cables, coaxial cables, or fiber optic cables, or a combination thereof.

Other network elements may be present in the network 120 to facilitate communications but are omitted for clarity, such as base stations, base station controllers, gateways, mobile switching centers, scheduling application processors, and location registers such as home location registers or visitor location registers. In addition, other network elements may be present to facilitate communications between elements of 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 various network elements.

Client device 131-TMApplications) to participate in a communication session hosted by server 151 and 152. Other types of communication platforms are also possible. Example devices that may include and/or comprise client device 131 and/or 134 include, but are not limited to, example computer system 500 (described herein with reference to FIG. 5).

In one embodiment, client devices 131 and 134 are linked to each other via server 151. Client devices 131 and 134 are capable of sharing media streams via server 151. For example, client device 131 and 134 may be able to share real-time media streams via server 151. The client devices 131 and 134 are also linked to each other via the server 152.

Server 151 sends the first partial version of the media stream to client device 131 and 134. This is illustrated in fig. 1 by arrow 141 running from server 151 to client device 131. This is also illustrated in fig. 1 by arrow 143 running from server 151 to client device 132. Additional arrows running from server 151 to client devices 133 and 134 may be shown in fig. 1 to illustrate that the first partial version of the content stream flows to client devices 133 and 134. However, these additional arrows are omitted for the sake of brevity.

The server 152 sends the second partial version of the media stream to the client device 131 and 134. This is illustrated in fig. 1 by arrow 142 running from server 152 to client device 131. This is also illustrated 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 shown in fig. 1 to illustrate that the second partial version of the content stream flows to client devices 133 and 134. However, these additional arrows are omitted for the sake of brevity.

In one embodiment, server 152 is designated as a redundant server for service 151. In other words, server 152 may be configured to "take over" server 151 if server 151 fails or is otherwise disconnected from one or more client devices 131 and/or network 120. Typically, server 151 and server 152 are located in geographically separate facilities. These facilities may include many servers. These facilities may also be referred to as data centers. Example devices that may include and/or include server 151 and/or 152 include, but are not limited to, example computer system 500 (described herein with reference to FIG. 5).

The client device 131 receives a first portion of the first partial version of the content stream. The client device 131 receives a second portion of the second partial version of the content stream. Client device 131 may receive only a portion of the first and/or second partial versions of the content stream due to lost packets, network 120 congestion, server 151 congestion 152 failure, etc.

The client device 131 combines the first portion and the second portion 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 and 134. The version may be a lower quality or "incomplete" version of the media stream shared between the client devices 131 and 134.

Likewise, the client device 132 receives a third portion of the first partial version of the content stream. The client device 132 receives a fourth portion of the second partial version of the content stream. Client device 132 may receive only a portion of the first and/or second partial versions of the content stream due to lost packets, network 120 congestion, server 151 congestion 152 failure, etc.

The client device 132 combines the third portion and the fourth portion 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 and 134. The version may be a lower quality or "incomplete" version of the media stream shared between the client devices 131 and 134. The first portion of the first partial version and the third portion of the first partial version may be different due to differences in communication paths from server 151 to client device 131 (arrow 141) and client device 132 (arrow 143). Also, the second part of the first partial version and the fourth part of the second partial version may be different for the same reason. The first and third portions and the second and fourth portions may be different because the communication paths between server 151 and client device 131 and 132 experience different lost packets, network 120 congestion, server 151 and 152 failure, etc.

In one embodiment, servers 151 and 152 transmit partial content streams based on encoded content streams with error control coding or other redundant information (e.g., repetition coding) that can be used to reconstruct a full content stream in the presence of missing portions of the encoded content stream.

For example, the content stream to be shared may be encoded with a low rate error control code. The content stream may be encoded with a low rate error control code such as reed-solomon encoding. The redundancy of a given reed-solomon code can be expressed as RS (N, K), where the code uses N codewords of length N symbols, each storing K symbols. In one embodiment, N > K. In another embodiment, N-2K, such that at least half of all codewords must be received by a given client device 131 and 134 in order to reconstruct all codewords transmitted (i.e., the "original" content stream). Thus, if the original content stream is arbitrarily split in half, and that half sent by the separate server 151 and 152 (half of the encoded stream, if received without loss) can be used by the client device 131 and 134 to reconstruct a full quality version of the content stream. Assuming that there is a loss of packets or portions of the stream sent by server 151 and 152, the remaining portions of the two halves of the encoded content stream may be used to reconstruct a full quality version of the content stream.

The low rate coding may be generalized for M servers. In this case, RS (M x K, K) may be used to generate M output symbols for each input symbol. The resulting encoded content stream may be partitioned and provided to the client device 131 and 134 by the M servers 151 and 152. Other types of error control coding may be used. For example, a suitably selected turbo code or the like may be used to generate the encoded content stream, which is then split for transmission from a separate server 151 152.

In another embodiment, the system 100 may dynamically partition the encoded data stream based on the content of the encoded data stream. For example, the system 100 may search the encoded data stream for segments that exhibit relatively large distance characteristics from each other. In other words, the system 100 may segment the encoded data stream into sequences that are separated by large distances from each other, and then transmit each of these sequences using a different server 151 and 152.

In one embodiment, the client device 131-. In this case, the split of the coded media stream from the non-selected server may be ignored. The client device 131 and 134 may select to use a subset of the information in the content stream sent by the server 151 and 152 based on the quality of the content stream received from the server 151 and 152 to be or to be ignored, or the server being used. For example, if the quality of the partially encoded content stream received from server 151 is sufficient to render a full quality version of the content stream, the partially encoded content stream from server 152 may be ignored. Conversely, if the quality of the partially encoded content stream received from the server 152 is too poor to significantly contribute to rendering a full-quality version of the content stream, for example, the partially encoded content stream from the server 152 may be ignored.

Fig. 2 is a flow chart illustrating a method of operating an online communication system. The steps shown in fig. 2 may be performed by one or more elements of system 100. A plurality of user devices are linked to each other via a first server, wherein the plurality of user devices are to share a media stream (202). For example, client devices 131 and 134 may be linked to each other via server 151 to share audio, video, text messages, presentations, screen sharing, and the like. Client devices 131 and 134 may be linked to each other via server 151 for real-time sharing of audio, video, text messages, presentations, screen sharing, etc.

The plurality of user devices are linked to each other via a second server (204). For example, the client devices 131 and 134 may be linked to each other via the server 152 to share audio, video, text messages, presentations, screen sharing, and the like. Client devices 131 and 134 may be linked to each other via server 152 for real-time sharing of audio, video, text messages, presentations, screen sharing, and the like. In another example, client devices 131-134 may 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).

A first partial version of a media stream is sent from a first server to a plurality of user devices (206). For example, server 151 may send a first partial version of the media stream to client device 131 and 134. The partial content stream transmitted by server 151 may be part of an encoded content stream with error control coding or other redundant information (e.g., repetition coding) that may be used to reconstruct a full content stream in the presence of missing portions of the encoded content stream.

A second partial version of the media stream is transmitted from the second server to the plurality of user devices (208). For example, the server 152 may send the second partial version of the media stream to the client device 131-134. Portions of the content stream transmitted by server 152 may be different portions of the encoded content stream than the portions transmitted by server 151.

A first portion of the first portion version and a second portion of the second portion version are received by at least a first user device of the plurality of user devices (210). For example, client device 131 may receive a first portion of a first partial version of a content stream. The client device 131 may receive a second portion of the second partial version of the content stream. Client device 131 may receive only a portion of the first and/or second partial versions of the content stream due to lost packets, network 120 congestion, server 151 congestion 152 failure, etc.

The first portion and the second portion are combined by the first user device to output a version of the media stream to the user (212). For example, the client device 131 may combine the first portion and the second portion 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 and 134. The version may be a lower quality or "incomplete" version of the media stream shared between the client devices 131 and 134.

Fig. 3A is a diagram illustrating content sharing using a plurality of content streams. In FIG. 3A, the system 300 includes a participant 301, a client device 331, a network 320, and a server 351, 352. The participants 301 and 302 respectively use software programs deployed on the client device 331 and 332 to participate in the online communication session hosted by at least the server 351 and 352. Client devices 331-332 are operatively coupled to network 320. Network 320 includes or is operatively coupled to a server 351-352. Thus, the participants 301 and 302 are able to join, leave, receive, and participate in the online communication session via the client device 331 and 332, the network 320, and the server 351 and 352.

The network 120 is a wide area communication network that may provide wired and/or wireless communication between the client device 331 and 332 and the server 351 and 352. Network 320 is similar to network 120 described herein. Accordingly, further description of the network 320 will be omitted herein for the sake of brevity.

Client devices 331-332 may be, for example, a desktop computer, a tablet computer, a laptop computer, a mobile phone, a wireless phone, a Personal Digital Assistant (PDA), a voice over internet protocol (VoIP) phone, a Voice Over Packet (VOP) phone, or a softphone, and execute a web browser, online conferencing software, and/or online communication software (e.g., Skype from microsoft corporation)TMApplications) to participate in a communication session hosted by server 351 and 352. Other types of communication platforms are also possible. Example devices that may include and/or include client device 331 and/or 332 include, but are not limited to, example computer system 500 (described herein with reference to FIG. 5).

In one embodiment, client devices 331-332 are linked to each other via server 351 and server 352. Client devices 131 and 134 are capable of sharing media streams via servers 351 and 352.

The client device 331 sends the first partial version of the media stream to the server 351. This is illustrated in fig. 3A by arrow 341 running from the client device 331 to the server 351. The client device 331 sends the second partial version of the media stream to the server 352. This is illustrated in fig. 3A by the arrow 342 running from the client device 331 to the server 351.

The server 351 sends the first partial version of the media stream to the client device 332. This is illustrated in fig. 3A by arrow 343 running from the server 351 to the client device 332. The server 352 sends the second partial version of the media stream to the client device 332. This is illustrated in fig. 3A by arrow 344 running from server 352 to client device 332.

In one embodiment, server 352 is designated as a redundant server of server 351. In other words, if server 351 fails or is otherwise disconnected from one or more client devices 331 and/or network 320, server 352 may be configured to "take over" server 351. Typically, server 351 and server 352 are located in geographically separate facilities. These facilities may include a number of servers. These facilities may also be referred to as data centers. Example devices that may include and/or include servers 351 and 352 include, but are not limited to, example computer system 500 (described herein with reference to FIG. 5).

The client device 332 receives a first portion of the first partial version of the content stream. The client device 332 receives a second portion of the second partial version of the content stream. The 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 congestion 352, server 351 failure 352, and/or the like.

The client device 332 combines the first portion and the second portion to output a version of the media stream to the user 302. The version may be a high quality or "full" version of the media stream shared between client devices 331-332. This version may be a lower quality or "incomplete" version of the media stream shared between client devices 331-332.

In one embodiment, the client device 331 sends a partial content stream based on the encoded content stream with error control coding or other redundant information (e.g., repetition coding) that can be used to reconstruct a full content stream in the presence of missing portions of the encoded content stream. For example, the content stream to be shared by the client device 331 may be encoded with a low-rate error control code and segmented by the client device 331, as described herein.

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 server 351 and 352. In this case, the split of the coded media stream from the non-selected server may be ignored. The client device 302 may select to use a subset of the information in the content stream relayed by the server 351 along 352 based on the quality of the content stream received from either the server 351 along 352 to be ignored or the server 351 along 352 being used. For example, if the quality of the partially encoded content stream received via server 351 is sufficient to render a full quality version of the content stream, the partially encoded content stream transmitted via server 352 may be ignored. Conversely, for example, if the quality of the partially encoded content stream received via the server 352 is too poor to significantly contribute to rendering a full-quality version of the content stream, the partially encoded content stream transmitted via the server 352 may be ignored.

Fig. 3B is a diagram illustrating content sharing using a single input content stream. In FIG. 3B, the system 301 includes a participant 301, a client device 331, a network 320, and a server 351, 352.

In one embodiment, client devices 331-332 are linked to each other via server 351 and server 352. Client devices 131 and 134 are capable of sharing media streams via servers 351 and 352.

The client device 331 sends the full version of the media stream to the server 351. This is illustrated in FIG. 3B by arrow 361 running from the client device 331 to the server 351. The full version of the media stream sent by the client device 331 may be unencoded or may be encoded as described herein. The server 351 sends the first partial version of the media stream to the client device 332. This is illustrated in fig. 3B by arrow 363 running from the server 351 to the client device 332. Server 351 sends the second partial version of the media stream to server 352. This is illustrated in FIG. 3B by arrow 362 running from server 351 to server 352. The server 352 sends the second partial version of the media stream to the client device 332. This is illustrated in fig. 3B by arrow 364 running from server 352 to client device 332. Thus, it should be understood from fig. 3A and 3B that the splitting of the shared media stream may be done by the sending client device 331 or by the server 351. When the split is done by a single server 351, the server 351 sends the split to the other servers 352 linked to the client device 331 for the purpose of an online communication session.

Fig. 4 is a flow chart illustrating the reception of multiple content streams. The steps shown in fig. 4 may 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 a plurality of user devices to each other (402). For example, client device 332 may receive a first partial version of a media stream from server 351. In an example, the client device 332 may receive the partial version created by the sending client device 331 from the server 351. In another example, the client device 332 may receive the partial version created by the server 351 from the server 351.

A second partial version of the media stream is received from a second server (404). For example, client device 332 may receive the second partial version of the media stream from server 352. In an example, the client device 332 may receive the partial version created by the sending client device 331 from the server 352. In another example, the client device may receive a partial version from the server 351 created by the server 351 and sent to the client device 332 through the server 352.

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, the client device 332 may use the received partial versions (alone or in combination) to output a version of the media stream to the user 302. The client device 332 may receive only a portion of the first and/or second partial versions of the content stream. The 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 congestion 352, server 351 failure 352, and/or the like.

The above-described methods, systems, and apparatus may be implemented in or stored by a computer system. The above-described 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 in a computer-readable file containing a software description of such circuits. This includes, but is not limited to, one or more elements of system 100, system 300, and/or system 301 and components thereof. These software descriptions may be: behavioral, register transfer, logic component, transistor, and layout geometry level descriptions.

Data formats in which such descriptions may be implemented are stored on non-transitory computer-readable media, including but not limited to: formats supporting behavioral languages such as C, formats supporting Register Transfer Level (RTL) languages such as Verilog and VHDL, formats supporting geometry description languages (e.g., GDSII, GDSIII, GDSIV, CIF, and MEBES), and other suitable formats and languages. The physical file may be implemented on a non-transitory machine-readable medium, such as: 4mm magnetic tape, 8mm magnetic tape, 3-1/2 inch floppy disk media, CDs, DVDs, hard drives, solid state disk drives, solid state memory, flash drives, etc.

Alternatively or in addition, the content of the functional descriptions herein may be performed, at least in part, by one or more hardware logic components. By way of example, and not limitation, 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-a-chip (SOCs), Complex Programmable Logic Devices (CPLDs), and the like.

FIG. 5 shows a block diagram of an example computer system. Computer system 500 includes a communication interface 520, a processing system 530, a storage system 540, and a user interface 560. The processing system 530 is operatively coupled to a storage system 540. Storage system 540 stores software 550 and data 570. Processing system 530 is operatively coupled to communication interface 520 and user interface 560. Computer system 500 may comprise a programmed general-purpose computer. Computer system 500 may include a microprocessor. The computer system 500 may include programmable or application specific circuitry. Computer system 500 may be distributed among multiple devices, processors, memories, and/or interfaces that together comprise elements 520-570.

Communication interface 520 may include a network interface, modem, port, bus, link, transceiver, or other communication device. Communication interface 520 may be distributed among multiple communication devices. The processing system 530 may include a microprocessor, microcontroller, logic circuit, or other processing device. Processing system 530 may be distributed across multiple processing devices. The user interface 560 may include a keyboard, mouse, voice recognition interface, microphone and speaker, graphical display, touch screen, or other type of user interface device. The user interface 560 may be distributed among multiple interface devices. Storage system 540 may include disks, tapes, integrated circuits, RAM, ROM, EEPROM, flash memory, network storage, servers, or other storage functions. Storage system 540 may include computer-readable media. Storage system 540 may be distributed across multiple memory devices.

Processing system 530 retrieves and executes software 550 from storage system 540. Processing system 530 may retrieve and store data 570. Processing system 530 may also retrieve and store data via communication interface 520. The processing system 550 may create or modify software 550 or data 570 to achieve tangible results. The processing system may control the communication interface 520 or the user interface 560 to achieve a tangible result. Processing system 530 may retrieve and execute remotely stored software via communication interface 520.

The software 550 and remotely stored software may include operating systems, utilities, drivers, networking software, and other software typically executed by computer systems. The software 550 may include an application, applet, firmware or other form 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.

Implementations discussed herein include, but are not limited to, the following examples:

example 1: a system, comprising: 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 partial media stream and a second partial media stream, the first partial media stream being different from the second partial media stream, the first server sending the first partial 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 transmitting the second partial media stream to the plurality of user devices.

Example 2: the system of example 1, wherein at least one of the plurality of user devices combines the first partial media stream and the second partial media stream to output a full quality version of the media stream.

Example 3: the system of example 1, wherein the first server and the second server are online conferencing servers.

Example 4: the system of example 1, wherein the media stream originates from a first user device of the plurality of user devices, and the first server splits the media stream into the first partial media stream and the second partial media stream.

Example 5: the system of example 1, wherein the media stream originates from a first user device of the plurality of user devices, and the first user device splits the media stream into the first partial media stream and the second partial media stream.

Example 6: the system of example 1, wherein the media stream includes error control coding.

Example 7: the system of example 6, wherein at least one of the plurality of user devices outputs the full quality version of the media stream using error control coding in the first portion of the media stream.

Example 8: a method of operating a system, comprising: linking a plurality of user devices to each other via a first server, wherein the plurality of user devices share a media stream; linking the plurality of user devices to each other via a second server; sending, from the first server, a first partial version of a media stream to the plurality of user devices; sending, from the second server, a second partial version of the media stream to the plurality of user devices; receiving, by at least a first user device of the plurality of user devices, a first portion of the first partial version and a second portion of the second partial version; and combining, by the first user device, the first portion and the second portion to output a version of the media stream to the user.

Example 9: the method of example 8, wherein the first portion and the second portion are used by the first user device to output a full-quality version of the media stream.

Example 10: the method of example 8, wherein the first partial version and the second partial version comprise error control information.

Example 11: the method of example 8, further comprising: receiving, by the first server, the media stream from a second user device of the plurality of user devices.

Example 12: the method of example 8, further comprising: receiving, by the first server, a first partial version of the media stream from a second user device of the plurality of user devices; and receiving, by the second server, a second partial version of the media stream from a second user device of the plurality of user devices.

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 comprise error control information computed from the media stream.

Example 14: the method of example 8, further comprising: receiving, by the first server, the media stream from a second user device of the plurality of user devices; and receiving, by the second server, the second partial version of the media stream from the first server.

Example 15: a method of operating a user equipment linked to a system, comprising: receiving a first partial version of a media stream from a first server linking a plurality of user devices to each other; receiving a second partial version of the media stream from a second server; and outputting a version of the media stream using at least one of the first partial version and the second partial version.

Example 16: the method of example 15, further comprising: decoding the error control information provided by at least one of the first partial version and the second partial version to output a version of the media stream.

Example 17: the method of example 16, wherein decoding the 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.

Example 18: the method of example 15, wherein the media stream includes error control information determined by a second user equipment of the plurality of user equipments.

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.

Example 20: the method of example 19, wherein the second partial version is provided by the first server to the second server.

The foregoing description of the disclosed embodiments has 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 forms disclosed, and other modifications and variations are possible in light of the above teachings. The embodiments were chosen and described in order to best explain the principles of the disclosed embodiments and its practical application, to thereby enable others skilled in the art to best utilize the disclosed embodiments and various embodiments with various modifications as are suited to the particular use contemplated. It is intended that the appended claims be construed to include other alternative embodiments except insofar as limited by the prior art.

18页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种视频监控系统视频数据的传输控制系统及方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类