Raspberry Pi Birdbox Camera (8 / 12 stap)

Stap 8: Recompile FFMPEG

Een utility genaamd FFMPEG zal doen de videostreaming. Raspbian komt met FFMPEG geïnstalleerd, echter de vooraf geïnstalleerde versie is niet opgesteld voor het gebruik van het oorspronkelijke stuurprogramma van de GPU dus FFMPEG moet worden gecompileerd om het te gebruiken. Ik vond de instructies hier werk goed, merk op dat de afdelingen van de crtmpserver op die site zijn niet vereist omdat we bent streaming video via het internet naar de servers van de SEGfL. De volgende stappen van de bovengenoemde verbinding zal FFMPEG compileren. Een nota van voorzichtigheid: wanneer u in 'make typt' Ik stel u het te lopen 's nachts omdat het duurt uren te compileren!

 cd /usr/src 
 sudo chown `whoami`:users ffmpeg 
 git clone git://source.ffmpeg.org/ffmpeg.git ffmpegcd ffmpeg<br> 
 ./configure 
 make 
 sudo make install 
sudo raspivid -t -1 -w 960 -h 540 -fps 25 -b 500000 -vf -o - | ffmpeg -i - -vcodec copy -an -f flv rtmp://<username>:<password> 

FFMPEG is nu klaar om te worden gebruikt. U kunt het testen met de SEGfL-streaming-pagina met behulp van de volgende stappen uit:

  1. Open het XML-configuratie bestand fmeProfile.xml dat u hebt gedownload van de website SEGfL
  2. Zoek de XML-code 'url', which should be onder de tag 'rtmp'. Het is zoiets als: rtmp://broadcast.e2bn.org/microsites2fme
  3. Net onder deze vondst de XML tag 'stroom', dat is een zeer lange reeks cijfers en tekens
  4. U moet ook de gebruikersnaam en het wachtwoord die u eerder hebt opgeschreven omlaag

FFMPEG en de SEGfL Birdbox webpagina kunnen worden getest met behulp van raspivid als volgt:

 import smtplib import email import mimetypes import StringIO import subprocess import os import time import sys import time import picamera from datetime import datetime from PIL import Image from email.MIMEMultipart import MIMEMultipart from email.Utils import COMMASPACE from email.MIMEBase import MIMEBase from email.parser import Parser from email.MIMEImage import MIMEImage from email.MIMEText import MIMEText from email.MIMEAudio import MIMEAudio</p><p># Original code written by brainflakes and modified to exit # image scanning for loop as soon as the sensitivity value is exceeded. # this can speed taking of larger photo if motion detected early in scan # Motion detection settings: # PGM maded changes to read values dynamically via command line parameters. # -------------------------- # Threshold - (how much a pixel has to change by to be marked as "changed") # Sensitivity - (how many changed pixels before capturing an image) needs to be higher if noisy view # ForceCapture - (whether to force an image to be captured every forceCaptureTime seconds) # filepath - location of folder to save photos # filenamePrefix - string that prefixes the file name for easier identification of files. threshold = 10 sensitivity = 180 forceCapture = True forceCaptureTime = 60 * 60 # Once an hour filepath = "/home/pi/images/" filenamePrefix = "pgm" fileType = "jpg" # File photo size settings saveWidth = 800 saveHeight = 600 diskSpaceToReserve = 40 * 1024 * 1024 # Keep 40 mb free on disk sys.stdout = os.fdopen(sys.stdout.fileno(), 'w', 0) camera = picamera.PiCamera()</p><p># Email variables user = 'mattwood262 smtp_host = 'smtp.gmail.com' smtp_port = 587 # server = smtplib.SMTP() # server.connect(smtp_host,smtp_port) # server.ehlo() # server.starttls() # server.login(user,'') fromaddr = 'matt tolist = 'matt sub = 'Subject: birdbox activity'</p><p># Capture a small test image (for motion detection) def captureTestImage(): imageData = StringIO.StringIO() # try: camera.capture(imageData, format='bmp', use_video_port=True) # command = "raspistill -w %s -h %s -t 1 -n -e bmp -o -" % (100, 75) # except: # camera.capture(imageData, format='bmp', use_video_port=True) imageData.seek(0) im = Image.open(imageData) buffer = im.load() imageData.close() return im, buffer</p><p># Save a full size image to disk def saveImage(width, height, diskSpaceToReserve): keepDiskSpaceFree(diskSpaceToReserve) time = datetime.now() filename = filenamePrefix + "-%04d_%02d_%02d-%02d%02d%02d" % (time.year, time.month, time.day, time.hour, time.minute, time.second)+ "." + fileType fullfilename = filepath + filename # camera.resolution = (saveWidth, saveHeight) camera.capture(fullfilename, format='jpeg', use_video_port=True) # subprocess.call("echo %s > temp.out" % filename, shell=True) # subprocess.call("/home/pi/Dropbox-Uploader/dropbox_uploader.sh upload %s %s" % (fullfilename, filename), shell=True) # msg = email.MIMEMultipart.MIMEMultipart() # msg['From'] = fromaddr # msg['To'] = tolist # msg['Subject'] = sub # msg.attach(MIMEText('\nsent via python', 'plain')) # server.sendmail(user,tolist,msg.as_string()) # print "Captured image: %s" % filename camera.wait_recording(60)</p><p># Keep free space above given level def keepDiskSpaceFree(bytesToReserve): if (getFreeSpace() < bytesToReserve): for filename in sorted(os.listdir(".")): if filename.startswith(filenamePrefix) and filename.endswith("." + fileType): os.remove(filename) print "Deleted %s to avoid filling disk" % filename if (getFreeSpace() > bytesToReserve): return</p><p># Get available disk space def getFreeSpace(): st = os.statvfs(".") du = st.f_bavail * st.f_frsize return du</p><p>#--------------------------------------------------------- </p><p># Start capturing video camera.resolution = (640, 480) camera.framerate = 30 # camera.resolution = (1024, 768) camera.start_recording(sys.stdout, format='h264')</p><p># Get first image image1, buffer1 = captureTestImage()</p><p># Reset last capture time lastCapture = time.time()</p><p># added this to give visual feedback of camera motion capture activity. Can be removed as required os.system('clear') f = open('./logfile','w') f.write(' Motion Detection Started') f.write(' ------------------------') # print "Pixel Threshold (How much) = " + str(threshold) # print "Sensitivity (changed Pixels) = " + str(sensitivity) # print "---------- Motion Capture File Activity --------------"</p><p>while (True):</p><p> # Get comparison image try: image2, buffer2 = captureTestImage() except: subprocess.call("echo 'timeout' > temp.out", shell=True) image2, buffer2 = captureTestImage()</p><p> # Count changed pixels changedPixels = 0 for x in xrange(0, 100): # Scan one line of image then check sensitivity for movement for y in xrange(0, 75): # Just check green channel as it's the highest quality channel pixdiff = abs(buffer1[x,y][1] - buffer2[x,y][1]) if pixdiff > threshold: changedPixels += 1</p><p> # Changed logic - If movement sensitivity exceeded then # Save image and Exit before full image scan complete if changedPixels > sensitivity: lastCapture = time.time() saveImage(saveWidth, saveHeight, diskSpaceToReserve) break continue</p><p> # Check force capture if forceCapture: if time.time() - lastCapture > forceCaptureTime: changedPixels = sensitivity + 1 # Swap comparison buffers image1 = image2 buffer1 = buffer2 #------------------------------------------------------------ 

Als u naar de Live Webcam pagina voor uw school op de website van het Project van de Birdbox dan moet u de live videobeelden.

Merk op dat ik heb tal van instellingen om de videokwaliteit te verbeteren, verhogen van de resolutie en de frames-per-seconde te verhogen, maar ik geloof dat de serverzijde instellingen voorrang.

Gerelateerde Artikelen

Auto Raspberry Pi3 Dash Cam

Auto Raspberry Pi3 Dash Cam

IntroIk heb eerder gewerkt met Arduino boards Arduino boards te ontwikkelen van een mobiele waarschuwingen van beweging gebaseerd. Maar wilde altijd al om te werken met de Raspberry Pi vanwege de gediversifieerde projecten kunnen gebeuren relatief ee
Gemakkelijk Raspberry Pi Security Cam met automatische Web Upload

Gemakkelijk Raspberry Pi Security Cam met automatische Web Upload

Dit is een project dat ik super snel in onder een week of zo samengesteld. De reden dat ik moest dit instellen van de manier waarop die ik deed was om een basisbeveiliging systeem zo spoedig mogelijk om te controleren mijn garage via mijn mobiel appa
Raspberry Pi Security Cam

Raspberry Pi Security Cam

Hier ik zal werken een een Raspberri Pi Security Cam security camStap 1: Wat heb je nodig? Een Raspberry Pi (ik gebruikte B2)Een Raspberry Pi Camera moduleEen SD-kaart met 4GB of meer (ik gebruikte 16GB)Een WiFi USB dongleEen USB-toetsenbordEen USB-m
De SnapPiCam | Een Raspberry Pi Camera

De SnapPiCam | Een Raspberry Pi Camera

Adafruit gelanceerd zijn PiTFT niet zo lang geleden en ik kocht een onmiddellijk uit Pimoroni. Spoedig na dat Adafruit gepubliceerd een tutorial DIY WiFi Raspberry Pi Touchscreen Camerarecht. Ik had een goed te lezen erdoor en op de laatste pagina di
How to turn een USB-camera met Raspberry Pi in een Onvif IP Camera?

How to turn een USB-camera met Raspberry Pi in een Onvif IP Camera?

IntroductieDit instructable, zullen we een nieuwe interessante Camera oplossing, die nooit eerder hebben gezien! Ik zou willen tonen u hoe u verbinding kunt maken uw USB-camera en de Raspberry Pi met Camera SDK. Het doel is om te zetten uw webcam aan
Foto - de 3D afgedrukt Raspberry Pi Camera.

Foto - de 3D afgedrukt Raspberry Pi Camera.

Weg terug aan het begin van 2014 publiceerde ik een Instructable camera genaamd de SnapPiCam. De camera werd ontworpen in reactie op de onlangs vrijgegeven Adafruit PiTFT.Het is al ruim een jaar nu en met mijn recente inval in 3D printen , die ik nu
Raspberry Pi - Motion Sensing Camera

Raspberry Pi - Motion Sensing Camera

In deze video zullen we kijken hoe maak je een motie geactiveerde camera met behulp van de raspberry pi en camera module.Ik zal met behulp van de nieuwste raspbian afbeelding. Ik zal ook worden met behulp van C-code naar programma en kunt u in mijn v
Motion geactiveerd Camera met Raspberry Pi

Motion geactiveerd Camera met Raspberry Pi

Raspberry Pi met HC-SR501 passieve infraroodsensor op te sporen eekhoorn van uiterlijk, en dan het teweegbrengen van SONY A6300 om vast te leggen van de video bij de beste hoek en afstand.Stap 1: Wat je nodig hebt: Een camera, ik gebruikte SONY A6300
Timelapse met de Raspberry Pi en zijn Camera

Timelapse met de Raspberry Pi en zijn Camera

deze video was voorbeeld.je nooit gedroomd van het maken van video's in timelapse, naar de film van een evenement in versnelde?Deze tutorial zal streven naar het instellen van de camera, dan gebruiken voor het maken van een timelapse regelmatige foto
Touchscreen vertoning en oplaadbare batterij Pack voor de PiKon telescoop / Raspberry Pi

Touchscreen vertoning en oplaadbare batterij Pack voor de PiKon telescoop / Raspberry Pi

In 2014, Mark Wrigley van Alternatief fotonica samen met Andy King, een natuur- en Sterrenkunde onderzoek koppelen aan de Universiteit van Sheffield, gemaakt van de PiKon 3d gedrukte telescoop. Gebaseerd op Newtons spiegeltelescoop ontwerp dat het ma
Raspberry PI Rotary Time Lapse Rig.

Raspberry PI Rotary Time Lapse Rig.

Dus dit instructable is over een tijd vervallen tuig. het begon als een eenvoudig idee en dan groeide uit tot wat je ziet. Misschien zelfs als u niet wilt bouwen een time lapse tuig enkele van de onderdelen van deze build van hulp aan de gebruiker vo
Raspberry Pi babyfoon met Splunk

Raspberry Pi babyfoon met Splunk

Deze stappen leert u hoe te monteren van de onderdelen die nodig zijn om een babyfoon van Raspberry Pi, en verzamelen van die gegevens in Splunklog lezer en een analytisch hulpmiddel, vooraf ingesteld dat gegevens op een zinvolle manier. Aan het eind
Volledige DIY Raspberry Pi weerstation met Software

Volledige DIY Raspberry Pi weerstation met Software

Terug in eind februari zag ik deze post op de site van de Raspberry Pi.http://www.raspberrypi.org/school-Weather-station-...Ze had Raspberry Pi weerstations voor scholen gemaakt. Ik wilde een volledig! Maar op dat moment (en ik geloof nog steeds vana
PiNoculars - Raspberry Pi Binoculars

PiNoculars - Raspberry Pi Binoculars

Riem een Raspberry Pi 2 + Camera aan een paar van verrekijkers (of telescoop, Microscoop, enz.) en gebruikt u een van de adafruit touch LCD's + aangepaste raspbian afbeelding te bekijken en foto's. (Blader door de foto's hierboven voor voorbeelden /