hero4-webcam
Turn a GoPro HERO4 Black into a plug-and-play USB webcam, with no HDMI capture card and no app on the computer.
- Custom firmware
- Stable
- High brick risk
- Reversible
This project hasn't been claimed by its maintainer yet, so its details come from the community. Is it yours? Claim it
GoPro HERO4 Black as a plug-and-play USB webcam (1920x1080 or 1280x720 at 29.97 fps, full sensor readout), microphone (48 kHz stereo) and USB Ethernet. No capture card, no app on the computer, and now no SD card needed after setup.
Prebuilt: no Docker needed. Everything is built except the firmware: GoPro's code isn't ours to share, so patch_firmware.py makes the patched image from your own copy of the official v05.00.00 UPDATE.zip. It accepts only that exact file, and writes the result only if it matches the tested image byte for byte (SHA-256 2c0eca6d…).
What's new since v1.2.0
- Runs without the SD card. The card is only needed to install. Put an empty
h4/installon the card and turn the camera on once: the webcam files (~3 MB) are copied to the camera's internal flash, MD5-checked, and the result goes toh4_install.log. From then on the camera works with the card out (it appears ~10 s later than with a card).- How: Linux comes back from a hibernation image on every power-on, and the startup scripts after the hibernation point run every time. The patch adds one line to one of them (
S65gopro2, same commands otherwise) that starts the webcam from internal flash. RTOS code untouched. - A card with
h4.shstill takes precedence, so updating and testing work as before.h4/uninstallremoves the internal copy.
- How: Linux comes back from a hibernation image on every power-on, and the startup scripts after the hibernation point run every time. The patch adds one line to one of them (
Install
- Download GoPro's v05.00.00 update: https://device-firmware.gp-static.com/13/HD4.02/camera_fw/05.00.00/UPDATE.zip
- Download and unzip
hero4-webcam-v1.3.0.zip, then:python3 -m pip install lzallright python3 patch_firmware.py UPDATE.zip /path/to/sdcard - Copy
h4.shand theh4folder to the root of the card, put it in the camera and turn it on. It updates itself. Afterwards, deleteUPDATE/from the card. - Optional, to run without the card: create an empty
h4/installon the card and turn the camera on once more.
Upgrading from v1.2.0 / v1.1.0: replace h4.sh and h4/ on the card (works on the older images with the card in), and flash the new image to run without the card.
Full instructions, options and how to undo: README. How it was found: docs/findings.md.
Assets
hero4-webcam-v1.3.0.zip: card files (h4.sh,h4/: kernel modules,h4uvc,h4csi) plus the firmware patcher. No GoPro code.faad2-2.11.4.tar.gz: source of the faad2 statically linked intoh4uvc(GPL-2.0). Code from FAAD2 is copyright (c) Nero AG, www.nero.com.
Risk: this flashes modified firmware to your camera. It worked on ours, but a bad flash can brick a camera, and modified firmware may void the warranty. Use at your own risk. Not affiliated with or endorsed by GoPro.
Before you start
- How hard is it?
- HardUses the command line or developer tools.
- What you need
- A USB or MIDI cable
- Comfort with the command line
- A computer
- An SD card or USB stick
- Can it break my device?
- Could leave your device unusable. It may void your warranty.
- Can I undo it?
- Yes. You can go back to the official software.
Did it work for you?
Did hero4-webcam v1.3.0 work on your GoPro HERO4 Black?
No reports yet for v1.3.0.
One-tap reports from owners. Bricked reports are checked before they count.
Compatibility
Devices: GoPro HERO4 Black.
No compatibility information yet.
Getting started
From the project's README ("Install (prebuilt)"):
The releases have everything built except the firmware: GoPro's code isn't ours to share, so the patcher makes it from your own copy of the official update.
Download GoPro's v05.00.00 update for the HERO4 Black, and keep a copy on another card. The patcher checks its SHA-256 (1d88f5dd…124ac7e) and refuses anything else:
https://device-firmware.gp-static.com/13/HD4.02/camerafw/05.00.00/UPDATE.zip
Download hero4-webcam-.zip from the latest release and unzip it.
Patch the firmware onto the card. This writes UPDATE/ on it, and only if the result is byte-for-byte the image we flashed and tested (SHA-256 2c0eca6d…):
python3 -m pip install lzallright
python3 patchfirmware.py UPDATE.zip /Volumes/SDCARD
Copy h4.sh and the h4 folder from the release to the root of the card.
Flash and use it: steps 4 and 5 below.
Risk and recovery
- Brick risk
- High
- Reversible
- Yes
- Voids the warranty
- Yes
- Requires opening the device
- No
From the project's README ("Undo"):
- Without reflashing: delete h4.sh from the card. The hook does nothing without it, and the camera behaves like stock. If you installed to internal flash, first put h4/uninstall on the card and turn the camera on once.
- Back to stock firmware: put the official UPDATE.zip contents in UPDATE/ on the card and update the same way. The camera accepted a same-version image for the patch, so this should work, but we haven't tested it.
- Bricked camera: evilwombat/gopro-usb-tools can boot a HERO4 Black/Silver through the SoC's USB recovery mode (experimental).
Releases
| Version | Name | Released |
|---|---|---|
| v1.3.0 | v1.3.0: no SD card neededLatest | 7 October 2026 |
| v1.2.0 | v1.2.0: full sensor readout | 7 October 2026 |
| v1.1.0 | v1.1.0: 1080p, microphone hang fixed | 6 October 2026 |
| v1.0.0 | — | 6 October 2026 |
Credits, license and support
- License
- GPL-2.0