【问题标题】:Setting the webcam resolution with Java (JMF)使用 Java (JMF) 设置网络摄像头分辨率
【发布时间】:2012-01-20 04:02:00
【问题描述】:

我正在使用 JMF 连接到 USB 连接的网络摄像头 (Logitech Quickcam Pro 9000)。该相机能够以最大 2MP 的速度传输视频,但是我无法将视频格式设置为高于 320x240 的任何内容。打印可用格式会给我这个结果:

MJPG, 320x240, Length=230400 0 extra bytes
YUV Video Format: Size = java.awt.Dimension[width=160,height=120] MaxDataLength = 38400 DataType = class [B yuvType = 32 StrideY = 320 StrideUV = 320 OffsetY = 0 OffsetU = 1 OffsetV = 3
YUV Video Format: Size = java.awt.Dimension[width=176,height=144] MaxDataLength = 50688 DataType = class [B yuvType = 32 StrideY = 352 StrideUV = 352 OffsetY = 0 OffsetU = 1 OffsetV = 3
YUV Video Format: Size = java.awt.Dimension[width=320,height=240] MaxDataLength = 153600 DataType = class [B yuvType = 32 StrideY = 640 StrideUV = 640 OffsetY = 0 OffsetU = 1 OffsetV = 3
YUV Video Format: Size = java.awt.Dimension[width=352,height=288] MaxDataLength = 202752 DataType = class [B yuvType = 32 StrideY = 704 StrideUV = 704 OffsetY = 0 OffsetU = 1 OffsetV = 3
YUV Video Format: Size = java.awt.Dimension[width=640,height=480] MaxDataLength = 614400 DataType = class [B yuvType = 32 StrideY = 1280 StrideUV = 1280 OffsetY = 0 OffsetU = 1 OffsetV = 3

MJPG, 160x120, Length=57600 0 extra bytes
MJPG, 176x144, Length=76032 0 extra bytes
MJPG, 352x288, Length=304128 0 extra bytes
MJPG, 640x480, Length=921600 0 extra bytes

这告诉我,我至少应该能够捕获 640x480,但我什至无法让它工作。我应该如何告诉 JMF 我要使用什么分辨率?

这是我现在的代码的摘录:

captureDeviceInfo = CaptureDeviceManager.getDevice(DEVICE_NAME);
Format[] formats = captureDeviceInfo.getFormats();
Format selectedFormat = null;
for(Format f : formats) {
    if(f.toString().contains("width=640,height=480")) {
        selectedFormat = f;
        break;
    }
}

try {
    mediaLocator = captureDeviceInfo.getLocator();
    DataSource videoDataSource = Manager.createDataSource(mediaLocator);
    player = Manager.createRealizedPlayer(videoDataSource);

    FormatControl fc = (FormatControl)player.getControl("javax.media.control.FormatControl");
    fc.setFormat(selectedFormat);

    player.start();

【问题讨论】:

    标签: java webcam resolution jmf


    【解决方案1】:

    仔细检查您想要的格式字符串。至少在我的机器上没有一个格式字符串包含“width=640,height=480”。当我循环浏览我支持的格式时,它们都以“RGB、640x480、长度=...”或“YUV 视频格式:大小=...”开始

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-03
      • 2010-11-01
      • 2011-10-02
      • 1970-01-01
      相关资源
      最近更新 更多