NAME
Telegram::CamshotBot - Telegram bot that send you a snapshot from IP camera using ffmpeg (don't forget to install it!)
VERSION
version 0.02
RUNNING
Docker way
wget https://raw.githubusercontent.com/pavelsr/camshotbot/master/docker-compose.yml.example > docker-compose.yml
then edit CAMSHOTBOT_* variables and change network if needed
docker-compose up -d
Standalone way
1) Place .camshotbot file in home user directory or camshotbot.conf.json in directory from what you will run camshotbot Add all essential variables: telegram_api_token, stream_url, bot_domain
2) As alternative to (1) you can set all CAMSHOTBOT_* environment variables (see ENVIRONMENT VARIABLES section)
3) run
camshotbot daemon
For performance you can run ffmpeg in a separate "caching" docker container. String below will output a single image that is continuously overwritten with new images
docker run -d -it -v $(pwd):/tmp/workdir --network=host jrottenberg/ffmpeg:3.3-alpine -hide_banner -loglevel error -i rtsp://10.132.193.9//ch0.h264 -f image2 -vf fps=1/3 -y -update 1 latest.jpg
For more details please see docker-compose.yml.example
ENVIRONMENT VARIABLES
Environment variables are always checked firstly, before any config files
To get list of all available environment variables plese run after git clone:
grep -o -P "CAMSHOTBOT_\w+" lib/Telegram/CamshotBot.pm | sort -u
Actual List (useful for Docker deployment):
CAMSHOTBOT_CONFIG
CAMSHOTBOT_DOMAIN
CAMSHOTBOT_FFMPEG_DOCKER
CAMSHOTBOT_LAST_SHOT_FILENAME
CAMSHOTBOT_POLLING
CAMSHOTBOT_STREAM_URL
CAMSHOTBOT_TELEGRAM_API_TOKEN
Check more details about their usage at docker-compose.yml.example
To check which variables are set you can run
printenv | grep CAMSHOTBOT_* | sort -u
For setting environment variable you can use
export CAMSHOTBOT_POLLING=1
DEVELOPMENT
If you want to run unit test without dzil test
prove -l -v t or perl -Ilib
AUTHOR
Pavel Serikov <pavelsr@cpan.org>
COPYRIGHT AND LICENSE
This software is copyright (c) 2017 by Pavel Serikov.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.