forked from Anonymousdog/displaycameras
-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
StreamView Requirements
1. Project Overview
1.1. Project Name
StreamView
1.2. Project Description
StreamView is a fork of the open-source displaycameras project, designed to display IP camera streams on a Raspberry Pi. The primary difference between StreamView and displaycameras is the replacement of omxplayer with VLC for better compatibility and functionality with a broader range of media formats and streaming protocols. StreamView will maintain a lightweight, easy-to-install architecture suitable for resource-limited hardware.
1.3. Objectives
- Fork displaycameras to create a new project: StreamView.
- Replace omxplayer with VLC as the media player for displaying camera streams.
- Maintain compatibility with existing hardware (e.g., Raspberry Pi).
- Ensure StreamView can handle multiple camera streams simultaneously (at least 12).
- Improve ease of use and configuration for end-users.
2. Functional Requirements
2.1. VLC Integration
- Requirement: VLC must be fully integrated as the default media player.
- Details: StreamView should leverage VLC's wide protocol and codec support (RTSP, HLS, HTTP) for streaming.
- Success Criteria: VLC replaces omxplayer across all use cases without loss of functionality. VLC must support video scaling, cropping, and positioning as per configuration.
2.2. Camera Stream Handling
- Requirement: StreamView must be able to display at least 12 simultaneous IP camera streams.
- Details: The software should support various camera stream formats, including but not limited to H.264, MJPEG, and HEVC.
- Success Criteria: Simultaneous streams from multiple cameras must be displayed without significant performance degradation.
2.3. Configuration File Adaptation
- Requirement: Modify the existing configuration files from displaycameras to support VLC-specific options.
- Details: Users should be able to specify VLC-related configurations such as buffering settings, stream protocols, and display window layouts.
- Success Criteria: Configuration files must be updated without changing the overall user experience. Configurations specific to omxplayer will be replaced with corresponding VLC options.
2.4. User Interface (UI)
- Requirement: Maintain a simple command-line based interface for advanced users while ensuring that configuration remains accessible.
- Details: StreamView should offer basic UI improvements if needed for VLC-specific controls.
- Success Criteria: No complex UI changes are necessary unless required for VLC integration.
2.5. Performance Optimizations
- Requirement: StreamView must perform efficiently on Raspberry Pi and similar resource-limited devices.
- Details: Efforts should be made to minimize CPU and memory usage, particularly when running multiple camera streams.
- Success Criteria: CPU and memory usage must stay within acceptable limits during operation.
3. Non-Functional Requirements
3.1. Platform Compatibility
- Requirement: StreamView must be compatible with Raspberry Pi (Raspbian OS) and similar Linux-based devices.
- Details: The application must work seamlessly with lightweight operating systems on hardware with limited resources.
- Success Criteria: The software must run smoothly on Raspberry Pi 3/4 models without significant lag or freezing.
3.2. Scalability
- Requirement: StreamView should support scalability to accommodate different numbers of camera streams as needed.
- Details: The application should allow for scaling from one to at least 12 simultaneous camera streams without significant performance issues.
- Success Criteria: StreamView must handle at least 12 concurrent camera streams without noticeable latency or dropped frames.
3.3. Reliability
- Requirement: The system should be highly reliable and able to recover from network outages or stream interruptions.
- Details: The application must handle temporary stream loss or disconnection and attempt automatic recovery.
- Success Criteria: StreamView should resume operation smoothly after a network outage, without user intervention.
3.4. Security
- Requirement: Implement basic security practices to avoid vulnerabilities when connecting to IP cameras.
- Details: Ensure that VLC integrates with secure protocols like HTTPS and RTSP over TLS where available.
- Success Criteria: StreamView must securely handle IP camera connections and avoid common security pitfalls like open ports or insecure protocols.
4. Technical Specifications
4.1. Languages and Libraries
- Primary Language: Bash or Python (matching the original displaycameras project)
- Player: VLC (replace omxplayer)
- Supported Protocols: RTSP, HTTP, HTTPS, HLS, UDP
4.2. Hardware Requirements
- Target Hardware: Raspberry Pi 3/4, other similar devices
- Memory: Minimum 1 GB of RAM recommended
- Storage: At least 4 GB free space for OS, software, and logs
5. Installation and Setup
5.1. Dependencies
- VLC Media Player
- Bash or Python (matching the original setup)
5.2. Installation Instructions
- Provide step-by-step installation instructions for users, covering:
- Setting up VLC
- Configuring the StreamView service
- Configuring camera streams
6. Testing and Validation
6.1. Unit Testing
- Test integration of VLC for different stream formats.
- Ensure that configurations load and apply correctly.
6.2. Performance Testing
- Test the system with multiple camera streams (e.g., 12) and measure CPU, memory usage, and latency.
6.3. Failure Recovery Testing
- Test recovery from network outages, stream disconnection, or VLC crashes.
Metadata
Metadata
Assignees
Labels
No labels