一种在直播中实现双屏推流的方法及系统
技术领域
本发明涉及直播应用技术领域,具体来讲是一种在直播中实现双屏推流的方法及系统。
背景技术
在线视频直播是指利用互联网网络资源进行的现场视频直播服务,通过现场的视频拍摄同步发布到网络上,用户可以同一时间在网络上看到实时的现场情况。随着直播行业的快速发展,直播内容也越来越丰富。随着直播内容质量越来越高,如何在现有直播环节中,增加其它植入内容也越来越紧急。
目前,大多数直播的传播方式比较单一,简单通过视频截取的软件(即直播软件)对直播的内容进行推流(推流是指将已经封包的视频信息传输至用户的播放页面)。但是,实际使用中,现有的直播传播方式已经不能满足用户的需求了;同时,主播也希望可以通过其它方式进行更多信息的推送,以丰富主播的直播内容,更好的为主播吸引更多的粉丝和用户的关注。
因此,如何设计出一种新的推流方式,以丰富主播的直播内容,更好的为主播吸引更多用户,是直播领域亟待解决的问题。
发明内容
本发明的目的是为了克服上述背景技术的不足,提供一种在直播中实现双屏推流的方法及系统,能通过双屏推流的新方式为用户提供更多的直播内容,不但能为主播更好的吸引粉丝,而且能让用户更好、更全面的接收到主播的信息,用户体验佳。
为达到以上目的,本发明提供一种在直播中实现双屏推流的方法,该方法包括以下步骤:S1、当主播登录直播平台进入直播间时,启动直播软件与直播平台连接;S2、根据主播选择的需要推流的指定码率,为推流接口添加相应的推流码率的标识;S3、获取当前直播信息;S4、根据主播在直播软件中设置的双屏推流设置,判断主播是否开启双屏推流功能,若是,转入步骤S5;否则,结束操作;S5、当主播进行双屏输入端口的选择时,实时获取主播所选择的双屏输入的端口;S6、根据主播所选择的双屏输入的端口,启用对应的本地硬件接口;利用启用的硬件接口,按照添加的推流码率的标识将信息流推送给直播平台的信息流接收服务器,该信息流中包括有当前直播信息和其他需要推送的信息。
在上述技术方案的基础上,步骤S1具体包括以下流程:S101、主播登录直播平台并进入直播间;S102、通过直播平台的后台服务器获取当前主播的登录信息,并将该登录信息保存在本地的Cookie中;S103、启动直播软件,利用直播软件读取本地的Cookie实现直播软件登录;在登录成功之后,通过内置的API连接直播平台的后台服务器。
在上述技术方案的基础上,步骤S3具体包括以下流程:S301、利用直播软件获取当前推流接口所在的硬件平台标识;S302、利用直播软件获取当前推流接口所对应的操作系统信息;S303、根据获取的硬件平台标识和操作系统信息,调用对应的硬件平台的接口获取当前直播信息。
在上述技术方案的基础上,步骤S5具体包括以下流程:S501、向主播弹出选择双屏输入端口的窗口;S502、通过监听事件,对弹出的窗口的选择项的点击值进行实时监听,获取主播所选择的双屏输入的端口。
在上述技术方案的基础上,步骤S6之后还包括双屏推流功能的有效性检查操作:判断双屏推流是否失败,若是,返回步骤S6,重新进行双屏推流;若否,则由直播平台的信息流接收服务器将所述信息流推送至CDN服务器。
本发明同时还提供一种在直播中实现双屏推流的系统,该系统包括登录连接模块、码率选择模块、直播信息获取模块、双屏推流功能判断模块、双屏输入端口选择模块和双屏推流处理模块;
所述登录连接模块用于:当主播登录直播平台进入直播间时,启动直播软件与直播平台连接;向码率选择模块发送码率选择信号;
所述码率选择模块用于:收到码率选择信号后,根据主播选择的需要推流的指定码率,为推流接口添加相应的推流码率的标识;并向直播信息获取模块发送信息获取信号;
所述直播信息获取模块用于:收到信息获取信号后,获取当前直播信息;并向双屏推流功能判断模块发送功能判断信号;
所述双屏推流功能判断模块用于:收到功能判断信号后,根据主播在直播软件中设置的双屏推流设置,判断主播是否开启双屏推流功能,若是,向双屏输入端口选择模块发送端口选择信号;否则,结束操作;
所述双屏输入端口选择模块用于:收到端口选择信号后,当主播进行双屏输入端口的选择时,实时获取主播所选择的双屏输入的端口;并向双屏推流处理模块发送推流处理信号;
所述双屏推流处理模块用于:收到推流处理信号后,根据主播所选择的双屏输入的端口,启用对应的本地硬件接口;利用启用的硬件接口,按照添加的推流码率的标识将信息流推送给直播平台的信息流接收服务器,该信息流中包括有当前直播信息和其他需要推送的信息。
在上述技术方案的基础上,所述登录连接模块进行登录和连接操作的具体流程为:当主播登录直播平台并进入直播间时,通过直播平台的后台服务器获取当前主播的登录信息,并将该登录信息保存在本地的Cookie中;启动直播软件,利用直播软件读取本地的Cookie实现直播软件登录;在登录成功之后,通过内置的API连接直播平台的后台服务器。
在上述技术方案的基础上,所述直播信息获取模块获取当前直播信息的具体流程为:利用直播软件获取当前推流接口所在的硬件平台标识;利用直播软件获取当前推流接口所对应的操作系统信息;根据获取的硬件平台标识和操作系统信息,调用对应的硬件平台的接口获取当前直播信息。
在上述技术方案的基础上,所述双屏输入端口选择模块实时获取主播所选择的双屏输入的端口的具体流程为:向主播弹出选择双屏输入端口的窗口;通过监听事件,对弹出的窗口的选择项的点击值进行实时监听,获取主播所选择的双屏输入的端口。
在上述技术方案的基础上,该系统还包括双屏推流功能检查模块,该双屏推流功能检查模块用于对双屏推流功能的有效性进行检查:判断双屏推流是否失败,若是,向双屏推流处理模块发送推流处理信号,重新进行双屏推流;若否,则由直播平台的信息流接收服务器将所述信息流推送至CDN服务器。
本发明的有益效果在于:
(1)本发明采用双屏推流的方式,在主播推送直播主内容的同时,也可以通过另外一个信息输入端(另外一个屏),将其它需要推送的辅助信息录入进来。与现有技术的单一传播方式相比,本发明通过双屏推流的方式可将直播内容或者主播动态及时的向用户进行展示,为用户提供更多的直播信息,丰富主播直播内容。对主播来说,可有效增强粉丝的粘性,更好的为主播吸引更多的粉丝和用户的关注;对用户来说,可得到更好更多元化的直播内容,用户体验佳。
(2)本发明中,设计有双屏推流功能的有效性检查操作,该操作能更好地执行双屏推流功能,确保双屏推流的有效性,有效提高了双屏推流的实现质量,可靠性强。
附图说明
图1为本发明实施例中在直播中实现双屏推流的方法的流程图;
图2为本发明实施例中在直播中实现双屏推流的系统结构框图。
具体实施方式
本发明提供一种在直播中实现双屏推流的方法及系统。其中,所述的双屏是指:两个视频输入入口,通常情况是指一个直播信息入口,一个其他需要推送的信息入口。同时,双屏也包括音频的输入,使用户既可以看到直播的画面,也可以与主播进行面对面的交流和互动。
下面结合附图及具体实施例对本发明作进一步的详细描述。
参见图1所示,本发明实施例提供一种在直播中实现双屏推流的方法,该方法包括以下步骤:
S1、当主播登录直播平台进入直播间时,并启动直播软件与直播平台连接,转入步骤S2。
实际操作中,步骤S1具体可包括以下流程:
S101、主播登录直播平台(如斗鱼直播平台),并进入直播间。
S102、通过直播平台的后台服务器获取当前主播的登录信息,并将该登录信息保存在本地的Cookie中。举例来说,获取当前主播的登录信息时,可使用以下代码实现:logoidlogid=new WebUserServers.Client.Land();另外,将该登录信息保存在本地的Cookie中时,可使用以下代码实现:Localservice.Cookie.Internet(logid,Password)。
S103、启动直播软件(如直播伴侣或OBS),利用直播软件读取本地的Cookie实现直播软件登录;在登录成功之后,通过内置的API(Application Programming Interface,应用程序编程接口)连接直播平台的后台服务器(如斗鱼直播平台的后台服务器)。举例来说,通过内置的API连接直播平台的后台服务器时,可使用以下代码实现:Partner Plog=newWebDouYuServer.Foreign.Interface(logid)。
S2、根据主播选择的需要推流的指定码率,为推流的接口添加相应的推流码率的标识,即该推流码率的标识中包含有主播所选择的需要推流的指定码率,转入步骤S3。可以理解的是,所述指定码率包括高清码率(1080码率)和普清码率(580码率)。另外,举例来说,为推流的接口添加相应的推流码率的标识时,可使用以下代码实现:PlatformValuePValue=new WebVideoServers.Stream.Mark(普清)。
S3、利用直播软件调用当前推流接口所在的硬件平台的接口,获取当前直播信息,转入步骤S4。
实际操作中,步骤S3具体可包括以下流程:
S301、利用直播软件获取当前推流接口所在的硬件平台标识。具体来说,获取当前推流接口所在的硬件平台标识时,可通过访问系统封装的本地服务接口(Localservice)来实现,也可以通过硬件平台的mack地址来实现。通过mack地址来实现时,可使用以下代码实现:VideoMarkVMark=new Localservice.Hardware.MackMark()。
S302、利用直播软件获取当前推流接口所对应的操作系统信息。举例来说,可使用以下代码实现:System SDesi=newLocalservice.System.Designation()。
S303、根据获取的硬件平台标识和操作系统信息,调用对应的硬件平台的接口获取当前直播信息。
S4、根据主播在直播软件中设置的双屏推流设置,判断主播是否开启双屏推流功能,若是,转入步骤S5;否则,结束操作。
S5、当主播进行双屏输入端口的选择时,实时获取主播所选择的双屏输入的端口,转入步骤S6。
实际操作中,步骤S5具体可包括以下流程:
S501、向主播弹出选择双屏输入端口的窗口;
S502、通过监听事件(Monitor),对弹出的窗口的选择项的点击值(click(value))进行实时监听,获取主播所选择的双屏输入的端口。举例来说,可使用以下代码实现:PushFlow Entrance=newWebFlashServers.Monitor.click(value)。
可以理解的是,通过步骤S5中的操作,可以实现不同的输入端口的设置,优化了原有单屏(单入口)输入源,增加了更多输入端口的选择,更加丰富主播的信息输入内容。
S6、根据主播所选择的双屏输入的端口,启用对应的本地硬件接口;利用启用的硬件接口,按照添加的推流码率的标识(即按照主播选择的推流的指定码率)将信息流推送给直播平台的信息流接收服务器(如WebSTransfereSrvice),该信息流中包括有当前直播信息和其他需要推送的信息。
可以理解的是,由于输入端口较多,本实施例中就只针对选择视频输入端口进行举例说明:根据主播所选择的视频输入端口,先启用对应的本地视频输入硬件接口,可通过以下代码实现:PortVPortVideo=new Localservice.Hardware.Interface(Video);再启用对应的本地音频输入硬件接口,可通过以下代码实现:Port VPortvoice=newLocalservice.Hardware.Interface(voice);最后,利用启用的上述硬件接口,将信息流推送给直播平台的信息流接收服务器(WebSTransfereSrvice),可通过以下代码实现:TransfereTfere=newWebSTransfereSrvice.PushFlow.Source(Video,voice)。
进一步的,为了更好地执行双屏推流功能,确保双屏推流的有效性。本实施例中,在步骤S6之后还包括双屏推流功能的有效性检查操作:判断双屏推流是否失败,若是,返回步骤S6,重新进行双屏推流;若否,则由直播平台的信息流接收服务器将所述信息流推送至CDN(Content Delivery Network,内容分发网络)服务器。本实施例中,判断双屏推流是否失败时,首先通过调用信息流接收服务器(WebSTransfereSrvice),查看主播ID对应的信息流是否在信息流接收服务器中有记录;若该记录为空,则判定双屏推流失败;若记录不为空,则判定双屏推流成功。具体来说,查看主播ID对应的信息流是否在信息流接收服务器中有记录时,可通过以下代码实现:if(WebSTransfereSrvice.Source(logid)!=null)。
参见图2所示,本发明实施例提供一种在直播中实现双屏推流的系统,该系统包括登录连接模块、码率选择模块、直播信息获取模块、双屏推流功能判断模块、双屏输入端口选择模块和双屏推流处理模块。
其中,登录连接模块用于:当主播登录直播平台进入直播间时,启动直播软件与直播平台连接;向码率选择模块发送码率选择信号。具体来说,其实际操作流程为:当主播登录直播平台并进入直播间时,通过直播平台的后台服务器获取当前主播的登录信息,并将该登录信息保存在本地的Cookie中;启动直播软件,利用直播软件读取本地的Cookie实现直播软件登录;在登录成功之后,通过内置的API连接直播平台的后台服务器。
码率选择模块用于:收到码率选择信号后,根据主播选择的需要推流的指定码率,为推流接口添加相应的推流码率的标识;并向直播信息获取模块发送信息获取信号。
直播信息获取模块用于:收到信息获取信号后,获取当前直播信息;并向双屏推流功能判断模块发送功能判断信号。具体来说,其实际操作流程为:利用直播软件获取当前推流接口所在的硬件平台标识;利用直播软件获取当前推流接口所对应的操作系统信息;根据获取的硬件平台标识和操作系统信息,调用对应的硬件平台的接口获取当前直播信息。
双屏推流功能判断模块用于:收到功能判断信号后,根据主播在直播软件中设置的双屏推流设置,判断主播是否开启双屏推流功能,若是,向双屏输入端口选择模块发送端口选择信号;否则,结束操作。
双屏输入端口选择模块用于:收到端口选择信号后,当主播进行双屏输入端口的选择时,实时获取主播所选择的双屏输入的端口;并向双屏推流处理模块发送推流处理信号。具体来说,其实际操作流程为:向主播弹出选择双屏输入端口的窗口;通过监听事件,对弹出的窗口的选择项的点击值进行实时监听,获取主播所选择的双屏输入的端口。
双屏推流处理模块用于:收到推流处理信号后,根据主播所选择的双屏输入的端口,启用对应的本地硬件接口;利用启用的硬件接口,按照添加的推流码率的标识将信息流推送给直播平台的信息流接收服务器,该信息流中包括有当前直播信息和其他需要推送的信息。
进一步地,参见图2所示,该系统还包括双屏推流功能检查模块。所述双屏推流功能检查模块用于对双屏推流功能的有效性进行检查:判断双屏推流是否失败,若是,向双屏推流处理模块发送推流处理信号,重新进行双屏推流;若否,则由直播平台的信息流接收服务器将所述信息流推送至CDN服务器。
需要说明的是:上述实施例提供的系统在进行操作时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将系统的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。
本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。