こちらのライブラリがとても便利です。
https://github.com/sarxos/webcam-capture
使い方はこちら
youtube: Java Webcam Capture for Beginners#1 : Introduction and Capture webcam image with 3 lines of code
https://www.youtube.com/watch?v=2BHyL_XK8YQ
本気で三行から始められます。
キャプチャしてファイルに保存するサンプル
https://github.com/sarxos/webcam-capture/blob/master/webcam-capture/src/example/java/TakePictureExample.java
カメラ映像をライブでウインドウに表示するサンプル
https://github.com/sarxos/webcam-capture/blob/master/webcam-capture/src/example/java/WebcamPanelExample.java
おまけ
webcamの解像度を設定したいとき
Dimension[] nonStandardResolutions = new Dimension[] {
WebcamResolution.PAL.getSize(),
WebcamResolution.HD.getSize(),
new Dimension(720, 480),
new Dimension(1280, 720),
new Dimension(1000, 500),
};
などとしておいて
webcam.setCustomViewSizes(nonStandardResolutions);
webcam.setViewSize(new Dimension(1280, 720));
パネルに出るデバグ情報を消す
WebcamPanel panel = new WebcamPanel(webcam);
panel.setFPSDisplayed(false);
panel.setDisplayDebugInfo(false);
panel.setImageSizeDisplayed(false);
panel.setMirrored(false);
2つ以上カメラが接続されてる場合、任意のカメラを操作する
webcamnoに1とか2とか入れて
List<Webcam> webcams = Webcam.getWebcams();
//Webcam webcam = Webcam.getDefault();
Webcam webcam = webcams.get(webcamno);