360 timelapse using gopro max & hero 11 black
============================================= objective: to do a timelapse, using two gopro hero 11 cams and one gopro max 360, over a course of several months. automaticaly download data from cameras and backup in the full resolution.360 format
----------- - photo 360 timelapses show a problem in place of stitching the two cameras - the image is wavy verticaly in approx. 1/25 of image from both left and right side - as the cameras don't see the sides of a box and 'guess' the missing parts - difference in an each photo --> curly - gopro max is not able to save raw photo images in course of timelapse ---> use video timelapse timelapses (and videos) shot with max, are stored in proprietary .360 format -> import .360 gopro files into davinci - reframe 360 XL plugin not maintained any more, but there is a github fork: https://github.com/LRP-sgravel/reframe360XL gopro player to export the footage: https://gopro.com/en/cz/info/gopro-player - proprietary, appstore needed, don't want to lose privacy * ffmpeg fork to stitch 360s in a open software https://www.trekview.org/blog/2022/using-ffmpeg-process-gopro-max-360/ https://github.com/gmat/goproMax-ffmpeg-v5timelapse
========= photo timelapses - gopro hero 11 black: image format either jpeg or gpr jpeg 4872 x 5568 bit depth 8 bit cca 5.6 MB each .gpr bit depth 10-bit raw cca 24.1 MB each https://github.com/gopro/gpr based on Adobe DNG preferable, because we want 10-bit colors for postproduction 1 image per 30 sec 5 hours (jpeg + gpr) = 17.54 GB = 20 sec @ 25fps ~ 3.5 GB / hour ~ 256 SD card = 3 days in real life: 1 TB SD card ~ 16 days (possibly night images with dark cost less storage) conversion utility needed use adobe dng converter https://helpx.adobe.com/camera-raw/using/adobe-dng-converter.html to batch convert to dmg and import into davinci's media pool (cmd+i) as an image sequencepreviews
-------- for the previews i use a script to make a mp4 out of jpegs, with date/time in picture: #!/bin/sh ffmpeg -framerate 25 -pattern_type glob -i '*/*.JPG' -export_path_metadata 1 \ -vf drawtext="fontfile=/System/Library/Fonts/Supplemental/Arial\ Unicode.ttf:text='%{metadata\:DateTimeOriginal}':x=100:y=100:fontcolor=white:box=1:boxcolor=black:fontsize=100:boxborderw=50" \ -c:v libx264 -pix_fmt yuv420p ../out.mp4 - font file name will vary system to system - called from DCIM dir, it wil recurse into all 1XXGOPRO dirsnetwork control & download:
============================ gopro can be accessed via http: https://gopro.github.io/OpenGoPro/http_2_0 or 3rd party open software: https://github.com/KonradIT/gopro-control gopro wifi api reference: https://github.com/KonradIT/goprowifihack/blob/master/MAX/README.md but how to connect a gopro to wifi? gopro can act as an AP, not wifi client. how to connect several cameras to controling pc at once? https://actiongadgetsreviews.com/how-to-connect-a-gopro-to-a-wifi-home-network (strange workaround, would need 3 bridge wifi routers for 3 cameras) some ideas to download the data remotely: https://havecamerawilltravel.com/gopro/gopro-memory-card-remote-access/or gopro cloud:
---------------- 50USD/year maybe solution here: (cloud) https://community.gopro.com/s/question/0D53b00008DwUcwCAF/construction-timelaps-with-wifi-enabled?language=en_US https://github.com/dustin/gopro opensource to control the cloud - gopro can connect to wifi as a client here - not sure, if the cloud would accept raw footage - it's discussed - didn't use this option in the endcontrol by mac computer:
------------------------ could switch the wifi connection to each of 3 cameras from command line: https://www.techrepublic.com/article/pro-tip-manage-wi-fi-with-terminal-commands-on-os-x/ https://osxdaily.com/2007/01/18/airport-the-little-known-command-line-wireless-utility/usb
--- ip link | grep enp sudo dhclient -v enp0s20u1 cam2 = 172.24.138.51 ping 172.24.138.51 browser: http://172.24.138.51/videos/DCIM/ -> show video folder copy all media eg. wget -r -l 0 -np http://172.24.138.51/videos/DCIM/100GOPRO/ control the camera using http 2.0 commands: https://gopro.github.io/OpenGoPro/http_2_0 browser: http://172.24.138.51/gopro/camera/state code list: https://gopro.github.io/OpenGoPro/http_2_0#status-idswifi
---- * i'm not able to find, how to activate wifi without pairing with gopro app first * another proprietary soft & smartphone dependency #<>firmware
======== gopro labs: https://gopro.github.io/labs/control/ - special firmware opening hidden features, activated via qr codes - plenty things to experiment with, scripting language, timed commands etc. for real hackers https://gopro.github.io/labs/control/tech/ https://gopro.github.io/labs/control/settings/ https://gopro.github.io/labs/control/extensions fw install instructions: https://gopro.github.io/labs/install/ generate qrcode in url: https://gopro.github.io/labs/control/set/?cmd=oMHIST=5 use settings for example: # show histogram oMHIST=5 generate qrcode in url: https://gopro.github.io/labs/control/set/?cmd=oMHIST=5 or with qrencode (linux: apt install qrencode): qrencode -o test1.png "oMHIST=5" #switch the histogram off oMHIST=0 !!! security vulnerability: malicious actor can control the camera without physicaly touching it, just by showing the qr codetimelapse
======== setup gopro hero 11: set timelapse - photo mode - interval 30s - output: raw - protune: color: flat general settings: quick capture: off auto power off: never default preset: last used timelapse gps on install labs firmware using labs set: # wake on USB power (permanent) !MWAKE=2 #synchronise time over GPS !MSYNC=1 #file naming - replace CAM3 with cam name !MBASE="CAM3-[yyyy-mm-dd_HH-MM-SS]" #boot command: start recording after boot !MBOOT="!S" ### gopro max different firmware, different commands, not possible to do all the stuff hero 11 does #cannot put time into name, just use "CAM2-" !MBASE="CAM3-" out of some strange reason, MAX doesn't execute the BOOT command, it only shows it. tried: !MBOOT="!S" !MBOOT="!Lboot"!SAVEboot=!S etc... MAX probably doesn't support boot commands (as of LABS_MAX_02_00_71 firmware version) workaround: # use USB trigger for dashcam, repeat (!R) !u!S!R https://gopro.github.io/labs/control/set/?cmd=!uN!S!R drawback: once you switch the camera off by power button, trigger disappearspower
===== - wired USB power (5V, 2.1 A) - we can afford not sleeping the camera & permanent wifi connection (lab firmware would allow even switching the power off between the lapse photos in low power conditions) - limitation of USB cable length to 5 m, use 2m cables and power extension cord - could be solved by USB power extender (what about USB3?) - internal battery as a backup during short power outages - could be solar powered eg. by using solar powerbank + panel EOF Comments requested ~~~~~~~~~ Binary Sxizophreny - index of comp related stuff Kangaroo's Homepage (czech)