Skip to content

Instantly share code, notes, and snippets.

@markjenkins
Created April 1, 2022 02:38
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save markjenkins/039040b4ed3a8cbb14156f4e3b409d92 to your computer and use it in GitHub Desktop.
Save markjenkins/039040b4ed3a8cbb14156f4e3b409d92 to your computer and use it in GitHub Desktop.
While connected to a PC without drivers (such as GNU/Linux) over USB, the GoPro sets itself up as a USB Ethernet card and runs a DHCP server to assign your PC an address. Doesn't mess with my default route, so regular path to the internet still works. In my case the GoPro assigned me 172.23.177.54 and nmap helped me discover the GoPro was on 172.23.177.51.
I had to ask the GoPro to start streaming by visiting http://172.23.177.51/gp/gpWebcam/START?res=1080p
the result returned JSON with
{
"status": 2,
"error": 0
}
After that the gopro starts transmitting video packets over UDP. Can see them in VLC with url udp://@:8554 . There's a way to format the url to only allow incoming UDP from the relevant IP, but I never managed to master that in VLC. A complication is that these are IP broadcast packets and not regular IP/UDP packets with a standard source and dest ip
In obs-studio, messing around with the VLC source stuff was not fruitful, but things became awesome once I added a media source, unchecked local file and this allowed me to include a network media source with url udp://172.23.177.255:8554
From what I've read, I can also ditch the USB cable and ask this thing to join a wifi network and get it to start broadcasting UDP packets there
hmmm, the gopro hero 9 is very much an internet of things device, what could possibly go wrong
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment