Last active
November 25, 2022 18:54
-
-
Save shihyuan/4d834d429763e953a40c to your computer and use it in GitHub Desktop.
Stream Video with OpenCV in Python from an Android running IP Webcam
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Stream Video with OpenCV from an Android running IP Webcam (https://play.google.com/store/apps/details?id=com.pas.webcam) | |
# Code Adopted from http://stackoverflow.com/questions/21702477/how-to-parse-mjpeg-http-stream-from-ip-camera | |
import cv2 | |
import urllib2 | |
import numpy as np | |
import sys | |
host = "192.168.0.220:8080" | |
if len(sys.argv)>1: | |
host = sys.argv[1] | |
hoststr = 'http://' + host + '/video' | |
print 'Streaming ' + hoststr | |
stream=urllib2.urlopen(hoststr) | |
bytes='' | |
while True: | |
bytes+=stream.read(1024) | |
a = bytes.find('\xff\xd8') | |
b = bytes.find('\xff\xd9') | |
if a!=-1 and b!=-1: | |
jpg = bytes[a:b+2] | |
bytes= bytes[b+2:] | |
i = cv2.imdecode(np.fromstring(jpg, dtype=np.uint8),cv2.CV_LOAD_IMAGE_COLOR) | |
cv2.imshow(hoststr,i) | |
if cv2.waitKey(1) ==27: | |
exit(0) | |
That can be done a lot simpler...
https://pastebin.com/7izkYjRx
does it have seek bar?
and can get this by call api from mobile app?
Is there any way to achieve the same using request
because I m using python 3.x and urllib2 not available for Python 3.x
Here is the code for Python 3.x
import urllib
import cv2
import numpy as np
url='http://192.168.8.22:8080/shot.jpg'
while True:
# Use urllib to get the image and convert into a cv2 usable format
imageResp=urllib.request.urlopen(url)
imgNp=np.array(bytearray(imageResp.read()),dtype=np.uint8)
img=cv2.imdecode(imgNp,-1)
# put the image on screen
cv2.imshow('IPWebcam',img)
#To give the processor some less stress
if cv2.waitKey(1) ==13:
break
cv2.destroyAllWindows()
Is this possible from remote?? To put the info in a cloud machine and get the info from there
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
The code below will also work