python:mjpeg-server-from-webcam
Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
python:mjpeg-server-from-webcam [2021/04/06 00:32] – created Wulf Rajek | python:mjpeg-server-from-webcam [2023/05/29 11:55] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 6: | Line 6: | ||
< | < | ||
pip3 install opencv-python pillow | pip3 install opencv-python pillow | ||
+ | </ | ||
+ | |||
+ | Usage: | ||
+ | < | ||
+ | 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:// | ||
+ | Direct live feed: http:// | ||
+ | Snapshot image: http:// | ||
</ | </ | ||
Line 21: | Line 32: | ||
from socketserver import ThreadingMixIn | from socketserver import ThreadingMixIn | ||
from io import StringIO, | from io import StringIO, | ||
+ | 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, | ||
+ | |||
+ | if self.path.endswith(' | ||
+ | self.send_response(200) | ||
+ | self.send_header(' | ||
+ | self.send_header(' | ||
+ | self.send_header(' | ||
+ | self.end_headers() | ||
+ | try: | ||
+ | rc,img = capture.read() | ||
+ | if not rc: | ||
+ | return | ||
+ | imgRGB=cv2.cvtColor(img, | ||
+ | jpg = Image.fromarray(imgRGB) | ||
+ | jpg.save(self.wfile,' | ||
+ | except: | ||
+ | return | ||
if self.path.endswith(' | if self.path.endswith(' | ||
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)