我正在使用VLC媒体播放器使用http来传输.mp4视频。 Streaming工作正常(我能够使用另一个VLC实例附加到此流)。 现在我想使用OpenCV和python 2.7连接到这个流,并逐帧获取视频。
这是修改后的教程代码(与本地文件完全兼容):
<code>
import numpy as np
import cv2
address = '10.0.0.71' # this is my stream ip address
port = 8080 # this is stream port
# should I use socket somehow?
# found this somewhere, no idea what this do
# import socket
# msocket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
# msocket.connect((address, port))
cap = cv2.VideoCapture('file.mp4') # how to use VideoCapture with online stream?
# just showing video to screen
while(cap.isOpened()):
ret, frame = cap.read()
cv2.imshow('frame', frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
请帮忙。
答案 0 :(得分:1)
http://answers.opencv.org/question/24154/how-to-using-opencv-api-get-web-video-stream/
你应该只能cap = cv2.VideoCapture('yourStreamURIHere')
如果您需要登录流,例如某些流在127.0.0.1,用户名为:hello,密码:goodbye:
cap = cv2.VideoCapture('http://hello:goodbye@127.0.0.1/?action=stream?otherparamshere)
答案 1 :(得分:0)
我有点晚了,但我创建了功能强大且线程化的VidGear视频处理python库,现在提供了NetGear API,该库专门用于在网络上互连系统之间同步传输视频帧通过ZmQ消息传递系统实时进行。 有关用法示例,请在此处查看我的详细答案: https://stackoverflow.com/a/57205019/10158117