搜档网
当前位置:搜档网 › Windows平台下应用FFMPEG实现H_264视频回放

Windows平台下应用FFMPEG实现H_264视频回放

Windows平台下应用FFMPEG实现H_264视频回放
Windows平台下应用FFMPEG实现H_264视频回放

第29卷第11期2008年11月

微 计 算 机 应 用

M I CROCOMP UTER APP L I CATI O NS

Vol129No111

Nov12008

W i n dows平台下应用FF M PEG实现H1264视频回放3

刘马飞1 曾学文2 倪 宏2

(1中国科学院研究生院 北京 100049

2中国科学院声学研究所国家网络新媒体工程技术研究中心 北京 100190)

摘要:H1264是I S O/I EC MPEG和I T U-T VCEG联合制定的最新的视频编码标准,其压缩性能和图像质量大大优于先前的视频编码标准。然而,W indows平台上的W indowsMedia Player需要第三方插件才支持H1264格式视频的播放,很多插件如ffd2 show等只支持AV I容器中的H1264播放,不支持ASF容器中的H1264视频播放。因此本文分析W indows平台的DMO等技术,利用开源程序FF MPEG,实现在W indows平台下与W indowsMedia Player配合的支持ASF文件容器中H1264视频回放的插件。

关键词:DMO FF M PEG H1264视频回放

Bu ild i n g H1264V i deo Pl ayback Use Ff m peg on the W i n dows Pl a tform

L I U Mafei1,ZE NG Xue wen2,N I Hong2

(1Graduate University of the Chinese Acade my of Sciences,Beijing,100049,China, 2The Nati onal Net w ork Ne w Media Eengineering Center of The institute of acoustic of Chinese Acade my

of Sciences,Beijing,100190,China)

Abstract:H1264is a new video coding standard revised by I S O/I EC MPEG and I T U-T VCEG,whose encoding perf or mance is far beyond f or mer video encoding standard。But in windows p latfor m,W indowsM edia Player needs an additi onal codec p lug-in for p la2 ying the H1264video1There is s ome codec p lug-in supporting the H1264video strea m f or m AV I file container p layback underW in2 dowsMedia Player like ffdshow,but There are no free codec p lug-in supporting the H1264video strea m fr om ASF container p lay2 back1This paper will intr oduce how t o build a codec p lug-in with W indows Media Player supporting the H1264video strea m fr om ASF container p layback,using DMO technique and open s ource p r ogram na med ff mpeg1

Keywords:DMO FF M PEG H1264video p layback

H1264/AVC[1]是I S O/I EC MPEG和I T U-T VCEG联合制定的最新的视频编码标准。在同等还原图像质量条件下,与H1263+和MPEG4相比,H1264能够节省一半的码率。H1264正以其高压缩率,优秀的图像质量,低时延以及网络友好等特点,已经得到越来越广的应用。然而W indows平台下用户最熟悉的媒体播放器W indowsMedia Player本身并不支持H1264编码格式的视频播放,而是需要另外安装H1264的解码插件。W indows平台下最普通的媒体文件容器格式莫过于ASF[2]和AV I。由于W indows Media Player的框架特性,使得编解码插件对视频编码格式的支持,还与文件容器相关。目前能支持AV I容器中的H1264编码格式视频播放的免费的插件有ffdshow和Core AVC等,但能够配合W indowsMedia Player支持ASF容器中的H1264编码格式视频的播放的免费插件则没有。ASF容器格式是W indows平台下非常流行的一种适合流媒

 本文于2008-08-01收到。

 3基金项目:国家863计划。支持三重业务的地面电视无线回传关键技术与双向化方案研究(编号:2007AA01Z230)。

 

微 计 算 机 应 用

 

2008年

体传输的容器格式,因此编写支持ASF容器中的H1264编码格式视频播放的媒体插件,对于应用来讲非常有必要。

在W indows平台的流媒体系统中,由于W indo wsMedia Player与W indows操作系统捆绑以及W indows操作系统的普及程度,依赖W indowsMedia Player作为媒体系统的客户端呈现给用户可以使得用户友好性得到增强,也可以节省开发新媒体播放器的成本,所以很多应用于W indows平台下的流媒体系统都是利用W in2 dowsMedia Player作为媒体系统的终端。要使得以W indows Media Player作为客户端的ASF流媒体系统能够采用H1264编码视频格式,就必须要有支持ASF容器中H1264视频播放的插件。通过探索,作者寻找到一种利用FF MPEG,对其进行DMO[3]封装实现配合W indows Media Player支持H1264视频播放的插件的方法。

1 H1264简介

H1264是国际标准化组织(I S O)和国际电信联盟(I T U)共同提出的继MPEG4之后的新一代数字视频压缩格式,它即保留了以往压缩技术的优点和精华又具有其他压缩技术无法比拟的许多优点。

(1)低码流(Low B it Rate):和MPEG2和MPEG4ASP等压缩技术相比,在同等图像质量下,采用H1264技术压缩后的数据量只有MPEG2的1/8,MPEG4的1/3;显然,H1264压缩技术的采用可以大大节省用户的下载时间和数据流量收费。

(2)高质量的图像:H1264能提供连续、流畅的高质量图像(DVD质量);

(3)容错能力强:H1264提供了解决在不稳定网络环境下容易发生的丢包等错误的必要工具;

(4)网络适应性强:H1264提供了网络适应层(Net w ork Adap tati on Layer),使得H1264的文件能容易地在不同网络上传输(例如互联网,CDMA,GPRS,WCDMA,CDMA2000等);

H1264标准还在不断发展,S VC(scalable video coding)[4]和MVC(multi-vie w coding)[5]添加作为H1264的修正的标准化工作正在进行中,因此H1264的功能将更加丰富,适用更多应用场景。我们有理由相信, H1264标准将会受到业界的广泛应用,因此实现支持H1264播放的插件对W indows平台流媒体应用非常有意义。

2 DMO介绍及应用

在W indows媒体应用中,主要包括D irectShow[3]和DMO。D irectShow是微软公司提供的一套在W indows 平台上进行流媒体处理的开发包,与D irect X开发包一起发布,为多媒体流的捕捉和回放提供了强有力的支持。

D irect X媒体对象(D irect X Media Objects,简称DMO s),是微软提供的另一种流数据处理COM组件,与

D irectShow filter相比,DMO有以下优点:

(1)DMO比filter实现的功能要少很多,这使得DMO“体积”很小;

(2)DMO使用起来比filter更有灵活性。DMO的使用不需要filter graph,应用程序可以直接与DMO交互。而DMO也可以通过一个DMO wrapper filter工作于D irectShow环境。

(3)DMO总是同步处理数据,不像filter有独立的数据传送线程,需要考虑多线程编程问题;

(4)与传统的编解码管理器AC M、VC M相比,用DMO开发的编解码器是基于COM的,更易于扩展。并且DMO支持多个输入和多个输出;

(5)DMO不需要像filter一样分配数据传送的内存,而有DMO的使用者负责;

(6)DMO是一个独立功能模块,不需要像filter一样连接成一条链路;

(7)DMO不需要像filter一样将数据“推”下去,数据的输入输出都是由DMO的使用者完成的;

所有这些优点,使得DMO成为微软对于Encoder和Decoder开发的重点推荐模式。D irect X910S DK 26

 11期

 

刘马飞等:W indows平台下应用FF MPEG实现H1264视频回放

中,微软更是把DMO从D irectShow中分离出来,而对于一些transfor m filter,微软也推荐用DMO的方式来替换。因此,本文选择用DMO来封装H1264视频解码插件。

3 FF M PEG

FF MPEG是一套完整的录制,转换和流化音频和视频的开放源代码的解决方案,其包括以下几部分组成:

(1)libavcodec,一个包含了所有FF mpeg音视频编解码器的库1为了保证最优性能和高可复用性,大多数编解码器从头开发的。

(2)libavfor mat,一个包含了所有的普通音视格式的解析器和产生器的库,该库里边包含解码H1264的codec。

(3)ffp lay,用S DL和FF mpeg库开发的一个简单的媒体播放器。

(4)ffserver,基于HTTP用于实时广播的多媒体服务器。

(5)ff mpeg,视频文件转换命令行工具,也支持经过实时电视卡抓取和编码成视频文件。

FF MPEG是基于linux平台上开发的,想要移植到VC平台上需要进行很大的改动,比较困难。幸好在W indo ws平台下可以利用M inG W编译FF MPEG代码,生成avfor mat1dll,avcodec1dll,avutil1dll三个动态连接库,可供应用程序使用。FF MPEG的高性能设计,以及其包含的经过了优化的H1264解码算法,使得FF M2 PEG解码H1264视频的速度相当快;在H1264开源解码器评测中,FF MPEG的解码速度最快。因此利用FF MPEG实现播放插件,解码速度快,占用内存小。

4 代码实现

代码实现的主要任务是将FF MPEG封装在DMO对象中,由DMO对象与W indows Media Player协商媒体类型、对象连接以及传递媒体数据,而FF MPEG负责将输入到DMO中的未解码的H1264视频帧解码成可以显示的RG B格式的视频帧,然后交由DMO输出端传送予W indowsMedia Player进行显示。

在微软的D irect X S DK中,为开发DMO提供了一个I M edia ObjectI m p l模板类,使得开发DMO比较容易。实现程序定制的DMO,只需派生此模板类,实现17个以I nternal开头的函数。

411 FF M PEG库的使用

使用FF MPEG库,首先应该将avcodec1dll,avf or mat1dll,

avutil1dll加入到工程中,并且在文件头中需要包含avcodec1h头文件;

另外使用FF MPEG库的函数之前,需要对FF MPEG库进行初始化,因此本实现中是在DMO对象的构造函数中实现FF MPEG库的初始化。通常的操作是通过avcodec_init()以及avcodec_register_all()初始化并注册FF MPEG所有的编码解码器;然后通过CODEC_I D_H264指示码寻找到本DMO使用的H1264解码器,即:

codec=avcodec_find_decoder(CODEC_I D_H264)1

然后做编解码器上下文初始化及申请空间保存解码图像,即:c=avcodec_all oc_context();

p icture=avcodec_all oc_fra me();

最后是根据得到的H1264codec以及解码上下文结构去打开H1264解码器,使其能够工作,即:

avcodec_open(c,codec);

具体代码可以参照ff mpeg源代码中的out put_exa mp le1c中的示例代码。

412 I n terna l Check I nputType函数

该函数的主要目的是检查DMO对象是否适合于此输入的媒体类型的解码,如果检查通过那么该DMO 才可以用于此种类型视频的解码。本设计的DMO中实现的是H1264视频解码插件,因此DMO接收的输入

36

 

微 计 算 机 应 用

 

2008年

媒体主类型是视频,而媒体subtype则是H1264格式;所以只有当媒体类型符合此限制时,函数返回TRUE,检查通过。

413 I n terna l Check O utputType函数

该函数的目的是检查DMO对象是否能够产生此种媒体类型的视频输出,如果检查通过那么该DMO才可以用于产生此类视频输出。解码器的目的就是将压缩的格式解码,成为无压缩可以直接显示的格式;在这里,我们选择最普通的RG B24格式。

414 I n terna lProcessI nput函数

该函数的作用是输入一个未解码的图像帧,需要做的工作就是把帧对象保存,以待应用程序在DMO输出端请求图像输出时,对此输入图像帧执行解码操作,属出解码图像。因为图像帧在图像中是通过C++的COM对象I M edia Buffer来保存的,因此我们只需要I M edia Buffer的接口函数Get B uffer And Length得到输入的图像存放的内存块指针和大小,然后增加COM对象的引用计数,最后设置相关的时间戳即可。

415 I n terna lProcess O utput函数

该函数的作用是将上次输入DMO的未解码的帧调用FF MPEG中的解码函数进行解码,输入Y UV格式的视频,然而我们最终要求输出的视频格式是RG B格式的,因此还必须将Y UV格式的视频转换成RG B格式的视频。幸好的是FF MPEG中有高度优化的函数Y UV2RG B供我们使用。使用本DMO的应用程序会向本函数请求输出解码图像,因此在这里我们调用FF MPEG中的解码函数对输入图像进行解码,把解码重建后的图像输出,交由应用程序进行播放。具体的代码如下:

len=avcodec_decode_video(c,p icture,&got_p icture,outbuf_p tr,size);//调用FF MPEG媒体库的解码函数进行解码

Y UV2RG B(p icture->data[0],p icture->data[1],p icture->data[2],pOut D ata,p ic_width,p ic_ height);//调用FF MPEG媒体库的格式转换函数将Y UV格式视频转换成RG B格式

416 DMO注册函数

W indowsMedia Player播放视音频时,会根据视音频的格式到系统注册表中寻找到相应的解码器,如果找不到合适的解码器,W indowsMedia Player则播放不正常甚至无法播放。所以DMO程序需要在系统中进行注册,而DMO本身是一个COM程序,COM程序的注册在D ll RegisterServer中进行。因此在D ll Regis2 terServer函数中通过接口函数DMORegister在操作系统注册表中注册本DMO的信息。设置DMO的信息为只有一个输入端,输入的是H1264格式的视频;设置DMO的信息为只有一个输出端,输出的是RG B格式的视频。如此设置以后,当W indowsMedia Player播放ASF中的H1264视频时可以顺利地寻找到本插件,成功播放ASF容器中H1264格式的视频。

//定义输入媒体格式

DMO_P ARTI A L_ME D I A TYPE m t_input;

m t_input1type=ME D I A TYPE_V ideo;

m t_input1subty pe=ME D I A S UBTYPE_H264;

//定义输出媒体格式

DMO_P ARTI A L_ME D I A TYPE m t_out put;m t_out put1type=ME D I A TYPE_V ideo;

m t_out put1subtype=MED I A S UBTYPE_RG B24;

DMORegister(L“DMO Sa mp le”,//DMO对象名

CLSI D_Sa mp le,//DMO对象的序列I D DMOCATEG ORY_V I D E O_DECODER,//视频解码器目录

0,

1,//输入媒体类型个数

&m t_input,//输入媒体类型格式

46

 11期

 

刘马飞等:W indows平台下应用FF MPEG实现H1264视频回放

1,//输出媒体类型个数

&m t_out put);//输出媒体类型格式

到此,利用FF MPEG封装在DMO对象中构造一个能支持W indows Media Player播放ASF容器中的H1264视频播放插件所需要做的工作已经完成。

5 结束语

鉴于目前缺乏配合W indowsMedia Player播放ASF媒体容器格式的H1264视频播放的免费插件,本文介绍了一种简单实现此插件的方法,依赖于DMO高效性以及FF MPEG编解码库中性能优化的H1264解码算法,使得插件解码速度快,内存损耗小。利用此插件,W indows平台上的H1264流媒体系统可以利用W in2 dowsMedia Player作为媒体系统的客户端,节省开发新播放器的成本,大大增强了系统的用户友好性。

参考文献

1 D raft I T U-T recommendati on and final draft internati onal standard of j oint video s pecificati on(I T U-T Rec1H1264/I S O/I EC 14496-10AVC)in Joint V ideo Team(JVT)of I S O/I EC MPEG and I T U-T VCEG,JVTG050,20031

2 M icr os oft Cor porati on1Adranced Syte m s For mat(ASF)Specifrcati on,Revisi on01120103,Dece mber2004[5]1

3 陆其明1D rrectshow开发指南1北京:清华大学出版社,20031

4 T1W iegand,G1J1Skuivan,J1Reichel,H1Sch warz ancl M1wien,eds1Jornt D raft7,Joint V ideo Tea m1Doc1JVT-T201,Klagenfurt, Austria,July20061

5 Jornt D rafe610on M ultvie w V ideo Coding1JDT-z209,Antalya,Turkey,Tan20071

56

基于Windows平台的个人防火墙设计论文

基于Windows平台下的个人防火墙设计 摘要 网络安全问题长期威胁着网络终端用户,需要有有效的安全工具解决这个问题,个人防火墙就是其中的一种常用的安全工具。为了实现个人防火墙软件,选用VC++ 6.0开发工具。软件系统主要包括两项工程,一是核心模块设计,即DLL 工程,实现了封包截获、管制动作和协议封包的解析任务,主要利用Winsock 2 SPI技术实现网络封包截获,之后利用控管规则对过往封包进行合法性检查和过滤,方法是首先利用Winsock 2 SPI技术建立winsock钩子,用它来截获winsock 的调用,然后作出相应动作处理,动作处理需通过控管规则的检查后,确定socket 连接是否允许通过,其中控管规则由用户层设置;二是用户模块设计,即EXE工程,实现用户界面和负责与DLL模块的通信,提供了3个主要界面,即封包监视、控管规则、控管规则设置。最后通过测试和应用,基本解决了终端用户的网络连接安全问题。 关键词:过滤;动态连接库;Winsock 2 SPI;网络封包;协议封包

The Design of the Personal Firewall Based on Windows Abstract The terminal users of network are always threaten by the problems of security of network,so we need a effective tool to solve this problem.The personal firewall is one of the common tools of security. VC++ is selected to implement the personal firewall.The system has two projects mainly. One of the projects is the design of core module which can be called the project of DLL.This project implements behaviors of management and the analysis of packets of protocols. The technology of Winsock 2 SPI is used to capture of pakcets of network. After that, then the checking and filtering of the packets are done using the rules of control and management. At the beginning, the control rules build up the Hook of winsock which is used to capture the tranfer of winsock,and then it implements relative behaviors.The link of socket will be or not get through checking by the rules of control and management. The rules of control and management are set by the layer of user.Then, we should design the module of user which can be called the project of exe. It implements the interface of user and the module of communication with DLL. It provides three main interfaces, they are the watching of filtering packet, the rules of control and management and the setting of rules of control and management. Finally, it has solved the requirement of security of terminal users after the final testing and application. Key words:Filter;DLL;Winsock 2 SPI;Network packets; Protocol packets

《基于windows平台的网络构建》课程实践教学改革

《基于windows平台的网络构建》课程实践教学改革摘要:该文就《基于windows平台的网络构建》课程实践教学存在的问题进行探讨,并提出改进思路与方法,提高学生运用windows 平台进行网络组建和网络服务管理的职业技能。 关键词:windows平台网络构建实践教学改革 Abstract:The problems of “construct the network base on windows platform” practice teaching discussed in this arti cle,and the proposed improvement ideas and methods to improve the students to use the windows platform network formation and network service management vocational skills. Key word:windows platform network building practice teaching reform 1课程概况 掌握并应用windows服务系统是中小型企业从事网络建设和网络管理的核心技能之一,涉及IP规划、路由和远程访问服务、DHCP、流媒体等内容。在windows服务的实际应用中,企业往往部署了windows自带的服务(如DNS、WEB)和其他服务生产商的产品(如ServU、Helix),《基于windows平台的网络构建》课程教学内容包含windows server系统管理和服务管理、主流应用服务的配置与管理、

基于windows平台的基本网络测试工具实验

基于windows平台的基本网络测试工具实验 1 、实验目的 1 )了解网络命令行的使用。 2 )熟练掌握ping 命令、netstat 命令、ipconfig 命令、arp 命令tracert 命令、route 命令、nbtstat 命令、net 命 令的操作使用。 2 、实验环境 一台装有Windows 2000 Server 的联网计算机。 3 、实验原理 一般网络命令的原理就是在建立连接通道,然后发送一些测试数据包对方接受后返回信息,而这个返回数据包包含一些网络状况的相关信息。 4 、实验要求 1 )熟悉掌握ping 命令操作。 2 )熟悉掌握netstat 命令操作。 3 )熟悉掌握ipconfig 操作。 4 )熟悉掌握arp 命令操作。 5 )熟悉掌握tracert 命令操作。 6 )熟悉掌握route 命令操作。 7 )熟悉掌握nbtstat 命令操作。 8 )熟悉掌握net 命令操作。 5 、实验步骤 常见网络命令实验操作都在windows2000 的DOS 窗口中操作,如下图:

? Ping 命令 Ping 命令用于确定本地主机是否能与另一台主机交换(发送与接收)数据报。根据返回的信息,就可以推断TCP/IP 参数是否设置得正确以及运行是否正常。需要注意的是:成功地与另一台主机进行一次或两次数据报交换并不表示TCP/IP 配置就是正确的,必须执行大量的本地主机与远程主机的数据报交换,才能确信TCP/IP 的正确性。 ? 简单的说,Ping 就是一个测试程序,如果Ping 运行正确,大体上就可以排除网络访问层、网卡MODEM 的输入输出线路、电缆和路由器等存在的故障,从而减小了问题的范围。但由于可以自定义所发数据报的大小及无休止的高速发送,Ping 也被某些别有用心的人作为DDOS (拒绝服务攻击)的工具,前段时间Y ahoo 就是被黑客利用数百台可以高速接入互联网的电脑连续发送大量Ping 数据报而瘫痪的。 ? 按照缺省设置,Windows 上运行的Ping 命令发送4 个ICMP (网间控制报文协议)回送请求,每个32 字节数据,如果一切正常,应能得到4 个回送应答。 ? Ping 能够以毫秒为单位显示发送回送请求到返回回送应答之间的时间量。如果应答时间短,表示数据报不必通过太多的路由器或网络连接速度比较快。Ping 还能显示TTL (Time To Live 存在时间)值,可以通过TTL 值推算一下数据包已经通过了多少个路由器:源地点TTL 起始值(就是比返回TTL 略大的一个 2 的乘方数)- 返回时TTL 值。例如,返回TTL 值为119 ,那么可以推算数据报离开源地址的TTL 起始值为128 ,而源地点到目标地点要通过9 个路由器网段(128-119 );如果返回TTL 值为246 ,TTL 起始值就是256 ,源地点到目标地点要通过9 个路由器网段。 Ping 命令的常用参数选项: ? ping IP -t-- 连续对IP地址执行Ping 命令,直到被用户以Ctrl+C 中断。 ? ping IP -l 2000-- 指定Ping 命令中的数据长度为2000 字节,而不是缺省的32 字节。? ping IP -n-- 执行特定次数的Ping 命令。 ? Netstat Netstat 用于显示与IP、TCP 、UDP 和ICMP 协议相关的统计数据,一般用于检验本机各端口的网络连接情况。如果计算机有时候接受到的数据报会导致出错数据删除或故障,不必感到奇怪,TCP/IP 可以容许这些类型的错误, 并能够自动重发数据报。但如果累计的出错情况数目占到所接收的IP数据报相当大的百分比,或者它的数目正迅速增加,那么就应该使用Netstat 查一查为什么会出现这些情况了。netstat 的一些常用选项: ? netstat -s-- 本选项能够按照各个协议分别显示其统计数据。如果应用程序(如Web 浏览器)运行速度比较慢,或者不能显示Web 页之类的数据,那么就可以用本选项来查看一下所显示的信息。需要仔细查看统计数据的各行,找到出错的关键字,进而确定问题所在。 ? netstat -e-- 本选项用于显示关于以太网的统计数据。它列出的项目包括传送的数据报的总字节数错误数、删除数、数据报的数量和广播的数量。这些统计数据既有发送的数据报数量,也有接收的数据报数量。这个选项可以用来统计一些基本的网络流量)。 ? netstat -r-- 本选项可以显示关于路由表的信息,类似于后面所讲使用route print 命令时看到的信息。除了显示有效路由外,还显示当前有效的连接。

办公软件应用模块(WINDOWS平台)中级(考试大纲)

办公软件应用模块(WINDOWS平台)中级(考试大纲) 第一单元 Windows系统操作 10分 1.Windows操作系统的基本应用:进入Windows和资源管理器,建立文件夹,复制文件,重命名文件; 2.Windows操作系统的简单设置:添加字体和输入法。更改系统时间、日期,设置桌面背景、设置系统音量为静音、隐藏桌面图标。 第二单元文字录入与编辑 12分 1.新建文件:在文字处理程序中,新建文档,并以指定的文件名保存至要求的文件夹中。 2.录入文档:录入汉字、字母、标点符号和特殊符号,并具有较高的准确率和一定的速度。 3.复制粘贴:复制现有文档内容,并粘贴至指定的文档和位置; 4.查找替换:查找现有文档的指定内容,并替换为不同的内容或格式。 5.为文档设置编辑限制:仅允许在文档中填写窗体,保护密码为:*。 6.使用外部文件:插入声音文件、工作簿等。 7.转换文件格式。 第三单元格式设置与编排 12分 1.设置文档文字、字符格式:设置字体、字号,字形; 2.设置文档行、段格式:设置对齐方式、段落缩进、行距和段落间距; 3.拼写检查:利用拼写检查工具,检查并更正英文文档的错误单词; 4.设置项目符号或编号:为文档段落设置指定内容和格式的项目符号或编号。 5.设置中文版式:如加拼音等。 6.创建题注:在插图下方的图例位置创建题注。 7.创建书签。 8.创建目录:在文档首部创建目录,并设置目录格式。 第四单元表格操作 10分 1.创建表格并自动套用格式:创建一个新的表格并自动套用格式; 2.表格的行、列修改:在表格中交换行和列,插入或删除行和列,设置行高和列宽; 3.合并或拆分单元格:将表格中的单元格合并或拆分;

基于Windows平台的网络流量统计及控制系统的设计与实现

基于Windows平台的网络流量统计及控制系统的设 计与实现 夏义三 北京邮电大学信息工程学院,北京(100876) E-mail:bupt.ip@https://www.sodocs.net/doc/ea10540428.html, 摘要:介绍了一种Windows平台下的针对个人微机的网络流量统计及控制系统的总体设计及各个功能模块的实现,给出了系统的架构、软硬件环境以及部分程序代码。 关键词:流量统计,流量控制,传输服务提供者 中图分类号:TP393 1. 引言 在网络管理过程中,网络流量监控是一个重要部分。有效的网络流量监控不仅能够让网络管理人员及时了解网络的运行状态,并且能够对网络出现的问题做出及时调整和排除。目前,绝大多数的网络流量监控系统都部署在一个网络的出口处,有串联和旁路两种方式,这是对全网流量进行统计和控制的常用方法。本文所讲的网络流量统计与控制系统立足于Windows平台的用户终端上,通过中央服务器进行控制,为企业网络管理员提供后台监控和保护敏感信息的手段,以便保障企业的网络运行和信息安全。本文对该系统的原理、设计进行了介绍和分析,并给出了一种切实可行的实现办法。 2. 系统的设计原理 在个人微机上实施网络流量统计与控制的方法有很多,可以在TCP/IP协议栈的多个层来实现。在各个层上实现的方法不同,实现的难度和执行情况也不同。本系统以COM技术为基础,综合运用了DOM,SPI等技术,采用插件式架构,具有低耦合,自更新的特点,适用于分布式网络。系统包括客户端和服务器两个部分,客户端实现流量统计和控制功能,服务器负责存储客户端上报的流量数据,以便管理员查询,管理员还可通过服务器下发具体的流量控制策略。 2. 1 客户端的设计原理 流量统计功能在TCP/IP协议栈的数据链路层实现,具体原理是建立一个原始套接字并将其绑定到网卡上,之后就可以通过该套接字的接收缓存获得经过网卡的数据包,从而进行流量的分析和统计工作。 流量控制功能在TCP/IP模型的应用层实现,具体原理是利用Windows系统的SPI(传输服务提供者接口)来截获上层应用程序所发的Winsock调用,Winsock调用包括WSPSocket、WSPCloseSocket、WSPBind、WSPAccept、WSPConnect、WSPSend、WSPSendTo、WSPRecv、WSPRecvFrom[1]。从这些Winsock调用中可以取得在该socket上进行发送和接收的数据,对这些数据进行分析处理,确定它们所属的业务类型及连接信息,将这些信息与从服务器端下发的流量控制策略匹配,得到控制动作,实施控制行为,从而实现流量控制的功能。

Windows平台上的串行通信简介 -电脑资料.

Windows平台上的串行通信简介 -电脑资料 2019-01-01 Windows平台上的串行通信简介 1.使用VC编程 利用VisualC++编写串行通信程序可借助于 API(ApplicationProgramInterface)函数, 。Windows9x及更高版本的通信函数为32位。涉及到串行通信的APl函数主要有以下几个: 打开通信资源(包括通信口)使用CreateFile(),通信资源被看成一个文件。该函数有7个自变量。 对通信口的设置涉及3个函数:SetupComm()使用来设置发送和接收缓冲区的大小;GetCommState()可用来获取串行通信设备控制块DCB结构的当前状态;SetCommState()用来对通信口进行自己的设置。 发送数据使用WriteFile()函数。 读接收到的数据使用ReadFile()函数。 清除通信错误并通信口当前状态使用ClearCommError()函数。 指示通信口进行某种扩充功能(如发送DTR信号)使用EscapeCommFunction()函数。 这些函数的说明可参看 VisualStudioMSDN(MicrosoftDeveloperNetwork), 《》()。 2.使用VIi编程 Visualc++3.0(VB)及以上的专业版、企业版都提供了一个通信控件,5.O 版本以后称之为MSComm。利用该控件可很方便地实现RS-232通信。 下面是一个很简单的程序示例,读者从注释中不难理解它的作用。这里假定事先已定义Comml为MSComm类型的对象。

Comml.CommPort=2指定Comml是COM2口 Comml.Settings="9600,n,8,l设置通信参数Comml.InputLen=0读取接收数据时,一次读取所有已收到的字符Comml.PortOpen=True打开COM2 Comml.DTREnable=True置DTR Comml.RTSEnable=True置RTS Comml.Output=TestCommunication发送一字符串 Do循环等待,直到接收到5个以上的字符为止 DoEvents此期间将控制权交还给Windows,以响应其他事件LoopUntilComml.InBufferCounter>=5 InString$=Comml.Input读收到的字符,赋给变量InString$

《基于windows平台网络构建》课程实践教学改革

《基于windows平台的网络构建》课程实践教学改革 摘要:该文就《基于windows平台的网络构建》课程实践教学存在的问题进行探讨,并提出改进思路与方法,提高学生运用windows平台进行网络组建和网络服务管理的职业技能。 关键词:windows平台网络构建实践教学改革 中图分类号:g420 文献标识码:a 文章编号:1674-098x(2012)12(b)-0-02 the curriculum practice teaching reform of”constructthe network base on windows platform” huangjunxian (guangdong communication polytechnic guangzhou.guangdong 510650) abstract:the problems of “construct the network base on windows platform” practice teaching discussed in this article,and the proposed improvement ideas and methods to improve the students to use the windows platform network formation and network service management vocational skills. key word:windows platform network building practice teaching reform 1 课程概况 掌握并应用windows服务系统是中小型企业从事网络建设和网络

Windows平台常用软件工具的开源替代方案

Windows平台常用软件工具的开源替代方案 7-ZIP替代WinZip 7-Zip是一个开放源码的数据压缩程序,主要用在Microsoft Windows操作系统,Unix-like的操作系统如Linux与FreeBSD下面有7-zip的移植版本p7zip可以使用。它提供命令行接口的程序或图形用户界面的程序,而且可以与资源管理器结合。 下载网址:https://www.sodocs.net/doc/ea10540428.html,/ FileZilla 替代CuteFTP FileZilla 是一个免费的FTP 客户端软件,虽然它是免费软件,可功能却一点也不含糊,比起那些共享软件来有过之而无不及,在新的版本中作者改进了手动下载的界面和功能等,新版本已经更新支持了续传功能。 下载网址:https://www.sodocs.net/doc/ea10540428.html,/ Nitro PDF Reader 替代Adobe Acrobat Nitro PDF Reader您可以创建PDF文件,评论和审查,保存PDF表格,提取文本和图像,直接键入文本到页面上,等等。 下载网址:https://www.sodocs.net/doc/ea10540428.html,/download/ MySQL 替代Microsoft SQL Server MySQL是最流行的开源数据库。 下载网址:https://www.sodocs.net/doc/ea10540428.html,/ OpenOffice 替代MS Office 这是一套免费的Office 软件,是国内很多所谓中文Office套件的母体。其功能大致可以替代MS的Office系统。 下载网址:https://www.sodocs.net/doc/ea10540428.html,/

5款值得一试的Photoshop免费替代软件 随着数码相片大规模的替代传统胶卷相片的地位,拥有一款图像编辑软件变得越来越重要。王中之王当然是 Photoshop,不过完全版打着的699美元标签,许多人开始想要知道有没有免费的选择可以做到 Photoshop 同样的事情。 https://www.sodocs.net/doc/ea10540428.html, https://www.sodocs.net/doc/ea10540428.html, 是一个功能和教程丰富的软件,还有一个支持社区能够帮助大部分新用户学习中遇到的问题。https://www.sodocs.net/doc/ea10540428.html, 发展于一个由微软指导的大学生高级设计项目,目的是替代微软画图板程序,现在由最初从事它开发的一些男校友来维护。它有大量的按钮非常像 Photoshop,以及很类似的功能,使得它成为那些寻求与Photoshop 相似替代程序的人们的强力候选。我敢说 Photoshop 可以做到的事情大部分都可以用 https://www.sodocs.net/doc/ea10540428.html, 做到。

基于Windows平台的反Rootkit原理与实现

摘要 摘要 Windows操作系统是目前主流的操作系统,基于这个平台下的各种程序软件层出不穷,相应的木马病毒也在不断的进步。为了对抗杀毒软件,这些木马病毒企图霸占电脑主权,更进一步的扩展恶意行为。这些恶意程序往往具备对抗当今主流杀毒软件的能力,给用户带来了不可估量的损失。 研发探究这些病毒木马的原理及其行为,制作出相应的安全工具来对抗它们,显得十分必要。然而由于Windows 操作系统是不开源的,这对研究其内部的原理增加了一定的难度,制作相应的Anti-Rootkits工具也并非易事。但正是由于这些原因,使得对抗当前流行的病毒木马变得更加具有价值和挑战性。 本论文着重讨论Windows平台下主流的Rootkit技术及防御技术,并且最终将实现一个具有相对完善功能的反Rootkit软件SnowShadow。目前SnowShadow的最新版本是1.2,综合有进程、文件、注册表进程等数十项功能。本软件大量使用微软未公开技术,许多技术建立在逆向操作系统内核代码的基础之上,使用本软件有一定风险。使用本软件可以实现实现手工发现并清除Rootkit病毒,进程管理可以用于结束顽固进程,枚举隐藏进程,文件管理支持文件的暴力删除,隐藏文件的枚举,文件解锁等功能,用于清除Rootkit病毒文件,注册表一项,基于注册表文件解析的编辑器,支持注册表离线编辑(包括删除,增加修改等功能),由于不使用任何API来操作注册表,可以防止通用注册表保护手段的干扰。 关键字:Anti-Rootkit 、Rootkit、反病毒、Windows内核。 I

ABSTRACT Abstract Windows operating system is the current popular operating system. Based on this platform, there are endless variety of software and the corresponding Trojans also continue to progress. To counter the anti-virus software, these Trojans attempt to commandeer the computer's sovereignty, and further expand the malicious behavior. These malicious programs often have the capability of today's major anti-virus software, which gives users an immeasurable loss. It is extremely necessary to explore the principles and behavior of the Trojans. However, since Windows operating system is not open, it becomes more difficult for people to know its principle and to develop the related Anti-Rootkits tools. Because of these reasons, making the Trojans against the current circulating virus became more valuable and challenging. This paper focuses on the mainstream Windows platforms Rootkit technology and defense technology, and will eventually realize a relatively perfect anti-Rootkit software SnowShadow. The latest version of the current SnowShadow is 1.2, integrated with the process, file, registry, process, and dozens of functions. This software will use plenty of technology that Microsoft does not apply and many technologies are based on the operating system kernel code, thus using of this software has some https://www.sodocs.net/doc/ea10540428.html,e of this software can be achieved manually find and remove Rootkit virus, process management can be used for the end of stubborn process, enumerate hidden processes, document management support for the violence to delete the file, hidden file enumeration, file unlock and other functions, used to clear Rootkit virus file, a registry-based analysis of the registry file editor, support for offline editing the registry (including delete, modify etc added), because they do not use any API to manipulate the registry to prevent common registry protection Means of interference. Keywords: Anti-Rootkit, Rootkit, Anti-Virus, Windows Kernel. II

Windows平台深度学习入门指南

Windows平台深度学习入门指南 本文从最基本的依赖项开始,依次配置了VS 2015、Anaconda 4.4.0、CUDA 8.0.61 和cuDNN v5.1 等基本环境,然后再从Keras 出发安装Theano、TensorFlow 和CNTK 以作为其后端。在完成配置深度学习框架后,本文分别利用这三个框架作为Keras 后端在CPU 和GPU 上训练了一个标准的卷积神经网络,完成该简单的卷积网络也就意味着我们完成了深度学习环境的配置。

目前有很多帮助我们在Linux 或Mac OS 上构建深度学习(DL)环境的指导文章,但很少有文章完整地叙述如何高效地在Windows 10 上配置深度学习开发环境。此外,很多开发者安装Windows 和Ubuntu 双系统或在Windows 上安装虚拟机以配置深度学习环境,但对于入门者来说,我们更希望还是直接使用Windows 直接配置深度学习环境。因此,本文作者Phil Ferriere 在GitHub 上发布了该教程,他希望能从最基本的环境变量配置开始一步步搭建Keras 深度学习开发环境。 如果读者希望在Windows 10 上配置深度学习环境,那么本文将为大家提供很多有利的信息。 01 依赖项 下面是我们将在Windows 10(Version 1607 OS Build 14393.222)上配置深度学习环境所需要的工具和软件包: 1.Visual Studio 2015 Community Edition Update 3 w. Windows Kit 10.0.10240.0:用 于其C/C++编译器(而不是IDE)和SDK,选择该确定的版本是因为CUDA 8.0.61 所支持的Windows 编译器。 2.Anaconda (64-bit) w. Python 3.6 (Anaconda3- 4.4.0) [for Tensorflow support] or Python 2.7 (Anaconda2-4.4.0) [no Tensorflow support] with MKL:Anaconda 是一个开源的Python 发行版本,其包含了conda、Python、NumPy、SciPy 等180 多个科学包及其依赖项,是一个集成开发环境。MKL 可以利用CPU 加速许多线性代数运算。

windows平台的SIP服务器软件

windows平台的SIP服务器软件: SIP Server 2008 Sipsoft SIP Server 2008是一个SIP代理服务器(SIP Proxy)和注册服务器(Registrar)和计费服务器. 它注册和验证用户,同时路由两个SIP用户终端(SIP UAs)之间的呼叫请求. 这个产品自带NAT穿越功能,呼入/呼入域管理和灵活的计费功能、支持多种费率,预扣话费,用户银包预存等功能,支持操作系 统 Microsoft Windows XP/2000/2003. 简单的安装与设置基于Web的管理工具支持媒体NAT穿越兼容通用的第三方SIP产品和服务高可伸缩性、稳定性、可靠性支持用户银包预存话费支持多种计费费率 1.持在单一银包账户上实时多路并发计费 详细特性: 注册服务 ( Registrar Service )Dormice SIP Server 接收到从SIP用户终端(SIP UA)发来的注册请求后,会适当的更新注册数据库. 使用注册功能,你能接收到其它任何SIP用户使用你的 SIP-URI发来的呼叫请求。 呼叫路由 ( Call Routing ) Dormice SIP Server 将路由从SIP用户终端(SIP UA)或其它服务器发来的SIP请求,必须将SIP-URI转换成注册数据库中的IP地址,同时,Dormice SIP Server 也支持将被叫用户的响应转回给主叫SIP终端。 NAT穿越 ( NAT Traversal ) Dormice SIP Server 可以通过该功能,使在防火墙下的两个SIP 用户终端,穿越防火墙,以达到正常通讯。 呼入域管理(Upper/Thru Registration)呼入域管理允许轻松的设置,使其它Sip 服务器接入到本服务器中。这样会使SIP服务器之间串联,转发请求成为可能。 验证 ( Authentication ) 提供对注册或呼叫请求,进行身份验证功能,你能良好的限制只有合 法用户才能通过Dormice SIP Server进行呼叫。

相关主题