feat!: adds camera-streamer to crowsnest

This introduces camera-streamer as streamer option
via `mode: multi`

camera-streamer is a feature packed stream service.
It is capable to deliver mjpg/snapshots/webrtc and rtsp

Limited to raspberry pi sbc's for now.

This should also resolv
Feature request #51
Feature request #37
Fixes #83
Closes #85
Fixes #89

BREAKING CHANGES:

Dropping support for Debian Buster based images and kernels older than
5.15y

Dropping RTSP support due aler9/simple-rtsp-server

Dropping usage of ffmpeg

No support anymore for Raspicam V1 (EOL)

Signed-off-by: Stephan Wendel <me@stephanwe.de>

Signed-off-by: Stephan Wendel <me@stephanwe.de>
This commit is contained in:
Stephan Wendel
2023-03-11 18:57:19 +01:00
parent 20ed6a8b58
commit 95c1dca13f
25 changed files with 578 additions and 764 deletions

View File

@@ -26,12 +26,18 @@ function construct_streamer {
mode="$(get_param "cam ${cams}" mode)"
check_section "${cams}"
case ${mode} in
[mM]ulti)
if [[ "$(is_raspberry_pi)" = "1" ]]; then
MULTI_INSTANCES+=( "${cams}" )
else
log_msg "WARN: Mode 'multi' is not supported on your device!"
log_msg "WARN: Falling back to Mode 'mjpg'"
MJPG_INSTANCES+=( "${cams}" )
fi
;;
mjpg | mjpeg)
MJPG_INSTANCES+=( "${cams}" )
;;
rtsp)
RTSP_INSTANCES+=( "${cams}" )
;;
?|*)
unknown_mode_msg
MJPG_INSTANCES+=( "${cams}" )
@@ -39,12 +45,12 @@ function construct_streamer {
;;
esac
done
if [ "${#MULTI_INSTANCES[@]}" != "0" ]; then
run_multi "${MULTI_INSTANCES[*]}"
fi
if [ "${#MJPG_INSTANCES[@]}" != "0" ]; then
run_mjpg "${MJPG_INSTANCES[*]}"
fi
if [ "${#RTSP_INSTANCES[@]}" != "0" ]; then
run_rtsp "${RTSP_INSTANCES[*]}"
fi
sleep 2 & sleep_pid="$!" ; wait "${sleep_pid}"
log_msg " ... Done!"
}