2

我尝试从我的新 GoPro Hero5 获取实时流到我的桌面。在版本 4 之前,所有 GoPro 都可以这样做。

但是Hero5好像不支持http://10.5.5.9:8080/live/这个网址

知道如何使用 GoPro Hero5 做到这一点吗?

4

1 回答 1

2

在 Hero4 和更高版本上,您可以通过获取此 url 来启动 UDP 流:

http://10.5.5.9/gp/gpControl/execute?p1=gpStream&a1=proto_v2&c1=restart

这将在以下位置打开一个 UDP 流:

udp://10.5.5.9:8554

阅读这个流有点棘手。此 Python 脚本使用 FFMPEG 打开流。请注意此脚本定期发送的“保持活动”消息:如果没有这些消息,相机将很快停止流式传输。

我正在使用该脚本的元素以及 OpenCV VideoCapture 对象以编程方式访问来自 Hero5 Session 的流。相关代码如下所示:

cap = cv2.VideoCapture("udp://:8554", cv2.CAP_FFMPEG)
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
last_message = time.time()

while some_condition():

    # Get an image
    ret, img = cap.read()

    # Do something with img
    cv2.imshow("My Window", img)
    cv2.waitKey(1)

    # Keep alive.
    current_time = time.time()
    if current_time - last_message >= keep_alive_period/1000:
        logger.info("Sending keep alive message to %s.", self.host)
        sock.sendto(message, ("10.5.5.9", 8554))
        last_message = current_time

cv2.destroyWindow(window_name)
cap.release()

更多信息在这里

于 2017-03-30T04:43:54.650 回答