一种下载直播流的方法及下载服务器的制造方法

文档序号:9690894阅读:508来源:国知局
一种下载直播流的方法及下载服务器的制造方法
【技术领域】
[0001]本发明涉及互联网的音视频技术,尤指一种下载直播流的方法及下载服务器。
【背景技术】
[0002]实时消息传输协议(Real Time Messaging Protocol,RTMP)是现在主流的直播流协议。随着RTMP被广泛使用,对于直播流的下载需求也随之增加。
[0003]当前的应用和视频网站均只能下载已经录制好的音视频文件,不支持直播音视频的下载功能,用户仅能使用录屏或录音软件进行录制。

【发明内容】

[0004]为了解决上述技术问题,本发明提供了一种下载直播流的方法及下载服务器,能够支持音视频直播流下载且支持多个频道同时下载。
[0005]为了达到本发明目的,本发明提供了一种下载直播流的方法,包括:
[0006]主线程接收直播流下载请求,向下载任务分配线程维护的任务列表中添加直播流下载任务;
[0007]所述下载任务分配线程在发现所述任务列表中存在直播流下载任务时,从所述任务列表中取出直播流下载任务,查看所维护的空闲线程列表中是否存在空闲的下载线程,如果存在空闲的下载线程,则分配空闲的下载线程处理取出的直播流下载任务,由分配的空闲的下载线程执行直播流下载任务进行直播流的下载。
[0008]进一步地,所述方法还包括:
[0009]所述下载任务分配线程在所述空闲线程列表中不存在空闲的下载线程时,判断当前下载线程的总数量是否达到线程数量阈值,如果未达到,则创建下载线程处理取出的直播流下载任务。
[0010]进一步地,所述方法还包括:
[0011]所述下载任务分配线程如果判断当前下载线程的总数量达到所述线程数量阈值,则将取出的下载任务加入等待队列,等待有直播流下载任务完成后,分配空闲的下载线程进行处理。
[0012]进一步地,所述下载任务分配线程在初始阶段不存在直播流下载任务的情况下,并不创建下载线程,在存在直播流下载任务且无下载线程的情况下,才创建下载线程。
[0013]进一步地,所述分配空闲的下载线程处理取出的直播流下载任务,包括:
[0014]所述下载任务分配线程分配一个下载线程处理一个直播流下载任务。
[0015]进一步地,一种下载服务器,包括:下载任务创建单元和下载任务分配单元,其中:
[0016]所述下载任务创建单元,用于控制主线程接收直播流下载请求,向下载任务分配线程维护的任务列表中添加直播流下载任务;
[0017]所述下载任务分配单元,用于控制所述下载任务分配线程在发现所述任务列表中存在直播流下载任务时,从所述任务列表中取出直播流下载任务,查看所维护的空闲线程列表中是否存在空闲的下载线程,如果存在空闲的下载线程,则分配空闲的下载线程处理取出的直播流下载任务,由分配的空闲的下载线程执行直播流下载任务进行直播流的下载。
[0018]进一步地,所述下载任务分配单元,还用于控制所述下载任务分配线程在所述空闲线程列表中不存在空闲的下载线程时,判断当前下载线程的总数量是否达到线程数量阈值,如果未达到,则创建下载线程处理取出的直播流下载任务。
[0019]进一步地,所述下载任务分配单元,还用于控制所述下载任务分配线程在判断当前下载线程的总数量达到所述线程数量阈值时,将取出的下载任务加入等待队列,等待有直播流下载任务完成后,分配空闲的下载线程进行处理。
[0020]进一步地,所述下载任务分配单元,还用于控制所述下载任务分配线程在初始阶段不存在直播流下载任务的情况下,不创建下载线程,在存在直播流下载任务且无下载线程的情况下,才创建下载线程。
[0021]进一步地,所述下载任务分配单元控制所述下载任务分配线程分配空闲的下载线程处理取出的直播流下载任务,包括:
[0022]控制所述下载任务分配线程分配一个下载线程处理一个直播流下载任务。
[0023]与现有技术相比,本发明包括主线程接收直播流下载请求,向下载任务分配线程维护的任务列表中添加直播流下载任务;下载任务分配线程在发现任务列表中存在直播流下载任务时,从任务列表中取出直播流下载任务,查看所维护的空闲线程列表中是否存在空闲的下载线程,如果存在空闲的下载线程,则分配空闲的下载线程处理取出的直播流下载任务,由分配的空闲的下载线程执行直播流下载任务进行直播流的下载。本发明能够满足用户对直播流的下载需求,并且可以同时下载多个直播音视频。
[0024]本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
【附图说明】
[0025]附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。
[0026]图1为本发明的下载直播流的方法的流程图;
[0027]图2为本发明的下载直播流的服务器的架构图。
【具体实施方式】
[0028]为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
[0029]在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
[0030]如图1所示,本发明的下载直播流的方法,包括:
[0031]步骤101:主线程接收直播流下载请求,向下载任务分配线程维护的任务列表中添加直播流下载任务;
[0032]主线程主要是接收下载请求及处理下载完成后的操作。
[0033]步骤102:下载任务分配线程在发现任务列表中存在直播流下载任务时,从任务列表中取出直播流下载任务,查看所维护的空闲线程列表中是否存在空闲的下载线程,如果存在空闲的下载线程,则分配空闲的下载线程处理取出的直播流下载任务,由分配的空闲的下载线程执行直播流下载任务进行直播流的下载。
[0034]下载任务分配线程维护一个任务列表和一个空闲线程列表。
[0035]主线程会向任务列表中添加直播流下载任务,当下载任务分配线程发现有直播流下载任务时,从任务列表中取出下载任务,并查看空闲线程列表中是否有空闲的下载线程,如果有空闲的下载线程,则取出一个空闲的下载线程用于处理直播流下载任务。分配的下载线程执行直播流下载任务完成直播流的下载。
[0036]下载线程是指用于处理直播流下载任务的线程,该类线程可以有多个。
[0037]进一步,下载任务分配线程在查看到空闲线程列表中没有空闲的下载线程时,判断当前下载线程的总数量是否达到线程数量阈值,如果未达到,则创建下载线程处理取出的直播流下载任务。
[0038]进一步,下载任务分配线程如果判断当前下载线程的总数量达到线程数量阈值,则将取出的下载任务加入等待队列,等待有直播流下载任务完成后,分配空闲的下载线程进行处理。
[0039]下载任务分配线程在查看到空闲线程列表中不存在空闲的下载线程,并且判断当前下载线程的总数量达到限定的线程数量阈值时,则需要等待其它下载任务完成,等待空闲的下载线程处理该任务。
[0040]进一步,下载任务分配线程在初始阶段不存在直播流下载任务的情况下,并不创建下载线程,在存在直播流下载任务,并且无下载线程的情况下,才创建下载线程。
[0041]下载线程并不是在服务器一启动的初始阶段就创建多个,而是在有下载任务后才由下载任务分配线程创建。
[0042]下载线程的数量限制与服务器硬件相关,可根据服务器硬件进行配置。
[0043]下载线程的创建规则如下:
[0044]1)服务器启动后,无下载任务,下载线程
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1