CN105392053A - 一种实时接收和处理网络视频流的方法 - Google Patents
一种实时接收和处理网络视频流的方法 Download PDFInfo
- Publication number
- CN105392053A CN105392053A CN201510913111.6A CN201510913111A CN105392053A CN 105392053 A CN105392053 A CN 105392053A CN 201510913111 A CN201510913111 A CN 201510913111A CN 105392053 A CN105392053 A CN 105392053A
- Authority
- CN
- China
- Prior art keywords
- data
- video
- network
- video packets
- packets
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/443—OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network 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/63—Control 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/643—Communication protocols
Abstract
本发明公开了一种实时接收和处理网络视频流的方法,包括:A、通过网卡驱动程序从网卡直接获取MAC层网络数据;B、将获取的MAC层网络数据进行网络过滤,获取所需的视频数据包;C、合并视频数据包;D、接收合并后的视频数据包,对合并后的视频数据包进行协议解析,去除协议头数据和尾数据;E、对去除协议头数据和尾数据后的视频数据包进行显示处理。本发明处理效率高,同时能减小对CPU资源的占用,避免丢包。
Description
技术领域
本发明涉及一种实时接收和处理网络视频流的方法。
背景技术
随着网络技术和设备的发展,市场上视频编码器、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资源的占用,确保了视频数据包的完整接收,避免了丢包现象的发生。
Claims (5)
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中,所述操作系统的应用层是通过回调函数从操作系统的驱动层获取合并后的视频数据包。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510913111.6A CN105392053A (zh) | 2015-12-11 | 2015-12-11 | 一种实时接收和处理网络视频流的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510913111.6A CN105392053A (zh) | 2015-12-11 | 2015-12-11 | 一种实时接收和处理网络视频流的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105392053A true CN105392053A (zh) | 2016-03-09 |
Family
ID=55423811
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510913111.6A Pending CN105392053A (zh) | 2015-12-11 | 2015-12-11 | 一种实时接收和处理网络视频流的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105392053A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106533980A (zh) * | 2016-11-30 | 2017-03-22 | 浙江宇视科技有限公司 | 一种网络数据包处理方法及装置 |
CN106713942A (zh) * | 2016-12-27 | 2017-05-24 | 广州华多网络科技有限公司 | 视频处理方法和装置 |
CN107026712A (zh) * | 2017-03-06 | 2017-08-08 | 深圳国微技术有限公司 | 一种码流传输方法及装置 |
CN107395639A (zh) * | 2017-08-29 | 2017-11-24 | 天津艾科仪科技有限公司 | 智能获取网络中视频数据的方法与系统 |
CN109640171A (zh) * | 2018-12-07 | 2019-04-16 | 北京微播视界科技有限公司 | 多媒体信息合成方法、电子设备及计算机可读存储介质 |
CN110049037A (zh) * | 2019-04-15 | 2019-07-23 | 兰州理工大学 | 一种基于数据链路层的网络视频数据获取方法 |
CN111541892A (zh) * | 2020-04-23 | 2020-08-14 | 北京三快在线科技有限公司 | 识别局域网中的摄像装置的方法、数据交换设备及系统 |
CN114785866A (zh) * | 2022-04-25 | 2022-07-22 | 北京兴竹同智信息技术股份有限公司 | 一种绿通查验综合数据交互方法、系统、接口及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101494873A (zh) * | 2009-03-06 | 2009-07-29 | 北京威讯紫晶科技有限公司 | 一种个域网中无线实时多信道数据包监听方法 |
CN103533105A (zh) * | 2013-11-06 | 2014-01-22 | 上海斐讯数据通信技术有限公司 | 基于mac层数据通信的soho路由器快速配置系统及方法 |
CN103716211A (zh) * | 2014-01-20 | 2014-04-09 | 西安电子科技大学 | 网络终端的数据流量测量方法及系统 |
CN103916160A (zh) * | 2012-12-28 | 2014-07-09 | 北京中电华大电子设计有限责任公司 | 一种支持点对点通信的uwb mac层电路 |
US20150066869A1 (en) * | 2013-09-04 | 2015-03-05 | Concurix Corporation | Module Database with Tracing Options |
-
2015
- 2015-12-11 CN CN201510913111.6A patent/CN105392053A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101494873A (zh) * | 2009-03-06 | 2009-07-29 | 北京威讯紫晶科技有限公司 | 一种个域网中无线实时多信道数据包监听方法 |
CN103916160A (zh) * | 2012-12-28 | 2014-07-09 | 北京中电华大电子设计有限责任公司 | 一种支持点对点通信的uwb mac层电路 |
US20150066869A1 (en) * | 2013-09-04 | 2015-03-05 | Concurix Corporation | Module Database with Tracing Options |
CN103533105A (zh) * | 2013-11-06 | 2014-01-22 | 上海斐讯数据通信技术有限公司 | 基于mac层数据通信的soho路由器快速配置系统及方法 |
CN103716211A (zh) * | 2014-01-20 | 2014-04-09 | 西安电子科技大学 | 网络终端的数据流量测量方法及系统 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106533980A (zh) * | 2016-11-30 | 2017-03-22 | 浙江宇视科技有限公司 | 一种网络数据包处理方法及装置 |
CN106533980B (zh) * | 2016-11-30 | 2019-07-12 | 浙江宇视科技有限公司 | 一种网络数据包处理方法及装置 |
CN106713942A (zh) * | 2016-12-27 | 2017-05-24 | 广州华多网络科技有限公司 | 视频处理方法和装置 |
CN106713942B (zh) * | 2016-12-27 | 2020-06-09 | 广州华多网络科技有限公司 | 视频处理方法和装置 |
CN107026712A (zh) * | 2017-03-06 | 2017-08-08 | 深圳国微技术有限公司 | 一种码流传输方法及装置 |
CN107395639A (zh) * | 2017-08-29 | 2017-11-24 | 天津艾科仪科技有限公司 | 智能获取网络中视频数据的方法与系统 |
CN109640171A (zh) * | 2018-12-07 | 2019-04-16 | 北京微播视界科技有限公司 | 多媒体信息合成方法、电子设备及计算机可读存储介质 |
CN110049037A (zh) * | 2019-04-15 | 2019-07-23 | 兰州理工大学 | 一种基于数据链路层的网络视频数据获取方法 |
CN110049037B (zh) * | 2019-04-15 | 2021-12-14 | 兰州理工大学 | 一种基于数据链路层的网络视频数据获取方法 |
CN111541892A (zh) * | 2020-04-23 | 2020-08-14 | 北京三快在线科技有限公司 | 识别局域网中的摄像装置的方法、数据交换设备及系统 |
CN114785866A (zh) * | 2022-04-25 | 2022-07-22 | 北京兴竹同智信息技术股份有限公司 | 一种绿通查验综合数据交互方法、系统、接口及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105392053A (zh) | 一种实时接收和处理网络视频流的方法 | |
JP4822866B2 (ja) | インターネットプロトコルを用いたシリアルバスを介したデータ電送を実行するための方法及び当該方法を利用するための装置 | |
CN106790221B (zh) | 一种英特网协议安全IPSec协议加密方法和网络设备 | |
CN103546424A (zh) | 一种tcp数据传输方法、tcp卸载引擎及系统 | |
CN105528254B (zh) | 一种业务处理方法及装置 | |
US20220166832A1 (en) | Device and Method for Romote Direct Memory Access | |
CN101035140A (zh) | 一种基于sip和msrp的文件传输系统及其方法 | |
KR102383782B1 (ko) | 데이터 통신에서의 터널 데이터 업데이트 처리방법 | |
CN102497297A (zh) | 基于多核多线程的深度报文检测技术的实现系统和方法 | |
CN107508828B (zh) | 一种超远程数据交互系统及方法 | |
CN105391804A (zh) | 一种可减少传输流量的远程调用方法 | |
WO2018229697A1 (en) | Regrouping of video data by a network interface controller | |
CN104202656B (zh) | 网络音频mp3流乱序分段解码方法 | |
CN113285931A (zh) | 流媒体的传输方法、流媒体服务器及流媒体系统 | |
US9240952B2 (en) | System and method for communication between networked applications | |
US11620250B2 (en) | Systems and methods for data transfer over a shared interface | |
WO2020206849A1 (zh) | 一种处理带vlan tag的dhcp数据的方法及系统 | |
CN105245464A (zh) | 一种基于安卓系统的网络加速方法 | |
CN109039811B (zh) | 用于网络性能监控的网络数据包包头压缩方法及装置 | |
CN104202659A (zh) | 网络视频流乱序分段解码方法 | |
CN105512079B (zh) | 一种1394总线多通道流数据并行组包方法 | |
CN105791239B (zh) | 一种tcp中间人处理方法 | |
CN109756498B (zh) | 通信设备上tcp协议的nat alg转换方法及系统 | |
CN103078720B (zh) | 报文处理方法及装置 | |
CN113590340A (zh) | 媒体流数据分发方法、数据分发装置、存储介质、平台 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20160309 |