一种直播应用程序的多服务器推流方法和设备与流程

文档序号:19939346发布日期:2020-02-14 22:58阅读:4304来源:国知局
一种直播应用程序的多服务器推流方法和设备与流程

本发明涉及多媒体技术领域,尤其涉及视频直播领域,尤其涉及一种直播应用程序的多服务器推流方法和设备。



背景技术:

广播电视词典对直播界定为“广播电视节目的后期(haobc)合成、播出同时进行的播出方式”。按播出场合可分为现场直播和播音室或演播室直播等形式。电视现场直播为在现场随着事件的发生、发展进程同时制作和播出电视节目的播出方式,是充分体现广播电视媒介传播优势的播出方式。

当前,网络媒体自身还没准确抽象概括出网络直播的界定,通常参照传播学及电视现场直播的概念给网络直播下个简单的定义:在现场随着事件的发生、发展进程同步制作和发布信息,具有双向流通过程的信息网络发布方式。其形式也可分为现场直播、演播室访谈式直播、文字图片直播、视音频直播或由电视(第三方)提供信源的直播;而且具备海量存储,查寻便捷的功能。

与电影单一的过去时空相比,电视直播可显现的时空既有现在时又有过去时,而网络直播除具备电视的两大时空之外还具有压缩时空的功能。如同步的文字直播、图片直播、赛事直播、手机直播和比分直播等等各种直播频道和样式。随着社会的发展效率已经让人们知道直播的好处,减少成本,加快信息的传播。

随时互联网络技术的发展,直播的概念有了新的拓展和发展,现在更多的人关注网络直播,特别是视频直播生态链更受关注。通过网络信号,在线收看球赛、体育赛事、重大活动和新闻等,这样,让大众有了广阔且自由的选择空间。当然,直播技术随着移动互联技术的发展,还会有新的进步。到那时,可能人们能够真正的随时随地的体验直播的快乐和便捷。

目前,随着直播平台的越来越多,特别是电竞游戏类直播平台通过第三方工具来推流非常普及和常用。

现在市面上普遍使用的推流应用程序以obs串流推送为代表,obs应用程序即openbroadcastersoftware(obsstudio),是一款专业的直播应用程序,主要源于欧美玩家用来在twitch等直播网站直播视频用的工具。obs通过人工配置可以开户一个应用,能把设置的视频显示内容(主播游戏直播流)打通直接推送到一个直播平台,让直播平台内容显示obs屏幕内容。也就是说,实现了摄影、屏幕、窗口、来源等直播内容在直播平台进行切换或者同时展示。obs应用程序最大的几个优点就是:完全免费(bandicam未注册又只能录10分钟),体积很小,非常稳定(hypercam容易失去响应,而且还有水印)。

然而,在使用这种推流工具的过程中,存在一个难题,就是不能把一个直播流同时推送到多个服务器地址,以实现两个或多个直播平台共享使用一个obs串流,无法节省本地机器的cpu及内存资源。



技术实现要素:

为了解决上述问题,本发明提供了一种直播应用程序的多服务器推流方法,能够在obs应用程序中同时设置向多个服务器同步推送同一个obs串流,实现obs串流的共享,减少本地机器cpu及内存资源消耗,使得主播一边玩游戏一边可以向多个平台同时直播,从而赚取双倍以至多倍的用户流量。

为此,本发明具备以下两处关键的发明点:

(1)引入obs串流共享机制以优化现有的obs串流推送模式,配置obs应用程序以向多个服务器同步推送同一个obs串流;

(2)建立有效、合理的obs串流推送流程,为主播提供方便操作步骤的同时保证了obs串流推送逻辑的有序和完整。

根据本发明的一方面,提供了一种直播应用程序的多服务器推流方法,所述方法包括:

启动obs应用程序即openbroadcastersoftware应用程序,用于向直播服务器推送直播视频流即推流;

配置推流参数;

基于所接收的输入判断是否同时向多个直播服务器推流;

当判断是向多个直播服务器推流时,在obs应用程序中添加多个直播服务器分别对应的多个地址,并向obs应用程序输入相应多个串流密钥;

当判断是向一个直播服务器推流时,在obs应用程序中添加一个直播服务器对应的地址,并向obs应用程序输入串流密钥;

在obs应用程序的推流功能被激活时,测试被推流的直播服务器拉流是否正常;

如果被推流的直播服务器拉流正常,则将主播的当前直播视频数据转换为单个obs串流发送给被推流的直播服务器;

如果被推流的直播服务器拉流异常,则返回到配置推流参数步骤以重新配置推流参数;

其中,当判断是向多个直播服务器推流时,如果被推流的直播服务器拉流正常,则将主播的当前直播视频数据转换为单个obs串流发送给被推流的直播服务器包括:如果被推流的多个直播服务器拉流都正常,则将主播的当前直播视频数据转换为单个obs串流发送给被推流的直播服务器。

根据本发明的另一个方面,提供了一种直播应用程序的多服务器推流设备,所述设备包括:

启动模块,用于启动obs应用程序,向直播服务器推送直播视频流;

配置模块,用于配置推流参数;

判断模块,用于基于所接收的输入判断是否同时向多个直播服务器推流;

添加地址模块,用于当判断是向多个直播服务器推流时,在obs应用程序中添加多个直播服务器分别对应的多个地址,并向obs应用程序输入相应多个串流密钥;当判断是向一个直播服务器推流时,在obs应用程序中添加一个直播服务器对应的地址,并向obs应用程序输入串流密钥;

激活模块,用于在obs应用程序的推流功能被激活时,测试被推流的直播服务器拉流是否正常;

转换模块,用于如果被推流的直播服务器拉流正常,则将主播的当前直播视频数据转换为单个obs串流发送给被推流的直播服务器;

返回模块,用于如果被推流的直播服务器拉流异常,则返回到配置推流参数步骤以重新配置推流参数;

其中,当判断是向多个直播服务器推流时,如果被推流的直播服务器拉流正常,则将主播的当前直播视频数据转换为单个obs串流发送给被推流的直播服务器包括:如果被推流的多个直播服务器拉流都正常,则将主播的当前直播视频数据转换为单个obs串流发送给被推流的直播服务器。

根据本发明的第三个方面,提供了一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如权利要求1至8所述的直播应用程序的多服务器推流方法。

另外,直播服务器本质上是视音频编码设备。直播服务器主要为视频直播、流媒体服务、iptv、交互式电视、移动电视、商务电视、远程教学、b2b商务通信、视频至台式机桌面的传输、vod系统、远程监控、资料保存等应用需求而设计的媒流体设备。

直播服务器通常采用数字图像合成和h.264编码技术,通过对现场视频、多媒体证据、vga证据信息的编码和录像,可实现多种模式画面合成、设备内置传输服务和标清图像显示功能,同时以流的方式在网络中传送音频、视频和多媒体文件,为客户与直播相关的各项应用提供了便利。

附图说明

以下将结合附图对本发明的实施方案进行描述,其中:

图1为本发明实施例提供的直播控制方法所涉及的实施环境的结构示意图;

图2为根据本发明实施方案示出的直播应用程序的多服务器推流方法的一种步骤流程图;

图3为根据本发明实施方案示出的直播应用程序的多服务器推流方法的配置推流参数步骤的具体流程图;

图4为根据本发明实施方案示出的直播应用程序的一种配置界面示意图;

图5所示,根据本发明实施方案示出的设置推流信息;

图6所示,根据本发明实施方案示出的设置服务器和串流密码;

图7为根据本发明实施方案示出的直播应用程序的多服务器推流方法的另一种步骤流程图;

图8为根据本发明实施方案示出的直播应用程序的一种输入界面示意图;

图9是本发明一个实施例提供的终端的结构示意图。

具体实施方式

下面将参照附图对本发明的直播应用程序的多服务器推流方法的实施方案进行详细说明。

目前,由于同一网络下存在多种直播服务器分别对应的多个直播平台,为了吸引粉丝,通常游戏主播或其他类型主播希望将自己的现场直播视频流能够同时传送到多个直播平台的多个直播服务器,为实现这个目标,当前的操作是为每一个直播平台制作一个视频流并推送给其对应的直播服务器,显然,这对于直播要求时间空间有限的主播来说,是一项影响直播进程的繁琐操作,同一视频流无法共享一个obs客流,对资源消耗非常大。

为了克服上述不足,本发明搭建了一种直播应用程序的多服务器推流方法,能够优化现有的推流模式,在现有的应用程序的基础上,能够将制作的同一直播视频流同时推送到多种直播服务器分别对应的多个直播平台。

请参考图1,其示出了本发明实施例提供的直播控制方法所涉及的实施环境的结构示意图。该实施环境包括:主播设备120、观众设备140和服务器160。

主播设备120可以为诸如电脑,智能手机、平板电脑和电子书阅读器之类的电子设备。主播设备120上安装有推流客户端,该推流客户端是拥有直播视频流上传权限的客户端。可选的,推流客户端是集成特定直播软件开发工具包(softwaredevelopmentkit,sdk)的应用程序或者第三方直播应用程序。主播设备120通过推流客户端将本地摄像头采集到的直播视频流上传给服务器160,然后由服务器160将该直播视频流转发给观众设备140。

观众设备140可以为诸如电脑,智能手机、平板电脑和电子书阅读器之类的电子设备。观众设备140上安装有播放客户端,播放客户端是拥有互动权限的客户端。可选的,播放客户端是集成特定直播sdk的应用程序或者第三方播放应用程序。观众设备140通过播放客户端将互动数据上传给服务器160,由服务器160将该互动数据转发给主播设备120和观众设备140,观众设备140可以接收到服务器160发送的直播视频的直播视频流和互动数据,然后进行展示。

可选的,服务器160通过无线或者有线网络和主播设备120相连。服务器160通过无线或者有线网络和观众设备140相连。服务器160可以是一台或者多台服务器,还可以是一个云计算中心。换句话说,服务器160可以由一台服务器实现;也可以由多台服务器组合实现,每台服务器承担相同或者不同的功能,比如有用于控制直播视频流接入的服务器、用于管理直播视频流的服务器、用于存储直播视频流的服务器等等;服务器160也可以采用云计算中心实现,云计算中心是一整片服务集群所形成的虚拟计算平台。可选的,服务器160包括接入服务器161、控制服务器162、调度服务器163和后台服务器164。

实施例1

图2为根据本发明实施方案示出的直播应用程序的多服务器推流方法的一种步骤流程图。

如图2所示,所述直播应用程序的多服务器推流方法包括:

启动obs应用程序,即openbroadcastersoftware,用于向直播服务器推送直播视频流,即推流。

在所述直播应用程序的多服务器推流方法中,所述obs应用程序具有操作界面,用于便于主播配置推流参数、添加直播服务器的地址以及输入串流密钥。可以通过obs直接通过rtmp协议推流到中间服务器。

在所述直播应用程序的多服务器推流方法中:

在obs应用程序中添加的直播服务器对应的地址为网络地址,向obs应用程序输入的串流密钥为预设长度的字符串;其中,所述预设长度的字符串由字母和数字组成。

配置推流参数;具体的,如图3所示,配置推流参数包括:

1)配置obs串流中视频的基础分辨率,即画布分辨率;

2)配置obs串流中视频的每秒帧数(比特率);

3)配置是否优先选择硬件编码;

4)配置是否通过带宽测试估计比特率;

以及流媒体提供商等。

更优选的,在所述直播应用程序的多服务器推流方法中:

obs串流中视频的基础分辨率被配置为1920×1080;obs串流中视频的每秒帧数被配置为60或30。

其中,在使用obs应用程序中,所述用户(主播)配置基础分辨率以及每秒帧数的相关配置界面如图4所示。在图4中,为基础分辨率的配置和每秒帧数的配置分别给出两个选择框以供用户(主播)选择,以实现相关参数的配置。

基于所接收的输入判断是否同时向多个直播服务器推流;例如,主播直接手动输入服务器个数,选择点击输入服务器等。

当判断是向多个直播服务器推流时,在obs应用程序中添加多个直播服务器分别对应的多个地址,并向obs应用程序输入相应多个串流密钥。

所述串流密钥,可以是推流地址或账号授权后自动获取的推流配置。当判断是向一个直播服务器推流时,在obs应用程序中添加一个直播服务器对应的地址,并向obs应用程序输入串流密钥。

如图5所示,设置推流信息,可在服务“自定义”功能中,设定串流信息。

如图6所示,设置服务器和串流密码,可以采用rtmp地址以及个人直播码。

一旦obs应用程序的“推流”程序被激活(例如,推流功能被激活)时,测试被推流的直播服务器拉流是否正常;

如果被推流的直播服务器拉流正常,则将用户(主播)的当前直播视频数据转换为单个obs串流发送给被推流的直播服务器;

如果被推流的直播服务器拉流异常,则返回到配置推流参数步骤以重新配置推流参数。

其中,当判断是向多个直播服务器推流时,如果被推流的直播服务器拉流正常,则将主播的当前直播视频数据转换为单个obs串流发送给被推流的直播服务器包括:如果被推流的多个直播服务器拉流都正常,则将主播的当前直播视频数据转换为单个obs串流发送给被推流的直播服务器。

即,在所述直播应用程序的多服务器推流方法中:

当向obs应用程序添加一个或多个直播服务器分别对应的一个或多个地址,并向obs应用程序输入串流密钥后,一旦“推流”程序被激活(例如,推流功能被激活),则开始测试被推流的直播服务器拉流是否正常。

如果被推流的直播服务器拉流异常,则返回到配置推流参数步骤以重新配置推流参数,包括:如果被推流的多个直播服务器存在直播服务器拉流异常,则返回到配置推流参数步骤以重新配置推流参数。

在一种具体应用场景中,例如,主播a同时在“斗鱼”和“动动”两个直播平台注册会员,每次开播的时候,只需要开户一个obs软件,设置两个直播平台服务器地址及串流密钥,调好开播设备,判断是否向多个直播平台进行推流,确认向多个直播平台推流,设置多个服务器地址和串流密钥,启动推流按钮,确认各直播平台推流是否成功,检查平台推流是否有延时,从而保证推流质量。如此,用户(主播)一边游戏一边向多个平台同时直播,串流输出正常,各个平台拉流稳定。由此,用户启动一个obs程序实现向多台直播服务器推流,从而减少本地机器资源和性能消耗,提升主播分享直播内容的竞争力。

图7为根据本发明实施方案示出的直播应用程序的多服务器推流方法的另一种步骤流程图。

如图7所示,与图1中的方法不同之处在于,在启动obs应用程序之后、配置推流参数之前,所述方法还包括:

基于用户(主播)的输入选择,确定obs应用程序的目的,若为优化串流,则开始配置推流参数步骤。所述使用obs应用程序的目的为优化串流或优化录像。

具体操作中,在使用obs应用程序中,所述用户(主播)的相关输入界面如图7所示,在图5中,给出了两个选项供主播选择:(a)优先优化串流,其次为录像;(b)优先优化录像,将不会进行串流。

本申请在推流共享基础上,亦可兼容平台其他交互功能,如:实时获取第三方直播平台的弹幕消息并有界面进行呈现;能够在中间服务器对流数据实时录制,并输出相应的点播视频文件;自动实时搜集各第三方直播平台的在线、打赏、访问等数据并合并和分项展示。

具体的,本发明可以作为直播推流软件的增强功能,安装于例如pc端,winform控件。安装于例如vc2013运行环境,在插件使用前,请先分别安装32位和64位的vc2013运行环境。

另外,本发明不仅用于游戏的直播,也可以用于其他直播。直播游戏,对电脑配置和上传宽带要求:一般游戏,像lol,cf,dota2,等等用i5处理器,gtx650的配置,上传速度至少2m;主机游戏,像gta5,h1z1,仁王等等用i7处理器,gtx760的配置,上传速度至少2m。随着5g的应用,上传带宽将不再成为多视频流共享的瓶颈。

目前,随着互联网的兴起,越来越多的网站通过对网络直播节目的整合,最大限度去满足受众的观看需求,如目前日益火爆的网站直播熊,就针对网友推出游戏、体育、军事、娱乐、财经节目的在线直播导航服务,以一种简单快捷的方式满足网友观看电视直播的需求。

直播分为文字图片直播和视频直播,传统电视台多以视频直播为主,比如新闻类的《新闻联播》、演艺类的《春节联欢晚会》等;网络时代,多以图文直播为主,比如直播体育赛事、新闻等;

移动互联网时代,文字图片视频皆可实现直播,图片直播平台有喔图,视频直播平台也很多,比如侧重于直播生态链的转介率联盟直播,泛娱乐化的映客直播、花椒直播、isplay玩潮直播,游戏主播的虎牙直播、斗鱼直播,功能向选秀造星的猫空直播,和商业活动领域的微视播直播和视秀直播平台。

实施例二

请参考图7,其示出了本发明一个实施例提供的直播应用程序的多服务器推流设备的结构示意图。该直播应用程序的多服务器推流设备可以通过专用硬件电路,或者,软硬件的结合实现成为图1中的服务器160的全部或一部分,该直播控制装置包括:

启动模块,用于启动obs应用程序,向直播服务器推送直播视频流;

配置模块,用于配置推流参数;

判断模块,用于基于所接收的输入判断是否同时向多个直播服务器推流;

添加地址模块,用于当判断是向多个直播服务器推流时,在obs应用程序中添加多个直播服务器分别对应的多个地址,并向obs应用程序输入相应多个串流密钥;当判断是向一个直播服务器推流时,在obs应用程序中添加一个直播服务器对应的地址,并向obs应用程序输入串流密钥;

激活模块,用于在obs应用程序的推流功能被激活时,测试被推流的直播服务器拉流是否正常;

转换模块,用于如果被推流的直播服务器拉流正常,则将主播的当前直播视频数据转换为单个obs串流发送给被推流的直播服务器;

返回模块,用于如果被推流的直播服务器拉流异常,则返回到配置推流参数步骤以重新配置推流参数;

其中,当判断是向多个直播服务器推流时,如果被推流的直播服务器拉流正常,则将主播的当前直播视频数据转换为单个obs串流发送给被推流的直播服务器包括:如果被推流的多个直播服务器拉流都正常,则将主播的当前直播视频数据转换为单个obs串流发送给被推流的直播服务器。

需要说明的是,上述实施例提供的装置,在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

请参考图9,其示出了本发明一个实施例提供的终端900的结构示意图,该终端可以是图1中的主播设备120,也可以是图1中的观众设备140。具体来讲:设备900可以包括rf(radiofrequency,射频)电路910、包括有一个或一个以上计算机可读存储介质的存储器920、输入单元930、显示单元940、传感器950、音频电路960、wifi(wirelessfidelity,无线保真)模块970、包括有一个或者一个以上处理核心的处理器980、以及电源990等部件。本领域技术人员可以理解,图9中示出的设备结构并不构成对设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

处理器980是设备900的控制中心,利用各种接口和线路连接整个设备的各个部分,通过运行或执行存储在存储器920内的软件程序和/或模块,以及调用存储在存储器920内的数据,执行设备900的各种功能和处理数据,从而对设备进行整体监控。可选的,处理器980可包括一个或多个处理核心;可选的,处理器980可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器980中。

尽管未示出,设备900还可以包括摄像头、蓝牙模块等,在此不再赘述。

所述计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括ram、rom、eprom、eeprom、闪存或其他固态存储其技术,cd-rom、dvd或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知所述计算机存储介质不局限于上述几种。上述的系统存储器1004和大容量存储设备1007可以统称为存储器。可选的,该存储器中存储有至少一条指令、至少一段程序、代码集或指令集,至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现上述各个方法实施例提供的直播应用程序的多服务器推流方法。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。本领域普通技术人员可以理解实现上述实施例的直播控制方法中全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。或者说,该存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,该至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现如上述各个方法实施例中所述的直播控制方法。

本领域普通技术人员可以理解实现上述实施例的直播应用程序的多服务器推流方法中全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。或者说,该存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,该至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现如上述各个方法实施例中所述的直播应用程序的多服务器推流方法。

综上,通过本发明,使得主播能够从繁琐的视频制作中解放出来,很方便地实现同时在两个以上直播平台同时直播自己的直播视频数据,即在每次开播的时候,只需要使用obs应用程序上的同一个开户账号,设置两个以上直播平台服务器地址及一个串流密钥,就能够同步向两个以上平台直播推流;从而在减少本地机器cpu及内存资源消耗的同时简化了主播的配置和制作流程。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1