Stream from Raspberry Camera Module to JSMPEG
Prepare your RaspberrPi with the newest Raspberry Pi OS Lite. Make shure it connects to WiFi and SSH is enabled(by creating a file named ssh
in the boot
volume, eg. cd /Volumes/boot
and touch ssh
). Then SSH into your RaspberryPi, update, upgrade and make shure git, ffmpeg and the camera module is installed. Then git clone
in pi home directory:
pi@kamerasau1:~ $ git clone [email protected]:martinschilliger/Kamerasau.git
pi@kamerasau1:~ $ cd Kamerasau/
pi@kamerasau1:~/Kamerasau $ sudo chmod +x jsmpeg.sh
pi@kamerasau1:~/Kamerasau $ sudo chmod +x update.sh
Copy the configuration file and adjust settings to your need. The example is based on our setting with a RaspberryPi Zero W and a bad network connectivity. If you find optimizations we love to hear from you! 🤗
pi@kamerasau1:~/Kamerasau $ cp example-config.txt kamerasau.conf
pi@kamerasau1:~/Kamerasau $ nano kamerasau.conf
Create the service to update the script on startup (simple git pull
and set executions rights) and then continuously run it. Based on http://www.diegoacuna.me/how-to-run-a-script-as-a-service-in-raspberry-pi-raspbian-jessie/
/lib/systemd/system/kamerasauUpdate.service
[Unit]
Description=Update Kamerasau
After=network-online.target
Wants=network-online.target
[Service]
Type=oneshot
User=pi
ExecStart=/home/pi/Kamerasau/update.sh
Restart=no
RemainAfterExit=true
[Install]
WantedBy=multi-user.target
/lib/systemd/system/kamerasau.service
[Unit]
Description=Kamerasau
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
User=pi
ExecStart=/home/pi/Kamerasau/jsmpeg.sh
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
Enable and start the services. systemd-networkd-wait-online.service
is used to wait for the network before starting to stream. 🤷🏻♂️
pi@kamerasau1:~ $ sudo chmod 644 /lib/systemd/system/kamerasauUpdate.service
pi@kamerasau1:~ $ sudo chmod 644 /lib/systemd/system/kamerasau.service
pi@kamerasau1:~ $ sudo systemctl daemon-reload
pi@kamerasau1:~ $ sudo systemctl enable systemd-networkd-wait-online.service
pi@kamerasau1:~ $ sudo systemctl enable kamerasauUpdate.service
pi@kamerasau1:~ $ sudo systemctl enable kamerasau.service
pi@kamerasau1:~ $ sudo systemctl start kamerasauUpdate.service
pi@kamerasau1:~ $ sudo systemctl start kamerasau.service