我有一個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
中導入GoProCamera
和constants
:
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
。