Skip to content

mvarrone/check-rtsp-camera-status

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Camera monitoring

This project monitors the real-time availability of multiple RTSP IP cameras simultaneously, providing insights into the status and uptime of each camera feed. It’s designed to ensure reliable video surveillance and reduce downtime by offering quick alerts on connectivity issues.

Explanation

  • ProcessPoolExecutor used in order to connect to the cameras in parallel and reduce the amount of time needed to complete this task
  • It provides some stats at the end of the execution. Check sample_execution_results.txt
  • Each camera is represented as a Python 3 dictionary, stored in the credentials.json file. This file is a list of dictionaries containing the following structure for a fake set of parameters:

Example

[
        {
                "protocol": "rtsp",
                "username": "admin1",
                "password": "password1",
                "domain": "domain1.dyndns.org",
                "port": 554,
                "path": "/Streaming/Channels/",
                "camera_number": 101
        },
        {
                "protocol": "rtsp",
                "username": "user",
                "password": "password2",
                "domain": "domain2.dyndns.org",
                "port": 554,
                "path": "/Streaming/Channels/",
                "camera_number": 401
        }
]

RTSP IP Camera URL example

rtsp://admin:password@domain.dyndns.org:554/Streaming/Channels/101

Again, this URL is not a currently working RTSP url because it contains invalid information. It is displayed here only for guidance purposes on how to structure it

Same for sample_execution_results.txt: In this file, sensitive parameters are faked as well

Requirements

  1. Python 3.12.2
  2. ffmpeg
ffmpeg version 2024-04-29-git-cf4af4bca0-full_build-www.gyan.dev Copyright (c) 2000-2024 the FFmpeg developers

built with gcc 13.2.0 (Rev5, Built by MSYS2 project)
configuration: --enable-gpl --enable-version3 --enable-static --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-bzlib --enable-lzma --enable-libsnappy --enable-zlib --enable-librist --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-libbluray --enable-libcaca --enable-sdl2 --enable-libaribb24 --enable-libaribcaption --enable-libdav1d --enable-libdavs2 --enable-libuavs3d --enable-libxevd --enable-libzvbi --enable-librav1e --enable-libsvtav1 --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxeve --enable-libxvid --enable-libaom --enable-libjxl --enable-libopenjpeg --enable-libvpx --enable-mediafoundation --enable-libass --enable-frei0r --enable-libfreetype --enable-libfribidi --enable-libharfbuzz --enable-liblensfun --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-dxva2 --enable-d3d11va --enable-d3d12va --enable-ffnvcodec --enable-libvpl --enable-nvdec --enable-nvenc --enable-vaapi --enable-libshaderc --enable-vulkan --enable-libplacebo --enable-opencl --enable-libcdio --enable-libgme --enable-libmodplug --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libshine --enable-libtheora --enable-libtwolame --enable-libvo-amrwbenc --enable-libcodec2 --enable-libilbc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-ladspa --enable-libbs2b --enable-libflite --enable-libmysofa --enable-librubberband --enable-libsoxr --enable-chromaprint
libavutil      59. 16.101 / 59. 16.101
libavcodec     61.  5.103 / 61.  5.103
libavformat    61.  3.103 / 61.  3.103
libavdevice    61.  2.100 / 61.  2.100
libavfilter    10.  2.101 / 10.  2.101
libswscale      8.  2.100 /  8.  2.100
libswresample   5.  2.100 /  5.  2.100
libpostproc    58.  2.100 / 58.  2.100

Releases

No releases published

Packages

No packages published

Languages