4K recording fails on Raspberry Pi with Arducam Owlsight camera: 'failed to start output streaming'

Hey everyone, I’m trying to record 4K video with an Arducam Owlsight (OV64A40 sensor) on a Raspberry Pi but it keeps failing. I’m running libcamera-vid at 3840x2160, 12fps, and I just get this error:

ERROR: *** failed to start output streaming ***

Camera works fine for stills and preview, just can’t seem to record video at this resolution. Anyone run into this? Is this a driver issue with the ov64a40?

Could you share a bit more about your environment? Things like:

  • Which libcamera version are you on?
  • What pipeline handler and tuning file is being used?
  • What does your config file look like?

Also, can you run the command with verbose logging so we can see the mode selection and stream negotiation? Something like:

LIBCAMERA_LOG_LEVELS=*:DEBUG libcamera-vid --width 3840 --height 2160 --framerate 12 -o test.h264 -v

That should dump a lot of useful info.

Sure, here are the details:

Device: Raspberry Pi (hostname: raspberrypi)
Camera: Arducam Owlsight, sensor path /base/soc/i2c0mux/i2c@1/ov64a40@36
libcamera version: v0.5.2+125-69c6546d-dirty (2025-09-12T07:28:55BST)
Pipeline handler: rpi/vc4
Tuning file: /usr/share/libcamera/ipa/rpi/vc4/ov64a40.json
Config: /usr/share/libcamera/pipeline/rpi/vc4/arducam_64mp.yaml
Unicam: /dev/media2, ISP: /dev/media0

I ran with debug logging. Here’s what I’m seeing during mode selection:

Here’s the mode selection output — libcamera scores the available modes for 3840:2160:12:P:

SBGGR10_CSI2P,1920x1080/0 - Score: 7000
SBGGR10_CSI2P,2312x1736/0 - Score: 6241.94
SBGGR10_CSI2P,3840x2160/0 - Score: 1000
SBGGR10_CSI2P,4624x3472/0 - Score: 2861.94
SBGGR10_CSI2P,8000x6000/0 - Score: 4333.33
SBGGR10_CSI2P,9248x6944/0 - Score: 4885.94

Then it configures the streams:

configuring streams: (0) 3840x2160-YUV420/Rec709 (1) 3840x2160-SRGGB10_CSI2P/RAW

And sensor/Unicam format:

Sensor: /base/soc/i2c0mux/i2c@1/ov64a40@36 - Selected sensor format: 3840x2160-SRGGB10_1X10/RAW
Selected unicam format: 3840x2160-pRAA/RAW

Then it just dies with:

ERROR: *** failed to start output streaming ***

Also noticed these in the logs:

  • Overriding H.264 level 4.2
  • Preview windows get created (X/EGL and DRM) but then “Preview window unavailable”

So it looks like the sensor and Unicam are happy with 4K, but something downstream breaks. Any ideas?

Thanks for the detailed logs — that really helps narrow things down.

The key clue here is Overriding H.264 level 4.2. The sensor and libcamera pipeline are actually doing their job correctly: the OV64A40 sensor is producing a 3840x2160 RAW stream, Unicam is accepting it, and the ISP path is set up. The problem is the H.264 hardware encoder on the Pi.

The Raspberry Pi’s dedicated hardware H.264 encoder has a hard limit — it simply does not support encoding video at resolutions higher than 1080p. This isn’t a camera driver bug or a libcamera issue, it’s a well-known silicon limitation of the Broadcom SoC. The Overriding H.264 level 4.2 message is the system trying to push the encoder past its normal bounds, but it still can’t handle the 4K frame size.

So to summarize:

  • The Arducam Owlsight / OV64A40 and libcamera are fully capable of streaming 4K data
  • The bottleneck is exclusively the Pi’s on-board H.264 encoder, which tops out at 1080p

Your options:

  • For video recording, stick to 1080p or below — the hardware encoder can handle that fine
  • For still images, you can capture full 4K (3840x2160) without any issues using libcamera-still

If you absolutely need 4K video on this platform, you’d have to look into software encoding (like libx264 via ffmpeg) using the raw camera stream, but performance on a Pi will be… not great.

Ah, that makes sense. I was going crazy thinking it was a driver problem. Bummer about the hardware limit though.

So if I drop down to 1080p, what’s the max framerate I can expect with this same setup? Can it do 60fps at 1080p or is there another bottleneck I should know about?

With this particular camera (Arducam Owlsight / OV64A40) on the Raspberry Pi, the maximum you’ll get at 1080p is 30fps. The hardware H.264 encoder can sustain 30 frames per second at 1080p with this sensor’s output format, but it won’t go higher — the encoder just runs out of throughput past that point.

So your working video recording parameters would be:

libcamera-vid --width 1920 --height 1080 --framerate 30 -o output.h264

At 30fps 1080p you should be hitting the sweet spot of what the Pi’s encoder can handle with this camera. Let us know how it goes!