First run attempt using this configuration

This commit is contained in:
Samuel Ortion 2022-06-30 18:28:59 +02:00
parent 0a81153e01
commit 4ee9917dc1
6 changed files with 102 additions and 19 deletions

2
.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
.venv/

16
Makefile Normal file
View File

@ -0,0 +1,16 @@
all: run
run:
./rec.sh
install:
sudo cp ./src/rec.sh /usr/local/bin/rec.sh
sudo cp ./conf/nbmrec.service /etc/systemd/system/nbmrec.service
sudo cp ./conf/nbmrec.timer /etc/systemd/system/nbmrec.timer
sudo systemctl daemon-reload
sudo systemctl enable nbmrec.timer
uninstall:
sudo rm -rf /usr/local/bin/rec.sh
sudo rm -rf /etc/systemd/system/nbmrec.service /etc/systemd/system/nbmrec.timer
sudo systemctl daemon-reload

View File

@ -1,3 +1,9 @@
# NBMrec
Daemon recorder for nocturnal bird migration
Daemon recorder for nocturnal bird migration
## Reference
- [audio recording using python](https://realpython.com/playing-and-recording-sound-python/)
- [audio recording from command line](https://superuser.com/questions/1570333/how-can-i-record-audio-output-from-command-line-in-linux)

11
conf/nbmrec.service Normal file
View File

@ -0,0 +1,11 @@
[Unit]
Description=NBMrec daemon nocturnal bird migration service
[Service]
Type=oneshot
User=1000
ExecStart=/usr/local/bin/nmbrec.sh -d night
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target

10
conf/nbmrec.timer Normal file
View File

@ -0,0 +1,10 @@
[Unit]
Description=Record bird migration every night
[Timer]
OnCalendar=*-*-* 22:00
Unit=nbmrec.service
[Install]
WantedBy=basic.target

View File

@ -8,26 +8,64 @@ RECORD_DIR="/mnt/DATA/media/records"
RECORD_DATE=$(date +"%Y-%m-%d")
RECORD_FILENAME=$(date +"%Y%m%d_%H%M%S")
RECORD_FILEPATH="${RECORD_DIR}/${RECORD_DATE}/${RECORD_FILENAME}.wav" 
RECORD_DURATION=$1
RECORD_DURATION=60
usage() {
echo "Usage: $0 [ -d <duration> ] [ -f <filename> ]"
echo " -d <duration> : duration of the recording in seconds or 'night' for all night recording"
echo " -f <filename> : filename of the recording"
echo " -h : display this help"
echo " -v : switch to verbose mode"
}
# Get command line options
while getopts ":hd:f:" opt; do
case $opt in
h)
usage
;;
d)
RECORD_DURATION=$OPTARG
if [ "$RECORD_DURATION" == "night" ]; then
RECORD_DURATION=32400
fi
;;
f)
RECORD_FILEPATH=$OPTARG
;;
\?)
echo "Invalid option: -$OPTARG" >&2
exit 1
;;
:)
echo "Option -$OPTARG requires an argument." >&2
exit 1
;;
esac
done
verbose=false
# Create output folder
if $verbose
then
echo "Creating record output folder"
fi
mkdir -p "$RECORD_DIR/$RECORD_DATE/"
main() {
# Create output folder
if $verbose
then
echo "Creating record output folder"
fi
mkdir -p "$RECORD_DIR/$RECORD_DATE/"
# Perform recording
if $verbose
then
echo "Recording $RECORD_FILENAME"
fi
rec -b 16 -r 48000 -c 1 -t wav $RECORD_FILEPATH trim 0 $RECORD_DURATION
# Perform recording
if $verbose
then
echo "Recording $RECORD_FILENAME"
fi
rec -b 16 -r 48000 -c 1 -t wav $RECORD_FILEPATH trim 0 $RECORD_DURATION
if $verbose
then
echo "Done"
fi
exit 0
if $verbose
then
echo "Done"
fi
}
main
exit 0