CN110213206A - 流数据处理方法、服务器及计算机可读存储介质 - Google Patents
流数据处理方法、服务器及计算机可读存储介质 Download PDFInfo
- Publication number
- CN110213206A CN110213206A CN201810384362.3A CN201810384362A CN110213206A CN 110213206 A CN110213206 A CN 110213206A CN 201810384362 A CN201810384362 A CN 201810384362A CN 110213206 A CN110213206 A CN 110213206A
- Authority
- CN
- China
- Prior art keywords
- flow data
- client
- water level
- level value
- 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.)
- Granted
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 34
- 238000003860 storage Methods 0.000 title claims abstract description 17
- 230000004044 response Effects 0.000 claims abstract description 147
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 claims abstract description 100
- 238000000034 method Methods 0.000 claims abstract description 33
- 230000005540 biological transmission Effects 0.000 claims description 34
- 238000012545 processing Methods 0.000 claims description 27
- 230000006835 compression Effects 0.000 claims description 14
- 238000007906 compression Methods 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 12
- 238000004458 analytical method Methods 0.000 claims description 8
- 230000001934 delay Effects 0.000 claims 1
- 238000012795 verification Methods 0.000 claims 1
- 238000005516 engineering process Methods 0.000 abstract description 4
- 238000004891 communication Methods 0.000 abstract description 2
- 230000008569 process Effects 0.000 description 15
- 238000010586 diagram Methods 0.000 description 14
- 230000002159 abnormal effect Effects 0.000 description 4
- 238000012790 confirmation Methods 0.000 description 4
- 230000003111 delayed effect Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000003993 interaction Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 101000804902 Drosophila melanogaster Xaa-Pro aminopeptidase ApepP Proteins 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000002045 lasting effect Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- VIKNJXKGJWUCNN-XGXHKTLJSA-N norethisterone Chemical compound O=C1CC[C@@H]2[C@H]3CC[C@](C)([C@](CC4)(O)C#C)[C@@H]4[C@@H]3CCC2=C1 VIKNJXKGJWUCNN-XGXHKTLJSA-N 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 235000015096 spirit Nutrition 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/75—Media network packet handling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/04—Protocols for data compression, e.g. ROHC
-
- 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/231—Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
- H04N21/23106—Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion involving caching operations
-
- 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/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/23418—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving operations for analysing video streams, e.g. detecting features or characteristics
-
- 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/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
- H04N21/234381—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by altering the temporal resolution, e.g. decreasing the frame rate by frame skipping
-
- 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/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/433—Content storage operation, e.g. storage operation in response to a pause request, caching operations
- H04N21/4331—Caching operations, e.g. of an advertisement for later insertion during playback
-
- 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/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
- H04N21/4402—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
- H04N21/440281—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display by altering the temporal resolution, e.g. by frame skipping
-
- 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/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/442—Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Security & Cryptography (AREA)
- Databases & Information Systems (AREA)
- Information Transfer Between Computers (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本申请公开了一种流数据处理方法、服务器及计算机可读存储介质,涉及通信技术领域。其中,流数据处理方法包括:向客户端发送流数据;接收客户端返回的应答包;根据应答包获取客户端的水位值,水位值为客户端中缓存的流数据的大小。上述方法、服务器及计算机可读存储介质可用于获取客户端的水位值,从而有助于提高流数据分发的合理性。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种流数据处理方法、服务器及计算机可读存储介质。
背景技术
随着智能终端的普及和移动网络带宽成本的大幅降低,直播的应用范围和普及度越来越广。直播系统的整个流程包括录制、编码、网络传输、解码、播放。直播服务器和用户侧手机APP(Application,应用程序)之间,走的是标准的TCP(Transmission ControlProtocol传输控制协议)协议,中间链路存在各种缓存,比如直播服务器中缓存的直播数据,中间路由器设备缓存的直播数据以及客户端APP缓存的直播数据等等。这些缓存的直播数据的存在,会增加设备对异常的响应延时。
发明内容
有鉴于此,本申请实施例提供一种流数据处理方法、服务器及计算机可读存储介质,可用于获取客户端的水位值,从而有助于提高流数据分发的合理性。
本申请实施例提供了一种流数据处理方法,应用于服务器,所述方法包括:向客户端发送流数据;接收所述客户端返回的应答包;根据所述应答包获取所述客户端的水位值,所述水位值为所述客户端中缓存的流数据的大小。
本申请实施例还提供了一种服务器,包括:发送模块,用于向客户端发送流数据;接收模块,用于接收所述客户端返回的应答包;获取模块,用于根据所述应答包获取所述客户端的水位值,所述水位值为所述客户端中缓存的流数据的大小。
本申请实施例还提供了一种服务器,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现上述流数据处理方法。
本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现上述流数据处理方法。
本申请各实施例,在每一次接收到客户端返回的应答包时,根据该应答包获取客户端的水位值,由此实现了非基于客户端上报的客户端水位值的获取,从而有助于提高流数据分发的合理性。
附图说明
图1为本申请实施例提供的流数据处理方法的一应用环境图;
图2为本申请实施例提供的流数据处理方法的另一应用环境图;
图3为本申请实施例提供的流数据处理方法的另一应用环境图中客户端B和CDN分发服务器的交互流程示意图;
图4为本申请一实施例提供的流数据处理方法的实现流程示意图;
图5为本申请另一实施例提供的流数据处理方法的实现流程示意图;
图6为本申请实施例提供的流数据处理方法中流数据发送与应答的示意图;
图7为本申请另一实施例提供的流数据处理方法的实现流程示意图;
图8为本申请一实施例提供的服务器的结构示意图;
图9为本申请另一实施例提供的服务器的结构示意图;
图10为本申请一实施例提供的服务器的硬件结构示意图。
具体实施方式
为更进一步阐述本申请为实现预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本申请的具体实施方式、结构、特征及其功效,详细说明如后。
请参阅图1,为本申请实施例提供的流数据处理方法的应用环境图。如图1所示,第一客户端100、回源端200、服务器300以及多个第二客户端400通过有线或无线网络进行数据交互。
第一客户端100和第二客户端400支持流数据传输。流数据是一组顺序、大量、快速、连续到达的数据序列,一般应用于持续生成动态新数据的大多数场景,例如:直播、网络监控、传感器网络、气象测控等等。典型的,以流数据为直播数据为例,第一客户端100为支持多媒体直播数据录制及上传的智能手机、平板电脑、手提电脑等智能移动终端以及其他非可在移动中进行数据处理的计算机终端。第二客户端400为支持多媒体直播数据拉取及播放的智能手机、平板电脑、手提电脑等智能移动终端以及其他非可在移动中进行数据处理的计算机终端。
第一客户端100和第二客户端400中安装有用于直播的APP。第一客户端100通过直播APP录制原始音、视频直播数据,并将录制的原始数据经编码、压缩、封装处理后,通过流上传到回源端200存储。第二客户端400通过直播APP向服务器300发送直播请求。
服务器300,用于获取第一客户端100上传的流数据并进行处理,然后将处理后的流数据分发给相关的第二客户端400。典型的,以流数据为直播数据为例,服务器300接收到第二客户端400的直播请求,如果该直播请求请求的直播数据已经有其他用户访问,则会将当前系统中缓存的直播数据发送给第二客户端400。然后当接收到新的直播数据时,再将新接收的直播数据发送给第二客户端400。如果第二客户端400是第一个访问者,则服务器300会从回源端300拉取直播数据,并发送给第二客户端400,同时将拉取的直播数据缓存下来。服务器300可以是CDN(内容分发网络)服务器,其中预置有后台服务模块(NWS),用于实现直播数据的获取以及将获取的直播数据分发给各个最终的第二客户端。第二客户端400接收服务器发送的直播数据后,将接收的直播数据经过解压、解码、音视频同步等处理后进行播放。
为进一步说明本申请实施例提供的流数据处理方法,结合图2和图3,以直播场景为例,首先,主播通过客户端A实时录制直播数据,并通过推流的方式将实时录制的直播数据上传给转码端。然后,转码端将客户端A上传的直播数据经编码、压缩、封装等处理之后,上传到回源端进行存储。之后,回源端根据CDN分发服务器的拉流请求,将直播数据发送给CDN分发服务器,以便CDN分发服务器根据客户端B发送的直播请求,将直播数据分发给客户端B。其中,转码端和回源端可以是由多个分布式服务器构成的服务器集群。
本申请的改进点在于,在CDN分发服务器的内核中配置水位值获取模块和处理模块。当内核中的接收模块接收到客户端B发送的直播请求时,触发处理模块调用网络设备驱动、网络协议栈等,对接收的直播请求进行预处理。处理模块通过预处理,将该直播请求处理为应用层的NWS可处理的数据后发送给NWS。NWS根据该直播请求,指示内核中的发送模块,将对应的直播数据逐帧地发送给客户端B。可以理解的,直播数据的产生是一个持续的过程,为了便于传输,直播数据在传输前会被切分为多个直播帧数据。
客户端B接收并缓存CDN分发服务器发送的直播帧数据,然后将缓存的直播帧数据进行播放。同时,在每一次接收到分发的直播帧数据后,客户端B均会向CDN分发服务器返回应答包,该应答包用于通知CDN分发服务器,客户端B收到了分发的直播帧数据。
CDN分发服务器的内核中的接收模块在接收到客户端B返回的应答包时,触发水位值获取模块获取客户端B的水位值,该水位值为客户端B中缓存的直播帧数据的大小。水位值获取模块获取客户端B的水位值后,触发处理模块根据该水位值确定发送策略。处理模块在确定发送策略后,指示发送模块根据确定的发送策略,向客户端B发送新的直播帧数据。
可选的,水位值获取模块获取客户端B的水位值,例如,可以先获取CDN分发服务器与客户端B成功建立连接的第一时间与该应答包到达CDN分发服务器的第二时间之间的时间间隔,以及,该第一时间与该应答包应答的直播帧数据中记录的时间戳之间的时间差,然后,将该时间差与该时间间隔之间的差值,确定为该水位值。
可选的,处理模块在水位值获取模块获取到客户端B的水位值之后,判断该水位值是否超过预设阈值。若该水位值超过该预设阈值,则清除内核中缓存的未发送给客户端B的直播帧数据。然后,触发发送模块在获取到新的直播帧数据时,将获取的新的直播帧数据发送给客户端B,并将该新的直播帧数据的描述信息记录到预设的直播帧数据库中。
进一步的,若该水位值超过该预设阈值,则处理模块调用预设的API接口(Application Programming Interface,应用程序编程接口),通知NWS客户端B水位值超限。NWS分析预设时长内客户端B水位值超限的次数以及对应清除的内核中缓存的未发送给客户端B的直播帧数据的大小,是否满足预设的压缩条件。若满足该预设的压缩条件,则指示内核中的发送模块,当获取到新的直播帧数据时,将获取的新的直播帧数据进行压缩处理后发送给客户端B,并将该新的直播帧数据的描述信息记录到预设的直播帧数据库中。
可选的,内核中的接收模块在接收到客户端B发送的应答包之后,触发处理模块对该应答包进行预处理,然后,通过调用API接口将处理后的应答包发送给NWS。NWS在接收到该应答包后,判断是否获取到新的直播帧数据,若获取到新的直播帧数据,则指示内核中的发送模块,将获取的新的直播帧数据发送给客户端B,并将该新的直播帧数据的描述信息更新到预设的直播帧数据库中。若未获取到新的直播帧数据,则NWS根据客户端B返回的应答包和其他客户端返回的应答包,判断客户端B是否发生卡顿,例如:假设根据客户端B发送的应答包确定客户端A刚播放到100ms(毫秒)的内容,但是根据客户端C和D发送的应答包,确定客户端C和D已经播放到3000ms的内容,客户端C和D的播放量远远大于客户端B的播放量,因此可认为客户端B发生了卡顿。
若发生卡顿,则NWS根据该应答包应答的直播帧数据及其他客户端返回的应答包应答的直播帧数据,确定需要跳过的直播帧数据,然后,将该需要跳过的直播帧数据的描述信息从该直播帧数据库中删除,并指示内核中的发送模块将剩余未发送的直播帧数据发送客户端B。
请参阅图4,图4为本申请一实施例提供的流数据处理方法的实现流程示意图。本实施例提供的流数据处理方法可应用于图1中的服务器300中。如图4所示,该方法主要包括以下步骤:
201、向客户端发送流数据;
202、接收客户端返回的应答包;
203、根据该应答包获取客户端的水位值。
具体的,客户端中安装有用于传输流数据的APP。流数据是一组顺序、大量、快速、连续到达的数据序列,一般应用于持续生成动态新数据的大多数场景,例如:直播、网络监控、传感器网络、气象测控等等。以直播为例,该APP例如可以是用于传输并播放直播数据的直播APP。直播的内容可以但不限于秀场直播、游戏直播、体育直播以及个人主播直播等等。
流数据,在传输时通常被切分为多个部分进行传输。根据流数据的具体类型,可以是以帧、组、片断等等单位对流数据进行切分。以直播为例,直播数据在传输时通常被切分为多个直播帧数据进行传输。服务器接收客户端发送的直播请求,与客户端建立直播数据传输连接,然后逐帧地将客户端请求的直播数据向该客户端进行发送。客户端在接收到服务器发送的直播帧数据后会向服务器返回应答包,以确认收到服务器分发的直播帧数据。
客户端的水位值是指客户端缓存的流数据的大小。根据客户端发送的应答包涉及的相关时间,如:服务器与客户端成功建立连接的时间、该应答包到达服务器到的时间、该应答包应答的流数据中记录的时间戳等,可以得到已经发送给客户端的流数据的大小,作为客户端的水位值。
进一步的,在获取到客户端的水位值之后,还可根据获取的水位值向客户端发送新的流数据。具体的,可以根据客户端的水位值,重新确定发送策略,并根据新确定的发送策略向客户端发送新的流数据。例如:若客户端的水位值不超过预设的值,则确定按照原发送策略,将缓存的未发送给客户端的流数据,作为新的流数据发送给客户端;若客户端的水位值超过预设的值,则确定按照备选发送策略,跳过当前缓存的未发送给客户端的流数据,只将新获取的流数据发送给客户端。
本实施例提供的流数据处理方法,在每一次接收到客户端返回的应答包时,根据该应答包获取客户端的水位值,由此实现了非基于客户端上报的客户端水位值的获取,从而有助于提高流数据分发的合理性。
请参阅图5,图5为本申请另一实施例提供的流数据处理方法的实现流程示意图。本实施例提供的流数据处理方法可应用于图1中的服务器300中。如图5所示,该方法主要包括以下步骤:
401、向客户端发送流数据;
402、接收客户端返回的应答包;
客户端中安装有用于传输流数据的APP。流数据是一组顺序、大量、快速、连续到达的数据序列,一般应用于持续生成动态新数据的大多数场景,例如:直播、网络监控、传感器网络、气象测控等等。以直播为例,该APP例如可以是用于传输并播放直播数据的直播APP。
流数据,在传输时通常被切分为多个部分进行传输。根据流数据的具体类型,可以是以帧、组、片断等等单位对流数据进行切分。典型的,以直播为例(为便于说明,后述实施例中涉及的流数据均以直播数据为例),直播数据在传输时通常被切分为多个直播帧数据进行传输。服务器接收客户端发送的直播请求,与客户端建立直播数据传输连接,然后逐帧地将客户端请求的直播数据向该客户端进行发送。客户端在接收到服务器发送的直播帧数据后会向服务器返回应答包,以确认收到服务器分发的直播帧数据。
结合图6,图6中使用Tn(T0~Tn)来表示一个直播流直播过程中在服务器与客户端之间传输的直播帧数据。直播帧数据中记录有当前直播流的时间戳和文件偏移值,时间戳通常是从0开始。An(A1~An)表示服务器内核中收到的从客户端发来的每个应答包。文件偏移值用于标识不同的直播帧数据以及确定直播帧数据的顺序,通常按照字节来编号,例如,假设直播帧数据1的文件偏移值为0字节,每一直播帧数据的大小均为99字节,则直播帧数据2的文件偏移值为100(99+1)字节,直播帧数据3的文件偏移值为200(199+1)字节,依此类推。
通过应答包中的应答序号值可以推算出应答的直播帧数据的文件偏移值。对于包含SACK(Selective ACK,带选择确认的确认信息)选项的应答包,由于该类应答包中会携带多个应答的连续或非连续的直播帧数据的文件偏移值。为使得计算的水位值更接近客户端的实际情况,较佳地,仅使用应答包的序号值来计算应答的直播帧数据的文件偏移值,应答包的序号值通常对应文件偏移值最小的直播帧数据。
从图6中可以看出,应答包Aa应答的是直播帧数据Tb,表示客户端已经接收到T0到Tb之间(含T0到Tb)的直播帧数据。应答包An应答的是Tn这个直播帧数据,即表示服务器发送的所有直播帧数据都被客户端应答了。
于本实施例中,服务器中配置有内核,通过该内核接收客户端返回的应答包。其中内核可以理解为操作系统的内部核心程序。
403、获取服务器与客户端成功建立连接的第一时间与该应答包到达服务器的第二时间之间的时间间隔,以及,该第一时间与该应答包应答的流数据中记录的时间戳之间的时间差;
404、将该时间差与该时间间隔之间的差值,确定为客户端的水位值;
具体的,服务器在每一次根据客户端发送的直播请求,与该客户端成功建立直播数据传输连接之后,均会记录下连接建立完成的时间,将该时间作为第一时间。服务器在每一次接收到客户端发送的应答包时,也会记录接收到该应答包的时间,将该时间作为第二时间。第一时间和第二时间通常为服务器中的系统时间。
定义A(n)为从服务器与客户端连接建立完成时服务器记录的第一时间,到第n个应答包从该客户端到达服务器时服务器记录的第二时间之间的时间间隔,A(n)的单位为毫秒(ms)。
定义T(n)为从服务器与客户端连接建立完成时服务器记录的第一时间,到第n个应答包所应答的直播帧数据中记录的时间戳之间的差值,T(n)的单位为毫秒。
可以理解的,T(n)是直播流实际发送的总直播帧数据的量,A(n)等价于实际播放的量,那么二者的差值就是客户端的水位值W(n),即,T(n)-A(n)。其中,水位值是指客户端中的直播APP缓存的直播帧数据的大小,单位为毫秒。
于本实施例中,通过服务器的内核获取服务器与客户端成功建立连接的第一时间与该客户端返回的应答包到达该服务器的第二时间之间的时间间隔,以及,该第一时间与该应答包应答的直播帧数据中记录的时间戳之间的时间差。然后,将该时间差与该时间间隔之间的差值,确定为该客户端中缓存的直播帧数据的水位值。
可以理解的,从客户端的视角,直播是按照一定频率进行的。但是在客户端和服务器之间,数据包并不是平缓地发送给客户端的,每个帧中的时间间隔和墙上时钟的时间间隔不是一一对应的关系。于本实施例中,墙上时间可以认为是服务器中的系统时间。
服务器中配置有后台服务模块(NWS)。后台服务模块在把直播帧数据交给TCP层后,受限于网络的环境波动和带宽大小,每一个直播帧数据和收到的应答并不是一一对应的关系。此外,由于游戏、主播等具体场景的不同,每一直播帧数据的大小是不一定的,例如:游戏直播场景,每秒30帧,每秒的文件大小达到1MB(兆);主播场景,每秒24帧,每秒的文件大小约为450KB(千字节)。于本实施例中,为了屏蔽不同场景的差异,后台服务模块维护一个直播帧数据库。直播帧数据库用于存储后台服务模块缓存的有效直播帧数据的描述信息。该描述信息可以但不限于包括:直播帧数据的身份标识信息、大小、文件偏移值、访问者标识信息、存储位置以及直播帧数据中记录的时间戳等等。后台服务模块在服务器获取到每一直播帧数据时,均会提取获取的直播帧数据的描述信息并记录在直播帧数据库中。
于本实施例中,服务器的内核在接收到客户端发送的应答包后,获取该应答包应答的直播帧数据的文件偏移值,然后在直播帧数据库中查找该文件偏移值对应的直播帧数据中记录的时间戳。将该时间戳与该第一时间相减,得到该时间差T(n)。
405、判断该水位值是否超过预设阈值;
406、若该水位值超过该预设阈值,则清除内核中缓存的未发送给客户端的流数据;
407、当获取到新的流数据时,将获取的新的流数据发送给客户端,并将该新的流数据的描述信息记录到预设的流数据库中;
408、若该水位值未超过该预设阈值,则继续按照原有的发送策略向客户端发送新的流数据。
预设阈值可以视为预警值,是一个经验值,在实际应用中具体可由用户自定义。具体的,判断客户端缓存的流数据的水位值是否超过预设阈值。若该水位值超过该预设阈值,则认为需要执行跳帧操作,于是清除内核中缓存的未发送给该客户端的流数据。然后,当获取到新的流数据时,将获取的新的流数据发送给该客户端,并将该新的流数据的描述信息记录到预设的流数据库中。若该水位值未超过该预设阈值,则继续按照原有的发送规则向该客户端发送流数据,如,将未发送的下一个流数据发送给客户端。
可以理解的,服务器的后台服务模块和内核均缓存有流数据。后台服务模块需要通过内核向客户端发送流数据。在发送流数据时,内核首先拉取后台服务模块缓存的流数据,然后发送给客户端并缓存在内核中。通过确定的水位值可以了解客户端缓存的可播放量,并根据可播放量判断客户是否存在卡顿,并通过跳帧的方式忽略掉卡顿内容,帮助客户端快速恢复到最新的直播状态,从而不影响用户的直播体验,使得直播控制更为智能化和合理化。同时,通过清除内核中未发送的流数据,还可以实现内核中缓存的直播数据的撤回。
进一步的,通过内核实现本实施例中的各个步骤。内核在执行完跳帧操作后,当获取到新的流数据时,将获取的新的流数据发送给客户端后,还可在应用层通过调用预设的API接口将该新的流数据的描述信息记录到预设的流数据库中时。
进一步的,若客户端缓存的流数据的水位值超过预设阈值,则通过内核利用预设的接口,通知后台服务模块记录该客户端的水位值超限。以便服务器可根据该记录在后期执行相应的对策。
进一步的,后台服务模块在接收到记录该客户端的水位值超限的通知后,分析预设时长内同一客户端的水位值超限的次数以及对应清除的内核中缓存的未发送给该客户端的流数据的大小,是否满足预设的压缩条件。若满足该预设的压缩条件,则当获取到新的流数据时,将获取的新的流数据进行压缩处理后发送给该客户端,并将该新的流数据的描述信息记录到预设的流数据库中。通过压缩处理,降低发送的流数据的大小,从而可缓解网络压力。压缩方式具体与流数据的类型对应。典型的,当流数据为直播数据时,可通过降低视频码率来实现对直播数据的压缩。
可选的,可利用启发式算法(heuristic algorithm),对预设时长内同一客户端的水位值超限的次数以及对应清除的内核中缓存的未发送给客户端的流数据的大小进行分析。
本实施例提供的流数据处理方法,在每一次接收到客户端返回的应答包时,根据获取服务器与客户端成功建立连接的第一时间、应答包到达服务器的第二时间以及该应答包应答的流数据中记录的时间戳,确定该客户端缓存的流数据的水位值,从而使得服务器可以根据客户端的实际缓存情况,更合理地分发流数据,减少设备对异常的响应延时。
请参阅图7,图7为本申请另一实施例提供的流数据处理方法的实现流程示意图。本实施例提供的流数据处理方法可应用于图1中的服务器300中。与图5所示的实施例不同的是,于本实施中,在接收客户端返回的应答包之后,在如图7所示,该方法还包括以下步骤:
501、确认客户端接收到发送的流数据;
具体的,以直播数据为例,服务器接收客户端发送的直播请求,与客户端建立直播数据传输连接。之后,如果通过预设的直播帧数据库查询得到该直播请求请求播放的直播内容已经有其他客户端访问过,则会将当前系统中缓存该直播内容的直播帧数据发送给该客户端。如果该客户端是该直播内容的第一个访问者,则服务器会从回源端拉取该直播内容对应的直播帧数据,并发送给该客户端,同时将拉取的直播帧数据缓存下来,并将拉取的直播帧数据的描述信息记录在预设的直播帧数据库中。
客户端在接收服务器发送的直播帧数据后,会返回应答包。服务器的应用层根据客户端返回的应答包确认客户端接收到发送的直播帧数据。
502、判断是否获取到新的流数据;
可以理解的,以直播数据为例,服务器接收到的直播帧数据是从回源端拉取或由回源端推送过来的,只要直播客户端的主播一直在进行直播,那就一直有新的直播帧数据产生。回源端会根据预设的推送规则将产生的直播帧数据不断地推送给服务器,或者,服务器会按照预设周期,不断地从回源端拉取新的直播帧数据并缓存下来。
在一具体实施例中,服务器的后台服务模块可根据缓存的变化判断是否获取到新的流数据。或者,服务器的内核在获取到新的流数据时,会通过预设的接口通知后台服务模块获取到新的流数据,后台服务模块根据在该预设的接口接收到的通知,可判断是否获取到新的流数据。
503、若获取到新的流数据,则将获取的新的流数据发送给客户端,并将该新的流数据的描述信息更新到流数据库中;
以直播数据为例,若获取到新的直播帧数据,则将获取的新的直播帧数据发送给该客户端,以便客户端可以为用户播放最新的直播内容。同时,获取新的直播帧数据的描述信息,并更新到预设的直播帧数据库中。
504、若未获取到新的流数据,则根据客户端返回的应答包判断客户端是否发生卡顿;
若未获取到新的流数据,则根据该客户端返回的应答包判断该客户端是否发生卡顿,例如,该应答包应答的流数据的文件偏移值与其他客户端发送的应答包应答的流数据的文件偏移值之间的偏差是否超过预设值,若超过预设值,可认为客户端发生了卡顿,需要跳帧。以直播数据为例,假设客户端A发送的应答包应答的直播帧数据的文件偏移值为100,客户端B和C发送的应答包应答的直播帧数据的文件偏移值为3000,这说明,客户端A刚播放到100ms的内容,但是客户端B和C已经播放到3000ms的内容,客户端B和C的播放量远远大于客户端A的播放量,因此可认为客户端A发生了卡顿。
505、若发生卡顿,则根据该应答包应答的流数据及其他客户端返回的应答包应答的流数据,确定需要跳过的流数据;
具体的,可将该客户端应答的流数据与其他客户端返回的应答包应答的流数据中文件偏移值最大的流数据之间的流数据,确定为需要跳过的流数据。
506、将该需要跳过的流数据的描述信息从该流数据库中删除,并跳过该需要跳过的流数据,将剩余未发送的流数据发送客户端;
将需要跳过的流数据的描述信息从预设的流数据库中删除,以确保流数据库中记录的始终是有效流数据的描述信息。然后将需要跳过的流数据的下一流数据发送该客户端,从而帮助发生卡顿的客户端快速恢复到最新的直播状态,提高用户的直播体验。
进一步的,在确定需要跳过的流数据之后,分析卡顿发生的原因是否为预设原因,并当卡顿发生的原因为预设原因时,跳过需要跳过的流数据,将剩余未发送的流数据进行压缩处理,并将压缩后的流数据发送给客户端,以减少发送的流数据的大小,缓解网络压力。
可选的,可预设不同时间段与不同网络环境的对应关系,根据当前所处时间段,分析卡顿是偶发还是因网络环境导致,若卡顿是因网络环境导致,则确认卡顿发生的原因为预设原因。网络环境主要与网络质量有关,不同的时间段,由于同时在线的用户数量的差异,网络质量也有所不同,例如下班后的时间段,同时在线的用户数量较多,家庭用网络的网络质量通常不佳,网速较慢,发生卡顿很常见。而午夜休息时间段,大多数用户通常都在睡觉,网络质量较佳,卡顿的发生多为偶发现象。
压缩方式具体与流数据的类型对应。典型的,当流数据为直播数据时,可通过降低视频码率来实现对直播数据的压缩。
507、若未发生卡顿,则继续按照原有的发送策略向客户端发送流数据。
若客户端没有发生卡顿,则不执行跳帧操作,继续按照原有的发送规则向客户端发送流数据,如内核中还有未发送的流数据,则将该流数据发送给客户端。若已无可发送的流数据,则从回源端拉取新的流数据,并将新拉取的流数据发送给客户端。
进一步的,步骤501至步骤507由后台服务模块实现。后台服务模块的主要任务是维护流数据库。对于一个直播流而言,如果拉取到新的流数据,则将拉取的新的流数据的描述信息记录到流数据库中。
于其他有实施例中,本实施例与图6所示的实施例可以合并,从而实现了内核和后台服务的联动,此时,后台服务模块执行步骤501至步骤507与内核执行步骤403至步骤408无时间上的先后顺序,可以同时进行,也可以不同时进行。
进一步的,在流数据的传输任务结束后,后台服务模块清除预设的流数据库中的相关数据。以直播数据为例,当直播结束后,后台服务模块清除直播数据库中的相关数据。
本实施例提供的流数据处理方法,在每一次接收到客户端返回的应答包时,根据获取服务器与客户端成功建立连接的第一时间、应答包到达服务器的第二时间以及该应答包应答的流数据中记录的时间戳,确定该客户端缓存的流数据的水位值,从而使得服务器可以根据客户端的实际缓存情况,更合理地分发流数据。并进一步的,在判断出客户端发生卡顿时,通过进行跳帧操作忽略掉卡顿内容,从而帮助客户端快速恢复到最新的数据输出状态,因此可使得数据输出控制更为智能化和合理化,减少设备对异常的响应延时。
图8为本申请一实施例提供的服务器的结构示意图。本实施例提供的服务器是上述图4所示实施例中的流数据处理方法的执行主体。如图8所示,本实施例提供的服务器主要包括:发送模块601、接收模块602以及水位值获取模块603。
发送模块601,用于向客户端发送流数据;
接收模块602,用于接收该客户端返回的应答包;
水位值获取模块603,用于根据该应答包获取该客户端的水位值,该水位值为该客户端中缓存的流数据的大小。
本实施例中各功能模块实现各自功能的具体过程,请参见上述图4所示实施例中描述的具体内容,此处不再赘述。
本实施例提供的服务器,在每一次接收到客户端返回的应答包时,根据该应答包获取客户端的水位值,由此实现了非基于客户端上报的客户端水位值的获取,从而有助于提高流数据分发的合理性。
图9为本申请另一实施例提供的服务器的结构示意图。本实施例提供的服务器是上述图4至图7所示实施例中的流数据处理方法的执行主体。如图9所示,与图8所示服务器不同的是,在本实施例提供的服务器中:
进一步的,水位值获取模块603,具体用于获取该服务器与该客户端成功建立连接的第一时间与该应答包到达该服务器的第二时间之间的时间间隔,以及,该第一时间与该应答包应答的流数据中记录的时间戳之间的时间差,以及将该时间差与该时间间隔之间的差值,确定为该水位值。
进一步的,水位值获取模块603,还具体用于获取该应答包应答的流数据的文件偏移值,在预设的流数据库中查找该文件偏移值对应的流数据中记录的时间戳,将该时间戳与该第一时间相减,得到该时间差。
进一步的,服务器还包括:处理模块701,用于根据该水位值,触发发送模块601向客户端发送新的流数据。
进一步的,处理模块701,具体用于根据该水位值确定发送策略,并触发发送模块601根据确定的发送策略,向该客户端发送新的流数据。
进一步的,处理模块701,包括:
判断模块7011,用于判断该水位值是否超过预设阈值;
清除模块7012,用于若判断模块7011判断该水位值超过该预设阈值,则清除内核中缓存的未发送给该客户端的流数据;
发送模块601,还用于当该水位值超过该预设阈值时,被该判断模块触发当获取到新的流数据时,将获取的新的流数据发送给该客户端,并将该新的流数据的描述信息记录到预设的流数据库中。
进一步的,该服务器还包括:
通知模块702,用于若判断模块7011判断该水位值超过该预设阈值,则利用预设的接口,通知后台服务模块记录该水位值超限;
分析模块703,用于通过该后台服务模块,分析预设时长内该水位值超限的次数以及对应清除的该内核中缓存的未发送给该客户端的流数据的大小,是否满足预设的压缩条件;
发送模块601,还用于若满足该预设的压缩条件,则当获取到新的流数据时,将获取的新的流数据进行压缩处理后发送给该客户端,并将该新的流数据的描述信息记录到预设的流数据库中。
进一步的,发送模块601、接收模块602、水位值获取模块603、处理模块701以及通知模块702配置在该服务器的内核中。
进一步的,该服务器还包括:流数据判断模块704和跳帧模块705;
流数据判断模块704,用于判断是否获取到新的流数据;
发送模块601,还用于若流数据判断模块704判断获取到新的流数据,则将获取的新的流数据发送给该客户端,并将该新的流数据的描述信息更新到预设的流数据库中;
流数据判断模块704,还用于若未获取到新的流数据,则根据该应答包判断该客户端是否发生卡顿;
跳帧模块705,用于若流数据判断模块704判断该客户端发生卡顿,则根据该应答包应答的流数据及其他客户端返回的应答包应答的流数据,确定需要跳过的流数据,以及将该需要跳过的流数据的描述信息从该流数据库中删除;
发送模块601,还用于跳过该需要跳过的流数据,将剩余未发送的流数据发送该客户端。
进一步的,流数据判断模块704,还用于分析该卡顿发生的原因是否为预设原因;
发送模块601,还用于若该卡顿发生的原因为预设原因,则将该剩余未发送的流数据进行压缩处理,并将压缩后的流数据发送给该客户端。
本实施例中各功能模块实现各自功能的具体过程,请参见上述图1至图8所示实施例中描述的具体内容,此处不再赘述。
本实施例提供的服务器,在每一次接收到客户端返回的应答包时,根据获取服务器与客户端成功建立连接的第一时间、应答包到达服务器的第二时间以及该应答包应答的流数据中记录的时间戳,确定该客户端缓存的流数据的水位值,从而使得服务器可以根据客户端的实际缓存情况,更合理地分发流数据。并进一步的,在判断出客户端发生卡顿时,通过进行跳帧操作忽略掉卡顿内容,从而帮助客户端快速恢复到最新的数据输出状态,因此可使得数据输出控制更为智能化和合理化,减少设备对异常的响应延时。
请参阅图10,图10为本申请一实施例提供的服务器的硬件结构图。
本实施例中所描述的服务器,包括:
存储器81、处理器82及存储在存储器81上并可在处理器82上运行的计算机程序,处理器82执行该计算机程序时,实现前述图1至图7所示实施例中描述的流数据处理方法。
进一步地,该服务器还包括:
至少一个输入设备83以及至少一个输出设备84。
上述存储器81、处理器82、输入设备83和输出设备84通过总线85连接。
其中,输入设备83具体可为摄像头、触控面板、物理按键或者鼠标等等。输出设备84具体可为显示屏。
存储器81可以是高速随机存取记忆体(RAM,Random Access Memory)存储器,也可为非不稳定的存储器(non-volatile memory),例如磁盘存储器。存储器81用于存储一组可执行程序代码,处理器82与存储器81耦合。
进一步地,本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质可以是设置于上述各实施例中的服务器中,该计算机可读存储介质可以是前述图10所示实施例中的存储器。该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现前述图1至图7所示实施例中描述的流数据处理方法。进一步地,该计算机可存储介质还可以是U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者装置中还存在另外的相同要素。
本领域技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述,仅是本申请的较佳实施例而已,并非对本申请作任何形式上的限制,虽然本申请已以较佳实施例揭露如上,然而并非用以限定本申请,任何熟悉本专业的技术人员,在不脱离本申请技术方案范围内,当可利用上述揭示的技术内容做出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本申请技术方案内容,依据本申请的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本申请技术方案的范围内。
Claims (15)
1.一种流数据处理方法,应用于服务器,其特征在于,所述方法包括:
向客户端发送流数据;
接收所述客户端返回的应答包;
根据所述应答包获取所述客户端的水位值,所述水位值为所述客户端中缓存的流数据的大小。
2.如权利要求1所述的方法,其特征在于,所述根据所述应答包获取所述客户端的水位值,包括:
获取所述服务器与所述客户端成功建立连接的第一时间与所述应答包到达所述服务器的第二时间之间的时间间隔,以及,所述第一时间与所述应答包应答的流数据中记录的时间戳之间的时间差;
将所述时间差与所述时间间隔之间的差值,确定为所述水位值。
3.如权利要求2所述的方法,其特征在于,所述获取所述第一时间与所述应答包应答的流数据中记录的时间戳之间的时间差,包括:
获取所述应答包应答的流数据的文件偏移值;
在预设的流数据库中查找所述文件偏移值对应的流数据中记录的时间戳;
将所述时间戳与所述第一时间相减,得到所述时间差。
4.如权利要求1至3中的任一项所述的方法,其特征在于,所述根据所述应答包获取所述客户端的水位值之后,还包括:
根据所述水位值向所述客户端发送新的流数据。
5.如权利要求4所述的方法,其特征在于,所述根据所述水位值向所述客户端发送新的流数据,包括:
判断所述水位值是否超过预设阈值;
若所述水位值超过所述预设阈值,则清除内核中缓存的未发送给所述客户端的流数据;
当获取到新的流数据时,将获取的新的流数据发送给所述客户端,并将所述新的流数据的描述信息记录到预设的流数据库中。
6.如权利要求5所述的方法,其特征在于,所述服务器中配置有内核,通过所述内核实现如权利要求1至5中的任一项所述的方法中的各个步骤。
7.如权利要求6所述的方法,其特征在于,所述服务器中还配置有后台服务模块,所述判断所述水位值是否超过预设阈值之后,还包括:
若所述水位值超过所述预设阈值,则通过所述内核利用预设的接口,通知所述后台服务模块记录所述水位值超限;
通过所述后台服务模块,分析预设时长内所述水位值超限的次数以及对应清除的所述内核中缓存的未发送给所述客户端的流数据的大小,是否满足预设的压缩条件;
若满足所述预设的压缩条件,则所述当获取到新的流数据时,将获取的新的流数据发送给所述客户端,并将所述新的流数据的描述信息记录到预设的流数据库中,包括:
当获取到新的流数据时,将获取的新的流数据进行压缩处理后发送给所述客户端,并将所述新的流数据的描述信息记录到预设的流数据库中。
8.如权利要求1所述的方法,其特征在于,所述接收所述客户端返回的应答包之后,还包括:
判断是否获取到新的流数据;
若获取到新的流数据,则将获取的新的流数据发送给所述客户端,并将所述新的流数据的描述信息更新到预设的流数据库中;
若未获取到新的流数据,则根据所述应答包判断所述客户端是否发生卡顿;
若发生卡顿,则根据所述应答包应答的流数据及其他客户端返回的应答包应答的流数据,确定需要跳过的流数据;
将所述需要跳过的流数据的描述信息从所述流数据库中删除,并跳过所述需要跳过的流数据,将剩余未发送的流数据发送所述客户端。
9.如权利要求8所述的方法,其特征在于,所述根据所述应答包应答的流数据及其他客户端返回的应答包应答的流数据,确定需要跳过的流数据,与所述将剩余的未发送的流数据发送所述客户端之间,还包括:
分析所述卡顿发生的原因是否为预设原因;
当所述卡顿发生的原因为预设原因时,所述将剩余未发送的流数据发送所述客户端,包括:
将所述将剩余未发送的流数据进行压缩处理,并将压缩后的流数据发送给所述客户端。
10.一种服务器,其特征在于,包括:
发送模块,用于向客户端发送流数据;
接收模块,用于接收所述客户端返回的应答包;
水位值获取模块,用于根据所述应答包获取所述客户端的水位值,所述水位值为所述客户端中缓存的流数据的大小。
11.如权利要求10所述的服务器,其特征在于,
所述水位值获取模块,具体用于获取所述服务器与所述客户端成功建立连接的第一时间与所述应答包到达所述服务器的第二时间之间的时间间隔,以及,所述第一时间与所述应答包应答的流数据中记录的时间戳之间的时间差,以及将所述时间差与所述时间间隔之间的差值,确定为所述水位值;
所述水位值获取模块,还具体用于获取所述应答包应答的流数据的文件偏移值,在预设的流数据库中查找所述文件偏移值对应的流数据中记录的时间戳,将所述时间戳与所述第一时间相减,得到所述时间差。
12.如权利要求10或11所述的服务器,其特征在于,
所述服务器还包括:处理模块,用于根据所述水位值,触发所述发送模块向所述客户端发送新的流数据;
所述处理模块,包括:
判断模块,用于判断所述水位值是否超过预设阈值;
清除模块,用于若所述判断模块判断所述水位值超过所述预设阈值,则清除内核中缓存的未发送给所述客户端的流数据;
所述发送模块,还用于当所述水位值超过所述预设阈值时,被所述判断模块触发当获取到新的流数据时,将获取的新的流数据发送给所述客户端,并将所述新的流数据的描述信息记录到预设的流数据库中;
所述服务器还包括:
通知模块,用于若所述判断模块判断所述水位值超过所述预设阈值,则利用预设的接口,通知后台服务模块记录所述水位值超限;
分析模块,用于通过所述后台服务模块,分析预设时长内所述水位值超限的次数以及对应清除的所述内核中缓存的未发送给所述客户端的流数据的大小,是否满足预设的压缩条件;
所述发送模块,还用于若满足所述预设的压缩条件,则当获取到新的流数据时,将获取的新的流数据进行压缩处理后发送给所述客户端,并将所述新的流数据的描述信息记录到预设的流数据库中;
所述发送模块、所述接收模块、所述水位值获取模块、所述处理模块以及所述通知模块配置在所述服务器的内核中。
13.如权利要求10所述的服务器,其特征在于,所述服务器还包括:流数据判断模块和跳帧模块;
所述流数据判断模块,用于判断是否获取到新的流数据;
所述发送模块,还用于若所述流数据判断模块判断获取到新的流数据,则将获取的新的流数据发送给所述客户端,并将所述新的流数据的描述信息更新到预设的流数据库中;
所述流数据判断模块,还用于若未获取到新的流数据,则根据所述应答包判断所述客户端是否发生卡顿;
所述跳帧模块,用于若所述流数据判断模块判断所述客户端发生卡顿,则根据所述应答包应答的流数据及其他客户端返回的应答包应答的流数据,确定需要跳过的流数据,以及将所述需要跳过的流数据的描述信息从所述流数据库中删除;
所述发送模块,还用于跳过所述需要跳过的流数据,将剩余未发送的流数据发送所述客户端;
所述流数据判断模块,还用于分析所述卡顿发生的原因是否为预设原因;
所述发送模块,还用于若所述卡顿发生的原因为预设原因,则将所述剩余未发送的流数据进行压缩处理,并将压缩后的流数据发送给所述客户端。
14.一种服务器,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时,实现如权利要求1至9中的任一项所述的流数据处理方法。
15.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现如权利要求1至9中的任一项所述的流数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810384362.3A CN110213206B (zh) | 2018-04-26 | 2018-04-26 | 流数据处理方法、服务器及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810384362.3A CN110213206B (zh) | 2018-04-26 | 2018-04-26 | 流数据处理方法、服务器及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110213206A true CN110213206A (zh) | 2019-09-06 |
CN110213206B CN110213206B (zh) | 2022-06-21 |
Family
ID=67778777
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810384362.3A Active CN110213206B (zh) | 2018-04-26 | 2018-04-26 | 流数据处理方法、服务器及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110213206B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111083217A (zh) * | 2019-12-11 | 2020-04-28 | 北京达佳互联信息技术有限公司 | 一种推送Feed流的方法、装置及电子设备 |
CN111917661A (zh) * | 2020-07-29 | 2020-11-10 | 北京字节跳动网络技术有限公司 | 数据传输方法、装置、电子设备和计算机可读存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101184021A (zh) * | 2007-12-14 | 2008-05-21 | 华为技术有限公司 | 一种实现流媒体缓存置换的方法、设备及系统 |
CN101378356A (zh) * | 2008-06-10 | 2009-03-04 | 中兴通讯股份有限公司 | 一种ip实时流媒体的播放方法 |
WO2009115011A1 (zh) * | 2008-03-19 | 2009-09-24 | 华为技术有限公司 | 实现流媒体定位播放的方法、装置及系统 |
CN101827033A (zh) * | 2010-04-30 | 2010-09-08 | 北京搜狗科技发展有限公司 | 一种网络流量控制方法、装置及局域网系统 |
CN102137006A (zh) * | 2010-12-31 | 2011-07-27 | 华为技术有限公司 | Cdn网络中的数据传输方法及设备 |
CN103001961A (zh) * | 2012-12-03 | 2013-03-27 | 华为技术有限公司 | 一种获取流媒体缓存参数的方法及装置 |
CN106341738A (zh) * | 2015-07-08 | 2017-01-18 | 杭州海康威视数字技术股份有限公司 | 流媒体网络传输的带宽计算方法、服务器端和系统 |
CN107465654A (zh) * | 2016-08-31 | 2017-12-12 | 哈尔滨广播电视台 | 用于广播电视台各业务子网间内容分发与安全查杀的系统 |
-
2018
- 2018-04-26 CN CN201810384362.3A patent/CN110213206B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101184021A (zh) * | 2007-12-14 | 2008-05-21 | 华为技术有限公司 | 一种实现流媒体缓存置换的方法、设备及系统 |
WO2009115011A1 (zh) * | 2008-03-19 | 2009-09-24 | 华为技术有限公司 | 实现流媒体定位播放的方法、装置及系统 |
CN101378356A (zh) * | 2008-06-10 | 2009-03-04 | 中兴通讯股份有限公司 | 一种ip实时流媒体的播放方法 |
CN101827033A (zh) * | 2010-04-30 | 2010-09-08 | 北京搜狗科技发展有限公司 | 一种网络流量控制方法、装置及局域网系统 |
CN102137006A (zh) * | 2010-12-31 | 2011-07-27 | 华为技术有限公司 | Cdn网络中的数据传输方法及设备 |
CN103001961A (zh) * | 2012-12-03 | 2013-03-27 | 华为技术有限公司 | 一种获取流媒体缓存参数的方法及装置 |
CN106341738A (zh) * | 2015-07-08 | 2017-01-18 | 杭州海康威视数字技术股份有限公司 | 流媒体网络传输的带宽计算方法、服务器端和系统 |
CN107465654A (zh) * | 2016-08-31 | 2017-12-12 | 哈尔滨广播电视台 | 用于广播电视台各业务子网间内容分发与安全查杀的系统 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111083217A (zh) * | 2019-12-11 | 2020-04-28 | 北京达佳互联信息技术有限公司 | 一种推送Feed流的方法、装置及电子设备 |
CN111083217B (zh) * | 2019-12-11 | 2022-07-08 | 北京达佳互联信息技术有限公司 | 一种推送Feed流的方法、装置及电子设备 |
CN111917661A (zh) * | 2020-07-29 | 2020-11-10 | 北京字节跳动网络技术有限公司 | 数据传输方法、装置、电子设备和计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110213206B (zh) | 2022-06-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11303970B2 (en) | Systems and methods for internet video delivery | |
CN104967876B (zh) | 弹幕信息处理方法和装置、弹幕信息展示方法和装置 | |
CN104468395B (zh) | 直播间的频道访问方法和系统 | |
Chen et al. | Video browsing-a study of user behavior in online vod services | |
KR101476938B1 (ko) | 미디어 컨텐츠의 선택적 수신 | |
CN109474854B (zh) | 视频播放方法、播放列表的生成方法及相关设备 | |
WO2017107649A1 (zh) | 一种视频传输方法和装置 | |
CN102713883A (zh) | 用编解码器强制的帧大小进行音频分割 | |
EP2109077A2 (en) | Method and computer program product for providing advertisements to a mobile user device | |
US9521178B1 (en) | Dynamic bandwidth thresholds | |
CN104469433A (zh) | 一种视频直播回看方法及装置 | |
CN102740159A (zh) | 媒体文件存储格式和自适应传送系统 | |
CN107241615A (zh) | 直播暂停方法、系统、直播暂停装置及直播服务器 | |
CN107231350B (zh) | 一种消息处理方法与装置 | |
CN101014947A (zh) | 一种关于流内容的自适应速率切换的装置、系统和方法 | |
CN110022482A (zh) | 视频起播方法、视频服务系统及存储介质 | |
CN112019905A (zh) | 直播回放方法、计算机设备及可读存储介质 | |
CN114501052B (zh) | 直播数据处理方法、云平台、计算机设备和存储介质 | |
CN110213206A (zh) | 流数据处理方法、服务器及计算机可读存储介质 | |
WO2023061060A1 (zh) | 音视频码流的调度方法、系统、介质及电子装置 | |
CN113242437A (zh) | 一种rtsp协议视频无插件播放方法、系统、装置及存储介质 | |
CN105893429A (zh) | 用于优化web缓存的方法及系统 | |
CN105978955A (zh) | 一种移动视频同步系统、方法及移动终端 | |
CN111314350A (zh) | 图像存储系统、存储方法、调用系统和调用方法 | |
JP2003319421A (ja) | 映像管理方法、装置、映像管理プログラム、および同プログラムを記録した記録媒体 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |