Video Capture on RaspberryPI4 with Manjaro Arm

Lots of people still having issues with Video Capture, the solution at least on linux is not far away, even on exotic systems such as Manjaro Arm (64 bit OS) on RaspberryPI4. Here’s proof:-

Now first of all you need use the latest beta version of Video library. Then you need establish the name of your camera which can do using this test capture sketch:-

import processing.video.Capture;

String[] cameras;
Capture cam;

void setup(){
    size(960, 720);
    cameras = Capture.list();
    startCapture(cameras[0]);
    PFont font = createFont("DejaVu Sans", 28);
    textFont(font, 28);
  }

  void startCapture(String cam_string){
    // NB: camera should be initialised as follows
    cam = new Capture(this, width, height, cam_string);
    cam.start();
  }

  void draw(){ 
    cam.read();
    set(0, 0, cam);
    fill(255);
    rect(0, height - 80, width, 50);
    fill(0);
    text(cameras[0], 30, height - 50);
  }

Or similar, you will need to use that name in your regular video sketches thereafter, it is not sufficient to just give size values.

new Capture(this, width, height, "UVC Camera (046d:0825)");

For Manjaro Arm you need to install Sam Pottingers latest development version of Processing4 and the correct version of java (one supplied is x86-64 not aarch64 as required see my post on Processing in style with Java 11. Interestingly the version of gstreamer on current Manjaro Linux is 1.16.2 (somewhat ahead of the RaspberryPI OS 1.14.4). Here is the Mirror example sketch:-

1 Like