我正在尝试使用JMF(Java媒体框架)从视频捕获设备读取原始视频帧。
我已经成功地编写了“捕获”部分-使用
由创建的对象
经理
,我可以从网络摄像头显示实时视频。但是,我不知道如何创建自定义组件来访问实际帧。这可能是因为到目前为止
经理
创建了我需要的每个类实例。
我想首先编写一个显示视频的GUI组件。(我不熟悉AWT/Swing,但基于对其他GUI框架的了解,我想说的是从JPanel派生出来的东西,比如说,当发出重新绘制请求或有新帧可用时,JPanel会绘制视频。)我希望能够处理每一个新帧并在所有像素上循环x/y。我可以在我的设备上使用raw/RGB格式,但是从(比如)YUV自动转换不会有什么坏处。
加工机
或
数据池
在几个不同的地方。使用
加工机
数据池
似乎是一个更简单的选择,没有那么无用的抽象函数。然而,无论哪种情况,我都完全不知道如何:
a) 将组件连接到我的视频捕获数据源
我甚至可能走错了方向;我只是想记录我迄今为止所做的尝试。JMF文档似乎很少,而且主要面向[设计]媒体播放器和转换器。
注意:处理库似乎有一个简单的解决方案。我看到了一个例子,大致如下:
x = new Image(captureDevice.getFrame())
这似乎表明像素级的访问是可能的,通过图像,如果不是中间类型。
但我真的想先看看JMF有多难。