Cum să efectuați streaming video folosind Raspberry Pi?

Cum să efectuați streaming video folosind Raspberry Pi? '' ' clasă StreamingOutput(obiect): def __init__(de sine): de sine.cadru = Nici unul de sine.tampon = Eu.BytesIO() de sine.condiție = Condiție() def scrie(de sine, buf): dacă buf.incepe cu(b' xff xd8'): # Cadru nou, copiați conținutul tamponului existent și anunțați-i pe toți # clienți este disponibil de sine.tampon.trunchia() cu de sine.condiție: de sine.cadru = de sine.tampon.getvalue() de sine.condiție.notifica_tot() de sine.tampon.căuta(0) întoarcere de sine.tampon.scrie(buf) clasă StreamingHandler(Server.BaseHTTPRequestHandler): def face_GET(de sine): dacă de sine.cale == „/”: de sine.send_response(301) de sine.send_header('Locație', „/index.html”) de sine.head_headers() elif de sine.cale == „/index.html”: conţinut = PAGINĂ.codifica(„utf-8”) de sine.send_response(200) de sine.send_header('Tipul de conținut', „text / html”) de sine.send_header(„Lungime conținut”, len(conţinut))) de sine.head_headers() de sine.wfile.scrie(conţinut) elif de sine.cale == „/stream.mjpg”: de sine.send_response(200) de sine.send_header('Vârstă', 0) de sine.send_header(„Cache-Control”, „fără cache, privat”) de sine.send_header(„Pragma”, „fără cache”) de sine.send_header('Tipul de conținut', 'multipart / x-mixed-replace; frontieră = CADRU ') de sine.head_headers() încerca: in timp ce Adevărat: cu ieșire.condiție: ieșire.condiție.aștepta() cadru = ieșire.cadru de sine.wfile.scrie(b'--CADRU r n') de sine.send_header('Tipul de conținut', „imagine / jpeg”) de sine.send_header(„Lungime conținut”, len(cadru))) de sine.head_headers() de sine.wfile.scrie(cadru) de sine.wfile.scrie(b' r n') cu exceptia Excepție la fel de este: Logare.avertizare( „A fost eliminat clientul de streaming% s:% s', de sine.adresa_client, str(este))) altceva: de sine.send_error(404) de sine.head_headers() clasă StreamingServer(socketerver.ThreadingMixIn, Server.HTTPServer): allow_reuse_address = Adevărat daemon_threads = Adevărat cu picamera.PiCamera(rezoluţie=„640x480”, framerate=24) la fel de aparat foto: ieșire = StreamingOutput() aparat foto.Începeți înregistrarea(ieșire, format=„mjpeg”) încerca: abordare = ('', 8000) Server = StreamingServer(abordare, StreamingHandler) Server.servește_ pentru totdeauna() in cele din urma: aparat foto.stop_recording()

După lipirea codului în noul fișier creat apăsați Ctrl + X, tip ȘI și apăsați Introduce.



Pasul 10: Rularea fluxului video

După salvarea scriptului îl vom rula folosind Python3 tastând următoarea comandă:

 python3 rpi_video_streaming.py 

După ce am scris această comandă, scriptul nostru va începe să ruleze și acum putem accesa serverul nostru web la http: //: 8000 . Vom deschide browserul și vom lipi linkul în el și vom folosi adresa IP care este atribuită Pi-ului nostru de către router. Putem ajunge la fluxul video prin intermediul telefonului nostru mobil, tabletei etc., care are instalat un browser și este asociat cu o rețea similară cu Pi-ul nostru. Am scris, „192.168.1.14:8000” pentru rularea fluxului video.



Pasul 11: Dând atingeri finale

Deoarece ne-am testat camera Pi și am aflat că funcționează bine, suntem pregătiți să o instalăm la un loc potrivit. Poate fi instalat lângă poarta casei, astfel încât să putem monitoriza fiecare persoană care intră sau iese din casă. Tot ce avem nevoie este de a putere PE camera noastră utilizând adaptorul și ar fi mai bine să o punem într-o carcasă și să lăsăm camera deschisă pentru streaming video.



Aplicații

  1. Poate fi instalat în case din motive de securitate.
  2. Poate fi utilizat în birouri pentru monitorizarea mișcării angajaților.
  3. Poate fi instalat în centre comerciale, gări etc. și poate fi accesat de personalul administrației pentru a avea verificări și echilibru într-o anumită zonă.