首页> 中国专利> 多平台直推推流的方法、系统、电子装置和存储介质

多平台直推推流的方法、系统、电子装置和存储介质

摘要

本申请涉及一种多平台直推推流的方法、系统、电子装置和存储介质,通过在客户端上创建至少两个线程,为至少两个线程创建推流器,其中,每个线程对应一个直播平台;获取编码后的音视频数据,将音视频数据加入到待发送队列中;至少两个线程通过推流器将待发送队列中的音视频数据对应推流到至少两个直播平台中,相对于相关技术中,多平台推流需要经过中间服务器转推,音视频数据传输经过中间服务器会带来额外的延迟,无法保证用户数据的私密性,且以第三方服务器作为中间环节,可能因为中间环节不可预料的问题,导致推流链路中断的问题,本申请的技术方案解决了经过中间服务器实现的多平台推流,数据传输延迟,存在安全隐患或推流链路中断的问题。

著录项

  • 公开/公告号CN113824973A

    专利类型发明专利

  • 公开/公告日2021-12-21

    原文格式PDF

  • 申请/专利权人 杭州星犀科技有限公司;

    申请/专利号CN202110893130.2

  • 发明设计人 程文波;尹洪福;张林;葛天杰;

    申请日2021-08-04

  • 分类号H04N21/2187(20110101);H04N21/2343(20110101);H04N21/258(20110101);

  • 代理机构33324 杭州创智卓英知识产权代理事务所(普通合伙);

  • 代理人张超

  • 地址 311100 浙江省杭州市余杭区余杭街道文一西路1818-2号6幢701室

  • 入库时间 2023-06-19 13:46:35

说明书

技术领域

本申请涉及多媒体技术领域,特别是涉及多平台直推推流的方法、系统、电子装置和存储介质。

背景技术

随着信息技术的发展,网络直播行业以其广阔的前景迅速兴起,同时产生了数量众多的直播平台。相关技术中,直播音视频数据推流方式主要有单平台推流和经过中间服务器实现的多平台推流,多平台推流即同时将节目分发到多个直播平台,这样可以增加观看人数,但是多平台推流存在数据传输延迟,给用户数据带来安全隐患或推流链路中断的问题。

目前针对相关技术中多平台推流存在数据传输延迟,安全隐患或推流链路中断的问题,尚未提出有效的解决方案。

发明内容

本申请实施例提供了一种多平台直推推流的方法、系统、电子装置和存储介质,以至少解决相关技术中多平台推流存在数据传输延迟,安全隐患或推流链路中断的问题。

第一方面,本申请实施例提供了一种多平台直推推流的方法,所述方法包括:

在客户端上创建至少两个线程,为至少两个线程创建推流器,其中,每个线程对应一个直播平台;

获取编码后的音视频数据,将所述音视频数据加入到待发送队列中;

至少两个线程通过所述推流器将所述待发送队列中的音视频数据对应推流到至少两个直播平台中。

在其中一些实施例中,所述在客户端上创建至少两个线程之后,所述方法还包括:

为每个线程创建一个发送队列;

将所述待发送队列中的音视频数据缓存到每个线程的发送队列中;

至少两个线程通过所述推流器将所述发送队列中的音视频数据对应推流到至少两个直播平台中。

在其中一些实施例中,在客户端上创建至少两个线程之后,所述方法包括:

为每个线程创建一个推流器;

至少两个线程通过对应的所述推流器将所述待发送队列中的音视频数据对应推流到至少两个直播平台中。

在其中一些实施例中,所述在客户端上创建至少两个线程之后,所述方法包括:

为每个线程创建一个发送队列和一个推流器;

将所述待发送队列中的音视频数据缓存到每个线程的发送队列中;

至少两个线程通过对应的所述推流器将所述发送队列中的音视频数据对应推流到至少两个直播平台中。

在其中一些实施例中,在客户端上创建至少两个线程,为至少两个线程创建推流器之后,所述方法包括:

获取编码后的至少两个音视频数据,将至少两个所述音视频数据对应加入到待发送队列中;

至少两个线程通过所述推流器将所述待发送队列中的音视频数据对应推流到至少两个直播平台中。

在其中一些实施例中,将多媒体处理工具移植到操作系统上,通过流媒体协议作为发送音视频数据的推流器。

第二方面,本申请实施例提供了一种多平台直推推流的系统,所述系统包括创建模块、获取模块和推流模块,

所述创建模块,用于在客户端上创建至少两个线程,为至少两个线程创建推流器,其中,每个线程对应一个直播平台;

所述获取模块,用于获取编码后的音视频数据,将所述音视频数据加入到待发送队列中;

所述推流模块,用于至少两个线程通过所述推流器将所述待发送队列中的音视频数据对应推流到至少两个直播平台中。

在其中一些实施例中,所述在客户端上创建至少两个线程之后,所述创建模块还用于为每个线程创建一个发送队列;

将所述待发送队列中的音视频数据缓存到每个线程的发送队列中;

至少两个线程通过所述推流器将所述发送队列中的音视频数据对应推流到至少两个直播平台中。

第三方面,本申请实施例提供了一种电子装置,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述第一方面所述的多平台直推推流的方法。

第四方面,本申请实施例提供了一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述第一方面所述的多平台直推推流的方法。

相比于相关技术,本申请实施例提供的多平台直推推流的方法,通过在客户端上创建至少两个线程,为至少两个线程创建推流器,其中,每个线程对应一个直播平台;获取编码后的音视频数据,将音视频数据加入到待发送队列中;至少两个线程通过推流器将待发送队列中的音视频数据对应推流到至少两个直播平台中,解决了多平台推流需要经过中间服务器转推,会导致数据传输延迟,存在安全隐患或推流链路中断的问题。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1是根据本申请实施例的多平台直推推流的方法的流程图;

图2是根据本申请实施例的多平台直推推流的方法的示意图;

图3是根据本申请实施例的另一种多平台直推推流的方法的示意图;

图4是根据本申请实施例的第三种多平台直推推流的方法的示意图;

图5是根据本申请实施例的第四种多平台直推推流的方法的示意图;

图6是根据本申请实施例的第五种多平台直推推流的方法的示意图;

图7是根据本申请实施例的多平台直推推流的系统的结构框图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行描述和说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。基于本申请提供的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。此外,还可以理解的是,虽然这种开发过程中所作出的努力可能是复杂并且冗长的,然而对于与本申请公开的内容相关的本领域的普通技术人员而言,在本申请揭露的技术内容的基础上进行的一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本申请公开的内容不充分。

在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域普通技术人员显式地和隐式地理解的是,本申请所描述的实施例在不冲突的情况下,可以与其它实施例相结合。

除非另作定义,本申请所涉及的技术术语或者科学术语应当为本申请所属技术领域内具有一般技能的人士所理解的通常意义。本申请所涉及的“一”、“一个”、“一种”、“该”等类似词语并不表示数量限制,可表示单数或复数。本申请所涉及的术语“包括”、“包含”、“具有”以及它们任何变形,意图在于覆盖不排他的包含;例如包含了一系列步骤或模块(单元)的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可以还包括没有列出的步骤或单元,或可以还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本申请所涉及的“连接”、“相连”、“耦接”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电气的连接,不管是直接的还是间接的。本申请所涉及的“多个”是指大于或者等于两个。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。本申请所涉及的术语“第一”、“第二”、“第三”等仅仅是区别类似的对象,不代表针对对象的特定排序。

本实施例提供了一种多平台直推推流的方法,图1是根据本申请实施例的多平台直推推流的方法的流程图,如图1所示,该方法包括如下步骤:

步骤S101,在客户端上创建至少两个线程,为至少两个线程创建推流器,其中,每个线程对应一个直播平台;其中,线程是操作系统能够进行运算调度的最小单位。线程被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务,推流器可以把封包好的音视频数据推流到直播平台。

示例性的,安卓系统中的线程具有“能保证独立运行”和“共享进程中的主存和其他资源”的特点,适合用来作为客户端上分别处理发送给每个直播平台的运行载体。

步骤S102,获取编码后的音视频数据,将音视频数据加入到待发送队列中;本实施例中,将待发送队列中的音视频数据作为至少两个线程的数据来源。

步骤S103,至少两个线程通过推流器将待发送队列中的音视频数据对应推流到至少两个直播平台中。本实施例中,直接将待发送队列中的音视频数据通过推流器推流到直播平台,可以尽可能实现多平台同步,但如果网络波动则降低发送数据的等待时间,尽早丢包,防止直播平台出现卡顿现象。

示例性的,图2是根据本申请实施例的多平台直推推流的方法的示意图,如图2所示,将编码后的音视频数据加入到待发送队列中,线程A、线程B和线程C不断的从待发送队列中取出音视频数据,然后由推流器将每个线程的音视频数据分别推流到直播平台A、直播平台B和直播平台C中,实现在客户端不经过其他任何中间环节的多平台直推推流。

相关技术中,经中间服务器实现的多平台推流的过程为:音视频数据→客户端→中间服务器→直播平台A/直播平台B/直播平台C,而本申请技术方案实现的多平台直推推流的过程为:音视频数据→客户端→直播平台A/直播平台B/直播平台C。

相对于相关技术中,多平台推流需要经过中间服务器转推,音视频数据传输经过中间服务器会带来额外的延迟,还会给用户数据带来安全隐患,无法保证用户数据的私密性,且以第三方服务器作为中间环节,可能因为中间环节不可预料的问题,导致推流链路中断的问题,而本申请的技术方案,通过上述步骤S101至S103,在客户端上创建至少两个线程,为至少两个线程创建推流器,每个线程对应一个直播平台,将编码后的音视频数据加入到待发送队列中,至少两个线程通过推流器将待发送队列中的音视频数据对应推流到至少两个直播平台中,解决了经过中间服务器实现的多平台推流,数据传输延迟,存在安全隐患或推流链路中断的问题。

在其中一些实施例中,图3是根据本申请实施例的另一种多平台直推推流的方法的示意图,如图3所示,在客户端上创建三个线程之后,为每个线程创建一个发送队列,将待发送队列中的音视频数据缓存到每个线程的发送队列中,三个线程通过推流器将发送队列中的音视频数据对应推流到对应的直播平台中。

具体的,如果网络波动降低发送音视频数据的等待时间,尽早丢包,则会导致各直播平台直播数据不完整,故在本实施例中,为了保证各直播平台直播数据的完整,牺牲一定的同步性,先将待发送队列中的音视频数据的缓存到每个线程的发送队列中,以保证音视频数据的完整性,再通过推流器将发送队列中的音视频数据对应推流到对应的直播平台中。

在其中一些实施例中,图4是根据本申请实施例的第三种多平台直推推流的方法的示意图,如图4所示,在客户端上创建至少两个线程之后,为每个线程创建一个推流器;至少两个线程通过对应的推流器将待发送队列中的音视频数据对应推流到至少两个直播平台中。

具体的,多个线程共用一个推流器进行推流时,可以减少所需占用的内存,提高系统性能,但可能会带来一些问题和限制,例如,多个直播平台所需的分辨率不一样,需要为多个直播平台设置多种分辨率,或者推流错误时,需要判断出是哪一个直播平台推流错误,多个直播平台推流错误的情况下,还需要分析出每个直播平台推流错误的原因,实现难度会较大;故在本实施例中,为每个线程都创建一个推流器,则每个线程都可以通过各自的推流器将待发送队列中的音视频数据对应推流到至少两个直播平台中,每个推流器单独设置对应直播平台的分辨率,在推流错误时,也无需要判断出是哪一个直播平台推流错误,实现难度较小。

在其中一些实施例中,图5是根据本申请实施例的第四种多平台直推推流的方法的示意图,如图5所示,在客户端上创建至少两个线程之后,为每个线程创建一个发送队列和一个推流器,将待发送队列中的音视频数据缓存到每个线程的发送队列中;至少两个线程通过对应的推流器将发送队列中的音视频数据对应推流到至少两个直播平台中。本实施例中,通过为每个线程创建一个发送队列和一个推流器,使每个线程都是独立运行的,既能保证各直播平台直播数据的完整,又能使整个方案实现难度小。

在其中一些实施例中,在客户端上创建至少两个线程,为至少两个线程创建推流器之后,获取编码后的至少两个音视频数据,将至少两个音视频数据对应加入到待发送队列中;至少两个线程通过推流器将待发送队列中的音视频数据对应推流到至少两个直播平台中。

示例性的,图6是根据本申请实施例的第五种多平台直推推流的方法的示意图,如图6所示,将不同的音视频数据加入到对应的待发送队列中,线程A、线程B和线程C分别不断的从待发送队列中取出音视频数据A、音视频数据B和音视频数据C,然后通过推流器将不同的音视频数据分别推流到对应的直播平台中,使直播平台A播放音视频数据A,直播平台B播放音视频数据B,直播平台C播放音视频数据C,通过本实施例,不仅解决了经过中间服务器实现的多平台推流,数据传输延迟,存在安全隐患或推流链路中断的问题,还可以使不同的直播平台可以获取到不同的音视频数据。

可选的,为每个线程创建一个发送队列和一个推流器,将待发送队列中不同的音视频数据分别对应缓存到每个线程的发送队列中;至少两个线程通过对应的推流器将发送队列中的音视频数据对应推流到至少两个直播平台中。本实施例中,通过为每个线程创建一个发送队列和一个推流器,使每个线程都是独立运行的,既能保证各直播平台直播数据的完整,又能使整个方案实现难度小。

在其中一些实施例中,可以将多媒体处理工具移植到操作系统上,通过流媒体协议作为发送音视频数据的推流器。示例性的,可以使用ffmpeg或者librtmp移植到安卓系统上,通过rtmp协议作为发送音视频数据的推流器。

需要说明的是,以上各实施例中音视频数据A、待发送队列A、线程A、直播平台A之间并非唯一对应,实际应用中可以灵活匹配,其他标记同理。在上述流程中或者附图的流程图中示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

本实施例还提供了一种多平台直推推流的系统,该系统用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”、“单元”、“子单元”等可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。

图7是根据本申请实施例的多平台直推推流的系统的结构框图,如图7所示,系统包括创建模块71、获取模块72和推流模块73,创建模块71用于在客户端上创建至少两个线程,为至少两个线程创建推流器,其中,每个线程对应一个直播平台;获取模块72用于获取编码后的音视频数据,将音视频数据加入到待发送队列中;推流模块73用于至少两个线程通过推流器将待发送队列中的音视频数据对应推流到至少两个直播平台中,解决了经过中间服务器实现的多平台推流,数据传输延迟,存在安全隐患或推流链路中断的问题。

需要说明的是,上述各个模块可以是功能模块也可以是程序模块,既可以通过软件来实现,也可以通过硬件来实现。对于通过硬件来实现的模块而言,上述各个模块可以位于同一处理器中;或者上述各个模块还可以按照任意组合的形式分别位于不同的处理器中。

本实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。

可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。

需要说明的是,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。

另外,结合上述实施例中的多平台直推推流的方法,本申请实施例可提供一种存储介质来实现。该存储介质上存储有计算机程序;该计算机程序被处理器执行时实现上述实施例中的任意一种多平台直推推流的方法。

在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种多平台直推推流的方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。

本领域的技术人员应该明白,以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

去获取专利,查看全文>
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号