You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用cv2.VideoCapture远程访问其他电脑的摄像头实时视频流

注意:在远程电脑不运行任何配套代码、也不做任何网络流配置的前提下,无法直接通过本地Python代码调取远程摄像头画面。摄像头属于系统级硬件资源,默认不会暴露到公网/局域网,必须有对应的服务端将视频流推送到网络上才能被其他设备拉取。
调取他人摄像头必须获得对方授权,否则涉嫌违法,请注意合规使用。

可行实现方案(仅需远程电脑做一次配置,无需反复运行代码)

如果可以在远程电脑上做一次性的流媒体配置,之后就可以直接在本地拉取画面,操作步骤如下:

  • 首先在远程电脑安装FFmpeg工具,配置为开机自启的后台服务,将摄像头实时画面推为RTSP/HTTP协议的网络流,Windows设备推流命令参考:
    ffmpeg -f dshow -i video="你的摄像头设备名称" -vcodec libx264 -preset ultrafast -tune zerolatency -f rtsp rtsp://0.0.0.0:8554/cam
    Mac/Linux设备推流命令参考:
    ffmpeg -f v4l2 -i /dev/video0 -vcodec libx264 -preset ultrafast -tune zerolatency -f rtsp rtsp://0.0.0.0:8554/cam
  • 确认远程电脑和本地电脑网络连通,局域网环境直接用远程电脑的局域网IP,公网环境需要给远程电脑做对应端口的端口映射
  • 本地代码只需要修改cv2.VideoCapture的入参为远程流地址即可,修正后的代码如下:
import cv2
# 替换为远程电脑实际IP和流路径
vid = cv2.VideoCapture("rtsp://远程电脑IP:8554/cam")
 
while(True):
    ret, frame = vid.read()
    if not ret:
        print("拉流失败,请检查流地址和网络连通性")
        break
    # 原代码缺少第一个窗口名参数,此处补全
    cv2.imshow("远程摄像头画面", frame)
     
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break
 
vid.release()
cv2.destroyAllWindows()

特殊场景方案

如果远程设备是带官方云服务的智能摄像头/带摄像头的物联网设备,可以直接调用厂商提供的本地SDK获取视频帧,无需在远程设备做额外配置,拿到帧数据后直接传给OpenCV渲染即可。

内容的提问来源于stack exchange,提问作者user17020095

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 09:15:04