CN109814996B - 流媒体传输控制方法、装置及存储介质、计算机设备 - Google Patents
流媒体传输控制方法、装置及存储介质、计算机设备 Download PDFInfo
- Publication number
- CN109814996B CN109814996B CN201910008767.1A CN201910008767A CN109814996B CN 109814996 B CN109814996 B CN 109814996B CN 201910008767 A CN201910008767 A CN 201910008767A CN 109814996 B CN109814996 B CN 109814996B
- Authority
- CN
- China
- Prior art keywords
- streaming media
- media transmission
- threads
- thread
- task
- 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.)
- Active
Links
- 230000005540 biological transmission Effects 0.000 title claims abstract description 146
- 238000000034 method Methods 0.000 title claims abstract description 75
- 238000012544 monitoring process Methods 0.000 claims abstract description 85
- 230000008569 process Effects 0.000 claims abstract description 36
- 230000015654 memory Effects 0.000 claims description 35
- 230000003993 interaction Effects 0.000 claims description 9
- 238000004590 computer program Methods 0.000 claims description 6
- 230000006870 function Effects 0.000 description 7
- 230000006978 adaptation Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明提供一种流媒体传输控制方法、装置及存储介质、计算机设备,所述方法包括:创建多个监听端口,所述监听端口用于监听客户端发送的流媒体传输请求;创建主任务线程和多个子任务线程;所述主任务线程用于控制系统流媒体传输,所述子任务线程用于控制每个客户端的流媒体传输;当所述主任务线程通过所述监听端口监听到客户端发送的流媒体传输请求时,控制所述子任务线程处理该监听端口对应的流媒体传输。上述方法提高了流媒体传输的处理器的利用效率且提高并发量较大传输领域的性能。
Description
技术领域
本发明涉及流媒体传输技术领域,具体而言,本发明涉及一种流媒体传输控制方法、装置及存储介质、计算机设备。
背景技术
随着互联网的普及,利用网络传输音频流和视频流等流媒体越来越广泛。例如,广播电视媒体,采用互联网实现流媒体的传输,大大提高了音频和视频流的传输速度。流媒体技术的出现,实现了实时音频和视频流的快速传输。
流媒体,又叫流式媒体,属于多媒体的其中一种。具体指的是,用户一边传,另一用户一边播的媒体。用户一边不断地接收并观看或收听被传输的媒体。传统地,使用live555作为流媒体传输方案时,任务的调度是使用查询机制,CPU使用率低,这样在调度任务密集,传输实时性要求比较高,视频传输领域明显处于劣势,并且严重的限制了摄像头接入服务器的路数。
发明内容
本发明提出一种流媒体传输控制方法、装置及存储介质、计算机设备,以提高流媒体传输的处理器的利用效率且提高并发量较大传输领域的性能。
本发明提供以下方案:
一种流媒体传输控制方法,包括:创建多个监听端口,所述监听端口用于监听客户端发送的流媒体传输请求;创建主任务线程和多个子任务线程;所述主任务线程用于控制系统流媒体传输,所述子任务线程用于控制每个客户端的流媒体传输;当所述主任务线程通过所述监听端口监听到客户端发送的流媒体传输请求时,控制所述子任务线程处理该监听端口对应的流媒体传输。
在一实施例中,所述创建多个监听端口,包括:获取历史数据中同一时间段内,接收到所述流媒体传输请求的数量,根据该数量设置预设数量的所述监听端口。
在一实施例中,所述创建主任务线程和多个子任务线程,包括:在live555的流媒体服务器基类GenericMediaServer初始化时,根据多个所述子任务线程的调度情况实例化live555的BasicUsageEnvironment和BasicTaskScheduler,以由所述主任务线程对多个所述子任务线程进行任务调度;所述当所述主任务线程通过所述监听端口监听到客户端发送的流媒体传输请求时,控制所述子任务线程处理该监听端口对应的流媒体传输,包括:当所述主任务线程通过任一监听端口监听到客户端发送的实时流协议RTSP的相关请求时,所述主任务线程移除线程中的所述任一监听端口,控制所述子任务线程接管所述任一监听端口的操作。
在一实施例中,所述当所述主任务线程通过所述监听端口监听到客户端发送的流媒体传输请求时,控制所述子任务线程处理该监听端口对应的流媒体传输,包括:当所述主任务线程通过所述监听端口监听到客户端发送的流媒体传输请求时,判断多个所述子任务线程中是否存在空闲任务线程;若有,从所述空闲任务线程中随机获取任一任务线程,控制该任务线程处理该监听端口对应的流媒体传输;若无,则将该客户端发送的流媒体传输请求设置为等待处理状态。
在一实施例中,所述判断多个所述子任务线程中是否存在空闲任务线程之前,还包括:对所述子任务线程中的空闲任务线程设置标识信息;所述判断多个所述子任务线程中是否存在空闲任务线程,包括:通过识别所述标识信息判断多个所述子任务线程中是否存在空闲任务线程;所述从所述空闲任务线程中随机获取任一任务线程,控制该任务线程处理该监听端口对应的流媒体传输,包括:获取任一包含所述标识信息的任务线程,控制该任务线程处理该监听端口对应的流媒体传输。
在一实施例中,所述获取任一包含所述标识信息的任务线程以处理该监听端口对应的流媒体传输之后,还包括:解除该任一包含所述标识信息的任务线程的标识信息;当该任一包含所述标识信息的任务线程终止处理流媒体传输的相关操作之后,释放该任务线程的任务,并对该任务线程设置所述标识信息。
在一实施例中,所述客户端发送的流媒体传输请求包括上传流媒体数据的请求和下载流媒体数据的请求;所述当所述主任务线程通过所述监听端口监听到客户端发送的流媒体传输请求时,判断多个所述子任务线程中是否存在空闲任务线程;若有,从所述空闲任务线程中随机获取任一任务线程,控制该任务线程处理该监听端口对应的流媒体传输,包括:当所述主任务线程通过所述监听端口监听到客户端发送的下载流媒体数据的请求时,判断多个所述子任务线程中是否存在空闲任务线程,若有,从所述空闲任务线程中随机获取任一任务线程,利用该任务线程执行判断所述子任务线程中非空闲任务线程中是否包含有处理与所述下载流媒体数据的请求对应的上传流媒体数据的请求的任务线程;若无,利用该任务线程向客户端发送无响应数据的反馈信息,并对所述下载流媒体数据的请求进行该请求无响应数据的标注,以用于根据该标注识别出所述下载流媒体数据的请求无响应数据。
一种流媒体传输控制装置,包括:第一创建模块,用于创建多个监听端口,所述监听端口用于监听客户端发送的流媒体传输请求;第二创建模块,用于创建主任务线程和多个子任务线程;所述主任务线程用于控制系统流媒体传输,所述子任务线程用于控制每个客户端的流媒体传输;处理模块,用于当所述主任务线程通过所述监听端口监听到客户端发送的流媒体传输请求时,控制所述子任务线程处理该监听端口对应的流媒体传输。
一种存储介质,其上存储有计算机程序;所述计算机程序适于由处理器加载并执行上述任一实施例所述的流媒体传输控制方法。
一种计算机设备,其包括:一个或多个处理器;存储器;一个或多个应用程序,其中所述一个或多个应用程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个应用程序配置用于执行根据上述任一实施例所述的流媒体传输控制方法。
上述实施例提供的流媒体传输控制方法,创建多个子任务线程用于单独处理每个客户端与流媒体服务器之间关于流媒体传输的数据交互。在主任务线程监听到客户端发起的流媒体传输的请求时,主任务线程调度对应子任务线程处理该请求对应的流媒体传输任务,解决了现有技术中采用单线程处理流媒体传输造成的CPU(处理器)使用率低,调度任务密集,不利于传输实时性要求比较高的传输领域,并且严重的限制了客户端接入服务器的数量等问题。因此,可大大提高流媒体传输的CPU的利用效率,同时也提高了并发量较大传输领域的性能。
本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为本发明提供的一种流媒体传输控制方法的一实施例中的方法流程图;
图2为本发明提供的步骤S300的一实施例的方法流程图;
图3为本发明提供的一种流媒体传输控制装置的一实施例中的结构框图;
图4为本发明提供的一种计算机设备的一实施例中的结构示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式,这里使用的“第一”、“第二”仅用于区别同一技术特征,并不对该技术特征的顺序和数量等加以限定。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
本发明提供一种流媒体传输控制方法。在一实施例中,如图1所示,该流媒体传输控制方法包括如下步骤:
S100,创建多个监听端口,所述监听端口用于监听客户端发送的流媒体传输请求。
在本实施例中,系统在建立流媒体服务器时,创建多个监听端口。该监听端口用于监听系统是否接收到客户端发送的流媒体传输请求。当客户端向系统的流媒体服务器发送流媒体传输请求时,如上传流媒体数据请求或下载流媒体数据请求,系统通过监听端口即可监听到客户端发送的请求。在一具体实施方式中,在流媒体服务器的基类GenericMediaServer初始化时,创建多个socket监听端口。
在一实施例中,步骤S100包括:获取历史数据中同一时间段内,接收到所述流媒体传输请求的数量,根据该数量设置预设数量的所述监听端口。
在该实施例中,所述监听端口为套接字socket监听端口。系统在创建监听端口时,可直接由系统预设监听端口的数量。也可以是,获取历史数据中同一时间段,如一天时间内,接收到客户端发送的请求流媒体传输的数量,获取所述同一时间段内所述数量的最大值,将该最大值作为所述设置的预设数量。系统创建所述预设数量的监听端口,以监听客户端向流媒体服务器发送的请求。
在一实施方式中,监听端口的数量通过以下方式确定:系统获取历史数据中同一时间段内接收到流媒体传输请求的数量,根据该数量确定监听端口的数量。其中,不同的时间段内系统接收到流媒体传输请求的数量有可能不同。如早上时间段、中午时间段以及晚上时间段,用户在不同时间段向系统请求流媒体传输的数量不同。系统获取历史数据中,当前时间段内接收到流媒体传输请求的数量,根据此数量确定创建的监听端口的数量。一般地,监听端口的数量大于或者等于接收到的流媒体传输请求的数量,以保证系统能够快速确定每个所述请求,并对请求进行处理。
S200,创建主任务线程和多个子任务线程;所述主任务线程用于控制系统流媒体传输,所述子任务线程用于控制每个客户端的流媒体传输。
在本实施例中,系统创建多个任务线程。其中,包括主任务线程和多个子任务线程。主任务线程用于执行整个流媒体服务器对于流媒体传输的控制。例如,当监听到客户端发送的下载流媒体数据的请求时,将对应客户端上传的经过流式传输处理的流媒体数据下发给对应的客户端。或者,通过使用查询机制对任务进行调度等。子任务线程用于单独处理监听端口对应的客户端与流媒体服务器之间的流媒体传输。在该实施例中,每个子任务线程对应独立处理一个客户端和服务器之间的数据交互。子任务线程接收主任务线程的调控信息,并执行调控信息对应的任务。
S300,当所述主任务线程通过所述监听端口监听到客户端发送的流媒体传输请求时,控制所述子任务线程处理该监听端口对应的流媒体传输。
在本实施例中,当主任务线程通过监听端口监听到客户端发送的流媒体传输请求时,控制子任务线程处理该监听端口对应的流媒体传输。例如,主任务线程监听到客户端向流媒体服务器发送的下载流媒体数据时,主任务线程调度其中一个子任务线程,执行该客户端与流媒体服务器的关于下载流媒体数据的完整的流程。
上述流媒体传输控制方法,创建多个子任务线程用于单独处理每个客户端与流媒体服务器之间关于流媒体传输的数据交互,在主任务线程监听到客户端发起的流媒体传输的请求时,主任务线程调度对应子任务线程处理该请求对应的流媒体传输任务,解决了现有技术中采用单线程处理流媒体传输造成的CPU(处理器)使用率低,调度任务密集,不利于传输实时性要求比较高的传输领域,并且严重的限制了客户端接入服务器的数量等问题。因此,可大大提高流媒体传输的CPU的利用效率,在也提高了并发量较大传输领域的性能。
在一实施例中,步骤S200包括:在live555的流媒体服务器基类GenericMediaServer初始化时,根据多个所述子任务线程的调度情况实例化live555的BasicUsageEnvironment和BasicTaskScheduler,以由所述主任务线程对多个所述子任务线程进行任务调度。此时,步骤S300包括:当所述主任务线程通过任一监听端口监听到客户端发送的实时流协议RTSP的相关请求时,所述主任务线程移除线程中的所述任一监听端口,控制所述子任务线程接管所述任一监听端口的操作。
在该实施例中,采用live555开源项目对流媒体传输进行控制。在其对应的流媒体服务器的基类GenericMediaServer初始化时,对BasicUsageEnvironment和BasicTaskScheduler进行实例化,如下所示:
threadTask[temp].SubScheduler=BasicTaskScheduler::createNew();
threadTask[temp].SubEnv=BasicUsageEnvironment::createNew(*threadTask[temp].SubScheduler,temp+1);
UsageEvironment类和TaskSheduler类以及他们的子类实例化后,系统构建了一个基本的应用框架。主任务线程可以对多个子任务线程进行相应的任务调度。其中,任务调度为对流媒体传输的任务调度。
具体地,在基类GenericMediaServer初始化的时候,系统创建多个socket监听端口,并且创建任务线程数以及主任务线程和子任务线程。在每一个子任务线程中独立处理每个客户端和流媒体服务器之间的数据交互,如RTSP握手协议,RTP或者PS流的数据处理。因此。系统增加了单独处理客户端和流媒体服务器之间数据交互的甬道的数量,对每个甬道进行独立的任务调度,也即是BasicUsageEnvironment和BasicTaskScheduler实例化。
在该实施例的一个实施方式中,如图2所示,步骤S300,包括:
S310,当所述主任务线程通过所述监听端口监听到客户端发送的流媒体传输请求时,判断多个所述子任务线程中是否存在空闲任务线程。
S320,若有,从所述空闲任务线程中随机获取任一任务线程,控制该任务线程处理该监听端口对应的流媒体传输。
S330,若无,则将该客户端发送的流媒体传输请求设置为等待处理状态。
在该实施例中,主任务线程监听到端口接收到相关数据,即接收到客户端发送的流媒体数据请求数据时,查询空闲的子任务线程,将客户端关联到空闲的子任务线程,然后在主任务进程中移除监听端口,并由子任务线程接管该监听端口相关的操作。
在一具体实施例中,客户端的DESCRIBE请求进到流媒体服务器后,服务器会调用函数handleCmd_DESCRIBE,在此函数中主要是在RTSPServer中查找对应的ServerMediaSession,然后调用函数lookupServerMediaSession;
ServerMediaSession*session=fOurServer.lookupServerMediaSession(
PaEnv,this,urlTotalSuffix);
此处的PaEnv是在初始化上述GenericMediaServer类时传进来;lookupServerMediaSession函数的主要任务是判断是否存在空闲的子任务线程,如果不存在则返上一级,从map表fClientConnections查询,如果没有则返回失败。如果有,则建立获取客户端数据流的通道,回应客户端,返回200ok;后续在这个函数中完成整个rtsp协议的交互。
在该实施例的一个实施方式中,步骤S310中,所述判断多个所述子任务线程中是否存在空闲任务线程之前,还包括:对所述子任务线程中的空闲任务线程设置标识信息。所述判断多个所述子任务线程中是否存在空闲任务线程,包括:通过识别所述标识信息判断多个所述子任务线程中是否存在空闲任务线程。此时,步骤S320包括:获取任一包含所述标识信息的任务线程,控制该任务线程处理该监听端口对应的流媒体传输。
在该实施方式中,对多个所述子任务线程中空闲的任务线程设置标识信息,服务器只需识别到多个所述子任务线程中是否包含标识信息,即可获知多个所述子任务线程中是否包含有空闲的任务线程,无需对每个子任务线程内是否执行有相应的任务进行细节判断,以避免服务器过压以及增加处理器的工作量。因此,服务器可通过获取任一包含标识信息的任务线程,确定该任务线程为空闲线程,控制该任务线程处理该监听端口对应的流媒体传输。
进一步地,所述获取任一包含所述标识信息的任务线程以处理该监听端口对应的流媒体传输之后,还包括:解除该任一包含所述标识信息的任务线程的标识信息;当该任一包含所述标识信息的任务线程终止处理流媒体传输的相关操作之后,释放该任务线程的任务,并对该任务线程设置所述标识信息。具体地,流媒体服务器可在包含有标识信息的子任务线程中获取任一子任务线程处理流媒体传输的相关操作。当子任务线程处理完对应的流媒体传输的相关操作之后,或者,当子任务线程结束对应的流媒体传输的相关操作之后,将该子任务线程重新设置上标识信息。因此,可以对子任务线程进行反复的重复利用,提高CPU的利用效率,提高多路流媒体处理性能高。
在该实施方式的一个实施例中,所述客户端发送的流媒体传输请求包括上传流媒体数据的请求和下载流媒体数据的请求。所述当所述主任务线程通过所述监听端口监听到客户端发送的流媒体传输请求时,判断多个所述子任务线程中是否存在空闲任务线程;若有,从所述空闲任务线程中随机获取任一任务线程,控制该任务线程处理该监听端口对应的流媒体传输,包括:当所述主任务线程通过所述监听端口监听到客户端发送的下载流媒体数据的请求时,判断多个所述子任务线程中是否存在空闲任务线程,若有,从所述空闲任务线程中随机获取任一任务线程,利用该任务线程执行判断所述子任务线程中非空闲任务线程中是否包含有处理与所述下载流媒体数据的请求对应的上传流媒体数据的请求的任务线程;若无,利用该任务线程向客户端发送无响应数据的反馈信息,并对所述下载流媒体数据的请求进行该请求无响应数据的标注,以用于根据该标注识别出所述下载流媒体数据的请求无响应数据。
在该实施例中,流媒体服务器在监听到端口接收到客户端发送的请求数据后,判断客户端向服务器发送的是否为下载流媒体数据的请求。若是,则进一步判断子任务线程中是否包含有该下载流媒体数据的请求对应的上传流媒体数据请求处理的子任务线程,若无,则直接向客户端发送无响应数据的反馈信息。进一步地,对该下载流媒体数据的请求进行标注。若流媒体服务器在监听到端口接收到该下载流媒体数据的请求时,可直接向客户端发送无响应数据的反馈信息而无需再次检查是否有对应的子任务处理器该下载流媒体数据的请求对应的上传流媒体数据的请求的子任务线程,减少了处理器的工作量,减轻了服务器的压力。
本发明还提供一种流媒体传输控制装置。在一实施例中,如图3所示,该流媒体传输控制装置包括第一创建模块10、第二创建模块20以及处理模块30。
第一创建模块10用于创建多个监听端口,所述监听端口用于监听客户端发送的流媒体传输请求。在本实施例中,系统在建立流媒体服务器时,创建多个监听端口。该监听端口用于监听系统是否接收到客户端发送的流媒体传输请求。当客户端向系统的流媒体服务器发送流媒体传输请求时,如上传流媒体数据请求或下载流媒体数据请求,系统通过监听端口即可监听到客户端发送的请求。在一具体实施方式中,在流媒体服务器的基类GenericMediaServer初始化时,创建多个socket监听端口。
第二创建模块20用于创建主任务线程和多个子任务线程;所述主任务线程用于控制系统流媒体传输,所述子任务线程用于控制每个客户端的流媒体传输。在本实施例中,系统创建多个任务线程。其中,包括主任务线程和多个子任务线程。主任务线程用于执行整个流媒体服务器对于流媒体传输的控制。例如,当监听到客户端发送的下载流媒体数据的请求时,将对应客户端上传的经过流式传输处理的流媒体数据下发给对应的客户端。或者,通过使用查询机制对任务进行调度等。子任务线程用于单独处理监听端口对应的客户端与流媒体服务器之间的流媒体传输。在该实施例中,每个子任务线程对应独立处理一个客户端和服务器之间的数据交互。子任务线程接收主任务线程的调控信息,并执行调控信息对应的任务。
处理模块30用于当所述主任务线程通过所述监听端口监听到客户端发送的流媒体传输请求时,控制所述子任务线程处理该监听端口对应的流媒体传输。在本实施例中,当主任务线程通过监听端口监听到客户端发送的流媒体传输请求时,控制子任务线程处理该监听端口对应的流媒体传输。例如,主任务线程监听到客户端向流媒体服务器发送的下载流媒体数据时,主任务线程调度其中一个子任务线程,执行该客户端与流媒体服务器的关于下载流媒体数据的完整的流程。
在其他实施例中,本发明提供的流媒体传输控制装置中的各个模块还用于执行本发明所述的流媒体传输控制方法中,对应各个步骤执行的操作,在此不再做详细的说明。
本发明还提供一种存储介质。该存储介质上存储有计算机程序;所述计算机程序被处理器执行时,实现上述任一实施例所述的流媒体传输控制方法。存储介质可以是存储器。例如,内存储器或外存储器,或者包括内存储器和外存储器两者。内存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦写可编程ROM(EEPROM)、快闪存储器、或者随机存储器。外存储器可以包括硬盘、软盘、ZIP盘、U盘、磁带等。本发明所公开的存储介质包括但不限于这些类型的存储器。本发明所公开的存储器只作为例子而非作为限定。
本发明还提供一种计算机设备。一种计算机设备包括:一个或多个处理器;存储器;一个或多个应用程序。其中所述一个或多个应用程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个应用程序配置用于执行上述任一实施例所述的流媒体传输控制方法。
图4为本发明一实施例中的计算机设备的结构示意图。本实施例所述计算机设备可以是服务器、个人计算机以及网络设备。如图4所示,设备包括处理器403、存储器405、输入单元407以及显示单元409等器件。本领域技术人员可以理解,图4示出的设备结构器件并不构成对所有设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件。存储器405可用于存储应用程序401以及各功能模块,处理器403运行存储在存储器405的应用程序401,从而执行设备的各种功能应用以及数据处理。存储器可以是内存储器或外存储器,或者包括内存储器和外存储器两者。内存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦写可编程ROM(EEPROM)、快闪存储器、或者随机存储器。外存储器可以包括硬盘、软盘、ZIP盘、U盘、磁带等。本发明所公开的存储器包括但不限于这些类型的存储器。本发明所公开的存储器只作为例子而非作为限定。
输入单元407用于接收信号的输入,以及接收用户输入的关键字。输入单元407可包括触控面板以及其它输入设备。触控面板可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板上或在触控面板附近的操作),并根据预先设定的程序驱动相应的连接装置;其它输入设备可以包括但不限于物理键盘、功能键(比如播放控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。显示单元409可用于显示用户输入的信息或提供给用户的信息以及计算机设备的各种菜单。显示单元409可采用液晶显示器、有机发光二极管等形式。处理器403是计算机设备的控制中心,利用各种接口和线路连接整个电脑的各个部分,通过运行或执行存储在存储器405内的软件程序和/或模块,以及调用存储在存储器内的数据,执行各种功能和处理数据。
在一实施方式中,设备包括一个或多个处理器403,以及一个或多个存储器405,一个或多个应用程序401。其中所述一个或多个应用程序401被存储在存储器405中并被配置为由所述一个或多个处理器403执行,所述一个或多个应用程序401配置用于执行以上实施例所述的流媒体传输控制方法。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括存储器、磁盘或光盘等。
以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
应该理解的是,在本发明各实施例中的各功能单元可集成在一个处理模块中,也可以各个单元单独物理存在,也可以两个或两个以上单元集成于一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种流媒体传输控制方法,其特征在于,包括:
创建多个监听端口,所述监听端口用于监听客户端发送的流媒体传输请求;
创建主任务线程和多个子任务线程;所述主任务线程用于控制系统流媒体传输,所述子任务线程用于控制每个客户端的流媒体传输,所述每个子任务线程独立处理一个客户端和流媒体服务器之间的数据交互;
当所述主任务线程通过所述监听端口监听到客户端发送的流媒体传输请求时,控制所述子任务线程处理该监听端口对应的流媒体传输。
2.根据权利要求1所述的方法,其特征在于,所述创建多个监听端口,包括:
获取历史数据中同一时间段内,接收到所述流媒体传输请求的数量,根据该数量设置预设数量的所述监听端口。
3.根据权利要求1所述的方法,其特征在于,所述创建主任务线程和多个子任务线程,包括:在live555的流媒体服务器基类GenericMediaServer初始化时,根据多个所述子任务线程的调度情况实例化live555的BasicUsageEnvironment和BasicTaskScheduler,以由所述主任务线程对多个所述子任务线程进行任务调度;
所述当所述主任务线程通过所述监听端口监听到客户端发送的流媒体传输请求时,控制所述子任务线程处理该监听端口对应的流媒体传输,包括:当所述主任务线程通过任一监听端口监听到客户端发送的实时流协议RTSP的相关请求时,所述主任务线程移除线程中的所述任一监听端口,控制所述子任务线程接管所述任一监听端口的操作。
4.根据权利要求3所述的方法,其特征在于,所述当所述主任务线程通过所述监听端口监听到客户端发送的流媒体传输请求时,控制所述子任务线程处理该监听端口对应的流媒体传输,包括:
当所述主任务线程通过所述监听端口监听到客户端发送的流媒体传输请求时,判断多个所述子任务线程中是否存在空闲任务线程;若有,从所述空闲任务线程中随机获取任一任务线程,控制该任务线程处理该监听端口对应的流媒体传输;若无,则将该客户端发送的流媒体传输请求设置为等待处理状态。
5.根据权利要求4所述的方法,其特征在于,所述判断多个所述子任务线程中是否存在空闲任务线程之前,还包括:对所述子任务线程中的空闲任务线程设置标识信息;
所述判断多个所述子任务线程中是否存在空闲任务线程,包括:通过识别所述标识信息判断多个所述子任务线程中是否存在空闲任务线程;
所述从所述空闲任务线程中随机获取任一任务线程,控制该任务线程处理该监听端口对应的流媒体传输,包括:获取任一包含所述标识信息的任务线程,控制该任务线程处理该监听端口对应的流媒体传输。
6.根据权利要求5所述的方法,其特征在于,所述获取任一包含所述标识信息的任务线程以处理该监听端口对应的流媒体传输之后,还包括:
解除该任一包含所述标识信息的任务线程的标识信息;
当该任一包含所述标识信息的任务线程终止处理流媒体传输的相关操作之后,释放该任务线程的任务,并对该任务线程设置所述标识信息。
7.根据权利要求5所述的方法,其特征在于,所述客户端发送的流媒体传输请求包括上传流媒体数据的请求和下载流媒体数据的请求;
所述当所述主任务线程通过所述监听端口监听到客户端发送的流媒体传输请求时,判断多个所述子任务线程中是否存在空闲任务线程;若有,从所述空闲任务线程中随机获取任一任务线程,控制该任务线程处理该监听端口对应的流媒体传输,包括:
当所述主任务线程通过所述监听端口监听到客户端发送的下载流媒体数据的请求时,判断多个所述子任务线程中是否存在空闲任务线程,若有,从所述空闲任务线程中随机获取任一任务线程,利用该任务线程执行判断所述子任务线程中非空闲任务线程中是否包含有处理与所述下载流媒体数据的请求对应的上传流媒体数据的请求的任务线程;若无,利用该任务线程向客户端发送无响应数据的反馈信息,并对所述下载流媒体数据的请求进行该请求无响应数据的标注,以用于根据该标注识别出所述下载流媒体数据的请求无响应数据。
8.一种流媒体传输控制装置,其特征在于,包括:
第一创建模块,用于创建多个监听端口,所述监听端口用于监听客户端发送的流媒体传输请求;
第二创建模块,用于创建主任务线程和多个子任务线程;所述主任务线程用于控制系统流媒体传输,所述子任务线程用于控制每个客户端的流媒体传输,所述每个子任务线程独立处理一个客户端和流媒体服务器之间的数据交互;
处理模块,用于当所述主任务线程通过所述监听端口监听到客户端发送的流媒体传输请求时,控制所述子任务线程处理该监听端口对应的流媒体传输。
9.一种存储介质,其特征在于,其上存储有计算机程序;所述计算机程序适于由处理器加载并执行上述权利要求1至7中任一项所述的流媒体传输控制方法。
10.一种计算机设备,其特征在于,其包括:
一个或多个处理器;
存储器;
一个或多个应用程序,其中所述一个或多个应用程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个应用程序配置用于执行根据权利要求1至7任一项所述的流媒体传输控制方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910008767.1A CN109814996B (zh) | 2019-01-04 | 2019-01-04 | 流媒体传输控制方法、装置及存储介质、计算机设备 |
PCT/CN2019/118155 WO2020140625A1 (zh) | 2019-01-04 | 2019-11-13 | 流媒体传输控制方法、装置及存储介质、计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910008767.1A CN109814996B (zh) | 2019-01-04 | 2019-01-04 | 流媒体传输控制方法、装置及存储介质、计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109814996A CN109814996A (zh) | 2019-05-28 |
CN109814996B true CN109814996B (zh) | 2024-03-22 |
Family
ID=66604028
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910008767.1A Active CN109814996B (zh) | 2019-01-04 | 2019-01-04 | 流媒体传输控制方法、装置及存储介质、计算机设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN109814996B (zh) |
WO (1) | WO2020140625A1 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109814996B (zh) * | 2019-01-04 | 2024-03-22 | 平安科技(深圳)有限公司 | 流媒体传输控制方法、装置及存储介质、计算机设备 |
CN110266665B (zh) * | 2019-05-31 | 2022-08-19 | 平安科技(深圳)有限公司 | 网络块设备的连接方法、装置、设备及可读存储介质 |
CN112351299B (zh) * | 2020-11-05 | 2022-11-04 | 山东亚华电子股份有限公司 | 一种宣教广播方法及设备 |
CN113285931B (zh) * | 2021-05-12 | 2022-10-11 | 阿波罗智联(北京)科技有限公司 | 流媒体的传输方法、流媒体服务器及流媒体系统 |
CN113709420A (zh) * | 2021-08-30 | 2021-11-26 | 远光软件股份有限公司 | 流媒体数据的传输方法、装置、存储介质及电子设备 |
CN113992637B (zh) * | 2021-09-10 | 2024-04-09 | 广州极飞科技股份有限公司 | 音视频数据接收方法、装置、设备、系统和存储介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002041308A (ja) * | 2000-04-26 | 2002-02-08 | Texas Instr Inc <Ti> | マルチプロセッサ・オブジェクト制御 |
CN106331616A (zh) * | 2016-08-23 | 2017-01-11 | 武汉烽火众智数字技术有限责任公司 | 一种基于异构环境的海量视频结构化分析系统及方法 |
CN106484882A (zh) * | 2016-10-14 | 2017-03-08 | 腾讯科技(深圳)有限公司 | 一种数据库连接池的管理方法和装置 |
CN106850698A (zh) * | 2017-04-06 | 2017-06-13 | 广东浪潮大数据研究有限公司 | 一种用户态rpc协议多线程优化方法和系统 |
CN107396049A (zh) * | 2017-07-28 | 2017-11-24 | 武汉烽火众智数字技术有限责任公司 | 一种兼容多协议的设备接入系统及其方法 |
CN107612892A (zh) * | 2017-08-31 | 2018-01-19 | 北京鹏润鸿途科技股份有限公司 | 基于流媒体的数据处理方法、装置、系统和电子设备 |
CN108228338A (zh) * | 2016-12-22 | 2018-06-29 | 北京视联动力国际信息技术有限公司 | 一种视联网资源管理方法和系统 |
CN108270732A (zh) * | 2016-12-30 | 2018-07-10 | 北京视联动力国际信息技术有限公司 | 一种流媒体处理方法及系统 |
CN108702486A (zh) * | 2017-09-20 | 2018-10-23 | 深圳市海能通信股份有限公司 | 一种低延时音视频传输方法、装置及计算机可读存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4654407B2 (ja) * | 2000-04-08 | 2011-03-23 | オラクル・アメリカ・インコーポレイテッド | サーバ・ソケットで受け取ったイベントを扱うための方法および装置 |
CN107155015A (zh) * | 2017-05-16 | 2017-09-12 | 苏州云屏网络科技有限公司 | 一种应用于led屏播放同异步节目的适配方法 |
CN109814996B (zh) * | 2019-01-04 | 2024-03-22 | 平安科技(深圳)有限公司 | 流媒体传输控制方法、装置及存储介质、计算机设备 |
-
2019
- 2019-01-04 CN CN201910008767.1A patent/CN109814996B/zh active Active
- 2019-11-13 WO PCT/CN2019/118155 patent/WO2020140625A1/zh active Application Filing
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002041308A (ja) * | 2000-04-26 | 2002-02-08 | Texas Instr Inc <Ti> | マルチプロセッサ・オブジェクト制御 |
CN106331616A (zh) * | 2016-08-23 | 2017-01-11 | 武汉烽火众智数字技术有限责任公司 | 一种基于异构环境的海量视频结构化分析系统及方法 |
CN106484882A (zh) * | 2016-10-14 | 2017-03-08 | 腾讯科技(深圳)有限公司 | 一种数据库连接池的管理方法和装置 |
CN108228338A (zh) * | 2016-12-22 | 2018-06-29 | 北京视联动力国际信息技术有限公司 | 一种视联网资源管理方法和系统 |
CN108270732A (zh) * | 2016-12-30 | 2018-07-10 | 北京视联动力国际信息技术有限公司 | 一种流媒体处理方法及系统 |
CN106850698A (zh) * | 2017-04-06 | 2017-06-13 | 广东浪潮大数据研究有限公司 | 一种用户态rpc协议多线程优化方法和系统 |
CN107396049A (zh) * | 2017-07-28 | 2017-11-24 | 武汉烽火众智数字技术有限责任公司 | 一种兼容多协议的设备接入系统及其方法 |
CN107612892A (zh) * | 2017-08-31 | 2018-01-19 | 北京鹏润鸿途科技股份有限公司 | 基于流媒体的数据处理方法、装置、系统和电子设备 |
CN108702486A (zh) * | 2017-09-20 | 2018-10-23 | 深圳市海能通信股份有限公司 | 一种低延时音视频传输方法、装置及计算机可读存储介质 |
Non-Patent Citations (1)
Title |
---|
基于SIP、RTP/RTCP和RTSP协议的视频监控系统;褚典;江春华;郝宗波;江维;;计算机与现代化;20131115(第11期);第139-142页 * |
Also Published As
Publication number | Publication date |
---|---|
CN109814996A (zh) | 2019-05-28 |
WO2020140625A1 (zh) | 2020-07-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109814996B (zh) | 流媒体传输控制方法、装置及存储介质、计算机设备 | |
US10542496B2 (en) | Background transfer service for applications on mobile devices | |
US9626217B2 (en) | Information processing apparatus, information processing method, recording medium and information processing system | |
US10180947B2 (en) | File-agnostic data downloading in a virtual file system for cloud-based shared content | |
US10425349B2 (en) | Idle worker-process page-out | |
US8295963B2 (en) | Methods for performing data management for a recipe-and-component control module | |
US20010029548A1 (en) | Method and apparatus for handling events received at a server socket | |
WO2020140614A1 (zh) | 离线消息分发方法、服务器及存储介质 | |
EP1706820A2 (en) | Resource management in a multi-processor system | |
JP2018532201A (ja) | メッセージデータを転送するためのシステム及び方法 | |
US20120254215A1 (en) | Distributed file system, data selection method thereof, and program | |
CN107682391B (zh) | 电子装置、服务器分配控制方法和计算机可读存储介质 | |
KR20110083084A (ko) | 가상화를 이용한 서버 운영 장치 및 방법 | |
US9479804B2 (en) | Digital video recorder program to mobile device | |
US20140068008A1 (en) | Method and system for flow controlling | |
US10990385B1 (en) | Streaming configuration management | |
WO2018127013A1 (zh) | 一种流数据的并发传输方法和装置 | |
US9137276B2 (en) | Managing message distribution in a networked environment | |
CN113094165A (zh) | 一种提升云端加载应用程序速度的方法 | |
RU2679546C2 (ru) | Устройство и способ прогона множества потоков | |
WO2021233360A1 (zh) | 监控视频的处理方法、装置、设备及存储介质 | |
US20140139533A1 (en) | Graphic processing unit virtual apparatus, graphic processing unit host apparatus, and graphic processing unit program processing methods thereof | |
CN110990213A (zh) | 一种集群环境用户日志实时监控方法及装置 | |
US20220283867A1 (en) | Management of a scalable pool of workstation instances | |
US10185577B2 (en) | Run-time adaption of external properties controlling operation of applications |
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 |