一种实时接收和处理网络视频流的方法技术

技术编号:13005733 阅读:84 留言:0更新日期:2016-03-10 17:25
本发明专利技术公开了一种实时接收和处理网络视频流的方法,包括:A、通过网卡驱动程序从网卡直接获取MAC层网络数据;B、将获取的MAC层网络数据进行网络过滤,获取所需的视频数据包;C、合并视频数据包;D、接收合并后的视频数据包,对合并后的视频数据包进行协议解析,去除协议头数据和尾数据;E、对去除协议头数据和尾数据后的视频数据包进行显示处理。本发明专利技术处理效率高,同时能减小对CPU资源的占用,避免丢包。

【技术实现步骤摘要】

本专利技术涉及。
技术介绍
随着网络技术和设备的发展,市场上视频编码器、IP摄像头及类似的嵌入式IP视频源设备越来越普及。这些网络视频源设备大多数都采用了 RTP、RTSP、UDP等传输协议,采用RTP和RTSP传输协议的设备最终还是采用UDP协议传输视频。而视频接收设备主要是以计算机为主的流媒体处理器,在Windows操作系统环境下,视频接收设备采用UDP协议调用接收这些视频流并处理,由于UDP协议规范的限制,UDP协议采用的是小包传输,当传输数据超过包大小的限制只能采用分包的机制,而且需要通过校验、拥塞控制等来实现数据的接收。因此,当数据流码率达到几十兆时,由于大量的分包接收和处理是通过UDP协议调用来实现,加上校验等处理,因此需要占用大量的CPU资源,并且还不能完整接收到视频数据,丢包现象不可避免。
技术实现思路
本专利技术所要解决的技术问题在于提供,其处理效率高,同时能减小对CPU资源的占用,避免丢包。为解决上述技术问题,本专利技术所采取的技术方案是: ,包括以下步骤: A、通过网卡驱动程序从网卡直接获取MAC层网络数据; B、将获取的MAC层网络数据进行网络过滤,获取所需的视频数据包; C、合并视频数据包; D、接收合并后的视频数据包,对合并后的视频数据包进行协议解析,去除协议头数据和尾数据; E、对去除协议头数据和尾数据后的视频数据包进行显示处理。采用上述技术方案后,本专利技术至少具有以下优点: 本专利技术通过网卡驱动程序从网卡获取网络接收的数据,减少了操作系统的网络协议栈的TCP/IP层、UDP传输层的处理流程,并避开了 UDP协议的调用;同时,通过将多个小的视频数据包合并成大的视频数据包,减少了操作系统应用层读取数据包的次数,提高了操作系统应用层的处理效率,极大地提高了处理大量视频流的能力,并减少了对CPU资源的占用,确保了视频数据包的完整接收,避免了丢包现象的发生。【附图说明】图1示出了根据本专利技术一实施例的的流程不意图。图2示出了本专利技术的一个具体应用示例的工作流程。【具体实施方式】下面结合附图和具体实施例对本专利技术进行详细说明。请参阅图1。根据本专利技术一实施例的,包括以下步骤: A、通过网卡驱动程序从网卡直接获取MAC层网络数据; B、将获取的MAC层网络数据进行网络过滤,获取所需的视频数据包; C、合并视频数据包; D、接收合并后的视频数据包,对合并后的视频数据包进行协议解析,去除协议头数据和尾数据; E、对去除协议头数据和尾数据后的视频数据包进行显示处理。其中,所述的步骤A、步骤B和步骤C由操作系统的驱动层实现,所述的步骤D和步骤E由操作系统的应用层实现。该操作系统包括但不限于Windows操作系统。操作系统的驱动层依据网络驱动接口的标准规范,通过网卡驱动程序获取视频流所连接的网卡的MAC层网络数据,过滤掉不需要接收的网络数据,并把同一个视频流的UDP小包合并成大包。操作系统的应用层通过回调函数接收驱动层合并的包数据,并通过解析去除掉UDP协议包头和包尾数据,该UDP协议包头和包尾数据包括源MAC地址和IP地址、目的MAC地址和IP地址等个字段数据,最后留下有效的视频数据包,然后进行显示处理。前述的网络过滤包括根据信号源的IP地址进行过滤和根据视频发送设备的UDP协议端口号进行过滤。从网卡获取的网络数据包含了所有从网卡接收的数据包,这些数据包来自于各个与该接收设备相连的网络设备,为了接收所需要的IP视频流,首先需要根据信号源的IP地址进行过滤。在每个网络数据包的包头数据里都包含了该包的具体协议定义,其中就包括该数据包的信号源的IP地址,通过信号源的IP地址过滤,留下的就只有视频接收设备所需要接收的信号源所发送的数据包。在完成信号源的IP地址过滤后,还需要进行端口过滤。视频信号源通过不同的端口号和接收设备进行协议通讯,其中就包括发送视频数据的UDP协议端口,根据该发送视频数据包的UDP协议端口号进行过滤,最终得到需要处理的视频数据包。通过端口过滤后所得的视频数据包都是小于2K的小数据包。为了提高系统效率,驱动层在通知应用层接收数据包以前先做包合并,把多次接收的小包合并到一个大的数据包,然后再通知应用层接收数据。在前述的步骤C中,当获取的视频数据包对来自多个视频源时,则将来自多个视频源的视频数据包并行地进行合并;并且,在前述的步骤D和步骤E中,对来自多个视频源、且完成合并后的视频数据包并行地进行接收、协议解析和显示处理。应用层针对每一个视频源的视频数据均创立一个独立的线程处理,也就是说,如果是第一次接收该视频源的数据则创建新的线程,并把新接收的来自该视频源的数据包发送给该线程处理。图2示出了本专利技术的一个具体应用示例的工作流程。在图2的示例中,采用本专利技术的方法的视频接收设备实现了 3路IP视频流的接收和处理。首先,在视频接收设备的网卡通过网络驱动程序直接获取MAC层所有网络数据。然后,过滤掉不需要的网络数据包,只留下视频接收设备所希望接收的3个IP视频源发送的视频数据包。把该3个IP视频源的视频数据包分别各自合并成大的视频数据包。应用层的3个视频信号处理线程分别接收各自的视频数据包,并通过解析去除包头和包尾的协议数据,保留视频信号源发送的原始视频数据,并进行视频处理。本专利技术的方法通过网卡驱动程序直接从网卡获取网络接收的数据,减少了操作系统的网络协议栈的TCP/IP层、UDP传输层的处理流程,并避开了 UDP协议的调用;同时,通过将多个小的视频数据包合并成大的视频数据包,减少了操作系统应用层读取数据包的次数,提高了操作系统应用层的处理效率,极大地提高了处理大量视频流的能力,并减少了对CPU资源的占用,确保了视频数据包的完整接收,避免了丢包现象的发生。【主权项】1.,其特征在于,包括以下步骤: A、通过网卡驱动程序从网卡直接获取MAC层网络数据; B、将获取的MAC层网络数据进行网络过滤,获取所需的视频数据包; C、合并视频数据包; D、接收合并后的视频数据包,对合并后的视频数据包进行协议解析,去除协议头数据和尾数据; E、对去除协议头数据和尾数据后的视频数据包进行显示处理。2.根据权利要求1所述的,其特征在于,所述的网络过滤包括根据信号源的IP地址进行过滤和根据视频发送设备的UDP协议端口号进行过滤。3.根据权利要求1所述的,其特征在于,在所述的步骤C中,当获取的视频数据包对来自多个视频源时,则将来自多个视频源的视频数据包并行地进行合并;并且,在所述的步骤D和步骤E中,对来自多个视频源、且完成合并后的视频数据包并行地进行接收、协议解析和显示处理。4.根据权利要1或2或3所述的,其特征在于,所述的步骤A、步骤B和步骤C由操作系统的驱动层实现,所述的步骤D和步骤E由操作系统的应用层实现。5.根据权利要求4所述的,其特征在于,在所述的步骤D中,所述操作系统的应用层是通过回调函数从操作系统的驱动层获取合并后的视频数据包。【专利摘要】本专利技术公开了,包括:A、通过网卡驱动程序从网卡直接获取MAC层网络数据;B、将获取的MAC层网络数据进行网络过滤,获取所需的视频数据包;C、合并视频数据包;D、接收合并后的视频数据包,对合并后的视频数据包进行协议解析,去除协议头数据和本文档来自技高网...

【技术保护点】
一种实时接收和处理网络视频流的方法,其特征在于,包括以下步骤:A、通过网卡驱动程序从网卡直接获取MAC层网络数据;B、将获取的MAC层网络数据进行网络过滤,获取所需的视频数据包;C、合并视频数据包;D、接收合并后的视频数据包,对合并后的视频数据包进行协议解析,去除协议头数据和尾数据;E、对去除协议头数据和尾数据后的视频数据包进行显示处理。

【技术特征摘要】

【专利技术属性】
技术研发人员:黄琼
申请(专利权)人:上海纬而视科技股份有限公司
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1