From 1af634e72093814105d932c323550f21dd5681f2 Mon Sep 17 00:00:00 2001 From: github-actions Date: Thu, 14 Sep 2023 20:15:04 +0000 Subject: [PATCH] Github Pages build from Action 55b324ae6c20f4d54ed4f7bda810228b2cc88c0b --- assets/js/lunr/lunr-store.js | 2 +- contribution.html | 32 ++-- demos/bash/ota_update.html | 6 +- demos/c_c++/GoProC_C++Demo.html | 6 +- demos/c_c++/GoProStreamDemo.html | 6 +- demos/csharp/GoProCSharpSample.html | 6 +- demos/csharp/webcam.html | 6 +- demos/python/multi_webcam.html | 6 +- demos/python/sdk_wireless_camera_control.html | 6 +- demos/swift/EnableWiFiDemo.html | 6 +- feed.xml | 2 +- index.html | 28 +-- sitemap.xml | 30 ++-- tutorials/ble-queries.html | 92 +++++----- tutorials/camera-media-list.html | 46 ++--- tutorials/connect-ble.html | 60 +++---- tutorials/connect-wifi.html | 58 +++---- tutorials/parse-ble-responses.html | 160 +++++++++--------- tutorials/send-ble-commands.html | 96 +++++------ tutorials/send-wifi-commands.html | 96 +++++------ 20 files changed, 376 insertions(+), 374 deletions(-) diff --git a/assets/js/lunr/lunr-store.js b/assets/js/lunr/lunr-store.js index 66796a8a..d063cf83 100644 --- a/assets/js/lunr/lunr-store.js +++ b/assets/js/lunr/lunr-store.js @@ -29,7 +29,7 @@ var store = [ }, { "title": "Open GoPro: ", - "excerpt": "Getting Started Open GoPro is an API for interacting with GoPro cameras that is developed and managed directly by GoPro. It provides developers and companies with an easy-to-use programming interface and helps integrate the cameras into their ecosystems. The API works with off-the-shelf cameras with standard firmware, is free-to-use under MIT license, and publicly available online on GitHub. Docs Detailed Bluetooth Low Energy (BLE) and HTTP Interface Specifications. BLE Specs → HTTP Spec → Tutorials Walk-through tutorials in different languages / frameworks for getting started. ✏️ Tutorials → Demos Complete runnable examples in different languages to use as base for your project. ⚙️ Demos → Compatibility Open GoPro API is supported on all camera models since Hero 9 with the following firmware version requirements: Camera Minimum FW Version Hero 9 Black v01.70.00 Hero 10 Black v01.10.00 Hero 11 Black v01.10.00 Hero 11 Black Mini v01.10.00 Hero 12 Black v01.10.00 While we strive to provide the same API functionality and logic for all newly launched cameras, minor changes are sometimes necessary. These are typically a consequence of HW component upgrades or improving or optimizing FW architecture. Therefore support for some functions and commands might be model-specific. This is described in the compatibility tables in the documentation. Interfaces Users can interact with the camera over BLE, WiFi, or wired USB. Both Wifi and USB are operated through HTTP server with identical commands. It is important to note that due to hard constraints of power and the hardware design, some commands in Wi-Fi are not available in BLE, and vice-versa. Bluetooth Low Energy (BLE) BLE is the fastest way to control the cameras and allow command and control functionality. BLE advertising is used for initial camera pairing. BLE is a requirement for any type of Wireless control since camera WiFi must be enabled upon each connection via BLE. WiFi WiFi needs to be switched on by a BLE command. Besides command & control, Wi-Fi also allows for video streaming and media manipulation. With the exception of live-streaming, the camera always acts as an Wi-Fi access point that other devices need to connect to. For more information, see the Wifi Specification USB The USB connection can provide both data transfer and power to the camera. The power provided by the USB is sufficient for the camera to run indefinitely without the internal battery. However, the wired connection doesn’t allow for programmatic power on and off. Camera needs to be switched on manually or via BLE, and after the camera goes to sleep, it must be “woken up” again with a button press or via BLE. For monitoring and other use cases where the camera must be operated and switched on and off only via USB cable, there is a workaround with the Labs firmware - more detail in the FAQ. Control Camera and Record Remotely Here is a summary of currently supported per-interface features: Feature BLE WiFi USB Retrieve Camera State ✔️ ✔️ ✔️ Change Settings / Mode ✔️ ✔️ ✔️ Encode (Press shutter) ✔️ ✔️ ✔️ Stream Video   ✔️ ✔️ Media Management   ✔️ ✔️ Metadata Extraction   ✔️ ✔️ Camera Connect / Wake ✔️     BLE, WiFi, and USB can be used to change settings and modes, start and stop capture, query remaining battery life, SD card capacity, or camera status (such as “is it recording?”).  Most command-and-control functionality is disabled while the camera is recording video or is otherwise busy. There are 3 main recording modes for the cameras: photo, video, and timelapse. Within each mode, one can choose different frame rates, resolutions and FOV options. Note that not all cameras have all 3 recording modes, not all settings combinations are available for all camera models. The specification section links to json and xls files that show all available setting combinations per camera model. Stream Video Besides recording, the cameras can also stream video feed. The API provides 3 different ways to stream videos directly from the cameras, either via USB or wireless connection. Stream Type Description WiFi USB Record while Streaming : Preview : Moderate video quality, primarily for framing     >= Hero 12 Stream Low latency stabilization ✔️ ✔️ \\   Low power consumption       : Webcam : Cinematic video quality     \\ Mode Optional low latency stabilization ✔️ ✔️   : Live : Cinematic video quality     \\ Stream Optional hypersmooth stabilization ✔️   ✔️ Each of the streaming types has different resolutions, bit rates, imaging pipelines, and different levels of configurability. Refer to the FAQ. Manipulate and Transfer Media Files When the camera records video, time lapse, or photo, the media is saved on the SD card with filenames according to the GoPro File Naming Convention. The cameras always record two versions of each video file Full resolution based on the selected settings (.mp4) Low resolution video proxy (.lrv) that can be used for editing or other operations where file size matters. The lrv file type can be renamed to mp4 and used for playback or further editing. Both versions exist in the same folder on the SD card. In addition, the cameras generate a thumbnail image (.thm) for each media file. The thm file type can be changed to jpeg if required. All three file types can be accessed, deleted, or copied via API commands. Extract Metadata GoPro cameras write metadata in each file, using a proprietary GPMF format. The metadata contains information including gyroscope, accelerometer, GPS, imaging-specific metadata, and several computed metrics such as scene classification. The metadata file cannot be edited or read while the camera is recording but can be accessed after the file has been written either entirely or selectively for a specific metric such as GPS. Use Multiple Cameras Simultaneously Controlling multiple cameras from one client is supported via BLE, Wifi, and USB with varying functionality depending on the protocol used. Refer to the table below. Protocol Available Functionality Notes BLE Command and control of several cameras Each camera can connect only to one BLE-enabled device at a time WiFI Command and control and live-streaming (RTMP) RTMP stream must be initiated via BLE USB Command and control and streaming via Webcam mode Available only from HERO11 onward Use GoPro Cloud and Editing Engine The GoPro ecosystem includes a multitude of ways to edit, store, and replay content which are currently available for end-users as a part of paid subscription programs. Even when integrated into your ecosystem, GoPro cameras can take advantage of cloud backup and editing tools provided by GoPro including auto-upload to the cloud, automatic editing, and native live streaming. The GoPro cloud interface has been tailored to the needs of individual consumers. If you are interested in commercial usage, reach out to our business development team.", + "excerpt": "Getting Started Open GoPro is an API for interacting with GoPro cameras that is developed and managed directly by GoPro. It provides developers and companies with an easy-to-use programming interface and helps integrate the cameras into their ecosystems. The API works with off-the-shelf cameras with standard firmware, is free-to-use under MIT license, and publicly available online on GitHub. Docs Detailed Bluetooth Low Energy (BLE) and HTTP Interface Specifications. BLE Specs → HTTP Spec → Tutorials Walk-through tutorials in different languages / frameworks for getting started. ✏️ Tutorials → Demos Complete runnable examples in different languages to use as base for your project. ⚙️ Demos → Compatibility Open GoPro API is supported on all camera models since Hero 9 with the following firmware version requirements: Camera Minimum FW Version Hero 9 Black v01.70.00 Hero 10 Black v01.10.00 Hero 11 Black v01.10.00 Hero 11 Black Mini v01.10.00 Hero 12 Black v01.10.00 While we strive to provide the same API functionality and logic for all newly launched cameras, minor changes are sometimes necessary. These are typically a consequence of HW component upgrades or improving or optimizing FW architecture. Therefore support for some functions and commands might be model-specific. This is described in the compatibility tables in the documentation. Interfaces Users can interact with the camera over BLE, WiFi, or wired USB. Both Wifi and USB are operated through HTTP server with identical commands. It is important to note that due to hard constraints of power and the hardware design, some commands in Wi-Fi are not available in BLE, and vice-versa. Bluetooth Low Energy (BLE) BLE is the fastest way to control the cameras and allow command and control functionality. BLE advertising is used for initial camera pairing. BLE is a requirement for any type of Wireless control since camera WiFi must be enabled upon each connection via BLE. WiFi WiFi needs to be switched on by a BLE command. Besides command & control, Wi-Fi also allows for video streaming and media manipulation. With the exception of live-streaming, the camera always acts as an Wi-Fi access point that other devices need to connect to. For more information, see the Wifi Specification USB The USB connection can provide both data transfer and power to the camera. The power provided by the USB is sufficient for the camera to run indefinitely without the internal battery. However, the wired connection doesn’t allow for programmatic power on and off. Camera needs to be switched on manually or via BLE, and after the camera goes to sleep, it must be “woken up” again with a button press or via BLE. For monitoring and other use cases where the camera must be operated and switched on and off only via USB cable, there is a workaround with the Labs firmware - more detail in the FAQ. Control Camera and Record Remotely Here is a summary of currently supported per-interface features: Feature BLE WiFi USB Retrieve Camera State ✔️ ✔️ ✔️ Change Settings / Mode ✔️ ✔️ ✔️ Encode (Press shutter) ✔️ ✔️ ✔️ Stream Video   ✔️ ✔️ Media Management   ✔️ ✔️ Metadata Extraction   ✔️ ✔️ Camera Connect / Wake ✔️     BLE, WiFi, and USB can be used to change settings and modes, start and stop capture, query remaining battery life, SD card capacity, or camera status (such as “is it recording?”).  Most command-and-control functionality is disabled while the camera is recording video or is otherwise busy. There are 3 main recording modes for the cameras: photo, video, and timelapse. Within each mode, one can choose different frame rates, resolutions and FOV options. Note that not all cameras have all 3 recording modes, not all settings combinations are available for all camera models. The specification section links to json and xls files that show all available setting combinations per camera model. Stream Video Besides recording, the cameras can also stream video feed. The API provides 3 different ways to stream videos directly from the cameras, either via USB or wireless connection. Stream Type Description WiFi USB Record while Streaming : Preview : Moderate video quality, primarily for framing     `>=` Hero 12 \\ Stream Low latency stabilization ✔️ ✔️ \\   Low power consumption       : Webcam : Cinematic video quality     \\ Mode Optional low latency stabilization ✔️ ✔️   : Live : Cinematic video quality     \\ Stream Optional hypersmooth stabilization ✔️   ✔️ Each of the streaming types has different resolutions, bit rates, imaging pipelines, and different levels of configurability. Refer to the FAQ. Manipulate and Transfer Media Files When the camera records video, time lapse, or photo, the media is saved on the SD card with filenames according to the GoPro File Naming Convention. The cameras always record two versions of each video file Full resolution based on the selected settings (.mp4) Low resolution video proxy (.lrv) that can be used for editing or other operations where file size matters. The lrv file type can be renamed to mp4 and used for playback or further editing. Both versions exist in the same folder on the SD card. In addition, the cameras generate a thumbnail image (.thm) for each media file. The thm file type can be changed to jpeg if required. All three file types can be accessed, deleted, or copied via API commands. Extract Metadata GoPro cameras write metadata in each file, using a proprietary GPMF format. The metadata contains information including gyroscope, accelerometer, GPS, imaging-specific metadata, and several computed metrics such as scene classification. The metadata file cannot be edited or read while the camera is recording but can be accessed after the file has been written either entirely or selectively for a specific metric such as GPS. Use Multiple Cameras Simultaneously Controlling multiple cameras from one client is supported via BLE, Wifi, and USB with varying functionality depending on the protocol used. Refer to the table below. Protocol Available Functionality Notes BLE Command and control of several cameras Each camera can connect only to one BLE-enabled device at a time WiFI Command and control and live-streaming (RTMP) RTMP stream must be initiated via BLE USB Command and control and streaming via Webcam mode Available only from HERO11 onward Use GoPro Cloud and Editing Engine The GoPro ecosystem includes a multitude of ways to edit, store, and replay content which are currently available for end-users as a part of paid subscription programs. Even when integrated into your ecosystem, GoPro cameras can take advantage of cloud backup and editing tools provided by GoPro including auto-upload to the cloud, automatic editing, and native live streaming. The GoPro cloud interface has been tailored to the needs of individual consumers. If you are interested in commercial usage, reach out to our business development team.", "categories": [], "tags": [], "url": "/OpenGoPro/#" diff --git a/contribution.html b/contribution.html index dfc422ba..075ab94d 100644 --- a/contribution.html +++ b/contribution.html @@ -520,10 +520,10 @@

Quiz

%} -
+
-
What is the question?
-
+
What is the question?
+

@@ -536,10 +536,10 @@

Quiz

- - @@ -555,10 +555,10 @@

Quiz

%}
-
+
-
True or False?
-
+
True or False?
+

@@ -568,10 +568,10 @@

Quiz

- - @@ -594,7 +594,7 @@

Tabs

-
    +
    • tab1 @@ -609,7 +609,7 @@

      Tabs

    -
      +
      • This is the content of the first tab.

        diff --git a/demos/bash/ota_update.html b/demos/bash/ota_update.html index 205a9050..425f0585 100644 --- a/demos/bash/ota_update.html +++ b/demos/bash/ota_update.html @@ -34,7 +34,7 @@ - + @@ -344,7 +344,7 @@

        GoPro

        - +
        @@ -491,7 +491,7 @@

        Testing

        -

        Updated:

        +

        Updated:

        diff --git a/demos/c_c++/GoProC_C++Demo.html b/demos/c_c++/GoProC_C++Demo.html index 7017281e..2f899e40 100644 --- a/demos/c_c++/GoProC_C++Demo.html +++ b/demos/c_c++/GoProC_C++Demo.html @@ -34,7 +34,7 @@ - + @@ -344,7 +344,7 @@

        GoPro

        - +
        @@ -603,7 +603,7 @@

        Stream Commands

        -

        Updated:

        +

        Updated:

        diff --git a/demos/c_c++/GoProStreamDemo.html b/demos/c_c++/GoProStreamDemo.html index a45b6680..c1675750 100644 --- a/demos/c_c++/GoProStreamDemo.html +++ b/demos/c_c++/GoProStreamDemo.html @@ -34,7 +34,7 @@ - + @@ -344,7 +344,7 @@

        GoPro

        - +
        @@ -406,7 +406,7 @@

        GoPro Low Latency St -

        Updated:

        +

        Updated:

        diff --git a/demos/csharp/GoProCSharpSample.html b/demos/csharp/GoProCSharpSample.html index 740c1f4c..90e4e3aa 100644 --- a/demos/csharp/GoProCSharpSample.html +++ b/demos/csharp/GoProCSharpSample.html @@ -34,7 +34,7 @@ - + @@ -344,7 +344,7 @@

        GoPro

        - +
        @@ -435,7 +435,7 @@

        Usage

        -

        Updated:

        +

        Updated:

        diff --git a/demos/csharp/webcam.html b/demos/csharp/webcam.html index 23ad697f..d95b29f3 100644 --- a/demos/csharp/webcam.html +++ b/demos/csharp/webcam.html @@ -34,7 +34,7 @@ - + @@ -344,7 +344,7 @@

        GoPro

        - +
        @@ -440,7 +440,7 @@

        Usage

        -

        Updated:

        +

        Updated:

        diff --git a/demos/python/multi_webcam.html b/demos/python/multi_webcam.html index 184438a7..8e66d726 100644 --- a/demos/python/multi_webcam.html +++ b/demos/python/multi_webcam.html @@ -34,7 +34,7 @@ - + @@ -344,7 +344,7 @@

        GoPro

        - +
        @@ -554,7 +554,7 @@

        Module Usage

        -

        Updated:

        +

        Updated:

        diff --git a/demos/python/sdk_wireless_camera_control.html b/demos/python/sdk_wireless_camera_control.html index c2198474..494adc11 100644 --- a/demos/python/sdk_wireless_camera_control.html +++ b/demos/python/sdk_wireless_camera_control.html @@ -34,7 +34,7 @@ - + @@ -344,7 +344,7 @@

        GoPro

        - +
        @@ -579,7 +579,7 @@

        GUI Demos

        -

        Updated:

        +

        Updated:

        diff --git a/demos/swift/EnableWiFiDemo.html b/demos/swift/EnableWiFiDemo.html index fa660a94..835f51d7 100644 --- a/demos/swift/EnableWiFiDemo.html +++ b/demos/swift/EnableWiFiDemo.html @@ -34,7 +34,7 @@ - + @@ -344,7 +344,7 @@

        GoPro

        - +
        @@ -445,7 +445,7 @@

        Views

        -

        Updated:

        +

        Updated:

        diff --git a/feed.xml b/feed.xml index ff1397eb..75b0e47f 100644 --- a/feed.xml +++ b/feed.xml @@ -1 +1 @@ -Jekyll2023-09-13T11:49:10-07:00https://gopro.github.io/OpenGoPro/feed.xmlOpen GoProOpen Source GoPro InterfaceGoPro \ No newline at end of file +Jekyll2023-09-14T13:14:35-07:00https://gopro.github.io/OpenGoPro/feed.xmlOpen GoProOpen Source GoPro InterfaceGoPro \ No newline at end of file diff --git a/index.html b/index.html index e2f48442..0dc37f84 100644 --- a/index.html +++ b/index.html @@ -427,31 +427,33 @@

        Stream Video

        - Preview - Moderate video quality, primarily for framing -   -   - ->= Hero 12 - - - Stream + Preview +
        +Stream
          - Low latency stabilization + Moderate video quality, primarily for framing +
        +Low latency stabilization
        Low power consumption - ✔️ +   +
        +✔️
          - ✔️ +   +
        +✔️
          -
        +>= Hero 12 +

          + Webcam
        diff --git a/sitemap.xml b/sitemap.xml index c7dc34c7..5d95c293 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -2,63 +2,63 @@ https://gopro.github.io/OpenGoPro/demos/bash/ota_update -2023-09-13T11:49:10-07:00 +2023-09-14T13:14:35-07:00 https://gopro.github.io/OpenGoPro/demos/c_c++/GoProC_C++Demo -2023-09-13T11:49:10-07:00 +2023-09-14T13:14:35-07:00 https://gopro.github.io/OpenGoPro/demos/c_c++/GoProStreamDemo -2023-09-13T11:49:10-07:00 +2023-09-14T13:14:35-07:00 https://gopro.github.io/OpenGoPro/demos/csharp/GoProCSharpSample -2023-09-13T11:49:10-07:00 +2023-09-14T13:14:35-07:00 https://gopro.github.io/OpenGoPro/demos/csharp/webcam -2023-09-13T11:49:10-07:00 +2023-09-14T13:14:35-07:00 https://gopro.github.io/OpenGoPro/demos/python/multi_webcam -2023-09-13T11:49:10-07:00 +2023-09-14T13:14:35-07:00 https://gopro.github.io/OpenGoPro/demos/python/sdk_wireless_camera_control -2023-09-13T11:49:10-07:00 +2023-09-14T13:14:35-07:00 https://gopro.github.io/OpenGoPro/demos/swift/EnableWiFiDemo -2023-09-13T11:49:10-07:00 +2023-09-14T13:14:35-07:00 https://gopro.github.io/OpenGoPro/tutorials/connect-ble -2023-09-13T11:49:10-07:00 +2023-09-14T13:14:35-07:00 https://gopro.github.io/OpenGoPro/tutorials/send-ble-commands -2023-09-13T11:49:10-07:00 +2023-09-14T13:14:35-07:00 https://gopro.github.io/OpenGoPro/tutorials/parse-ble-responses -2023-09-13T11:49:10-07:00 +2023-09-14T13:14:35-07:00 https://gopro.github.io/OpenGoPro/tutorials/ble-queries -2023-09-13T11:49:10-07:00 +2023-09-14T13:14:35-07:00 https://gopro.github.io/OpenGoPro/tutorials/connect-wifi -2023-09-13T11:49:10-07:00 +2023-09-14T13:14:35-07:00 https://gopro.github.io/OpenGoPro/tutorials/send-wifi-commands -2023-09-13T11:49:10-07:00 +2023-09-14T13:14:35-07:00 https://gopro.github.io/OpenGoPro/tutorials/camera-media-list -2023-09-13T11:49:10-07:00 +2023-09-14T13:14:35-07:00 https://gopro.github.io/OpenGoPro/ble_2_0 diff --git a/tutorials/ble-queries.html b/tutorials/ble-queries.html index 958a85ab..76d7fbc7 100644 --- a/tutorials/ble-queries.html +++ b/tutorials/ble-queries.html @@ -34,7 +34,7 @@ - + @@ -410,7 +410,7 @@

        GoPro

        - +
        @@ -500,7 +500,7 @@

        Requirements

        Just Show me the Demo(s)!!

        -
          +
          • python @@ -511,7 +511,7 @@

            Just Show me the Demo(s)!!

          -
            +
            • Each of the scripts for this tutorial can be found in the Tutorial 2 @@ -634,7 +634,7 @@

              Setup

              characteristic. Throughout this tutorial, the query information that we will be reading is the Resolution Setting (ID 0x02).

              -
                + -
                  +
                  • Therefore, we have slightly changed the notification handler to update a global resolution variable as it @@ -773,7 +773,7 @@

                    Individual Query Poll

                    First we send the query command:

                    -
                      +
                      • python @@ -784,7 +784,7 @@

                        Individual Query Poll

                      -
                        +
                        • The sample code can be found in in ble_query_poll_resolution_value.py. @@ -814,7 +814,7 @@

                          Individual Query Poll

                          When the response is received in / from the notification handler, we update the global resolution variable:

                          -
                            +
                            • python @@ -825,7 +825,7 @@

                              Individual Query Poll

                            -
                              +
                              • def notification_handler(handle: int, data: bytes) -> None:
                                @@ -878,7 +878,7 @@ 

                                Individual Query Poll

                                has changed:

                                -
                                  +
                                  • python @@ -889,7 +889,7 @@

                                    Individual Query Poll

                                  -
                                    +
                                    • INFO:root:Changing the resolution to Resolution.RES_2_7K...
                                      @@ -945,7 +945,7 @@ 

                                      Multiple Simultaneous Query Polls

                                      The query command now includes 3 settings: Resolution, FPS, and FOV.

                                      -
                                        +
                                        • python @@ -956,7 +956,7 @@

                                          Multiple Simultaneous Query Polls

                                        -
                                          +
                                          • RESOLUTION_ID = 2
                                            @@ -981,7 +981,7 @@ 

                                            Multiple Simultaneous Query Polls

                                            We are also parsing the response to get all 3 values:

                                            -
                                              +
                                              • python @@ -992,7 +992,7 @@

                                                Multiple Simultaneous Query Polls

                                              -
                                                +
                                                • def notification_handler(handle: int, data: bytes) -> None:
                                                  @@ -1024,7 +1024,7 @@ 

                                                  Multiple Simultaneous Query Polls

                                                  They are then printed to the log which will look like the following:

                                                  -
                                                    +
                                                    • python @@ -1035,7 +1035,7 @@

                                                      Multiple Simultaneous Query Polls

                                                    -
                                                      +
                                                      • INFO:root:Received response at handle=62: b'0b:12:00:02:01:07:03:01:01:79:01:00'
                                                        @@ -1085,10 +1085,10 @@ 

                                                        Query All

                                                        Quiz time! 📚 ✏️

                                                        -
                                                        +
                                                        -
                                                        How can we poll the encoding status and the resolution setting using one command?
                                                        -
                                                        +
                                                        How can we poll the encoding status and the resolution setting using one command?
                                                        +

                                                        @@ -1101,10 +1101,10 @@

                                                        Query All

                                                        - -