OBS: Fixing the GoPro Hero 9 webcam problems

One of the cool new features of the GoPro Hero 9 is that you can use it as a 1080p webcam. Sadly, the out-of-the-box experience is glitchy and way too unreliable to use for a serious project, but you can fix it with the right setup and more $$.

Problems with USB webcam mode

GoPro offers a 'Web desktop utility' programme that lets you use the Hero 9 as a USB webcam. TLDR: It kind of works but there are some problems:

  • The software is pretty buggy and painful to use.
  • There is substantial lag, so if you want to use it for video conferencing your mouth will be way out of sync with the audio if you are using a separate microphone.
  • The colours output is not that great.
  • Camera randomly locks up sometimes, which can only be resolved by pulling the battery out.
  • Periodically the frame rate will drop substantially, making movement look very jerky, before recovering after a few moments.

Media mod is an improvement, but expensive

The Media Mod is an expensive (~$80) cage with HDMI and USB-C ports. Connect the GoPro to your computer via a cheap ($10) HDMI-to-USB capture card, and you get a much better colour profile, and a lot less lag than USB mode, at about 250 ms. But there are still problems:

  • If connected to your computer via USB to keep the battery charged, the camera will shut down periodically while in use, even with auto power off disabled. This seems to be an overheating issue.
  • With USB connected the camera will sometimes randomly turn on.
  • Insert the cables before turning the camera on, otherwise it may not charge or it may lock up.
  • Sometimes the output starts randomly flickering.

Work arounds

Happily these problems are fixable, with a bit of work:

  • Syncing the audio/video for video conferencing: Don't try to fix it. There is a small amount of lag but it is not terrible, so just tap into the camera as a USB video device directly in your video conferencing software. If you feed it through the OBS virtual camera you will increase the lag substantially, to a point where it will be noticeable (see below).
  • Syncing the audio/video for recording: I input both the GoPro and my external microphone to OBS studio, with a 300 ms sync offset added to the mike input via 'advanced audio properties'. This allows me to output a synchronise audio/video signal for streaming and local recordings. Unfortunately you can't use this to sync output to video conferencing software as the OBS virtual camera does not carry audio.
  • Fixing unwanted shutdowns: Take the battery out! Your GoPro can run indefinitely without it, so long as you keep the media mod plugged in to a USB power source. A computer USB port should be sufficient, so long as it has enough output (not all USB ports are equal).
  • Fixing flickering output: Try a different USB port. Even though my capture card is only USB 2.0, attaching it to a USB 3.0 port stopped the problem. No idea why.
  • Fixing cyclical frame rate drop and stuttering: Right click your camera source in OBS, select 'Properties' and enable buffering. This removes the FPS drop for me but does increase lag to around 300 ms. The lag seems variable from run to run, which makes it very difficult to pin down a precise sync offset (see above). If necessary - adjust your GoPro settings to HVEC only (not HVEC + H.264). The question is, why is this necessary? My PC is high end (5950x + 6800XT), and since buffering works the data is clearly being delivered to OBS from the camera. So why can't it keep up?

So there you go. Annoying, but the payoff is being able to dual use your GoPro as a very good looking 1080p webcam. You also have to configure the settings to make it look its best, but have a look at Danny Black's Hero 9 best webcam settings video.