我有一個GoPro Hero 7 White,最近我發現可以使用一個名為GoPro API for Python的Python包將其用作遠程網絡攝像頭,該包位於https://github.com/konradit/gopro-py-api

首先使用pip3 install goprocam安裝該包,然後在GoPro上啟用WiFi連接。

這將使GoPro開始一個WiFi網絡。從計算機連接到該網絡。

現在您可以準備編寫Python程序,對攝像頭進行任何想做的事情。

goprocam中導入GoProCameraconstants

from goprocam import GoProCamera, constants

然後調用GoProCamera.GoPro()方法獲取一個相機對象:

gopro = GoProCamera.GoPro(constants.gpcontrol)

使用以下代碼獲取攝像頭狀態的概述:

gopro.overview()

在我的情況下,我得到了以下結果:

相機概述
當前模式:照片
當前子模式:連拍
當前視頻分辨率:超出範圍
當前視頻幀速率:240
已拍攝的照片數量:0
已拍攝的視頻數量:0
剩餘的視頻時間:02:10:44
剩餘的照片數量:11257
電池剩餘容量:一半
SD卡剩餘空間:58.04GB
相機SSID:HERO7 White
是否在錄製:未錄製 - 待機
連接的客戶端數量:2
相機型號:HERO7 White
固件版本:H18.02.02.10.00
序列號:C3343323864041

現在您可以使用多種方法讓GoPro採取動作。

您可以立即拍攝照片:

gopro.take_photo()

您可以在2秒後拍攝照片:

gopro.take_photo(2)

您可以拍攝10秒的視頻:

gopro.shoot_video(10)

或者,您可以直接開始錄製,而沒有預設的結束時間,使用以下代碼:

gopro.shoot_video()

您可以使用以下代碼下載最後拍攝的照片或視頻:

gopro.downloadLastMedia()

您還可以為文件設置一個名稱:

gopro.downloadLastMedia("pic.JPG")

提示:我遇到了一個問題,當我調用downloadLastMedia()下載圖片時,我遇到了錯誤,顯示“Not supported while recording or processing media”。為了解決這個問題,我必須在調用downloadLastMedia()之前調用gopro.getStatusRaw()

還有很多有用的方法,例如:

  • 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