Chcę przetworzyć strumień wideo w formacie mms za pomocą OpenCV za pomocą języka Python. Strumień pochodzi z kamery IP, nad którą nie mam kontroli (monitor ruchu). Strumień jest dostępny jako MMS lub MMST systemów -Jak przechwytywać strumień wideo za pomocą OpenCV (Python)
mms://194.90.203.111/cam2
gra na obu VLC i Windows Media Player.
mmst://194.90.203.111/cam2
działa tylko na VLC. Próbowałem zmienić schemat na HTTP przez ponowne przesłanie strumieniowe za pomocą FFmpeg i VLC, ale nie działało.
O ile rozumiem, mms używa Windows Media Video do kodowania strumienia. Nie ma szczęścia dodając ".mjpeg" na końcu URI. Nie znalazłem jeszcze tego, jakie typy transmisji są akceptowane przez OpenCV.
Oto mój kod -
import cv2, platform
#import numpy as np
cam = "mms://194.90.203.111/cam2"
#cam = 0 # Use local webcam.
cap = cv2.VideoCapture(cam)
if not cap:
print("!!! Failed VideoCapture: invalid parameter!")
while(True):
# Capture frame-by-frame
ret, current_frame = cap.read()
if type(current_frame) == type(None):
print("!!! Couldn't read frame!")
break
# Display the resulting frame
cv2.imshow('frame',current_frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# release the capture
cap.release()
cv2.destroyAllWindows()
Czego mi brakuje? Jakie rodzaje strumieni wideo mogą przechwytywać OpenCV? Czy istnieje eleganckie rozwiązanie bez zmiany schematu lub transkodowania?
Dzięki!
Python ver 2.7.8, OpenCV w wersji 2.4.9, Oba x86. Win7 x64
Może to pomoże: http://petrkout.com/electronics/low-latency-0-4-s-video-streaming-from-raspberry-pi-mjpeg-streamer-opencv/ w sekcji klienta – Ryan
Dzięki @Ryan! link miał dużo dobrych informacji.Część Pythona na końcu przybił ją. – NoamR