Raspberry Pi Kullanarak Video Akışı Nasıl Gerçekleştirilir?

Raspberry Pi Kullanarak Video Akışı Nasıl Gerçekleştirilir? '' ' sınıf StreamingOutput(nesne): def __içinde__(kendini): kendini.çerçeve = Yok kendini.tampon = ben.BytesIO() kendini.durum = Durum() def yazmak(kendini, buf): Eğer buf.ile başlar(b' xff xd8'): # Yeni çerçeve, mevcut arabelleğin içeriğini kopyalayın ve hepsini bilgilendirin # müşteri mevcut kendini.tampon.kesmek() ile kendini.durum: kendini.çerçeve = kendini.tampon.Değer elde etmek() kendini.durum.notify_all() kendini.tampon.aramak(0) dönüş kendini.tampon.yazmak(buf) sınıf StreamingHandler(sunucu.BaseHTTPRequestHandler): def do_GET(kendini): Eğer kendini.yol == '/': kendini.cevap Gönder(301) kendini.send_header('Yer', '/index.html') kendini.bitiş_başlıkları() elif kendini.yol == '/index.html': içerik = SAYFA.kodlamak('utf-8') kendini.cevap Gönder(200) kendini.send_header('İçerik türü', 'metin / html') kendini.send_header('İçerik Uzunluğu', len(içerik)) kendini.bitiş_başlıkları() kendini.wfile.yazmak(içerik) elif kendini.yol == '/stream.mjpg': kendini.cevap Gönder(200) kendini.send_header('Yaş', 0) kendini.send_header('Önbellek Kontrolü', 'önbelleksiz, özel') kendini.send_header('Pragma', 'önbellek yok') kendini.send_header('İçerik türü', 'multipart / x-mixed-replace; sınır = ÇERÇEVE ') kendini.bitiş_başlıkları() Deneyin: süre Doğru: ile çıktı.durum: çıktı.durum.Bekle() çerçeve = çıktı.çerçeve kendini.wfile.yazmak(b'--FRAME r n') kendini.send_header('İçerik türü', 'resim / jpeg') kendini.send_header('İçerik Uzunluğu', len(çerçeve)) kendini.bitiş_başlıkları() kendini.wfile.yazmak(çerçeve) kendini.wfile.yazmak(b' r n') dışında İstisna gibi dır-dir: Kerestecilik.uyarı( Akış istemcisi kaldırıldı% s:% s', kendini.client_address, str(dır-dir)) Başka: kendini.hata gönder(404) kendini.bitiş_başlıkları() sınıf StreamingServer(soket sunucusu.ThreadingMixIn, sunucu.HTTPServer): allow_reuse_address = Doğru daemon_threads = Doğru ile fotoğraf makinesi.PiCamera(çözüm='640x480', kare hızı=24) gibi kamera: çıktı = StreamingOutput() kamera.kayda başla(çıktı, biçim='mjpeg') Deneyin: adres = ('', 8000) sunucu = StreamingServer(adres, StreamingHandler) sunucu.serve_forever() en sonunda: kamera.Kaydetmeyi bırak()

Oluşturulan yeni dosyaya kodu yapıştırdıktan sonra Ctrl + X, tip VE ve bas Giriş.



Adım 10: Video Akışını Çalıştırma

Komut dosyasını kaydettikten sonra, aşağıdaki komutu yazarak Python3 kullanarak çalıştıracağız:

 python3 rpi_video_streaming.py 

Bu komutu yazdıktan sonra komut dosyamız çalışmaya başlayacak ve şimdi web sunucumuza şu adresten erişebiliriz: http: //: 8000 . Tarayıcıyı açıp bağlantıyı ona yapıştıracağız ve yönlendirici tarafından Pi'mize atanan IP adresini kullanacağız. Video akışına, içinde bir tarayıcı yüklü olan ve Pi'mizle benzer bir ağla ilişkili olan cep telefonumuz, tabletimiz vb. Aracılığıyla ulaşabiliriz. Yazdım, '192.168.1.14:8000' video akışını çalıştırmak için.



Adım 11: Son Dokunuşları Yapmak

Pi kameramızı test ettiğimiz ve iyi çalıştığını öğrendiğimiz için onu uygun bir yere kurmaya hazırız. Eve giren veya çıkan herkesi izleyebilmemiz için evin kapısının yakınına kurulabilir. Tek ihtiyacımız olan güç sağlamak AÇIK Kameramızı adaptörü kullanarak kullanırsanız, bir kasanın içine koymak ve video akışı için kamera tarafını açık bırakmak daha iyi olacaktır.



Uygulamalar

  1. Güvenlik amacıyla evlere kurulabilir.
  2. Ofislerde çalışan hareketini izlemek için kullanılabilir.
  3. Alışveriş merkezleri, tren istasyonları vb. Yerlerde kurulabilir ve belirli bir alanda kontrol ve denge yaptırmak için idari personel tarafından erişilebilir.