JMF(三) 之 视频捕获

本文介绍了使用Java Media Framework(JMF)进行视频捕获的过程,特别是在Windows环境下与Video for Windows (VFW) API的交互。通过JMF识别并利用VFW设备,如Microsoft WDM Image Capture (Win32),创建Player,实现视频的捕获和显示。详细步骤包括创建DataSource、Player、Processor,并展示了如何将视频显示在界面上。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

视频的捕获与音频的捕获很类似。

      创建 Player 有两种方式:MediaLocator的实例作为参数或者使用 DataSource的实例作为参数。

先用DataSource的实例作为参数来创建Player:

    视频采集,必须要有视频采集设备,在安装JMF后,Registry中 Detect Capture Devices以后,可以发现在Capture Devices多了一个设备名称:vfw:Microsoft WDM Image Capture (Win32):0。

  什么是vfw?

   VFW Microsoft公司为开发Windows平台下的视频应用程序提供的软件工具包,提供了一系列应用程序编程接口(API),用户可以通过它们很方便地实现视频捕获、视频编辑及视频播放等通用功能,还可利用回调函数开发更复杂的视频应用程序。

 JMFVFW的关系:

    只要是vfw开头的设备信息,就能为JMF架构识别并加以使用。可以编写代码来识别此设备。

CaptureDeviceInfo capturedeviceInfo = CaptureDeviceManager.getDevice("vfw:Microsoft WDM Image Capture (Win32):0");

MediaLocator mediaLocator = capturedeviceInfo.getLocator();

DataSource source = Manager.createDataSource(mediaLocator);

DataSource cloneSource = Manager.createCloneableDataSource(source);

Player player = Manager.createRealizedPlayer(((SourceCloneable) cloneableSource).createClone());

FormatControl formatControl = (FormatControl)player.getControl("javax.media.control.FormatControl");

Format defaultFormat = formatControl.getFormat();

FileTypeDiscriptor outputType = new FileTypeDiscriptor(FileTypeDescriptor.MSVIDEO);//定义媒体输出类型

ProcessorModel processorModel = new ProcessorModel(cloneSource,new Format[]{defailtFormat},outputType);//数据媒体格式转换

Processor processor = Manager.createRealizdProcessor(processorModel);

至此处理器创建完毕,

怎样把视频显示出来那?

通过Component visualComponent = player.getVisualComponent();获得player的可是组件,

将其添加到面板中即可,显示出视频。

ok,程序写完了,测试:

  

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值