CreatBotCrowsnest/libs/init_stream.sh
Stephan Wendel 95c1dca13f
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>
2023-03-11 18:57:19 +01:00

57 lines
1.6 KiB
Bash
Executable File

#!/bin/bash
#### Init Stream library
#### crowsnest - A webcam Service for multiple Cams and Stream Services.
####
#### Written by Stephan Wendel aka KwadFan <me@stephanwe.de>
#### Copyright 2021
#### https://github.com/mainsail-crew/crowsnest
####
#### This File is distributed under GPLv3
####
# shellcheck enable=require-variable-braces
# Exit upon Errors
set -Ee
## Start Stream Service
# sleep to prevent cpu cycle spikes
function construct_streamer {
local cams sleep_pid
# See configparser.sh L#53
log_msg "Try to start configured Cams / Services..."
for cams in $(configured_cams); do
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}" )
;;
?|*)
unknown_mode_msg
MJPG_INSTANCES+=( "${cams}" )
;;
esac
done
if [ "${#MULTI_INSTANCES[@]}" != "0" ]; then
run_multi "${MULTI_INSTANCES[*]}"
fi
if [ "${#MJPG_INSTANCES[@]}" != "0" ]; then
run_mjpg "${MJPG_INSTANCES[*]}"
fi
sleep 2 & sleep_pid="$!" ; wait "${sleep_pid}"
log_msg " ... Done!"
}