前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >IP camera access 网络摄像头调用

IP camera access 网络摄像头调用

原创
作者头像
vanguard
修改2020-04-08 17:54:09
1.9K0
修改2020-04-08 17:54:09
举报
文章被收录于专栏:vanguard
代码语言:shell
复制
GoPro
# pip install goprocam
# https://python.freelycode.com/contribution/detail/1204
# brew install ffmpeg
from goprocam import GoProCamera, constants
from time import time
import socket, cv2
gopro = GoProCamera.GoPro()
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
t=time()
gopro.livestream("start")
gopro.video_settings(res='1080p', fps='30')
gopro.gpControlSet(constants.Stream.WINDOW_SIZE, constants.Stream.WindowSize.R720)
cap = cv2.VideoCapture("udp://10.5.5.9:8554", cv2.CAP_FFMPEG)
counter = 0
while True:
    nmat, frame = cap.read()
    cv2.imshow("GoPro OpenCV", frame)
    if cv2.waitKey(1) & 0xFF == ord('q'): break
    if time() - t >= 2.5:
        sock.sendto("_GPHD_:0:0:2:0.000000\n".encode(), ("10.5.5.9", 8554))
        t=time()
cap.release(); cv2.destroyAllWindows()
# http://10.5.5.9/gp/gpControl
# http://10.5.5.9/gp/gpControl/execute?p1=gpStream\u0026c1=stop
# print(gopro.overview())
# gopro.shoot_video(10)
# gopro.take_photo()

GoPro访问基于无线网络连接和socket直接访问udp资源,实测视频延迟有点厉害,应该还是码流/压缩的原因,访问有些应用层的rtsp协议相对更快,同时OpenCV对rtsp资源访问更简单,不需要手动起sokcet服务。

代码语言:shell
复制
Axis(安讯士)
# rtsp://[username]:[password]@[ip]/axis-media/media.amp?[videocodec]&[resolution]
# 例如,请求某设备h264编码的1280x720的码流,URL如下:
rtsp:// 192.168.200.202/axis-media/media.amp?videocodec=h264&resolution=1280x720
rtsp://root:Pass1234@169.254.53.145/axis-media/media.amp?videocodec=H264&resolution=1280x72

username:用户名,例如admin。 password:密码,例如12345,如果没有网络验证可省略用户名密码部分以及@字符。

ip:为设备IP,例如192.168.0.108。videocodec:支持MPEG、h.264等,可缺省。

resolution:分辨率,如resolution=1920x1080,若采用默认分辨率,可缺省此参数。

代码语言:shell
复制
海康威视
# rtsp://[username]:[password]@[ip]:[port]/[codec]/[channel]/[subtype]/av_stream
# 主码流:
rtsp://admin:12345@192.0.0.64:554/h264/ch1/main/av_stream
rtsp://admin:12345@192.0.0.64:554/MPEG-4/ch1/main/av_stream
# 子码流:
rtsp://admin:12345@192.0.0.64/mpeg4/ch1/sub/av_stream
rtsp://admin:12345@192.0.0.64/h264/ch1/sub/av_stream

username: 用户名,例如admin。 password: 密码,例如12345。

ip: 为设备IP,例如 192.0.0.64。 port: 端口号默认为554,若为默认可不填写。

codec:有h264、MPEG-4、mpeg4这几种。 channel: 通道号,起始为1。例如通道1,则为ch1。

subtype: 码流类型,主码流为main,辅码流为sub。

代码语言:shell
复制
大华
# rtsp://[username]:[password]@[ip]:[port]/cam/realmonitor?[channel]&[subtype]
rtsp://admin:admin@10.12.4.84:554/cam/realmonitor?channel=2&subtype=1

username: 用户名,例如admin。 password: 密码,例如admin。

ip: 为设备IP,例如 10.7.8.122。 port: 端口号默认为554,若为默认可不填写。

channel: 通道号,起始为1,例如通道2,则为channel=2。

subtype: 码流类型,主码流为0(即subtype=0),辅码流为1(即subtype=1)。

代码语言:shell
复制
D-Link
# rtsp://[username]:[password]@[ip]:[port]/[channel].sdp
# 如果没有网络验证可直接写成rtsp:// [ip]:[port]/[channel].sdp
rtsp://admin:12345@192.168.200.201:554/live2.sdp 

username:用户名,例如admin。password:密码,例如12345,

ip:为设备IP,例如192.168.0.108。port:端口号默认为554,若为默认可不填写。

channel:通道号,起始为1。例如通道2,则为live2。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档