CN110401854A - 一种高并发低时延的可靠流媒体分发系统和方法 - Google Patents
一种高并发低时延的可靠流媒体分发系统和方法 Download PDFInfo
- Publication number
- CN110401854A CN110401854A CN201910623132.2A CN201910623132A CN110401854A CN 110401854 A CN110401854 A CN 110401854A CN 201910623132 A CN201910623132 A CN 201910623132A CN 110401854 A CN110401854 A CN 110401854A
- Authority
- CN
- China
- Prior art keywords
- room
- server
- listener
- thread
- module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/238—Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
- H04N21/2385—Channel allocation; Bandwidth allocation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/24—Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/262—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
- H04N21/26208—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种高并发低时延的可靠流媒体分发系统和方法,包括客户端和服务端,其中客户端包括分享者客户端和收听者客户端;所述服务端包括监听模块、房间创建和分配模块、重新分配线程模块、数据分发模块;监听模块,用于监听并接收共享连接请求、收听连接请求;房间创建和分配模块,用于在监听并接收共享连接请求后,创建房间,将分享者加入该房间,同时将房间分配给当前用户数最少的收发包线程;重新分配线程模块,用于根据收听者想要收听的音频所对应的房间,将该收听者重新分配到该房间对应的收发包线程;本发明使用基于服务器端中转的方式,改进内部处理模型,降低内部子模块之间的锁竞争,可以实现高并发、低时延的音频数据的分发。
Description
技术领域
本发明涉及流媒体技术领域,尤其涉及的是一种高并发低时延的可靠流媒体分发系统和方法。
背景技术
互联网社交平台中,各用户之间想要共享自己正在听的歌曲或者网络音频课程,通常可以通过以下两种方式来解决:
1)通过用户之间直接建立连接完成音频流共享。
2)通过中间服务器中转完成音频共享。
第一种P2P方案中,由于用户的网络状况带宽,网络结构差异较大,导致收听方要么很难和共享方建立连接,要么连接上之后,音频传输较慢,不稳定等,很难达到较好的实时共享体验。
第二种使用中转服务器分发,在保证用户低时延共享体验的前提下,服务器内部的实现细节不同,单台物理服务器所能容纳的用户数量差异也较大。一般情况下,如图1所示,中转服务器包含一个收发包模块和一个数据分发模块。收发包模块负责接收和发送数据;数据分发模块负责维护内部数据,并将收到的音频数据分发给其他用户。由于收发包模块处理能力有限,并且收发包模块和数据分发模块之间的数据同步会产生锁竞争,导致服务器处理效率降低,随着用户数量的增大,音频分发过程就会出现时延较大,用户收听音频时就会出现卡顿、丢失音频等问题。
发明内容
本发明所要解决的技术问题是针对现有技术的不足提供一种。旨在解决互联网环境下,海量用户高并发、低时延、实时、可靠的流媒体分发及共享的问题。
本发明的技术方案如下:
一种高并发低时延的可靠流媒体分发系统,包括客户端和服务端,其中客户端包括分享者客户端和收听者客户端;
所述服务端包括监听模块、房间创建和分配模块、重新分配线程模块、数据分发模块;
监听模块,用于监听并接收共享连接请求、收听连接请求;
房间创建和分配模块,用于在监听并接收共享连接请求后,创建房间,将分享者加入该房间,同时将房间分配给当前用户数最少的收发包线程。
所述的所述可靠流媒体分发系统,所述服务端还包括重新分配线程模块,用于根据收听者想要收听的音频所对应的房间,将该收听者重新分配到该房间对应的收发包线程;
所述的所述可靠流媒体分发系统,所述服务端还包括数据分发模块,用于将分享者的音频数据分发给各个加入的收听者,该数据分发过程都在所述收发包线程内部完成,避免数据分发时各个线程之间的资源争抢。
所述的所述可靠流媒体分发系统,分享者客户端包括共享请求发送模块、音频数据发送模块;共享请求发送模块,用于向服务端发起共享请求;音频数据发送模块,用于在服务端创建房间、分享者加入该房间后,将分享的音频数据发送到服务端。
所述的所述可靠流媒体分发系统,所述收听者客户端包括收听请求发送模块、音频数据接收模块;收听请求发送模块,用于向服务端发起收听连接请求;音频数据接收模块,用于收听者加入对应房间后,接收来自服务端分的音频数据。
根据所述的可靠流媒体分发系统的方法,包括以下步骤:
A1:发起共享请求:分享者向服务端发起共享请求;
A2:创建房间:服务端监听线程监听并接收该共享连接请求后,服务端创建房间,分享者加入该房间,服务端同时将房间分配给当前用户数最少的收发包线程,分享者将分享的音频数据发送到服务端;
A3:收听者发起连接请求:收听者通过网络向服务端发起收听连接请求;
A4:接收连接请求:服务端监听线程监听并接收该收听连接请求,将收到的连接请求随机分配给各个收发包线程;
A5:收听者加入房间:收听者请求加入想要收听的音频所对应的房间。
所述的方法,还包括以下步骤:
A6:重新分配线程:服务端识别出收听者想要收听的音频,并搜索出该音频所对应的房间,并将该收听者重新分配到该房间对应的收发包线程;将该用户重新分配给该房间所在的收发包线程;
A7:数据分发:服务端将分享者的音频数据分发给各个加入的收听者,收听者接收该音频数据,该数据分发过程都在该收发包线程内部完成,避免数据分发时各个线程之间的资源争抢。
采用本发明的技术方案,本发明使用基于服务器端中转的方式,改进内部处理模型,降低内部子模块之间的锁竞争,可以实现高并发、低时延的音频数据的分发。
附图说明
图1为现有技术中流媒体分发系统架构示意图;
图2为本发明流媒体分发系统架构示意图;
具体实施方式
以下结合具体实施例,对本发明进行详细说明。
本发明将共享同一个音频的分享者和所有收听者所在的频道称为“房间”。如图2所示,一种高并发低时延的可靠流媒体分发系统,包括客户端和服务端(中转服务器),其中客户端又分为分享者客户端(用户a)和收听者客户端(用户b、用户c)。
所述分享者客户端包括共享请求发送模块、音频数据发送模块;
共享请求发送模块,用于向服务端发起共享请求;
音频数据发送模块,用于在服务端创建房间、分享者加入该房间后将分享的音频数据发送到服务端;
所述收听者客户端包括收听请求发送模块、音频数据接收模块;
收听请求发送模块,用于向服务端发起收听连接请求;
音频数据接收模块,用于收听者加入对应房间后,接收来自服务端分的音频数据;
所述服务端包括监听模块、房间创建和分配模块、重新分配线程模块、数据分发模块;
监听模块,用于监听并接收共享连接请求、收听连接请求;
房间创建和分配模块,用于在监听并接收共享连接请求后,创建房间,将分享者加入该房间,同时将房间分配给当前用户数最少的收发包线程;
重新分配线程模块,用于根据收听者想要收听的音频所对应的房间,将该收听者重新分配到该房间对应的收发包线程;
数据分发模块,用于将分享者的音频数据分发给各个加入的收听者,该数据分发过程都在所述收发包线程内部完成,避免数据分发时各个线程之间的资源争抢。
如图2所示,竖线左侧为服务端内部结构图。一个完整的数据分发流程如下:
发起共享请求:分享者向服务端发起共享请求。
创建房间:服务端监听线程监听并接收该共享连接请求后,服务端创建房间,分享者加入该房间,服务端同时将房间分配给当前用户数最少的收发包线程,分享者将分享的音频数据发送到服务端。将房间分配给当前用户数最少的收发包线程,使得各个线程处理的用户数大致上是一致的,避免各个线程间压力分布不均衡的问题。注:每次新建房间分配给用户数最少的线程,用户加入该房间之后,就会分配到房间所在的线程,该线程的用户数就会上升,因此整体看各个线程人数的是均衡的。
收听者发起连接请求:收听者通过网络向服务端发起收听连接请求。
接收连接请求:服务端监听线程监听并接收该收听连接请求,将收到的连接请求随机分配给各个收发包线程。
收听者加入房间:收听者请求加入想要收听的音频所对应的房间。
重新分配线程:服务端识别出收听者想要收听的音频,并搜索出该音频所对应的房间,并将该收听者重新分配到该房间对应的收发包线程;将该用户重新分配给该房间所在的收发包线程。
数据分发:服务端将分享者的音频数据分发给各个加入的收听者,收听者接收该音频数据,该数据分发过程都在该收发包线程内部完成,避免数据分发时各个线程之间的资源争抢。
本发明在建立连接时随机分配线程,之后根据想要加入的房间id重新分配线程,这样同一个房间的用户就分配到同一个线程,避免了分发数据时线程间的锁竞争。如图2所示,首先用户b向服务端发起连接请求,假设此时该连接被随机分配到线程2(建立连接时,服务端并不知道用户b要加入哪个房间,所以只能随机选择一个线程分配给它),随后用户b发起加入房间A的请求,服务端就将用户b重新分配到房间A所在的线程1,完成线程分配过程。
同一个房间的数据分发,只在同一个收、发包线程内部进行,最大程度降低了各个收、发包线程之间的同步锁开销,提高处理效率。其次:各个收、发包线程之间用户数总体上是均衡的,避免某个收发包线程压力过大时分发时延上升的问题。
应当理解的是,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,而所有这些改进和变换都应属于本发明所附权利要求的保护范围。
Claims (7)
1.一种高并发低时延的可靠流媒体分发系统,其特征在于,包括客户端和服务端,其中客户端包括分享者客户端和收听者客户端;
所述服务端包括监听模块、房间创建和分配模块、重新分配线程模块、数据分发模块;
监听模块,用于监听并接收共享连接请求、收听连接请求;
房间创建和分配模块,用于在监听并接收共享连接请求后,创建房间,将分享者加入该房间,同时将房间分配给当前用户数最少的收发包线程。
2.根据权利要求1所述的所述可靠流媒体分发系统,其特征在于,所述服务端还包括重新分配线程模块,用于根据收听者想要收听的音频所对应的房间,将该收听者重新分配到该房间对应的收发包线程。
3.根据权利要求1所述的所述可靠流媒体分发系统,其特征在于,所述服务端还包括数据分发模块,用于将分享者的音频数据分发给各个加入的收听者,该数据分发过程都在所述收发包线程内部完成,避免数据分发时各个线程之间的资源争抢。
4.根据权利要求1所述的所述可靠流媒体分发系统,其特征在于,分享者客户端包括共享请求发送模块、音频数据发送模块;共享请求发送模块,用于向服务端发起共享请求;音频数据发送模块,用于在服务端创建房间、分享者加入该房间后,将分享的音频数据发送到服务端。
5.根据权利要求1所述的所述可靠流媒体分发系统,其特征在于,所述收听者客户端包括收听请求发送模块、音频数据接收模块;收听请求发送模块,用于向服务端发起收听连接请求;音频数据接收模块,用于收听者加入对应房间后,接收来自服务端分的音频数据。
6.根据权利要求1-5任一所述的可靠流媒体分发系统的方法,其特征在于,包括以下步骤:
A1:发起共享请求:分享者向服务端发起共享请求;
A2:创建房间:服务端监听线程监听并接收该共享连接请求后,服务端创建房间,分享者加入该房间,服务端同时将房间分配给当前用户数最少的收发包线程,分享者将分享的音频数据发送到服务端;
A3:收听者发起连接请求:收听者通过网络向服务端发起收听连接请求;
A4:接收连接请求:服务端监听线程监听并接收该收听连接请求,将收到的连接请求随机分配给各个收发包线程;
A5:收听者加入房间:收听者请求加入想要收听的音频所对应的房间。
7.根据权利要求6所述的方法,其特征在于,还包括以下步骤:
A6:重新分配线程:服务端识别出收听者想要收听的音频,并搜索出该音频所对应的房间,并将该收听者重新分配到该房间对应的收发包线程;将该用户重新分配给该房间所在的收发包线程;
A7:数据分发:服务端将分享者的音频数据分发给各个加入的收听者,收听者接收该音频数据,该数据分发过程都在该收发包线程内部完成,避免数据分发时各个线程之间的资源争抢。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910623132.2A CN110401854A (zh) | 2019-07-11 | 2019-07-11 | 一种高并发低时延的可靠流媒体分发系统和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910623132.2A CN110401854A (zh) | 2019-07-11 | 2019-07-11 | 一种高并发低时延的可靠流媒体分发系统和方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110401854A true CN110401854A (zh) | 2019-11-01 |
Family
ID=68324593
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910623132.2A Pending CN110401854A (zh) | 2019-07-11 | 2019-07-11 | 一种高并发低时延的可靠流媒体分发系统和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110401854A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112351299A (zh) * | 2020-11-05 | 2021-02-09 | 山东亚华电子股份有限公司 | 一种宣教广播方法及设备 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080159286A1 (en) * | 2006-12-28 | 2008-07-03 | Moore Martin T | Contextualized broadcast message channel for activity-centric collaborative computing |
CN101453285A (zh) * | 2007-11-30 | 2009-06-10 | 深圳华为通信技术有限公司 | 共同观看节目的系统及方法 |
CN103605568A (zh) * | 2013-10-29 | 2014-02-26 | 北京奇虎科技有限公司 | 一种多线程管理方法及装置 |
CN103858423A (zh) * | 2011-10-10 | 2014-06-11 | 谈呀有限公司 | 通信系统 |
CN105007213A (zh) * | 2015-06-02 | 2015-10-28 | 贵阳语玩科技有限公司 | 一种实现网络聊天室的方法及服务器 |
CN105898508A (zh) * | 2016-06-01 | 2016-08-24 | 北京奇艺世纪科技有限公司 | 一种视频同步共享播放方法及装置 |
US20170131781A1 (en) * | 2010-06-02 | 2017-05-11 | Microsoft Technology Licensing, Llc | Recognition system for sharing information |
CN107204913A (zh) * | 2017-05-08 | 2017-09-26 | 贵阳朗玛信息技术股份有限公司 | 音乐分享处理方法、装置及系统 |
-
2019
- 2019-07-11 CN CN201910623132.2A patent/CN110401854A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080159286A1 (en) * | 2006-12-28 | 2008-07-03 | Moore Martin T | Contextualized broadcast message channel for activity-centric collaborative computing |
CN101453285A (zh) * | 2007-11-30 | 2009-06-10 | 深圳华为通信技术有限公司 | 共同观看节目的系统及方法 |
US20170131781A1 (en) * | 2010-06-02 | 2017-05-11 | Microsoft Technology Licensing, Llc | Recognition system for sharing information |
CN103858423A (zh) * | 2011-10-10 | 2014-06-11 | 谈呀有限公司 | 通信系统 |
CN103605568A (zh) * | 2013-10-29 | 2014-02-26 | 北京奇虎科技有限公司 | 一种多线程管理方法及装置 |
CN105007213A (zh) * | 2015-06-02 | 2015-10-28 | 贵阳语玩科技有限公司 | 一种实现网络聊天室的方法及服务器 |
CN105898508A (zh) * | 2016-06-01 | 2016-08-24 | 北京奇艺世纪科技有限公司 | 一种视频同步共享播放方法及装置 |
CN107204913A (zh) * | 2017-05-08 | 2017-09-26 | 贵阳朗玛信息技术股份有限公司 | 音乐分享处理方法、装置及系统 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112351299A (zh) * | 2020-11-05 | 2021-02-09 | 山东亚华电子股份有限公司 | 一种宣教广播方法及设备 |
CN112351299B (zh) * | 2020-11-05 | 2022-11-04 | 山东亚华电子股份有限公司 | 一种宣教广播方法及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10334207B2 (en) | Audio video streaming system and method | |
CN101141459B (zh) | 使用http与p2p相结合实现数据传输或流媒体传输的方法 | |
WO2017088384A1 (zh) | 一种直播视频的上传方法、装置及系统 | |
CN105159781B (zh) | 调节智能终端应用网速的方法、装置和智能终端 | |
CN104038410B (zh) | 一种群组成员身份信息保护方法及系统 | |
CN107911361B (zh) | 支持多会话的语音管理方法、装置、终端设备及存储介质 | |
CN104954866B (zh) | 一种流媒体数据直播中播放点动态控制方法 | |
CN106303674B (zh) | 数据传输方法、装置和智能电视系统 | |
WO2017092311A1 (zh) | 视频数据的获取方法、装置及系统 | |
EP4158920B1 (en) | Connected isochronous stream swapping | |
CN109600388A (zh) | 数据传输方法、装置、计算机可读介质及电子设备 | |
CN112351303B (zh) | 一种网络会议中的视频共享方法、系统和可读存储介质 | |
US9118742B2 (en) | Delivering a video stream | |
WO2017161757A1 (zh) | 一种流媒体文件分发方法及系统 | |
AU2020257112A1 (en) | Distribution of bandwidth in a network | |
CN104065914B (zh) | 一种无线终端视频会议系统、实现方法和装置 | |
CN103841468B (zh) | 实时流媒体数据传输方法 | |
CN111131843A (zh) | 一种网络直播系统和方法 | |
CN110401854A (zh) | 一种高并发低时延的可靠流媒体分发系统和方法 | |
US20160050244A1 (en) | Systems and Methods for Shared Media Streaming | |
EP3902279A1 (en) | Audio and video stream distribution method in audio and video stream distribution system, and dynamic parent node | |
CN107294830A (zh) | 一种数据传输方法及系统 | |
WO2021110167A1 (zh) | 自组网级联方法、音频采集设备、会议系统、存储介质 | |
CN108833554A (zh) | 一种面向大规模网络的实时高可靠消息分发系统及其方法 | |
US20160088079A1 (en) | Streaming playout of media content using interleaved media players |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20191101 |
|
RJ01 | Rejection of invention patent application after publication |