Raspberry Piで監視カメラ5 画像をエンコード編
動画は周辺がカットされたり画質が汚いので静止画をまとめて動画にエンコードすることにしました。
画像のファイル名はmotion側でも指定できるが今回はシェルスクリプト側で連番に直してからffmpegに渡しています。
$ sudo vi /etc/motion/motion.conf
daemon on
width 1920
height 1080
framerate 10
quality 90
output_pictures on
threshold 3000
noise_level 96
ffmpeg_output_movies off
on_event_end /var/motion_setting/send3.sh
on_movie_end none
$ cp /var/motion_setting/send.sh /var/motion_setting/send3.sh
$ vi /var/motion_setting/send3.sh
#!/bin/sh
files="/var/motion/"
i=0
for f in $(ls -1 ${files} | grep \.jpg$ | sort -t'-' -k2h)
do
mv "$f" $(printf "mov%04d.jpg" $i)
i=`expr $i + 1`
done
ffmpeg -r 10 -i /var/motion/mov%04d.jpg -b:v 20000000 -r 10 -an -vcodec libx264 /var/motion/mov.mp4
mutt -s "監視カメラ" "メールアドレス" -a "/var/motion/mov.mp4"<"/var/motion_setting/message.txt"
sleep 3
rm /var/motion/*
$ sudo service motion restart
出来はしましたが動画の再圧縮はRaspberry Pi Zero Wには重すぎて実用的では無かったので諦めました。
Tags: ffmpeg, Raspberry Pi, エンコード, 監視カメラ