Raspberry Pi Kullanarak Video Akışı Nasıl Gerçekleştirilir?'' 'sınıfStreamingOutput(nesne):def__içinde__(kendini):kendini.çerçeve=Yokkendini.tampon=ben.BytesIO()kendini.durum=Durum()defyazmak(kendini,buf):Eğerbuf.ile başlar(b' xff xd8'):# Yeni çerçeve, mevcut arabelleğin içeriğini kopyalayın ve hepsini bilgilendirin# müşteri mevcutkendini.tampon.kesmek()ilekendini.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ıfStreamingHandler(sunucu.BaseHTTPRequestHandler):defdo_GET(kendini):Eğerkendini.yol=='/':kendini.cevap Gönder(301)kendini.send_header('Yer','/index.html')kendini.bitiş_başlıkları()elifkendini.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)elifkendini.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üreDoğru:ileçıktı.durum:çıktı.durum.Bekle()çerçeve=çıktı.çerçevekendini.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İstisnagibidı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ıfStreamingServer(soket sunucusu.ThreadingMixIn,sunucu.HTTPServer):allow_reuse_address=Doğrudaemon_threads=Doğruilefotoğraf makinesi.PiCamera(çözüm='640x480',kare hızı=24)gibikamera:çı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
Güvenlik amacıyla evlere kurulabilir.
Ofislerde çalışan hareketini izlemek için kullanılabilir.
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.