CN109756758A - 直播控制方法及装置 - Google Patents
直播控制方法及装置 Download PDFInfo
- Publication number
- CN109756758A CN109756758A CN201711057466.5A CN201711057466A CN109756758A CN 109756758 A CN109756758 A CN 109756758A CN 201711057466 A CN201711057466 A CN 201711057466A CN 109756758 A CN109756758 A CN 109756758A
- Authority
- CN
- China
- Prior art keywords
- live
- stream
- video stream
- server
- live video
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本发明公开了一种直播控制方法及装置,属于多媒体技术领域。所述方法包括:接收接入服务器发送的主播设备对应的第一标识,当查询到与第一标识对应的前置信令时,获取接入服务器为直播视频流提供的拉流地址,生成携带有拉流地址的控制信令,并将生成的控制信令发送至后台服务器,对应的,后台服务器根据拉流地址从接入服务器中拉取直播视频流并将直播视频流提供给至少一个观众设备;使得通过控制服务器查询是否存在与第一标识对应的前置信令,若存在则确定推送直播视频流的主播设备是合法的,允许主播设备与后台服务器的接入,此时控制服务器起到防火墙的作用,保障了直播内容的安全,避免了校验码被盗取而无法屏蔽异常及不合法的主播设备的接入的情况,达到减少直播异常,提高直播成功率的效果。
Description
技术领域
本发明实施例涉及多媒体技术领域,特别涉及一种直播控制方法及装置。
背景技术
直播系统包括主播设备、观众设备和服务器。主播设备是主播用户所使用的设备,主播设备用于提供直播视频流;观众设备是观众用户所使用的设备,观众设备用于播放该直播视频流;服务器用于控制是否将主播设备的直播视频流传输至观众设备。
相关技术中的直播控制方法包括以下几个步骤:当主播设备需要进行直播时,向服务器发送校验码获取请求,服务器生成一个校验码并返回至主播设备;主播设备向服务器发送推流请求,该推流请求携带有包括该校验码的推流地址;对应的,服务器接收主播设备发送的推流地址,并对该推流地址中的校验码进行校验,当服务器验证该校验码成功时,向主播设备返回验证成功结果,主播设备根据该验证成功结果向服务器推送与推流地址对应的直播视频流,使得观众设备能够从服务器中获取该直播视频流。
在上述方法中,校验码是易于被非法用户所截取到的。若非法用户盗取了校验码,则可以根据该校验码将其它直播视频流成功传输至观众设备,从而挤占了主播设备所需发布的正常直播内容,使得直播内容的安全无法保障。
发明内容
为了解决相关技术中直播控制方法的安全保障能力有限的问题,本发明实施例提供了一种直播控制方法及装置。所述技术方案如下:
第一方面,提供了一种直播控制方法,所述方法包括:
接收接入服务器发送的主播设备对应的第一标识,所述第一标识是所述接入服务器接收到所述主播设备所推送的直播视频流后发送的;
当查询到与所述第一标识对应的前置信令时,获取所述接入服务器为所述直播视频流提供的拉流地址,所述前置信令是所述主播设备发送的信令,所述前置信令的第一接收时刻早于所述第一标识第二接收时刻且两者之间的差值小于第一预定值;
生成携带有所述拉流地址的控制信令;
将生成的所述控制信令发送至后台服务器。
第二方面,提供了一种直播控制装置,所述装置包括:
第一接收模块,用于接收接入服务器发送的主播设备对应的第一标识,所述第一标识是所述接入服务器接收到所述主播设备所推送的直播视频流后发送的;
第一获取模块,用于当查询到与所述第一标识对应的前置信令时,获取所述接入服务器为所述直播视频流提供的拉流地址,所述前置信令是所述主播设备发送的信令,所述前置信令的第一接收时刻早于所述第一标识的第二接收时刻且两者之间的差值小于第一预定值;
生成模块,用于生成携带有所述拉流地址的控制信令;
发送模块,用于将生成的所述控制信令发送至后台服务器。
第三方面,提供了一种服务器,所述服务器包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现第一方面所提供的直播控制方法。
第四方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现第一方面所提供的直播控制方法。
本发明实施例提供的技术方案带来的有益效果是:
通过接收接入服务器发送的主播设备对应的第一标识,当查询到与第一标识对应的前置信令时,获取接入服务器为直播视频流提供的拉流地址,生成携带有拉流地址的控制信令,并将生成的控制信令发送至后台服务器;使得通过控制服务器查询是否存在与第一标识对应的前置信令,若存在则确定推送直播视频流的主播设备是合法的,允许主播设备与后台服务器的接入,此时控制服务器起到防火墙的作用,保障了直播内容的安全,避免了校验码被盗取而无法屏蔽异常及不合法的主播设备的接入的情况,达到减少直播异常,提高直播成功率的效果。
附图说明
图1是本发明实施例提供的直播控制方法所涉及的实施环境的结构示意图;
图2是本发明一个实施例提供的直播控制方法的流程图;
图3是本发明另一个实施例提供的直播控制方法的流程图;
图4是本发明另一个实施例提供的直播控制方法的流程图;
图5是本发明另一个实施例提供的直播控制方法的流程图;
图6是本发明一个实施例提供的直播控制方法涉及的原理示意图;
图7是本发明另一个实施例提供的直播控制装置的结构示意图;
图8是本发明另一个实施例提供的直播控制装置的结构示意图;
图9是本发明一个实施例提供的终端900的结构示意图;
图10是本发明一个实施例提供的服务器160的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
首先,对本发明实施例涉及到的一些名词进行解释:
直播设备:是运行有直播客户端的设备。其中,直播客户端是用于进行网络直播的应用程序。直播设备包括主播设备和观众设备。
主播设备:是主播用户所使用的设备,主播设备上运行有推流客户端,推流客户端用于提供直播视频流。其中,直播视频流为直播画面流和/或直播音频流。
推流客户端登录有第一标识。可选的,第一标识是推流客户端对应的主播帐号的帐号标识,用于唯一标识推流客户端。比如,第一标识是主播帐号的用户名称、手机号、身份证号、服务器分配的字符串中的一种。
观众设备:是观众用户所使用的设备,主播设备上运行有播放客户端,播放客户端用于播放直播视频流。
播放客户端登录有第二标识。可选的,第二标识是播放客户端对应的观众帐号的帐号标识,用于唯一标识播放客户端。比如,第二标识为观众帐号的用户名称、手机号、身份证号、服务器分配的字符串中的一种。
直播频道(或称,直播间,房间等):是指一个通信集合,每个直播视频流对应的通信集合对应有一个直播码,该直播码用于唯一标识该直播频道。可选的,直播码也称房间号。
每个直播频道对应的通信集合中包括第一标识和第二标识。通常,第一标识的数量为一个,第二标识的数量为至少一个。
请参考图1,其示出了本发明实施例提供的直播控制方法所涉及的实施环境的结构示意图。该实施环境包括:主播设备120、观众设备140和服务器160。
主播设备120可以为诸如电脑,智能手机、平板电脑和电子书阅读器之类的电子设备。
主播设备120上安装有推流客户端,该推流客户端是拥有直播视频流上传权限的客户端。可选的,推流客户端是集成特定直播软件开发工具包(Software DevelopmentKit,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。
接入服务器161用于实现主播设备120与后台服务器164的对接。
比如,接入服务器为采用实时消息传输协议(Real Time Messaging Protocol,RTMP)的服务器,简称RTMP服务器。
可选的,接入服务器161中存储有主播设备120推送的直播视频流对应的推流地址和拉流地址。直播视频流的推流地址与拉流地址存在一一对应的关系。
对于每个直播视频流,推流地址是接入服务器161中用于推送该直播视频流的外网地址,拉流地址是接入服务器161中用于拉取该直播视频流的内网地址。
比如,当主播设备120需要进行推流时,主播设备120根据推流地址向接入服务器161发送直播视频流。
又比如,当后台服务器164接收到控制服务器162发送的控制信令时,根据控制信令携带的拉流地址,从接入服务器161中拉取直播视频流。
控制服务器162用于验证主播设备120的接入权限。控制服务器162还用于当验证出主播设备120的接入权限是合法的时,向后台服务器164发送控制信令,该控制信令用于指示后台服务器164从接入服务器161中获取直播视频流。
可选的,控制服务器162包括权限认证模块和信令控制模块。权限认证模块用于校验直播视频对应的推流地址是否正确。信令控制模块用于校验推送该直播视频的主播设备是否合法。
控制服务器162包括两个独立的服务器,分别为权限认证服务器和信令控制服务器,权限认证服务器具有上述的权限认证模块的功能,信令控制服务器具有上述的信令控制模块的功能;或者,控制服务器162是集成权限认证模块和信令控制模块的一个服务器。
可选的,该信令控制模块采用即插即用方式,当直播场景为预设直播场景和/或直播视频的直播流信息所采用的直播流协议为预设直播流协议时,执行下面各个方法实施例所涉及的直播控制方法。
其中,预设直播场景包括推流场景和/或拉流场景,推流场景为接入服务器161被动接受主播设备120发送的直播流信息的场景,拉流场景为接入服务器161主动向主播设备120获取直播流信息的场景,预设直播流协议包括RTMP协议、超文本传输协议(HyperTextTransfer Protocol,HTTP)、实时流传输协议(Real Time Streaming Protocol,RTSP)中的至少一种。
调度服务器163用于存储各个主播设备对应的至少一个直播视频流的直播信息。可选的,直播视频流的直播信息是指该在将直播视频流从主播设备120传输至观众设备140的过程中与该直播视频流相关的信息。
后台服务器164用于从接入服务器161中获取直播视频流,并将该直播视频流提供给至少一个观众设备140。
可选的,后台服务器164包括中转服务器、转封装服务器和内容分发网络(ContentDelivery Network,CDN)中的至少一种。中转服务器用于从接入服务器161中拉取直播视频流。转封装服务器用于对拉取到的直播视频流进行转码并封装;比如,将直播视频流的流媒体(FlashVideo,FLV)格式转化为HLS(英文:HTTP Live Streaming)协议对应的传输流(Transport Stream,TS)格式并进行封装。CDN用于向至至少一个观众设备140提供直播视频流。
其中,HLS协议对应的视频格式可以是TS格式,也可以是m3u8格式。
请参考图2,其示出了本发明一个实施例提供的直播控制方法的流程图。本实施例以该直播控制方法应用于图1所示出的实施环境来举例说明。该直播控制方法包括:
步骤201,接收接入服务器发送的主播设备对应的第一标识,第一标识是接入服务器接收到主播设备所推送的直播视频流后发送的。
主播设备将直播视频流推送至接入服务器,接入服务器接收到该直播视频流之后,将主播设备对应的第一标识发送至控制服务器;对应的,控制服务器接收到该主播设备对应的第一标识,并将接收到该第一标识的时刻确定为第一标识的第二接收时刻。
比如,控制服务器在2017年08月14日18时02分接收到接入服务器发送的主播设备对应的第一标识为“test_123”,并记录该第一标识“test_123”的第二接收时刻为“2017年08月14日18时02分”。
需要说明的是,在主播设备将直播视频流推送至接入服务器之前,即当主播设备存在推送直播视频流的需求时,主播设备生成携带有第一标识的前置信令,并向控制服务器发送该前置信令;对应的,控制服务器接收到主播设备发送的前置信令,将接收到该前置信令的时刻确定为第一接收时刻,并存储第一标识、前置信令和第一接收时刻这三者之间的第一对应关系。
示意性的,第一对应关系如表一所示。从表一中可看出,控制服务器在2017年08月14日18时00分接收到第一标识为“test_123”的主播设备发送的前置信令A100,控制服务器在2017年08月14日18时30分接收到第一标识为“test_157”的主播设备发送的前置信令A120,控制服务器在08月14日19时00分接收到第一标识为“test_188”的主播设备发送的前置信令A130。
表一
第一标识 | 前置信令 | 第一接收时刻 |
test_123 | A100 | 2017年08月14日18时00分 |
test_157 | A120 | 2017年08月14日18时30分 |
test_188 | A130 | 2017年08月14日19时00分 |
步骤202,当查询到与第一标识对应的前置信令时,获取接入服务器为直播视频流提供的拉流地址,前置信令是主播设备发送的信令,前置信令的第一接收时刻早于第一标识的第二接收时刻且两者之间的差值小于第一预定值。
前置信令的第一接收时刻是控制服务器最近一次接收到主播设备发送的与第一标识对应的前置信令的时刻,第一标识的第二接收时刻控制服务器接收到接入服务器发送的主播设备对应的第一标识的时刻。
当控制服务器接收到主播设备对应的第一标识时,在存储的第一对应关系中查询是否存在与第一标识对应的前置信令,该前置信令的第一接收时刻早于第一标识的第二接收时刻且两者之间的差值小于第一预定值。当查询到存在与第一标识对应的前置信令,即确定推送该直播视频流的主播设备是合法的。
比如,当控制服务器在2017年08月14日18时02分接收到主播设备对应的第一标识“test_123”时,基于上述的表一所提供的第一对应关系,查询到与第一标识“test_123”对应的前置信令A100,该前置信令的第一接收时刻“2017年08月14日18时00分”早于第一标识的第二接收时刻““2017年08月14日18时02分”且两者之间的差值“2分钟”小于第一预定值“8分钟”,因此查询到存在与第一标识“test_123”对应的前置信令A100。
由于接入服务器在接收主播设备发送的直播视频流时,根据主播设备对应的第一标识,确定与该第一标识对应的拉流地址,将确定出的该第一标识对应的拉流地址上报至调度服务器。对应的,调度服务器接收接入服务器发送的第一标识对应的拉流地址,存储第一标识与拉流地址的第二对应关系;因此,当控制服务器查询到与第一标识对应的前置信令时,控制服务器从调度服务器中获取与第一标识对应的拉流地址。
示意性的,如表二所示,在调度服务器中存储有第一标识与拉流地址的第二对应关系。其中,第一标识“test_123”对应的接入服务器中的拉流地址为“rtmp://ipxxx/live/yyy.com”,第一标识“test_157”对应的接入服务器中的拉流地址为“rtmp://ipxxx/live/zzz.com”,第一标识“test_188”对应的接入服务器中的拉流地址为“rtmp://ipxxx/live/www.com”。
表二
第一标识 | 拉流地址 |
test_123 | rtmp://ipxxx/live/yyy.com |
test_157 | rtmp://ipxxx/live/zzz.com |
test_188 | rtmp://ipxxx/live/www.com |
比如,基于表二所提供的第二对应关系,控制服务器从调度服务器中获取与第一标识“test_123”对应的拉流地址“rtmp://ipxxx/live/yyy.com”。
步骤203,生成携带有拉流地址的控制信令。
控制服务器根据获取到的接入服务器为直播视频流提供的拉流地址,生成携带有拉流地址的控制信令,该控制信令用于指示后台服务器根据拉流地址从接入服务器中拉取直播视频流,并将直播视频流提供给至少一个观众设备。
比如,控制服务器生成携带有拉流地址“rtmp://ipxxx/live/yyy.com”的控制信令。
步骤204,将生成的控制信令发送至后台服务器。
控制服务器将生成的控制信令发送至后台服务器,对应的,后台服务器接收控制信令,根据控制信令中的拉流地址,从接入服务器中拉取直播视频流,并将直播视频流提供给至少一个观众设备。
比如,控制服务器将携带有拉流地址“rtmp://ipxxx/live/yyy.com”的控制信令发送至后台服务器,后台服务器从接入服务器中的拉流地址“rtmp://ipxxx/live/yyy.com”中拉取直播视频流,并将该直播视频流提供给至少一个观众设备。
在后台服务器从接入服务器中拉取到直播视频流之后,对直播视频流进行处理,处理包括转码和/或封装,然后将处理后的直播视频流提供给至少一个观众设备。
其中,视频封装格式包括音频视频交错格式(Audio Video Interleaved,AVI)、FLV格式、TS格式和动态图像专家组(Moving Picture Experts Group 4,MP4)格式中的至少一种。
由于观众设备包括移动设备和个人电脑(Personal Computer,PC)设备这两种类型的设备,因此后台服务器对直播视频流进行处理包括但不限于以下两种可能的实现方式:
在一种可能的实现方式中,当观众设备为PC设备,即直播视频流是用于提供给PC设备进行播放的视频流时,后台服务器在拉取到直播视频流之后,将直播视频流的RTMP协议对应的FLV格式转为PC设备播放该直播视频流时所需的HTTP协议对应的FLV格式。
在另一种可能的实现方式中,当观众设备为移动设备,即直播视频流是用于提供给移动设备进行播放的视频流时,后台服务器在拉取到直播视频流之后,将直播视频流的RTMP协议对应的FLV格式转为HTTP协议对应的FLV格式,再将HTTP协议对应的FLV格式转码并封装为移动设备播放该直播视频流时所需的HLS协议对应的TS格式。
综上所述,本发明实施例通过接收接入服务器发送的主播设备对应的第一标识,当查询到与第一标识对应的前置信令时,获取接入服务器为直播视频流提供的拉流地址,生成携带有拉流地址的控制信令,并将生成的控制信令发送至后台服务器;使得通过控制服务器查询是否存在与第一标识对应的前置信令,若存在则确定推送直播视频流的主播设备是合法的,允许主播设备与后台服务器的接入,此时控制服务器起到防火墙的作用,保障了直播内容的安全,避免了校验码被盗取而无法屏蔽异常及不合法的主播设备的接入的情况,达到减少直播异常,提高直播成功率的效果。
请参考图3,其示出了本发明另一个实施例提供的直播控制方法的流程图。本实施例以该直播控制方法应用于图1所示出的实施环境来举例说明。该直播控制方法包括:
步骤301,主播设备根据触发操作向控制服务器发送前置信令,该前置信令携带有主播设备对应的第一标识。
主播设备检测对应于直播视频流的第一触发操作,当主播设备检测到第一触发操作时,生成携带有第一标识的前置信令,并向控制服务器发送该前置信令,该前置信令用于指示控制服务器该主播设备存在推送直播视频流的需求。
可选的,第一触发操作是用于触发推送直播视频流的用户操作。示意性的,第一触发操作包括点击操作、滑动操作、按压操作、长按操作中的任意一种或多种的组合。
在其它可能的实现方式中,第一触发操作也可以语音形式实现。比如,主播用户在主播设备中以语音形式输入预设信息,主播设备获取到语音信号之后,对该语音信号进行解析获取语音内容,当语音内容中存在与预设信息相匹配的关键字词时,即主播设备确定对应于直播视频流的第一触发操作被触发。
步骤302,控制服务器接收前置信令,并存储前置信令与第一标识的对应关系。
控制服务器接收到主播设备发送的前置信令时,将接收到前置信令的时刻确定为第一接收时刻,并存储前置信令、第一标识和第一接收时刻这三者之间的对应关系。
步骤303,主播设备根据推流地址向接入服务器推送直播视频流。
当主播设备需要推送直播视频流时,先确定该直播视频流对应的推流地址,在主播设备向控制服务器发送前置信令之后,根据推流地址向接入服务器推送直播视频流。
主播设备确定直播视频流对应的推流地址的过程包括但不限于以下几个步骤:
1、主播设备向接入服务器发送签名密钥请求信息,签名密钥请求信息携带有主播设备对应的第一标识。
2、控制服务器接收该签名密钥请求信息,从预设列表中获取与第一标识对应的签名密钥,将该签名密钥发送至主播设备,该预设列表中存储有第一标识与签名密钥的对应关系。
主播设备在控制服务器中协商一个签名密钥,主播设备和控制服务器中均存储有第一标识与签名密钥的对应关系。该主播设备的签名密钥用于在加密过程中生成第一校验码,控制服务器中的签名密钥用于在过程中生成第二校验码,以使得控制服务器根据第二校验码对第一校验码进行校验。
3、主播设备根据签名密钥,通过预定算法生成第一校验码。
可选的,主播设备在生成第一校验码之前,还需要确定该直播视频流的直播码和时间戳。
直播码包括随机数字或第一标识,比如直播码为“8888_test_123”。
时间戳用于指示该推流地址的有效时间,该时间戳由主播设备对应的主播用户设置。时间戳通常用十六进制表示。比如,5867D600代表该推流地址的有效时间到2017年1月1日0时0分为止。
预定算法为消息摘要算法第五版(Message Digest Algorithm MD5,MD5)算法,该MD5算法为标准的MD5单向不可逆哈希算法。
主播设备根据签名密钥、直播码和时间戳,通过如下公式计算得到第一校验码:
txSecret=MD5(KEY+stream_id+txTime);
其中,txSecret为第一校验码,KEY为签名密钥,stream_id为直播码,txTime为时间戳。
4、主播设备根据第一校验码生成推流地址以及直播频道。
主播设备根据推流域名、直播码、第一校验码和时间戳生成推流地址。
比如,推流域名为“rtmp:/8888.livepush.xxxxyyyyzz.com”,直播码为“8888_test_123”,第一校验码为“aaaa”,时间戳为“5867D600”,则生成的推流地址为“rtmp:/8888.livepush.xxxxyyyyzz.com/live/8888_test_123?&txSecret=aaaa&txTime=5867D600”。
在生成推流地址的同时,确定该直播视频流对应的直播频道,该直播频道用于唯一标识该直播视频流,从而使得至少一个观众用户可以进入该直播频道观看该主播用户提供直播视频流对应的直播视频。
步骤304,接入服务器接收述主播设备根据推流地址推送的直播视频流。
接入服务器接收述主播设备推送的直播视频流,确定该主播设备的第一标识和该直播视频流对应的推流地址。
步骤305,接入服务器向控制服务器发送直播视频流的推流地址。
在第一种可能的实现方式中,接入服务器向控制服务器发送直播视频流的推流地址,该推流地址携带有主播设备对应的第一标识。
在第二种可能的实现方式中,接入服务器向控制服务器发送直播视频流的推流地址和主播设备对应的第一标识。下面仅以第一种可能的实现方式为例进行说明。
步骤306,控制服务器接收接入服务器发送的直播视频流的推流地址,该推流地址携带有直播码和第一校验码。
控制服务器在接收到直播视频流的推流地址时,从推流地址中提取主播设备对应的第一标识,还从推流地址中提取直播码和第一校验码。
步骤307,控制服务器查询是否存在与第一标识对应的签名密钥。
控制服务器在存储的至少一个密钥中查询是否存在与第一标识对应的签名密钥。
步骤308,当查询到与第一标识对应的签名密钥时,控制服务器根据签名密钥和推流地址中的直播码,通过预定算法生成第二校验码。
控制服务器基于签名密钥和直播码,通过MD5算法生成第二校验码,生成第二校验码的过程可参考主播设备生成第一校验码的相关细节,在此不再赘述。
步骤309,控制服务器比较推流地址中的第一校验码与生成的第二校验码是否一致。
控制服务器比较推流地址中的第一校验码与生成的第二校验码是否一致,若一致,则控制服务器执行步骤310;若不一致,则确定验证失败,则控制服务器向接入服务器反馈验证失败信息,该验证失败信息用于指示接入服务器不允许该主播设备的接入,或者该验证失败信息用于指示接入服务器删除该主播设备推送的直播流信息。
步骤310,当推流地址中的第一校验码与生成的第二校验码一致时,控制服务器查询是否存在与第一标识对应的前置信令。
控制服务器查询是否存在与第一标识对应的前置信令包括但不限于以下几个步骤:
1、控制服务器查询是否存在与第一标识对应的候选前置信令。
2、若存在与第一标识对应的候选前置信令,则控制服务器判断该候选前置信令是否满足预定条件。
预定条件包括前置信令的第一接收时刻早于第一标识的第二接收时刻且两者之间的差值小于第一预定值。
3、若该候选前置信令满足预定条件,则控制服务器将该候选前置信令确定为与第一标识对应的前置信令。
步骤311,当查询到与第一标识对应的前置信令时,控制服务器获取接入服务器为直播视频流提供的拉流地址。
步骤312,控制服务器生成携带有拉流地址的控制信令。
控制服务器生成携带有拉流地址的控制信令之前,根据获取到的拉流地址从接入服务器中确定直播视频流是否推流成功,若该直播视频流推流成功,则判断该直播视频流是否满足预设条件,若满足预设条件,则生成携带有拉流地址的控制信令。
示意性的,控制服务器根据拉流地址,从接入服务器获取直播视频流对应的直播流探测信息,当直播流探测信息满足预设条件时,控制服务器为直播视频流生成携带有拉流地址的控制信令。
其中,直播流探测信息包括直播视频流对应的码率,分辨率,直播流协议,运营商信息中的至少一种。
码率是主播设备将直播视频流传输到接入服务器时,直播视频流的码率。直播视频流的码率为视频传输时单位时间传送的数据位数,因此,直播视频流传输的码率越高,画面质量也就越好,码率为实时码率或者是一段时间内的码率。
分辨率是主播设备将直播视频流传输到接入服务器时,直播视频流的分辨率。直播视频流的分辨率为视频传输时单位英寸中所包含的像素点数,因此,直播视频流传输的分辨率越高,画面质量也就越好。
直播流协议是传输直播视频流过程中所采用的流协议,包括RTMP协议、HTTP协议、RTSP协议中的至少一种。
运营商信息通常包括与提供网络服务的供应商相关的信息。
其中,预设条件包括码率大于第一预设阈值、分辨率大于第二预设阈值、直播流协议为预设直播流协议、运营商信息为预设运营商信息中的至少一种。
需要说明的是,本实施例对涉及到的第一预定值、第二预定值、第一预设阈值和第二预设阈值等的取值均不加以限定。
步骤313,控制服务器将携带有拉流地址的控制信令发送至后台服务器。
步骤314,后台服务器根据拉流地址从接入服务器中拉取直播视频流。
后台服务器向接入服务器发送直播流拉取请求,该直播流拉取请求携带有拉流地址,接入服务器接收到该直播流拉取请求后,向后台服务器发送与拉流地址对应的直播视频流;对应的,后台服务器从接入服务器的拉流地址中获取对应的直播视频流。
步骤315,观众设备从后台服务器中获取该直播视频流。
可选的,至少一个观众设备从后台服务器中获取该直播视频流。获取过程包括:后台服务器将直播视频流输出到直播频道所在的播放地址,使得观众设备能够通过直播频道的播放地址(如统一资源定位符(Uniform Resource Locator,URL))获取到该直播视频流。
比如,如表三所示,接入服务器为直播视频流提供的推流地址为:rtmp://3891.livepush.xxxxyyyyzz.com/live/3891_test?bizid=3891&txSecret=xxx&txTime=58540F7F,则后台服务器为该直播视频流提供三种不同的播放地址。当播放协议为RTMP协议时,该直播视频流的播放地址为:rtmp://3891.liveplay.xxxxyyyyzz.com/live/3891_test;当播放协议为FLV协议时,该直播视频流的播放地址为:h ttp://3891.liveplay.xxxxyyyyzz.com/live/3891_test.flv;当播放协议为HLS协议时,该直播视频流的播放地址为:http://3891.liveplay.xxxxyyyyzz.com/live/3891_test.m3u8。
表三
播放协议 | 播放地址 |
RTMP协议 | rtmp://3891.liveplay.xxxxyyyyzz.com/live/3891_test |
HTTP协议 | http://3891.liveplay.xxxxyyyyzz.com/live/3891_test.flv |
HLS协议 | http://3891.liveplay.xxxxyyyyzz.com/live/3891_test.m3u8 |
综上所述,本发明实施例还通过控制服务器接收接入服务器发送的直播视频流的推流地址,该推流地址携带有直播码和第一校验码,查询是否存在与第一标识对应的签名密钥,当查询到与第一标识对应的签名密钥时,控制服务器根据签名密钥和推流地址中的直播码,通过预定算法生成第二校验码,当推流地址中的第一校验码与生成的第二校验码一致时,控制服务器查询是否存在与第一标识对应的前置信令;使得控制服务器能够采用校验码和前置信令结合的方式,控制主播设备的接入,提高了直播内容的可靠性和安全性。
本发明实施例还通过制服务器根据拉流地址,从接入服务器获取直播视频流对应的直播流探测信息,当直播流探测信息满足预设条件时,控制服务器为直播视频流生成携带有拉流地址的控制信令;避免了推理未成功即接入服务器中没有直播视频流而导致播放设备在播放时出现黑屏的情况,保证了直播视频流传输的稳定性。
需要说明的是,调度服务器中存储有各个主播设备对应的至少一个直播视频流的直播信息。可选的,直播视频流的直播信息包括该直播视频流的直播码、直播开始时刻、直播状态、上传速率、下载速率、码率,分辨率,直播流协议,运营商信息中的至少一种。
直播开始时刻是主播设备预先设置的开始向观众设备进行播放该直播视频流的时刻。
直播视频流的直播状态包括直播前状态、直播中状态和直播结束状态中的至少一种。对于每个直播视频流,调度服务器实时监测并更新该直播视频流的直播状态。可选的,直播视频流的直播状态还包括直播删除状态、直播下架状态等。本实施例对此不加以限定。
上传速率是主播设备向接入服务器上传直播视频流时的速度。上传速率越高,表示当前网络质量越好。上传速率为实时上传速率或者是一段时间内的平均上传速率。
下载速率是观众设备从后台服务器下载直播视频流时的速度。下载速率越高,表示当前网络质量越好。下载速率为实时下载速率或者是一段时间内的平均下载速率。
关于码率,分辨率,直播流协议,运营商信息的描述可参考图3所提供的实施例中的相关细节,在此不再赘述。
上述步骤313可具体包括如下几个步骤,如图4所示:
步骤401,控制服务器根据控制信令对应的直播视频流,获取直播视频流的拉流时刻,拉流时刻早于直播开始时刻且两者之间的差值小于第二预定值。
可选的,预先根据直播视频流的直播开始时刻,设置该直播视频流的拉流时刻。比如,直播开始时刻为2016年12月31日0点0分,设置拉流时刻为2016年12月30日23点55分。
每个直播视频流的拉流时刻可以是调度服务器设置的,也可以是主播设备对应的主播用户设置的。每个直播视频流的拉流时刻对应的第二预设阈值可以是相同的,也可以是不同的。本实施例对此不加以限定。
由于调度服务器中还存储有每个直播视频流的直播码与拉流时刻的对应关系,因此,控制服务器在生成控制信令后,先确定控制信令对应的直播视频流,再根据直播视频流的直播码,从调度服务器中获取与该直播码对应的拉流时刻。
步骤402,控制服务器判断当前时刻是否早于该直播视频流的拉流时刻。
控制服务器确定当前时刻,若当前时刻早于拉流时刻,则执行步骤403;若当前时刻晚于或等于拉流时刻,则执行步骤404。
步骤403,若当前时刻早于拉流时刻,则将拉流时刻确定为控制指令的发送时刻。
比如,当前时刻为2016年12月30日23点50分,此时当前时刻早于拉流时刻“2016年12月30日23点55分”,则控制服务器将该拉流时刻确定为控制指令的发送时刻,暂时不发送控制信令,等待5分钟后,在“2016年12月30日23点55分”的时刻,将控制信令发送至后台服务器。
步骤404,若当前时刻晚于或等于拉流时刻,则将当前时刻确定为控制指令的发送时刻。
比如,当前时刻为2016年12月30日23点58分,此时当前时刻晚于拉流时刻“2016年12月30日23点55分”,则控制服务器将当前时刻确定为控制指令的发送时刻,在“2016年12月30日23点58分”的时刻,直接将控制信令发送至后台服务器。
步骤405,控制服务器按照发送时刻,将控制信令发送至后台服务器。
可选的,控制服务器在确定出发送时刻时,从调度服务器中获取该发送时刻对应的直播视频流的直播状态,当直播状态为直播前状态或直播中状态时,将控制信令发送至后台服务器。
综上所述,本发明实施例还通过从调度服务器中获取发送时刻对应的直播视频流的直播状态,当直播视频流的直播状态为直播前状态或直播中状态时,将控制信令发送至后台服务器;避免了当直播视频流的直播状态为直播结束时仍然向后台服务器发送控制信令,后台服务器仍然持续向接入服务服务器拉取直播视频流的情况,节省了后台服务器的宽带资源。
相关技术中,主播用户希望在正式直播前对所发布的直播视频流进行预览时,通过主播设备向接入服务器发送预览请求,该预览请求携带有该直播视频流的直播码,接入服务器在接收到预览请求后,确定与直播码对应的预览地址,该预览地址是接入服务器为该直播视频流提供的预览地址,并将该预览地址返回至主播设备,对应的,主播设备根据该预览地址从接入服务器中获取直播视频流,以供主播用户进行预览。
但是,在上述方法中,主播用户通过主播设备预览的直播视频流是接入服务器提供的,观众用户通过观众设备实际观看的直播视频流是从接入服务器拉取后经过后台服务器一系列的处理(比如:转码和/或封装)后由CDN提供的,因此,主播用户预览的直播视频流并非是实际直播的直播视频流,也就无法通过预览提前排除可能出现的直播问题,从而无法避免在正式直播时出现如黑屏、花屏或卡顿等的直播问题。
为此,本发明实施例对主播设备预览直播视频流的方法进行了改进。该直播控制方法还包括以下几个步骤,如图5所示:
步骤501,主播设备向控制服务器发送预览请求,预览请求携带有直播视频流的第一视频格式,第一视频格式用于指示直播视频流是用于提供给观众设备为移动设备进行播放的视频流。
当观众设备为移动设备时,后台服务器提供给移动设备的直播视频流的视频格式为第一视频格式,比如,第一视频格式为HLS协议对应的TS格式或者m3u8格式。
当主播用户需要进行预览时,通过主播设备向控制服务器发送预览请求,该预览请求携带有直播视频流的直播码和第一视频格式。
步骤502,控制服务器接收主播设备发送的预览请求。
步骤503,控制服务器获取后台服务器为直播视频流提供与第一视频格式对应的预览地址。
控制服务器在接收到主播设备发送的预览请求之后,获取该预览请求中的直播视频流的直播码和第一视频格式,从调度服务器中获取与直播码和第一视频格式对应的预览地址;其中,直播码、第一视频格式和预览地址这三者之间存在一一对应的关系。
步骤504,控制服务器向主播设备返回预览地址。
控制服务器向主播设备返回后台服务器中该直播视频流的预览地址。
步骤505,主播设备根据预览地址对直播视频流进行预览。
主播设备根据预览地址,从后台服务器中获取直播视频流,并对直播视频流进行预览。
主播设备在对直播视频流进行预览时,展示提示信息,该提示信息用于提示主播用户该直播视频流可能存在的播放问题,和/或提示主播用户查看该直播视频流的直播源,即通过主播设备从接入服务器中获取第二视频格式的直播视频流,即上述相关技术中的预览方式。比如,第二视频格式为FLV格式。
综上所述,本发明实施例还通过主播设备向控制服务器发送预览请求,预览请求携带有直播视频流的第一视频格式,第一视频格式用于指示直播视频流是用于提供给观众设备为移动设备进行播放的视频流,控制服务器获取后台服务器为直播视频流提供与第一视频格式对应的预览地址,并向主播设备返回预览地址,使得主播设备根据预览地址对直播视频流进行预览,避免在正式直播时出现如黑屏、花屏或卡顿等的直播问题,保障该直播视频流在观众设备中正式直播时的可靠性和稳定性。
在一个示意性的例子中,如图6所示,介绍一下主播设备120通过多个服务器向观众设备140推送直播视频流的过程。其中,观众设备140包括PC设备142和移动设备144。主播设备120根据触发操作向控制服务器162发送前置信令A100,该前置信令A100携带有主播设备120对应的第一标识“test_123,”控制服务器162接收前置信令A100,并存储前置信令与第一标识“test_123”的对应关系;主播设备120根据推流地址“rtmp:/8888.livepush.xxxxyyyyzz.com/live/8888_test_123?&txSecret=aaaa&txTime=5867D600”向RTMP服务器161推送直播视频流,RTMP服务器161接收述主播设备120根据该推流地址推送的直播视频流,向控制服务器162发送直播视频流的推流地址,接收RTMP服务器161发送的直播视频流的推流地址,该推流地址携带有直播码“8888_test_123”和第一校验码“aaaa,”当控制服务器162查询到与第一标识“test_123”对应的签名密钥X1时,控制服务器162根据签名密钥和推流地址中的直播码“8888_test_123,”通过预定算法生成第二校验码X2,控制服务器162比较推流地址中的第一校验码X1与生成的第二校验码X2一致后,若查询与第一标识“test_123”对应的前置信令A100,则控制服务器162获取RTMP服务器161为直播视频流提供的拉流地址“/live/xxxxyyyyzzrtmp://ipxxx/live/xxxxyyyyzz.com,”将携带有该拉流地址的控制信令发送至中转服务器165,中转服务器165根据该拉流地址从RTMP服务器161中拉取直播视频流之后,一方面,中转服务器165将直播视频流的RTMP协议对应的FLV格式转为PC设备142播放该直播视频流时所需HTTP协议对应的FLV格式,将该FLV格式的直播视频流发送至CDN166,使得至少一个P C设备142从CDN166中获取该FLV格式的直播视频流;另一方面,中转服务器165将直播视频流的RTMP协议对应的FLV格式转为HTTP协议对应的FLV格式,再通过转封装服务器167将直播视频流的FLV格式转码并封装为移动设备播放该直播视频流时所需的HLS协议对应的TS格式,转封装服务器167将封装好的直播视频流发送至CDN168,使得至少一个移动设备144从CDN168中获取该直播视频流。主播设备120还可以向控制服务器162发送预览请求,该预览请求携带有HLS协议对应的TS格式或FLV格式。下面仅以预览请求携带有TS格式为例进行说明。控制服务器162根据预览请求,确定CDN168为该直播视频流提供的与TS格式对应的预览地址,并向主播设备120返回该预览地址,在主播设备120从控制服务器162中获取到预览地址之后,根据该预览地址从CDN168中获取直播视频流,以供主播用户进行预览。
下述为本发明装置实施例,可以用于执行本发明方法实施例。对于本发明装置实施例中未披露的细节,请参照本发明方法实施例。
请参考图7,其示出了本发明一个实施例提供的直播控制装置的结构示意图。该直播控制装置可以通过专用硬件电路,或者,软硬件的结合实现成为图1中的服务器160的全部或一部分,该直播控制装置包括:第一接收模块701、第一获取模块702、生成模块703和发送模块704。
第一接收模块701,用于实现上述步骤201。
第一获取模块702,用于实现上述步骤202。
生成模块703,用于实现上述步骤203或312。
发送模块704,用于实现上述步骤204。
在基于图7所示实施例提供的一个可选实施例中,如图8所示,该装置,还包括:第二接收模块705、生成模块706和查询模块707。
第二接收模块705,用于实现上述步骤306。
生成模块706,用于实现上述步骤308。
查询模块707,用于实现上述步骤310。
在基于图7所示实施例提供的一个可选实施例中,如图8所示,该生成模块706,包括:第一获取单元706a和生成单元706b。
第一获取单元706a,用于根据拉流地址,从接入服务器获取直播视频流对应的直播流探测信息,直播流探测信息包括直播视频流对应的码率,分辨率,直播流协议,运营商信息中的至少一种。
生成单元706b,用于当直播流探测信息满足预设条件时,为直播视频流生成携带有拉流地址的控制信令。
其中,预设条件包括码率大于第一预设阈值、分辨率大于第二预设阈值、直播流协议为预设直播流协议、运营商信息为预设运营商信息中的至少一种。
在基于图7所示实施例提供的一个可选实施例中,如图8所示,该装置,还包括:第二获取模块708、第一确定模块709和第二确定模块710。
第二获取模块708,用于实现上述步骤401。
第一确定模块709,用于实现上述步骤403。
第二确定模块710,用于实现上述步骤404。
发送模块704,还用于实现上述步骤405。
在基于图7所示实施例提供的一个可选实施例中,如图8所示,该发送模块704,包括:第二获取单元704a和发送单元704b。
第二获取单元704a,用于从调度服务器中获取发送时刻对应的直播视频流的直播状态,直播视频流的直播状态包括直播前状态、直播中状态和直播结束状态中的至少一种。
发送单元704b,用于当直播视频的直播状态为直播前状态或直播中状态时,将控制信令发送至后台服务器。
在基于图7所示实施例提供的一个可选实施例中,如图8所示,该装置,还包括:第三接收模块711、第三获取模块712和返回模块713。
第二接收模块711,用于实现上述步骤502。
第三获取模块712,用于实现上述步骤503。
返回模块713,用于实现上述步骤504。
相关细节可结合参考图1至图6所示的方法实施例。其中,第一接收模块701还用于实现上述方法实施例中其他任意隐含或公开的与接收步骤相关的功能;第一获取模块702还用于实现上述方法实施例中其他任意隐含或公开的与获取步骤相关的功能;生成模块703还用于实现上述方法实施例中其他任意隐含或公开的与生成步骤相关的功能;发送模块704还用于实现上述方法实施例中其他任意隐含或公开的与发送步骤相关的功能。
需要说明的是,上述实施例提供的装置,在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
请参考图9,其示出了本发明一个实施例提供的终端900的结构示意图,该终端可以是图1中的主播设备120,也可以是图1中的观众设备140。具体来讲:设备900可以包括RF(Radio Frequency,射频)电路910、包括有一个或一个以上计算机可读存储介质的存储器920、输入单元930、显示单元940、传感器950、音频电路960、WiFi(wireless fidelity,无线保真)模块970、包括有一个或者一个以上处理核心的处理器980、以及电源990等部件。本领域技术人员可以理解,图9中示出的设备结构并不构成对设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
RF电路910可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,交由一个或者一个以上处理器980处理;另外,将涉及上行的数据发送给基站。通常,RF电路910包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、用户身份模块(SIM)卡、收发信机、耦合器、LNA(Low Noise Amplifier,低噪声放大器)、双工器等。此外,RF电路910还可以通过无线通信与网络和其他设备通信。无线通信可以使用任一通信标准或协议,包括但不限于GSM(Global System of Mobile communication,全球移动通讯系统)、GPRS(General Packet Radio Service,通用分组无线服务)、CDMA(CodeDivision Multiple Access,码分多址)、WCDMA(Wideband Code Division MultipleAccess,宽带码分多址)、LTE(Long Term Evolution,长期演进)、电子邮件、SMS(ShortMessaging Service,短信息服务)等。存储器920可用于存储软件程序以及模块。处理器980通过运行存储在存储器920的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器920可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据设备900的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器920可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器920还可以包括存储器控制器,以提供处理器980和输入单元930对存储器920的访问。
输入单元930可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,输入单元930可包括触敏表面931以及其他输入设备932。触敏表面931,也称为触摸显示屏或者触控板,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触敏表面931上或在触敏表面931附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触敏表面931可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器980,并能接收处理器980发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触敏表面931。除了触敏表面931,输入单元930还可以包括其他输入设备932。具体地,其他输入设备932可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元940可用于显示由用户输入的信息或提供给用户的信息以及设备90的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元940可包括显示面板941,可选的,可以采用LCD(Liquid Crystal Display,液晶显示器)、OLED(Organic Light-Emitting Diode,有机发光二极管)等形式来配置显示面板941。进一步的,触敏表面931可覆盖在显示面板941之上,当触敏表面931检测到在其上或附近的触摸操作后,传送给处理器980以确定触摸事件的类型,随后处理器980根据触摸事件的类型在显示面板941上提供相应的视觉输出。虽然在图9中,触敏表面931与显示面板941是作为两个独立的部件来实现输入和输入功能,但是在某些实施例中,可以将触敏表面931与显示面板941集成而实现输入和输出功能。
设备900还可包括至少一种传感器950,比如光传感器、运动传感器以及其它传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板941的亮度,接近传感器可在设备900移动到耳边时,关闭显示面板941和/或背光。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于设备900还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其它传感器,在此不再赘述。
音频电路960、扬声器921,传声器922可提供用户与设备900之间的音频接口。音频电路960可将接收到的音频数据转换后的电信号,传输到扬声器921,由扬声器921转换为声音信号输出;另一方面,传声器922将收集的声音信号转换为电信号,由音频电路960接收后转换为音频数据,再将音频数据输出处理器980处理后,经RF电路910以发送给另一设备,或者将音频数据输出至存储器920以便进一步处理。音频电路960还可能包括耳塞插孔,以提供外设耳机与设备900的通信。
WiFi属于短距离无线传输技术,设备900通过WiFi模块970可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图9示出了WiFi模块970,但是可以理解的是,其并不属于设备900的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器980是设备900的控制中心,利用各种接口和线路连接整个设备的各个部分,通过运行或执行存储在存储器920内的软件程序和/或模块,以及调用存储在存储器920内的数据,执行设备900的各种功能和处理数据,从而对设备进行整体监控。可选的,处理器980可包括一个或多个处理核心;可选的,处理器980可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器980中。
设备900还包括给各个部件供电的电源990(比如电池),优选的,电源可以通过电源管理系统与处理器980逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源990还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
尽管未示出,设备900还可以包括摄像头、蓝牙模块等,在此不再赘述。
请参考图10,其示出了本发明一个实施例提供的服务器160的结构示意图。该服务器包括图1中的服务器160。具体来讲:所述服务器160包括中央处理单元(CPU)1001、包括随机存取存储器(RAM)1002和只读存储器(ROM)1003的系统存储器1004,以及连接系统存储器1004和中央处理单元1001的系统总线1005。所述服务器160还包括帮助计算机内的各个器件之间传输信息的基本输入/输出系统(I/O系统)1006,和用于存储操作系统1013、应用程序1014和其他程序模块1015的大容量存储设备1007。
所述基本输入/输出系统1006包括有用于显示信息的显示器1008和用于用户输入信息的诸如鼠标、键盘之类的输入设备1009。其中所述显示器1008和输入设备1009都通过连接到系统总线1005的输入输出控制器1010连接到中央处理单元1001。所述基本输入/输出系统1006还可以包括输入输出控制器1010以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器1010还提供输出到显示屏、打印机或其他类型的输出设备。
所述大容量存储设备1007通过连接到系统总线1005的大容量存储控制器(未示出)连接到中央处理单元1001。所述大容量存储设备1007及其相关联的计算机可读介质为服务器160提供非易失性存储。也就是说,所述大容量存储设备1007可以包括诸如硬盘或者CD-ROI驱动器之类的计算机可读介质(未示出)。
不失一般性,所述计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、EPROM、EEPROM、闪存或其他固态存储其技术,CD-ROM、DVD或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知所述计算机存储介质不局限于上述几种。上述的系统存储器1004和大容量存储设备1007可以统称为存储器。
根据本发明的各种实施例,所述服务器160还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即服务器160可以通过连接在所述系统总线1005上的网络接口单元1011连接到网络1012,或者说,也可以使用网络接口单元1011来连接到其他类型的网络或远程计算机系统(未示出)。
可选的,该存储器中存储有至少一条指令、至少一段程序、代码集或指令集,至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现上述各个方法实施例提供的直播控制方法。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的直播控制方法中全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。或者说,该存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,该至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现如上述各个方法实施例中所述的直播控制方法。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (15)
1.一种直播控制方法,其特征在于,所述方法包括:
接收接入服务器发送的主播设备对应的第一标识,所述第一标识是所述接入服务器接收到所述主播设备所推送的直播视频流后发送的;
当查询到与所述第一标识对应的前置信令时,获取所述接入服务器为所述直播视频流提供的拉流地址,所述前置信令是所述主播设备发送的信令,所述前置信令的第一接收时刻早于所述第一标识的第二接收时刻且两者之间的差值小于第一预定值;
生成携带有所述拉流地址的控制信令;
将生成的所述控制信令发送至后台服务器。
2.根据权利要求1所述的方法,其特征在于,所述当查询到与所述第一标识对应的前置信令时,获取所述接入服务器为所述直播视频流提供的拉流地址之前,还包括:
接收所述接入服务器发送的所述直播视频流的推流地址,所述推流地址携带有直播码和第一校验码;
当查询到与所述第一标识对应的签名密钥时,根据所述签名密钥和所述推流地址中的所述直播码,通过预定算法生成第二校验码;
当所述推流地址中的所述第一校验码与生成的所述第二校验码一致时,查询是否存在与所述第一标识对应的所述前置信令。
3.根据权利要求1或2所述的方法,其特征在于,所述生成携带有所述拉流地址的控制信令,包括:
根据所述拉流地址,从所述接入服务器获取所述直播视频流对应的直播流探测信息,所述直播流探测信息包括所述直播视频流对应的码率,分辨率,直播流协议,运营商信息中的至少一种;
当所述直播流探测信息满足预设条件时,为所述直播视频流生成携带有所述拉流地址的所述控制信令;
其中,所述预设条件包括所述码率大于第一预设阈值、所述分辨率大于第二预设阈值、所述直播流协议为预设直播流协议、所述运营商信息为预设运营商信息中的至少一种。
4.根据权利要求1或2所述的方法,其特征在于,所述将生成的所述控制信令发送至所述后台服务器之前,还包括:
根据所述控制信令对应的所述直播视频流,获取所述直播视频流的拉流时刻,所述拉流时刻早于所述直播开始时刻且两者之间的差值小于第二预定值;
若当前时刻早于所述拉流时刻,则将所述拉流时刻确定为所述控制指令的发送时刻;
若当前时刻晚于或等于所述拉流时刻,则将所述当前时刻确定为所述控制指令的发送时刻;
所述将生成的所述控制信令发送至所述后台服务器,包括:
按照所述发送时刻,将所述控制信令发送至所述后台服务器。
5.根据权利要求4所述的方法,其特征在于,所述根据所述发送时刻,将所述控制信令发送至所述后台服务器,包括:
从所述调度服务器中获取所述发送时刻对应的所述直播视频流的直播状态,所述直播视频流的所述直播状态包括直播前状态、直播中状态和直播结束状态中的至少一种;
当所述直播视频的所述直播状态为所述直播前状态或所述直播中状态时,将所述控制信令发送至所述后台服务器。
6.根据权利要求1至5任一所述的方法,其特征在于,所述方法,还包括:
接收所述主播设备发送的预览请求,所述预览请求携带有所述直播视频流的第一视频格式,所述第一视频格式用于指示所述直播视频流是用于提供给所述观众设备为移动设备进行播放的视频流;
获取所述后台服务器为所述直播视频流提供与所述第一视频格式对应的预览地址;
向所述主播设备返回所述预览地址,所述主播设备用于根据所述预览地址从所述后台服务器中获取所述直播视频流。
7.根据权利要求1至5任一所述的方法,其特征在于,所述控制信令用于指示所述后台服务器根据所述拉流地址从所述接入服务器中拉取所述直播视频流,并将所述直播视频流提供给至少一个观众设备。
8.一种直播控制装置,其特征在于,所述装置包括:
第一接收模块,用于接收接入服务器发送的主播设备对应的第一标识,所述第一标识是所述接入服务器接收到所述主播设备所推送的直播视频流后发送的;
第一获取模块,用于当查询到与所述第一标识对应的前置信令时,获取所述接入服务器为所述直播视频流提供的拉流地址,所述前置信令是所述主播设备发送的信令,所述前置信令的第一接收时刻早于所述第一标识的第二接收时刻且两者之间的差值小于第一预定值;
生成模块,用于生成携带有所述拉流地址的控制信令;
发送模块,用于将生成的所述控制信令发送至后台服务器。
9.根据权利要求8所述的装置,其特征在于,所述装置,还包括:
第二接收模块、生成模块和查询模块;
所述第二接收模块,用于接收所述接入服务器发送的所述直播视频流的推流地址,所述推流地址携带有直播码和第一校验码;
所述生成模块,用于当查询到与所述第一标识对应的签名密钥时,根据所述签名密钥和所述推流地址中的所述直播码,通过预定算法生成第二校验码;
所述查询模块,用于当所述推流地址中的所述第一校验码与生成的所述第二校验码一致时,查询是否存在与所述第一标识对应的所述前置信令。
10.根据权利要求8或9所述的装置,其特征在于,所述生成模块,包括:
第一获取单元和生成单元;
所述第一获取单元,用于根据所述拉流地址,从所述接入服务器获取所述直播视频流对应的直播流探测信息,所述直播流探测信息包括所述直播视频流对应的码率,分辨率,直播流协议,运营商信息中的至少一种;
所述生成单元,用于当所述直播流探测信息满足预设条件时,为所述直播视频流生成携带有所述拉流地址的所述控制信令;
其中,所述预设条件包括所述码率大于第一预设阈值、所述分辨率大于第二预设阈值、所述直播流协议为预设直播流协议、所述运营商信息为预设运营商信息中的至少一种。
11.根据权利要求8或9所述的装置,其特征在于,所述装置,还包括:
第二获取模块、第一确定模块和第二确定模块;
所述第二获取模块,用于根据所述控制信令对应的所述直播视频流,获取所述直播视频流的拉流时刻,所述拉流时刻早于所述直播开始时刻且两者之间的差值小于第二预定值;
所述第一确定模块,用于若当前时刻早于所述拉流时刻,则将所述拉流时刻确定为所述控制指令的发送时刻;
所述第二确定模块,用于若当前时刻晚于或等于所述拉流时刻,则将所述当前时刻确定为所述控制指令的发送时刻;
所述发送模块,还用于按照所述发送时刻,将所述控制信令发送至所述后台服务器。
12.根据权利要求11所述的装置,其特征在于,所述发送模块,包括:
第二获取单元和发送单元;
所述第二获取单元,用于从所述调度服务器中获取所述发送时刻对应的所述直播视频流的直播状态,所述直播视频流的所述直播状态包括直播前状态、直播中状态和直播结束状态中的至少一种;
所述发送单元,用于当所述直播视频的所述直播状态为所述直播前状态或所述直播中状态时,将所述控制信令发送至所述后台服务器。
13.根据权利要求8至12任一所述的装置,其特征在于,所述装置,还包括:
第三接收模块、第三获取模块和返回模块;
所述第二接收模块,用于接收所述主播设备发送的预览请求,所述预览请求携带有所述直播视频流的第一视频格式,所述第一视频格式用于指示所述直播视频流是用于提供给所述观众设备为移动设备进行播放的视频流;
所述第三获取模块,用于获取所述后台服务器为所述直播视频流提供与所述第一视频格式对应的预览地址;
所述返回模块,用于向所述主播设备返回所述预览地址,所述主播设备用于根据所述预览地址从所述后台服务器中获取所述直播视频流。
14.一种服务器,其特征在于,所述服务器包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如权利要求1至7所述的直播控制方法。
15.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如权利要求1至7所述的直播控制方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711057466.5A CN109756758B (zh) | 2017-11-01 | 2017-11-01 | 直播控制方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711057466.5A CN109756758B (zh) | 2017-11-01 | 2017-11-01 | 直播控制方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109756758A true CN109756758A (zh) | 2019-05-14 |
CN109756758B CN109756758B (zh) | 2021-01-01 |
Family
ID=66398119
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711057466.5A Active CN109756758B (zh) | 2017-11-01 | 2017-11-01 | 直播控制方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109756758B (zh) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110198311A (zh) * | 2019-05-21 | 2019-09-03 | 腾讯科技(深圳)有限公司 | 一种数据流处理方法、装置、设备及介质 |
CN110418154A (zh) * | 2019-07-30 | 2019-11-05 | 腾讯科技(深圳)有限公司 | 一种多媒体数据推送方法、装置及系统 |
CN110691255A (zh) * | 2019-09-06 | 2020-01-14 | 上海商米科技集团股份有限公司 | 网络直播的防盗链方法、系统和装置 |
CN111314725A (zh) * | 2020-02-19 | 2020-06-19 | 安徽文香信息技术有限公司 | 一种直播访问的方法、系统、设备及计算机存储介质 |
CN111432248A (zh) * | 2020-03-30 | 2020-07-17 | 北京百度网讯科技有限公司 | 直播视频流的质量监控方法和装置 |
CN111818121A (zh) * | 2020-05-26 | 2020-10-23 | 杭州爱教乐学科技有限公司 | 直播通信方法、装置、计算机设备及存储介质 |
CN112533016A (zh) * | 2020-11-27 | 2021-03-19 | 四川弘和通讯有限公司 | 基于预警信息触发手机html5低延时直播视频的方法 |
CN113068059A (zh) * | 2021-03-22 | 2021-07-02 | 平安普惠企业管理有限公司 | 视频直播方法、装置、设备及存储介质 |
WO2021143881A1 (zh) * | 2020-01-17 | 2021-07-22 | 北京达佳互联信息技术有限公司 | 直播流的拉流方法及设备 |
CN113438505A (zh) * | 2021-06-02 | 2021-09-24 | 曙光网络科技有限公司 | 视频文件的还原方法、装置、计算机设备和存储介质 |
CN113473116A (zh) * | 2021-07-12 | 2021-10-01 | 杭州时趣信息技术有限公司 | 一种直播质量监测方法、装置及介质 |
CN113766251A (zh) * | 2020-06-22 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 直播连麦的处理方法、系统、服务器及存储介质 |
CN114257835A (zh) * | 2021-12-31 | 2022-03-29 | 广东省教育研究院 | 基于教育云平台的直播系统及其直播方法 |
CN114501068A (zh) * | 2022-04-07 | 2022-05-13 | 鹏城实验室 | 视频直播方法、架构、系统及计算机可读存储介质 |
CN114827633A (zh) * | 2022-06-17 | 2022-07-29 | 浙江华创视讯科技有限公司 | 一种媒体流容灾方法、装置和相关设备 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103561285A (zh) * | 2013-10-11 | 2014-02-05 | 深圳市同洲电子股份有限公司 | 一种节目播放方法及网络推流服务器 |
CN103731756A (zh) * | 2014-01-02 | 2014-04-16 | 中国科学院信息工程研究所 | 一种基于智能云电视网关的智能家居远程安全访问控制实现方法 |
CN104954828A (zh) * | 2015-06-16 | 2015-09-30 | 朱捷 | 视频数据传输的方法、装置及系统 |
CN105516748A (zh) * | 2015-11-27 | 2016-04-20 | 北京奇虎科技有限公司 | 一种实现网络直播的方法和服务器 |
CN106303589A (zh) * | 2016-09-05 | 2017-01-04 | 腾讯科技(深圳)有限公司 | 一种直播控制方法及装置 |
CN106454392A (zh) * | 2016-11-24 | 2017-02-22 | 北京小米移动软件有限公司 | 直播处理方法、装置及终端 |
CN106686101A (zh) * | 2017-01-03 | 2017-05-17 | 北京奇虎科技有限公司 | 一种流数据的传输集群的调度方法和装置 |
US20170171566A1 (en) * | 2015-12-15 | 2017-06-15 | Le Holdings (Beijing) Co., Ltd. | Method and electronic device for transmitting live broadcast data |
US20170180457A1 (en) * | 2015-12-21 | 2017-06-22 | BOT Home Automation, Inc. | Sharing video footage from audio/video recording and communication devices |
-
2017
- 2017-11-01 CN CN201711057466.5A patent/CN109756758B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103561285A (zh) * | 2013-10-11 | 2014-02-05 | 深圳市同洲电子股份有限公司 | 一种节目播放方法及网络推流服务器 |
CN103731756A (zh) * | 2014-01-02 | 2014-04-16 | 中国科学院信息工程研究所 | 一种基于智能云电视网关的智能家居远程安全访问控制实现方法 |
CN104954828A (zh) * | 2015-06-16 | 2015-09-30 | 朱捷 | 视频数据传输的方法、装置及系统 |
CN105516748A (zh) * | 2015-11-27 | 2016-04-20 | 北京奇虎科技有限公司 | 一种实现网络直播的方法和服务器 |
US20170171566A1 (en) * | 2015-12-15 | 2017-06-15 | Le Holdings (Beijing) Co., Ltd. | Method and electronic device for transmitting live broadcast data |
US20170180457A1 (en) * | 2015-12-21 | 2017-06-22 | BOT Home Automation, Inc. | Sharing video footage from audio/video recording and communication devices |
CN106303589A (zh) * | 2016-09-05 | 2017-01-04 | 腾讯科技(深圳)有限公司 | 一种直播控制方法及装置 |
CN106454392A (zh) * | 2016-11-24 | 2017-02-22 | 北京小米移动软件有限公司 | 直播处理方法、装置及终端 |
CN106686101A (zh) * | 2017-01-03 | 2017-05-17 | 北京奇虎科技有限公司 | 一种流数据的传输集群的调度方法和装置 |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110198311A (zh) * | 2019-05-21 | 2019-09-03 | 腾讯科技(深圳)有限公司 | 一种数据流处理方法、装置、设备及介质 |
CN110418154A (zh) * | 2019-07-30 | 2019-11-05 | 腾讯科技(深圳)有限公司 | 一种多媒体数据推送方法、装置及系统 |
CN110418154B (zh) * | 2019-07-30 | 2021-10-19 | 腾讯科技(深圳)有限公司 | 一种多媒体数据推送方法、装置及系统 |
CN110691255A (zh) * | 2019-09-06 | 2020-01-14 | 上海商米科技集团股份有限公司 | 网络直播的防盗链方法、系统和装置 |
WO2021143881A1 (zh) * | 2020-01-17 | 2021-07-22 | 北京达佳互联信息技术有限公司 | 直播流的拉流方法及设备 |
EP4084482A4 (en) * | 2020-01-17 | 2023-12-20 | Beijing Dajia Internet Information Technology Co., Ltd. | STREAM PULL METHOD AND APPARATUS FOR A LIVE STREAM |
CN111314725A (zh) * | 2020-02-19 | 2020-06-19 | 安徽文香信息技术有限公司 | 一种直播访问的方法、系统、设备及计算机存储介质 |
CN111432248A (zh) * | 2020-03-30 | 2020-07-17 | 北京百度网讯科技有限公司 | 直播视频流的质量监控方法和装置 |
CN111818121A (zh) * | 2020-05-26 | 2020-10-23 | 杭州爱教乐学科技有限公司 | 直播通信方法、装置、计算机设备及存储介质 |
CN111818121B (zh) * | 2020-05-26 | 2023-05-02 | 杭州爱教乐学科技有限公司 | 直播通信方法、装置、计算机设备及存储介质 |
CN113766251A (zh) * | 2020-06-22 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 直播连麦的处理方法、系统、服务器及存储介质 |
CN112533016A (zh) * | 2020-11-27 | 2021-03-19 | 四川弘和通讯有限公司 | 基于预警信息触发手机html5低延时直播视频的方法 |
CN112533016B (zh) * | 2020-11-27 | 2021-12-14 | 四川弘和通讯有限公司 | 基于预警信息触发手机html5低延时直播视频的方法 |
CN113068059A (zh) * | 2021-03-22 | 2021-07-02 | 平安普惠企业管理有限公司 | 视频直播方法、装置、设备及存储介质 |
CN113068059B (zh) * | 2021-03-22 | 2022-12-13 | 平安普惠企业管理有限公司 | 视频直播方法、装置、设备及存储介质 |
CN113438505A (zh) * | 2021-06-02 | 2021-09-24 | 曙光网络科技有限公司 | 视频文件的还原方法、装置、计算机设备和存储介质 |
CN113473116A (zh) * | 2021-07-12 | 2021-10-01 | 杭州时趣信息技术有限公司 | 一种直播质量监测方法、装置及介质 |
CN114257835A (zh) * | 2021-12-31 | 2022-03-29 | 广东省教育研究院 | 基于教育云平台的直播系统及其直播方法 |
CN114501068A (zh) * | 2022-04-07 | 2022-05-13 | 鹏城实验室 | 视频直播方法、架构、系统及计算机可读存储介质 |
CN114827633A (zh) * | 2022-06-17 | 2022-07-29 | 浙江华创视讯科技有限公司 | 一种媒体流容灾方法、装置和相关设备 |
Also Published As
Publication number | Publication date |
---|---|
CN109756758B (zh) | 2021-01-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109756758A (zh) | 直播控制方法及装置 | |
US10701072B2 (en) | Apparatus and method for secure provisioning of a communication device | |
US11153110B2 (en) | Communication method and terminal in live webcast channel and storage medium thereof | |
US10567553B2 (en) | Apparatus and method for secure over the air programming of a communication device | |
US9843775B2 (en) | Surveillance video playback method, device, and system | |
CN104821937B (zh) | 令牌获取方法、装置及系统 | |
US9049496B2 (en) | Media source identification | |
WO2017008627A1 (zh) | 多媒体直播方法、装置和系统 | |
CN107454416A (zh) | 视频流发送方法和装置 | |
US9781593B2 (en) | Method and apparatus for data management of third party services | |
CN110139131A (zh) | 一种播放视频文件的方法和终端 | |
US9736518B2 (en) | Content streaming and broadcasting | |
CN104967608B (zh) | 播放多媒体文件的方法、移动终端及固定终端 | |
US20170064359A1 (en) | Content streaming and broadcasting | |
CN104580177B (zh) | 资源提供方法、装置和系统 | |
CN111698537B (zh) | 多媒体数据的处理方法、装置、设备以及存储介质 | |
CN107018448A (zh) | 数据处理方法及装置 | |
US20210227296A1 (en) | Inserting secondary content in primary content in iptv | |
US10397296B2 (en) | Comment link for shared streaming media content | |
WO2012139351A1 (zh) | 第三方iptv业务的推送方法及系统 | |
TW201640392A (zh) | 實現數位版權管理的方法、客戶端及系統 | |
CN111031354B (zh) | 一种多媒体播放方法、装置及存储介质 | |
CN103248562B (zh) | 一种设备映射的方法、控制终端和被控制终端 | |
US10311470B2 (en) | Systems and methods for providing callback addresses and viewership metrics | |
CN113518100A (zh) | 物联网设备的切换方法、装置、电子设备及计算机可读介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |