{"id":19436538,"url":"https://github.com/mvarrone/check-rtsp-camera-status","last_synced_at":"2025-02-25T06:47:02.232Z","repository":{"id":245997591,"uuid":"819261904","full_name":"mvarrone/check-rtsp-camera-status","owner":"mvarrone","description":"Monitoring Availability of Multiple RTSP IP Cameras","archived":false,"fork":false,"pushed_at":"2024-09-22T04:56:09.000Z","size":18,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-07T21:13:03.431Z","etag":null,"topics":["concurrent-programming","ipcam","ipcamera","processpoolexecutor","python","rtsp","status","url"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mvarrone.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-06-24T06:54:59.000Z","updated_at":"2024-09-22T04:56:12.000Z","dependencies_parsed_at":"2024-06-25T09:33:38.021Z","dependency_job_id":null,"html_url":"https://github.com/mvarrone/check-rtsp-camera-status","commit_stats":null,"previous_names":["mvarrone/check-rtsp-camera-status"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mvarrone%2Fcheck-rtsp-camera-status","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mvarrone%2Fcheck-rtsp-camera-status/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mvarrone%2Fcheck-rtsp-camera-status/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mvarrone%2Fcheck-rtsp-camera-status/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mvarrone","download_url":"https://codeload.github.com/mvarrone/check-rtsp-camera-status/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240619429,"owners_count":19830204,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["concurrent-programming","ipcam","ipcamera","processpoolexecutor","python","rtsp","status","url"],"created_at":"2024-11-10T15:11:40.789Z","updated_at":"2025-02-25T06:47:02.194Z","avatar_url":"https://github.com/mvarrone.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Camera monitoring\n\n## 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.\n\n### Explanation\n\n* ProcessPoolExecutor used in order to connect to the cameras in parallel and reduce the amount of time needed to complete this task\n* It provides some stats at the end of the execution. Check [sample_execution_results.txt](https://github.com/mvarrone/check-rtsp-camera-status/blob/master/sample_execution_results.txt)\n* 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:\n\nExample\n\n```python\n[\n        {\n                \"protocol\": \"rtsp\",\n                \"username\": \"admin1\",\n                \"password\": \"password1\",\n                \"domain\": \"domain1.dyndns.org\",\n                \"port\": 554,\n                \"path\": \"/Streaming/Channels/\",\n                \"camera_number\": 101\n        },\n        {\n                \"protocol\": \"rtsp\",\n                \"username\": \"user\",\n                \"password\": \"password2\",\n                \"domain\": \"domain2.dyndns.org\",\n                \"port\": 554,\n                \"path\": \"/Streaming/Channels/\",\n                \"camera_number\": 401\n        }\n]\n```\n\n### RTSP IP Camera URL example\n\n```bash\nrtsp://admin:password@domain.dyndns.org:554/Streaming/Channels/101\n```\n\nAgain, 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\n\nSame for [sample_execution_results.txt](https://github.com/mvarrone/check-rtsp-camera-status/blob/master/sample_execution_results.txt): In this file, sensitive parameters are faked as well\n\n## Requirements\n\n1. [*Python 3.12.2*](https://www.python.org)\n2. [*ffmpeg*](https://www.ffmpeg.org)\n\n```bash\nffmpeg version 2024-04-29-git-cf4af4bca0-full_build-www.gyan.dev Copyright (c) 2000-2024 the FFmpeg developers\n\nbuilt with gcc 13.2.0 (Rev5, Built by MSYS2 project)\nconfiguration: --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\nlibavutil      59. 16.101 / 59. 16.101\nlibavcodec     61.  5.103 / 61.  5.103\nlibavformat    61.  3.103 / 61.  3.103\nlibavdevice    61.  2.100 / 61.  2.100\nlibavfilter    10.  2.101 / 10.  2.101\nlibswscale      8.  2.100 /  8.  2.100\nlibswresample   5.  2.100 /  5.  2.100\nlibpostproc    58.  2.100 / 58.  2.100\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmvarrone%2Fcheck-rtsp-camera-status","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmvarrone%2Fcheck-rtsp-camera-status","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmvarrone%2Fcheck-rtsp-camera-status/lists"}