使用Python將GoPro用作遠程網絡攝像頭
我有一個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
:
1 | from goprocam import GoProCamera, constants |
然後調用GoProCamera.GoPro()
方法獲取一個相機對象:
1 | gopro = GoProCamera.GoPro(constants.gpcontrol) |
使用以下代碼獲取攝像頭狀態的概述:
1 | gopro.overview() |
在我的情況下,我得到了以下結果:
1 | 相機概述 |
現在您可以使用多種方法讓GoPro採取動作。
您可以立即拍攝照片:
1 | gopro.take_photo() |
您可以在2秒後拍攝照片:
1 | gopro.take_photo(2) |
您可以拍攝10秒的視頻:
1 | gopro.shoot_video(10) |
或者,您可以直接開始錄製,而沒有預設的結束時間,使用以下代碼:
1 | gopro.shoot_video() |
您可以使用以下代碼下載最後拍攝的照片或視頻:
1 | gopro.downloadLastMedia() |
您還可以為文件設置一個名稱:
1 | 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
。
tags: [“Python”, “GoPro”, “webcam”, “remote webcam”, “gopro-py-api”]