CN111901689A - 流媒体数据的传输方法、装置、终端设备和存储介质 - Google Patents

流媒体数据的传输方法、装置、终端设备和存储介质 Download PDF

Info

Publication number
CN111901689A
CN111901689A CN202010556099.9A CN202010556099A CN111901689A CN 111901689 A CN111901689 A CN 111901689A CN 202010556099 A CN202010556099 A CN 202010556099A CN 111901689 A CN111901689 A CN 111901689A
Authority
CN
China
Prior art keywords
media data
streaming media
client
iocp
model
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.)
Pending
Application number
CN202010556099.9A
Other languages
English (en)
Inventor
谢文龙
李云鹏
吕亚亚
杨春晖
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Visionvera Information Technology Co Ltd
Original Assignee
Visionvera Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Visionvera Information Technology Co Ltd filed Critical Visionvera Information Technology Co Ltd
Priority to CN202010556099.9A priority Critical patent/CN111901689A/zh
Publication of CN111901689A publication Critical patent/CN111901689A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/64Addressing
    • H04N21/6402Address allocation for clients
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/643Communication protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/647Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本发明实施例提供了一种流媒体数据的传输方法、装置、终端设备和存储介质,包括:通过IOCP模型接收客户端发送的流媒体数据,其中,流媒体数据包括客户端的终结点信息;根据客户端的终结点信息,将流媒体数据发送至与所述终结点信息对应的客户端,本发明实施例通过IOCP模型接收客户端发送的流媒体数据,不需要将每个客户端的流媒体数据加入到IOCP模型中的工作线程,也不需要每个客户端排队等待,服务器直接根据客户端的终结点信息,将流媒体数据发送至客户端,节省了客户端排队等待的时间,提高了处理效率。

Description

流媒体数据的传输方法、装置、终端设备和存储介质
技术领域
本发明涉及通信技术领域,特别是涉及一种流媒体数据的传输方法、装置、终端设备和存储介质。
背景技术
现有技术中,若服务器与多个客户端进行数据交互时,通过采用IOCP模型进行数据传输,基于IOCP模型的功能,需要将每个客户端的数据加入到工作线程中,每个客户端需要排队等待进行处理,若客户端较多时,需要花费很多时间,服务器的工作效率较低。
发明内容
鉴于上述问题,提出了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种流媒体数据的传输方法、装置、终端设备和存储介质。
第一个方面,本发明实施例提供一种流媒体数据的传输方法,所述方法包括:
通过IOCP模型接收客户端发送的流媒体数据,其中,所述流媒体数据包括所述客户端的终结点信息;
根据所述客户端的终结点信息,将所述流媒体数据发送至与所述终结点信息对应的客户端。
可选地,所述通过IOCP模型接收客户端发送的流媒体数据,包括:
通过IOCP模型,接收客户端采用UDP协议发送的流媒体数据。
可选地,所述终结点信息包括IP地址和端口,所述根据所述客户端的终结点信息,将所述流媒体数据发送至与所述终结点信息对应的客户端,包括:
对所述流媒体数据进行处理,获得处理后的流媒体数据;
根据所述客户端的IP地址和端口,将处理后的流媒体数据发送至与所述IP地址和端口对应的客户端。
可选地,所述流媒体数据还包括业务类型,所述对所述流媒体数据进行处理,获得处理后的流媒体数据,包括:
根据所述业务类型,对所述流媒体数据进行处理,获得处理后的流媒体数据。
可选地,预先创建IOCP模型;
预先创建各个客户端对应的UDP套接字;
将所述IOCP模型与所述UDP套接字进行绑定。
可选地,所述方法还包括:
将所述客户端的终结点信息保存在预先为所述IOCP模型分配的内存空间,以使服务器通过IOCP模型根据所述终结点信息,确定与所述终结点信息对应的客户端发送的所述流媒体数据。
第二个方面,本发明实施例提供一种流媒体数据的传输装置,所述装置包括:
接收模块,用于通过IOCP模型接收客户端发送的流媒体数据,其中,所述流媒体数据包括所述客户端的终结点信息;
发送模块,用于根据所述客户端的终结点信息,将所述流媒体数据发送至与所述终结点信息对应的客户端。
可选地,所述接收模块,用于:
通过IOCP模型,接收客户端采用UDP协议发送的流媒体数据。
可选地,所述终结点信息包括IP地址和端口,所述发送模块用于:
对所述流媒体数据进行处理,获得处理后的流媒体数据;
根据所述客户端的IP地址和端口,将处理后的流媒体数据发送至与所述IP地址和端口对应的客户端
可选地,所述流媒体数据还包括业务类型,所述发送模块还用于:
根据所述业务类型,对所述流媒体数据进行处理,获得处理后的流媒体数据。
可选地,所述装置还包括绑定模块,所述绑定模块用于:
预先创建IOCP模型;
预先创建各个客户端对应的UDP套接字;
将所述IOCP模型与所述UDP套接字进行绑定。
可选地,所述装置还包括保存模块,所述保存模块用于:
将所述客户端的终结点信息保存在预先为所述IOCP模型分配的内存空间,以使服务器通过IOCP模型根据所述终结点信息,确定与所述终结点信息对应的客户端发送的所述流媒体数据。
第三个方面,本发明实施例提供一种终端设备,包括:至少一个处理器和存储器;
所述存储器存储计算机程序;所述至少一个处理器执行所述存储器存储的计算机程序,以实现第一个方面提供的流媒体数据的传输方法。
第四个方面,本发明实施例提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,所述计算机程序被执行时实现第一个方面提供的流媒体数据的传输方法。
本发明实施例包括以下优点:
本发明实施例提供流媒体数据的传输方法、装置、终端设备和存储介质,服务器通过IOCP模型接收客户端发送的流媒体数据,其中,流媒体数据包括客户端的终结点信息;根据客户端的终结点信息,将流媒体数据发送至与所述终结点信息对应的客户端,本发明实施例通过IOCP模型接收客户端发送的流媒体数据,不需要将每个客户端的流媒体数据加入到IOCP模型中的工作线程,也不需要每个客户端排队等待,服务器直接根据客户端的终结点信息,将流媒体数据发送至客户端,节省了客户端排队等待的时间,提高了处理效率。
附图说明
图1是本发明的一种流媒体数据的传输方法实施例的步骤流程图;
图2是本发明的另一种流媒体数据的传输方法实施例的步骤流程图;
图3是本发明的又一种流媒体数据的传输方法实施例的步骤流程图;
图4是本发明的一种流媒体数据的传输装置实施例的结构框图;
图5是本发明的一种终端设备的结构示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
名词解释如下:
IOCP:I/O Completion Port),常称I/O完成端口,一种高效处理大容量客户端进行数据交换的异步I/O操作模型,适用于(能控制并发执行的)高负载服务器,是一个异步I/O的API,它可以高效地将I/O事件通知给应用程序。
UDP:User Datagram Protocol,用户数据报协议,是OSI参考模型中一种无连接的传输层协议,提供面向事务的简单信息传送服务。
IP地址:Internet Protocol Address,互联网协议地址,一种在Internet上的给主机编址的方式,也称为网际协议地址。常见的IP地址,分为IPv4与IPv6两大类。
本发明一实施例提供一种流媒体数据的传输方法,用于对流媒体数据进行传输。本实施例的执行主体为流媒体数据的传输装置,设置在服务器上。
参照图1,示出了本发明的一种流媒体数据的传输方法实施例的步骤流程图,该方法可以应用于视联网中,具体可以包括如下步骤:
S101、通过IOCP模型接收客户端发送的流媒体数据,其中,所述流媒体数据包括所述客户端的终结点信息;
具体地,服务器采用IOCP模块的内核列队为基础通讯,与大量的客户端构成网络集群、可在数据库集群下形成高可用网络处理架构。服务器架构平台能够进行高并发性、稳定性、可伸缩性等数据处理与分析。根据服务器内存大小以及CPU数量智能调节工作线程数量以及处理模式达到最佳状态,充分发挥服务器硬件潜力。
在本发明实施例中,服务器与大量的客户端相连,大量的客户端同时向服务器发送流媒体数据,为了解决高并发性的问题,需要在服务器中建立IOCP模型,IOCP模型由三个主体构成,第一主线程,第二I/O操作线程,第三操作系统,首先由主线程生成一个完成端口,初始化监听套接字和生成两倍CPU数量加2个的I/O操作线程,之后主线程的主要工作是接入新的客户端;操作线程负责命令操作系统去接收和发送数据,操作系统负责具体的收发数据工作,并把执行结果发送至完成端口上。I/O操作线程不断的读取完成端口上的收发执行结果,以确定下一步的操作,以此循环。
具体地,服务器通过IOCP模型接收多个客户端发送的流媒体数据,其中,流媒体数据可以是音频,也可以是视频,并且该流媒体数据包括客户端的终结点信息,其中,客户端的终结点信息包括客户端的IP地址和端口号,流媒体数据中包含的终结点信息用于回传数据所用。
流媒体数据可以是共有协议或者私有协议,IOCP模型作为传输承载,不关心流媒体数据的数据内容,但结合绑定的UDP协议特性,一般用于传输音视频媒体数据。
S102、根据所述客户端的终结点信息,将所述流媒体数据发送至与所述终结点信息对应的客户端。
具体地,在服务器和客户端进行业务的过程中,服务器通过IOCP模型接收到客户端发送的流媒体数据,其中,流媒体数据包括客户端的终结点信息,并将每个客户端的终结点信息进行保存,经过服务器上的处理模块进行处理后,并不将客户端的处理后的数据加入到工作线程中进行排队,而是每处理完一流媒体数据,则将处理后的流媒体数据根据终结点信息,将处理后的流媒体数据即音视频数据发送至与终结点信息对应的客户端。
本发明实施例只要通过IOCP模型接收到客户端发送的音视频数据,不需要将该音视频数据进入到IOCP模型的工作线程进行排队处理,服务器直接将音视频数据通过客户端的IP地址和端口号发送至对应的客户端,节省了排队处理的时间。
本发明实施例提供的流媒体数据的传输方法,通过IOCP模型接收客户端发送的流媒体数据,其中,流媒体数据包括客户端的终结点信息;根据客户端的终结点信息,将流媒体数据发送至与所述终结点信息对应的客户端,本发明实施例通过IOCP模型接收客户端发送的流媒体数据,不需要将每个客户端的流媒体数据加入到IOCP模型中的工作线程,也不需要每个客户端排队等待,服务器直接根据客户端的终结点信息,将流媒体数据发送至客户端,节省了客户端排队等待的时间,提高了处理效率。
本发明又一实施例对上述实施例提供的流媒体数据的传输方法做进一步补充说明。
如图2所示,示出了本发明的另一种流媒体数据的传输方法实施例的步骤流程图,该流媒体数据的传输方法包括:
S201、预先创建IOCP模型;
具体地,IOCP模型是一种WIN32的网络I/O模型,既包括了网络连接部分,也负责了部分的I/O操作功能,用于方便我们控制有并发性的网络I/O操作,自我负责维护了工作线程池,同时也负责了I/O通道的内存池。自己实现了线程的管理以及I/O请求通知,最小化的做到了线程的上下文切换。自己实现了线程的优化调度,提高了CPU和内存缓冲的使用率。
在服务器上建立IOCP模型,创建的IOCP模型就是被用来为大量接入的套接字管理其对应的I/O请求。在具体业务进行时,尽量发送大数据包,尽量不要为每个小数据包发送一个IOCP请求,这样很容易耗尽IOCP的内部队列,从而产生错误;不要试图在发送出IOCP请求之后,收到完成通知之前修改请求中使用的数据缓冲的内容,因为在这段时间,服务器可能会来读取这些缓冲;为了避免内存拷贝,可以尝试关闭SOCKET的发送和接收缓冲区,需要更多的接收请求POST到一个数据流量比较大的SOCKET,从而保证系统一直可以找到BUFFER来收取到来的数据;在接收到多个请求的时候,如果WORKTHREAD不止一个,一定要使用一些手段来保证接收完成的数据按照发送接收请求的顺序处理,否则,接收到流媒体数据包会用混乱的顺序排列在处理队列里,在后续的处理中会出现错误。
具体到工作线程,最好建立CPU个数*2+2个,并且IOCP的工作线程是系统优化和调度的,自己就不需要进行额外的工作了;接收到客户端发送的流媒体数据包后,并不需要再去检测是否发送完整,因为IOCP判断接收到的流媒体数据包是否完整。
在业务进行的过程中,当遇到内存问题时,应逐渐的减少工作线程的数量,根据终结点信息可以定位到哪个客户端发生故障。
OVERLAPPED对象一定要保存在持久的位置,并且不到操作完成(不管成功还是失败)不要释放,否则可能会引发各种问题,OVERLAPPED对象要为每次的SEND和RECV操作都准备一个全新的,不能图方便重复利用。IOCP的所有工作都是在获取完成状态的那个函数内部进行调度和完成的,所以除了注意工作线程的数量之外,还要注意,尽量保持足够多的工作线程处在获取完成状态的那个等待里面,这样做就需要减少工作线程的负担,确保工作线程内部要处理费时的工作。尽量保持SEND和RECV的缓冲的大小是系统页面大小的倍数,因为系统发送或者接收数据的时候,会锁用户内存的,比页面小的缓冲会浪费掉整个一个页面。
S202、预先创建各个客户端对应的UDP套接字;
具体地,在服务器上建立各个客户端对应的UDP套接字,用于接收各个客户端发送的流媒体数据包,UDP是无连接不可靠的数据报协议,不同于TCP提供的面向连接的可靠字节流。从资源的角度来看,相对来说UDP套接字开销较小,因为不需要维持网络连接,而且因为无需花费时间来连接,所以UDP套接字的速度也较快。
在UDP套接字程序中,客户不需要与服务器建立连接,而只管直接使用SENDTO函数给服务器发送数据报。同样的,服务器不需要接受来自客户的连接,而只管调用RECVfrom函数,等待来自某个客户的数据到达。
编写UDP套接字应用程序,涉及一定的步骤:
1、创建套接字;
可以使用系统调用SOCKET来创建一个套接字并返回该套接字的文件描述符。创建的套接字是一条通信线路的一个端点。
#include<sys/socket.h>
int socket(int domain,int type,int protocol);
其中,domain参数指定哪种协议族,常见的协议族包括AF_UNIX和AF_INET。AF_UNIX用于通过文件系统实现的本地套接字,AF_INET用于网络套接字;
type参数指定这个套接字的通信类型,取值包括SOCK_STREAM和SOCK_DGRAM。
SOCK_STREAM即流套接字,基于TCP,提供可靠,有序的服务。
SOCK_DGRAM即数据报套接字,基于UDP,提供不可靠,无序的服务。SOCK_DGRAM类型的套接字为本文讲述的重点。
protocol允许为套接字指定一种协议。
2、命名套接字
要想让创建的套接字可以被其他进程使用,那必须给该套接字命名。对套接字命名的意思是指将该套接字关联一个IP地址和端口号,可以使用系统调用bind来实现。
#include<sys/socket.h>
int bind(int socket,const struct sockaddr*address,size_t address_len);
其中:bind系统调用把参数address中的地址分配给与文件描述符socket关联的套接字,地址结构的长度由参数address_len传递。
每种套接字域都有其自己的格式,对于AF_INET域来说,套接字地址由结构socket_in来指定
成员sin_port表示套接字的端口号。对于客户套接字,一般不需要指定套接字的端口号,而对于服务器套接字,需要指定套接字的端口号以便让客户端正确向服务器发送数据。如果不需要指定端口号,可以将sin_port的值赋为0。
成员sin_addr表示套接字的地址,即客户端的IP地址。如果没特别为套接字绑定IP地址,可以让操作系统选择一个,即sin_addr使用地址0.0.0.0,使用INADDR_ANY来表示这个地址常量。
3、在服务器端,等待客户的消息;
UDP是无连接不可靠的数据报协议。服务器不接收来自客户端的连接,而只管调用RECVfrom系统调用,等待客户端的数据到达。RECVfrom的声明如下:
#include<sys/socket.h>
int RECVfrom(int socket,void*buffer,size_t length,int flags,structsockaddr*src_addr,socklen_t*src_len);
其中,RECVfrom的参数说明如下;
socket:创建的套接字描述符
buffer:指向输入缓冲区的指针length:
缓冲区大小flags:在本文中,可以将flags置为0即可
src_addr:指向客户套接字地址的指针
src_len:地址长度RECVfrom的返回值为读入数据的长度。
UDP是无连接的,故客户可以直接向服务器发送消息而不需要建立连接。客户端使用SENDTO系统调用向服务器发送消息;
4、在客户端,发送客户消息;
5、关闭套接字;
服务器操作系统为每个套接字分配了一个文件描述符,为了让操作系统回收该文件描述符,可以使用close系统调用:
S203、将所述IOCP模型与所述UDP套接字进行绑定。
具体地,在服务器上创建一个监听的UDP Socket。轮询,当接收到了新的客户端发送的连接后,将UDPSocket和完成端口进行关联并且投递给IOCP一个I/O请求。.
在UDP中,则是把WSASocket或Socket创建的套接字与完成端口绑定。
示例性地,在服务器上创建IOCP模型,其中,IOCP模型中的工作线程数目一般为核心数的两倍或者两倍+2,创建成功后,工作线程就已经开始工作了。在服务器上创建n个(n为大于0的自然数,例如10个,)异步接收的套接字,用于接收UDP套接字的连接,并将UDP套接字绑定在IOCP模型上,用于将大规模流媒体数据接入。本案例采用基于IOCP模型的UDP传输模式进行媒体流大并发传输,提高实时性。
S204、通过IOCP模型,接收客户端采用UDP协议发送的流媒体数据,其中,所述流媒体数据包括所述客户端的终结点信息。
具体地,服务器通过IOCP模型接收多个客户端发送的流媒体数据,其中,流媒体数据可以是音频,也可以是视频,并且该流媒体数据包括客户端的终结点信息,其中,客户端的终结点信息包括客户端的IP地址和端口号,流媒体数据中包含的终结点信息用于回传数据所用。
流媒体数据可以是共有协议或者私有协议,IOCP模型作为传输承载,不关心流媒体数据的数据内容,但结合绑定的UDP协议特性,一般用于传输音视频媒体数据。
S205、将所述客户端的终结点信息保存在预先为所述IOCP模型分配的内存空间,以使服务器通过IOCP模型根据所述终结点信息,确定与所述终结点信息对应的客户端发送的所述流媒体数据。
具体地,服务器将客户端的终结点信息和客户端的标识的对应关系保存在服务器的数据库中,用于将流媒体数据返回给对应的客户端。
具体地,通过客户端的终结点信息,服务器可以定位到与终结点信息对应的客户端,进而可以知道是哪个客户端发送的流媒体数据。
创建IOCP模型后,与创建的UDP_SERVER套接字相连接。利用IOCP模型自身的查询机制快速定位到哪个链接数据进行处理。UDP中每次RECVFrom获WSARECVFrom会传回UDP数据来源的IP,将此数据结构修改到IOCPDATA数据接受对象中,包括:接收到的字节数、数据来源IP地址和数据来源IP地址长度,以此来区分各种IP源数据进行处理。
S206、根据所述业务类型,对所述流媒体数据进行处理,获得处理后的流媒体数据。
具体地,业务类型可以是直播、可视电话等,服务器根据业务类型的不同,对流媒体数据进行处理,获得处理后的流媒体数据。
示例性地,根据业务类型的不同,可以对流媒体数据进行H264编解码或其他的编码方式,进而获得所需要的音视频格式的流媒体数据。
S207、根据所述客户端的IP地址和端口,将处理后的流媒体数据发送至与所述IP地址和端口对应的客户端。
具体地,在服务器和客户端进行业务的过程中,服务器通过IOCP模型接收到客户端发送的流媒体数据,其中,流媒体数据包括客户端的终结点信息,并将每个客户端的终结点信息进行保存,经过服务器上的处理模块进行处理后(例如编解码处理),并不将客户端的处理后的数据加入到工作线程中进行排队,而是每处理完一流媒体数据,则将处理后的流媒体数据根据终结点信息,将处理后的流媒体数据即音视频数据发送至与终结点信息对应的客户端
图3是本发明的又一种流媒体数据的传输方法实施例的步骤流程图,如图3所示,应用于媒体资源服务器,简称服务器,与多个媒体端(客户端)相连,该流媒体数据的传输方法包括:
1、创建IOCP模型。
2、创建UDP套接字。
3、IOCP模型绑定UDP套接字。
4、当客户端通过UDP发送数据时,通过IOCP模型获取客户端通过UDP协议发送的流媒体数据包,该流媒体数据包通过WSARECVFrom投递到IOCPDATA中。
5、服务器中的IOCPDATA保存流媒体数据中OVERLAPPED结构、IP地址、端口号、数据内容、数据类型、数据长度等信息。
6、WSARECVFrom投递成功后,把OVERLAPPED结构用于接受下一次投递。
7、IOCPDATA数据根据IP等信息找到对应链路就可以对流媒体数据包处理。
8、将处理后的流媒体数据通过UDP套接字和对应终结点信息直接发送到客户端,而不进入IOCP异步发送中,节省了排队时间,提高了业务处理效率。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
本发明实施例提供的流媒体数据的传输方法,通过IOCP模型接收客户端发送的流媒体数据,其中,流媒体数据包括客户端的终结点信息;根据客户端的终结点信息,将流媒体数据发送至与所述终结点信息对应的客户端,本发明实施例通过IOCP模型接收客户端发送的流媒体数据,不需要将每个客户端的流媒体数据加入到IOCP模型中的工作线程,也不需要每个客户端排队等待,服务器直接根据客户端的终结点信息,将流媒体数据发送至客户端,节省了客户端排队等待的时间,提高了处理效率。
本发明另一实施例提供一种流媒体数据的传输装置,用于执行上述实施例提供的流媒体数据的传输方法。
参照图4,示出了本发明的一种流媒体数据的传输装置实施例的结构框图,该装置具体可以包括如下模块:接收模块301和发送模块302,其中:
接收模块301用于通过IOCP模型接收客户端发送的流媒体数据,其中,所述流媒体数据包括所述客户端的终结点信息;
发送模块302用于根据所述客户端的终结点信息,将所述流媒体数据发送至与所述终结点信息对应的客户端。
本发明实施例提供的流媒体数据的传输装置,通过IOCP模型接收客户端发送的流媒体数据,其中,流媒体数据包括客户端的终结点信息;根据客户端的终结点信息,将流媒体数据发送至与所述终结点信息对应的客户端,本发明实施例通过IOCP模型接收客户端发送的流媒体数据,不需要将每个客户端的流媒体数据加入到IOCP模型中的工作线程,也不需要每个客户端排队等待,服务器直接根据客户端的终结点信息,将流媒体数据发送至客户端,节省了客户端排队等待的时间,提高了处理效率。
本发明又一实施例对上述实施例提供的流媒体数据的传输装置做进一步补充说明。
可选地,所述接收模块301用于:
通过IOCP模型,接收客户端采用UDP协议发送的流媒体数据。
可选地,所述终结点信息包括IP地址和端口,所述发送模块302用于:
对所述流媒体数据进行处理,获得处理后的流媒体数据;
根据所述客户端的IP地址和端口,将处理后的流媒体数据发送至与所述IP地址和端口对应的客户端
可选地,所述流媒体数据还包括业务类型,所述发送模块302还用于:
根据所述业务类型,对所述流媒体数据进行处理,获得处理后的流媒体数据。
可选地,所述装置还包括绑定模块,所述绑定模块用于:
预先创建IOCP模型;
预先创建各个客户端对应的UDP套接字;
将所述IOCP模型与所述UDP套接字进行绑定。
可选地,所述装置还包括保存模块,所述保存模块用于:
将所述客户端的终结点信息保存在预先为所述IOCP模型分配的内存空间,以使服务器通过IOCP模型根据所述终结点信息,确定与所述终结点信息对应的客户端发送的所述流媒体数据。需要说明的是,本实施例中各可实施的方式可以单独实施,也可以在不冲突的情况下以任意组合方式结合实施本申请不做限定。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本发明实施例提供的流媒体数据的传输装置,通过IOCP模型接收客户端发送的流媒体数据,其中,流媒体数据包括客户端的终结点信息;根据客户端的终结点信息,将流媒体数据发送至与所述终结点信息对应的客户端,本发明实施例通过IOCP模型接收客户端发送的流媒体数据,不需要将每个客户端的流媒体数据加入到IOCP模型中的工作线程,也不需要每个客户端排队等待,服务器直接根据客户端的终结点信息,将流媒体数据发送至客户端,节省了客户端排队等待的时间,提高了处理效率。
本发明再一实施例提供一种终端设备,用于执行上述实施例提供的流媒体数据的传输方法。
图5是本发明的一种终端设备的结构示意图,如图5所示,该终端设备包括:至少一个处理器401和存储器402;
所述存储器存储计算机程序;所述至少一个处理器执行所述存储器存储的计算机程序,以实现上述实施例提供的流媒体数据的传输方法。
其中,终端设备为服务器。
本实施例提供的终端设备,通过IOCP模型接收客户端发送的流媒体数据,其中,流媒体数据包括客户端的终结点信息;根据客户端的终结点信息,将流媒体数据发送至与所述终结点信息对应的客户端,本发明实施例通过IOCP模型接收客户端发送的流媒体数据,不需要将每个客户端的流媒体数据加入到IOCP模型中的工作线程,也不需要每个客户端排队等待,服务器直接根据客户端的终结点信息,将流媒体数据发送至客户端,节省了客户端排队等待的时间,提高了处理效率。
本申请又一实施例提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,所述计算机程序被执行时实现上述任一实施例提供的流媒体数据的传输方法。
根据本实施例的计算机可读存储介质,通过IOCP模型接收客户端发送的流媒体数据,其中,流媒体数据包括客户端的终结点信息;根据客户端的终结点信息,将流媒体数据发送至与所述终结点信息对应的客户端,本发明实施例通过IOCP模型接收客户端发送的流媒体数据,不需要将每个客户端的流媒体数据加入到IOCP模型中的工作线程,也不需要每个客户端排队等待,服务器直接根据客户端的终结点信息,将流媒体数据发送至客户端,节省了客户端排队等待的时间,提高了处理效率。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、电子设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理电子设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理电子设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理电子设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理电子设备上,使得在计算机或其他可编程电子设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程电子设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者电子设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者电子设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者电子设备中还存在另外的相同要素。
以上对本发明所提供的一种流媒体数据的传输方法和一种流媒体数据的传输装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (10)

1.一种流媒体数据的传输方法,其特征在于,所述方法包括:
通过IOCP模型接收客户端发送的流媒体数据,其中,所述流媒体数据包括所述客户端的终结点信息;
根据所述客户端的终结点信息,将所述流媒体数据发送至与所述终结点信息对应的客户端。
2.根据权利要求1所述的方法,其特征在于,所述通过IOCP模型接收客户端发送的流媒体数据,包括:
通过IOCP模型,接收客户端采用UDP协议发送的流媒体数据。
3.根据权利要求1所述的方法,其特征在于,所述终结点信息包括IP地址和端口,所述根据所述客户端的终结点信息,将所述流媒体数据发送至与所述终结点信息对应的客户端,包括:
对所述流媒体数据进行处理,获得处理后的流媒体数据;
根据所述客户端的IP地址和端口,将处理后的流媒体数据发送至与所述IP地址和端口对应的客户端。
4.根据权利要求3所述的方法,其特征在于,所述流媒体数据还包括业务类型,所述对所述流媒体数据进行处理,获得处理后的流媒体数据,包括:
根据所述业务类型,对所述流媒体数据进行处理,获得处理后的流媒体数据。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
预先创建IOCP模型;
预先创建各个客户端对应的UDP套接字;
将所述IOCP模型与所述UDP套接字进行绑定。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将所述客户端的终结点信息保存在预先为所述IOCP模型分配的内存空间,以使服务器通过IOCP模型根据所述终结点信息,确定与所述终结点信息对应的客户端发送的所述流媒体数据。
7.一种流媒体数据的传输装置,其特征在于,所述装置包括:
接收模块,用于通过IOCP模型接收客户端发送的流媒体数据,其中,所述流媒体数据包括所述客户端的终结点信息;
发送模块,用于根据所述客户端的终结点信息,将所述流媒体数据发送至与所述终结点信息对应的客户端。
8.根据权利要求7所述的装置,其特征在于,所述接收模块,用于:
通过IOCP模型,接收客户端采用UDP协议发送的流媒体数据。
9.一种终端设备,其特征在于,包括:至少一个处理器和存储器;
所述存储器存储计算机程序;所述至少一个处理器执行所述存储器存储的计算机程序,以实现权利要求1-6中任一项所述的流媒体数据的传输方法。
10.一种计算机可读存储介质,其特征在于,该计算机可读存储介质中存储有计算机程序,所述计算机程序被执行时实现权利要求1-6中任一项所述的流媒体数据的传输方法。
CN202010556099.9A 2020-06-17 2020-06-17 流媒体数据的传输方法、装置、终端设备和存储介质 Pending CN111901689A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010556099.9A CN111901689A (zh) 2020-06-17 2020-06-17 流媒体数据的传输方法、装置、终端设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010556099.9A CN111901689A (zh) 2020-06-17 2020-06-17 流媒体数据的传输方法、装置、终端设备和存储介质

Publications (1)

Publication Number Publication Date
CN111901689A true CN111901689A (zh) 2020-11-06

Family

ID=73206811

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010556099.9A Pending CN111901689A (zh) 2020-06-17 2020-06-17 流媒体数据的传输方法、装置、终端设备和存储介质

Country Status (1)

Country Link
CN (1) CN111901689A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112631788A (zh) * 2021-01-06 2021-04-09 上海哔哩哔哩科技有限公司 数据传输方法及数据传输服务器

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103078905A (zh) * 2012-12-25 2013-05-01 泉州豪杰信息科技发展有限公司 一种gps终端的通讯管理方法
CN106095597A (zh) * 2016-05-30 2016-11-09 深圳市鼎盛智能科技有限公司 客户端数据处理方法及装置
CN108270732A (zh) * 2016-12-30 2018-07-10 北京视联动力国际信息技术有限公司 一种流媒体处理方法及系统
WO2019056203A1 (zh) * 2017-09-20 2019-03-28 深圳市海能通信股份有限公司 一种低延时音视频传输方法、装置及计算机可读存储介质
CN110392044A (zh) * 2019-06-26 2019-10-29 视联动力信息技术股份有限公司 一种基于视联网的信息传输方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103078905A (zh) * 2012-12-25 2013-05-01 泉州豪杰信息科技发展有限公司 一种gps终端的通讯管理方法
CN106095597A (zh) * 2016-05-30 2016-11-09 深圳市鼎盛智能科技有限公司 客户端数据处理方法及装置
CN108270732A (zh) * 2016-12-30 2018-07-10 北京视联动力国际信息技术有限公司 一种流媒体处理方法及系统
WO2019056203A1 (zh) * 2017-09-20 2019-03-28 深圳市海能通信股份有限公司 一种低延时音视频传输方法、装置及计算机可读存储介质
CN110392044A (zh) * 2019-06-26 2019-10-29 视联动力信息技术股份有限公司 一种基于视联网的信息传输方法及装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112631788A (zh) * 2021-01-06 2021-04-09 上海哔哩哔哩科技有限公司 数据传输方法及数据传输服务器
CN112631788B (zh) * 2021-01-06 2023-11-28 上海哔哩哔哩科技有限公司 数据传输方法及数据传输服务器

Similar Documents

Publication Publication Date Title
US7554992B2 (en) Mobile device communications system and method
US20140280398A1 (en) Distributed database management
CN103780679B (zh) 基于http协议的长延时远程调用方法
US20020156900A1 (en) Protocol independent control module
CN107135268B (zh) 基于信息中心网络的分布式任务计算方法
CN108702486B (zh) 一种低延时音视频传输方法、装置及计算机可读存储介质
CN110768994B (zh) 一种基于dpdk技术的提高sip网关性能的方法
EP1584172A1 (en) Message transfer using multiplexed connections in an osi-tp environment
CN101364976B (zh) 一种建立通信通道的方法、装置及数据通信系统
US7644165B2 (en) Method and apparatus for SIP messaging
US11689646B2 (en) Network packet processing method and apparatus and network server
EP1311946A1 (en) System and method for concentration and load-balancing of requests
CN112631788B (zh) 数据传输方法及数据传输服务器
CN111064771A (zh) 一种网络请求处理方法及系统
WO2017032152A1 (zh) 将数据写入存储设备的方法及存储设备
CN111901689A (zh) 流媒体数据的传输方法、装置、终端设备和存储介质
CN113965628A (zh) 消息调度方法、服务器和存储介质
US20050188070A1 (en) Vertical perimeter framework for providing application services
US20220400082A1 (en) Ephemeral data stream routing service
JP2004264911A (ja) 計算機ノード、クラスタシステム、クラスタ管理方法、クラスタ管理プログラム
CN113687962A (zh) 一种请求处理方法、装置、设备及存储介质
CN111338747A (zh) 一种数据通信方法、装置、终端设备和存储介质
CN112689011B (zh) 一种基于nfs协议的业务传输方法、装置、设备及介质
US20030061257A1 (en) Multithreaded universal daemon for network data exchanges
WO2024113776A1 (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