### base variables SYSTEMDDIR="/etc/systemd/system" WEBCAMD_SRC="https://raw.githubusercontent.com/raymondh2/MainsailOS/master/src/modules/mjpgstreamer/filesystem/home/root/bin/webcamd" WEBCAM_TXT_SRC="https://raw.githubusercontent.com/raymondh2/MainsailOS/master/src/modules/mjpgstreamer/filesystem/boot/mainsail.txt" install_mjpg-streamer(){ ### if there is a webcamd.service -> exit if [ -e $SYSTEMDDIR/webcamd.service ]; then ERROR_MSG="Looks like MJPG-streamer is already installed!\n Please remove it first before you try to re-install it!" print_msg && clear_msg && return 0 fi ### checking dependencies check_klipper_cfg_path ### set path for the webcam config textfile WEBCAM_TXT="$klipper_cfg_loc/webcam.txt" ### check and install dependencies if missing dep=(build-essential git imagemagick libv4l-dev libjpeg-dev libjpeg62-turbo-dev cmake) dependency_check ### step 1: clone moonraker status_msg "Downloading MJPG-Streamer ..." cd ${HOME} && git clone https://github.com/jacksonliam/mjpg-streamer.git ok_msg "Download complete!" ### step 2: compiling mjpg-streamer status_msg "Compiling MJPG-Streamer ..." cd ${HOME}/mjpg-streamer/mjpg-streamer-experimental && make ok_msg "Compiling complete!" #step 3: install mjpg-streamer status_msg "Installing MJPG-Streamer ..." cd ${HOME}/mjpg-streamer && mv mjpg-streamer-experimental/* . mkdir www-mjpgstreamer cat <> ./www-mjpgstreamer/index.html mjpg_streamer test page

Snapshot

Refresh the page to refresh the snapshot

Snapshot

Stream

Stream EOT sudo wget $WEBCAMD_SRC -O "/usr/local/bin/webcamd" sudo sed -i "/MJPGSTREAMER_HOME/ s/pi/${USER}/" /usr/local/bin/webcamd sudo sed -i "/^cfg_files+=/ s|=.*|=$WEBCAM_TXT|" /usr/local/bin/webcamd sudo chmod +x /usr/local/bin/webcamd ### step 4: create webcam.txt config file if [ ! -f $WEBCAM_TXT ]; then ### create the config dir if it doesn't exist if [ ! -d $klipper_cfg_loc ]; then status_msg "Creating $klipper_cfg_loc ..." mkdir -p $klipper_cfg_loc fi status_msg "Creating webcam.txt config file ..." wget $WEBCAM_TXT_SRC -O $WEBCAM_TXT ok_msg "Done!" fi ### step 5: create systemd service status_msg "Creating MJPG-Streamer service ..." sudo /bin/sh -c "cat > ${SYSTEMDDIR}/webcamd.service" << EOF [Unit] Description=Starts mjpg-streamer on startup After=network.target [Install] WantedBy=multi-user.target [Service] Type=forking User=${USER} WorkingDirectory=/usr/local/bin StandardOutput=append:/var/log/webcamd.log StandardError=append:/var/log/webcamd.log ExecStart=/usr/local/bin/webcamd Restart=always RestartSec=10 EOF ### step 6: enabling and starting mjpg-streamer service status_msg "Starting MJPG-Streamer service ..." sudo systemctl enable webcamd.service sudo systemctl start webcamd.service ok_msg "MJPG-Streamer service started!" ### confirm message CONFIRM_MSG="MJPG-Streamer has been set up!" print_msg && clear_msg ### print webcam ip adress/url IP=$(hostname -I | cut -d" " -f1) WEBCAM_IP="http://$IP:8080/?action=stream" WEBCAM_URL="http://$IP/webcam/?action=stream" echo -e " ${cyan}● Webcam URL:${default} $WEBCAM_IP" echo -e " ${cyan}● Webcam URL:${default} $WEBCAM_URL" echo }