birdnet-go icon indicating copy to clipboard operation
birdnet-go copied to clipboard

Enhancing RTSP Audio Stream Analysis in BirdNET-Go

Open tphakala opened this issue 4 months ago • 11 comments

Background

Currently, BirdNET-Go supports only a single RTSP stream. There is a need to develop a solution that allows for the support of multiple streams.

Things to Consider

1. Architecture for Supporting Multiple Streams

  • Single vs. Multiple Processes: Determine whether a single BirdNET-Go process should handle multiple streams or if this functionality should be distributed across multiple BirdNET-Go instances, each updating a single database.

2. Audio Processing Strategy

  • Downmixing vs. Individual Analysis: If opting for a single process approach, should audio from multiple RTSP streams be downmixed into a single stream for processing, or should each stream be analyzed individually? This decision involves trade-offs with simplicity, performance, and detection accuracy.

3. Performance and Limitations

  • Inference Performance: With the potential increase in audio streams, BirdNET's inference performance must be carefully considered. The number of streams that can be effectively supported is limited by the hardware used by the user.

4. User Interface Changes

  • User Interface Changes: What changes are needed for the Web UI in the case of multiple audio stream sources?

5. Implementation of RTSP Stream Analysis

  • Native Go vs. FFmpeg Approach: Assess whether RTSP stream analysis should be implemented natively in Go, moving away from the current reliance on FFmpeg. FFmpeg has proven reliable and supports a wide range of audio codecs, Go has a limited set of audio libraries available for audio decoding.

This issue aims to gather feedback, suggestions, and potential contributions from the community to address these considerations comprehensively.

tphakala avatar Apr 06 '24 10:04 tphakala