How to stream from a GoPro camera

Konrad Iturbe
2 min readDec 31, 2016

--

If you’re familiar with GoPro cameras, you will know there’s a feature that allows anyone to see the what their camera is seeing via an app installed 0n their smartphone.

All GoPro cameras that have WiFi functionality have the live feature, only cameras that don’t are the HERO (2014) and HERO HD (2010).

Being able to stream from your GoPro to your computer is a very requested feature, that is, you can save your feed, use it for restreaming to somewhere else or just integrating GoPro with your exisiting work without needing a HDMI capture device.

On HERO2, HERO3 and HERO3+ cameras the live feed was a m3u8 file (Apple’s HLS stream) which had to be kept alive using a HTTP command. On HERO4 it changed to a UDP stream (udp port 8554, ip 10.5.5.100), the HERO5 still uses an UDP protocol to stream the feed, I doubt GoPro will change it in the future. With many configurations for streaming I decided to make a python script that will display/save/restream the GoPro feed. Enter GoProStream:

This tool allows you to see what your GoPro is seeing in real time from your computer and also save it to your hard drive. It works for all GoPro cameras so there’s no need to download separate scripts.

It will adjust to the feed resolution (for instance, HERO5 uses 864x480 for 16:9 resolutions and 640x480 for photos (4:3), thats double the stream resolution of HERO4).

GoProStream streaming from HERO4 Black.

The resolutions depend a lot on the camera.

HERO5 Black: 864x480 for 16:9 and 640x480 for 4:3

HERO4 Black and lower: 432x240 for 16:9 and 320x240 for 4:3

The script has 2 modes:

Preview mode (SAVE=False):

In Preview mode, the script shows a preview window and does not save to a file. It will have the same lag as the Capture GoPro app.

Save mode (SAVE=True):

In Save mode, the script will just save the stream to a file that you need to specify in the script.

You’ll need to adjust the parameters in line 26.

You can get the script here.

--

--