Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

describe the architecture #30

Open
2 tasks done
aleeusgr opened this issue Dec 30, 2023 · 4 comments
Open
2 tasks done

describe the architecture #30

aleeusgr opened this issue Dec 30, 2023 · 4 comments

Comments

@aleeusgr
Copy link
Owner

aleeusgr commented Dec 30, 2023

Create a high-level design document outlining the architecture of the new cloud service. This should include an overview of components, data flow, interfaces with other systems (e.g., CCTV cameras), security considerations, and expected performance metrics.

Details

Video Management Software (VMS): VMS is a centralized software application that manages and controls multiple cameras, encoders, and other components of the system. It provides features like video streaming, recording, playback, and search capabilities for stored footage. Some popular VMS solutions include Milestone Systems, Genetec, and iSight.
examples:

Video Streaming Servers: These servers are responsible for delivering live video streams to clients (such as web browsers, mobile apps, or security monitoring software) over the internet. Popular streaming server solutions include Nginx, Apache HTTP Server, and Wowza Media Server.

Camera Management Module: This module is responsible for connecting to the CCTV cameras, obtaining their streams, and processing them before sending them to clients or storage systems. It should support various protocols like RTSP, ONVIF, etc., to ensure compatibility with a wide range of camera models. The module will also handle camera registration, configuration management, and notifications for events such as motion detection or low-quality streams.

Stream Processing Module: This component is responsible for processing the video streams received from cameras. It can perform tasks like image analysis (e.g., detecting objects, identifying faces), video compression, encryption, or other transformations based on user requirements and preferences. The processed data will be stored in a database or sent to clients as required.

@aleeusgr aleeusgr mentioned this issue Jan 3, 2024
8 tasks
@aleeusgr
Copy link
Owner Author

aleeusgr commented Jan 3, 2024

@aleeusgr
Copy link
Owner Author

aleeusgr commented Jan 6, 2024

I worked on the Twitch video system for nearly 10 years. It started as a Python monolith, a C transcoder using libav (ffmpeg), and some open source HTTP proxies. It's now Go microservices and the same C transcoder. We were exploring Rust before I left but mostly in the context of reducing the CPU cost of network delivery; the type of optimization you can only make at a huge scale. I would personally use Rust for much of the video system today if I were to start from scratch.

https://www.reddit.com/r/rust/comments/14av5jm/how_good_is_rust_for_video_processing/

@aleeusgr aleeusgr closed this as completed Jan 6, 2024
@aleeusgr aleeusgr reopened this Jan 7, 2024
@aleeusgr
Copy link
Owner Author

aleeusgr commented Jan 7, 2024

video streaming servers:
#36

@aleeusgr
Copy link
Owner Author

aleeusgr commented Jan 7, 2024

Video Management System

https://codeberg.org/SentryShot/sentryshot

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant