1.一种流媒体数据分发方法,应用于智慧交通系统中,其特征在于,所述智慧交通系统包括前端摄像头、信令服务器、媒体服务器、以及用户终端,所述前端摄像头基于国标协议与所述信令服务器通信,所述用户终端通过网络接入所述信令服务器,所述信令服务器连接所述媒体服务器,所述流媒体数据分发方法应用于所述媒体服务器,所述流媒体数据分发方法包括:
接收信令服务器发送的流媒体数据接收信令,所述流媒体接收信令携带待接收流媒体数据的前端摄像头的前端标识信息,所述流媒体数据接收信令在所述信令服务器接收到用户终端发送的所述前端摄像头的流媒体数据获取请求之后生成;
根据所述前端标识信息创建与所述前端摄像头之间的目标会话控制对象;
为所述目标会话控制对象分配接收端口和分发端口;
向所述信令服务器发送所述接收端口、所述分发端口和本地通讯地址标识信息,以通过所述信令服务器将所述本地通讯地址标识信息和所述接收端口发送至所述前端摄像头,以使所述前端摄像头将流媒体数据发送至所述本地通讯地址标识信息所对应的本地媒体服务器的接收端口,并通过所述信令服务器将所述本地通讯地址标识信息和所述分发端口发送至所述用户终端,以使所述用户终端通过分发端口向所述本地通讯地址标识信息所对应的本地媒体服务器进行注册;
通过所述接收端口接收所述前端摄像头发送的流媒体数据;
获取存储有通过所述分发接口注册的用户终端的分发列表;
将所接收的所述流媒体数据通过所述分发端口分发至所述分发列表中的每个用户终端。
2.根据权利要求1所述的流媒体数据分发方法,其特征在于,在将所接收的所述流媒体数据通过所述分发端口分发至所述分发列表中的每个用户终端的步骤之前,还包括:
确定所接收的所述流媒体数据所对应的数据包的类型的步骤;
所述将所接收的所述流媒体数据通过所述分发端口分发至所述分发列表中的每个用户终端,包括:根据所述数据包的类型将所接收的所述流媒体数据通过所述分发端口分发至所述分发列表中的每个用户终端。
3.根据权利要求2所述的流媒体数据分发方法,其特征在于,所述数据包的类型包括tcp数据包,所述根据所述数据包的类型将所接收的所述流媒体数据通过所述分发端口分发至所述分发列表中的每个用户终端的步骤,包括:
根据所述分发列表中的用户终端的数量建立对应数量的发送缓冲区;
将所接收的所述流媒体数据复制对应数量的份数,并分别发送至所创建的发送缓冲区;
将所述发送缓冲区的所述流媒体数据通过所述分发端口分发至对应用户终端。
4.根据权利要求3所述的流媒体数据分发方法,其特征在于,所述将所述发送缓冲区的所述流媒体数据通过所述分发端口分发至对应用户终端的步骤,包括:
获取接收的所述流媒体数据所对应的接收字节数,和每个发送缓冲区所发送的流媒体数据所对应的发送字节数;
检测所述发送字节数是否小于所述接收字节数;
在所述发送字节数小于所述接收字节数时,向所述媒体服务器的内核发送可写通知,以在对应发送缓冲区可写时继续将所接收的流媒体数据发送至对应发送缓冲区。
5.根据权利要求4所述的流媒体数据分发方法,其特征在于,还包括:
在所述发送字节数等于所述接收字节数时,回收对应发送缓冲区的内存资源。
6.根据权利要求2所述的流媒体数据分发方法,其特征在于,所述数据包的类型包括udp数据包,所述根据所述数据包的类型将所接收的所述流媒体数据通过所述分发端口分发至所述分发列表中的每个用户终端的步骤,包括:
遍历所述分发列表中的用户终端;
将所接收的所述流媒体数据通过分发端口分发至所遍历的每个用户终端。
7.根据权利要求6所述的流媒体数据分发方法,其特征在于,所述将所接收的所述流媒体数据通过分发端口分发至所遍历的每个用户终端的步骤,包括:
检测是否在预设时间间隔内接收到对应用户终端通过所述分发端口发送的心跳包;
若否,则将对应用户终端从所述分发列表中移除;
若是,则记录收到对应用户终端发送的心跳包的时间。
8.根据权利要求1所述的流媒体数据分发方法,其特征在于,在所述获取存储有通过所述分发接口注册的用户终端的分发列表的步骤之后,还包括:
检测所述分发列表是否为空;
若所述分发列表为空,检测所述接收端口是否还存在数据传输;
若还存在数据传输,则向所述信令服务器发送流媒体数据停止请求,以通过所述信令服务器将所述流媒体数据停止请求发送至所述前端摄像头,以使所述前端摄像头停止向所述媒体服务器发送流媒体数据。
9.根据权利要求1至8任一项所述的流媒体数据分发方法,其特征在于,在接收信令服务器发送的流媒体数据接收信令的步骤之后,还包括:
检测会话控制对象列表中是否存在包括前端标识信息的会话控制对象;
若存在,则将所述会话控制对象确定为目标会话控制对象;
所述向所述信令服务器发送所述接收端口、所述分发端口和所述媒体服务器的本地通讯地址标识信息,包括:向所述信令服务器发送所述分发接口和本地通讯地址标识信息,以通过所述信令服务器将所述本地通讯地址标识信息和所述分发端口发送至所述用户终端,以使所述用户终端通过分发端口向所述本地通讯地址标识信息所对应的媒体服务器进行注册;
若不存在,则执行根据所述前端标识信息创建所述媒体服务器和所述前端摄像头之间的目标会话控制对象的步骤。
10.一种流媒体数据分发装置,应用于智慧交通系统中,其特征在于,所述智慧交通系统包括前端摄像头、信令服务器、媒体服务器、以及用户终端,所述前端摄像头基于国标协议与所述信令服务器通信,所述用户终端通过网络接入所述信令服务器,所述信令服务器连接所述媒体服务器,所述流媒体数据分发方法应用于所述媒体服务器,所述流媒体数据分发装置包括:
信令接收单元,用于接收信令服务器发送的流媒体数据接收信令,所述流媒体接收信令携带待接收流媒体数据的前端摄像头的前端标识信息,所述流媒体数据接收信令在所述信令服务器接收到用户终端发送的所述前端摄像头的流媒体数据获取请求之后生成;
会话确定单元,用于根据所述前端标识信息创建与所述前端摄像头之间的目标会话控制对象;
分配单元,用于为所述目标会话控制对象分配接收端口和分发端口;
信令发送单元,用于向所述信令服务器发送所述接收端口、所述分发端口和本地通讯地址标识信息,以通过所述信令服务器将所述本地通讯地址标识信息和所述接收端口发送至所述前端摄像头,以使所述前端摄像头将流媒体数据发送至所述本地通讯地址标识信息所对应的本地媒体服务器的接收端口,并通过所述信令服务器将所述本地通讯地址标识信息和所述分发端口发送至所述用户终端,以使所述用户终端通过分发端口向所述本地通讯地址标识信息所对应的本地媒体服务器进行注册;
媒体接收单元,用于通过所述接收端口接收所述前端摄像头发送的流媒体数据;
列表获取单元,用于获取存储有通过所述分发接口注册的用户终端的分发列表;
分发单元,用于将所接收的所述流媒体数据通过所述分发端口分发至所述分发列表中的每个用户终端。