All Projects → benjamin-maynard → Pi Camera In A Box

benjamin-maynard / Pi Camera In A Box

Stream your Raspberry Pi Camera Module directly to your web browser

Projects that are alternatives of or similar to Pi Camera In A Box

Homekitcam
A project to make a Raspberry Pi driven, HomeKit Enabled camera.
Stars: ✭ 69 (+40.82%)
Mutual labels:  raspberry-pi, raspberry-pi-3, raspberry-pi-camera
Homebridge Raspbian Image
Official Homebridge Raspberry Pi Image based on Raspbian Lite.
Stars: ✭ 534 (+989.8%)
Mutual labels:  raspberry-pi, raspberry-pi-3, ffmpeg
Fotobox
Python based photo-booth script for Raspberry Pi and RPi Camera
Stars: ✭ 22 (-55.1%)
Mutual labels:  raspberry-pi, raspberry-pi-3, raspberry-pi-camera
webcam-to-cctv-using-rpi
In this project, we will use a webcam with Raspberry Pi to live stream wirelessly.
Stars: ✭ 17 (-65.31%)
Mutual labels:  cctv, raspberry-pi-camera, raspberry-pi-3
Raspberryio
The Raspberry Pi's IO Functionality in an easy-to-use API for Mono/.NET/C#
Stars: ✭ 593 (+1110.2%)
Mutual labels:  raspberry-pi, raspberry-pi-3, raspberry-pi-camera
Rpisurv
Raspberry Pi surveillance
Stars: ✭ 293 (+497.96%)
Mutual labels:  raspberry-pi, raspberry-pi-3, raspberry-pi-camera
Pibooth
The pibooth project provides a Photo Booth application out-of-the-box for Raspberry Pi and opencv compatible devices
Stars: ✭ 398 (+712.24%)
Mutual labels:  raspberry-pi, raspberry-pi-camera
Rpi Webrtc Streamer
This repo's objective is providing something like Web Cam server on the most popular Raspberry PI hardware. By integrating [WebRTC](https://webrtc.org/native-code/) and Raspberry PI, we can stream the Raspberry camera feed to browser or native client which talks WebRTC.
Stars: ✭ 428 (+773.47%)
Mutual labels:  raspberry-pi, raspberry-pi-camera
Iptv
一键安装管理 FFmpeg / nginx / openresty / xray / v2ray / armbian / proxmox / cloudflare partner,workers / ibm cloud foundry 脚本
Stars: ✭ 481 (+881.63%)
Mutual labels:  ffmpeg, nginx
Rak8s
Stand up a Raspberry Pi based Kubernetes cluster with Ansible
Stars: ✭ 354 (+622.45%)
Mutual labels:  raspberry-pi, raspberry-pi-3
Janus Webrtc Gateway Docker
Perfect Docker Image for Media Streaming Expert User ( https://github.com/meetecho/janus-gateway )
Stars: ✭ 582 (+1087.76%)
Mutual labels:  ffmpeg, nginx
Enclosure Picroft
Mycroft interface for Raspberry Pi environment
Stars: ✭ 649 (+1224.49%)
Mutual labels:  raspberry-pi, raspberry-pi-3
Fiscalberry
[JSON ↔ HW] Connect things using JSON API with the fiscalberry websocket server interact easily with any kind of Hardware. Another IoT solution...
Stars: ✭ 44 (-10.2%)
Mutual labels:  raspberry-pi, raspberry-pi-3
Pycnc
Python CNC machine controller for Raspberry Pi and other ARM Linux boards
Stars: ✭ 390 (+695.92%)
Mutual labels:  raspberry-pi, raspberry-pi-3
Pi Timolo
Raspberry PI-TIMOLO ( PI-TImelapse, MOtion, LOwLight ) uses RPI picamera and OpenCV for Remote Headless Security Monitoring using Motion Tracking, Rclone Auto Sync files with remote storage services. Auto Twilight Transitions and Low Light Camera Settings. Panoramic images using PanTiltHat and More. This project is featured on GitHub Awesome software.
Stars: ✭ 441 (+800%)
Mutual labels:  raspberry-pi, raspberry-pi-camera
Nimbus Eth1
Nimbus: an Ethereum 1.0 and 2.0 Client for Resource-Restricted Devices
Stars: ✭ 386 (+687.76%)
Mutual labels:  raspberry-pi, raspberry-pi-3
Pistreaming
A little demo of streaming the Pi's camera to web browsers
Stars: ✭ 655 (+1236.73%)
Mutual labels:  raspberry-pi, raspberry-pi-camera
Raspberryrobot
基于树莓派的智能机器人
Stars: ✭ 11 (-77.55%)
Mutual labels:  raspberry-pi, raspberry-pi-camera
Gassistpi
Google Assistant for Single Board Computers
Stars: ✭ 911 (+1759.18%)
Mutual labels:  raspberry-pi, raspberry-pi-3
Rust Raspberrypi Os Tutorials
📚 Learn to write an embedded OS in Rust 🦀
Stars: ✭ 7,275 (+14746.94%)
Mutual labels:  raspberry-pi, raspberry-pi-3

Pi-Camera-in-a-box

Current Version: 1.00 (Changelog)

Pi-Camera-in-a-box will take a vanilla Raspberry Pi with a Camera Module, and stream the footage directly to your web browser. The stream resolution, FPS and Bitrate are fully configurable. Pi-Camera-in-a-box is capable of streaming 1080P, 25FPS video from a Raspberry Pi Zero.

Pi-Camera-in-a-box uses raspivid to capture the video, FFmpeg to encode, and nginx compiled with the nginx-rtmp module to deliver a HLS steam. This is displayed on a custom Web UI that uses video.js to display in the browser.

Pi-Camera-in-a-box is fully Dockerized, removing the complexity of configuring all of these components manually.

Note: Pi-Camera-in-a-box compiles FFMpeg, and Nginx with the RTMP module from source. This can take a long time on a Pi (8+ hours). Consequently I have built these images and pushed them to Docker Hub, this will save you significant time. If you would rather build the containers yourself, replace the docker-compose pull below with docker-compose build.

Pre-Requisites

  1. Vanilla Raspberry Pi running Raspian Stretch Light. Needs to be connected to the network, with SSH access enabled. To configure a headless Pi with SSH access enabled and Wi-Fi configured, see this post
  2. Raspberry Pi Camera Module connected and enabled through raspi-config

Recommendations

  1. Make sure you have performed basic security hardening on your Pi (default password, SSH keys, etc)
  2. This project does not currently implement HTTPS. If you are accessing externally, perform either over VPN or a Reverse Proxy with SSL enabled

Installation Instructions - Quickest Way

## Upgrade System
apt-get update && apt-get upgrade -y

## Install Git, Python, Python-PIP
apt-get install git python-pip -y

## Install Docker
curl -sSL https://get.docker.com | sh

## Install docker-compose
pip install docker-compose

## Clone this Repository
git clone https://github.com/benjamin-maynard/Pi-Camera-in-a-box.git

## Change into Repository
cd Pi-Camera-in-a-box

## Edit config file with desired configuration settings (see below for explanation).
nano config

## Pull Pre-Compiled Images - This will also take a long time.
docker-compose pull

## Start Containers
docker-compose up -d

Wait around 60 seconds, and then visit http://YOUR-CAMERA-IP/ui. You will be prompted for the credentials that you earlier defined. You should now be able to see the live feed from your camera.

IMPORTANT: Please make sure you append the /ui to the web address. Otherwise you will be presented with a 401 error. I will implement a redirect at some point in the near future.

Configuration Settings

Setting Purpose
CAMERA_NAME This setting configures the camera name. It will be displayed in the Web UI to help you identify the camera.
AUTHORISED_USERS The Web UI is protected with HTTP Authentication. This value configures the usernames and passwords allowed to access the stream.

The format is <USERNAME>:<PASSWORD>, for example benjaminmaynard:securepassword. Multiple users can be configured by separating the username and password combinations with an exclamation mark. For example, benjaminmaynard:securepassword!bensfriend:securepassword
FRAMES_PER_SECOND This configures how many Frames Per Second the stream should be. Pi-Camera-in-a-box has been tested up to 25FPS with a 1920x1080 resolution on a Pi Zero. You can probably go higher.
STREAM_WIDTH The stream width in pixels, default 1920 (1080p). Depending on where your camera is placed experiment with higher and lower resolutions. I've found lower resolutions are better for a bigger field of view in the house.
STREAM_HEIGHT The stream hight in pixels, default 1080 (1080p). Depending on where your camera is placed experiment with higher and lower resolutions. I've found lower resolutions are better for a bigger field of view in the house
STREAM_BITRATE The stream bitrate in bytes
FLIP_HORIZONTALLY (yes/no) Should the video be flipped horizontally (mirror view). This is useful depending on the orientation of your camera
FLIP_VERTICALLY (yes/no) Should the video be flipped vertically? This is useful if your camera is mounted upside down

Screenshot

Pi-Camera-in-a-box

Thanks...

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].