编译JMDS

http://www.ohloh.net/p/jmds:

JMDS provides a Java wrapper around Microsoft's DirectShow Capture API's and exposes them as a Java Media Framework DataSource.

————————————————————————————————————————————————————————————————————

上面对JMDS项目做了简单介绍, JMDS为微软的DirectShow Capture API提供了Java包装,并把它们暴露为JMF的数据源。

网上一些资料说,JMF在Windows下使用VFW驱动(video for window,和DirectX里的DirectShow类似。一个是旧的一个是新的。) ,但是VFW驱动太旧了,

一些新的摄像头只支持WDM驱动,这种情况下,如果使用JMF就无法访问这些摄像头,而通过JMDS,就可以解决这个问题。同时通过jni调用DirectShow,对视频采集的性能提高亦有所期待,这个要实际测试一下。

由于JMDS的官方网站(https://jmds.dev.java.net/) 已无法访问,好在在

http://koders.com/info.aspx?c=ProjectInfo&pid=MD4HDXSSN4K3YGSFBGBLQ5ENEC&s=CLSID_SampleGrabber
找到一份源代码,不过需要重新编译。下面记录下这次编译的过程。

————————————————————————————————————————————————————————————————————

 软件:

vc6sp6

Microsoft® DirectX® 9.0 SDK Update (Summer 2004)

 Microsoft Platform SDK Febrary 2003版(传说中最后支持Visual C++ 6.0的PSDK版本)

jdk1.7.0_04
http://koders.com/info.aspx?c=ProjectInfo&pid=MD4HDXSSN4K3YGSFBGBLQ5ENEC&s=CLSID_SampleGrabber

—————————————————————————————————————————————————————————————————————

参考文章:

DirectShow环境配置及常见错误解决方案(基本上遇到的各种问题都可以在这里找到,本博客中有转载这篇文章)
http://hi.baidu.com/%B2%BB%B0%AE%B5%BD%B0%AE/blog/item/d99e944fbde6c53caec3ab78.html

如果出现的问题不再这篇文章里,那么照着文章仔细检查,很可能有的地方搞错了

关于dll文件的生成以及找不到jni.h的解决办法

 http://hi.baidu.com/liguanbin/blog/item/3c58f41c8e25b78c87d6b6dc.html/cmtid/99ffccd434c6100fa08bb712

首先是关于dll文件的生成:

方法如下:

打开VC++6.0,新建->; 工程 ->; win32 Dynamic-Link Library在向导中选择空工程

添加如用javah生成的头文件和自己写的一个cpp文件,然后编译运行,如果没有出现错误,既可以在编译成功的debug文件夹中找到dll文件,如果出现找不到jni.h的错误,那么用如下方法解决:

fatal error C1083: Cannot open include file: 'jni.h': No such file or directory
将以下文件:

\jdk\include\jni.h

\jdk\include\win32\jawt_md.h

\jdk\include\win32\jni_md.h

复制到Visual Studio.net的安装目录下的\Vc7\include目录中

如果是VC6.0,自己找相应的目录即可!

 整个工程已编译,Release目录下的dll可以直接用

——————————————————————————————————
傲轩游戏网
原文地址:https://www.cnblogs.com/cuizhf/p/2518990.html