使用Python将GoPro用作远程网络摄像头

我有一个GoPro Hero 7 White,最近我发现我可以像使用名为的Python软件包的远程网络摄像头一样使用它适用于Python的GoPro API,位于https://github.com/konradit/gopro-py-api

首先使用安装软件包pip3 install goprocam然后在GoPro上启用WiFi连接。

这使GoPro可以启动WiFi网络。从计算机连接到该网络。

现在,您可以编写Python程序以使用网络摄像头执行任何操作。

进口GoProCameraconstantsgoprocam

from goprocam import GoProCamera, constants

然后致电GoProCamera.GoPro()获取相机对象的方法:

gopro = GoProCamera.GoPro(constants.gpcontrol)

使用获取有关相机状态的概述

gopro.overview()

在我的情况下,我把它打印出来了:

camera overview
current mode: Photo
current submode: Burst
current video resolution: out of scope
current video framerate: 240
pictures taken: 0
videos taken:  0
videos left: 02:10:44
pictures left: 11257
battery left: Halfway
space left in sd card: 58.04GB
camera SSID: HERO7 White
Is Recording: Not recording - standby
Clients connected: 2
camera model: HERO7 White
firmware version: H18.02.02.10.00
serial number: C3343323864041

Now you can use a variety of methods that make the GoPro take actions.

You can take a photo immediately:

gopro.take_photo()

You can take a photo after 2 seconds:

gopro.take_photo(2)

You can shoot a 10-seconds video:

gopro.shoot_video(10)

Or just start recording, with no preset end time, using

gopro.shoot_video()

You can download the last picture or video taken using

gopro.downloadLastMedia()

You can also set a name for the file:

gopro.downloadLastMedia("pic.JPG")

Tip: I ran into a bug that prevented me to download the picture when I called downloadLastMedia(). I was getting errors that said “Not supported while recording or processing media”. I had to call gopro.getStatusRaw() before calling downloadLastMedia() to fix it.

There are many useful methods like

  • KeepAlive() to prevent the GoPro to turn off
  • setZoom() to set the zoom
  • downloadAll() to download all media from the camera
  • delete("last") to delete the last media taken
  • delete("all") to delete all media
  • power_off() power off the camera
  • power_on() power on the camera
  • stream() to start streaming (haven’t figured it out yet)

You can find many examples here and more documentation here.

The camera is available on IP 10.5.5.9, with the MAC address AA:BB:CC:DD:EE:FF.


More python tutorials: