Snapshot CCTV bisa dengan mudah diambil jika kita memiliki kamera CCTV dengan jenis IP Camera (bukan analog). Dengan menggunakan script Python sederhana kita bisa mengambil snapshot untuk keperluan otomasi atau lainnya.
Untuk bisa mengambil snapshot cctv kita memerlukan sebuah tool image dan video processing yaitu ffmpeg. Ffmpeg adalah software opensource yang bebas untuk digunakan dan berjalan pada berbagai platform OS. Untuk cara mengambil snapshot menggunakan ffmpeg bisa dibaca pada tutorial saya sebelumnya.
Untuk bisa menjalani script yang ada pada tutorial ini dibutuhkan interpreter Python baik versi 2 maupun 3. Oleh karena itu pastikan Python dan dependencynya telah terinstall. Untuk environment saya menggunakan Raspberry PI yang berbasis Linux dan bisa berjalan juga pada OS lainnya.
Berikut adalah script Python untuk mengambil snapshot dari sebuah ip camera CCTV:
import os
import subprocess
from datetime import datetime
ipaddr = '192.168.1.5'
user = 'admin'
password = 'admin'
ffmpegpath = '/usr/local/bin/ffmpeg'
photodir = '/home/lorenz/photos'
filename = datetime.now().strftime('%Y%m%d%H%M%S') + '.jpeg'
filepath = photodir + '/' + filename
cmd = ffmpegpath + ' -rtsp_transport -udp_multicast -i ' \
+ 'rtsp://' + user + ':' + password + '@' + ipaddr \
+ '/Streaming/Channels/101/ -f image2 -vframes 1 ' \
+ '-pix_fmt yuvj420p ' + filepath
if not os.path.exists(photodir):
os.makedirs(photodir)
sp = subprocess.Popen([cmd], stdout=subprocess.PIPE,stderr=subprocess.PIPE,
shell=True)
sp.communicate()
if not os.path.exists(filepath):
print('Failed to get snapshot from camera, check connection')
else:
print('Snapshot successfully created on ' + filepath)
Untuk menjalankan script di atas, ganti parameter ip address, user dan password (baris 5-7) sesuai dengan ip address, user dan password ip camera yang akan diambil snapshotnya. Pastikan ffmpeg telah sukses diinstall dan definisikan letak file executable ffmpeg pada parameter ffmpegpath (baris 8) Jika sukses, file snapshot akan disimpan pada direktori photodir (baris 9).
Selamat mencoba!
Leave a Reply