在过去的2-3周里,我一直在寻找不同的方法来实现定制的视频流和更一般的视频捕捉和操作,通过DVR卡、视频捕捉卡之类的东西。
不知怎么的,JMF一直能避开我的视线,但是自从我发现了这件事后,我越来越确信这是我开始玩视频和其他东西的一个舒适的水平。
在我搜索更多信息的时候,我想到了一个主要的话题,那就是有很多人抱怨说,任何特定的相机(我认为他们指的是网络摄像机)都不能与JMF一起工作。虽然有很多不同的相机(不一定是一个网络摄像头)并不那么昂贵,我想玩它安全,并购买一个已证明与JMF良好的工作。
另外,由于缺乏经验,也许这是不相关的,但由于我将购买相机主要是为了学习和实验,我想有最大的自由,可能的混乱,不同的功能,选项等。
发布于 2012-11-23 00:40:17
我目前支持使用JMF将网络摄像机集成到基于Java的kiosk软件的遗留软件。
如果您正在学习,那么使用它是很整洁的,但是我强烈建议您不要在您计划的任何生产应用程序中使用它。以下是一些缺点:
它已经5年多没有激活了,这意味着在操作系统的未来版本中可能会出现兼容性问题,从而使其完全不兼容。此外,您可能遇到的任何错误都将永远不会被修复。
即使您遇到了一个bug,并且有足够的冒险精神尝试修复它,您也无法修复它,因为它是封闭的源,而且Oracle也不打算分发它。
这是一个令人痛苦的老问题,实际上只是Windows环境下的一个很好的解决方案。也许您希望在Mac或Linux上运行您的应用程序,但由于缺乏对这些应用程序的支持,它将不能很好地工作。
上
有许多二进制文件必须安装在客户端机器上才能正常工作,其他库不需要这样做。
知道所有这些,我会说,我已经尝试了JMF在大量的网络相机,集成和独立,它是完全兼容(在Windows上)。我从来没有遇到过一个摄像头,它无法识别或使用。
有一个FMJ项目,它是JMF的开源替代品,但是在我看来它有点错误,我很难让它正常工作。它似乎没有得到充分的介绍。
我的个人推荐是JavaCV。它是流行的OpenCV框架的开源Java包装器,它封装了媒体设备和硬件加速媒体的功能,允许在真正写一次、在任何地方运行的Java应用程序中轻松使用该功能。
不需要安装OpenCV,我就可以编写一个WebStart应用程序(当然有完全的权限),以便在多个操作系统上使用摄像头。不过,学习曲线要高一点。
尽管JMF易于入门,学习曲线也较低,但JavaCV是在Java应用程序中集成和捕获摄像头的最佳选择。
https://softwareengineering.stackexchange.com/questions/176868
复制相似问题