[发明专利]一种实时接收和处理网络视频流的方法在审
| 申请号: | 201510913111.6 | 申请日: | 2015-12-11 |
| 公开(公告)号: | CN105392053A | 公开(公告)日: | 2016-03-09 |
| 发明(设计)人: | 黄琼 | 申请(专利权)人: | 上海纬而视科技股份有限公司 |
| 主分类号: | H04N21/443 | 分类号: | H04N21/443;H04N21/643 |
| 代理公司: | 上海华祺知识产权代理事务所 31247 | 代理人: | 刘卫宇 |
| 地址: | 201108 上海*** | 国省代码: | 上海;31 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 实时 接收 处理 网络 视频 方法 | ||
技术领域
本发明涉及一种实时接收和处理网络视频流的方法。
背景技术
随着网络技术和设备的发展,市场上视频编码器、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地址等个字段数据,最后留下有效的视频数据包,然后进行显示处理。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海纬而视科技股份有限公司,未经上海纬而视科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510913111.6/2.html,转载请声明来源钻瓜专利网。





