媒体数据处理方法、装置、系统及可读存储介质与流程

文档序号:16202183发布日期:2018-12-08 06:43阅读:169来源:国知局
媒体数据处理方法、装置、系统及可读存储介质与流程

本申请涉及数据处理技术领域,尤其涉及媒体数据处理方法、装置及可读存储介质。

背景技术

目前,移动通信终端(例如手机、无线掌上电脑等)不但可以实现基本的通话、收发短信功能,而且还可以装有麦克风和摄像头,以录制音/视频(即音频和/或视频)数据,例如录制音频片段、拍摄视频短片等。

目前也存在一些“手机直播”应用技术,此类技术方案是在手机等移动通信终端上安装直播系统的客户端软件,在互联网的直播服务器上,将音/视频文件或者电视流输出作为直播源,由直播服务器将直播源的数据流发送给移动通信终端,从而可以在移动通信终端上收看直播的音/视频。



技术实现要素:

本申请实例提供了一种媒体数据处理方法,包括:

接收第一客户端发送的直播数据流发送请求;其中,所述直播数据流发送请求中包括用于标识所述第一客户端的用户码;

当根据所述用户码确定所述第一客户端具有直播权限时,或者根据所述用户码确定所述第一客户端具有直播权限,且所述用户码在有效期限内时,接受所述直播数据流发送请求;否则拒绝所述直播数据流发送请求;

当接受所述直播数据流发送请求时,接入所述第一客户端发送的直播数据流;

当拒绝所述直播数据流发送请求时,拒绝接入所述第一客户端发送的直播数据流。

在一些实例中,所述用户码包括所述第一客户端所在终端的ip地址;

所述方法进一步包括:

建立具有直播权限的ip地址的ip地址列表;

其中,所述当根据所述用户码确定所述第一客户端具有直播权限时,接受所述直播数据流发送请求包括:

当在所述ip地址列表中查找到与所述用户码中的所述ip地址相同的ip地址时,确定所述第一客户端具有直播权限,接受所述直播数据流发送请求。

在一些实例中,所述方法进一步包括:

建立具有直播权限的第一客户端的直播id列表;

其中,根据所述用户码确定所述第一客户端具有直播权限,且所述用户码在有效期限内时,接受所述直播数据流发送请求包括:

根据所述用户码确定直播id及所述用户码的生成时间;

当在所述直播id列表中查找到所述确定的直播id时,确定所述第一客户端具有直播权限;

当所述用户码的生成时间满足预设时间条件时,确定所述用户码在有效期限内;

当所述第一客户端具有直播权限,且所述用户码在有效期限内时,接受所述直播数据流发送请求。

在一些实例中,所述方法进一步包括:建立具有直播权限的用户账号及对应的直播id的列表;

接收用户码客户端响应于对用户码控件的操作发送的用户码获取请求,所述用户码获取请求中包括用户账号及对所述用户码控件的操作时间;

当在所述列表中查找到所述用户账号对应的直播id时,采用预定算法根据所述直播id及所述操作时间生成所述用户码;

将所述用户码发送给所述用户码客户端,以使所述第一客户端在所述直播数据流发送请求中携带所述用户码。

在一些实例中,该方法在所述接入所述第一客户端发送的直播数据流之后,进一步包括:

将所述根据所述用户码确定的所述直播id设置为所述直播数据流的流id。

在一些实例中,所述方法进一步包括:

接收第二客户端发送的直播数据流接收请求;其中,所述直播数据流接收请求中包括用于标识所述第二客户端的用户码;

当确定所述用户码合法时,接受所述直播数据流接收请求;否则拒绝所述直播数据流接收请求;

当接受所述直播数据流接收请求时,将与所述直播数据流接收请求相对应的直播数据流发送给所述第二客户端;

当拒绝所述直播数据流接收请求时,拒绝将与所述直播数据流接收请求相对应的直播数据流发送给所述第二客户端。

在一些实例中,所述用户码包括所述第二客户端所在终端的ip地址;

所述方法进一步包括:

建立记录各合法或非法的ip地址的ip地址列表;

其中,当在所述ip地址列表中查找到与所述用户码中的所述ip地址相同的ip地址时,确定所述用户码是否合法。

在一些实例中,所述当接受所述直播数据流发送请求时,接入所述第一客户端发送的直播数据流之前,还包括:

当不存在与所述第一客户端的连接时,建立与所述第一客户端的连接,接收所述第一客户端发送的直播数据流;

当存在与所述第一客户端的连接时,当所述连接出现直播数据流传输码率超过预定时间保持为零的情况时,删除所述连接,建立与所述第一客户端的新连接,接入所述第一客户端发送的直播数据流;

当所述连接未出现直播数据流传输码率超过预定时间保持为零的情况时,拒绝接入所述第一客户端发送的直播数据流。

本申请实例还提供了一种媒体数据处理方法,包括:

向流媒体服务器发送用户码页面数据获取请求;

接收流媒体服务器发送的用户码页面数据,并根据所述用户码页面数据展示用户码页面;

响应于对所述用户码页面中用户码控件的操作,向流媒体服务器发送用户码获取请求,所述用户码获取请求中包括用户账号及所述用户操作所述用户码控件的时间,以使流媒体服务器根据所述用户账号查找与该用户账号对应的直播id,当查找到与该用户账号对应的直播id时,采用预定算法根据所述直播id及所述操作时间生成用户码;

接收流媒体服务器发送的所述用户码,以使所述用户当通过第一客户端向流媒体服务器发送直播数据流时在直播数据流发送请求中携带所述用户码,以使得所述流媒体服务器当根据所述用户码确定所述第一客户端具有直播权限,且所述用户码在有效期限内时时,接受所述直播数据流发送请求,接入所述第一客户端发送的直播数据流。

本申请实例还提供了一种媒体数据处理装置,包括:

请求接收单元,用于接收第一客户端发送的直播数据流发送请求;其中,所述直播数据流发送请求中包括用于标识所述第一客户端的用户码;

权限确定单元,用于当根据所述用户码确定所述第一客户端具有直播权限时,或者根据所述用户码确定所述第一客户端具有直播权限,且所述用户码在有效期限内时,接受所述直播数据流发送请求;否则拒绝所述直播数据流发送请求;

直播数据流接入单元,用于当接受所述直播数据流发送请求时,接入所述第一客户端发送的直播数据流;当拒绝所述直播数据流发送请求时,拒绝接入所述第一客户端发送的直播数据流。

在一些实例中,所述装置进一步包括:

建立单元,用于建立具有直播权限的第一客户端的直播id列表;

其中,所述权限确定单元用于:

根据所述用户码确定直播id及所述用户码的生成时间;

当在所述直播id列表中查找到所述确定的直播id时,确定所述第一客户端具有直播权限;

当所述用户码的生成时间满足预设时间条件时,确定所述用户码在有效期限内;

当所述第一客户端具有直播权限,且所述用户码在有效期限内时,接受所述直播数据流发送请求。

在一些实例中,所述装置进一步包括用户码获取单元,用于:

建立具有直播权限的用户账号及对应的直播id的列表;

接收用户码客户端响应于对用户码控件的操作发送的用户码获取请求,所述用户码获取请求中包括用户账号及对所述用户码控件的操作时间;

当在所述列表中查找到所述用户账号对应的直播id时,采用预定算法根据所述直播id及所述操作时间生成所述用户码;

将所述用户码发送给所述用户码客户端,以使所述第一客户端在所述直播数据流发送请求中携带所述用户码。

本申请实例还提供媒体数据处理装置,包括:

页面数据请求单元,用于向流媒体服务器发送用户码页面数据获取请求;接收流媒体服务器发送的用户码页面数据,并根据所述用户码页面数据展示用户码页面;

用户码请求单元,用于响应于对所述用户码页面中用户码控件的操作,向流媒体服务器发送用户码获取请求,所述用户码获取请求中包括用户账号及所述用户操作所述用户码控件的时间,以使流媒体服务器根据所述用户账号查找与该用户账号对应的直播id,当查找到与该用户账号对应的直播id时,采用预定算法根据所述直播id及所述操作时间生成用户码;

用户码接收单元,用于接收流媒体服务器发送的所述用户码,以使所述用户当通过第一客户端向流媒体服务器发送直播数据流时在直播数据流发送请求中携带所述用户码,以使得所述流媒体服务器当根据所述用户码确定所述用户具有直播权限,且所述用户码在有效期限内时时,接受所述直播数据流发送请求,接入所述第一客户端发送的直播数据流。

本申请实例还提供了一种媒体数据处理系统,包括:

用户码客户端,响应于对所述用户码客户端中的用户码页面中用户码控件的操作,向流媒体服务器发送用户码获取请求,所述用户码获取请求中包括用户账号及操作所述用户码控件的时间;

所述流媒体服务器,响应于所述用户码获取请求,根据所述用户账号查找与该用户账号对应的直播id,当查找到与该用户账号对应的直播id时,采用预定算法根据所述直播id及所述操作时间生成用户码;

所述用户码客户端,接收流媒体服务器发送的所述用户码;

第一客户端,向流媒体服务器发送直播数据流发送请求,该请求中携带所述用户码;

所述流媒体服务器,响应于所述直播数据流发送请求,当根据所述用户码确定所述用户具有直播权限,且所述用户码在有效期限内时时,接受所述直播数据流发送请求,并接入所述第一客户端发送的直播数据流。

本申请实例还提供一种计算机可读存储介质,

存储有计算机可读指令,可以使至少一个处理器执行如上述所述的方法。

采用本申请提供的上述方案,能够适应直播的各种场景的接入。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1a是本申请实例涉及的系统构架图;

图1b是图1a中的协议封装转换模块的结构示意图;

图2是本申请一实例应用于流媒体服务器的媒体数据处理方法的流程图;

图3是本申请一实例获取用户码的页面图;

图4a是本申请一实例个人直播中对用户码鉴权的流程示意图;

图4b是本申请一实例个人直播获取用户码的流程示意图;

图5是本申请一实例直播中拉流的流程示意图;

图6是本申请另一实例应用于用户码客户端的媒体数据处理方法流程示意图;

图7是本申请一实例个人直播的流程示意图;

图8是本申请一实例应用于流媒体服务器的媒体数据处理装置的结构示意图;

图9是本申请另一实例应用于用户码客户端的媒体数据处理装置的结构示意图;以及

图10为本申请实例中的计算设备组成结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本申请提出了一种媒体数据处理方法,该方法可应用于图1a所示的系统构架中。如图1a所示,该系统架构包括:第一客户端101、流媒体服务器102、协议封装转换模块106、内容分发网络103、终端用户客户端104以及第二客户端105。第一客户端101将采集的音视频编码后进行封装,媒体数据流的封装可以采用ts(transportstream,传输流)、flv(flashvideo,流媒体)等封装格式。第一客户端101在向流媒体服务器102进行推流时,可以采用rtmp(realtimemessagingprotocol,实时消息传输协议)协议、rtsp(realtimestreamingprotocol,实时流传输协议)协议及hls(httplivestreaming,http流媒体协议)协议等,当采用rtmp协议时,第一客户端101与流媒体服务器102建立rtmp连接,将rtmp协议格式的数据流发送到流媒体服务器102,流媒体服务器102将媒体数据流经过协议封装转换模块106发送给内容分发网络103,终端用户客户端106从内容分发网络拉取媒体数据流进行播放。其中,终端用户客户端为观看直播的用户客户端,第二客户端105为直播平台的运维人员所在终端客户端,该直播平台包括所述流媒体服务器102。所述媒体数据流可以为直播数据流。在图1a中所示的直播的流程中,各步骤中的网络传输协议可能不同,因而需要进行协议转换,同时不同的终端所支持的媒体数据流的数据格式不同,因而需要媒体数据封装格式的转换。协议、封装转换模块106,具体地,如图1b所示,包括协议转换模块107、接收模块108、封装转换模块109。协议转换模块107将rtmp网络传输协议转换为http网络传输协议,此处的媒体数据流为flv格式的媒体数据流,接收模块108接收媒体数据流,封装转换模块109将flv格式的媒体数据流转换为ts格式的媒体数据流。内容分发网络103处包括两种格式的媒体数据流,httpflv格式的媒体数据流及hls格式的媒体数据流,其中,电脑等终端一般支持httpflv格式的媒体数据流,手机等终端一般支持hls格式的媒体数据流。

在一些实例中,随着直播的普遍,流媒体服务器使用上也越来越频繁,为了实现安全可靠的直播数据流接入,通过在推流过程的协议层中加入用户名和密码的方式来进行安全验证,但是有一些编码器和推流软件,并不支持用户名和密码的输入方式。

为了解决以上技术问题,本申请提出一种媒体数据处理方法,该方法可用于流媒体服务器102。如图2所示,该方法包括以下步骤:

步骤201:接收第一客户端发送的直播数据流发送请求;其中,所述直播数据流发送请求中包括用于标识所述第一客户端的用户码。

可以采用rtmp协议进行直播数据流的推流,用户可以使用常用的rtmp推流软件(如xs、obs)进行推流,在第一客户端的终端上安装有这些推流软件的客户端。需要推流的用户如主播,利用用户账号如qq号申请直播权限,流媒体服务器向主播分配随机生成的直播id,不同的用户账号对应的直播id不同。用户获取直播权限可以通过获取直播权限的工具获取直播权限,直播平台将随机生成的直播id分配给用户,流媒体服务器中的用户码单元可以向直播平台调取用户账号及对应的直播id。其中流媒体服务器102、用户码单元702都属于直播平台。主播在第一客户端上进行音视频的推流时,需要使用上述直播id进行推流,主播在第一客户端进行直播时,上传本地或录制的待直播的音视频后,对于常规直播,像赛事、发布会等大型直播,输入上传的音视频的名称为直播id,对于个人直播来说,输入的上传的音视频的流名称为用户码,该用户码是主播在用户码页面上获取的用户码。用户在第一客户端上进行直播数据流的推流时,第一客户端采集音视频数据后,响应于用户点击推流控件的操作,第一客户端向流媒体服务器发送音视频流的发送请求,该请求中包括用于标识第一客户端的用户码。对于上述常规直播,该用户码为所述第一客户端所在终端的ip地址,对于个人直播来说,该用户码为主播在用户码网页上获取的用户码。

步骤202:当根据所述用户码确定所述第一客户端具有直播权限时,或者根据所述用户码确定所述第一客户端具有直播权限,且所述用户码在有效期限内时,接受所述直播数据流发送请求;否则拒绝所述直播数据流发送请求。

流媒体服务器在接收到直播数据流的发送请求后,根据该请求消息中的用户码确定第一客户端是否具有直播权限,或者根据所述用户码确定所述第一客户端是否具有直播权限,同时确定所述用户码是否在有效期限内。对于大型直播,当根据所述用户码确定所述第一客户端具有直播权限时,接受所述直播数据流发送请求;对于个人直播,当根据所述用户码确定所述第一客户端具有直播权限,且所述用户码在有效期限内时,接受所述直播数据流发送请求。接受直播数据流发送请求后,第一客户端与流媒体服务器建立rtmp连接,可以向流媒体服务器发送直播数据流。对于大型直播及个人直播,当所述用户码不满足上述条件时,不接受媒体数据流发送请求。通过用户码对rtmp流格式的直播接入信令进行鉴权,预防非法流的攻击。该接入信令即为第一客户端发送的直播数据流发送请求。本申请提出的媒体数据处理方法,是在流媒体服务器处对直播接入信令进行鉴权,编码器及推流软件携带其他鉴权信息,从而解决了一些编码器和推流软件不支持用户名和密码输入的鉴权方式。

步骤203:当接受所述直播数据流发送请求时,接入所述第一客户端发送的直播数据流;当拒绝所述直播数据流发送请求时,拒绝接入所述第一客户端发送的直播数据流。

当接受所述直播数据流发送请求时,接入所述第一客户端发送的直播数据流。第一客户端采集音视频数据,对视频数据进行h264编码,对音频数据进行aac编码,并将编码后的数据封装成rtmpflv流。形成的直播视频流通过步骤202中,接受媒体数据流发送请求时建立的rtmp连接,将直播视频流上推到流媒体服务器。当拒绝所述直播数据流发送请求时,拒绝接入所述第一客户端发送的直播数据流。在推流的过程中,由于编码器等一般适用rtmp协议,因而在本申请中在推流的过程中采用rtmp协议,此外也可以采用http等其他协议格式。在直播的整个过程中,不同的步骤中可能适用不同的协议及不同的封装,进而需要进行协议的转换及封装的转换。例如传输到内容分发网络的直播数据流,对于电脑侧的直播客户端,一遍支持httpflv协议格式的直播数据流,手机侧的直播客户端一遍支持hls协议格式的直播数据流,因而传输到内容分发网络的直播数据流既要有httpflv格式的直播数据流,也要有hls格式的直播数据流。

采用本申请提供的媒体数据处理方法,第一客户端将直播的音视频数据经过编码、封装后形成直播数据流,并推流到流媒体服务器。在第一客户端与流媒体服务器之间的连接建立过程中,流媒体服务器对携带用户码的接入信令进行鉴权,预防非法流的攻击,编码器或推流软件不携带其他鉴权信息,从而解决了一些编码器和推流软件不支持用户名和密码输入的鉴权方式,能够适用于各种rtmp应用场景的安全接入。

在一些实例中,所述用户码包括所述第一客户端所在终端的ip地址;本申请提供的媒体数据处理方法,进一步包括以下步骤:

步骤s31:建立具有直播权限的ip地址的ip地址列表。

流媒体服务器建立具有直播权限的各ip地址的ip地址列表,例如建立ip地址白名单。流媒体服务器通过建立ip地址白名单进行鉴权的方式,应用在赛事、发布会等大型直播中,其特点是:进行直播数据流推流的第一客户端的ip地址相对固定,不会发生变化。只有ip地址白名单中的第一客户端才能进行推流。

步骤s32:在上述步骤202中,在执行所述当根据所述用户码确定所述第一客户端具有直播权限时,接受所述直播数据流发送请求时包括:当在所述ip地址列表中查找到与所述用户码中的所述ip地址相同的ip地址时,确定所述第一客户端具有直播权限,接受所述直播数据流发送请求。

根据是否在所述ip地址列表中查找到与所述用户码中的所述ip地址相同的ip地址来确定所述第一客户端是否具有直播权利。当在该ip地址列表中查找到用户码中的ip地址时,确定所述第一客户端具有直播权限,否则确定所述第一客户端不具有直播权限。例如,确定所述用户码中的ip地址是否在ip地址白名单中,如果在ip地址白名单中,确定所述第一客户端具有直播权限,否则确定所述第一客户端不具有直播权限。

在上一个实例中,流媒体服务器采用建立ip地址黑白名单进行鉴权,应用在赛事、发布会等常规直播的场景中,对于个人直播业务,例如游戏主播直播,这类直播,直播量大,ip地址相对不固定,安全策略如果还使用建立ip地址黑、白名单的方式,运维配置成本高,而且需要经常变动,使用建立ip地址黑、白名单的安全策略不太合适。对于个人直播业务,在一些实例中,本申请提供的媒体数据流处理方法,如图4a所示,进一步包括以下步骤:

步骤401:建立具有直播权限的第一客户端的直播id列表。

流媒体服务器中保存有具有直播权限的各第一客户端的直播id列表,该列表的建立可以在用户通过用户账号申请直播权限时,直播平台给一个用户账号分配一个随机生成的直播id,流媒体服务器从直播平台获取具有直播权限的用户账号及对应的直播id,并保存在直播id列表中,不同的用户账号对应不同的直播id,直播id不重复。

其中,在上述步骤202中,在执行所述根据所述用户码确定所述第一客户端具有直播权限,且所述用户码在有效期限内时,接受所述直播数据流发送请求时,包括步骤402。

步骤402:根据所述用户码确定直播id及所述用户码的生成时间;当在所述直播id列表中查找到所述确定的直播id时,确定所述第一客户端具有直播权限;当所述用户码的生成时间满足预设时间条件时,确定所述用户码在有效期限内;当所述第一客户端具有直播权限,且所述用户码在有效期限内时,接受所述直播数据流发送请求。

流媒体服务器接收到直播数据流发送请求时,提取该请求中的用户码,如图7所示,将该用户码发送给用户码单元702进行鉴权,用户码单元702从该用户码中解析出直播id及所述用户码的生成时间。用户码的生成是按照预定算法编码生成,用户码单元702按照所述预定算法对用户码进行解码,解析出所述直播id及所述生成时间。所述预设时间条件可以为预定时间期限,所述生成时间为一时间点,所述时间期限指从用户码的所述生成时间开始算起的时间期限,当从用户码中解析出的生成时间到当前时间超过了预定时间期限时,所述用户码已超期,所述用户码不在有效期限内。当从用户码中解析出的生成时间到当前时间没有超过预定时间期限时,说明用户码在有效期限内。对于确定从用户码中解析出的直播id是否为有效的直播id,在所述直播id列表中查找所述用户码中解析出的直播id,当查找到与所述解析出的直播id相同的直播id时,确定所述第一客户端具有直播权限。

在一些实例中,本申请提供的媒体数据流处理方法,对于个人直播的鉴权,进一步包括获取用户码,如图4b所示,主要包括以下步骤:

步骤411:建立具有直播权限的用户账号及对应的直播id的列表。

如图7所示,流媒体服务器中的用户码单元702保存有具有直播权限的各用户账号及对应的直播id列表,该列表的建立可以在用户通过用户账号申请直播权限时,直播平台给一个用户账号分配一个随机生成的直播id,用户码单元702从直播平台获取具有直播权限的用户账号及对应的直播id,并保存用户账号及对应的直播id,不同的用户账号对应不同的直播id,直播id不重复。

步骤412:接收用户码客户端响应于对用户码控件的操作发送的用户码获取请求,所述用户码获取请求中包括用户账号及对所述用户码控件的操作时间。

用户在用户码客户端上获取用户码,该用户码客户端可以为浏览器客户端,具体地,用户访问用户码网页时,通过用户账号及密码登录个人主页,用户码个人主页页面图如图3所示,客户端响应于用户对获取用户码控件301的操作,如图7所示,向流媒体服务器中的用户码单元702发送用户码获取请求,该请求中包括用户账号,同时该请求中还包括用户操作控件301的操作时间。该用户账号可以是用户的社交账号,如qq账号、微信账号等。

步骤413:当在所述列表中查找到所述用户账号对应的直播id时,采用预定算法根据所述直播id及所述操作时间生成所述用户码。

如图7所示,流媒体服务器中的用户码单元702接收到用户码获取请求后,根据该请求中的用户账号在所述直播id列表中查找与该用户账号对应的直播id,当查找到与该用户账号对应的直播id时,根据该直播id及用户码获取请求中的所述操作时间,按照预定算法进行编码,生成用户码,所示预定算法为一加密算法,如md5(messagedigestalgorithm,消息摘要算法)、crc(cyclicredundancycheck,循环冗余校验)等。同时根据用户码,采用同样的算法进行解码,可以得到直播id及用户码的生成时间,用户码的生成时间与上述用户操作控件301的操作时间相同。当在所述直播id列表中没有查找到与该用户账号对应的直播id时,说明所述用户账号没有直播权限,不生成用户码。

步骤414:将所述用户码发送给所述用户码客户端,以使所述第一客户端在所述直播数据流发送请求中携带所述用户码。

图7中的用户码单元702将生成的用户码发送给用户码客户端,显示在如图3所示的用户码获取页面上,以提供给用户。用户在使用rtmp推流软件(如xs,obs)进行直播数据流的推流时,通过推流软件的第一客户端向流媒体服务器上推音视频流之前,先建立与流媒体服务器的连接,在与流媒体服务器建立连接时的接入信令中携带所述用户码,具体地可以在接入信令中将待上推的流的流名称输入为所述用户码。以使得流媒体服务器根据该用户码确定是否接受所述直播数据流发送请求。

在一些实例中,本申请提供的媒体数据处理方法,在所述接入所述第一客户端发送的直播数据流之后,进一步包括以下步骤:

将所述根据所述用户码确定的所述直播id设置为所述直播数据流的流id。

对于个人直播,用户在第一客户端输入的直播数据流的流id为用户码,以使流媒体服务器根据该用户码对直播数据流的接入信令进行鉴权,流媒体服务器将用户码发送给用户码单元702对所述用户码进行鉴权时,用户码单元702通过用户码解析出直播id,当直播id为有效直播id时,用户码单元702向流媒体服务器返回从用户码中解析出的直播id。流媒体服务器将接收到的直播数据流的流id设置为所述直播id。直播id作为媒体数据流的标识,在直播的后续的步骤,如协议转换及封装转换时都要依据媒体数据流的标识进行,即依据直播id进行,因而在该实例中,流媒体服务器将媒体数据流的流id设置为直播id。在推流的过程中,由于编码器等一般适用rtmp协议,因而在本申请中在推流的过程中采用rtmp协议,此外也可以采用http等其他协议格式。在直播的整个过程中,不同的步骤中可能适用不同的协议及不同的封装,进而需要进行协议的转换及封装的转换。例如传输到内容分发网络的媒体数据流,对于电脑侧的直播客户端,一般采用httpflv协议格式的直播数据流,手机侧的直播客户端一般采用hls协议格式的媒体数据流,因而传输到内容分发网络的媒体数据流既要有httpflv格式的直播数据流,也要有hls格式的直播数据流。

在一些实例中,本申请提供的媒体数据处理方法中,当用于监控、运维的第二客户端105在拉取流媒体服务器处的媒体数据流时,如图5所示,主要包括以下步骤:

步骤501:接收第二客户端发送的直播数据流接收请求;其中,所述直播数据流接收请求中包括用于标识所述第二客户端的用户码。

用户在第二客户端上拉取媒体数据流时,第二客户端向流媒体服务器发送音视频流的接收请求,该请求中包括用于标识第二客户端的用户码。对于常规直播及个人直播,该用户码均为第二客户端所在终端的ip地址。拉流采用rtmp协议拉取流媒体服务器上的直播数据流。rtmp拉流只支持内网拉流,避免其他用户盗流或者攻击流媒体服务器。流媒体服务器中保存有内网的终端的ip地址列表,该列表中的ip地址对应的机器才能拉流。

步骤502:当确定所述用户码合法时,接受所述直播数据流接收请求;否则拒绝所述直播数据流接收请求。

流媒体服务器根据接收到的直播数据流接收请求中的ip地址,在上述ip地址列表中查找该ip地址,当查找到该ip地址时,接受直播数据流接收请求,否则拒绝所述直播数据流接收请求。

步骤503:当接受所述直播数据流接收请求时,将与所述直播数据流接收请求相对应的直播数据流发送给所述第二客户端;当拒绝所述直播数据流接收请求时,拒绝将与所述直播数据流接收请求相对应的直播数据流发送给所述第二客户端。

当接受所述直播数据流接收请求时,流媒体服务器将与所述直播数据流接收请求对应的直播数据流发送给第二客户端105。在该过程中,还需要将直播数据流进行解封装,在直播数据流的flv文件或ts文件中分离出音视频,之后分别对音频、视频进行解码,将解码后的音视频在第二客户端的播发器中播放。当拒绝所述直播数据流接收请求时,拒绝将与所述直播数据流接收请求相对应的直播数据流发送给所述第二客户端。

在一些实例中,所述用户码包括所述第二客户端所在终端的ip地址;本申请提供的媒体数据处理方法,进一步包括以下步骤:

步骤s61:建立记录各合法或非法的ip地址的ip地址列表。

流媒体服务器建立记录各合法ip地址的ip地址列表,由于拉流只支持内网拉流,因而该ip地址列表中的ip地址为内网中的机器的ip地址。例如建立ip地址白名单。只有ip地址白名单中的终端才能进行拉流。

步骤s62:当在所述ip地址列表中查找到与所述用户码中的所述ip地址相同的ip地址时,确定所述用户码是否合法。

当所述ip地址列表中记录是各合法ip地址时,当在该ip地址列表中查找到用户码中的ip地址时,确定该ip地址合法,否则确定该ip地址不合法。例如,确定所述用户码中的ip地址是否在ip地址白名单中,如果在ip地址白名单中,确定该ip地址合法,否则确定该ip地址不合法。

rtmp推流过程中,利用第三方推流工具进行推流,经常有一些第三方的推流工具,占用某个直播id进行推流,停止推流后也不销毁与流媒体服务器建立的连接,重新推流的时候,因为该直播id被占用,导致流媒体服务器不会接受新的流,导致推流失败。对于该技术问题,本实例提供的媒体数据处理方法,包括以下步骤。

在上述步骤203,执行所述当接受所述直播数据流发送请求时,接入所述第一客户端发送的直播数据流之前,还包括以下步骤:

步骤s71:当不存在与所述第一客户端的连接时,建立与所述第一客户端的连接,接收所述第一客户端发送的直播数据流。

第一客户端采集音视频数据,对所述音视频数据进行h264和aac编码,并封装成rtmpflv流,形成直播媒体数据流。对应常规直播,第一客户端将该媒体数据流的流id设置为直播id,对于个人直播,第一客户端将媒体数据流的流id设置为用户码。该直播媒体数据流向流媒体服务器进行推流前,流媒体服务器先确定是否存在与所述直播id相对应的rtmp连接,因为第一客户端在与流媒体服务器建立rtmp连接时,媒体数据流发送请求中包括根据直播id生成的用户码,或者媒体数据流的流id为直播id,因而流媒体服务器能够确定所述直播id是否被占用。当流媒体服务器确定不存在与第一客户端的连接时,建立与第一客户端的连接,接入第一客户端发送的媒体数据流。

步骤s72:当存在与所述第一客户端的连接时,当所述连接出现直播数据流传输码率超过预定时间保持为零的情况时,删除所述连接,建立与所述第一客户端的新连接,接入所述第一客户端发送的直播数据流。

当流媒体服务器确定存在与第一客户端的连接时,说明存在使用直播id进行的推流,在该情况下,判断所述连接中的媒体数据流传输码率是否超过预定时间为0,如判断传输码率是否超过5分钟码率为0。当传输码率超过5分钟码率为0时,说明使用所述直播id进行的推流已经完成,则删除与流媒体服务器的rtmp连接,建立新的rtmp连接,并通过该连接接入第一客户端发送的直播数据流。

步骤s73:当所述连接未出现直播数据流传输码率超过预定时间保持为零的情况时,拒绝接入所述第一客户端发送的直播数据流。

例如,所述预定时间为5分钟,当流媒体服务器确定所述连接中未出现传输码率超过5分钟码率为0的情况,说明使用所述直播id进行的推流正在进行,这时拒绝接入所述第一客户端发送的直播数据流。

采用本实例提供的媒体数据处理方法,安全销毁与流媒体服务器的连接,在直播数据流正在推流过程中,拒绝使用相同的直播id进行的推流,防止正在推的流被后续的流挤掉,避免被攻击。

本申请还提供一种媒体数据处理方法,应用于第一客户端101,如图6所示,包括以下步骤:

步骤601:向流媒体服务器发送用户码页面数据获取请求;接收流媒体服务器发送的用户码页面数据,并根据所述用户码页面数据展示用户码页面。

用户登录用户码网页时,例如在浏览器中输入用户码网页的网址,浏览器向流媒体服务器中的用户码单元702发送用户码页面数据获取请求,用户码单元702接收到该请求后,将用户码页面数据发送给浏览器,浏览器根据该用户码页面数据展示用户码页面。

步骤602:响应于对所述用户码页面中用户码控件的操作,向流媒体服务器发送用户码获取请求,所述用户码获取请求中包括用户账号及所述用户操作所述用户码控件的时间,以使流媒体服务器根据所述用户账号查找与该用户账号对应的直播id,当查找到与该用户账号对应的直播id时,采用预定算法根据所述直播id及所述操作时间生成用户码。

用户在浏览器的用户码网页上获取用户码,具体地,用户访问用户码网页时,通过用户账号及密码登录个人主页,用户码个人主页页面图如图3所示,用户码客户端响应于用户对获取用户码控件301的操作,向用户码单元702发送用户码获取请求,同时,用户码客户端,如浏览器记录用户点击控件301的操作时间,并将该操作时间添加到用户码获取请求中,发送给用户码单元702,上述用户码获取请求中包括用户账号,同时该请求中还包括用户操作控件301的操作时间。该用户账号可以是用户的社交账号,如qq账号、微信账号等。用户码单元702接收到用户码获取请求后,根据该请求中的用户账号,查找与该用户账号对应的直播id,当查找到与该用户账号对应的直播id时,根据该直播id及所述操作时间,按照预定编码算法进行编码生成用户码。当没有查找到与该用户账号对应的直播id时,不生成所述用户码。

步骤603:接收流媒体服务器发送的所述用户码,以使所述用户当通过第一客户端向流媒体服务器发送直播数据流时在直播数据流发送请求中携带所述用户码,以使得所述流媒体服务器当根据所述用户码确定所述第一客户端具有直播权限,且所述用户码在有效期限内时时,接受所述直播数据流发送请求,接入所述第一客户端发送的直播数据流。

用户码单元702将生成的用户码发送给用户码客户端,显示在如图3所示的用户码获取页面上,以提供给用户。用户在使用rtmp推流软件(如xs,obs)进行直播数据流的推流时,在推流软件的第一客户端上传待上推给流媒体服务器的音视频,同时输入待上推的音视频流的流名称,将获得的用户码作为音视频流的流名称。第一客户端在向流媒体服务器发送的媒体数据流发送请求中添加该用户码。流媒体服务器通过用户码单元702判断该用户码是否合法,当判断所述用户码合法时,接收所述第一客户端的直播数据流,否则,不接收所述第一客户端的直播数据流。

采用本申请提供的媒体数据处理方法,第一客户端将媒体数据经过编码、封装后形成直播数据流,并推流到流媒体服务器。在直播数据流的推流建立过程中,流媒体服务器使用用户码的方式对接入信令进行鉴权,预防非法流的攻击,编码器或推流软件不携带其他鉴权信息,从而解决了一些编码器和推流软件不支持用户名和密码输入的鉴权方式,能够适用于各种rtmp应用场景的安全接入。

本申请实例还提供了一种媒体数据处理系统,包括以下步骤:

1、用户码客户端,响应于对所述用户码客户端中的用户码页面中用户码控件的操作,向流媒体服务器发送用户码获取请求,所述用户码获取请求中包括用户账号及操作所述用户码控件的时间;

2、所述流媒体服务器,响应于所述用户码获取请求,根据所述用户账号查找与该用户账号对应的直播id,当查找到与该用户账号对应的直播id时,采用预定算法根据所述直播id及所述操作时间生成用户码;

3、所述用户码客户端,接收流媒体服务器发送的所述用户码;

4、第一客户端,向流媒体服务器发送直播数据流发送请求,该请求中携带所述用户码;

5、所述流媒体服务器,响应于所述直播数据流发送请求,当根据所述用户码确定所述用户具有直播权限,且所述用户码在有效期限内时时,接受所述直播数据流发送请求,并接入所述第一客户端发送的直播数据流。

对于个人直播,本申请提供的媒体数据处理方法的详细步骤如图7所示,包括以下步骤:

步骤s701:用户码客户端,向流媒体服务器发送用户码页面数据获取请求;所述流媒体服务器,响应于所述用户码页面数据获取请求,向所述用户码客户端发送用户码页面数据;所述用户码客户端,接收所述用户码页面数据,并根据所述用户码页面数据展示用户码页面。用户码客户端响应于用户对用户码页面中控件301的操作,向流媒体服务器中的用户码单元702发送用户码获取请求,该请求中包括用户账号及用户操作用户码客户端中的控件301的操作时间。

步骤s702:用户码单元702根据用户账号查找到对应的直播id,根据该直播id及操作时间,按照预定算法进行编码,生成用户码。将生成的用户码发送给用户码客户端,用户获得用户码后在第一客户端中输入该用户码。

步骤s703:第一客户端将用户输入的用户码添加到直播数据流发送请求中,发送给流媒体服务器,流媒体服务器通过用户码单元702根据该用户码确定所述第一客户端是否具有直播权限,所述用户码是否在有效期限内。当确定所述第一客户端具有直播权限,且所述用户码在有效期限内,接受所述直播数据流发送请求,向第一客户端发送接收请求的响应消息,后续接入所述第一客户端发送的直播数据流。

步骤s704:流媒体服务器根据用户码确定第一客户端没有直播权限或者用户码不在有效期限内时,向第一客户端发送拒绝推流的消息。

步骤s705:用于监管、运营的第二客户端向流媒体服务器发送接收直播数据流请求,该请求中包括第二客户端所在终端的ip地址。流媒体服务器判断该ip地址是否为内网ip地址,如果是内网ip地址,将与所述接收直播数据流请求对应的直播数据流发送给第二客户端。

步骤s706:流媒体服务器确定所述ip地址不是内网ip地址时,向第二客户端发送拒绝拉流的消息。

本申请实例还提供一种媒体数据处理装置800,应用于流媒体服务器102,如图8所示,包括:

请求接收单元801,用于接收第一客户端发送的直播数据流发送请求;其中,所述直播数据流发送请求中包括用于标识所述第一客户端的用户码;

权限确定单元802,用于当根据所述用户码确定所述第一客户端具有直播权限时,或者根据所述用户码确定所述第一客户端具有直播权限,且所述用户码在有效期限内时,接受所述直播数据流发送请求;否则拒绝所述直播数据流发送请求;

直播数据流接入单元803,用于当接受所述直播数据流发送请求时,接入所述第一客户端发送的直播数据流;当拒绝所述直播数据流发送请求时,拒绝接入所述第一客户端发送的直播数据流。

采用本申请提供的媒体数据处理装置,第一客户端将直播的音视频数据经过编码、封装后形成直播数据流,并推流到流媒体服务器。在第一客户端与流媒体服务器之间的连接建立过程中,流媒体服务器对携带用户码的接入信令进行鉴权,预防非法流的攻击,编码器或推流软件不携带其他鉴权信息,从而解决了一些编码器和推流软件不支持用户名和密码输入的鉴权方式,能够适用于各种rtmp应用场景的安全接入。

在一些实例中,所述装置进一步包括:

建立单元804,用于建立具有直播权限的第一客户端的直播id列表;

其中,所述权限确定单元802用于:

根据所述用户码确定直播id及所述用户码的生成时间;

当在所述直播id列表中查找到所述确定的直播id时,确定所述第一客户端具有直播权限;

当所述用户码的生成时间满足预设时间条件时,确定所述用户码在有效期限内;

当所述第一客户端具有直播权限,且所述用户码在有效期限内时,接受所述直播数据流发送请求。

在一些实例中,所述装置进一步包括用户码获取单元805,用于:

建立具有直播权限的用户账号及对应的直播id的列表;

接收用户码客户端响应于对用户码控件的操作发送的用户码获取请求,所述用户码获取请求中包括用户账号及对所述用户码控件的操作时间;

当在所述列表中查找到所述用户账号对应的直播id时,采用预定算法根据所述直播id及所述操作时间生成所述用户码;

将所述用户码发送给所述用户码客户端,以使所述第一客户端在所述直播数据流发送请求中携带所述用户码。

本申请还提供一种媒体数据处理装置900,应用于用户码客户端,如图9所示,包括:

页面数据请求单元901,用于向流媒体服务器发送用户码页面数据获取请求;接收流媒体服务器发送的用户码页面数据,并根据所述用户码页面数据展示用户码页面;

用户码请求单元902,用于响应于对所述用户码页面中用户码控件的操作,向流媒体服务器发送用户码获取请求,所述用户码获取请求中包括用户账号及所述用户操作所述用户码控件的时间,以使流媒体服务器根据所述用户账号查找与该用户账号对应的直播id,当查找到与该用户账号对应的直播id时,采用预定算法根据所述直播id及所述操作时间生成用户码;

用户码接收单元903,用于接收流媒体服务器发送的所述用户码,以使所述用户当通过第一客户端向流媒体服务器发送直播数据流时在直播数据流发送请求中携带所述用户码,以使得所述流媒体服务器当根据所述用户码确定所述用户具有直播权限,且所述用户码在有效期限内时时,接受所述直播数据流发送请求,接入所述第一客户端发送的直播数据流。

采用本申请提供的媒体数据处理装置,用户码客户端向流媒体服务器请求用户码,获得用户码以在推流过程中,在推流的接入信令中携带该用户码,以使流媒体服务器根据该用户码确定是否接受所述推流请求。流媒体服务器对接入信令中的用户码进行鉴权,预防非法流的攻击,编码器或推流软件不携带其他鉴权信息,从而解决了一些编码器和推流软件不支持用户码和密码输入的鉴权方式,能够适用于各种rtmp应用场景的安全接入。

本申请还提供了一种计算机可读存储介质,存储有计算机可读指令,可以使至少一个处理器执行如上述所述的媒体数据处理方法。

图10示出了媒体数据处理装置800、媒体数据处理装置900所在的计算设备的组成结构图。如图10所示,该计算设备包括一个或者多个处理器(cpu)1002、通信模块1004、存储器1006、用户接口1010,以及用于互联这些组件的通信总线1008。

处理器1002可通过通信模块1004接收和发送数据以实现网络通信和/或本地通信。

用户接口1010包括一个或多个输出设备1012,其包括一个或多个扬声器和/或一个或多个可视化显示器。用户接口1010也包括一个或多个输入设备1014,其包括诸如,键盘,鼠标,声音命令输入单元或扩音器,触屏显示器,触敏输入板,姿势捕获摄像机或其他输入按钮或控件等。

存储器1006可以是高速随机存取存储器,诸如dram、sram、ddrram、或其他随机存取固态存储设备;或者非易失性存储器,诸如一个或多个磁盘存储设备、光盘存储设备、闪存设备,或其他非易失性固态存储设备。

存储器1006存储处理器1002可执行的指令集,包括:

操作系统1016,包括用于处理各种基本系统服务和用于执行硬件相关任务的程序;

应用1018,包括用于内容投放数据的分析的各种应用程序,这种应用程序能够实现上述各实例中的处理流程,比如可以包括媒体数据处理装置800或媒体数据处理装置900中的部分或全部单元或者模块。媒体数据处理装置800或媒体数据处理装置900中的各单元中的至少一个单元可以存储有机器可执行指令。处理器1002通过执行存储器1006中各单元中至少一个单元中的机器可执行指令,进而能够实现上述各单元或模块中的至少一个模块的功能。

需要说明的是,上述各流程和各结构图中不是所有的步骤和模块都是必须的,可以根据实际的需要忽略某些步骤或模块。各步骤的执行顺序不是固定的,可以根据需要进行调整。各模块的划分仅仅是为了便于描述采用的功能上的划分,实际实现时,一个模块可以分由多个模块实现,多个模块的功能也可以由同一个模块实现,这些模块可以位于同一个设备中,也可以位于不同的设备中。

各实施例中的硬件模块可以以硬件方式或硬件平台加软件的方式实现。上述软件包括机器可读指令,存储在非易失性存储介质中。因此,各实施例也可以体现为软件产品。

各例中,硬件可以由专门的硬件或执行机器可读指令的硬件实现。例如,硬件可以为专门设计的永久性电路或逻辑器件(如专用处理器,如fpga或asic)用于完成特定的操作。硬件也可以包括由软件临时配置的可编程逻辑器件或电路(如包括通用处理器或其它可编程处理器)用于执行特定操作。

另外,本申请的每个实例可以通过由数据处理设备如计算机执行的数据处理程序来实现。显然,数据处理程序构成了本申请。此外,通常存储在一个存储介质中的数据处理程序通过直接将程序读取出存储介质或者通过将程序安装或复制到数据处理设备的存储设备(如硬盘和或内存)中执行。因此,这样的存储介质也构成了本申请,本申请还提供了一种非易失性存储介质,其中存储有数据处理程序,这种数据处理程序可用于执行本申请上述方法实例中的任何一种实例。

图10模块对应的机器可读指令可以使计算机上操作的操作系统等来完成这里描述的部分或者全部操作。非易失性计算机可读存储介质可以是插入计算机内的扩展板中所设置的存储器中或者写到与计算机相连接的扩展单元中设置的存储器。安装在扩展板或者扩展单元上的cpu等可以根据指令执行部分和全部实际操作。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

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