CN117221617A - 直播推流系统、方法及计算机存储介质 - Google Patents
直播推流系统、方法及计算机存储介质 Download PDFInfo
- Publication number
- CN117221617A CN117221617A CN202311283251.0A CN202311283251A CN117221617A CN 117221617 A CN117221617 A CN 117221617A CN 202311283251 A CN202311283251 A CN 202311283251A CN 117221617 A CN117221617 A CN 117221617A
- Authority
- CN
- China
- Prior art keywords
- live
- live broadcast
- server
- data
- push
- 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
- 238000000034 method Methods 0.000 title claims abstract description 63
- 230000005540 biological transmission Effects 0.000 claims abstract description 119
- 239000000872 buffer Substances 0.000 claims abstract description 57
- 238000004891 communication Methods 0.000 claims description 49
- 238000001514 detection method Methods 0.000 claims description 13
- 238000012544 monitoring process Methods 0.000 claims description 13
- 238000013507 mapping Methods 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 4
- 238000011084 recovery Methods 0.000 claims description 4
- 230000000694 effects Effects 0.000 abstract description 6
- 230000002159 abnormal effect Effects 0.000 abstract description 5
- 230000003139 buffering effect Effects 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 3
- 238000010276 construction Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Landscapes
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本发明提供一种基于服务器的直播推流系统、方法及计算机存储介质;其中,所述系统包括相互连接的第一服务器和第二服务器,其中,第一服务器内部设有若干个数据传输通道和与各所述数据传输通道对应的第一缓存池;各所述用户端中设有第二缓存池;各所述数据通道与所述第一缓存池和所述第二缓存池一一对应连接,用于将对应直播端所推送的直播数据流,缓存至对应的第一缓存池中;第二服务器连接所述第一服务器和各用户端,用于将第一缓存池中的直播数据流推送至对应的用户端中;本发明避免了直播端传输中断或异常时,直播数据流的丢失,提高了直播体验效果。
Description
技术领域
本发明属于流媒体技术领域,更具体地涉及一种直播推流系统、方法及计算机存储介质。
背景技术
现有的直播过程中,当网络环境不稳定时,容易存在直播网络于短时间内中断或网速异常等情况,则直播端于直播数据流推送时,会发生直播中断或卡顿等情况,导致于中断或网速异常期间内传输的直流数据流丢失,进而导致直播过程的用户体验感大大降低;尽管,现有的的直播过程中会利用缓存技术,将直播数据流存储于服务器端中,但目前通常在服务器端将缓存的数据推送完后,如该直播端的网络尚未恢复,则为了充分利用当前服务器端资源,通常会让当前服务器端连接新的直播端,即接受新的直播推流请求,导致先前发生网络中断或网速异常的直播端仍然会存在数据丢失的风险,或存在数据帧丢失等情况,导致关键信息丢失,进而影响直播效果。
发明内容
鉴于以上现有技术中存在的缺点,本发明的目的在于提供一种直播推流系统、方法及计算机存储介质,用于解决现有音视频直播过程中,于发生直播网络中断或网速异常等情况时,直播端容易存在数据丢失的风险,导致关键信息丢失等问题。
为实现上述目的及其他相关目的,本发明于第一方面提供一种直播推流系统,连接于直播端与用户端之间,所述直播推流系统,包括:第一服务器,其连接直播端,所述第一服务器的内部设有若干个数据传输通道,和与各所述数据传输通道对应的第一缓存池;各直播端中设有第二缓存池;所述第二缓存池用于存储待推送的直播数据流;各所述数据通道与所述第一缓存池、所述第二缓存池一一对应连接,以将对应直播端所推送的直播数据流,缓存至对应的所述第一缓存池中;第二服务器,其连接所述第一服务器和各用户端,用于根据用户端与直播端之间的映射关系,执行第一推送;其中,所述第一推送为将缓存于所述第一缓存池的直播数据流,推送至与对应直播端关联的所述用户端。
于本发明一实施例中,所述第一服务器还包括:通讯检测单元,其连接各所述数据传输通道,用于检测所述数据传输通道与所述直播端之间的通讯状态;所述第一服务器被配置为:于检测到所述直播端发生中断时,维持中断直播端对应的所述数据传输通道,并继续传输所述中断直播端对应第一缓存池中的直播数据流,同时监测所述对应第一缓存池的当前数据量大小,以于所述当前数据量小于第一阈值时,执行第二推送;其中,所述第二推送为将预设的其他数据推送至与所述直播端关联的用户端。
于本发明一实施例中,所述通讯检测单元,还用于检测所述数据传输通道与所述中断直播端之间的通讯状态;第一服务器还被配置为:于检测到通讯恢复时,将所述中断直播端中缓存的直播数据流,继续缓存至该中断直播端对应的第一缓存池中,同时监测所述中断直播端中对应第一缓存池的当前数据量大小,以于该当前数据量大于所述第一阈值时,重新执行所述第一推送。
本发明于第二方面提供一种直播推流方法,基于如上任意所述的直播推流系统,执行直播端与用户端之间的直播推流过程;所述方法包括:所述第一服务器接收各直播端所推送的第二缓存池中的直播数据流,将所述直播数据流缓存至对应的第一缓存池中,以使所述第二服务器根据用户端与直播端之间的映射关系,执行第一推送;其中,所述第一推送为使所述第二服务器将缓存于所述第一缓存池的直播数据流,推送至与对应直播端关联的所述用户端。
于本发明一实施例中,基于如上所述的直播推流系统,执行直播端与用户端之间的直播推流过程;所述方法还包括:于接收所述直播数据流的同时,所述第一服务器检测各所述直播端的通讯状态;于检测到直播端发生中断时,维持所述中断直播端对应的所述数据传输通道,并使所述第二服务器将该中断直播端对应于所述第一缓存池中的直播数据流继续推送至用户端中;以及,所述第一服务器监测对应的所述第一缓存池的当前数据量大小,以于所述当前数据量小于所述第一阈值时,执行第二推送;所述第二推送为使所述第二服务器将其他数据推送至对应的所述用户端中;同时,所述第一服务器检测所述中断直播端的通讯是否恢复,如否,则继续执行以上步骤,如是,利用维持的所述数据传输通道,将所述中断直播端中缓存的直播数据流继续缓存至对应的第一缓存池中;并监测所述中断直播端对应第一缓存池的当前数据量大小,以于该当前数据量大于所述第一阈值时,重新执行所述第一推送。
于本发明一实施例中,对于所述中断直播端,于中断前,所述第一服务器基于第一传输速度,获取该中断直播端的直播数据流;以及于中断恢复后,所述第一服务器基于第二传输速度,获取该中断直播端的直播数据流,直至所述中断直播端对应的所述第二缓存池中的当前数据量小于第二阈值时,所述第一服务器重新基于第一传输速度,获取该中断直播端的直播数据流;其中,所述第二传输速度大于所述第一传输速度。
于本发明一实施例中,所述的直播推流方法,还包括:所述中断直播端于通讯中断期间,检测所述中断直播端的第二缓存池中存储的当前数据量大小是否大于第三阈值,如是,则将所述第二缓存池中缓存的直播数据流以文件缓冲块形式存储于所述中断直播端中,以于通讯中断恢复后,所述直播端将各所述文件缓冲块根据生成的顺序,将所述文件缓冲块中的直播数据流依次推送至所述第一服务器;重复以上过程,直至所述中断直播端的第二缓存池中的当前数据量小于所述第三阈值;其中,所述第三阈值大于或等于所述第二阈值。
于本发明一实施例中,所述的直播推流方法,还包括:于执行直播推流过程中,监测新直播端发送的新推流请求;于监测到所述新推流请求时,获取所述第一服务器于当前的剩余传输速率;比较所述剩余传输速率与所述新直播端对应的传输速率,根据比较结果,确定是否接受该新推流请求。
于本发明一实施例中,所述第一服务器于当前的剩余传输速率的获取方式,包括:获取当前与所述第一服务器连接的各直播端,将各所述直播端对应的传输速率进行累加,以获得当前总传输速率;其中,所述直播端对应的传输速率与直播端的直播请求类型相关联;将所述第一服务器的最大传输速率,与所述当前总传输速率相减,获取所述当前的剩余传输速率。
本发明于第三方面还提供一种计算机存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上任意所述的直播推流方法。
如上所述,本发明提供的所述直播推流系统、方法及计算机存储介质,通过于第一服务器和所述直播端中对应设置第一缓存池和第二缓存池,于直播端发生通讯中断时,则将中断期间的直播数据流缓存于中断直播端中,并于通讯恢复后,将中断直播端中缓存的各直播数据流依次传输至第一服务器端的第一缓存池中;以及基于第二服务器,将所述第一缓存池中的直播数据流传输至用户端,从而避免了直播端传输故障时,直播数据流的丢失,提高了直播数据流的完整性,进而提高了用户的直播体验效果。
附图说明
图1本发明提供的所述基于服务器的直播推流系统于一实施例中的结构示意图;
图2本发明提供的所述基于服务器的直播推流系统于另一实施例中的结构示意图;
图3本发明提供的所述基于服务器的直播推流方法于一实施例中的流程示意图;
图4本发明提供的所述基于服务器的直播推流方法于另一实施例中的流程示意图;
图5本发明提供的所述基于服务器的直播推流方法于又一实施例中的流程示意图。
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
为解决现有技术中存在的技术问题,本发明实施例首先提供一种直播推流系统,适用于服务端,用于连接直播端和用户端,以实现直播端与用户端之间的直播数据流推送。
其中,所述直播端为采集和生成直播数据流的直播设备,包括但不限于手机、PC、平板、或其他现有的通讯设备;
所述用户端为观看直播数据流的用户设备,包括但不限于手机、PC、平板、可穿戴设备或其他现有的通讯设备。
所述服务端包括服务器平台。
请参阅图1,示出为本申请实施例中所述的直播推流系统于一实施例中的结构示意图。如图1所示,所述直播推流系统包括:第一服务器和第二服务器。
所述第一服务器连接各所述直播端和第二服务器,用于接收直播端传输的直播数据流,并将所述直播数据流传输至所述第二服务器;
所述第二服务器连接各所述用户端,用于根据用户端与直播端之间的映射关系,将接收到的直播数据流,传输至对应的各所述用户端中。
其中,所述用户端与直播端之间的映射关系为直播链路构建时,存储于所述直播推流系统中的链路匹配信息。
具体而言,所述第一服务器如图1所示,包括若干个数据传输通道,与各所述数据传输通道对应的第一缓存池;以及,各所述用户端中设有第二缓存池;所述第二缓存池用于存储待推送的直播数据流;所述数据通道与所述第一缓存池一一对应连接,且所述数据通道与所述第二缓存池一一对应连接。
于具体执行时,所述直播端将待推送的直播数据流,根据数据生成的先后顺序依次存储至所述第二缓存池中;以及,所述直播端将所述第二缓存池中已存储的直播数据流,发送至所述第一服务器中;
所述第一服务器基于所述数据传输通道与所述第二缓存池和所述第一缓存池之间的对应关系,将接收所述第二缓存池发送的直播数据流,缓存于所述第一缓存池中;以及,所述第一服务器将各所述第一缓存池中存储的直播数据流传输至所述第二服务器中;
所述第二服务器于接收到第一缓存池中的直播数据流后,根据所述用户端与直播端之间的映射关系,将所述直播端缓存于第一缓存池的直播数据流,推送至与该直播端关联的所述用户端中,以实现第一推流过程。
请参阅图2,示出为本申请实施例中所述的直播推流系统于另一实施例中的结构示意图。如图2所示,所述直播推流系统于图1示出系统的基础上,所述第一服务器中还包括:通讯检测单元。
所述通讯检测单元连接各所述数据传输通道,用于检测各所述数据传输通道与直播端之间的通讯状态;即检测各所述数据传输通道与直播端之间是否发生通讯中断。
于本实施例中,所述第一服务器获取所述通讯检测单元发送的各第一检测结果;所述第一检测结果包括各所述数据传输通道与直播端之间是否通讯中断;于检测到所述数据传输通道与直播端之间发生通讯中断时,则将该直播端设为中断直播端;所述第一服务器中继续维持所述中断直播端与对应数据传输通道,即继续保留该数据传输通道所配置的第一服务器资源,包括链路信息、传输速度等;并将所述第一服务器中与该中断直播端对应的第一缓存池中的直播数据流继续传输至所述第二服务器中,以使所述第二服务器继续传输直播数据流至各所述用户端。
于执行上述过程的同时,所述第一服务器还监测与所述中断直播端对应的第一缓存池的当前数据量大小;于监测到所述当前数据量小于第一阈值时,将预设存储的其他数据推送至与所述中断直播端关联的用户端中,即执行第二推送;其中,所述其他数据为预先存储的数据/数据流。
需要说明的是,所述其他数据为预先存储于所述第一服务器或第二服务器中的数据/数据流,在此不做具体限定。
于一些可选的实施例中,所述第一服务器中的通讯检测单元,还可用于检测所述数据传输通道与所述中断直播端之间的通讯状态;即检测所述数据传输通道与所述中断直播端之间是否恢复通讯。
具体的,所述第一服务器获取所述通讯检测单元发送的各第二检测结果,所述第二检测结果中包括各所述数据传输通道与所述中断直播端之间是否存在通讯恢复;于检测到所述数据传输通道与直播端之间通讯恢复时,所述第一服务器根据所述中断直播端与对应数据传输通道之间的映射关系,确定与所述中断直播端对应的数据传输通道,作为维持的数据传输通道;
所述中断直播端,利用所述维持的数据传输通道,发送所述中断直播端中缓存的直播数据流;所述第一服务器于接收到所述直播数据流后,将该直播数据流继续缓存至与该中断直播端对应的第一缓存池中;
同时,所述第一服务器于存储直播数据流时,监测对应第一缓存池的当前数据量大小是否大于所述第一阈值;当监测到所述当前数据量大于所述第一阈值,且所述第一服务器于当前所执行的为所述第二推送时,则所述第一服务器重新执行所述第一推送,即将所述第二推送切换为所述第一推送。
其中,所述第一阈值为所述第一服务器使能所述第二服务器启动所述第一推送的数据量阈值,为预先设定的数值大小;当所述第一缓存池中的当前数据量大于所述第一阈值时,则使所述第二服务器执行所述第一推送,而当所述第一缓存池中的当前数据量小于或等于所述第一阈值时,则使所述第二服务器执行所述第二推送。
于一具体实施方式中,所述第一阈值为100M。
为解决现有技术中存在的技术问题,本发明实施例还提供一种直播推流方法,适用于服务器端,所述服务器被配置为推送直播端的直播数据流至用户端;于本实施例中,所述服务器端包括如上任意所述的直播推流系统。
请参阅图3,示出为本申请实施例提供的所述直播推流方法的流程示意图。如图3所示,该方法包括;
S100,所述第一服务器接收各直播端所推送的第二缓存池中的直播数据流,将所述直播数据流缓存至对应的第一缓存池中;以及,所述第二服务器根据用户端与直播端之间的映射关系,执行第一推送;
具体的,所述直播端发送数据传输指令至所述第一服务器中;所述第一服务器于接收到该数据传输指令后,利用所述数据传输通道接收所述直播端传输的直播数据流,并将所述直播端传输的直播数据流依次存储至与该直播端对应的第一缓存池中;同时,所述第二服务器获取该直播端对应于第一缓存池中的直播数据流,并根据用户端与直播端之间的映射关系,将所述第一缓存池中的直播数据流,推送至与所述直播端对应的用户端中,即实现第一推流过程。
其中,所述数据通道与所述第一缓存池一一对应连接,且所述数据通道与所述第二缓存池一一对应连接,即所述第一缓存池与所述第二缓存池之间为一一对应关系;所述用户端与直播端之间的映射关系为直播链路构建时,存储于所述直播推流系统中的链路匹配信息。
需要说明的是,于第一次执行所述第一推送时,步骤S100还包括:所述第一服务器检测所述第一缓存池中已存储数据的数据量大小,是否大于预设的第一阈值,如是,则启动所述第一推送,如否,则不执行所述第一推送,即当所述第一缓存池中存储数据的数据量大小尚未达到所述第一阈值时,则所述服务器端不执行与该直播端相关的推流过程。
S200,于执行所述第一推送中,所述第一服务器检测各所述直播端的通讯状态,于检测到所述直播端发生通讯中断时,则维持所述中断直播端对应的所述数据传输通道,并使所述第二服务器继续执行所述第一推送;同时,所述第一服务器监测对应第一缓存池的当前数据量大小,以于监测到所述当前数据量小于第一阈值时,执行第二推送;
具体的,在执行所述第一推送的同时,所述第一服务器实时检测各所述直播端的通讯传输状态,当所述直播端发生断流或当直播端的数据流传输速度小于所述服务器端的推流速度时,即对于所述第一缓存池,所述数据流的输入速度小于数据流的输出速度时,所述第一服务器继续维持所述中断直播端对应的所述数据传输通道,且继续执行所述第一推送,即,使所述第二服务器将该中断直播端对应于第一缓存池中的直播数据流继续推送至用户端中。
同时,所述第一服务器开始检测所述第一缓存池于当前的数据量大小是否大于所述第一阈值,如是,则继续执行所述第一推送,当所述当前数据量小于所述第一阈值时,则暂停所述第一推送,并切换至第二推送,即将预设存储的数据/数据流推送至所述用户端。
S300,所述第一服务器检测所述中断直播端的通讯是否恢复,如否,则继续执行步骤S200;如是,利用所述维持的数据传输通道,将中断直播端中缓存的直播数据流,继续缓存至对应的第一缓存池中;同时监测对应第一缓存池的当前数据量大小,以于所述当前数据量大于所述第一阈值时,重新执行所述中断直播端的第一推送。
具体的,于执行所述第二推送的同时,实时检测所述直播端的通讯传输状态,当所述直播端已恢复传输,且数据传输速度大于所述服务器端的推流速度时,即对于所述第一缓存池,所述数据流的输入速度大于数据流的输出速度时,则所述第一服务器利用所述中断直播端对应的数据传输通道,将中断直播端中存储的直播数据流,继续缓存至对应的第一缓存池中;同时,所述第一服务器监测对应的所述第一缓存池的当前数据量大小;当检测到所述当前数据量大于所述第一阈值时,返回执行步骤S100,并重新执行以上步骤S100至S300;如否,则不执行所述第一推送。
为解决现有技术中存在的技术问题,本申请实施例还提供另一种直播推流方法;请参阅图4,示出为本申请所述的直播推流方法于另一实施例中的流程示意图;
如图4所示,所述直播推流方法与图3示出的方法基本相同,不同之处在于:所述方法于执行步骤S100时,为:
S100’,所述第一服务器基于第一传输速度,接收各直播端所推送的第二缓存池中的直播数据流,将所述直播数据流缓存至对应的第一缓存池中;以及,所述第二服务器根据用户端与直播端之间的映射关系,执行第一推送;
具体的,对于各时刻的直播数据流,所述直播端于生成该直播数据流后,将其缓存于所述第二缓存池中,并将存储于所述第二缓存池的各所述直播数据流基于所述第一传输速度,依次传输至所述第一服务器中。
以及,于本实施例中,所述直播推流方法于执行步骤S300时,为
S300’,所述第一服务器检测所述中断直播端的通讯是否恢复,如否,则继续执行步骤S200;如是,利用所述维持的数据传输通道,基于第二传输速度接收所述中断直播端的直播数据流,直至所述中断直播端对应的第二缓存池中的当前数据量小于第二阈值时,所述第一服务器重新基于所述第一传输速度接收该中断直播端的直播数据流;同时监测对应的所述第一缓存池的当前数据量大小,于所述当前数据量大于所述第一阈值时,重新执行所述中断直播端的第一推送。
其中,所述第二传输速度大于所述第一传输速度,以实现所述中断直播端于通讯恢复后,其缓存的直播数据流的快速推送。
所述第二阈值为所述中断直播端中,预先设置的所述第二缓存池的一存储数据量大小。
具体的,对于所述中断直播端,所述第一服务器实时检测所述中断直播端的通讯传输是否恢复,如否,则继续监测,如是,则使所述中断直播端基于第二传输速度,将缓存的直播数据流推送至所述第一服务器中,并于推送后删除所述中断直播端中已推送的直播数据流;对应的,所述第一服务器中利用数据传输通道,且基于第二传输速度,持续执行所述直播数据流的接收过程,并将接收到所述直播数据流缓存于所述第一缓存池中;其中,所述数据传输通道为所述中断直播端于中断前对应的数据传输通道;
以及,于所述第一服务器以所于持续执行该接收过程的同时,所述第一服务器监测所述中断直播端中第二缓存池中的当前数据量大小;于监测到当前数据量大于或等于所述第二阈值时,则继续基于所述第二传输速度获取该中断直播端的直播数据流;于监测到当前数据量小于所述第二阈值时,则所述第一服务器恢复至所述第一传输速度,接收所述中断直播端推送的直播数据流。
需要说明的是,为确保服务器端对各直播端的服务性能的均衡性,所述第二传输速度不大于单通道的最大传输速度;其中,所述单通道的最大传输速度为所述第一服务器对于单个直播端预先设置的传输速度的最大值。
于一可选的实施例中所述中断直播端于通讯中断期间,检测所述中断直播端的第二缓存池中存储的当前数据量大小是否大于第三阈值,如是,则将所述第二缓存池中缓存的直播数据流以文件缓冲块形式存储于所述中断直播端中。
其中,所述第三阈值为所述中断直播端中,预先设置的所述第二缓存池的另一存储数据量大小,且所述第三阈值大于或等于所述第二阈值。
具体的,于通讯中断期间,所述中断直播端将生成的直播数据流,先缓存所述第二缓存池中,并检测所述第二缓存池当前已存储的直播数据量,是否达到所述第三阈值;当所述第二缓存池中存储的数据达到所述第三阈值后,则所述中断直播端将采集到的直播数据流生成各文件缓冲块,将各所述文件缓冲块放入文件缓冲队列中,重复执行该过程。
于通讯恢复后,则所述中断直播端先从文件缓冲队列中,按其存放顺序取出各所述文件缓冲块,并将各所属缓冲块中的数据依次推送到第一服务器中,直到推送完所述文件缓冲队列中的所有文件缓冲块,然后再按照数据生成的先后顺序依次推送第二缓存池中的数据。
为解决现有技术中存在的技术问题,本申请实施例还提供又一种基于服务器的直播推流方法,适用于服务器端。
于本实施例中,如图5所示,所述基于服务器的直播推流方法于图3示出方法的基础上,还包括:
S400,于执行直播推流过程中,监测新直播端发送的新推流请求;于监测到所述新推流请求时,获取所述第一服务器于当前的剩余传输速率;比较所述剩余传输速率与所述新直播端对应的传输速率,根据比较结果,确定是否接受该新推流请求。
其中,所述新直播端为尚未与用户端构建直播链路的直播端。
具体的,所述第一服务器于执行步骤S100至S300的过程中,检测是否存在新的直播端所发送的新推流请求;其中,所述新推流请求中包含所述新直播端对应直播数据流的传输速度。
于接收到所述新推流请求后,所述第一服务器确定当前与所述第一服务器连接的各直播端,将处于连接状态中的各所述直播端对应的传输速率进行累加,以获得当前的总传输速率;
其中,所述直播端对应的传输速率与直播端的直播请求类型相关联。
将所述第一服务器的最大传输速率,与当前的总传输速率相减,获取所述服务器端于当前的剩余传输速率;
比较所述剩余传输速率与所述新直播端对应的传输速率;当检测到所述剩余传输速率大于所述新直播端对应的传输速度时,则接受该新推流请求,即将所述新直播端与第一服务器连接,以基于所述第一服务器和所述第二服务器,实现该新直播端的直播推流过程,如否,则拒绝该新推流请求或将该新推流请求推送至其他所述直播推流系统。
本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器调用时实现如上所述基于服务器的直播推流方法。
其中,计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是(但不限于)电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备。
这里所描述的计算机可读程序可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
综上所述,本发明提供的所述直播推流系统、方法及计算机存储介质,通过在服务器端和所述直播端中对应设置第一缓存池和第二缓存池,于直播端发生通讯中断时,则将于中断期间采集到的直播数据流缓存于直播端中,并于通讯恢复后,将直播端中缓存的各直播数据流依次传输至第一服务器的第一缓存池中;以及基于第二服务器,将所述第一缓存池中的直播数据流传输至用户端,从而避免了直播端通讯中断时,直播数据流的丢失,提高了直播体验效果;此外,通过获取服务器端于当前的剩余传输速率,和通过比较所述剩余传输速率与新直播端对应的传输速度,根据比较结果来确定是否接受该新推流请求,从而可以确保服务器端对于各直播端的数据传输性能,进一步提高了直播数据流的传输性能和推流效果。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。
Claims (10)
1.一种直播推流系统,其特征在于,连接于直播端与用户端之间,所述直播推流系统,包括:
第一服务器,其连接直播端,所述第一服务器的内部设有若干个数据传输通道,和与各所述数据传输通道对应的第一缓存池;各直播端中设有第二缓存池;所述第二缓存池用于存储待推送的直播数据流;各所述数据通道与所述第一缓存池、所述第二缓存池一一对应连接,以将对应直播端所推送的直播数据流,缓存至对应的所述第一缓存池中;
第二服务器,其连接所述第一服务器和各用户端,用于根据用户端与直播端之间的映射关系,执行第一推送;
其中,所述第一推送为将缓存于所述第一缓存池的直播数据流,推送至与对应直播端关联的所述用户端。
2.根据权利要求1所述的直播推流系统,其特征在于,所述第一服务器还包括:
通讯检测单元,其连接各所述数据传输通道,用于检测所述数据传输通道与所述直播端之间的通讯状态;
所述第一服务器被配置为:于检测到所述直播端发生中断时,维持中断直播端对应的所述数据传输通道,并继续传输所述中断直播端对应第一缓存池中的直播数据流,同时监测所述对应第一缓存池的当前数据量大小,以于所述当前数据量小于第一阈值时,执行第二推送;
其中,所述第二推送为将预设的其他数据推送至与所述直播端关联的用户端。
3.根据权利要求2所述的直播推流系统,其特征在于,所述通讯检测单元,还用于检测所述数据传输通道与所述中断直播端之间的通讯状态;
第一服务器还被配置为:于检测到通讯恢复时,将所述中断直播端中缓存的直播数据流,继续缓存至该中断直播端对应的第一缓存池中,同时监测所述中断直播端中对应第一缓存池的当前数据量大小,以于该当前数据量大于所述第一阈值时,重新执行所述第一推送。
4.一种直播推流方法,其特征在于,基于权利要求1至3中任一项所述的直播推流系统,执行直播端与用户端之间的直播推流过程;所述方法包括:
所述第一服务器接收各直播端所推送的第二缓存池中的直播数据流,将所述直播数据流缓存至对应的第一缓存池中,以使所述第二服务器根据用户端与直播端之间的映射关系,执行第一推送;
其中,所述第一推送为使所述第二服务器将缓存于所述第一缓存池的直播数据流,推送至与对应直播端关联的所述用户端。
5.根据权利要求4所述的直播推流方法,其特征在于,基于权利要求3所述的直播推流系统,执行直播端与用户端之间的直播推流过程;所述方法还包括:
于接收所述直播数据流的同时,所述第一服务器检测各所述直播端的通讯状态;
于检测到直播端发生中断时,维持所述中断直播端对应的所述数据传输通道,并使所述第二服务器将该中断直播端对应于所述第一缓存池中的直播数据流继续推送至用户端中;以及,所述第一服务器监测对应的所述第一缓存池的当前数据量大小,以于所述当前数据量小于所述第一阈值时,执行第二推送;所述第二推送为使所述第二服务器将其他数据推送至对应的所述用户端中;
同时,所述第一服务器检测所述中断直播端的通讯是否恢复,如否,则继续执行以上步骤,如是,利用维持的所述数据传输通道,将所述中断直播端中缓存的直播数据流继续缓存至对应的第一缓存池中;并监测所述中断直播端对应第一缓存池的当前数据量大小,以于该当前数据量大于所述第一阈值时,重新执行所述第一推送。
6.根据权利要求5所述的直播推流方法,其特征在于,对于所述中断直播端,于中断前,所述第一服务器基于第一传输速度,获取该中断直播端的直播数据流;以及于中断恢复后,所述第一服务器基于第二传输速度,获取该中断直播端的直播数据流,直至所述中断直播端对应的所述第二缓存池中的当前数据量小于第二阈值时,所述第一服务器重新基于第一传输速度,获取该中断直播端的直播数据流;
其中,所述第二传输速度大于所述第一传输速度。
7.根据权利要求6所述的直播推流方法,其特征在于,还包括:
所述中断直播端于通讯中断期间,检测所述中断直播端的第二缓存池中存储的当前数据量大小是否大于第三阈值,如是,则将所述第二缓存池中缓存的直播数据流以文件缓冲块形式存储于所述中断直播端中,以于通讯中断恢复后,所述直播端将各所述文件缓冲块根据生成的顺序,将所述文件缓冲块中的直播数据流依次推送至所述第一服务器;
重复以上过程,直至所述中断直播端的第二缓存池中的当前数据量小于所述第三阈值;
其中,所述第三阈值大于或等于所述第二阈值。
8.根据权利要求4所述的直播推流方法,其特征在于,还包括:
于执行直播推流过程中,监测新直播端发送的新推流请求;
于监测到所述新推流请求时,获取所述第一服务器于当前的剩余传输速率;
比较所述剩余传输速率与所述新直播端对应的传输速率,根据比较结果,确定是否接受该新推流请求。
9.根据权利要求8所述的直播推流方法,其特征在于,所述第一服务器于当前的剩余传输速率的获取方式,包括:
获取当前与所述第一服务器连接的各直播端,将各所述直播端对应的传输速率进行累加,以获得当前总传输速率;其中,所述直播端对应的传输速率与直播端的直播请求类型相关联;
将所述第一服务器的最大传输速率,与所述当前总传输速率相减,获取所述当前的剩余传输速率。
10.一种计算机存储介质,所述计算机存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求4至8中任一项所述的直播推流方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311283251.0A CN117221617A (zh) | 2023-09-28 | 2023-09-28 | 直播推流系统、方法及计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311283251.0A CN117221617A (zh) | 2023-09-28 | 2023-09-28 | 直播推流系统、方法及计算机存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117221617A true CN117221617A (zh) | 2023-12-12 |
Family
ID=89037004
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311283251.0A Pending CN117221617A (zh) | 2023-09-28 | 2023-09-28 | 直播推流系统、方法及计算机存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117221617A (zh) |
Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104935958A (zh) * | 2015-06-24 | 2015-09-23 | 青岛科技大学 | 一种实时视频传输装置及方法 |
CN104935948A (zh) * | 2015-05-13 | 2015-09-23 | 深圳市中幼国际教育科技有限公司 | 视频直播图像处理方法及系统 |
CN106791899A (zh) * | 2016-12-13 | 2017-05-31 | 飞狐信息技术(天津)有限公司 | 直播中减少观众端画面卡顿的方法及装置以及客户端 |
CN108174242A (zh) * | 2018-01-09 | 2018-06-15 | 武汉斗鱼网络科技有限公司 | 直播数据复用方法、装置、存储介质及设备 |
CN109089131A (zh) * | 2018-09-21 | 2018-12-25 | 广州虎牙信息科技有限公司 | 一种基于ios系统的录屏直播方法、装置、设备及存储介质 |
CN109348279A (zh) * | 2018-09-26 | 2019-02-15 | 广州虎牙信息科技有限公司 | 一种推流方法、装置、设备及存储介质 |
CN111918093A (zh) * | 2020-08-13 | 2020-11-10 | 腾讯科技(深圳)有限公司 | 直播数据处理方法、装置、计算机设备和存储介质 |
CN112752109A (zh) * | 2019-10-30 | 2021-05-04 | 上海哔哩哔哩科技有限公司 | 视频播放控制方法和系统 |
CN112969075A (zh) * | 2021-01-29 | 2021-06-15 | 北京字节跳动网络技术有限公司 | 直播过程中的补帧方法、装置及计算设备 |
CN113986611A (zh) * | 2021-09-29 | 2022-01-28 | 浙江大华技术股份有限公司 | 录像数据的存储方法、装置、系统、电子装置和存储介质 |
CN114025184A (zh) * | 2021-10-27 | 2022-02-08 | 深圳市富途网络科技有限公司 | 一种视频直播方法及电子设备 |
CN114501052A (zh) * | 2022-01-26 | 2022-05-13 | 腾讯科技(深圳)有限公司 | 直播数据处理方法、云平台、计算机设备和存储介质 |
CN114697695A (zh) * | 2022-03-28 | 2022-07-01 | 阿里巴巴(中国)有限公司 | 直播数据推送方法、装置、设备及存储介质 |
CN114885209A (zh) * | 2022-04-08 | 2022-08-09 | 车智互联(北京)科技有限公司 | 一种直播数据处理方法、计算设备及可读存储介质 |
CN115834918A (zh) * | 2022-11-17 | 2023-03-21 | 深圳创维-Rgb电子有限公司 | 视频直播方法、装置、电子设备及可读存储介质 |
-
2023
- 2023-09-28 CN CN202311283251.0A patent/CN117221617A/zh active Pending
Patent Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104935948A (zh) * | 2015-05-13 | 2015-09-23 | 深圳市中幼国际教育科技有限公司 | 视频直播图像处理方法及系统 |
CN104935958A (zh) * | 2015-06-24 | 2015-09-23 | 青岛科技大学 | 一种实时视频传输装置及方法 |
CN106791899A (zh) * | 2016-12-13 | 2017-05-31 | 飞狐信息技术(天津)有限公司 | 直播中减少观众端画面卡顿的方法及装置以及客户端 |
CN108174242A (zh) * | 2018-01-09 | 2018-06-15 | 武汉斗鱼网络科技有限公司 | 直播数据复用方法、装置、存储介质及设备 |
CN109089131A (zh) * | 2018-09-21 | 2018-12-25 | 广州虎牙信息科技有限公司 | 一种基于ios系统的录屏直播方法、装置、设备及存储介质 |
CN109348279A (zh) * | 2018-09-26 | 2019-02-15 | 广州虎牙信息科技有限公司 | 一种推流方法、装置、设备及存储介质 |
CN112752109A (zh) * | 2019-10-30 | 2021-05-04 | 上海哔哩哔哩科技有限公司 | 视频播放控制方法和系统 |
CN111918093A (zh) * | 2020-08-13 | 2020-11-10 | 腾讯科技(深圳)有限公司 | 直播数据处理方法、装置、计算机设备和存储介质 |
CN112969075A (zh) * | 2021-01-29 | 2021-06-15 | 北京字节跳动网络技术有限公司 | 直播过程中的补帧方法、装置及计算设备 |
CN113986611A (zh) * | 2021-09-29 | 2022-01-28 | 浙江大华技术股份有限公司 | 录像数据的存储方法、装置、系统、电子装置和存储介质 |
CN114025184A (zh) * | 2021-10-27 | 2022-02-08 | 深圳市富途网络科技有限公司 | 一种视频直播方法及电子设备 |
CN114501052A (zh) * | 2022-01-26 | 2022-05-13 | 腾讯科技(深圳)有限公司 | 直播数据处理方法、云平台、计算机设备和存储介质 |
CN114697695A (zh) * | 2022-03-28 | 2022-07-01 | 阿里巴巴(中国)有限公司 | 直播数据推送方法、装置、设备及存储介质 |
CN114885209A (zh) * | 2022-04-08 | 2022-08-09 | 车智互联(北京)科技有限公司 | 一种直播数据处理方法、计算设备及可读存储介质 |
CN115834918A (zh) * | 2022-11-17 | 2023-03-21 | 深圳创维-Rgb电子有限公司 | 视频直播方法、装置、电子设备及可读存储介质 |
Non-Patent Citations (4)
Title |
---|
IIRONMAN: "直播知识点", pages 2, Retrieved from the Internet <URL:https://www.jianshu.com/p/69f6ffe72319> * |
XIEJIASHU: "EasyPusher直播推送中用到的缓冲区设计和丢帧原理", Retrieved from the Internet <URL:https://blog.csdn.net/xiejiashu/article/details/52385941> * |
不鸡娃的菜鸡: "RTMP/RTSP推流延迟大的问题分析", Retrieved from the Internet <URL:https://zhuanlan.zhihu.com/p/340593585> * |
零声GITHUB分享官: "2022直播技术汇总及低延时直播的方案汇总", Retrieved from the Internet <URL:https://zhuanlan.zhihu.com/p/502475749> * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2022552986A (ja) | 情報送信方法、装置、読み取り可能な記憶媒体及び電子装置 | |
CN111628847A (zh) | 数据传输方法及装置 | |
CN106998485B (zh) | 视频直播方法及装置 | |
CN107623643B (zh) | 一种数据包转发方法及装置 | |
CN111277848B (zh) | 直播间互动消息的处理方法、装置、电子设备及存储介质 | |
RU2545999C2 (ru) | Способ, устройство и система для передачи информации в виде данных | |
WO2021237433A1 (zh) | 消息推送方法、装置、电子设备及计算机可读介质 | |
CN107483401B (zh) | 一种多媒体数据传输方法及其设备、存储介质、服务器 | |
CN112256733A (zh) | 数据缓存方法、装置、电子设备及计算机可读存储介质 | |
CN105893429A (zh) | 用于优化web缓存的方法及系统 | |
CN113794942B (zh) | 自由视角视频的视角切换方法、装置、系统、设备和介质 | |
CN111447253B (zh) | 缓冲区管理方法、系统、设备及存储介质 | |
CN110248211B (zh) | 直播间消息限流方法、装置、电子设备及存储介质 | |
CN117221617A (zh) | 直播推流系统、方法及计算机存储介质 | |
CN112672227B (zh) | 基于边缘节点的业务处理方法、装置、节点以及存储介质 | |
US9437205B2 (en) | Method, application, and device for audio signal transmission | |
CN109831467B (zh) | 数据传输方法、设备及系统 | |
CN113630442B (zh) | 数据传输方法、装置及系统 | |
CN110740138A (zh) | 数据传输方法和装置 | |
US10250515B2 (en) | Method and device for forwarding data messages | |
KR102235622B1 (ko) | IoT 환경에서의 협력 에지 캐싱 방법 및 그를 위한 장치 | |
CN111755008B (zh) | 信息处理方法、装置、电子设备及介质 | |
JP6093317B2 (ja) | ノンフリーズ型映像配信ネットワークシステム | |
CN105791223B (zh) | 一种媒体流数据的处理方法及系统、电子设备 | |
EP3886451A1 (en) | Method for playing on a player of a client device a content streamed in a network |
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 |