发明内容
有鉴于此,本发明实施例提供一种直播方法、装置、电子设备及可读存储介质,能够提高直播内容观看的实时性。
第一方面,本发明实施例提供一种直播方法,应用于直播客户端,所述直播方法包括:接收直播间进入请求;根据所述直播间进入请求,打开直播间;启动流媒体引擎,以使流媒体引擎与流媒体服务器建立通信连接;通过所述流媒体引擎,从所述流媒体服务器拉取直播内容,并在本地进行播放。
根据本发明实施例的一种具体实现方式,所述通过所述流媒体引擎,从所述流媒体服务器拉取直播内容,并在本地进行播放,包括:通过所述流媒体引擎,从所述流媒体服务器拉取主播和/或嘉宾的直播内容,并在本地进行播放。
根据本发明实施例的一种具体实现方式,在通过所述流媒体引擎,从所述流媒体服务器拉取直播内容,并在本地进行播放的同时,所述方法还包括:
通过所述流媒体引擎,从所述流媒体服务器拉取主播和/或嘉宾的属性信息,并将所述属性信息在直播客户端显示。
根据本发明实施例的一种具体实现方式,在通过所述流媒体引擎,从所述流媒体服务器拉取直播内容,并在本地进行播放之后,所述方法还包括:发起与主播的连麦请求;接收返回的与主播连麦成功消息;通过所述流媒体引擎,将本地的音频和/或视频数据推送至所述流媒体服务器,以使主播从所述流媒体服务器拉取本地的音频和/或视频数据。
根据本发明实施例的一种具体实现方式,在通过所述流媒体引擎,将本地的音频和/或视频数据推送至所述流媒体服务器,以使主播从所述流媒体服务器拉取本地的音频和/或视频数据之后,所述方法还包括:判断与主播持续连麦的时长是否达到预定时长阈值;若与主播持续连麦的时间达到预定时长阈值,则进行连麦中断提示。
根据本发明实施例的一种具体实现方式,在通过所述流媒体引擎,从所述流媒体服务器拉取直播内容,并在本地进行播放之后,所述方法还包括:发起与嘉宾的连麦请求;接收返回的与嘉宾连麦成功消息;通过所述流媒体引擎,将本地的音频和/或视频数据推送至所述流媒体服务器,以使嘉宾从所述流媒体服务器拉取本地的音频和/或视频数据。
根据本发明实施例的一种具体实现方式,在通过所述流媒体引擎,将本地的音频和/或视频数据推送至所述流媒体服务器,以使嘉宾从所述流媒体服务器拉取本地的音频和/或视频数据之后,所述方法还包括:判断与嘉宾持续连麦的时长是否达到预定时长阈值;若与嘉宾持续连麦的时间达到预定时长阈值,则进行连麦中断提示。
第二方面,本发明实施例提供一种直播装置,应用于直播客户端,所述直播装置包括:第一请求接收模块,直播间打开模块,第一通信模块,播放模块,其中,第一请求接收模块,用于接收直播问进入请求;直播间打开模块,用于根据所述直播间进入请求,打开直播间;第一通信模块,用于启动流媒体引擎,以使流媒体引擎与流媒体服务器建立通信连接;播放模块,用于通过所述流媒体引擎,从所述流媒体服务器拉取直播内容,并在本地进行播放。
根据本发明实施例的一种具体实现方式,所述播放模块,具体用于:
通过所述流媒体引擎,从所述流媒体服务器拉取主播和/或嘉宾的直播内容,并在本地进行播放。
根据本发明实施例的一种具体实现方式,所述播放模块,具体还用于:
通过所述流媒体引擎,从所述流媒体服务器拉取主播和/或嘉宾的属性信息,并将所述属性信息在直播客户端显示。
根据本发明实施例的一种具体实现方式,所述装置还包括:第一连麦请求发起模块,第一连麦消息接收模块,第一推流模块,其中,第一连麦请求发起模块,用于发起与主播的连麦请求;第一连麦消息接收模块,用于接收返回的与主播连麦成功消息;第一推流模块,用于通过所述流媒体引擎,将本地的音频和/或视频数据推送至所述流媒体服务器,以使主播从所述流媒体服务器拉取本地的音频和/或视频数据。
根据本发明实施例的一种具体实现方式,所述装置还包括:第一时长判断模块,第一中断提示模块,其中,第一时长判断模块,用于判断与主播持续连麦的时长是否达到预定时长阈值;第一中断提示模块,用于若与主播持续连麦的时间达到预定时长阈值,则进行连麦中断提示。
根据本发明实施例的一种具体实现方式,在通过所述流媒体引擎,从所述流媒体服务器拉取直播内容,并在本地进行播放之后,所述装置还包括:第二连麦请求发起模块,第二连麦消息接收模块,第二推流模块,其中,第二连麦请求发起模块,用于发起与嘉宾的连麦请求;第二连麦消息接收模块,用于接收返回的与嘉宾连麦成功消息;第二推流模块,用于通过所述流媒体引擎,将本地的音频和/或视频数据推送至所述流媒体服务器,以使嘉宾从所述流媒体服务器拉取本地的音频和/或视频数据。
根据本发明实施例的一种具体实现方式,所述装置还包括:第二时长判断模块,第二中断提示模块,其中,第二时长判断模块,用于判断与嘉宾持续连麦的时长是否达到预定时长阈值;第二中断提示模块,用于若与嘉宾持续连麦的时间达到预定时长阈值,则进行连麦中断提示。
第三方面,本发明实施例提供一种直播方法,应用于流媒体服务器,所述直播方法包括:接收第一直播客户端发起的直播间进入请求;第一直播客户端为观众客户端;根据所述直播间进入请求,将直播间信息推送第一直播客户端,以在第一直播客户端展示直播间;与第一直播客户端的流媒体引擎建立通信连接;提供直播内容,以供所述第一直播客户端的流媒体引擎拉取所述直播内容并在第一直播客户端本地进行播放。
根据本发明实施例的一种具体实现方式,所述提供直播内容,以供所述第一直播客户端的流媒体引擎拉取所述直播内容并在第一直播客户端本地进行播放,包括:提供主播和/或嘉宾的直播内容,以供所述第一直播客户端的流媒体引擎拉取所述直播内容并在第一直播客户端本地进行播放。
根据本发明实施例的一种具体实现方式,在提供直播内容,以供所述第一直播客户端的流媒体引擎拉取所述直播内容并在第一直播客户端本地进行播放的同时,所述方法还包括:提供主播和/或嘉宾的属性信息,以供所述第一直播客户端的流媒体引擎拉取所述主播和/或嘉宾的属性信息并在第一直播客户端显示。
根据本发明实施例的一种具体实现方式,在提供直播内容,以供所述第一直播客户端的流媒体引擎拉取所述直播内容并在第一直播客户端本地进行播放之前,所述方法还包括:与第二直播客户端的流媒体引擎建立通信连接;第二主播客户端为主播客户端;接收第二直播客户端推送的直播内容。
根据本发明实施例的一种具体实现方式,在提供直播内容,以供所述第一直播客户端的流媒体引擎拉取所述直播内容并在第一直播客户端本地进行播放之前,所述方法还包括:与第三直播客户端的流媒体引擎建立通信连接;第三主播客户端为嘉宾客户端;接收第三直播客户端推送的直播内容。
根据本发明实施例的一种具体实现方式,在提供直播内容,以供所述第一直播客户端的流媒体引擎拉取所述直播内容并在第一直播客户端本地进行播放之后,所述方法还包括:在第一直播客户端与主播或嘉宾连麦成功后,接收第一直播客户端推送的直播内容。
根据本发明实施例的一种具体实现方式,在第一直播客户端与主播或嘉宾连麦成功后,接收第一直播客户端推送的直播内容之后,所述方法还包括:
判断第一直播客户端与主播或嘉宾持续连麦的时长,是否达到预定时长阈值;若第一直播客户端与主播或嘉宾持续连麦的时间达到预定时长阈值,则向第一直播客户端发送连麦中断提示消息。
第四方面,本发明实施例提供一种直播装置,应用于流媒体服务器,所述直播装置包括:第二请求接收模块,直播间信息推送模块,第二通信模块,直播内容提供模块,其中,第二请求接收模块,用于接收第一直播客户端发起的直播间进入请求;第一主播客户端为观众客户端;直播间信息推送模块,用于根据所述直播间进入请求,将直播间信息推送第一直播客户端,以在第一直播客户端展示直播间;第二通信模块,用于与第一直播客户端的流媒体引擎建立通信连接;直播内容提供模块,用于提供直播内容,以供所述第一直播客户端的流媒体引擎拉取所述直播内容并在第一直播客户端本地进行播放。
根据本发明实施例的一种具体实现方式,所述直播内容提供模块,具体用于:提供主播和/或嘉宾的直播内容,以供所述第一直播客户端的流媒体引擎拉取所述直播内容并在第一直播客户端本地进行播放。
根据本发明实施例的一种具体实现方式,所述直播内容提供模块,具体还用于:提供主播和/或嘉宾的属性信息,以供所述第一直播客户端的流媒体引擎拉取所述主播和/或嘉宾的属性信息并在第一直播客户端显示。
根据本发明实施例的一种具体实现方式,所述装置还包括:第三通信模块,第一直播内容接收模块,其中,第三通信模块,用于与第二直播客户端的流媒体引擎建立通信连接;第二主播客户端为主播客户端;第一直播内容接收模块,用于接收第二直播客户端推送的直播内容。
根据本发明实施例的一种具体实现方式,所述装置还包括:第四通信模块,第二直播内容接收模块,其中,第四通信模块,用于与第三直播客户端的流媒体引擎建立通信连接;第三主播客户端为嘉宾客户端;第二直播内容接收模块,用于接收第三直播客户端推送的直播内容。
根据本发明实施例的一种具体实现方式,所述装置还包括:第三直播内容接收模块,用于在第一直播客户端与主播或嘉宾连麦成功后,接收第一直播客户端推送的直播内容。
根据本发明实施例的一种具体实现方式,所述装置还包括:第三时长判断模块,第三中断提示模块,其中,第三时长判断模块,用于判断第一直播客户端与主播或嘉宾持续连麦的时长,是否达到预定时长阈值;第三中断提示模块,用于若第一直播客户端与主播或嘉宾持续连麦的时间达到预定时长阈值,则向第一直播客户端发送连麦中断提示消息。
第五方面,本发明实施例提供一种电子设备,所述电子设备包括:壳体、处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;电源电路,用于为上述电子设备的各个电路或器件供电;存储器用于存储计算机程序;处理器通过读取存储器中存储的计算机程序,用于执行前述任一实现方式所述的方法。
第六方面,本发明实施例还提供计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现前述任一实现方式所述的方法。
本实施例,通过直播客户端启动流媒体引擎,使流媒体引擎与流媒体服务器建立通信连接,直播客户端可以从流媒体服务器直接拉取直播内容,并在本地进行播放,能够提高直播内容观看的实时性。
具体实施方式
下面结合附图对本发明实施例进行详细描述。
应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
第一方面,本发明实施例提供一种直播方法,应用于直播客户端,能够提高直播内容观看的实时性。
图1为本发明实施例提供的直播方法的流程图,应用于直播客户端,如图1所示,本实施例的方法可以包括:
步骤101、接收直播间进入请求。
本实施例中,当有用户打开直播客户端,在客户端的界面上出现提示进入直播间的信息,如“进入直播间”,用户点击该提示信息,请求进入直播间,则执行步骤102。
作为一可选实施例,当用户打开客户端同时也向客户端发起了进入直播间的请求。
步骤102、根据所述直播间进入请求,打开直播间。
本实施例中,直播客户端,接到进入直播间的请求后,打开直播间。
步骤103、启动流媒体引擎,以使流媒体引擎与流媒体服务器建立通信连接。
本实施例中,流媒体服务器是流媒体应用的核心***,是运营商向用户提供视频服务的关键平台。流媒体服务器的主要功能是对流媒体内容进行采集、缓存、调度和传输播放。
流媒体引擎是集中了多种服务功能于一体的多协议、多媒体格式的业务服务引擎,它可以支持包括WMV,REAL,MPEG,FTP,HTTP等多种服务。在多种不同终端设备上使用不同的多媒体引擎能保证顺利播放多种不同格式的视频内容。
直播客户端启动流媒体引擎,使流媒体引擎与流媒体服务器建立通信连接,即实现了客户端与服务端的通信连接。
步骤104、通过所述流媒体引擎,从所述流媒体服务器拉取直播内容,并在本地进行播放。
本实施例中,在本地进行播放,指在客户端显示界面中播放。拉取直播内容是指将服务器已有直播内容,根据协议类型,流媒体引擎与流媒体服务器建立通信连接并接收音、视频数据。
本实施例中,可根据UDP协议,流媒体引擎从流媒体服务器拉取直播内容。
本实施例,通过直播客户端启动流媒体引擎,使流媒体引擎与流媒体服务器建立通信连接,直播客户端可以从流媒体服务器直接拉取直播内容,并在本地进行播放,能够提高直播内容观看的实时性,以解决观看视频直播延迟的问题。
在本发明一实施例中,所述通过所述流媒体引擎,从所述流媒体服务器拉取直播内容,并在本地进行播放(步骤104),可包括:
通过所述流媒体引擎,从所述流媒体服务器拉取主播和/或嘉宾的直播内容,并在本地进行播放。
本实施例中,直播客户端的直播间显示界面上显示主播直播内容显示窗口和嘉宾直播内容显示窗口,并且可以将主播直播内容显示窗口和嘉宾直播内容显示窗口拖拽到直播间显示界面的任一位置,或者可以将任一窗口进行放大或缩小,或者将任一窗口关闭或隐藏。
本实施例,通过流媒体引擎,从流媒体服务器拉取主播和/或嘉宾的直播内容,拉取的主播和/或嘉宾的直播内容可以根据直播客户端使用者的意愿对任一直播内容显示窗口进行操作,提高了对直播显示界面的可操作性,从而提高用户体验。
在本发明一实施例中,所述通过所述流媒体引擎,从所述流媒体服务器拉取直播内容,并在本地进行播放(步骤104)的同时,还可包括:
通过所述流媒体引擎,从所述流媒体服务器拉取主播和/或嘉宾的属性信息,并将所述属性信息在直播客户端显示。
本实施例中,主播和/或嘉宾的属性信息,包括头像、注册时间、职业、特长、所在城市以及本次登录在线时长等信息。可以在观看直播内容的同时,在直播间显示界面显示主播和/或嘉宾的属性信息。
本实施例,在观看直播内容的同时,在直播间显示界面显示主播和/或嘉宾的属性信息,可以更方便观众选择是否与主播和/或嘉宾连麦或者选择与哪位嘉宾连麦,提高用户体验。
在本发明一实施例中,在通过所述流媒体引擎,从所述流媒体服务器拉取直播内容,并在本地进行播放(步骤104)之后,所述方法还包括:
步骤1041a、发起与主播的连麦请求;
本实施例中,连麦,指的是两个或几个人不在同一个地方,通过网络能进行视频通话或语音通话,具体应用场景如秀场直播,多主播连线,手游狼人杀,在线教育等,连麦成为丰富应用场景、活跃用户的手段。直播客户端可向流媒体服务器发起与主播的连麦请求。
步骤1042a、接收返回的与主播连麦成功消息;
本实施例中,流媒体服务器将直播客户端发起的连麦请求,发送给主播,当主播接受直播客户端连麦请求,流媒体服务器向直播客户端发送与主播连麦成功的消息。
本实施例中,主播可以从多个直播客户端的连麦请求中,接受部分或全部直播客户端的连麦请求。
步骤1043a、通过所述流媒体引擎,将本地的音频和/或视频数据推送至所述流媒体服务器,以使主播从所述流媒体服务器拉取本地的音频和/或视频数据。
本实施例中,本地的音频和/或视频数据是通过麦克风或摄像头等设备采集音、视频数据,再将采集到的音、视频数据编码,根据UDP协议推送至流媒体服务器,主播可从流媒体服务器中拉取所述的本地的音频和/或视频。
本实施例,直播客户端通过流媒体引擎,将直播客户端的本地的音频和/或视频数据推送至所述流媒体服务器,在与主播连麦成功后,主播可从所述流媒体服务器拉取本地的音频和/或视频数据,连麦与推送本地的音频和/或视频数据实现无缝连接,提高用户体验。
在本发明一实施例中,作为可选实施例,在发起与主播的连麦请求之后,接收返回的与主播连麦成功消息之前,所述方法还包括:
根据发起与主播连麦请求的优先级,显示所述连麦请求在连麦等待队列中的位置,其中,所述优先级根据观看所述直播内容的当前用户的属性信息确定
本实施例中,用户的属性信息可为注册时长、本次观看视频在线时长、所处地理位置等信息。如可根据在线时长判断优先级,在线时间越长的用户,优先级越高,可将其放入等待连麦队列越靠前的位置。或者根据所处地理位置进行优先级判断,与主播的地理位置越近的优先级越高,可将其放入等待连麦队列越靠前的位置。
本实施例,根据当前用户的属性信息确定用户与主播连麦请求的优先级,并显示所述连麦请求在连麦等待队列中的位置,用户可以清楚自己在等待队列中的位置并预估等待时间,在等待期间可以自由支配时间,如在等待期间可以选择接听其他人的电话,与其他人讨论问题等等,达到使用户有效利用时间的效果,提高用户体验。
在本发明一实施例中,在通过所述流媒体引擎,从所述流媒体服务器拉取直播内容,并在本地进行播放(步骤1043a)之后,所述方法还包括:
步骤1044a、判断与主播持续连麦的时长是否达到预定时长阈值;
本实施例中,预定时长阈值,可以为10分钟、30分钟、1小时等等。
步骤1045a、若与主播持续连麦的时间达到预定时长阈值,则进行连麦中断提示。
本实施例中,当与主播持续连麦的时间达到预定时长阈值,则进行连麦中断提示。中断提示信息可为即将中断连麦或者还有几秒钟、几十秒中即将中断连麦,中断提示信息可通过弹出提示栏或者语音提醒等方式提示用户。
本实施例,当与主播持续连麦的时间达到预定时长阈值,提示中断信息,使正在连麦的用户知道即将中断连麦,同时能够使其他请求连麦的用户能够成功连麦,避免部分用户自始至终占用网络资源,而其他用户无法享受网络资源的问题,提高用户体验。
在本发明一实施例中,作为可选实施例,直播客户端也可向信令服务器发起与主播的连麦请求,信令服务器向主播发送直播客户端的连麦请求,主播接受直播客户端连麦请求,信令服务器再向直播客户端发送与主播连麦成功的消息,之后,直播客户端通过流媒体引擎,将本地的音频和/或视频数据推送至流媒体服务器,以使主播从流媒体服务器拉取本地的音频和/或视频数据。
在本发明一实施例中,在通过所述流媒体引擎,从所述流媒体服务器拉取直播内容,并在本地进行播放(步骤104)之后,所述方法还包括:
步骤1041b、发起与嘉宾的连麦请求;
本实施例中,发起连麦请求的过程与步骤1041a相同,此处不再赘述。
步骤1042b、接收返回的与嘉宾连麦成功消息;
本实施例中,接收连麦请求的过程与步骤1042a相同,此处不再赘述。
步骤1043b、通过所述流媒体引擎,将本地的音频和/或视频数据推送至所述流媒体服务器,以使嘉宾从所述流媒体服务器拉取本地的音频和/或视频数据。
本实施例中,推送的过程与步骤1043a相同,此处不再赘述。
本实施例,直播客户端通过流媒体引擎,将直播客户端的本地的音频和/或视频数据推送至所述流媒体服务器,在与嘉宾连麦成功后,嘉宾可从所述流媒体服务器拉取本地的音频和/或视频数据,连麦与推送本地的音频和/或视频数据实现无缝连接,提高用户体验。
在本发明一实施例中,在通过所述流媒体引擎,将本地的音频和/或视频数据推送至所述流媒体服务器,以使嘉宾从所述流媒体服务器拉取本地的音频和/或视频数据(步骤1043b)之后,所述方法还包括:
步骤1044b、判断与嘉宾持续连麦的时长是否达到预定时长阈值;
本实施例中,预定时长阈值,可以为10分钟、30分钟、1小时等等。
步骤1045b若与嘉宾持续连麦的时间达到预定时长阈值,则进行连麦中断提示。
本实施例中,当与嘉宾持续连麦的时间达到预定时长阈值,则进行连麦中断提示。中断提示信息可为即将中断连麦或者还有几秒钟、几十秒中即将中断连麦,中断提示信息可通过弹出提示栏或者语音提醒等方式提示用户。
本实施例,当与嘉宾持续连麦的时间达到预定时长阈值,提示中断信息,使正在连麦的用户知道即将中断连麦,同时能够使其他请求连麦的用户能够成功连麦,避免部分用户自始至终占用网络资源,而其他用户无法享受网络资源的问题,提高用户体验。
在本发明一实施例中,作为可选实施例,直播客户端也可向信令服务器发起与嘉宾的连麦请求,信令服务器向嘉宾发送直播客户端的连麦请求,嘉宾接受直播客户端连麦请求,信令服务器再向直播客户端发送与嘉宾连麦成功的消息,之后,通过流媒体引擎,将本地的音频和/或视频数据推送至流媒体服务器,以使嘉宾从流媒体服务器拉取本地的音频和/或视频数据。
下面采用一个具体的实施例,对图1所示的直播方法进行详细说明。
图2为视频直播方案的示意图,图中有主播客户端A、嘉宾客户端B、C,观众客户端D和E,并且在上述客户端使用不同的多媒体引擎,保证顺利播放多种不同格式的视频内容。
观众客户端D、E观看直播内容的过程如下:
观众客户端D、E接收到直播间进入请求,并打开直播间,直播间显示进入直播间的提示信息;
点击进入直播间;
观众客户端D、E启动流媒体引擎,使流媒体引擎与流媒体服务器建立通信连接;
观众客户端D、E使用UDP协议,从流媒体服务器拉取主播客户端A、嘉宾客户端B和嘉宾客户端C的直播内容,观众客户端D、E在本地观看主播客户端A、嘉宾客户端B和嘉宾客户端C的直播内容,并可以看到主播客户端A所处城市为武汉、职业为导游,嘉宾客户端B所处城市为商丘、职位也医生和嘉宾客户端C所处城市为大连的职业信息、职业为秘书。
在观看直播内容的同时,观众客户端可将显示主播A、嘉宾B和嘉宾C的直播内容三个显示窗口,放在观众客户端直播显示界面的任一位置,如将主播客户端A的直播内容显示窗口放在观众客户端直播显示界面的左上角,并对其进行放大操作,嘉宾客户端B、C的直播内容显示窗口分别放在观众客户端直播显示界面的左下角和右下角,并对其进行缩小操作。
当观众客户端D、E观看了几分钟直播内容后,要参与连麦并推送数据,具体过程如下:
观众客户端D、E都想要了解旅游方面的信息,于是观众客户端D、E向流媒体服务器发起与主播客户端A的连麦请求;
流媒体服务器将连麦请求,发送至主播客户端A;
主播客户端A同意观众客户端D的连麦请求,而拒绝观众客户端E的连麦请求;
将同意观众客户端D的连麦请求和拒绝观众客户端E的连麦请求信息返回给流媒体服务器;
流媒体服务器向观众客户端D发送连麦成功的信息,此时,观众客户端D可通过流媒体引擎,将使用摄像头采集到的实时音频数据和视频数据推送至流媒体服务器;
当观众客户端D连麦持续时间达到30分钟,直播显示界面出现“10秒钟后中断连麦”的提示信息并在10秒钟后结束连麦。
主播客户端A使用UDP协议从流媒体服务器拉取客户端D推送的直播内容。
第二方面,本发明实施例提供一种直播装置,应用于直播客户端,能够提高直播内容观看的实时性。
图3为本发明实施例提供的直播装置结构示意图,应用于直播客户端,如图3所示,本实施例的直播装置,可以包括:第一请求接收模块11、直播间打开模块12、第一通信模块13及播放模块14;其中,
第一请求接收模块11,用于接收直播间进入请求;
直播间打开模块12,用于根据所述直播间进入请求,打开直播间;
第一通信模块13,用于启动流媒体引擎,以使流媒体引擎与流媒体服务器建立通信连接;
播放模块14,用于通过所述流媒体引擎,从所述流媒体服务器拉取直播内容,并在本地进行播放。
本实施例的装置,可以用于执行图1所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
在本发明一实施例中,所述播放模块14,具体用于:通过所述流媒体引擎,从所述流媒体服务器拉取主播和/或嘉宾的直播内容,并在本地进行播放。
在本发明一实施例中,所述播放模块14,具体还用于:通过所述流媒体引擎,从所述流媒体服务器拉取主播和/或嘉宾的属性信息,并将所述属性信息在直播客户端显示。
在本发明一实施例中,所述装置还包括:第一连麦请求发起模块141a,第一连麦消息接收模块142a,第一推流模块143a,其中,
第一连麦请求发起模块141a,用于发起与主播的连麦请求;
第一连麦消息接收模块142a,用于接收返回的与主播连麦成功消息;
第一推流模块143a,用于通过所述流媒体引擎,将本地的音频和/或视频数据推送至所述流媒体服务器,以使主播从所述流媒体服务器拉取本地的音频和/或视频数据。
在本发明一实施例中,所述装置还包括:所述装置还包括:第一时长判断模块144a,第一中断提示模块145a,其中,
第一时长判断模块144a,用于判断与主播持续连麦的时长是否达到预定时长阈值;
第一中断提示模块145a,用于若与主播持续连麦的时间达到预定时长阈值,则进行连麦中断提示。
在本发明一实施例中,所述装置还包括:第二连麦请求发起模块141b,第二连麦消息接收模块142b,第二推流模块143b,其中,
第二连麦请求发起模块141b,用于发起与嘉宾的连麦请求;
第二连麦消息接收模块142b,用于接收返回的与嘉宾连麦成功消息;
第二推流模块143b,用于通过所述流媒体引擎,将本地的音频和/或视频数据推送至所述流媒体服务器,以使嘉宾从所述流媒体服务器拉取本地的音频和/或视频数据。
在本发明一实施例中,所述装置还包括:第二时长判断模块144b,第二中断提示模块145b,其中,
第二时长判断模块144b,用于判断与嘉宾持续连麦的时长是否达到预定时长阈值;
第二中断提示模块145b,用于若与嘉宾持续连麦的时间达到预定时长阈值,则进行连麦中断提示。
第三方面,本发明实施例提供另一种直播方法,应用于流媒体服务器,能够提高直播内容观看的实时性。
图4为本发明实施例提供的直播方法的流程图,应用于流媒体服务器,如图4所示,本实施例的直播方法可以包括:
步骤201、接收第一直播客户端发起的直播间进入请求;第一直播客户端为观众客户端。
本实施例中,当用户打开观众客户端,向流媒体服务器发送直播间进入请求,流媒体服务器接收观众客户端发起的直播间进入请求。
步骤202、根据所述直播间进入请求,将直播间信息推送第一直播客户端,以在第一直播客户端展示直播间。
本实施例中,直播间信息可包括:主播名称,观众人数等信息。流媒体服务器根据直播间进入请求,搜索对应的直播间信息,流媒体服务器将直播间的信息推送到第一直播客户端。
步骤203、与第一直播客户端的流媒体引擎建立通信连接。
本实施例中,流媒体服务器是流媒体应用的核心***,是运营商向用户提供视频服务的关键平台。流媒体服务器的主要功能是对流媒体内容进行采集、缓存、调度和传输播放。
流媒体引擎是集中了多种服务功能于一体的多协议、多媒体格式的业务服务引擎,它可以支持包括WMV,REAL,MPEG,FTP,HTTP等多种服务。在多种不同终端设备上使用不同的多媒体引擎能保证顺利播放多种不同格式的视频内容。
流媒体服务器与第一直播客户端的流媒体引擎建立通信连接,即实现了客户端与服务端的通信连接,客户端将请求进入直播间的信息发送给流媒体服务器。
步骤204、提供直播内容,以供所述第一直播客户端的流媒体引擎拉取所述直播内容并在第一直播客户端本地进行播放。
本实施例中,在第一直播客户端本地进行播放,指的是在第一直播客户端的显示界面中播放。
流媒体服务器根据请求进入直播间的信息,搜索对应的直播间内容,第一直播客户端的流媒体引擎拉取流媒体服务器提供的直播内容并在第一直播客户端本地进行播放。
本实施例中,可根据UDP协议,流媒体引擎从流媒体服务器拉取直播内容。
本实施例,流媒体服务器接收观众客户端端的进入直播间的请求,并与第一直播客户端的流媒体引擎建立通信连接,流媒体服务器提供直播内容,供第一直播客户端的流媒体引擎拉取并在第一直播客户端本地进行播放,能够提高直播内容观看的实时性,以解决观看视频直播延迟的问题。
在本发明一实施例中,所述提供直播内容,以供所述第一直播客户端的流媒体引擎拉取所述直播内容并在第一直播客户端本地进行播放(步骤204),包括:
提供主播和/或嘉宾的直播内容,以供所述第一直播客户端的流媒体引擎拉取所述直播内容并在第一直播客户端本地进行播放。
本实施例中,第一直播客户端的直播间显示界面上显示拉取的主播直播内容显示窗口和/或嘉宾直播内容显示窗口,并且可以将主播直播内容显示窗口和嘉宾直播内容显示窗口拖拽到直播间显示界面的任一位置,或者可以将任一窗口进行放大或缩小,或者将任一窗口关闭或隐藏。
本实施例,通过流媒体引擎,从流媒体服务器拉取主播和/或嘉宾的直播内容,拉取的主播和/或嘉宾的直播内容可以根据直播客户端使用者的意愿对任一直播内容显示窗口进行操作,提高了对直播显示界面的可操作性,从而提高用户体验。
在本发明一实施例中,在提供直播内容,以供所述第一直播客户端的流媒体引擎拉取所述直播内容并在第一直播客户端本地进行播放的同时,所述方法还包括:
提供主播和/或嘉宾的属性信息,以供所述第一直播客户端的流媒体引擎拉取所述主播和/或嘉宾的属性信息并在第一直播客户端显示。
本实施例中,主播和/或嘉宾的属性信息,包括头像、注册时间、职业、特长、所在城市以及本次登录在线时长等信息。可以在观看直播内容的同时,在直播间显示界面显示主播和/或嘉宾的属性信息。
本实施例,在观看直播内容的同时,在直播间显示界面显示主播和/或嘉宾的属性信息,可以更方便观众选择是否与主播和/或嘉宾连麦或者选择与哪位嘉宾连麦,提高用户体验。
在本发明一实施例中,在提供直播内容,以供所述第一直播客户端的流媒体引擎拉取所述直播内容并在第一直播客户端本地进行播放(步骤204)之前,所述方法还包括:
步骤2041a、与第二直播客户端的流媒体引擎建立通信连接;第二主播客户端为主播客户端;
本实施例中,流媒体服务器与主播客户端的流媒体引擎建立通信连接,即实现了主播客户端与流媒体服务器的通信连接。
步骤2042a、接收第二直播客户端推送的直播内容。
本实施例中,第二直播客户端通过麦克风或摄像头等设备采集音、视频数据,再将采集到的音、视频数据编码,根据UDP协议推送至流媒体服务器。
本实施例,流媒体服务器分别与第一直播客户端、第二直播客户端建立通信,可接收第二直播客户端推送的直播内容并将直播内容推送给第一直播客户端。这样,实现了第一直播客户端同步观看第二直播客户端的直播内容,能够提高直播内容观看的实时性,以解决观看视频直播延迟的问题。
在本发明一实施例中,在提供直播内容,以供所述第一直播客户端的流媒体引擎拉取所述直播内容并在第一直播客户端本地进行播放(步骤204)之前,所述方法还包括:
步骤2041b、与第三直播客户端的流媒体引擎建立通信连接;第三主播客户端为嘉宾客户端;
本实施例中,流媒体服务器与嘉宾客户端的流媒体引擎建立通信连接,即实现了嘉宾客户端与流媒体服务器的通信连接。
步骤2042b、接收第三直播客户端推送的直播内容。
本实施例中,第三直播客户端通过麦克风或摄像头等设备采集音、视频数据,再将采集到的音、视频数据编码,根据UDP协议推送至流媒体服务器。
本实施例,流媒体服务器分别与第一直播客户端、第三直播客户端建立通信,可接收第三直播客户端推送的直播内容并将直播内容推送给第一直播客户端。这样,实现了第一直播客户端同步观看第三直播客户端的直播内容,能够提高直播内容观看的实时性,以解决观看视频直播延迟的问题。
在本发明一实施例中,作为可选实施例,在提供直播内容,以供所述第一直播客户端的流媒体引擎拉取所述直播内容并在第一直播客户端本地进行播放(步骤204)之后,所述方法还包括:
步骤205a、接收第一直播客户端发起的与主播或嘉宾的连麦请求;
本实施例中,流媒体服务器接收第一直播客户端发起的与主播或嘉宾的连麦请求。
作为一可选实施例,也可为第一直播客户端也可向信令服务器发起与主播或嘉宾的连麦请求。
步骤206a、根据第一直播客户端的用户的属性信息,确定连麦优先级;
本实施例中,用户的属性信息可为注册时长、本次观看视频在线时长、所处地理位置等信息。连麦优先级根据第一直播客户端的用户的属性信息确定,如可根据第一直播客户端的用户在线时长判断优先级,将在线时间越长的第一直播客户端的用户优先级越高。或者根据第一直播客户端的用户所处地理位置进行优先级判断,与主播的地理位置越近的优先级越高。
步骤207a、根据所述连麦优先级,确定连麦等待位置;
本实施例中,第一直播客户端的用户的优先级越高,其在等待连麦队列的位置越靠前。
步骤208a、根据所述连麦等待位置,将所述连麦请求放入等待连麦队列中的对应位置。
本实施例中,将优先级高的第一直播客户端的用户放入等待连麦队列中的越靠前的位置。
本实施例,根据当前用户的属性信息确定用户与主播或嘉宾连麦请求的优先级,并显示所述连麦请求在连麦等待队列中的位置,用户可以清楚自己在等待队列中的位置并预估等待时间,在等待期间可以自由支配时间,如在等待期间可以选择接听其他人的电话,与其他人讨论问题等等,达到使用户有效利用时间的效果,提高用户体验。
在本发明一实施例中,在提供直播内容,以供所述第一直播客户端的流媒体引擎拉取所述直播内容并在第一直播客户端本地进行播放(步骤204)之后,所述方法还包括:
步骤205、在第一直播客户端与主播或嘉宾连麦成功后,接收第一直播客户端推送的直播内容。
本实施例中,第一直播客户端发起与主播或嘉宾的连麦请求,流媒体服务器接收连麦请求,并将该请求发送给主播直播端或嘉宾直播端,当主播直播端或嘉宾直播端同意连麦请求并将同意连麦请求发送给流媒体服务器,流媒体服务器将同意连麦的消息发送给第一直播客户端,此时,第一直播客户端可以向流媒体服务器推送直播内容。
在本发明一实施例中,作为可选实施例,第一直播客户端也可向信令服务器发起与主播或嘉宾的连麦请求,信令服务器向主播或嘉宾的发送直播客户端的连麦请求,主播或嘉宾的接受直播客户端连麦请求,信令服务器再向直播客户端发送与主播或嘉宾的连麦成功的消息,之后,通过流媒体引擎,将本地的音频和/或视频数据推送至流媒体服务器,以使主播或嘉宾的从流媒体服务器拉取本地的音频和/或视频数据。
本实施例,通过流媒体服务器与流媒体引擎建立通信连接,第一直播客户端的流媒体引擎拉取所述直播内容并在第一直播客户端本地进行播放,当第一直播客户端与主播或嘉宾连麦成功,流媒体服务器接收第一直播客户端推送的直播内容。这样,连麦与推送本地的音频和/或视频数据实现无缝连接,提高用户体验。
在本发明一实施例中,在第一直播客户端与主播或嘉宾连麦成功后,接收第一直播客户端推送的直播内容之后,所述方法还包括:
步骤206、判断第一直播客户端与主播或嘉宾持续连麦的时长,是否达到预定时长阈值;
本实施例中,预定时长阈值,可以为10分钟、30分钟、1小时等等。
步骤207、若第一直播客户端与主播或嘉宾持续连麦的时间达到预定时长阈值,则向第一直播客户端发送连麦中断提示消息。
本实施例中,当与主播或嘉宾持续连麦的时间达到预定时长阈值,则进行连麦中断提示。中断提示信息可为即将中断连麦或者还有几秒钟、几十秒中即将中断连麦,中断提示信息可通过弹出提示栏或者语音提醒等方式提示用户。
本实施例,当与主播或嘉宾持续连麦的时间达到预定时长阈值,提示中断信息,使正在连麦的用户知道即将中断连麦,同时能够使其他请求连麦的用户能够成功连麦,避免部分用户自始至终占用网络资源,而其他用户无法享受网络资源的问题,提高用户体验。
下面采用一个具体的实施例,对图4所示的直播方法进行详细说明。
仍以图2所示的视频直播架构图为例对直播方法进行详细说明。
观众客户端D观看直播内容的过程如下:
流媒体服务器接收观众客户端D发起的直播间进入请求,将直播间的信息推送到观众客户端,直播间的信息包括主播名称、观看人数。
流媒体服务器与流媒体引擎建立通信连接;
流媒体服务器分别与主播客户端A和嘉宾客户端B的流媒体引擎建立通信连接,主播客户端A和嘉宾客户端B使用UDP协议分别向流媒体服务器推送各自的直播内容;
流媒体服务器根据直播间进入请求,搜索对应的流名称,观众客户端D使用UDP协议,从流媒体服务器拉取流名称对应的主播A、嘉宾B和嘉宾C的直播内容,并在观众客户端进行播放,同时显示主播客户端A所处城市为武汉、职业为导游,嘉宾客户端B所处城市为商丘、职位也医生和嘉宾客户端C所处城市为大连的职业信息、职业为秘书等属性信息;
当观众客户端D观看了几分钟直播内容后,要参与连麦并推送数据,流媒体服务器的具体工作过程如下:
观众客户端D对旅游感兴趣,向流媒体服务器发起与主播客户端A的连麦请求;
流媒体服务器将连麦请求,发送至主播客户端A,当主播客户端A同意观众客户端D的连麦请求,将同意连麦的信息返回给流媒体服务器;
流媒体服务器向观众客户端D发送连麦成功的信息,此时,流媒体服务器接收观众客户端D推送的实时音频数据和视频数据。
当观众客户端D连麦持续时间达到30分钟,流媒体服务器向观众客户端D发送“10秒钟后中断连麦”的提示信息。
第四方面,本发明实施例提供另一种直播装置,应用于流媒体服务器,能够提高直播内容观看的实时性。
图5为本发明实施例提供的直播装置结构示意图,应用于流媒体服务器,如图5所示,本实施例的直播装置可以包括:第二请求接收模块21、直播间信息推送模块22、第二通信模块23及直播内容提供模块24;其中,
第二请求接收模块21,用于接收第一直播客户端发起的直播间进入请求;第一主播客户端为观众客户端;
直播间信息推送模块22,用于根据所述直播间进入请求,将直播间信息推送第一直播客户端,以在第一直播客户端展示直播间;
第二通信模块23,用于与第一直播客户端的流媒体引擎建立通信连接;
直播内容提供模块24,用于提供直播内容,以供所述第一直播客户端的流媒体引擎拉取所述直播内容并在第一直播客户端本地进行播放。
本实施例的装置,可以用于执行图4所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
在本发明一实施例中,所述直播内容提供模块24,具体用于:
提供主播和/或嘉宾的直播内容,以供所述第一直播客户端的流媒体引擎拉取所述直播内容并在第一直播客户端本地进行播放。
在本发明一实施例中,所述直播内容提供模块24,具体还用于:提供主播和/或嘉宾的属性信息,以供所述第一直播客户端的流媒体引擎拉取所述主播和/或嘉宾的属性信息并在第一直播客户端显示。
在本发明一实施例中,所述装置还包括:第三通信模块241a,第一直播内容接收模块242a,其中,
第三通信模块241a,用于与第二直播客户端的流媒体引擎建立通信连接;第二主播客户端为主播客户端;
第一直播内容接收模块242a,用于接收第二直播客户端推送的直播内容。
在本发明一实施例中,所述装置还包括:
第四通信模块241b,用于与第三直播客户端的流媒体引擎建立通信连接;第三主播客户端为嘉宾客户端;
第二直播内容接收模块242b,用于接收第三直播客户端推送的直播内容。
在本发明一实施例中,所述装置还包括:
第三直播内容接收模块241c,用于在第一直播客户端与主播或嘉宾连麦成功后,接收第一直播客户端推送的直播内容。
在本发明一实施例中,所述装置还包括:第三时长判断模块242c,第三中断提示模块243c,其中,
第三时长判断模块242c,用于判断第一直播客户端与主播或嘉宾持续连麦的时长,是否达到预定时长阈值;
第三中断提示模块243c,用于若第一直播客户端与主播或嘉宾持续连麦的时间达到预定时长阈值,则向第一直播客户端发送连麦中断提示消息。
第五方面,本发明实施例还提供一种电子设备,图6为本发明电子设备一个实施例的结构示意图,可以实现本发明图1、4所示实施例的流程,如图6所示,上述电子设备可以包括:壳体41、处理器42、存储器43、电路板44和电源电路45,其中,电路板44安置在壳体41围成的空间内部,处理器42和存储器43设置在电路板44上;电源电路45,用于为上述电子设备的各个电路或器件供电;存储器43用于存储计算机程序;处理器42通过读取存储器43中存储的计算机程序,用于执行前述任一实施例所述的方法。
处理器42对上述步骤的具体执行过程以及处理器42通过运行计算机程序来进一步执行的步骤,可以参见本发明图1所示实施例的描述,在此不再赘述。
该电子设备以多种形式存在,包括但不限于:
(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iPhone)、多媒体手机、功能性手机,以及低端手机等。
(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:PDA、MID和UMPC设备等,例如iPad。
(3)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、***总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。
(4)其他具有数据交互功能的电子设备。
第六方面,本发明的实施例还提供计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现前述任一实现方式所述的方法。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、装置、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。
尤其,对于装置实施例而言,由于其基本相似于装置实施例,所以描述的比较简单,相关之处参见装置实施例的部分说明即可。
为了描述的方便,描述以上装置是以功能分为各种单元/模块分别描述。当然,在实施本发明时可以把各单元/模块的功能在同一个或多个软件和/或硬件中实现。
本领域普通技术人员可以理解实现上述实施例装置中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各装置的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(RandomAccessMemory,RAM)等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。