User Tools

Site Tools


python:mjpeg-server-from-webcam

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
python:mjpeg-server-from-webcam [2021/04/06 00:32] – created Wulf Rajekpython:mjpeg-server-from-webcam [2023/05/29 11:55] (current) – external edit 127.0.0.1
Line 6: Line 6:
 <code> <code>
 pip3 install opencv-python pillow pip3 install opencv-python pillow
 +</code>
 +
 +Usage:
 +<code>
 +Define camera in line 72 cv2.VideoCapture(2) refers to /dev/video2
 +Define resolution in lines 73/74
 +Define port in line 88
 +
 +Browser with embedded live feed: http://ip:1339/index.html
 +Direct live feed: http://ip:1339/cam.mjpg
 +Snapshot image: http://ip:1339/still.jpg
 </code> </code>
  
Line 21: Line 32:
 from socketserver import ThreadingMixIn from socketserver import ThreadingMixIn
 from io import StringIO,BytesIO from io import StringIO,BytesIO
 +from urllib.parse import urljoin, urlparse
 import time import time
 capture=None capture=None
Line 26: Line 38:
 class CamHandler(BaseHTTPRequestHandler): class CamHandler(BaseHTTPRequestHandler):
     def do_GET(self):     def do_GET(self):
 +        #remove query string from url
 +        self.path=urljoin(self.path, urlparse(self.path).path)
 +
 +        if self.path.endswith('.jpg'):
 +            self.send_response(200)
 +            self.send_header('Content-type','image/jpeg')
 +            self.send_header('Cache-Control','no-cache')
 +            self.send_header('Pragma','no-cache')
 +            self.end_headers()
 +            try:
 +                rc,img = capture.read()
 +                if not rc:
 +                    return
 +                imgRGB=cv2.cvtColor(img,cv2.COLOR_BGR2RGB)
 +                jpg = Image.fromarray(imgRGB)
 +                jpg.save(self.wfile,'JPEG')
 +            except:
 +                return
         if self.path.endswith('.mjpg'):         if self.path.endswith('.mjpg'):
             self.send_response(200)             self.send_response(200)
python/mjpeg-server-from-webcam.1617665536.txt.gz · Last modified: 2023/05/29 11:53 (external edit)