pepogmail4pic

最初に

pepogmail4picとはPepoLinux-0.60以降に収録されているUSB接続のWEBカメラで動画を取得してメールプログラムを起動する、ちょっとしたプログラムです。

pepogmail4dioから起動されるプログラムで例えばSubjectに『dio_get 9』を設定して監視用gmailのアドレスへ送信すると数秒の動画を記録、添付メールで返信する事が出来ます。

PepoLinuxに収録されているプログラムを必要とするので単独では動作しませんが、現地のイベント&アクションでペットや制御機器の動画で遠隔地の状態監視や防犯などのプログラムに応用出来ると思います。

更新履歴

2012.7.11:ファーストリリース

o pepogmail4dioからUSB接続のWEBカメラで静止画を取得してメールプログラムを起動できるようにした。

2012.10.7:タイマー値などチューニング

o 動画を取得してメールプログラムを起動できるようにした。

  1. #!/bin/sh
  2. # licence GPLv2 ; this scripts designed by IZAMUKARERA 2012.7.11 update 2012.10.7
  3. # pepogmail4pic ; get video or jpeg & send mail
  4. # pepogmail4pic mail_to subject message
  5. # wget_mail.sh $1:mail_to, $2:subject, $3:message ,$4:image.mp4
  6. #IMAGE=remote_hand.jpeg
  7. IMAGE=remote_hand.mp4
  8. OPTION="-t 8"
  9. WORKDIR=/var/www/html/remote-hand/tmp
  10. WORKIMAGE=${WORKDIR}/${IMAGE}
  11. WGETMAIL=/pepolinux/wget_mail.sh
  12. MAIL_TO=$1
  13. if [ $# = 0 ];then
  14. echo "usage :$0 mail_to | subject | message"
  15. exit
  16. fi
  17. [ ! -z $2 ] && SUBJECT="$2"
  18. [ -z $2 ] && SUBJECT="remote_hand+picture"
  19. [ ! -z $3 ] && MESSAGE="$3"
  20. [ -z $3 ] && MESSAGE="remote_hand+picture"
  21. prog=peposendmail4pic
  22. pidfile=/var/run/$prog.pid
  23. error(){
  24. [ -e $WORKIMAGE ] && rm -f $WORKIMAGE
  25. [ -e $pidfile ] && rm -f $pidfile
  26. exit 0
  27. }
  28. trap error SIGINT SIGTERM SIGHUP SIGKILL
  29. while [ -e ${pidfile} ]
  30. do
  31. msleep 100
  32. done
  33. VIDEO=/dev/video
  34. if [ -e "$VIDEO" ];then
  35. echo -en $$ >$pidfile
  36. [ -e $WORKIMAGE ] && rm -f $WORKIMAGE
  37. ffmpeg $OPTION -f video4linux2 -s 640x480 -i /dev/video0 -y $WORKIMAGE >/dev/null 2>&1
  38. msleep 1000
  39. if [ ! -e $WORKIMAGE ];then
  40. [ -e ${pidfile} ] && rm -f ${pidfile}
  41. exit -1
  42. fi
  43. else
  44. echo "Video device is not connected -> $VIDEO"
  45. [ -e ${pidfile} ] && rm -f ${pidfile}
  46. exit -1
  47. fi
  48. if [ -e $WORKIMAGE ];then
  49. $WGETMAIL $MAIL_TO $SUBJECT $MESSAGE $IMAGE
  50. rm -f $WORKIMAGE
  51. rm -f ${pidfile}
  52. fi