How to use a GoPro Hero 8’s firmware webcam mode in linux

GoPro Hero 8 Black in Webcam mode show in Google Meet on Ubuntu 18.04

I’m running Ubuntu 18.04.

1. Install v4l2loopback:

sudo apt-get install v4l2loopback-dkms

2. modprobe it:

sudo modprobe v4l2loopback devices=1 max_buffers=2 exclusive_caps=1 card_label="VirtualCam"

3. Plug in the GoPro with the latest firmware (tested with 2.01). I read that you need a USB3 cable so that’s what I used.

4. GoPro will come up as a network interface. For me its IP was:

172.20.179.51

You can nmap to find it:

nmap 172.20.179.1-254

5. Start an ffmpeg stream (note: I could only make ffmpeg work when the GoPro was stopped first):

ffmpeg -fflags nobuffer -f:v mpegts -probesize 8192 -i udp://0.0.0.0:8554 -f mpegts -vf format=yuv420p -f v4l2 /dev/video10

Your /dev/video device might be different for your v4l2loopback device.

6. Point your browser at 172.20.179.51/gp/gpWebcam/START or 172.20.179.51/gp/gpWebcam/START?res=720

You should see the GoPro switch into webcam mode on the front and back screens. If all went well, you’ll have a webcam called “VirtualCam” that will contain the stream.

7. Cycle the GoPro by going to: 172.20.179.51/gp/gpWebcam/STOP

Sadly, the latency isn’t very good (I’d guess around 300ms), so I’m not sure it’s all that useful. I tried the Windows beta with my camera and I watched a YouTube video of the official app on Mac, the latency seemed about the same in both cases.

Link:
Reddit post with GoPro details