本发明涉及数据处理领域,尤其涉及一种媒体流的转发方法和转发装置。
背景技术:
1、在测试或实际转发媒体流时,经常会遇见将获取到的一路媒体流转发到多个目的地服务器的情况(简称一路转多路),但是实际的摄像头为保证视频流的低延时及摄像头端不必要的资源消耗,往往对从摄像头处拉流的客户端有拉流路数限制,这就导致不满足一路转多路的业务需求。
技术实现思路
1、本发明提供了一种媒体流的转发方法和转发装置,以解决相关技术中的不足。
2、根据本发明实施例的第一方面,提供一种媒体流的转发方法,所述方法包括:
3、获取参数信息,所述参数信息包括待转发媒体流的拉流地址,以及所述待转发媒体流的并发数量和推流地址;
4、从所述拉流地址获取待转发数据并发送至第一缓存通道;
5、根据所述并发数量创建多个推流线程,并为每个推流线程配置推流地址;
6、响应于检测到所述第一缓存通道中存在待转发数据,获取所述第一缓存通道中的待转发数据并分别推送至各推流线程,使所述推流线程向对应的推流地址推送所述待转发数据。
7、在一些实施例中,所述从所述拉流地址获取待转发数据并发送至第一缓存通道,包括:
8、获取所述待转发媒体流的标识符与拉流句柄间的第一关联关系,所述第一关联关系是在首次获取到所述拉流地址的情况下创建的,所述拉流句柄用于标识从所述拉流地址获取待转发数据的拉流线程,所述标识符用于标识所述拉流地址处的待转发媒体流;
9、根据所述第一关联关系,调用与所述拉流句柄对应的拉流线程,从所述拉流地址获取待转发数据,并将所述待转发数据发送至与所述待转发媒体流的标识符对应的缓存队列,所述缓存队列是在首次获取到所述拉流地址的情况下,根据所述待转发媒体流的标识符在第一缓存通道中创建的。
10、在一些实施例中,所述方法还包括:
11、在检测到所述拉流地址被删除的情况下,根据所述第一关联关系获取与所述待转发媒体流的标识符对应的拉流句柄;
12、销毁与所述拉流句柄对应的拉流线程;
13、销毁与所述待转发媒体流的标识符对应的缓存队列。
14、在一些实施例中,所述响应于检测到所述第一缓存通道中存在待转发数据,获取所述第一缓存通道中的待转发数据并分别推送至各推流线程,包括:
15、响应于检测到所述待转发媒体流的标识符所对应的缓存队列中存在待转发数据,调用读取线程获取所述缓存队列中的待转发数据;
16、获取所述待转发媒体流的标识符与多个推流句柄间的第二关联关系,所述第二关联关系是根据并发数量创建多个推流线程后创建的,所述推流句柄用于标识向推送地址推送待转发数据的推流线程,所述推流线程的数量由所述并发数量确定;
17、所述读取线程根据所述第二关联关系,将所述待转发数据分别推送至所有推流句柄对应的推流线程。
18、在一些实施例中,所述将所述待转发数据分别推送至所有推流句柄对应的推流线程,包括:
19、将所述待转发数据分别推送至所有推流句柄对应的第二缓存通道;
20、所述推流线程从对应的第二缓存通道中获取待转发数据。
21、在一些实施例中,所述方法还包括:
22、在检测到所述拉流地址被删除的情况下,销毁所述读取线程;
23、根据所述第二关联关系,获取与所述待转发媒体流的标识符对应的所有推流句柄;
24、销毁所有推流句柄对应的推流线程,以及各推流线程对应的第二缓存通道。
25、在一些实施例中,所述方法还包括:
26、在检测到所述推流地址被更新的情况下,获取与被更新的推流地址对应的目标推流线程;
27、停止所述目标推流线程,并为所述目标推流线程配置更新后的推流地址;
28、在更新推流地址后启动所述目标推流线程。
29、在一些实施例中,所述方法还包括:
30、根据从所述拉流地址获取的待转发数据的总帧数,确定拉流速度;
31、通过监控每一个推流线程的第二缓存通道,确定每一个推流线程的推流速度;
32、在用户界面上显示所述拉流速度以及每一个推流线程的推流速度。
33、根据本发明实施例的第二方面,提供一种媒体流的转发装置,所述装置包括:
34、获取单元,用于获取参数信息,所述参数信息包括待转发媒体流的拉流地址,以及所述待转发媒体流的并发数量和推流地址;
35、拉流管理单元,用于从所述拉流地址获取待转发数据并发送至第一缓存通道;
36、推流管理单元,用于根据所述并发数量创建多个推流线程,并为每个推流线程配置推流地址,响应于检测到所述第一缓存通道中存在待转发数据,获取所述第一缓存通道中的待转发数据并分别推送至各推流线程,使所述推流线程向对应的推流地址推送所述待转发数据。
37、根据上述实施例可知,本发明可以获取待转发媒体流的拉流地址,以及所述待转发媒体流的并发数量和推流地址等参数信息,从所述拉流地址获取待转发数据并发送至第一缓存通道;根据所述并发数量创建多个推流线程,并为每个推流线程配置推流地址;响应于检测到所述第一缓存通道中存在待转发数据,获取所述第一缓存通道中的待转发数据并分别推送至各推流线程,使所述推流线程向对应的推流地址推送所述待转发数据。通过根据用户输入的并发数量创建多个推流线程,各推流线程可以并行的将从一个拉流地址获取的待转发数据向各自对应的推流地址推送,从而实现了一路转多路的业务需求。
38、应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
1.一种媒体流的转发方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述从所述拉流地址获取待转发数据并发送至第一缓存通道,包括:
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
4.根据权利要求2所述的方法,其特征在于,所述响应于检测到所述第一缓存通道中存在待转发数据,获取所述第一缓存通道中的待转发数据并分别推送至各推流线程,包括:
5.根据权利要求4所述的方法,其特征在于,所述将所述待转发数据分别推送至所有推流句柄对应的推流线程,包括:
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
8.根据权利要求1至7中任一项所述的方法,其特征在于,所述方法还包括:
9.一种媒体流的转发装置,其特征在于,所述装置包括:
10.根据权利要求9所述的装置,其特征在于,所述拉流管理单元,具体用于:
11.根据权利要求10所述的装置,其特征在于,所述拉流管理单元,还用于:
12.根据权利要求10所述的装置,其特征在于,所述推流管理单元,具体用于:
13.根据权利要求12所述的装置,其特征在于,所述推流管理单元,具体用于:
14.根据权利要求13所述的装置,其特征在于,所述推流管理单元,还用于:
15.根据权利要求9所述的装置,其特征在于,所述装置还包括推流地址更新单元;所述推流地址更新单元用于:
16.根据权利要求9至15中任一项所述的装置,其特征在于,所述装置还包括统计单元,所述统计单元用于: