用Python将GoPro作为远程网络摄像头使用的方法

730 阅读2分钟

我有一个GoPro Hero 7 White,我最近发现我可以使用一个名为GoPro API for Python的Python包将其作为远程网络摄像机使用,该包可在github.com/konradit/go…

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

这将使GoPro启动一个WiFi网络。从计算机连接到该网络。

现在你已经准备好编写你的Python程序,以便对摄像头做任何你想做的事情。

goprocam 中导入GoProCameraconstants

from goprocam import GoProCamera, constants

然后调用GoProCamera.GoPro() 方法来获得一个摄像头对象。

gopro = GoProCamera.GoPro(constants.gpcontrol)

用以下方法获得摄像机状态的概览

在我的例子中,我得到了这个打印出来的结果。

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

现在你可以使用各种方法,使GoPro采取动作。

你可以立即拍一张照片。

你可以在2秒后拍一张照片。

你可以拍摄一个10秒的视频。

或者直接开始录制,没有预设结束时间,使用

你可以下载最后拍摄的照片或视频,使用

gopro.downloadLastMedia()

你还可以为文件设置一个名称。

gopro.downloadLastMedia("pic.JPG")

提示:我遇到了一个错误,当我调用downloadLastMedia() ,就无法下载图片。我得到的错误信息是 "在录制或处理媒体时不支持"。我不得不在调用gopro.getStatusRaw() ,然后再调用downloadLastMedia() 来解决这个问题。

有许多有用的方法,如

  • KeepAlive() 防止GoPro关闭
  • setZoom() 设置变焦
  • downloadAll() 从相机中下载所有媒体
  • delete("last") 删除最后拍摄的媒体
  • delete("all") 删除所有媒体
  • power_off() 关闭相机电源
  • power_on() 打开相机电源
  • stream() 开始流媒体(还没搞清楚)。

你可以在这里找到许多例子,在这里可以找到更多的文档。

摄像机的IP是10.5.5.9 ,MAC地址是AA:BB:CC:DD:EE:FF