The WebVideoViewer is a Python application that allows you to create subpages with live video streams from a webcam or other source. It uses the Flask framework to handle web requests and displays video frames in real-time.
- Python 3.x
- OpenCV (cv2) library
- Flask library
- Clone the repository or download the code files.
- Install the required dependencies by running the following command:
pip install opencv-python flask
-
Import the necessary modules:
import webViewer
-
Create an instance of the
VideoStream
class:app = webViewer.VideoStream()
-
Start the Flask web server on a specified port (default is 80):
app.run()
-
Continuously capture frames from the webcam and update subpages:
cap = cv2.VideoCapture(0) while True: _, frame = cap.read() gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) app.imshow("frame", frame) app.imshow("gray", gray)
-
Access the subpages:
- The home page lists all the available subpages. Visit the root URL (e.g.,
http://localhost:80/
) to see the home page. - Each subpage displays a live video stream. Add the subpage name to the root URL (e.g.,
http://localhost:80/video1
) to access a specific subpage.
- The home page lists all the available subpages. Visit the root URL (e.g.,
You can customize the following aspects of the Flask Subpage App:
-
Templates: The app uses HTML templates to render the home page and subpages. By default, it looks for the templates in the
templates
folder relative to the script's location. You can specify custom template paths when creating aVideoStream
instance:app = VideoStream(homePageTemplate="path/to/home.html", subpageTemplate="path/to/subpage.html")
-
Port: The default port for the Flask web server is 80. If you want to use a different port, specify it when creating a
VideoStream
instance:app = VideoStream(port=5000)
This project is licensed under the MIT License. Feel free to modify and use it according to your needs.
This application was inspired by the Flask video streaming tutorial from the Official Flask Documentation
- OpenCV - Open Source Computer Vision Library: https://opencv.org/
- Flask - A micro web framework written in Python: https://flask.palletsprojects.com/