Class Name



Datatype for storing and manipulating video frames from an attached capture device such as a camera. Use Capture.list() to show the names of any attached devices. Using the version of the constructor without name will attempt to use the last device used by a QuickTime program.


  • import*;
    Capture cam;
    void setup() {
      size(640, 480);
      String[] cameras = Capture.list();
      if (cameras.length == 0) {
        println("There are no cameras available for capture.");
      } else {
        println("Available cameras:");
        for (int i = 0; i < cameras.length; i++) {
        // The camera can be initialized directly using an 
        // element from the array returned by list():
        cam = new Capture(this, cameras[0]);
    void draw() {
      if (cam.available() == true) {;
      image(cam, 0, 0);
      // The following does the same, and is faster when just drawing the image
      // without any additional resizing, transformations, or tint.
      //set(0, 0, cam);


  • Capture(parent)
  • Capture(parent, device)
  • Capture(parent, width, height)
  • Capture(parent, width, height, fps)
  • Capture(parent, width, height, device)
  • Capture(parent, device, fps)
  • Capture(parent, width, height, device, fps)


  • parentPApplet, typically "this"
  • devicedevice name
  • widthwidth in pixels
  • heightheight in pixels
  • fpsframes per second


  • frameRate()Sets how often frames are read from the capture device.
  • available()Returns "true" when a new frame from the device is available to read.
  • start()Starts capturing frames from an attached device.
  • stop()Stops capturing frames from an attached device.
  • read()Reads the current frame of the device.