/camera-snapshot

Schedule web camera snapshot capturing and save image to S3

Primary LanguagePython

camera-snapshot

This service takes web camera snapshots via FFmpeg at a specified time period and uploads them to S3 bucket.

Usage

The project requires FFmpeg to be installed. If deploying to Heroku, then this FFmpeg build pack can be used.

All settings are configured in a single config.yml file. Check the sources for all available properties and it's descriptions. Minimal setup requires FFmpeg exeutable path, cameras config and S3 credentials, for example:

time_period_sec: 3600 # 1 hour

ffmpeg:
  bin: '/usr/bin/ffmpeg'

cameras:
- !!python/object:webcam.Camera
  name: 'Some camera name'
  uri: 'http://video1.example.com/camera.m3u8'
  
s3:
  bucket_name: 'my_camera_photos'

It's recommended not to leave your S3 access keys inside config file. All config.yml properties can be overridden via environment variables by joining nested property keys with underscores, for example:

export S3_ACCESS_KEY="SOMEACCESSKEY"
export S3_SECRET_KEY="SOMESECRETKEY"

Same applies for Config Vars if using Heroku.

In the picture

How it works