直播视频的传输方法、装置和系统与流程

文档序号:14216445阅读:700来源:国知局

本发明实施例涉及互联网技术,尤其涉及一种直播视频的传输方法、装置和系统。



背景技术:

随着视频直播日益受到用户的喜爱,很多越顶(英文:over-the-top,简称:ott)视频网站都提供直播视频业务,然而直播视频的特点是观看同一频道的用户看到的都是重复内容,即对于观看直播频道的用户,在网络中传输了大量重复的数据报文,占用了大量网络带宽,并且还会给运营商带来大量的网络结算费用。

为克服上述问题,提出一种组播承载ott的技术,通过组播承载网络来降低网络流量、减轻视频源服务器负载。单播转组播(英文:unicasttomulticast,简称:u2m)设备以单播方式从视频源服务器获取视频数据,然后将视频数据组播分发到多个组播转单播(英文:multicasttounicast,简称:m2u)设备;m2u设备的中央处理单元(英文:centralprocessingunit,简称:cpu)接收直播管理平台通知的组播组和对应的频道信息,加入组播组,接收组播报文,根据接收的频道信息和接收的组播报文生成索引文件和媒体分片,再根据接收到的终端设备的应用程序(英文:application,简称:app)访问某个直播频道的超文本传输协议(英文:hypertexttransferprotocol,简称:http)请求,单播发送该直播频道的索引文件和媒体分片给app。即m2u设备将视频数据再次转换成http报文单播发送给用户侧的终端设备。

然而,上述m2u设备将视频数据再次转换成http报文的过程需要靠cpu的能力实现,然而,cpu处理http流量的能力有限,当用户较多时,不能实现直播视频服务。



技术实现要素:

本发明实施例提供一种直播视频的传输方法、装置和系统,用于解决上述m2u设备将视频数据再次转换成http报文的过程需要靠cpu的能力实现,然而,cpu处理http流量的能力有限,当用户较多时,不能实现直播视频服务的问题。

本发明第一方面提供一种直播视频的传输方法,应用于m2u设备,所述方法包括:

接收客户端发送的用户数据报协议(英文:userdatagramprotocol,简称:udp)请求;所述udp请求包括直播频道标识,用于请求所述直播频道标识对应的直播频道的视频数据;

获取所述直播频道标识对应的直播频道的视频数据;

获取所述udp请求中包括的源ip地址和源端口,其中,所述源ip地址为所述客户端的ip地址,所述源端口为所述客户端发送所述udp请求的端口;

根据所述源ip地址和所述源端口,将所述视频数据以udp单播方式发送至所述客户端。

该方案中,直播频道标识一般是组播地址或者统一资源定位符(英文:uniformresourcelocator,简称:url),m2u设备根据客户端发送的udp请求中的直播频道标识,从u2m组播的获取与直播频道标识对应的udp协议的直播频道的视频数据,不需要cpu进行协议转换,直接通过硬件转发将视频数据以udp单播方式发送给客户端,有效提高m2u设备的吞吐量。

在上述方案的基础上,所述根据所述源ip地址和所述源端口,将所述视频数据以udp单播方式发送至所述客户端,包括:

获取所述视频数据中的组播报文;

将所述组播报文的目的ip地址修改为所述udp请求的源ip地址,将所述组播报文的目的端口修改为所述udp请求的源端口,得到udp单播报文;

向所述客户端发送所述udp单播报文。

该方案中m2u设备获取到视频数据中的组播报文,通过硬件转发模块将组播报文的目的ip地址修改为客户端的源ip地址,将目的端口修改为客户端发送dup请求的源端口,直接将视频数据以udp单播报文的方式转发至客户端进行解析播放,不需要cpu进行数据协议转换,在用户较多时也可以实现时频的直播,提高m2u设备的吞吐量。

在上述任一方案的基础上,所述直播频道标识包括组播地址,则m2u设备获取所述直播频道标识对应的直播频道的视频数据的一种具体实现方式包括:

向所述组播地址对应的u2m设备发送组播加入消息,所述组播加入消息包括所述组播地址;

接收所述u2m设备返回的所述组播地址对应的直播频道的所述视频数据。

可选的,在上述任一方案的基础上,所述直播频道标识包括组播地址,所述接收客户端发送的用户数据报协议udp请求之前,所述方法还包括:向单播转组播u2m设备发送组播加入消息,所述组播加入消息用于请求多个组播地址对应的多个直播频道的视频数据;

接收所述u2m设备发送的所述多个直播频道的视频数据;

则m2u设备获取所述直播频道标识对应的直播频道的视频数据的另一种实现方式包括:根据所述组播地址从所述多个直播频道的视频数据中获取所述组播地址对应的直播频道的视频数据。

上述方案提供两种m2u设备获取组播地址对应的直播频道的视频数据的方式,一种是直接发送包括组播地址的组播加入消息,以使u2m设备根据该组播地址将对应的直播频道的视频数据返回给m2u设备;另一种方式是发送包括多个组播地址的组播加入消息,同时获取多个组播地址分别对应的直播频道的数据,m2u设备根据该客户端发送的请求中的组播地址从本地的视频数据中得到与该组播地址对应的视频数据。

可选的,所述直播频道标识包括url,则所述获取所述直播频道标识对应的直播频道的视频数据,包括:

根据所述url获取与所述url对应的组播地址;

向所述组播地址对应的u2m设备发送组播加入消息,所述组播加入消息包括所述组播地址;

接收所述u2m设备返回的所述组播地址对应的直播频道的所述视频数据。

可选的,所述直播频道标识包括url,所述接收客户端发送的用户数据报协议udp请求之前,所述方法还包括:

向u2m设备发送组播加入消息,所述组播加入消息用于请求多个组播地址对应的多个直播频道的视频数据;

接收所述u2m设备发送的所述多个直播频道的视频数据;

则所述获取所述直播频道标识对应的直播频道的视频数据,包括:

根据所述url获取与所述url对应的组播地址;

根据所述组播地址从所述多个直播频道的视频数据中获取所述组播地址对应的直播频道的视频数据。

可选的,所述根据所述url获取与所述url对应的组播地址,包括:

查询预先获取的组播地址和url的对应关系,查询获取与所述url对应的组播地址;

或者,

向直播管理平台发送包括所述url的组播地址查询消息,并接收所述直播管理平台返回的与所述url对应的组播地址。

在上述任一方案的基础上,所述udp请求还包括用户标识;则所述获取所述直播频道标识对应的直播频道的视频数据之前,所述方法还包括:确定所述用户标识对应的用户是否具备观看所述直播频道标识对应的直播频道的权限,

若确定出所述用户标识对应的用户具备观看所述直播频道标识对应的直播频道的权限,则执行所述获取所述直播频道标识对应的直播频道的视频数据的步骤。

本方案的含义是在获取组播地址对应的直播频道的视频数据之前,还需要对该客户端登陆的用户是否具备观看该直播频道的权限,如果该用户不具备观看该直播频道的权限,则不响应该udp请求,如果该用户具备观看观看该直播频道的权限,则按照上述的任一种方式获取视频数据。

在上述方案的基础上,所述确定所述用户标识对应的用户是否具备观看所述直播频道标识对应的直播频道的权限,包括:

将udp请求中携带的用户标识和验证信息以及所述直播频道标识发送给直播管理平台进行验证,并接收所述直播管理平台返回的验证结果;所述验证结果用于指示所述用户标识对应的用户是否具备观看所述直播频道标识对应的直播频道的权限;

或者,

将所述udp请求携带的授权信息以及所述直播频道标识发送给直播管理平台进行验证,并接收所述直播管理平台返回的验证结果;所述验证结果用于指示所述用户标识对应的用户是否具备观看所述直播频道标识对应的频道的权限。

本发明第二方面提供一种直播视频的传输方法,应用于客户端,所述方法包括:

向m2u设备发送udp请求;所述udp请求包括直播频道标识,用于请求直播频道标识对应的直播频道的视频数据;

接收所述m2u设备发送的所述直播频道的视频数据;所述视频数据为所述m2u设备根据所述直播频道标识获取的;所述视频数据承载在udp单播报文中;

解析所述udp单播报文以播放所述直播频道的视频。

本方案中的客户端接收到m2u设备单播的udp报文之后进行解析处理得到直播频道的视频,并进行播放。

可选的,所述udp请求还包括:授权信息;和/或,用户标识和验证信息。

本发明第三方面一种m2u设备,包括:

接收模块,用于接收客户端发送的udp请求;所述udp请求包括直播频道标识,用于请求直播频道标识对应的直播频道的视频数据;

处理模块,用于获取所述直播频道标识对应的直播频道的视频数据;

所述处理模块还用于获取所述udp请求中包括的源ip地址和源端口,其中,所述源ip地址为所述客户端的ip地址,所述源端口为所述客户端发送所述udp请求的端口;

发送模块,用于根据所述源ip地址和所述源端口,将所述视频数据以udp单播方式发送至所述客户端。

可选的,所述发送模块具体用于:

获取所述视频数据中的组播报文;

将所述组播报文的目的ip地址修改为所述udp请求的源ip地址,将所述组播报文的目的端口修改为所述udp请求的源端口,得到udp单播报文;

向所述客户端发送所述udp单播报文。

可选的,所述直播频道标识包括组播地址,则所述发送模块还用于向所述组播地址对应的u2m设备发送组播加入消息,所述组播加入消息包括所述组播地址;

所述接收模块还用于接收所述u2m设备返回的所述组播地址对应的直播频道的所述视频数据。

可选的,所述直播频道标识包括组播地址,所述接收模块接收客户端发送的udp请求之前,

所述发送模块还用于向u2m设备发送组播加入消息,所述组播加入消息用于请求多个组播地址对应的多个直播频道的视频数据;

所述接收模块还用于接收所述u2m设备发送的所述多个直播频道的视频数据;

所述处理模块具体用于根据所述组播地址从所述多个直播频道的视频数据中获取所述组播地址对应的直播频道的视频数据。

可选的,所述直播频道标识包括url,则所述处理模块还用于根据所述url获取与所述url对应的组播地址;

所述发送模块还用于向所述组播地址对应的u2m设备发送组播加入消息,所述组播加入消息包括所述组播地址;

所述接收模块还用于接收所述u2m设备返回的所述组播地址对应的直播频道的所述视频数据。

可选的,所述直播频道标识包括url,所述接收模块接收客户端发送的udp请求之前,所述发送模块还用于向u2m设备发送组播加入消息,所述组播加入消息用于请求多个组播地址对应的多个直播频道的视频数据;

所述接收模块还用于接收所述u2m设备发送的所述多个直播频道的视频数据;

则所述处理模块具体用于:

根据所述url获取与所述url对应的组播地址;

根据所述组播地址从所述多个直播频道的视频数据中获取所述组播地址对应的直播频道的视频数据。

可选的,所述处理模块还用于查询预先获取的组播地址和url的对应关系,查询获取与所述url对应的组播地址;

或者,

所述发送模块还用于向直播管理平台发送包括所述url的组播地址查询消息,所述接收模块还用于接收所述直播管理平台返回的与所述url对应的组播地址。

可选的,所述udp请求还包括用户标识;则所述处理模块还用于确定所述用户标识对应的用户是否具备观看所述直播频道标识对应的直播频道的权限,

若所述用户标识对应的用户具备观看所述直播频道标识对应的直播频道的权限,则执行所述获取所述直播频道标识对应的直播频道的视频数据的步骤。

可选的,所述发送模块还用于将udp请求中携带的用户标识和验证信息以及所述直播频道标识发送给直播管理平台进行验证;所述接收模块还用于接收所述直播管理平台返回的验证结果,所述验证结果用于指示所述用户标识对应的用户是否具备观看所述直播频道标识对应的直播频道的权限;

或者,

所述发送模块还用于将所述udp请求携带的授权信息以及所述直播频道标识发送给直播管理平台进行验证;所述接收模块还用于接收所述直播管理平台返回的验证结果,所述验证结果用于指示所述用户标识对应的用户是否具备观看所述直播频道标识对应的频道的权限。

本发明第四方面提供一种客户端,包括:

发送模块,用于向m2u设备发送udp请求;所述udp请求包括直播频道标识,用于请求所述直播频道标识对应的直播频道的视频数据;

接收模块,用于接收所述m2u设备发送的所述直播频道的视频数据;所述视频数据为所述m2u设备根据所述直播频道标识获取的;所述视频数据承载在udp单播报文中;

处理模块,用于解析所述udp单播报文以播放所述直播频道的视频。

可选的,所述发送模块发送的所述udp请求还包括:授权信息;和/或,用户标识和验证信息。

本发明第五方面提供一种m2u设备,包括:用于存储程序代码和配置信息的存储器,处理器,硬件转发模块;

所述处理器用于:

接收客户端发送的udp请求;所述udp请求包括直播频道标识,用于请求直播频道标识对应的直播频道的视频数据;

获取所述直播频道标识对应的直播频道的视频数据;获取所述udp请求中包括的源ip地址和源端口,其中,所述源ip地址为所述客户端的ip地址,所述源端口为所述客户端发送所述udp请求的端口;

所述硬件转发模块用于根据所述源ip地址和所述源端口,将所述视频数据以udp单播方式发送至所述客户端。

可选的,所述硬件转发模块具体用于:

获取所述视频数据中的组播报文;

将所述组播报文的目的ip地址修改为所述udp请求的源ip地址,将所述组播报文的目的端口修改为所述udp请求的源端口,得到udp单播报文;

向所述客户端发送所述udp单播报文。

可选的,所述直播频道标识包括组播地址,则所述处理器还用于向所述组播地址对应的u2m设备发送组播加入消息,所述组播加入消息包括所述组播地址;

所述硬件转发模块还用于接收所述u2m设备返回的所述组播地址对应的直播频道的所述视频数据。

可选的,所述直播频道标识包括组播地址,所述处理器还用于向u2m设备发送组播加入消息,所述组播加入消息用于请求多个组播地址对应的多个直播频道的视频数据;

所述硬件转发模块还用于接收所述u2m设备发送的所述多个直播频道的视频数据;

所述处理器还用于根据所述组播地址从所述多个直播频道的视频数据中获取所述组播地址对应的直播频道的视频数据。

可选的,所述直播频道标识包括url,则所述处理器还用于:

根据所述url获取与所述url对应的组播地址;

向所述组播地址对应的u2m设备发送组播加入消息,所述组播加入消息包括所述组播地址;

接收所述u2m设备返回的所述组播地址对应的直播频道的所述视频数据。

可选的,所述直播频道标识包括url,所述处理器接收客户端发送的用户数据报协议udp请求之前,所述处理器还用于:

向单播转组播u2m设备发送组播加入消息,所述组播加入消息用于请求多个组播地址对应的多个直播频道的视频数据;

接收所述u2m设备发送的所述多个直播频道的视频数据;

则所述处理器具体用于:

根据所述url获取与所述url对应的组播地址;

根据所述组播地址从所述多个直播频道的视频数据中获取所述组播地址对应的直播频道的视频数据。

可选的,所述处理器具体用于:

查询预先获取的组播地址和url的对应关系,查询获取与所述url对应的组播地址;

或者,

向直播管理平台发送包括所述url的组播地址查询消息,并接收所述直播管理平台返回的与所述url对应的组播地址。

可选的,所述udp请求还包括用户标识;则所述获取所述组播地址对应的直播频道的视频数据之前,所述处理器还用于确定所述用户标识对应的用户是否具备观看所述直播频道标识对应的直播频道的权限,

若确定出所述用户标识对应的用户具备观看所述直播频道标识对应的直播频道的权限,则执行所述获取所述直播频道标识对应的直播频道的视频数据的步骤。

可选的,所述处理器还用于将udp请求中携带的用户标识和验证信息以及所述直播频道标识发送给直播管理平台进行验证,并接收所述直播管理平台返回的验证结果;所述验证结果用于指示所述用户标识对应的用户是否具备观看所述直播频道标识对应的直播频道的权限;

或者,

所述处理器还用于将所述udp请求携带的授权信息以及所述直播频道标识发送给直播管理平台进行验证,并接收所述直播管理平台返回的验证结果;所述验证结果用于指示所述用户标识对应的用户是否具备观看所述直播频道标识对应的频道的权限。

本发明第六方面提供一种用户设备,包括:用于存储程序代码和配置信息的存储器、收发器和处理器;

所述收发器用于向m2u设备发送用户数据报协议udp请求;所述udp请求包括组直播频道标识,用于请求直播频道标识对应的直播频道的视频数据;

所述收发器还用于接收所述m2u设备发送的所述直播频道的视频数据;所述视频数据为所述m2u设备根据所述直播频道标识获取的;所述视频数据承载在udp单播报文中;

所述处理器用于解析所述udp单播报文以播放所述直播频道的视频。

可选的所述收发器发送的所述udp请求还包括:授权信息;和/或,用户标识和验证信息。

本发明第七方面提供一种直播视频的传输系统,包括:第三方面任一方案提供的m2u设备以及第四方面任一方案提供的客户端。

进一步地,所述系统还包括u2m设备;所述u2m设备用于:

接收所述m2u设备发送的包括组播地址的组播加入消息,并向所述m2u设备返回所述组播地址对应的直播频道的所述视频数据;

或者,

接收所述m2u设备发送的用于请求多个组播地址对应的直播频道的视频数据的组播加入消息,并将所述m2u设备返回所述多个直播频道的视频数据。

本发明提供的直播视频的传输方法、装置和系统,m2u设备接收客户端发送的包括直播频道标识、用于请求直播频道标识对应直播频道的视频数据的udp请求,然后获取与所述直播频道标识对应的直播频道的视频数据,m2u设备根据上述udp请求获取客户端的源ip地址和客户端发送udp请求的源端口,并根据源ip地址和源端口,将视频数据以udp单播方式发送至客户端,不需要cpu对视频数据进行协议转换,直接通过能够接收报文的源ip地址和源端口,通过硬件转发将视频数据以udp方式单播发送,使用硬件转发直接发送视频数据,可以有效提高m2u设备的吞吐量,在用户比较多的时候也可以实现直播视频服务。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做一简单地介绍。

图1为本发明直播视频的传输系统的架构图;

图2为本发明直播视频的传输方法实施例一的流程图;

图3为本发明直播视频的传输方法实施例二的交互流程图;

图4为本发明直播视频的传输系统的交互示意图;

图5a为本发明直播视频的传输方法一实例的交互流程图;

图5b为传输协议示意图;

图6为本发明m2u设备实施例的结构示意图;

图7为本发明客户端实施例的结构示意图;

图8为本发明m2u设备实体实施例的结构示意图;

图9为本发明用户设备实体实施例的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚描述。

图1为本发明直播视频的传输系统的架构图,如图1所示,视频直播的系统主要包括用户侧的客户端,例如:直播应用(英文:application,简称:app),m2u设备,u2m设备,在该系统架构中,u2m设备通过单播的方式从ott服务器获取视频数据,然后将视频数据通过组播方式分发到不同的m2u设备(每个u2m设备连接多个m2u设备),m2u设备再根据客户端的请求将视频数据发送至客户端向用户播放。在该过程中,m2u设备在网络中的物理实现形式可以是独立服务器、路由器业务单板、路由器转发单板等,客户端可运行在用户的手机、电脑、平板电脑等终端设备上。可选的,该系统还包括用于对用户的直播权限进行验证的直播管理平台。

在上述网络架构的基础上,由于路由器转发单板的转发能力很高,本方案提出采用转发单板的转发能力来实现m2u功能的思路,基本思路是硬件转发模块收到组播报文后,把组播报文的目的因特网协议(英文:internetprotocol,简称:ip地址)修改为客户端的ip地址,把组播报文的目的端口修改为客户端的端口。

图2为本发明直播视频的传输方法实施例一的流程图,在上述图1所示的系统架构下,如图2所示,该直播视频的传输方法主要应用在m2u设备上,具体的包括以下步骤:

s101:接收客户端发送的udp请求;udp请求包括直播频道标识,用于请求直播频道标识对应的直播频道的视频数据。

在本步骤中,客户端通过用户的操作确定需要获取某个直播频道的视频数据,则向m2u设备发送udp请求,该udp请求中包括直播频道标识,该直播频道标识可以为直播频道的组播地址或者url,以便m2u设备可以根据组播地址或者url获取对应的视频数据。

在本方案中,若客户端发送的udp请求中携带的是url,则该m2u设备需要先根据url和组播地址的对应关系,获取该url对应的组播地址,即m2u设备首先查询预先获取的组播地址和url的对应关系,查询获取与所述url对应的组播地址;或者m2u设备将该url发送至直播管理平台,通过直播管理平台查询得到该url对应的组播地址,然后根据该组播地址获取对应的视频数据。

可选的,udp请求还包括:授权信息;和/或,用户标识和验证信息。

s102:获取直播频道标识对应的直播频道的视频数据。

在本步骤中,m2u设备获取组播地址对应的直播频道的视频数据的具体实现方式至少包括:

该直播频道标识为组播地址时,可直接采用下面的两种方式获取视频数据。

第一种实现方式,m2u设备向所述组播地址对应的u2m设备发送组播加入消息,所述组播加入消息包括所述组播地址,并接收所述u2m设备返回的所述组播地址对应的直播频道的所述视频数据。

其含义是m2u设备直接向u2m设备发送包括组播地址的组播加入消息,以使u2m设备根据该组播地址将对应的直播频道的视频数据返回给m2u设备,即u2m设备需要根据组播地址从引流至本地的视频数据中查询出该组播地址对应的视频数据,然后返回给m2u设备。

第二种实现方式,m2u设备在接收客户端发送的udp请求之前,向u2m设备发送组播加入消息,所述组播加入消息用于请求多个组播地址对应的多个直播频道的视频数据;接收所述u2m设备发送的所述多个直播频道的视频数据,在接收到客户端发送的udp请求之后,根据其中携带的组播地址从所述多个直播频道的视频数据中获取所述组播地址对应的直播频道的视频数据。

其含义是m2u设备向u2m设备发送包括多个组播地址的组播加入消息,同时获取多个组播地址分别对应的直播频道的数据,m2u设备根据该客户端发送的请求中的组播地址从本地的视频数据中得到与该组播地址对应的视频数据。

若直播频道标识是url,则m2u采用上述两种方式获取视频数据之前,首先要根据url得到对应的组播地址,具体的根据url得到组播地址的方式至少包括:查询预先获取的组播地址和url的对应关系,查询获取与所述url对应的组播地址;或者,

向直播管理平台发送包括所述url的组播地址查询消息,并接收所述直播管理平台返回的与所述url对应的组播地址。

该获取url对应的组播地址的步骤一般在向所述组播地址对应的单播转组播u2m设备发送组播加入消息之前或者在根据所述组播地址从所述多个直播频道的视频数据中获取所述组播地址对应的直播频道的视频数据之前执行,对此本方案不做具体限制,在使用组播地址之前获取到url对应的组播地址即可。

s103:获取udp请求中包括的源ip地址和源端口,其中,源ip地址为客户端的ip地址,源端口为客户端发送udp请求的端口。

在本步骤中,m2u设备已经获取到该客户端请求的视频数据,则需要将视频数据转发给客户端,在本方案中,m2u设备根据udp请求获取客户端的源ip地址,以及发送该udp请求的端口,作为转发视频数据的目的地址和目的端口。

s104:根据源ip地址和源端口,将视频数据以udp单播方式发送至客户端。

在上述步骤的基础上,m2u设备根据udp请求得到客户端的源ip地址和发送udp请求的源端口后,通过硬件转发模块将得到的视频数据直接以单播的方式发送给客户端,不需要进行协议转换。

具体的,因为udp报文可以直接发向udp接收端。所以该m2u设备可使用路由器转发单板的硬件转发能力,转成udp单播方式将视频数据返回给客户端。具体的实现过程为:

m2u设备获取所述视频数据中的组播报文;m2u设备的硬件转发模块将所述组播报文的目的ip地址修改为所述udp请求的源ip地址,将所述组播报文的目的端口修改为所述udp请求的源端口,得到udp单播报文,然后向所述客户端发送所述udp单播报文。

本实施例提供的直播视频的传输方法,客户端向m2u设备发送udp请求,m2u设备根据udp请求中的直播频道标识,获取该直播频道标识对应的直播频道对应的视频数据,并获取到视频数据中的组播报文,m2u收到udp请求对应的组播视频数据后,把组播目的ip地址和目的端口修改为上述获取的客户端的单播目的ip地址和目的端口,直接将视频数据以udp单播报文的方式转发至客户端进行解析播放,不需要cpu进行数据协议转换,在用户较多时也可以实现时频的直播,提高m2u设备的吞吐量。

图3为本发明直播视频的传输方法实施例二的交互流程图,如图3所示,以udp请求中携带组播地址为例,该直播视频的传输方法的交互过程具体为:

s201:向m2u设备发送udp请求;udp请求包括组播地址。

本步骤中,用户侧的设备通过用户在客户端上的操作,向m2u设备发送udp请求请求直播频道的视频数据。

s202:确定用户标识对应的用户是否具备观看组播地址对应的直播频道的权限。

一种具体实现中,该udp请求还包括用户标识(或者用户标识和登陆密码),m2u设备需要对用户的权限进行验证,确定该用户是否具备观看该组播地址对应的直播频道的权限,具体的验证方式至少包括以下两种方式:

第一种方式,m2u设备将udp请求中携带的用户标识和验证信息(即注册的用户名和登陆密码等)以及所述直播频道标识发送给直播管理平台进行验证,并接收所述直播管理平台返回的验证结果;所述验证结果用于指示所述用户标识对应的用户是否具备观看所述直播频道标识对应的直播频道的权限。

第二种方式,m2u设备将所述udp请求携带的授权信息以及所述直播频道标识发送给直播管理平台进行验证,并接收所述直播管理平台返回的验证结果;所述验证结果用于指示所述用户标识对应的用户是否具备观看所述直播频道标识对应的频道的权限。

在上述两种方式中,直播频道的标识可以是组播地址或者可唯一标识该客户端的url,该url是ott服务器通知客户端,该url携带在udp请求中发送至m2u设备;可选的该udp请求中还可以携带授权信息,在m2u设备通过上述两种方式对用户是否具备观看权限进行验证时,可同时将该授权信息发送至直播管理平台进行验证。

s203:获取组播地址对应的直播频道的视频数据。

在本步骤中,当m2u得到直播管理平台返回的验证结果,确定该用户具备观看该组播地址对应的直播频道的视频时,m2u获取该组播地址对应的直播频道的视频数据,具体的获取方式与前述实施例一中相同,在此不再赘述。

s204:获取udp请求中包括的源ip地址和源端口。

s205:获取视频数据中的组播报文;将组播报文的目的ip地址修改为udp请求的源ip地址,将组播报文的目的端口修改为udp请求的源端口,得到udp单播报文。

在上述步骤s204和s205中,m2u设备根据udp请求客户端的ip地址,即所述源ip地址,以及客户端发送所述udp请求的端口,即所述源端口。

在该方案中,由硬件转发模块实现数据的交互,因此硬件转发模块可以将组播报文中的目的地址和目的端口修改为上述源ip地址和源端口,得到单播报文。

s206:向客户端发送udp单播报文。

s207:解析udp单播报文以播放直播频道的视频。

m2u设备的硬件转发模块在修改了组播报文的目的ip地址和目的端口之后,以单播报文的方式将视频数据直接发送给上述客户端,客户端接收到报文之后进行合并和解析处理,并将得到的该直播频道的视频进行播放。

在上述方案中,可选的,若客户端发送的udp请求携带url,则m2u设备接收到该udp请求之后,根据url和组播地址的对应关系,获取与该url对应的组播地址,或者m2u设备向直播管理平台发送包括该url的组播地址查询消息,并接收直播管理平台返回的与url对应的组播地址,然后根据该得到的组播地址按照上述方式获取视频数据并通过udp单播的方式发送给客户端。

本实施例提供的直播视频的传输方法,m2u设备根据客户端发送的udp请求,获取组播地址对应的直播频道的视频数据之前,还需要对该客户端登陆的用户是否具备观看该直播频道的权限,如果该用户不具备观看该直播频道的权限,则不响应该udp请求,如果该用户具备观看观看该直播频道的权限,则通过u2m组播的获取udp协议的直播频道的视频数据,不需要cpu进行协议转换,直接通过硬件转发将视频数据以udp单播方式发送给客户端,有效提高m2u设备的吞吐量。

图4为本发明直播视频的传输系统的交互示意图;如图4所示,该传输系统中客户端(也即用户设备侧的app)向m2u设备发送视频请求,m2u设备与直播管理平台和u2m设备之间的信令交互由m2u设备的处理器(即cpu)完成,m2u设备与app和u2m之间的数据交互由硬件转发模块完成。该方案中cpu主要包括客户端管理、直播频道信息和组播加入几个模块;结合上述几个实施例的基础,该方案中u2m用于向m2u设备组播视频数据,具体的包括:接收所述m2u设备发送的包括组播地址的组播加入消息,并向所述m2u设备返回所述组播地址对应的直播频道的所述视频数据;或者,接收所述m2u设备发送的用于请求多个组播地址对应的直播频道的视频数据的组播加入消息,并将所述m2u设备返回所述多个直播频道的视频数据。

前述的任一种技术方案中,组播地址一般指的是组播ip地址,图5a为本发明直播视频的传输方法一实例的交互流程图;如图5a所示,在图4所示的系统交互示意图的基础上,该直播视频的传输方法的一种具体实现过程为:

s301:用户通过app登录认证,请求观看某直播频道。

用户在终端设备操作打开app,登录某视频网站,使用用户名登录认证后,点击某直播频道,请求观看。

s302:ott服务器返回直播频道信息(组播ip地址)和授权信息。

ott服务器返回直播频道标识(如组播ip地址或者url)和用户的授权信息。授权信息一般是一串字符串,表示用户有权观看本频道;对于一些用户可任意观看的免费频道,也可以没有授权信息。

s303:app发送udp请求,请求某直播频道的视频数据(组播ip地址)和授权信息。

app使用udp单播报文向组播源发送udp请求(视频请求),请求内容包括直播频道的标识(如组播ip地址),授权信息等。

s304:m2u设备转发直播频道和授权信息到直播管理平台。

m2u设备捕获到udp请求报文后,为了确定此用户是否有权观看本频道,则转发直播频道的标识(也称为直播频道信息)和用户的授权信息至直播管理平台。

s305:直播管理平台向m2u设备返回认证结果。

直播管理平台验证该用户是否有权观看该直播频道。验证方法可以是直播管理平台根据授权信息直接判断,也可以是转发用户名和密码到ott服务器验证。验证完成后向m2u设备返回验证结果。

s306:如果app无权观看本频道,则m2u设备不处理该udp请求;如果app有权观看,则m2u设备记录app的观看的组播组、接收视频的ip地址和端口。

m2u设备根据认证结果,确定app(代表用户)无权观看本频道,则不再处理本频道的请求。如果app有权观看,则把udp请求报文的源ip地址和源端口,作为该app接收视频数据的目的ip地址和目的端口。

s307:m2u设备发送网络组管理协议(英文:internetgroupmanagementprotocol,简称:igmp)加入消息。

m2u设备向u2m设备发送igmp加入消息加入app请求的组播地址。

s308:u2m设备向m2u设备下发组播视频流量。

s309:m2u设备把相应组播报文的目的ip地址和目的端口,修改为app的接收视频的ip地址和端口,转发单播流量给app。

s310:m2u设备向app发送udp单播视频流量。

上述步骤中u2m设备向m2u设备下发组播视频数据(即视频流)。m2u设备收到组播报文后,把目的ip地址和目的端口修改为app的接收视频的ip地址和端口。m2u设备转发udp单播视频流量给app。

app对接收到的报文进行合并解析得到直播视频,并进行播放。

在前述方案中,ott服务器可以主动将频道对应的组播地址告知app,而在具体实现中,ott服务器可以只向app发送一个可标识该直播频道的url,然后m2u在得到携带该url的udp请求之后去直播管理平台查询url对应的组播地址。该查询过程可以与观看权限验证过程同时执行。

另外,在步骤s302中,ott服务器也可以不返回授权信息,由app在udp请求里带上自己的用户和密码,然后m2u转发给直播管理平台进行验证,对此本方案不做限制。

图5b为传输协议示意图,如图5b所示,m2u设备从u2m设备获取视频数据的过程中,u2m设备以单播方式下载索引文件和分片,然后切割成一个个实时传输协议(英文:real-timetransportprotocol,简称:rtp)overudp组播报文传输,在m2u设备处再还原成索引文件和分片。因此需要确定记录索引文件和分片的信息的传输协议,便于在m2u处还原。该协议在m2u设备将视频数据以udp单播报文发送至客户端时同样适用,udp报文中包括ip头、udp头、rtp头和rtp负荷。其中,rtp头中的m=1表示媒体分片的最后一个rtp包,序号用来保证分片的乱序重排和丢包重传;时间戳表示媒体分片的起始播放时间,媒体分片里的所有rtp包共享同一个时间戳,另外rtp头还包括同步源(英文:synchronizationsource,简称:ssrc)标识和贡献源(英文:contributingsource,简称:csrc)标识。rtp负荷中为数据内容,tp的含义为:0:索引文件;1:初始化信息;2:分片。f=1表示收齐整个分片才能解码播放视频,长度表示的是有效数据的长度,url长度表示分片或者索引文件url的长度,has数据部分为媒体分片或者索引文件的数据,rtp冗余数据用于前向纠错。

在上述协议的基础上,用户的终端设备侧通过app接收到udp单播报文,检测是否有丢包,若存在丢包则通过前向纠错(英文:forwarderrorcorrection,简称:fec)和主动请求重传(英文:retransmission,简称:ret)方式完成丢包还原。具体的在客户端侧的执行过程如下:

1、app收到m2u设备发送的udp报文后,根据rtp序号判断是否有丢包。如果rtp序号不连续,则认为发生了丢包,则转到步骤2处理;否则转到步骤4处理。

2、app根据fec还原丢包,如果成功还原了所有的丢包,则转到步骤4处理;否则转到步骤3处理。

3、app向ret服务器请求重传丢失的rtp包。app收到ret服务器重传的rtp包后,对rtp包重新按序号排序,填补丢包引发的空洞。

4、app检查收到的rtp包的timestamp,如果和上一个rtp包的timestmap不同,则转到步骤5处理;否则转到步骤7处理。

5、timestamp不同,表明本rtp包开始传输一个新的文件对象。app解析文件类型(索引文件或者媒体分片),解析出文件名称。app把新的文件对象信息通知解码器。

6、从rtp包负荷中解析出文件对象数据,交给解码器处理。

7、timestamp相同,说明本rtp包和上一个rtp包都是同一个文件对象。从rtp包负荷中解析出文件对象数据,交给解码器处理。

8、检查rtp头中的mbit是否为1。如果为1,说明本报文是文件对象的最后一个rtp包,把这个信息通知解码器。

然后解码器对接收到的数据包进行解码得到与udp请求对应的视频数据,并进行播放。

图6为本发明m2u设备实施例的结构示意图,如图6所示,该m2u设备10包括:

接收模块11,用于接收客户端发送的udp请求;所述udp请求包括直播频道标识,用于请求直播频道标识对应的直播频道的视频数据;

处理模块12,用于获取所述直播频道标识对应的直播频道的视频数据;

所述处理模块12还用于获取所述udp请求中包括的源ip地址和源端口,其中,所述源ip地址为所述客户端的ip地址,所述源端口为所述客户端发送所述udp请求的端口;

发送模块13,用于根据所述源ip地址和所述源端口,将所述视频数据以udp单播方式发送至所述客户端。

本实施例提供的m2u设备,用于执行前述任一方法实施例中m2u设备的技术方案,其实现原理和技术效果类似,在此不再赘述。

在m2u设备的实施例二中,在上述实施例的基础上,所述发送模块13具体用于:

获取所述视频数据中的组播报文;

将所述组播报文的目的ip地址修改为所述udp请求的源ip地址,将所述组播报文的目的端口修改为所述udp请求的源端口,得到udp单播报文;

向所述客户端发送所述udp单播报文。

可选的,所述直播频道标识包括组播地址,则所述发送模块13还用于向所述组播地址对应的u2m设备发送组播加入消息,所述组播加入消息包括所述组播地址;

所述接收模块11还用于接收所述u2m设备返回的所述组播地址对应的直播频道的所述视频数据。

可选的,所述直播频道标识包括组播地址,所述接收模块11接收客户端发送的用户数据报协议udp请求之前,

所述发送模块13还用于向u2m设备发送组播加入消息,所述组播加入消息用于请求多个组播地址对应的多个直播频道的视频数据;

所述接收模块11还用于接收所述u2m设备发送的所述多个直播频道的视频数据;

所述处理模块12具体用于根据所述组播地址从所述多个直播频道的视频数据中获取所述组播地址对应的直播频道的视频数据。

可选的,所述直播频道标识包括组播地址,则所述发送模块13还用于向所述组播地址对应的u2m设备发送组播加入消息,所述组播加入消息包括所述组播地址;

所述接收模块11还用于接收所述u2m设备返回的所述组播地址对应的直播频道的所述视频数据。

可选的,所述直播频道标识包括组播地址,所述接收模块11接收客户端发送的udp请求之前,

所述发送模块13还用于向u2m设备发送组播加入消息,所述组播加入消息用于请求多个组播地址对应的多个直播频道的视频数据;

所述接收模块11还用于接收所述u2m设备发送的所述多个直播频道的视频数据;

所述处理模块12具体用于根据所述组播地址从所述多个直播频道的视频数据中获取所述组播地址对应的直播频道的视频数据。

可选的,所述直播频道标识包括url,则所述处理模块12还用于根据所述url获取与所述url对应的组播地址;

所述发送模块13还用于向所述组播地址对应的u2m设备发送组播加入消息,所述组播加入消息包括所述组播地址;

所述接收模块11还用于接收所述u2m设备返回的所述组播地址对应的直播频道的所述视频数据。

可选的,所述直播频道标识包括url,所述接收模块11接收客户端发送的udp请求之前,所述发送模块13还用于向u2m设备发送组播加入消息,所述组播加入消息用于请求多个组播地址对应的多个直播频道的视频数据;

所述接收模块11还用于接收所述u2m设备发送的所述多个直播频道的视频数据;

则所述处理模块12具体用于:

根据所述url获取与所述url对应的组播地址;

根据所述组播地址从所述多个直播频道的视频数据中获取所述组播地址对应的直播频道的视频数据。

可选的,所述处理模块12还用于查询预先获取的组播地址和url的对应关系,查询获取与所述url对应的组播地址;

或者,

所述发送模块13还用于向直播管理平台发送包括所述url的组播地址查询消息,所述接收模块11还用于接收所述直播管理平台返回的与所述url对应的组播地址。

可选的,所述udp请求还包括用户标识;则所述处理模块12还用于确定所述用户标识对应的用户是否具备观看所述直播频道标识对应的直播频道的权限,

若所述用户标识对应的用户具备观看所述直播频道标识信息对应的直播频道的权限,则执行所述获取所述直播频道标识对应的直播频道的视频数据的步骤。

可选的,所述发送模块13还用于将udp请求中携带的用户标识和验证信息以及所述直播频道标识发送给直播管理平台进行验证;所述接收模块11还用于接收所述直播管理平台返回的验证结果,所述验证结果用于指示所述用户标识对应的用户是否具备观看所述直播频道标识对应的直播频道的权限;

或者,

所述发送模块13还用于将所述udp请求携带的授权信息以及所述直播频道标识发送给直播管理平台进行验证;所述接收模块11还用于接收所述直播管理平台返回的验证结果,所述验证结果用于指示所述用户标识对应的用户是否具备观看所述直播频道标识对应的频道的权限。

本实施例提供的m2u设备,用于执行前述任一方法实施例中m2u设备的技术方案,其实现原理和技术效果类似,在此不再赘述。

图7为本发明客户端实施例的结构示意图,如图7所示,该客户端20包括:

发送模块21,用于向m2u设备发送udp请求;所述udp请求包括直播频道标识,用于请求直播频道标识对应的直播频道的视频数据;

接收模块22,用于接收所述m2u设备发送的所述直播频道的视频数据;所述视频数据为所述m2u设备根据所述直播频道标识获取的;所述视频数据承载在udp单播报文中;

处理模块23,用于解析所述udp单播报文以播放所述直播频道的视频。

可选的,所述发送模块21发送的所述udp请求还包括:授权信息;和/或,用户标识和验证信息。

本实施例提供的客户端,用于执行前述任一方法实施例中客户端的技术方案,其实现原理和技术效果类似,在此不再赘述。

图8为本发明m2u设备实体实施例的结构示意图,如图8所示,该m2u设备30,包括:用于存储程序代码和配置信息的存储器31,处理器32,硬件转发模块33;

所述处理器32用于:

接收客户端发送的udp请求;所述udp请求包括直播频道标识,用于请求直播频道标识对应的直播频道的视频数据;

获取所述直播频道标识对应的直播频道的视频数据;获取所述udp请求中包括的源ip地址和源端口,其中,所述源ip地址为所述客户端的ip地址,所述源端口为所述客户端发送所述udp请求的端口;

所述硬件转发模块33用于根据所述源ip地址和所述源端口,将所述视频数据以udp单播方式发送至所述客户端。

可选的,所述硬件转发模块33具体用于:

获取所述视频数据中的组播报文;

将所述组播报文的目的ip地址修改为所述udp请求的源ip地址,将所述组播报文的目的端口修改为所述udp请求的源端口,得到udp单播报文;

向所述客户端发送所述udp单播报文。

可选的,所述直播频道标识包括组播地址,则所述处理器32还用于向所述组播地址对应的u2m设备发送组播加入消息,所述组播加入消息包括所述组播地址;

所述硬件转发模块33还用于接收所述u2m设备返回的所述组播地址对应的直播频道的所述视频数据。

可选的,所述直播频道标识包括组播地址,所述处理器32还用于向单播转组播u2m设备发送组播加入消息,所述组播加入消息用于请求多个组播地址对应的多个直播频道的视频数据;

所述硬件转发模块33还用于接收所述u2m设备发送的所述多个直播频道的视频数据;

所述处理器32还用于根据所述组播地址从所述多个直播频道的视频数据中获取所述组播地址对应的直播频道的视频数据。

可选的,所述直播频道标识包括url,则所述处理器32还用于:

根据所述url获取与所述url对应的组播地址;

向所述组播地址对应的u2m设备发送组播加入消息,所述组播加入消息包括所述组播地址;

接收所述u2m设备返回的所述组播地址对应的直播频道的所述视频数据。

可选的,所述直播频道标识包括url,所述处理器32接收客户端发送的用户数据报协议udp请求之前,所述处理器32还用于:

向u2m设备发送组播加入消息,所述组播加入消息用于请求多个组播地址对应的多个直播频道的视频数据;

接收所述u2m设备发送的所述多个直播频道的视频数据;

则所述处理器32具体用于:

根据所述url获取与所述url对应的组播地址;

根据所述组播地址从所述多个直播频道的视频数据中获取所述组播地址对应的直播频道的视频数据。

可选的,所述处理器32具体用于:

查询预先获取的组播地址和url的对应关系,查询获取与所述url对应的组播地址;

或者,

向直播管理平台发送包括所述url的组播地址查询消息,并接收所述直播管理平台返回的与所述url对应的组播地址。

可选的,所述udp请求还包括用户标识;则所述获取所述直播频道标识对应的直播频道的视频数据之前,所述处理器32还用于确定所述用户标识对应的用户是否具备观看所述直播频道标识对应的直播频道的权限,

若确定出所述用户标识对应的用户具备观看所述直播频道标识对应的直播频道的权限,则执行所述获取所述直播频道标识对应的直播频道的视频数据的步骤。

可选的,所述处理器32还用于将udp请求中携带的用户标识和验证信息以及所述直播频道标识发送给直播管理平台进行验证,并接收所述直播管理平台返回的验证结果;所述验证结果用于指示所述用户标识对应的用户是否具备观看所述直播频道标识对应的直播频道的权限;

或者,

所述处理器32还用于将所述udp请求携带的授权信息以及所述直播频道标识发送给直播管理平台进行验证,并接收所述直播管理平台返回的验证结果;所述验证结果用于指示所述用户标识对应的用户是否具备观看所述直播频道标识对应的频道的权限。

本实施例提供的m2u设备,其中处理器用于完成所有与其他设备实体间的信令交互,硬件转发模块用于完成与其他设备实体间的数据交互过程,该m2u设备用于执行前述任一方法实施例中客户端的技术方案,其实现原理和技术效果类似,在此不再赘述。

图9为本发明用户设备实体实施例的结构示意图,如图9所示,该用户设备40用来承载客户端,具体包括:用于存储程序代码和配置信息的存储器41、收发器42和处理器43;

所述收发器42用于向m2u设备发送udp请求;所述udp请求包括直播频道标识,用于请求组播地址对应的直播频道的视频数据;

所述收发器42还用于接收所述m2u设备发送的所述直播频道的视频数据;所述视频数据为所述m2u设备根据所述直播频道标识获取的;所述视频数据承载在udp单播报文中;

所述处理器43用于解析所述udp单播报文以播放所述直播频道的视频。

可选的,所述收发器42发送的所述udp请求还包括:授权信息;和/或,用户标识和验证信息。

本实施例提供的用户设备,用于执行前述任一方法实施例中客户端的技术方案,其实现原理和技术效果类似,在此不再赘述。

在上述m2u设备和用户设备的实施例中,应理解,处理器可以是中央处理单元(英文:centralprocessingunit,简称:cpu),还可以是其他通用处理器、数字信号处理器(英文:digitalsignalprocessor,简称:dsp)、专用集成电路(英文:application-specificintegratedcircuit,简称:asic)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。

本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储器中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储器(存储介质)包括:只读存储器(英文:read-onlymemory,缩写:rom)、随机存储器(英文:randomaccessmemory,缩写:ram)、快闪存储器、硬盘、固态硬盘、磁带(英文:magnetictape)、软盘(英文:floppydisk)、光盘(英文:opticaldisc)及其任意组合。

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

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