CCTV, Closed-circuit television adalah sistem kamera video yang mengirimkan sinyalnya secara terbatas. untuk meningkatkan keamanan rumah saat ditinggalkan, saya memutuskan untuk memasang sistem pengawasan dengan sistem CCTV ini. jika memang tidak punya waktu untuk membuatnya sendiri, ada beberapa perusahaan yang menyediakan jasa pemasangan CCTV ini. salah satu contohnya adalah CCTV Indonesia, yang menawarkan jasa pemasangan sistem CCTV terkomputerisasi lengkap dengan harga paket dasar dari 13 juta sampai dengan 19 juta rupiah.
saya sendiri daripada mengeluarkan uang jutaan rupiah, lebih memilih untuk membuat sendiri sistem ini (DIY, do it yourself). yang sudah tersedia di rumah adalah dua buah server yang selalu menyala (router dan fileserver), sebuah notebook thinkpad X20 yang sudah rusak LCD-nya, dan jaringan kabel maupun nirkabel yang mencakup seluruh rumah. bagi yang punya sistem berbasis windows, mungkin panduan yang ditulis oleh iip sesuai buat anda. saya sendiri menggunakan ubuntu di tiga komputer yang sudah saya sebut di atas.
zoneminder
berikutnya adalah memilih perangkat lunak sistem CCTV ini. dari hasil googling sebentar, akhirnya menemukan zoneminder, aplikasi open source dan sangat lengkap untuk membuat sistem CCTV. fasilitasnya antara lain bisa menggunakan kompresi eksternal seperti ffmpeg, deteksi gerakan (motion detection), membunyikan alarm, mengirimkan peringatan melalui mail, mengirimkan gambar melalui FTP, dan masih banyak lagi. bisa diakses melalui web, atau bisa juga melalui jalur telepon. perangkat kamera bisa menggunakan webcam, IP webcam, video input. di ubuntu, instalasi sangat mudah, cukup tambahkan zoneminder dari Synaptic Package Manager, atau jika anda penggemar CLI (command line interface) seperti saya, dengan perintah:
[sourcecode language=’java’]
sudo aptitude -y install zoneminder
[/sourcecode]
jika belum ada, instalasi zoneminder akan menambahkan sendiri dependensi seperti apache2 dan mysql. jangan lupa untuk mengubah password dari mysql agar instalasi mysql anda lebih aman. zoneminder hanya perlu dipasang pada satu server saja, tidak perlu dipasang di tiap komputer yang terpasang webcam.
perangkat webcam
langkah berikutnya adalah memilih webcam. ada banyak pilihan webcam, namun metoda yang saya pilih saat hari jumat kemarin adalah pilih webcam yang driverless (UVC, USB Video device Class), yang termurah yang bisa saya temukan di mal ambasador. ๐ cara yang saya tempuh ini tentu saja belum tentu cocok buat anda, jadi silakan tentukan sendiri kebutuhan anda. webcam termurah yang saya temukan dibeli seharga 65 ribu rupiah, bermerek apollyon. seharusnya webcam ini bisa lebih murah lagi, sayangnya kurs USD yang memang masih di atas 10 ribu rupiah membuat webcam ini juga naik harganya.
uji coba perangkat webcam
ketika USB webcam ini dicolokkan ke komputer, USB ID-nya adalah 1c4f:3000:
[sourcecode language=”java”]
$ lsusb
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 1c4f:3000
Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
[/sourcecode]
untuk mencoba apakah webcam ini bisa dipergunakan di linux atau tidak, bisa dengan memanfaatkan aplikasi luvcview, yang sudah ada di dalam paket ubuntu:
[sourcecode language=”java”]
sudo aptitude -y install luvcview
luvcview
[/sourcecode]
mjpg-streamer
sekarang yang menjadi problem, zoneminder versi 1.23.3 masih memakai V4L (Video for Linux) versi 1 (v4l1), yang sudah tidak didukung lagi oleh UVC driver untuk linux (uvcdriver). uvcdriver hanya mendukung V4L versi 2 (v4l2), yang baru akan ada dukungannya di zoneminder versi 1.24. sambil menunggu rilis versi 1.24, kita bisa menggunakan mjpg-streamer sebagai perantara antara uvcdriver ke zoneminder.
mjpg-streamer ini sayangnya belum masuk dalam paket standar ubuntu, dan paket binari yang bisa diunduh hanyalah untuk arsitektur i386, tidak ada amd64, jadi tidak bisa langsung digunakan oleh server router yang saya pasang intrepid amd64. jadi agar bisa digunakan, saya harus melakukan kompilasi dulu terhadap source code dari mpjg-streamer ini. langkah awal adalah mempersiapkan kebutuhan untuk melakukan kompilasi:
[sourcecode language=”java”]
sudo aptitude -y install subversion build-essential libjpeg62-dev libjpeg62
[/sourcecode]
setelah itu ambil source code dari mjpg-streamer:
[sourcecode language=”java”]
svn co https://mjpg-streamer.svn.sourceforge.net/svnroot/mjpg-streamer mjpg-streamer
[/sourcecode]
lakukan kompilasi dan instalasi:
[sourcecode language=”java”]
cd mjpg-streamer/mjpg-streamer
make clean all
sudo make DESTDIR=/usr install
[/sourcecode]
cara menggunakan mjpg-streamer ini cukup mudah, secara default dia akan mengakses /dev/video0, dan membuka akses http di port 8080. saya menambahkan opsi -b agar dijalankan di background:
[sourcecode language=”java”]
mjpg-streamer -b
[/sourcecode]
sekarang untuk mencobanya, silakan buka browser ke http://localhost:8080/?action=stream.
tadinya saya mencoba memasang 2 webcam dalam 1 komputer, namun mendapatkan pesan kesalahan “Unable to start capture: No space left on device” saat mencoba menjalankan mjpg-streamer yang kedua. rupanya jika masih menggunakan USB 1.1, bandwidth untuk menangkap sinyal video sudah menghabiskan lebih dari separuh kapasitas lebarpita kanal USB yang cuma 12 Mbps. jika masih ingin menjalankan 2 buah webcam dalam satu komputer, solusinya adalah dengan menggunakan kanal USB 1.1 yang berbeda, atau menggunakan kanal USB 2.0 yang mempunyai lebarpita 480 Mbps.
lalu jika menggunakan mjpg-streamer ini di komputer yang memiliki IP publik, tentu lebih baik jika akses dibatasi dengan menggunakan sandi. ini bisa dilakukan dengan menambahkan opsi -c pada plugin http output:
[sourcecode language=”java”]
mjpg_streamer –input “input_uvc.so –device /dev/video0 –fps 5 –resolution 640×480” –output “output_http.so –port 8080 -c user:password” -b
[/sourcecode]
mengaktifkan zoneminder
walaupun zoneminder sudah termasuk dalam paket standar ubuntu, masih diperlukan sedikit langkah untuk mengaktifkannya:
[sourcecode language=”java”]
sudo ln -s /etc/zm/apache.conf /etc/apache2/conf.d/zoneminder.conf
sudo /etc/init.d/apache2 force-reload
[/sourcecode]
buka http://namawebserver/zm. instalasi default belum membatasi akses dengan sandi, jadi langkah pertama adalah membatasi akses dengan mengklik Options lalu centang Authenticate user logins to ZoneMinder (ada di baris kedua tab System). klik tombol Save.
sekarang login kembali ke zoneminder (user/password: admin/admin), klik Options, lalu klik tab Users, dan silakan ubah password default, kalau perlu sekalian ditambahkan user baru, misalnya khusus hanya bisa melihat saja tanpa bisa mengubah konfigurasi.
menambahkan kamera
setelah login ke zoneminder, klik tombol Add New Monitor. pada tab General, berikan nama untuk kamera ini pada isian Name.
karena zoneminder versi 1.23.3 ini masih belum mendukung v4l2, saya menggunakan mjpg-streamer sebagai perantara, sehingga pada isian Source Type, isikan dengan Remote. untuk isian Function, saya memilih Modect, artinya Monitor & Detect, jika diakses akan menampilkan video secara realtime, dan hanya akan merekam jika mendeteksi adanya gerakan di kamera.
setelah itu klik tab Source. untuk Remote Host Name, isikan dengan alamat IP dari komputer yang terpasang webcam (localhost jika di komputer yang sama). jika menggunakan sandi, isikan dalam format user:password@alamat-IP. Remote Host Port diisi dengan port yang dipergunakan, contohnya mjpg-streamer secara default menggunakan port 8080. pada Remote Host Path, karena kita menggunakan mjpg-streamer, isikan dengan /?action=stream. pada Capture Width dan Height, isikan dengan dimensi resolusi yang sesuai.
setelah itu, klik tombol Save. ulangi langkah di atas untuk menambahkan kamera yang lain. karena saya baru punya 3 webcam, maka baru 3 kamera yang ditangani oleh zoneminder ini.
troubleshooting
seperti yang sudah saya tulis di atas, jika masih menggunakan USB 1.1, hanya bisa terpasang satu webcam pada satu kanal. jika menggunakan USB 2.0 seharusnya bisa jauh lebih banyak webcam yang bisa terpasang.
untuk bisa memproses video resolusi besar, diperlukan alokasi memori yang cukup besar juga, kadang setting default masih kurang cukup besar. solusinya bisa dibaca di Video Surveillance system on Ubuntu 8.04 with Zoneminder, saya sendiri belum terkena problem ini.
masalah lain adalah dukungan uvcdriver sendiri yang berbeda di tiap versi kernel. pada thinkpad X20 yang terpasang ubuntu hardy (2.6.24-23-generic), webcam yang saya beli walaupun terdaftar di /dev/video0, tidak bisa dipergunakan. solusinya bisa dengan melakukan instalasi kernel yang lebih baru, atau dengan cara yang saya tempuh, sekalian upgrade dari hardy ke intrepid (2.6.27-9-generic). setelah saya pasang intrepid, webcam murahan ini bisa langsung dipergunakan. ๐
CCTV buatan sendiri
berikut ini adalah webcam yang saya tempelkan ke salah satu unit satelit speaker Altec Lansing ATP3 saya:
webcam ini mengarah ke arah dapur dan meja makan. dan berikut ini adalah hasil capture dari webcam tersebut pada sistem CCTV zoneminder:
total biaya yang saya habiskan adalah untuk membeli webcam, 65 ribu x 3 = 195 ribu rupiah.
spesifikasi sistem komputer yang saya pergunakan:
- AMD Athlon 3200+, berfungsi sekaligus sebagai router dan server zoneminder:
- 3 GB RAM, 80 GB harddisk
- Ubuntu Intrepid Desktop arsitektur amd64
- Epia 800 MHz, juga berfungsi sebagai fileserver:
- 512 MB RAM, 2 TB harddisk
- Ubuntu Intrepid Server arsitektur i386
- Thinkpad X20 P3 600 MHz:
- 320 MB RAM, 20 GB harddisk
- Ubuntu Intrepid Desktop arsitektur i386
- Kondisi LCD rusak, jadi praktis headless




Leave a Reply