Intermittent black video footage with Arducam USB cameras on Khadas VIM3 using FFMPEG

Hey everyone — hoping someone here has run into this before. We’re running a few Arducam USB (UVC) camera modules strapped to head mounts on test subjects for some video data collection experiments. The host device is a Khadas VIM3 running a Linux distro, and we use FFMPEG to record the video streams.

We’ve been doing this for a couple of months now, and we keep hitting this weird intermittent failure: sometimes a recording that lasts several minutes comes out as entirely black video — just a solid black frame the whole way through. No error messages from FFMPEG, no dropped frames reported, file size looks normal, but the content is just… black.

We’re being super careful not to shake the cameras or tug on the USB cables during the sessions, so I don’t think it’s a physical connection dropout in the middle of recording. But the issue keeps coming back.

Wondering if this points to the camera modules themselves, something flaky with the VIM3’s USB stack, or maybe an FFMPEG quirk with UVC sources? Anyone seen anything like this?

Thanks for the detailed description. That does sound frustrating, especially with it being intermittent.

Before we dive into deeper troubleshooting, could you share which specific Arducam camera models you’re using? And a few more details about your setup would help a lot:

  • What Linux kernel version is running on the Khadas VIM3?
  • Which FFMPEG command / parameters are you using for the recording?
  • How many cameras are running simultaneously during a session?
  • Are all three camera models showing the black frame issue, or is it only happening on certain ones?

If you can post the exact FFMPEG command line and maybe a snippet of v4l2-ctl --list-formats-ext output for one of the cameras, that’d give us more to go on.

Sure thing. The three models we have in rotation are:

  • UB0240
  • B0520
  • B0268

All of them have produced black recordings at one point or another, so it doesn’t seem isolated to a particular model.

For the environment:

  • Khadas VIM3, kernel 4.9.241 (it’s the stock image they shipped with)

  • Recording one camera at a time per session typically, though we’ve experimented with two simultaneously

  • FFMPEG command is pretty straightforward — something like:

    ffmpeg -f v4l2 -input_format mjpeg -video_size 1920x1080 -framerate 30 -i /dev/video0 -c:v copy -t 600 output.mkv

    (We’ve also tried raw YUYV at lower resolutions, same problem.)

The cameras are mounted on a headband, cable is strain-relieved, we don’t move around much during recording. I’ve also tried swapping USB ports and cables — no obvious pattern.

I’ll grab the v4l2-ctl --list-formats-ext output when I’m back in front of the board and post it here.

Appreciate the extra detail. So we spent some time here on our side testing all three models — UB0240, B0520, B0268 — on a Linux box using qv4l2 as the capture/viewer tool rather than FFMPEG. We ran extended capture sessions with each camera, and none of them produced black frames or froze up. They all streamed normally the entire time.

That doesn’t rule out the cameras entirely, but it does suggest the hardware itself is probably fine.

The next step I’d recommend is to try reproducing the issue on your own Khadas VIM3 but using qv4l2 instead of FFMPEG. This will help us figure out whether the black frame problem is tied specifically to FFMPEG’s V4L2 handling, or if it’s something lower-level (kernel / USB / UVC driver on the VIM3).

You can install qv4l2 with:

sudo apt install qv4l2

Then launch it, select the camera device, and try capturing a few multi-minute test recordings from the “Capturing” tab. Let us know if you see the black frame issue there too, or if it only shows up through FFMPEG.