CN110401854A - 一种高并发低时延的可靠流媒体分发系统和方法 - Google Patents

一种高并发低时延的可靠流媒体分发系统和方法 Download PDF

Info

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
Application number
CN201910623132.2A
Other languages
English (en)
Inventor
李维将
王恒
陈正超
段凌云
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guiyang Yuwan Science & Technology Co Ltd
Original Assignee
Guiyang Yuwan Science & Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Guiyang Yuwan Science & Technology Co Ltd filed Critical Guiyang Yuwan Science & Technology Co Ltd
Priority to CN201910623132.2A priority Critical patent/CN110401854A/zh
Publication of CN110401854A publication Critical patent/CN110401854A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/238Interfacing 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/2385Channel allocation; Bandwidth allocation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management 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/262Content 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/26208Content 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:数据分发:服务端将分享者的音频数据分发给各个加入的收听者,收听者接收该音频数据,该数据分发过程都在该收发包线程内部完成,避免数据分发时各个线程之间的资源争抢。
CN201910623132.2A 2019-07-11 2019-07-11 一种高并发低时延的可靠流媒体分发系统和方法 Pending CN110401854A (zh)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112351299A (zh) * 2020-11-05 2021-02-09 山东亚华电子股份有限公司 一种宣教广播方法及设备

Citations (8)

* Cited by examiner, † Cited by third party
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 贵阳朗玛信息技术股份有限公司 音乐分享处理方法、装置及系统

Patent Citations (8)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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) 调节智能终端应用网速的方法、装置和智能终端
CN104754284B (zh) 一种视频会议直播方法、设备及系统
CN104954866B (zh) 一种流媒体数据直播中播放点动态控制方法
CN107911361B (zh) 支持多会话的语音管理方法、装置、终端设备及存储介质
CN109600388A (zh) 数据传输方法、装置、计算机可读介质及电子设备
WO2017092311A1 (zh) 视频数据的获取方法、装置及系统
US9813475B1 (en) Delivering a video stream
CN112351303B (zh) 一种网络会议中的视频共享方法、系统和可读存储介质
WO2017161757A1 (zh) 一种流媒体文件分发方法及系统
CN104065914B (zh) 一种无线终端视频会议系统、实现方法和装置
US20200134739A1 (en) Apparatus and method for soliciting dynamic group support for an individual video streaming an event
CN103841468B (zh) 实时流媒体数据传输方法
TWI716221B (zh) 用於網路中頻寬分配之方法及裝置及電腦程式產品
CN111131843A (zh) 一种网络直播系统和方法
CN110401854A (zh) 一种高并发低时延的可靠流媒体分发系统和方法
US20160050244A1 (en) Systems and Methods for Shared Media Streaming
CN107294830A (zh) 一种数据传输方法及系统
US20220070507A1 (en) Method for distributing audio/video stream in audio/video stream distribution system, and dynamic parent node
WO2021110167A1 (zh) 自组网级联方法、音频采集设备、会议系统、存储介质
CN105743788A (zh) 数据包转发方法及装置
EP2890081A2 (en) Aggregated adaptive bit rate streaming
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