web-server cam live streaming Using RPi

shape
shape
shape
shape
shape
shape
shape
shape
blog-details
December, 2019

DEPENDENCY:  

  • Before installation Adafruit IO first check all the dependency are readily installed or not!!
  • If not go through following commands just copy and paste in RPi terminal

PYTHON 2:


sudo apt-get update
sudo apt-get install python-pip
sudo python -m pip install --upgrade pip setuptools wheel

PYTHON 3:


sudo apt-get update
sudo apt-get install python3-pip
sudo python3 -m pip install --upgrade pip setuptools wheel

INSTALL PICAMERA LIBRARY

PYTHON 2:


sudo apt-get install python-picamera

PYTHON 3:


sudo apt-get install python3-picamera

ENABLING CAMERA IN RASPBERRY PI

METHODE_1: GRAPHICAL METHOD

METHOD _2: USING COMMAND PROMPT

Open Terminal paste below code


sudo raspi-config

Follow the below steps for enabling Camera in RPi 

Setp_1: Choose "Interfacing Options"

Setp_2: Click on ""

 Setp_3: Then Click on ""

Setp_4: Click on ""

 

CONNECTION:

CODE:

CAPTURE PHOTO BY PYTHON CODE


#Tested Code by Robogenesis
import picamera
import time
camera = picamera.PiCamera()
camera.vflip = True # for rotate camera
camera.brightness= 60 # Set picam Brightness
camera.annotate_text='Looking Great'
camera.resolution = (1080,960)
camera.resolution = "HD"
#it support .jpg,. jpeg, .png, .bmp, .gif etc... 
camera.capture('cam_features.jpeg')#it will save in current directory  
#camera.capture('/home/pi/cam_features.jpeg')# it wil save where u want to save  

 


CODE FOR VIDEO LIVE STREAMING


#Tested Code by Robogenesis 
import picamera
import time

camera = picamera.PiCamera()

camera.brightness = 60
camera.resolution = 'HD'
#camera.vflip = True #flip camera Vertically 
#camera.hflip = True #Flip camera horizontally

#For live video Streaming 
camera.start_preview()#start video stream
time.sleep(8)
camera.stop_preview()#stop video stream

CODE VIDEO RECORDING


#Tested Code by Robogenesis
import picamera
import time

camera = picamera.PiCamera()

camera.brightness = 60
camera.resolution = 'HD'
#camera.vflip = True #flip camera Vertically 
#camera.hflip = True #Flip camera horizontally'

#video Recording
print("recording start")
camera.start_recording("/home/pi/picamrec.h264")
time.sleep(7)
camera.stop_recording()
camera.close()
print("recording stop")

TO PLAY RECORD VIDEO

  • Open Terminal
  • go to directory where video saved; In my case video saved  in “pi” Directory.

omxplayer picamrec.h264

 


Web-server PiCam

CODE FOR WEBSERVER PICAM


# Web streaming example
# Source code from the official PiCamera package
# http://picamera.readthedocs.io/en/latest/recipes2.html#web-streaming

import io
import picamera
import logging
import socketserver
from threading import Condition
from http import server

PAGE="""\

Raspberry Pi - Surveillance Camera

Raspberry Pi - Surveillance Camera

""" class StreamingOutput(object): def __init__(self): self.frame = None self.buffer = io.BytesIO() self.condition = Condition() def write(self, buf): if buf.startswith(b'\xff\xd8'): # New frame, copy the existing buffer's content and notify all # clients it's available self.buffer.truncate() with self.condition: self.frame = self.buffer.getvalue() self.condition.notify_all() self.buffer.seek(0) return self.buffer.write(buf) class StreamingHandler(server.BaseHTTPRequestHandler): def do_GET(self): if self.path == '/': self.send_response(301) self.send_header('Location', '/index.html') self.end_headers() elif self.path == '/index.html': content = PAGE.encode('utf-8') self.send_response(200) self.send_header('Content-Type', 'text/html') self.send_header('Content-Length', len(content)) self.end_headers() self.wfile.write(content) elif self.path == '/stream.mjpg': self.send_response(200) self.send_header('Age', 0) self.send_header('Cache-Control', 'no-cache, private') self.send_header('Pragma', 'no-cache') self.send_header('Content-Type', 'multipart/x-mixed-replace; boundary=FRAME') self.end_headers() try: while True: with output.condition: output.condition.wait() frame = output.frame self.wfile.write(b'--FRAME\r\n') self.send_header('Content-Type', 'image/jpeg') self.send_header('Content-Length', len(frame)) self.end_headers() self.wfile.write(frame) self.wfile.write(b'\r\n') except Exception as e: logging.warning( 'Removed streaming client %s: %s', self.client_address, str(e)) else: self.send_error(404) self.end_headers() class StreamingServer(socketserver.ThreadingMixIn, server.HTTPServer): allow_reuse_address = True daemon_threads = True with picamera.PiCamera(resolution='640x480', framerate=24) as camera: output = StreamingOutput() #Uncomment the next line to change your Pi's Camera rotation (in degrees) #camera.rotation = 90 camera.start_recording(output, format='mjpeg') try: address = ('', 8000) server = StreamingServer(address, StreamingHandler) server.serve_forever() finally: camera.stop_recording()

 

 

 


HOW TO FIND RPI IP ADDRESS


Ifconfig

Open Terminal paste above code and follow below go got ip address of Raspberry Pi

Note:

  • Open Browser of computer or mobile which connected to same network
  • Open new tab and search :8000 ; in my case 192.168.43.75:8000

 

 

Comments

client

Mac

Its very useful content for camera interface with RPi

2001-03-20 07:03:32 Reply

Leave a Reply