Kamera modülünün yakaladığı görüntüyü ağ üzerinden başka bilgisayarlara ya da merkezi bir kayıt sunucusuna aktarmak için bir video akışı oluşturmak gerekir. Bu şekilde yakaladığı görüntüyü ağ üzerinden akıtma (stream) desteği olan kameralar IP kamera (IP Cam) adıyla da bilinir. Raspberry Pi kamera modülünün görüntüsünü ağ üzerinden akıtmak için açık kaynak bir proje olan VideoLAN’ın bir parçası olan VLC/VLC Player (Visible Light Communication) araçlarını kullanacağız. Bu araçlardan biri olan cvlc’yi ile kamera görüntüsünü TCP/IP üzerinden paylaşacağız. TCP/IP işin içine girdiğinde ise bir IP adresi ve port numarası söz konusu olur. cvlc’nin kullanımına geçmeden önce ilgili araçları yüklemek için aşağıdaki komutları girin:
1 2 3 |
pi@raspberry:~ $ sudo apt update pi@raspberry:~ $ sudo apt install vlc -y |
Kamerayı kullanan başka bir uygulamanın açık olmadığından emin olduktan sonra aşağıdaki komut ile bir ağ akışı oluşturabilirsiniz:
1 |
pi@raspberry:~ $ raspivid -o - -t 0 -hf -w 1920 -h 1080 -fps 30 | cvlc stream:///dev/stdin --sout '#standard{access=http,mux=ts,dst=:12345}' :demux=h264 |
Yukarıdaki komut satırı iki ayrı komuttan oluşur. Komut satırının ilk bölümünde yer alan raspivid aracı, görüntüyü 1920×1080 çözünürlük ve 30fps ‘de yakalayarak standart çıkışa (-o -) yönlendirir. Bu komutun sonundaki | (pipe) işlevi ise standart çıkışa yönlendirilmiş olan bu görüntü verisini alarak ardından gelen cvlc aracına yönlendirir. cvlc ise standart girişinden (stdin) aldığı kamera verisini h264 formatlı bir ağ akışı çıktısı (sout) oluşturmak için kullanır. Burada oluşturan video akışının kaynak adresi http://raspberrypi_ip_adresi:12345’dir. Ağ akışı Raspberry Pi’ın 12345 numaralı port’undan dağıtılmaktadır. Bu örnekte ağ akışı yapıldığı sırada Raspberry Pi’ın bağlı olduğu monitörde de bir ön izleme penceresi açılır. raspstill aracında olduğu gibi, raspivid’de ön izleme penceresinin görüntülenmemesi için -n (no preview) seçeneği kullanılabilir.
Bu akışı ağ üzerinden izlemek için VLC çoklu ortam yürütücüsünü kullanabilirsiniz. VLC yürütücüsü tüm işletim sistemlerinde çalışabilen açık kaynak kodlu ücretsiz bir programdır. VLC programının Ortam menüsünden Ağ akışı aç… seçeneğine tıklatarak açılan penceredeki Ağ iletişim kuralı kutusuna yukarıdaki adresi yazarak kamerayı izlemeye başlayabilirsiniz.
VLC ortam oynatıcısının Ağ akışı yapılandırma penceresi
VLC’i ile ağ akışını bir disk dosyasına kaydedebilirsiniz. Örneğin Windows ortamında VLC’yi çıktı dosyası olarak masaüstü (%UserProfile%\Desktop\) konumunu kullanacak şekilde çalıştırabilirsiniz. Bu durumda VLC görüntü ön izlemesi yapmak yerine görüntüyü Windows masaüstünüzdeki video.avi dosyasına kaydeder. Aşağıdaki komutu VLC’nin kurulu olduğu patikaya göre düzenleyerek çalıştırabilirsiniz.
1 |
"C:\Program Files (x86)\VideoLAN\VLC\vlc.exe" http://192.168.2.46:12345/?action=stream --sout="#standard{mux=avi,dst=%UserProfile%\Desktop\video.avi,access=file}" |
VLC’yi kullanarak Linux ortamında kayıt yapmak için ise aşağıdaki komutu çalıştırabilirsiniz. Kaydı bitirmek için Ctrl+C tuş bileşimini kullanın.
1 2 3 4 5 6 7 8 9 10 11 |
pi@raspberry:~ $ vlc http://192.168.2.46:12345/?action=stream --sout='#standard{mux=avi,dst=/home/pi/Desktop/video.avi,access=file}' pi@raspberry:~/Desktop $ ls -la total 60284 drwxr-xr-x 2 pi pi 4096 Nov 30 13:14 . drwxr-xr-x 19 pi pi 4096 Nov 29 16:28 .. -rw-r--r-- 1 pi pi 61722238 Nov 30 13:15 video.avi |
Aynı ağ video akışını omxplayer’ı kullanarak da izleyebilirsiniz. Omxplayer’ı Raspberry Pi üzerinde çalıştırmak CPU başarımı açısından daha avantajlıdır. Çünkü omxplayer Raspberry Pi’ın sahip olduğu donanımsal H.264 çözücüsünü kullanabilir. –o seçeneğine geçtiğimiz hdmi parametresi ile görüntünün HDMI çıkıştan verileceğini belirttik.
1 |
pi@raspberry:~ $ omxplayer -o hdmi http://localhost:12345 |