Skip to main content

Frequently Asked Questions (FAQ)

If you have somehow stumbled here first, note that there are specifications, demos, and tutorials which expand upon much of the information here. These can be found, among other places, from the home page.

Connectivity​

What is the distance from the camera that BLE will still work?

It is standard Bluetooth 4.0 range and it depends on external factors such as: Interference: anything interfering with the signal will shorten the range. The type of device that the camera is connected to: BT classification distinguishes 3 device classes based on their power levels. Depending on the class of the connected device, the range varies from less than 10 meters to 100 meters.

Can I connect using WiFi only?

Theoretically yes, if you already know the SSID, password, and the camera's WiFi AP has been enabled. However, practically no because BLE is required in order to discover this information and configure the AP.

Can I connect using BLE only?

Yes, however there is some functionality that is not possible over BLE such as accessing the media list and downloading files.

How to allow third-party devices to automatically discover close-by GoPro cameras?

Devices can only be discovered via BLE by scanning for advertising GoPro cameras.

Multi Camera Setups​

How many devices can connect to the camera?

Simultaneously, only one device can connect via WiFI at a time. There can be up to 4 simultaneous BLE connections.

Is there a way to connect multiple cameras on the same Wifi network?
What is the time offset between multiple cameras executing the same command?

This is not deterministic due to camera processing and network propagation variance. Best case synchronization accuracy can vary from 20 - 500 ms. There is an example script in the Python SDK to test this out with multiple cameras on various network types. In general, this is not a good solution for synchronization if you require more than 1 second accuracy. It is better to do this in post processing as described in the following section.

Is there a way to precisely time sync cameras so the footage can be aligned during post-processing?

The cameras set their time via GPS. By default, the camera seeks GPS at the beginning of every session, but this can be hindered by typical limitations of GPS signals. Additionally, there are two advanced options that require GoPro Labs firmware installed on the camera. The best bet is multi-cam GPS sync. Another option is precise time calibration via a dynamic QR scan from a smartphone or PC. Once synchronized, timing can then be abstracted and manipulated in post processing from the GPMF data.

Streaming​

What are the differences between the streaming options for GoPros?

There are currently 3 different options on how to stream out of GoPro cameras. They are available either via Wi-Fi, USB, or both.

Wifi: ViewFinder PreviewWifi: LiveStreamUSB: ViewFinder PreviewUSB: Webcam PreviewUSB: Webcam
OrientationFloating or FixedLandscape facing upFloating or FixedLandscape: Floating or FixedLandscape: Floating or Fixed
Streaming ProtocolsUDP (MPEG-TS)RTMPUDP (MPEG-TS)UDP (MPEG-TS), RTSPUDP (MPEG-TS), RTSP
Connection ProtocolWifi - AP ModeWiFi - STA ModeNCMNCMNCM
Resolution480p, 720p480p, 720p, 1080p480p, 720p720p, 1080p720p, 1080p
Frame Rate3030303030
Bitrate2.5 - 4 mbps0.8 - 8 mbps (configurable)2.5 - 4 mbps6 mbps6 mbps
StabilizationBasic StabilizationHyperSmooth or noneBasic StabilizationNoneNone
Image QualityBasicSame as recorded contentBasicBasicSame as recorded content
Minimum Latency210 ms>100ms (un-stabilized), >1100ms (stabilized)210 ms210 ms210 ms
AudioNoneStereoNoneNoneNone
Max Stream Time150 min (720p, full Enduro)85 min (720p, full Enduro)Unlimited (ext. power)Unlimited (ext. power)Unlimited (ext. power)
How to achieve low latency feed streaming onto displays?

The stream has a minimum latency of about 210ms. If you are seeing latency higher than that, we often find that as a result of using off-the-shelf libraries like ffmpeg which adds its own buffering. For preview and framing use cases, we don't recommend using the live streaming RTMP protocol because it adds unnecessary steps in the pipeline, and puts the camera in the streaming preset, which offers little other control. A low latency streaming demo is available in the demos.

How do I minimize latency of video preview with FFPLAY?

FFPLAY by default will buffer remote streams. You can minimize the buffer using:

  • --no-cache (receiving side)
  • -fflags nobuffer (sender)

However, the best latency can be achieved by building your own pipeline or ffmpegs library for decoding the bytes. Users should be able to achieve about 200-300 ms latency on the desktop and possibly optimize lower than that.

How to view the video stream in VLC?

To view the stream in VLC, you need to open network stream udp://@0.0.0.0:8554. You will still see latency because VLC uses its own caching.

Power​

What are the power requirements for GoPro if connected over USB?

All cameras have minimum power requirements, as specified here. As long as the power is supplied, cameras will be fully functional with or without an internal battery. Removing the battery and running on USB power alone will improve thermal performance and runtime.

If you are seeing issues with insufficient power and have a charger with correct specs, the problems likely stem from low quality cables or low-quality adapters that are not able to consistently provide advertised amperage. We have encountered USB-C cables manufactured with poor quality control that transfer enough power only when their connectors face one side up, but not the other. We recommend using only high-quality components that deliver the correct power output.

How to enable automatic power on and off in wired setups?

Cameras cannot be switched on remotely over USB, or "woken up" remotely after they "go to sleep". The best workaround for this is via the GoPro Labs firmware that forces the camera to automatically switch on as soon as it detects USB power and switch off when the powering stops. Refer to the WAKE command here.

Metadata​

Can I use the GPS track from the camera in real time?

No. The GPS track on the camera as well as other metadata is not available until the file is written and saved. If the objective is to add metadata to the stream, currently the only option is to pull GPS data from another device (phone, wearable, ...) and sync it to the video feed.

What can be accessed in the metadata file?

Metadata exists as a proprietary GPMF (GoPro Metadata Format) and can be extracted from the file via API commands separately for GPS, Telemetry data, or the entire metadata container. The following data points can be extracted:

  • Camera settings (Exposure time, ISO, Sensor Gain, White balance)
  • Date and Time
  • IMU: GPS, gyroscope, and accelerometer
  • Smile detection
  • Audio levels
  • Face detection in bounding boxes
  • Scene Classifiers (water, urban, vegetation, snow, beach, indoor)
Is there a way to change the file names or otherwise classify my video file?

Currently there are two options to do that, and both require GoPro Labs firmware. The stock firmware doesn't provide that option. With GoPro Labs installed, you can either inject metadata into the file (and extract it later with the GPMF parser) or use custom naming for the file.

Is there a way to add time stamps to the video files and mark specific moments?

Open GoPro users can add time stamped markers, called "Hilights", to flag specific moments in the video. Hilights can be injected into the video in the real time and then extracted for analytics or other post-processing purposes. The same Hilights are used in GoPro's auto-editing engine Quik to determine the most interesting moments in the video.

General​

Which cameras are supported by Open GoPro?

The answer at a high level is >= Hero 9. However, there are also certain firmware requirements. For a complete answer, see the Compatibility table.

How to get the remaining timelapse capability?

First check the value of Setting 128 (Media Format). Then depending on whether this is Photo or Video, use:

Camera Logic​

Do commands operate as priority-wise or time-related?

The cameras use first-in, first-out logic.

Is there an option to send the commands in cyclic format instead of sending requests for each command?

If you want to receive information asynchronously, it is possible via registering for BLE notifications. See an example (tracking battery) in the Python SDK.

Troubleshooting​

If you are able to consistently reproduce a problem, please file a bug on Github Issues.

Why is the camera not advertising?

If you have not yet paired to the camera with the desired device, then you need to first set the camera into pairing mode (Connections→Connect Device→Quick App). If you have already paired, then the camera should be advertising and ready to connect. If it is not advertising, it is possible you are already connected to it from a previous session. To be sure, power cycle both the camera and the peer device.

Workaround for intermittent Wifi AP Connection failure

On >= Hero 11, try disabling and then re-enabling the camera's Wifi AP using the AP Control BLE Command.

Known Issues

Relevant to All Supported Cameras​

Webcam does not enter idle mode once plugged in

The webcam status will be wrongly reported as IDLE instead of OFF after a new USB connection. The best workaround for this is to call Webcam Start followed by Webcam Stop after connecting USB in order to make the webcam truly IDLE and thus willing to accept setting changes.

Intermittent failure to connect to the cameras Wifi Access Point

On rare occasions, connections to the camera's Wifi AP will continuously fail until the camera is reset. It is possible to workaround this as described in Troubleshooting.

Spurious Protobuf Notifications sent once camera is connected in Station mode

Once the camera has been connected in station mode (STA), it will start sending protobuf notifications with action ID 0xFF. These should be ignored.

Media Info File Size is invalid over 32-bit max integers

See the Github Issue. To workaround this:

Hero 11 (v01.10.00) Specific​

Wired Communication is broken after update mode

This is fixed by Resetting Connections and then re-pairing.

Hero 13 (v01.10.00) Specific​

Webcam endpoints are broken

The following endpoints will always return 500 error status:

Camera is not discoverable via MDNS

The camera does not advertise the _gopro-web service.