Flask app to display a snapshot from a RTSP feed.
This should not be exposed to unsafe or uncontrolled networks. Parts of the URL is interpolated as is into a call to execute the ffmpeg binary. This can be exploited by malicious individuals to perform unauthorized actions that could compromise the integrity of the system.
The overhead from executing ffmpeg is costly, and therefore it is not recommended to perform more than one request every two seconds.
Requirements:
- flask
- ffmpeg
The flask Python requirement is expressed in the requirements.txt file and may be installed by running the following command (preferably from a virtual environment):
pip install -r requirements.txt
The ffmpeg binary should be installed through your system's package manager, or compiled from source.
Execute the script to start a debugging server listening on localhost:5000, or serve through WSGI. Pass the URI to the RTSP feed as the resource, without the protocol prefix. For example,
http://localhost:5000/192.168.0.10:554/user=admin&password=&channel=1&stream=0.sdp?real_stream
Everything past the port and slash will be used to connect to the RTSP feed, and prefixed with rtsp://.