55 lines
1.3 KiB
Bash
Executable File
55 lines
1.3 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
COLOR_NC='\033[0m' # No Color
|
|
COLOR_WHITE='\033[1;37m'
|
|
COLOR_BLACK='\033[0;30m'
|
|
COLOR_BLUE='\033[0;34m'
|
|
COLOR_LIGHT_BLUE='\033[1;34m'
|
|
COLOR_GREEN='\033[0;32m'
|
|
COLOR_LIGHT_GREEN='\033[1;32m'
|
|
COLOR_CYAN='\033[0;36m'
|
|
COLOR_LIGHT_CYAN='\033[1;36m'
|
|
COLOR_RED='\033[0;31m'
|
|
COLOR_LIGHT_RED='\033[1;31m'
|
|
COLOR_PURPLE='\033[0;35m'
|
|
COLOR_LIGHT_PURPLE='\033[1;35m'
|
|
COLOR_BROWN='\033[0;33m'
|
|
COLOR_YELLOW='\033[1;33m'
|
|
COLOR_GRAY='\033[1;30m'
|
|
COLOR_LIGHT_GRAY='\033[0;37m'
|
|
|
|
COLORS=( $COLOR_BLUE $COLOR_CYAN $COLOR_PURPLE $COLOR_BROWN $COLOR_YELLOW $COLOR_GRAY )
|
|
|
|
run_camera() {
|
|
local name="$1"
|
|
shift
|
|
|
|
job_nb=$(jobs -p -r | wc -l)
|
|
color_idx=$(($job_nb%${#COLORS[@]}))
|
|
color=${COLORS[$color_idx]}
|
|
port=$((8080+$job_nb))
|
|
|
|
./camera-streamer --http-port=$port --camera-fps=20 --camera-force_active --log-stats "$@" |&
|
|
ts "$(printf "$color%%H:%%M:%%S %10s |$COLOR_NC" "$name")" &
|
|
}
|
|
|
|
trap 'jobs -p -r | xargs -r kill; wait' EXIT
|
|
|
|
export FAKE_CAMERA_SENSOR=arducam_64mp=imx519
|
|
|
|
set -eo pipefail
|
|
|
|
make -j$(nproc)
|
|
|
|
run_camera csi --camera-type=libcamera --camera-format=YUYV --camera-path=i2c0mux --camera-fps=20 "$@"
|
|
|
|
for usbcam in /dev/v4l/by-id/usb-*-video-index0; do
|
|
name=$(basename "$usbcam")
|
|
name="${name#usb-}"
|
|
name="${name%%-video-index0}"
|
|
name="${name:0:10}"
|
|
run_camera "$name" --camera-path="$usbcam" --camera-format=MJPEG --camera-fps=30 "$@"
|
|
done
|
|
|
|
wait
|