CN114465989A - 流媒体数据处理方法、服务器、电子设备和可读存储介质 - Google Patents
流媒体数据处理方法、服务器、电子设备和可读存储介质 Download PDFInfo
- Publication number
- CN114465989A CN114465989A CN202011188308.5A CN202011188308A CN114465989A CN 114465989 A CN114465989 A CN 114465989A CN 202011188308 A CN202011188308 A CN 202011188308A CN 114465989 A CN114465989 A CN 114465989A
- Authority
- CN
- China
- Prior art keywords
- streaming media
- media data
- client
- cache server
- connection request
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W76/00—Connection management
- H04W76/10—Connection setup
-
- 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/1066—Session management
-
- 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/61—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
-
- 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/65—Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
-
- 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
- H04L65/765—Media network packet handling intermediate
-
- 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/80—Responding to QoS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- 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/21—Server components or server architectures
- H04N21/218—Source of audio or video content, e.g. local disk arrays
- H04N21/2183—Cache memory
-
- 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/21—Server components or server architectures
- H04N21/218—Source of audio or video content, e.g. local disk arrays
- H04N21/2187—Live feed
-
- 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/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/47—End-user applications
- H04N21/472—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
- H04N21/47202—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for requesting content on demand, e.g. video on demand
-
- 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/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/643—Communication protocols
- H04N21/64322—IP
Abstract
本申请公开了一种流媒体数据处理方法。流媒体数据处理方法包括接收流媒体数据并按缓存字典在缓存服务器对流媒体数据进行缓存。建立客户端与缓存服务器之间的连接并确定与客户端对应的目标流媒体数据,客户端包括插件端和订阅端。将目标流媒体数据推送至客户端。本申请的流媒体数据处理方法、服务器、电子设备和可读存储介质支持流媒体数据的按缓存字典的方式进行时序缓存,并建立客户端与缓存服务器的连接,及时将目标流媒体数据通过缓存服务器推送至客户端,降低了实时高清视频的延时现象,保证发布的高清视频能够快速推送给客户端。另外,第三方插件端能够及时对高清视频回放和高清视频流转发的处理,满足用户的多样性需求。
Description
技术领域
本申请涉及流媒体处理技术领域,特别涉及一种流媒体数据处理方法、服务器、电子设备和可读存储介质。
背景技术
在4G或5G时代,用户对流媒体数据的及时性有了很高的要求,同时对视频的处理也有了多样性要求,如:加入超分、水印、存储回放等。也即是,目前用户在观看高清实时视频时,会存在实时视频播放的延时现象。另外,第三方插件端不能对流媒体数据实时处理,例如处理视频回放和视频流转发等情况,不能满足用户的多样性需求。
发明内容
本申请实施方式提供一种流媒体数据处理方法、服务器、电子设备和可读存储介质。
本申请实施方式提供一种流媒体数据处理方法。所述方法包括:接收流媒体数据并按缓存字典在所述缓存服务器对所述流媒体数据进行缓存;建立客户端与所述缓存服务器之间的连接并确定与所述客户端对应的目标流媒体数据,所述客户端包括插件端和订阅端;和将所述目标流媒体数据推送至所述客户端。
在某些实施方式中,所述缓存字典包括管理数据池和链表,所述管理数据池包括序表,所述序表包括:推流端发送至所述缓存服务器的连接请求及对应建立的推流连接、所述订阅端发送至所述缓存服务器的连接请求及对应建立的订阅连接和所述插件端发送至所述缓存服务器的连接请求及对应建立的插件连接;所述链表包括指引序号及与所述指引序号相对应的所述流媒体数据的信息,所述指引序号与所述序表中的连接一一对应。
在某些实施方式中,所述建立客户端与所述缓存服务器之间的连接并确定与所述客户端对应的目标流媒体数据方法包括:根据客户端连接请求建立所述客户端与所述缓存服务器之间的连接;和根据所述客户端连接请求和所述缓存字典查询对应的所述流媒体数据以确定所述目标流媒体数据。
在某些实施方式中,所述接收流媒体数据并按缓存字典在所述缓存服务器对所述流媒体数据进行缓存包括:根据推流端的推流连接请求分配相应的协程以建立所述推流端与缓存服务器之间的连接;监听所述推流端与所述缓存服务器之间的连接以接收所述流媒体数据;将接收到的流媒体数据中的数据包根据流媒体类型分别依次缓存,所述流媒体类型包括直播类型和点播类型。
在某些实施方式中,所述推流端通过TCP协议与所述缓存服务器连接并通过对象简谱字符串发送所述推流连接请求,和/或所述客户端通过TCP协议与所述缓存服务器连接并通过对象简谱字符串发送所述客户端连接请求。
在某些实施方式中,所述推流连接请求包括身份、流媒体类型、名称和地址;客户端连接请求包括订阅连接请求和插件连接请求,订阅连接请求包括身份、流媒体类型、名称和地址;插件连接请求包括流媒体类型、名称和身份验证。
在某些实施方式中,将所述目标流媒体数据推送至所述客户端包括:根据所述客户端连接请求将直播类型的所述流媒体数据中的数据包依次推送给所述客户端;和根据所述客户端连接请求分配相应的协程以将点播类型的所述流媒体数据中的数据包依次推送给所述客户端。
在某些实施方式中,所述直播类型对应的推流端断开连接时,断开所述缓存服务器与对应客户端的连接并对应清除缓存的所述流媒体数据。
本申请实施方式提供一种缓存服务器。所述缓存服务器包括缓存模块、确定模块和推送模块。所述缓存模块用于接收流媒体数据并按缓存字典在所述缓存服务器对所述流媒体数据进行缓存;所述确定模块用于建立客户端与所述缓存服务器之间的连接并确定与所述客户端对应的目标流媒体数据,所述客户端包括插件端和订阅端;和所述流媒体数据用于将所述目标流媒体数据推送至所述客户端。
本申请实施方式还提供一种电子设备。所述电子设备包括处理器和存储器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时实现上述任一实施方式所述的方法。
本申请实施方式还提供一种非易失性计算机可读存储介质。所述计算机可读存储介质上存储有计算机程序,当所述计算机程序被一个或多个处理器执行时,实现上述任一实施方式所述的法。
本申请的流媒体数据处理方法、服务器、电子设备和可读存储介质支持流媒体(直播和点播)数据的按缓存字典的方式进行时序缓存,并建立客户端与缓存服务器的连接,及时将目标流媒体数据通过缓存服务器推送至客户端,降低了实时高清视频的延时现象,保证发布的高清视频能够快速推送给客户端。另外,第三方插件端能够及时对高清视频回放和高清视频流转发的处理,满足用户的多样性需求。
本申请实施方式的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
本申请的上述和/或附加的方面和优点可以从结合下面附图对实施方式的描述中将变得明显和容易理解,其中:
图1是本申请某些实施方式的流媒体数据处理方法的流程示意图;
图2是本申请某些实施方式的缓存服务器的结构示意图;
图3是本申请某些实施方式的电子设备的结构示意图;
图4是本申请某些实施方式的计算机可读存储介质的结构示意图;
图5是本申请某些实施方式的缓存服务器中的缓存字典的结构示意图;
图6是本申请某些实施方式的流媒体数据处理方法的场景示意图;
图7是本申请某些实施方式的流媒体数据处理方法的流程示意图;
图8是本申请某些实施方式的缓存服务器中缓存模块的结构示意图;
图9是本申请某些实施方式的流媒体数据处理方法的场景示意图;
图10是本申请某些实施方式的流媒体数据处理方法的流程示意图;
图11是本申请某些实施方式的缓存服务器中确定模块的结构示意图;
图12是本申请某些实施方式的流媒体数据处理方法的流程示意图;
图13是本申请某些实施方式的缓存服务器中推送模块的结构示意图。
具体实施方式
下面详细描述本申请的实施方式,所述实施方式的示例在附图中示出,其中,相同或类似的标号自始至终表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施方式是示例性的,仅用于解释本申请的实施方式,而不能理解为对本申请的实施方式的限制。
请参阅图1,本申请提供一种流媒体数据处理方法。该方法包括:
S12:接收流媒体数据并按缓存字典在缓存服务器对流媒体数据进行缓存;
S14:建立客户端与缓存服务器之间的连接并确定与客户端对应的目标流媒体数据,客户端包括插件端和订阅端;
S16:将目标流媒体数据推送至客户端。
请结合图2,本申请还提供一种缓存服务器10。该缓存服务器10包括缓存模块12、确定模块14和推送模块16。
步骤S12可以由缓存模块12实现,步骤S14可以由确定模块14实现,步骤S16可以由推送模块16实现。也即是,缓存模块12用于接收流媒体数据并按缓存字典在缓存服务器对流媒体数据进行缓存;确定模块14用于建立客户端与缓存服务器之间的连接并确定与客户端对应的目标流媒体数据;推送模块16用于将目标流媒体数据推送至客户端。
具体地,流媒体数据包括直播类型的流媒体数据和点播类型的流媒体数据。流媒体数据是在推流端上传的,客户端指的是与推流端相对应的订阅端和插件端。推流端的服务器群主要上传和推送各种直播视频和点播视频,客户端中的订阅端的服务器群主要是订阅直播视频或点播视频的用户群,客户端中的插件端会对推流端上传的直播视频或点播视频的流媒体数据进行第三方处理的用户群,例如对流媒体数据进行复制、替换和新建的操作。
本申请的缓存服务器10支持订阅和发布功能,保证低延时的情况下将数据流发布(或称为推送)至客户端。此外,缓存服务器10可以通过插件端支持第三方对数据流的实时处理(存储或者回推)。
请参阅图3,本申请还提供一种电子设备20。电子设备20包括处理器21和存储器22,存储器22存储有计算机程序23,计算机程序被处理器21执行时实现:接收流媒体数据并按缓存字典在缓存服务器对流媒体数据进行缓存;建立客户端与缓存服务器之间的连接并确定与客户端对应的目标流媒体数据;和将目标流媒体数据推送至客户端。电子设备20可以为可以接收并缓存流媒体数据的设备,例如手机、ipad、平板等其他智能设备,在此不一一列举。
请参阅图4,本申请还提供一种计算机程序的非易失性计算机可读存储介质30,其上存储有计算机程序31。
计算机程序31被一个或多个处理器32执行的情况下,实现上述任意一种实施方式的仪表识别方法的步骤。
例如,程序被处理器32执行的情况下,实现以下仪表识别方法的步骤:
S12:接收流媒体数据并按缓存字典在缓存服务器对流媒体数据进行缓存;
S14:建立客户端与缓存服务器之间的连接并确定与客户端对应的目标流媒体数据;
S16:将目标流媒体数据推送至客户端。
计算机可读存储介质30可设置在处理器32或者数据源读取器内,此时,处理器32或者数据源读取器能够与云端服务器进行通讯来获取到相应的计算机程序31。
可以理解,计算机程序31包括计算机程序代码。计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读存储介质可以包括:能够携带计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、以及软件分发介质等。
本申请的流媒体数据处理方法、服务器、电子设备和可读存储介质支持流媒体(直播和点播)数据的按缓存字典的方式进行时序缓存,并建立客户端与缓存服务器的连接,及时将目标流媒体数据通过缓存服务器推送至客户端,降低了实时高清视频的延时现象,保证发布的高清视频能够快速推送给客户端。另外,第三方插件端能够及时对高清视频回放和高清视频流转发的处理,满足用户的多样性需求。
请参阅图5,在某些实施例中,缓存字典包括管理数据池(Pool)和链表2,管理数据池(Pool)包括序表1,序表1包括:推流端发送至缓存服务器10的连接请求及对应建立的推流连接、订阅端发送至缓存服务器10的连接请求及对应建立的订阅连接和插件端发送至缓存服务器10的连接请求及对应建立的插件连接。链表2包括指引序号sid及与指引序号相对应的流媒体数据的信息,指引序号sid与序表1中的连接一一对应。
具体地,缓存字典指的是以数据库数据字典的结构方式进行缓存和管理流媒体数据。数据库数据字典是一组表和视图结构。数据库数据字典主要用于存储数据,是每个数据库的中心,而且对每个用户也是非常重要的信息。用户可以用结构化查询语言(StructuredQuery Language,SQL)的语句访问数据库数据字典。其中,结构化查询语言是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。关于数据的信息集合,是一种用户可以访问的记录数据库和应用程序元数据的目录,是对数据库内表信息的物理与逻辑的说明。
如图5所示,缓存字典中的数据池(Pool)包括序表1,序表1中包括:推流端发送至缓存服务器的连接请求及对应建立的推流连接(如推流连接可以为图5中序表1的addr1:conn)、订阅端发送至缓存服务器的连接请求及对应建立的订阅连接(如订阅连接可以为图5中序表1的addr2:conn)和插件端发送至缓存读物器的连接请求及对应建立的插件连接(如插件连接可以为图5中序表1的addr3:conn)。其中,推流端的连接请求包括流媒体数据的身份标识、类型、名称和地址;订阅连接请求包括流媒体数据的身份标识、类型、名称和地址;插件连接请求包括流媒体数据的类型、名称和身份验证。因此,本申请的流媒体数据处理方法可以实现三个端口同时一并发送流媒体数据连接请求至缓存服务器中(请参阅图6),即,缓存服务器中的管理池(Pool)可以同时建立三种连接(推流连接、订阅连接和插件连接),管理池(Pool)对三种连接进行高效管理,保证流媒体数据的安全性,并有效降低订阅端和插件端的实时高清视频的延时现象。
链表2包括指引序号,指引序号中可以包括:链接的时间顺序(2020.10.01、2020.10.02、2020.10.03…)、阿拉伯数字(1、2、3…)、字母(A/a、B/b、C/c…)等标识。如图5中所示,sid即为该指引序号,用于跟踪或指引查找流媒体数据。
链表2还存储与指引序号sid相对应的流媒体数据的信息。链表2中的流媒体数据的信息是按照推流端上传点播数据包或发布直播数据包的时间顺序排布的。链表2中的流媒体数据信息存储有与序表1中的连接请求相对应的具体内容,因此客户端可以根据指引序号第一时间查到到相对应的唯一的流媒体数据,保证查找的及时性,以加速流媒体数据流的推送过程。
流媒体数据的信息包括:直播数据包和点播数据包。每个直播数据包或点播数据包都有唯一的指引序号sid用于跟踪直播或点播资源。sid指的是唯一身份编号,用来标识直播数据包或点播数据包的身份信息。sid存储在链表2中。
当链表2中存储的为直播(live)数据包时,如图5所示,可以设置为只缓存最新收到的16个直播数据包,当有订阅端和插件端服务器在线的话,会立即将最新接收到的直播数据流推送至订阅端和插件端。由于1S时缓存服务器可缓存最多为25个直播数据包,因此缓存字典中的直播数据包可以为缓存小于或等于25个数量的直播数据包,例如可以为8、18、25个或其他数量的直播数据包。可以理解地,缓存的直播数据包数量越多,直播数据量越大;缓存的点播数据包数据量越少,所需要更新的直播数据包的数量少,更新时间短,即直播数据包更新的速度会更快,进而能够保证直播数据包的时效性。
当链表2中存储的为点播(play)数据包时,如图5所示,对于点播场景来说,可以按时间顺序缓存点播数据包,用户可设置点播数据包的有效期。例如,设置的点播数据包的有效期为1天(24小时)时,则缓存服务器10中的点播数据包只存储当天内存储的点播数据包,1天前存储的所有点播数据包都会自动失效并删除,以保证点播数据包的时效性。
序表中的连接请求与流媒体数据的信息一一对应,有利于在客户端向缓存服务器发布订阅请求或插件端的注册请求时,便于第一时间根据请求查找到对应的指引序号后准确无误的找到与请求相对应的流媒体数据的信息。
请参阅图7,在某些实施例中,S12步骤包括:
S122:根据推流端的推流连接请求分配相应的协程以建立推流端与缓存服务器之间的连接;
S124:监听推流端与缓存服务器之间的连接以接收流媒体数据;
S126:将接收到的流媒体数据中的数据包根据流媒体类型分别依次缓存,流媒体类型包括直播类型和点播类型。
请参阅图8,缓存模块12包括第一连接单元122、监听单元124和缓存单元126。
步骤122可以由第一连接单元122实现,步骤124可以由监听单元124实现,步骤126可以由缓存单元126实现。也即是,第一连接单元122用于根据推流端的推流连接请求分配相应的协程以建立推流端与缓存服务器之间的连接;监听单元124用于监听推流端与缓存服务器之间的连接以接收流媒体数据;缓存单元126用于将接收到的流媒体数据中的数据包根据流媒体类型分别依次缓存,流媒体类型包括直播类型和点播类型。
具体地,首先,第一连接单元122根据推流端的推流连接请求分配相应的协程以建立推流端与缓存服务器之间的连接,具体包括:
a.推流端通过TCP协议无线连接至缓存服务器10,推流端与缓存服务器之间网络连接成功后,推流端需发送相应的JSON字符串(如下文所示)至缓存服务器10中。JSON数据交换格式易于人阅读和编写,同时也易于机器解析和生成,并可以有效提升网络传输效率。
b.推送端发送推流连接请求(即JSON字符串)至缓存服务器,然后开始推送流媒体数据中的数据包(推送流媒体数据中的数据包的过程,需要保证流媒体数据包的推送顺序按照时间先后顺序进行推送,及根据推流连接请求及时推送,降低延迟现象)。其中,推流连接请求包括流媒体数据的身份标识、协议、名称和地址(对应下文中JSOP字符串中的id、type(包括rtmp和rtsp两种协议)、name和addr)。
c.缓存服务器10接收到推流连接请求时,缓存服务器10中的第一连接单元122会根据推送的数据流的分类为直播或点播分配独立的协程进行分别处理直播流和点播流。其中,推流连接请求为推送端发送至缓存服务器10的开始推送流媒体数据中的数据包的信号。
然后,缓存服务器10中的监听单元124监听上述推流端与缓存服务器之间的连接是否成功,当监听单元124监听到推流端与缓存服务器之间的连接成功后,则缓存服务器10通过连接(例如无线网络等其他连接方式)将接收到的流媒体数据中的数据包根据数据流的类型(直播还是点播)依次缓存,可以保证缓存服务器及时缓存直播和点播的流数据,便于在缓存服务器与客户端建立连接后,第一时间将缓存的流媒体数据中的数据包发送给客户端的用户群。也即是,缓存服务器会通过监听单元建立本地监听,等待新连接接入。
具体地,推流端接入缓存服务器的过程:该推流连接加入推流端对应的数据池(Pool)中,缓存服务器10启动协程监听该连接,等待接收流媒体数据中的数据包,同时还需初始化缓存对象并将接收到的数据包放入缓存中。
拉流端、插件端接入缓存服务器的过程:该推流连接加入拉流端和插件端对应的数据池(Pool)中,缓存服务器10查找缓存字典如果存在对应的资源(如果是点播就启动独立协程读取资源,如果是直播则无需处理,由该资源对应协程将收到的数据包按序写给订阅该资源的Pool的连接池)。
插件接入:如果需要将流媒体数据需要存储或者在第三方中进行复制、替换和水印的处理,则该部分业务由第三方插件端决定(如图9所示),但是需按照插件接入要求。
为了实现推流端、订阅端和插件端的与缓存服务器之间的连接以及时缓存相关的流媒体数据并推送流媒体数据,接下来讨论如何建立推流端、订阅端和插件端之间连接。其中,推流端指的是发布直播视频或点播视频的推流端的客户端服务群,订阅端指的是订阅直播视频或点播视频的客户端服务群,插件端指的是第三方对点播视频或直播视频进行水印、替换正在进行的直播或点播资源、拷贝直播或点播资源的客户端服务群。
在某些实施例中,推流端通过TCP协议与缓存服务器连接并通过对象简谱(JSON)字符串发送推流连接请求,和/或客户端通过TCP协议与缓存服务器连接并通过对象简谱(JSON)字符串发送客户端连接请求。
具体地,推送端通过TCP协议连接至缓存服务器,连接成功后,并通过JSON字符串发送推流连接请求至缓存服务器10中,此时,JSON字符串可以为如下所示:
{
"op":"publish",
"id":"sd434tf3e45tre",
"type":"rtmp",//rtmp,rtsp,file;
"name":"/play/test",///play表示点播,/live表示直播
"addr":"10.1.132.21",
};
客户端为订阅端时,通过TCP协议与缓存服务器连接并通过对象简谱(JSON)字符串发送客户端连接请求,具体的JSON字符串为如下所示:
{
"op类型":"subscribe",
"id":"sd434tf3e45tre"
"type":"rtmp",//rtmp,rtsp,file;
"name":"/play/test",///play表示点播,/live表示直播
"addr":"10.1.132.21",
}
客户端为插件端时,通过TCP协议与缓存服务器连接并通过对象简谱(JSON)字符串发送客户端连接请求,具体的JSON字符串为如下所示:
{
"op":"plugin",
"type":new,copy,replace;
"name":"/play/test",///play表示点播,/live表示直播
"addr":"10.1.132.21",
"token":"123456",
}
也即是,如果客户端注册的类型op为插件端时,type表示的内容为new(将返回的流作为新的媒体资源)、copy(表示拷贝直播或点播资源)或replace(替换正在进行的直播或点播资源)。具体地,new表示将指定的资源发送至插件地址,并接收其回传的数据包到系统指定的缓存区;copy表示拷贝指定的资源至插件地址;replace表示将指定的资源发送至插件地址,并接收其回传的数据包到系统指定的缓存区。
插件端与缓存服务器的新连接的超时时间可以设置为60秒,也即是,60秒时间内缓存服务器中没有其请求的资源,则自动断开与插件端与缓存服务器的连接。
接着,请参阅图10,在某些实施例中,步骤14包括:
S142:根据客户端连接请求建立客户端与缓存服务器之间的连接;和
S144:根据客户端连接请求和缓存字典查询对应的流媒体数据以确定目标流媒体数据。
请参阅图11,确定模块14包括第二连接单元142和确定单元144。
步骤142可以由第二连接单元142实现,步骤144可以由确定单元144实现。也即是,第二连接单元142用于根据客户端连接请求建立客户端与缓存服务器之间的连接;确定单元144用于根据客户端连接请求和缓存字典查询对应的流媒体数据以确定目标流媒体数据。
具体地,客户端连接请求包括订阅连接请求和插件连接请求,订阅连接请求包括流媒体数据的身份标识、类型、名称和地址;插件连接请求包括流媒体数据的类型、名称和身份验证。请结合参阅图5,通过客户端连接请求在缓存字典中的数据池(Pool)查询是否存在该流媒体数据对应的订阅客户端,若存在该流媒体数据,则将该流媒体数据推送给对应的订阅客户端。
请参阅图12,在某些实施例中,S16步骤包括:
S162:根据客户端连接请求将直播类型的流媒体数据中的数据包依次推送给客户端;
S164:根据客户端连接请求分配相应的协程以将点播类型的流媒体数据中的数据包依次推送给所述客户端。
请参阅图13,推送模块16包括第一推送单元162和第二推送单元166。
第一推送单元162用于根据客户端连接请求将直播类型的流媒体数据中的数据包依次推送给客户端;第二推送单元166用于根据客户端连接请求分配相应的协程以将点播类型的流媒体数据中的数据包依次推送给所述客户端。
具体地,客户端连接请求包括客户端的订阅连接请求和插件连接请求,订阅连接请求包括身份、流媒体类型、名称和地址;插件连接请求包括流媒体类型、名称和身份验证。
具体地,当缓存服务器10接收到订阅端的订阅连接请求,先将订阅连接请求放入Pool中,然后根据订阅连接请求资源的类型进行业务处理。当流媒体数据为直播类型时,将订阅连接请求加入Pool中后,由直播流的协程负责给该订阅连接请求中写入流数据包,再将直播流媒体数据中的数据包依次推送给客户端(订阅端或插件端)。当流媒体数据为点播类型时,缓存服务器10会分别独立启动协程读取点播流媒体数据中的数据包,并将读取得到的订阅端与插件端的点播流数据包依次推送给客户端(订阅端或插件端)。
其中,协程(Coroutines)是一种比线程更加轻量级的存在,正如一个进程可以拥有多个线程一样,一个线程可以拥有多个协程。进程是应用程序的启动实例,进程拥有代码和打开的文件资源、数据资源、独立的内存空间。线程从属于进程,是程序的实际执行者,一个进程至少包含一个主线程,也可以有更多的子线程,线程拥有自己的栈空间。
因此,本申请的缓存服务器10,在接收到推流端发布的推流连接请求时,对推流端发给缓存服务器的推流连接请求用数据池(Pool)的方式存储,其中,数据池(pool)为序表1中的一部分。另外,缓存服务器10在接收订阅端和插件端的客户端连接请求后,对订阅端和插件端发给缓存服务器的通过TCP协议的连接后用数据池(Pool)的方式存储该客户端连接请求。即,缓存服务器10中的Pool能够对推流端、订阅端和插件端的连接进行管理。也即是,本申请的缓存数据器10采用数据字典结构来管理推流端、订阅端和插件端与缓存服务器之间的连接,便于快速查找缓存服务器中与建立的连接相对应的连接数据流。
需要指出的是,在某些实施例中,当流媒体类型为直播类型,缓存服务器与对应的推流端断开连接时,断开缓存服务器与对应的客户端的连接并对应清除缓存服务器中缓存的流媒体数据。也即是,当直播视频时,推流端断开则缓存服务器会关闭所有的该资源的订阅端、插件端及清空缓存链表,保证直播的流媒体数据的时效性,有利于下一次直播视频的及时缓存及推送至订阅端和插件端。当流媒体类型为点播类型时,推流端断开则缓存服务器不作处理,保留当前的缓存数据及缓存链表。
此外,当订阅端和插件端断开时,当流媒体类型为直播类型时,则缓存服务器端会更新Pool中的连接状态;当流媒体类型为是点播类型,则缓存服务器会关闭独立启动的相应连接的协程。
Claims (11)
1.一种流媒体数据处理方法,其特征在于,包括:
接收流媒体数据并按缓存字典在所述缓存服务器对所述流媒体数据进行缓存;
建立客户端与所述缓存服务器之间的连接并确定与所述客户端对应的目标流媒体数据,所述客户端包括插件端和订阅端;和
将所述目标流媒体数据推送至所述客户端。
2.根据权利要求1所述的方法,其特征在于,所述缓存字典包括管理数据池和链表,所述管理数据池包括序表,所述序表包括:推流端发送至所述缓存服务器的连接请求及对应建立的推流连接、所述订阅端发送至所述缓存服务器的连接请求及对应建立的订阅连接和所述插件端发送至所述缓存服务器的连接请求及对应建立的插件连接;所述链表包括指引序号及与所述指引序号相对应的所述流媒体数据的信息,所述指引序号与所述序表中的连接一一对应。
3.根据权利要求1或2所述的方法,其特征在于,所述建立客户端与所述缓存服务器之间的连接并确定与所述客户端对应的目标流媒体数据方法包括:
根据客户端连接请求建立客户端与所述缓存服务器之间的连接;和
根据所述客户端连接请求和所述缓存字典查询对应的所述流媒体数据以确定所述目标流媒体数据。
4.根据权利要求3所述的方法,其特征在于,所述接收流媒体数据并按缓存字典在所述缓存服务器对所述流媒体数据进行缓存包括:
根据所述推流端的推流连接请求分配相应的协程以建立所述推流端与缓存服务器之间的连接;
监听所述推流端与所述缓存服务器之间的连接以接收所述流媒体数据;
将接收到的流媒体数据中的数据包根据流媒体类型分别依次缓存,所述流媒体类型包括直播类型和点播类型。
5.根据权利要求4所述的方法,其特征在于,所述推流端通过TCP协议与所述缓存服务器连接并通过对象简谱字符串发送所述推流连接请求,和/或所述客户端通过TCP协议与所述缓存服务器连接并通过对象简谱字符串发送所述客户端连接请求。
6.根据权利要求5所述的方法,其特征在于,所述推流连接请求包括所述流媒体数据的身份标识、类型、名称和地址;所述客户端连接请求包括订阅连接请求和插件连接请求,所述订阅连接请求包括流媒体数据的身份标识、类型、名称和地址;所述插件连接请求包括流媒体数据的类型、名称和身份验证。
7.根据权利要求4所述的方法,其特征在于,将所述目标流媒体数据推送至所述客户端包括:
根据所述客户端连接请求将直播类型的所述流媒体数据中的数据包依次推送给所述客户端;和
根据所述客户端连接请求分配相应的协程以将点播类型的所述流媒体数据中的数据包依次推送给所述客户端。
8.根据权利要求7所述的方法,其特征在于,所述流媒体类型为直播类型时,所述缓存服务器与对应的所述推流端断开连接时,断开所述缓存服务器与对应的所述客户端的连接并对应清除所述缓存服务器中缓存的所述流媒体数据。
9.一种缓存服务器,其特征在于,包括:
缓存模块,所述缓存模块用于接收流媒体数据并按缓存字典在所述缓存服务器对所述流媒体数据进行缓存;
确定模块,所述确定模块用于建立客户端与所述缓存服务器之间的连接并确定与所述客户端对应的目标流媒体数据,所述客户端包括插件端和订阅端;和
推送模块,所述推送模块用于将所述目标流媒体数据推送至所述客户端。
10.一种电子设备,其特征在于,包括处理器和存储器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时实现权利要求1-8任一项所述的方法。
11.一种非易失性计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,当所述计算机程序被一个或多个处理器执行时,实现权利要求1-8中任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011188308.5A CN114465989A (zh) | 2020-10-30 | 2020-10-30 | 流媒体数据处理方法、服务器、电子设备和可读存储介质 |
US17/404,486 US11621987B2 (en) | 2020-10-30 | 2021-08-17 | Method for processing streaming media data |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011188308.5A CN114465989A (zh) | 2020-10-30 | 2020-10-30 | 流媒体数据处理方法、服务器、电子设备和可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114465989A true CN114465989A (zh) | 2022-05-10 |
Family
ID=81379487
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011188308.5A Pending CN114465989A (zh) | 2020-10-30 | 2020-10-30 | 流媒体数据处理方法、服务器、电子设备和可读存储介质 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11621987B2 (zh) |
CN (1) | CN114465989A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115314738A (zh) * | 2022-08-15 | 2022-11-08 | 城云科技(中国)有限公司 | 对hook的数据添加标签处理拉流的方法及装置 |
CN117251307A (zh) * | 2023-11-10 | 2023-12-19 | 本溪钢铁(集团)信息自动化有限责任公司 | 一种事件订阅发布方法、装置、设备及介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101917590A (zh) * | 2009-12-17 | 2010-12-15 | 新奥特(北京)视频技术有限公司 | 一种具有回放功能的网络直播系统及一种播放器 |
CN101924778A (zh) * | 2009-06-10 | 2010-12-22 | 中国移动通信集团公司 | P2p流媒体系统、p2p用户设备及流媒体数据传送方法 |
CN101945100A (zh) * | 2010-07-30 | 2011-01-12 | 中山大学 | 一种数字家庭流媒体服务器及服务方法 |
US20130262691A1 (en) * | 2012-03-28 | 2013-10-03 | Rovi Corp | System and Methods of Media Streaming using RTSP with Reduced Delays |
CN108881944A (zh) * | 2018-06-14 | 2018-11-23 | 贵州大学 | 一种流媒体加速发布方法与系统 |
CN110971986A (zh) * | 2018-09-29 | 2020-04-07 | 杭州阿启视科技有限公司 | 云视频交换系统 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7421437B2 (en) * | 2003-11-10 | 2008-09-02 | Sap Ag | System and method for a data dictionary cache in a distributed system |
US9369516B2 (en) * | 2009-01-13 | 2016-06-14 | Viasat, Inc. | Deltacasting |
CN104081739B (zh) * | 2011-12-23 | 2018-03-02 | 阿卡麦科技公司 | 在覆盖网络中利用压缩和差异化引擎的基于主机/路径的数据差异化装置和系统 |
BR112014004057A2 (pt) * | 2012-07-02 | 2017-03-07 | Sony Corp | dispositivo e método de transmissão, e, aparelho de rede |
US20140173018A1 (en) * | 2012-12-13 | 2014-06-19 | Futurewei Technologies, Inc. | Content Based Traffic Engineering in Software Defined Information Centric Networks |
US20160125029A1 (en) * | 2014-10-31 | 2016-05-05 | InsightSoftware.com International | Intelligent caching for enterprise resource planning reporting |
-
2020
- 2020-10-30 CN CN202011188308.5A patent/CN114465989A/zh active Pending
-
2021
- 2021-08-17 US US17/404,486 patent/US11621987B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101924778A (zh) * | 2009-06-10 | 2010-12-22 | 中国移动通信集团公司 | P2p流媒体系统、p2p用户设备及流媒体数据传送方法 |
CN101917590A (zh) * | 2009-12-17 | 2010-12-15 | 新奥特(北京)视频技术有限公司 | 一种具有回放功能的网络直播系统及一种播放器 |
CN101945100A (zh) * | 2010-07-30 | 2011-01-12 | 中山大学 | 一种数字家庭流媒体服务器及服务方法 |
US20130262691A1 (en) * | 2012-03-28 | 2013-10-03 | Rovi Corp | System and Methods of Media Streaming using RTSP with Reduced Delays |
CN108881944A (zh) * | 2018-06-14 | 2018-11-23 | 贵州大学 | 一种流媒体加速发布方法与系统 |
CN110971986A (zh) * | 2018-09-29 | 2020-04-07 | 杭州阿启视科技有限公司 | 云视频交换系统 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115314738A (zh) * | 2022-08-15 | 2022-11-08 | 城云科技(中国)有限公司 | 对hook的数据添加标签处理拉流的方法及装置 |
CN115314738B (zh) * | 2022-08-15 | 2024-04-26 | 城云科技(中国)有限公司 | 对hook的数据添加标签处理拉流的方法及装置 |
CN117251307A (zh) * | 2023-11-10 | 2023-12-19 | 本溪钢铁(集团)信息自动化有限责任公司 | 一种事件订阅发布方法、装置、设备及介质 |
CN117251307B (zh) * | 2023-11-10 | 2024-01-26 | 本溪钢铁(集团)信息自动化有限责任公司 | 一种事件订阅发布方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
US11621987B2 (en) | 2023-04-04 |
US20220141272A1 (en) | 2022-05-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8301733B2 (en) | Dynamic chunking for delivery instances | |
US10397293B2 (en) | Dynamic chunking for delivery instances | |
AU2016204919B2 (en) | Intelligent data delivery and storage based on data characteristics | |
US9015275B2 (en) | Partial object distribution in content delivery network | |
US8327013B2 (en) | Dynamic index file creation for media streaming | |
US9621620B2 (en) | Apparatus and method for providing content with a distributed architecture, and system for providing content with the said apparatus | |
WO2019057212A1 (zh) | Cdn节点内服务调度方法、装置、设备及存储介质 | |
US20120005313A1 (en) | Dynamic indexing for ad insertion in media streaming | |
US20140165119A1 (en) | Offline download method, multimedia file download method and system thereof | |
US20110307534A1 (en) | Distributed file system supporting data block dispatching and file processing method thereof | |
JP2020119497A (ja) | ライブストリーミングセグメント化方法、装置及びシステム | |
US20060230170A1 (en) | Streaming media content delivery system and method for delivering streaming content | |
EP2288085A1 (en) | P2p based method, device and system for playing media | |
CN104246737A (zh) | 在内容分发网络中使用视频流的连接池技术的系统和方法 | |
AU2013240558B2 (en) | Dynamic chunking for delivery instances | |
US20100198977A1 (en) | Automatic live stream trees | |
CN114465989A (zh) | 流媒体数据处理方法、服务器、电子设备和可读存储介质 | |
WO2017201980A1 (zh) | 一种视频录制的方法、装置和系统 | |
US9317470B1 (en) | Method and system for incremental cache lookup and insertion | |
US20180357486A1 (en) | System and method for analyzing video frames in a messaging system | |
CN110019359B (zh) | 一种防止缓存击穿的方法、装置及系统 | |
KR100594951B1 (ko) | Ns 카드를 이용한 컨텐츠 전송 방법 | |
WO2014137639A1 (en) | Dynamic chunking for delivery instances |
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 |