Kamera ile Ağ Üzerinden MJPEG Biçimli Görüntü Akışı Yapmak

cvlc aracı kamera görüntüsünü h.264 biçiminde sıkıştırarak ağ ile paylaşır. Ağ üzerinden görüntü akış biçimi olarak MJPEG oldukça yaygın ve eski bir görüntü akış biçimidir. Elinizde bu formatı destekleyen bir yazılım ya da donanım varsa bu başlık size hitap ediyor olabilir.

Raspberry Pi’ın grafik çipinin donanımsal olarak desteklediği MJPEG biçimi, görüntü karelerini TCP/IP üzerinden aktarmak için kullanılan eski bir akış biçimidir ve daha çok CPU/RAM kaynakları düşük gömülü sistemler üzerinde tercih edilir.

CSI Kamera görüntüsünü MJPEG biçiminde yayınlamak için aşağıdaki gibi gerekli kaynak kodları indirin ve derleyin:

Yukarıdaki komutların tamamlanması biraz uzun sürebilir. Kurulumlar tamamlandıktan sonra, ~/mjpeg-streamer dizinini silebilir, kamera görüntüsünü mjpeg_streamer aracını aşağıdaki gibi çalıştırarak MJPEG formatında ağa akıtabilirsiniz.

mjpg_streamer çalışmaya başladıktan sonra yayın dizini /usr/local/share/mjpg-streamer/www  konumunda bulunan ve 8080. port’tan çalışan bir HTTP sunucusu başlatır. Web sunucuyu tarayıcınızın adres çubuğuna örneğin http://192.168.2.18:8080/ URL adresini yazarak görüntüleyebilirsiniz. Bu web arabiriminden kamera ön izlemesi alabileceğiniz gibi, kamera görüntüsünü HTML, Java, Javascript ve VLC ile nasıl izleyeceğiniz hakkındaki kod örneklerini de edinebilirsiniz. mjpg-streamer çalışması sırasında ekrana sürekli olarak günlük yazar ve terminali meşgul eder. Bunu engellemek için aşağıda olduğu gibi, çıktıyı /dev/null’a gönderip arka plana itebilirsiniz.

Komut satırındaki hf seçeneği görüntü kaynağını yatayda aynalamak için kullanılmıştır. Araç çalışmaya başladıktan sonra konsol ekranına detaylı çalışma çıktısı verir. Aracı arka plana itmek için ise -b (background) seçeneğinden faydalanabilirsiniz.

Mjpeg Akışı İçin Farklı Ağ Arabirimi Kullanmak

Mjpg_streamer varsayılan olarak eth0 arabirimini dinler. Raspberry Pi’a wlan0 (wireless) veya eth1 gibi ikinci bir kablolu ağ arabirimi üzerinden erişiyorsanız bu arabirimi dinletmeniz gerekir. Mjpg_streamer farklı IP adreslerini dinlemek için –l seçeneğine (listen) sahiptir. Örneğin RaspAP ile kablosuz erişim noktası olarak çalışan wlan0 arayüzünün sahip olduğu 10.3.141.1 adresini dinletmek isterseniz –o seçeneğini aşağıdaki gibi düzenleyebilirsiniz. Arabirimlerin sahip olduğu IP adreslerini görmek için ipfconfig ve hostname –I komutlarından yararlanabilirsiniz:

pi@raspberrypi:~ $ /usr/local/bin/mjpg_streamer -i “input_uvc.so -d /dev/video0” -o “output_http.so -l 10.3.141.1 -p 8081 -w /usr/local/share/mjpg-streamer/www”

Eğer CSI kamera yerine bir webcam’in görüntüsünü ağa akıtmak istiyorsanız giriş yakalama programı olarak (input) input_uvc’yi kullanabilirsiniz.

input_uvc varsayılan görüntü giriş aygıt dosyası olarak /dev/video0’ı kullanır. Giriş aygıtını -d seçeneği ile değiştirebilirsiniz. Ayrıca birden fazla webcam’in kullanıldığı uygulamalarda her akışı farklı bir HTTP port’u üzerinden akıtmak için output_http programına -p seçeneğini geçebilirsiniz. Aşağıdaki komut örneğinde görüntü giriş aygıtı olarak /dev/video1 kullanılmış ve akış 8081. port’tan sunulmuştur:

Yukarıdaki örneklerde görüntüsünü ağa akıttığımız kamera/webcam’leri mjpeg uyumlu bir yazılım/donanım üzerinden görüntülemek için ise kullanılması gereken URL http://192.168.2.18:8080/?action=stream ‘dir. Bu adresi iSpy gibi bir araç ile merkezileştirmek isterseniz Add->IP Camera menü seçeneğine tıklatarak, MJPG URL kutusuna yazabilirsiniz.

iSPY’a mjpeg biçiminde yayın yapan bir kamera ekleme

Kameradan yakalanan bir resim karesini bir web sayfasında görüntületmek için HTML etiketlerinden (tag) birisi olan <img> etiketinin src (kaynak URL) seçeneğine örneğin http://192.168.2.18:8080/?action=snapshot URL’ini verebilirsiniz.

Yazar: Özgür Koca

Yazar - Tankado.com

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.