一种高并发音视频媒体数据网络传输方法及装置与流程

文档序号:17430871发布日期:2019-04-17 03:28阅读:389来源:国知局
一种高并发音视频媒体数据网络传输方法及装置与流程

本发明涉及通信技术领域,更具体的涉及一种高并发音视频媒体数据网络传输方法及装置。



背景技术:

在现有流媒体传输系统中,设备端(媒体数据源)需要经过一个流服务(媒体数据发送端)来把媒体数据通过网络方式发送出去,有时需要支持多个设备(可能上千)同时把数据网络传输给客户端(数据接收端)。

现有技术中存在的问题包括以下:数据传输过程不可靠,在传输过程中存在丢数据的情况;没有对通信链路的状态进行检测;没有对媒体数据的完整性进行检测;不支持多路数据同时发送,导致网络设备的带宽利用率比较小。



技术实现要素:

本发明实施例提供一种高并发音视频媒体数据网络传输方法及装置,用以解决现有方法中数据传输过程不可靠,在传输过程中存在丢数据的问题,且数据传输不支持大量多路数据同时发送,导致网络设备的带宽利用率比较小的问题。

本发明实施例提供一种高并发音视频媒体数据网络传输方法,包括:

创建一个用于网络侦听的socket,当通过所述socket接收到客户端发送的网络tcp连接请求时,与客户端建立一条网络链路通道;创建多个应用工作线程池,应用工作线程池包括用来处理信令数据的信令应用工作线程池和用来处理媒体数据发送的媒体应用工作线程;

接收到客户端发送的信令时,将所述信令放入信令应用工作线程;对放入信令应用工作线程的信令进行解析并获取所述信令的类型;

根据所述信令的类型,执行与所述信令类型对应的内容。

优选地,所述信令数据采用二进制方式传输。

优选地,所述信令的类型包括创建信令;

所述根据所述信令的类型,执行与所述信令类型对应的操作,具体包括:

所述创建信令为获取媒体格式信息,其中媒体格式信息包括频编码类型,分辨率,码率及帧率;

根据所述创建信令,将所述媒体格式信息包括的全部结果按照格式封装,并发送至所述客户端。

优选地,所述信令的类型包括播放信令;

所述根据所述信令的类型,执行与所述信令类型对应的操作,具体包括:

根据所述播放信令,通过所述媒体应用工作线程重复执行如下步骤:读取与所述播放信令对应的一帧媒体数据,并所述一帧媒体数据按照规定好的封装格式拆分成多个数据包,将所述数据包按照异步发送方式发送至所述客户端。

优选地,所述信令的类型包括停止信令,暂停信令和继续信令;

所述根据所述信令的类型,执行与所述信令类型对应的操作,具体包括:

将所述停止信令放到所述信令应用工作线程,并通知所述媒体应用工作线程停止向所述客户端发送;或者

将所述暂停信令放到所述信令应用工作线程,并通知所述媒体应用工作线程暂停向所述客户端发送;或者

将所述继续信令放到所述信令应用工作线程,并通知所述媒体应用工作线程继续向所述客户端发送。

本发明实施例还提供了一种高并发音视频媒体数据网络传输装置,包括:

创建单元,用于创建一个用于网络侦听的socket,当通过所述socket接收到客户端发送的网络tcp连接请求时,与客户端建立一条网络链路通道;创建多个应用工作线程池,应用工作线程池包括用来处理信令数据的信令应用工作线程池和用来处理媒体数据发送的媒体应用工作线程;

接收单元,用于接收到客户端发送的信令时,将所述信令放入信令应用工作线程;对放入信令应用工作线程的信令进行解析并获取所述信令的类型;

执行单元,用于根据所述信令的类型,执行与所述信令类型对应的内容。

优选地,所述信令数据采用二进制方式传输。

优选地,所述信令的类型包括创建信令;

所述执行单元具体用于:

所述创建信令为获取媒体格式信息,其中媒体格式信息包括频编码类型,分辨率,码率及帧率;

根据所述创建信令,将所述媒体格式信息包括的全部结果按照格式封装,并发送至所述客户端。

优选地,所述信令的类型包括播放信令;

所述执行单元具体用于:

根据所述播放信令,通过所述媒体应用工作线程重复执行如下步骤:读取与所述播放信令对应的一帧媒体数据,并所述一帧媒体数据按照规定好的封装格式拆分成多个数据包,将所述数据包按照异步发送方式发送至所述客户端。

优选地,所述信令的类型包括停止信令,暂停信令和继续信令;

所述执行单元具体用于:

将所述停止信令放到所述信令应用工作线程,并通知所述媒体应用工作线程停止向所述客户端发送;或者

将所述暂停信令放到所述信令应用工作线程,并通知所述媒体应用工作线程暂停向所述客户端发送;或者

将所述继续信令放到所述信令应用工作线程,并通知所述媒体应用工作线程继续向所述客户端发送。

本发明实施例提供一种高并发音视频媒体数据网络传输方法及装置,该方法包括:创建一个用于网络侦听的socket,当通过所述socket接收到客户端发送的网络tcp连接请求时,与客户端建立一条网络链路通道;创建多个应用工作线程池,应用工作线程池包括用来处理信令数据的信令应用工作线程池和用来处理媒体数据发送的媒体应用工作线程;接收到客户端发送的信令时,将所述信令放入信令应用工作线程;对放入信令应用工作线程的信令进行解析并获取所述信令的类型;根据所述信令的类型,执行与所述信令类型对应的内容。该方法数据传输要可靠,在传输过程中没有丢数据情况出现;再者,该方法通信链路的状态进行检测和对媒体数据的完整性进行检测;同时支持多路数据同时发送,使网络设备的带宽利用率最大达到90%以上。

附图说明

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

图1为本发明实施例提供的一种高并发音视频媒体数据网络传输方法流程示意图;

图2为本发明实施例提供的一种高并发音视频媒体数据网络传输装置结构示意图。

具体实施方式

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

本申请涉及到的专业知识:

网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。

建立网络通信连接至少要一对端口号(socket)。socket本质是编程接口(api),对tcp/ip的封装,tcp/ip也要提供可供程序员做网络开发所用的接口,这就是socket编程接口;http是轿车,提供了封装或者显示数据的具体形式;socket是发动机,提供了网络通信的能力。

图1示例性的示出了本发明实施例提供的一种高并发音视频媒体数据网络传输方法流程示意图,如图1所示,该方法主要包括以下步骤:

步骤101,创建一个用于网络侦听的socket,当通过所述socket接收到客户端发送的网络tcp连接请求时,与客户端建立一条网络链路通道;创建多个应用工作线程池,应用工作线程池包括用来处理信令数据的信令应用工作线程池和用来处理媒体数据发送的媒体应用工作线程;

步骤102,接收到客户端发送的信令时,将所述信令放入信令应用工作线程;对放入信令应用工作线程的信令进行解析并获取所述信令的类型;

步骤103,根据所述信令的类型,执行与所述信令类型对应的内容。

需要说明的是,在上述步骤中,执行主体为媒体数据发送端,也可称为流服务端。

具体地,在步骤101中,进行了初始化操作,即先在流服务端与客户端之间建立了一个用于网络侦听的socket,通过建立的这个拥有侦听的socket,可以获取到客户端发送的网络tcp连接请求时,可以将流服务端与客户端之间建立一条网络链路通道,即通过这个网络链路通道,进行客户端与流服务端之间的信令传输。

需要说明的是,在本发明实施例中,网络链路通道实现网络传输功能的具体实现方式可以采用boost中的异步io库(asio)。

进一步地,当客户端与流服务端之间建立网络链路通道之后,可以创建多个应用工作线程池,建立的上述应用工作线程池用于处理信令数据和媒体数据的发送,在本发明实施例中,将建立的的应用工作线程分为信令应用工作线程和媒体应用工作线程,且信令应用工作线程主要用于处理信令数据,相应的,媒体应用工作线程主要用于来处理媒体数据发送。

由于目前常用的信令传输方式为字符文本方式,存在传输数据量大,传输效率低的问题,在本发明实施例中,为了解决上述问题,在信令传输中采用了二进制方式传输,比如,当setup“创建信令,如果采用文本方式表示的话就需要5个字节(每个字母占用一个字节),如果采用二进制数字1表示的话就可以只需要一个字节,这样节省了4个字节,传输时间变短效率就变高些。

进一步地,网络传输模式在windows操作系统上采用完成端口(iocp)模式,在linux操作系统上采用epoll模式;同时数据发送采用异步发送方式。目前常用的模式是select模式,发送方式采用非阻塞方式。因此,采用本发明实施例提供的方法要比目前常用的方法网络响应快、数据传输效率高。其主要原因是iocp和epoll模式相对select模式的优点主要有三个:

1、select模式中网络句柄(socket)数目受限,最大数目是1024,表示最多同时监听1024个socket。而iocp和epoll没有,它的限制是最大的打开文件句柄数目。

2、select模式采用轮询处理机制,每次都会扫描一个网络句柄的集合,逐一判断哪个sokcet需要处理,如果这个集合中句柄数目增加了,扫描的效率也将减小,判断需要时间也会增加;而iocp和epoll不会随着socket数目增长而降低效率,因为它们采用的是事件通知机制,只会对"活跃"的socket进行处理。

3、select模式中内核和用户空间之间的socket上的数据传递采用内存复制方式;而epoll采用共享内存方式,其速度要比内存复制方式快,相应地数据传输效率要高些。

在步骤102中,当流服务端与客户端之间建立了网络链路通道以及创建了多个应用工作线程池之后,则客户端可以向流服务端发送信令了,当流服务端接收到客户端发送的信令之后,需要先将信令存储至信令应用工作线程上,然后对存储的信令进行解析并获取解析后的信令的类型,在本发明实施例中,不同信令的类型,会对应不同的处理方式。

具体地,当信令的类型为创建信令时,其中,创建信令为获取媒体格式信息,其中媒体格式信息包括频编码类型,分辨率,码率及帧率;流服务端根据创建信令,先获取媒体格式信息包括的全部结果,然后将获取到的全部格式按照格式封装,然后通过网络链路通道发送至客户端。

具体地,当信令的类型为播放信令时,流服务端根据播放信令,通过媒体应用工作线程重复执行如下步骤:第一次,读取与播放信令对应的一帧媒体数据,并将一帧媒体数据按照规定好的封装格式拆分成多个数据包,然后将多个数据包通过网络链路通道按照异步发送方式发送至客户端;第二次,读取与播放信令对应的下一帧媒体数据,并将下一帧媒体数据按照规定好的封装格式拆分成多个数据包,然后将多个数据包通过网络链路通道按照异步发送方式发送至客户端。需要说明的是,在实际应用中,根据播放信令通过媒体应用工作向客户端按照异步发送方式的媒体数据,具体发送的次数与播放信令对应的媒体数据帧数相关,若播放信令对应的媒体数据帧数多,则媒体应用工作线程重复执行的步骤次数多;若播放信令对应的媒体数据帧数少,则媒体应用工作线程重复执行的步骤次数少。

具体地,当信令的类型为停止信令时,流服务端将停止信令放到信令应用工作线程,并通知媒体应用工作线程停止向客户端发送。

具体地,当信令的类型为暂停信令时,流服务端将暂停信令放到信令应用工作线程,并通知媒体应用工作线程暂停向客户端发送。

具体地,当信令的类型为继续信令时,流服务端将继续信令放到信令应用工作线程,并通知所媒体应用工作线程继续向述客户端发送。

综上所述,本发明实施例提供一种高并发音视频媒体数据网络传输方法,该方法包括:创建一个用于网络侦听的socket,当通过所述socket接收到客户端发送的网络tcp连接请求时,与客户端建立一条网络链路通道;创建多个应用工作线程池,应用工作线程池包括用来处理信令数据的信令应用工作线程池和用来处理媒体数据发送的媒体应用工作线程;接收到客户端发送的信令时,将所述信令放入信令应用工作线程;对放入信令应用工作线程的信令进行解析并获取所述信令的类型;根据所述信令的类型,执行与所述信令类型对应的内容。该方法数据传输要可靠,在传输过程中没有丢数据情况出现;再者,该方法通信链路的状态进行检测和对媒体数据的完整性进行检测;同时支持多路数据同时发送,使网络设备的带宽利用率最大达到90%以上。

基于同一发明构思,本发明实施例提供了一种高并发音视频媒体数据网络传输装置,由于该装置解决技术问题的原理与一种高并发音视频媒体数据网络传输方法相似,因此该装置的实施可以参见方法的实施,重复之处不再赘述。

图2为本发明实施例提供的一种高并发音视频媒体数据网络传输装置结构示意图,如图2所示,该装置包括创建单元201,接收单元202和执行单元203。

创建单元201,用于创建一个用于网络侦听的socket,当通过所述socket接收到客户端发送的网络tcp连接请求时,与客户端建立一条网络链路通道;创建多个应用工作线程池,应用工作线程池包括用来处理信令数据的信令应用工作线程池和用来处理媒体数据发送的媒体应用工作线程;

接收单元202,用于接收到客户端发送的信令时,将所述信令放入信令应用工作线程;对放入信令应用工作线程的信令进行解析并获取所述信令的类型;

执行单元203,用于根据所述信令的类型,执行与所述信令类型对应的内容。

优选地,所述信令数据采用二进制方式传输。

优选地,所述信令的类型包括创建信令;

所述执行单元203具体用于:

所述创建信令为获取媒体格式信息,其中媒体格式信息包括频编码类型,分辨率,码率及帧率;

根据所述创建信令,将所述媒体格式信息包括的全部结果按照格式封装,并发送至所述客户端。

优选地,所述信令的类型包括播放信令;

所述执行单元203具体用于:

根据所述播放信令,通过所述媒体应用工作线程重复执行如下步骤:读取与所述播放信令对应的一帧媒体数据,并所述一帧媒体数据按照规定好的封装格式拆分成多个数据包,将所述数据包按照异步发送方式发送至所述客户端。

优选地,所述信令的类型包括停止信令,暂停信令和继续信令;

所述执行单元203具体用于:

将所述停止信令放到所述信令应用工作线程,并通知所述媒体应用工作线程停止向所述客户端发送;或者

将所述暂停信令放到所述信令应用工作线程,并通知所述媒体应用工作线程暂停向所述客户端发送;或者

将所述继续信令放到所述信令应用工作线程,并通知所述媒体应用工作线程继续向所述客户端发送。

应当理解,以上一种高并发音视频媒体数据网络传输装置包括的单元仅为根据该设备装置实现的功能进行的逻辑划分,实际应用中,可以进行上述单元的叠加或拆分。并且该实施例提供的一种高并发音视频媒体数据网络传输装置所实现的功能与上述实施例提供的一种高并发音视频媒体数据网络传输方法一一对应,对于该装置所实现的更为详细的处理流程,在上述方法实施例一中已做详细描述,此处不再详细描述。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

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