Güvenlik kamerası sistemi kurulurken en sık sorulan sorulardan biri şudur:
"Kaç TB disk almalıyım?"
Bu sorunun cevabı yalnızca kamera sayısına bağlı değildir. Çözünürlük, bitrate değeri, kullanılan video sıkıştırma teknolojisi ve kayıt süresi gibi birçok faktör depolama ihtiyacını doğrudan etkiler.
Yanlış yapılan bir hesaplama, kayıt süresinin beklenenden erken dolmasına veya gereksiz yüksek maliyetli depolama yatırımlarına neden olabilir.
Bu nedenle hazırladığımız CCTV Depolama Hesaplama Aracı, gerçek depolama ihtiyacını saniyeler içinde hesaplamanızı sağlar.
CCTV Depolama Neden Önemlidir?
Bir güvenlik kamerası sistemi yalnızca görüntü kaydetmez. Aynı zamanda olayların incelenmesi, yasal süreçler, iş güvenliği ve operasyonel takip için kritik veriler oluşturur.
Depolama kapasitesi yetersiz olduğunda:
- Kayıtlar beklenenden erken silinebilir.
- İstenen gün sayısına ulaşılamaz.
- Olay incelemelerinde veri kaybı yaşanabilir.
- Ek disk yatırımı gerekebilir.
Bu nedenle sistem kurulmadan önce doğru kapasite hesabı yapılmalıdır.
Hesaplamada Hangi Bilgiler Kullanılır?
Kamera Sayısı:
Sistemde bulunan toplam kamera adedi depolama ihtiyacını doğrudan artırır.
Örnek:
- 4 kamera ile 30 gün kayıt
- 32 kamera ile 30 gün kayıt, arasında yaklaşık 8 kat depolama farkı oluşur.
Çözünürlük:
Kamera çözünürlüğü yükseldikçe görüntü kalitesi artar.
Örneğin:
- 1 MP
- 2 MP (1080P)
- 4 MP
- 5 MP
- 8 MP (4K)
- 12 MP
Çözünürlük arttıkça genellikle daha yüksek bitrate kullanılır ve buna bağlı olarak depolama ihtiyacı yükselir.
Bitrate:
Depolama hesabındaki en kritik parametrelerden biridir.
Bitrate, kameranın saniyede oluşturduğu veri miktarını ifade eder.
Örnek olarak:
Bitrate Veri Miktarı
2 Mbps Düşük
4 Mbps Orta
8 Mbps Yüksek
12 Mbps Çok Yüksek
Bitrate değeri yükseldikçe görüntü kalitesi artar ancak disk tüketimi de aynı oranda büyür.
Codec Teknolojisi
Video sıkıştırma teknolojisi depolama maliyetlerini ciddi şekilde etkiler.
Yaygın kullanılan codec türleri:
- H.264
- H.265
H.265 teknolojisi aynı görüntü kalitesini korurken genellikle H.264'e göre yaklaşık %40 daha az depolama alanı kullanır. Bu nedenle yeni kurulumlarda mümkün olduğunca H.265 tercih edilmelidir.
Kayıt Süresi
Kaç gün kayıt tutulacağı da depolama ihtiyacını belirleyen temel faktörlerden biridir.
Örnek:
- 7 gün kayıt
- 15 gün kayıt
- 30 gün kayıt
- 60 gün kayıt
- 90 gün kayıt
Kayıt süresi arttıkça gerekli disk kapasitesi de doğrusal olarak artar.
Hesaplama Nasıl Yapılır?
Araç aşağıdaki formülü kullanır:
Depolama (GB) = (Kamera Sayısı × Bitrate × Codec × 3600 × 24 × Gün) ÷ 8 ÷ 1024 ÷ 1024
Bu formül sayesinde:
- Toplam depolama ihtiyacı hesaplanır.
- Sonuç GB, TB, PB veya EB cinsinden gösterilir.
- Disk kullanım payı düşünülerek ayrıca %20 ek kapasite önerisi sunulur.
Neden %20 Fazla Disk Öneriliyor?
Gerçek sistemlerde;
- Kamera ayarları değişebilir,
- Bitrate artabilir,
- Ek kamera eklenebilir,
- Hareket yoğunluğu yükselebilir.
Bu nedenle hesaplanan değerin üzerine yaklaşık %20 güvenlik payı bırakmak uzun vadede daha sağlıklı bir yatırım sağlar.
Örnek Senaryo:
Bir işletmede:
- 16 adet kamera
- 2 MP çözünürlük
- 4 Mbps bitrate
- H.265 codec
- 30 gün kayıt süresi
kullanıldığını düşünelim. Bu durumda sistem yaklaşık depolama ihtiyacını hesaplayacak ve önerilen disk kapasitesini otomatik olarak gösterecektir. Böylece satın alma öncesinde kaç TB disk gerektiği kolayca belirlenebilir.
Sonuç:
CCTV projelerinde kamera seçimi kadar doğru depolama planlaması da önemlidir. Eksik kapasite veri kaybına, gereğinden fazla kapasite ise gereksiz maliyetlere yol açar.
Hazırladığımız CCTV Depolama Hesaplama Aracı sayesinde kamera sayısı, bitrate, codec ve kayıt süresi bilgilerini girerek ihtiyaç duyduğunuz depolama kapasitesini saniyeler içinde öğrenebilirsiniz.
Doğru hesaplama, güvenli ve sürdürülebilir bir CCTV altyapısının ilk adımıdır.
CCTV Depolama Hesaplama:
İhtiyaçlar doğrultusunda geliştirdiğim sayfa görünümü aşağıdaki gibidir. Bir alt satırda HTML kodu yer almaktadır. Kodu kopyalayıp not defterine yapıştırın. Dosya adını "CCTV Depolama Hesaplama" yapın. Not defteri Uzantısını ".txt" silip ".html" yaptıktan sonra, Enter tuşuna basın. Html sayfanız aktif olacaktır. Çift tıklayarak çalıştırabilirsiniz.
HTML Kod:
<!DOCTYPE html>
<html lang="tr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>CCTV Depolama Hesaplama</title>
<style>
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:Arial,Helvetica,sans-serif;background:#f4f6f9;color:#333;padding:8px}
.container{width:600px;max-width:100%;margin:auto;background:#fff;border-radius:12px;padding:20px;box-shadow:0 2px 15px rgba(0,0,0,.08)}
h1{text-align:center;margin-bottom:15px;color:#1e293b;font-size:24px}
.form-group{display:grid;grid-template-columns:220px 1fr;gap:10px;align-items:center;margin-bottom:10px}
input,select{width:100%;height:42px;border:1px solid #d1d5db;border-radius:6px;padding:8px 12px;font-size:14px}
.result-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:15px}
.result-box{background:#f8fafc;border-left:5px solid #2563eb;border-radius:8px;padding:15px;text-align:center}
.result-box-title{font-size:13px;color:#64748b;margin-bottom:8px;font-weight:600}
.result-box-value{font-size:24px;font-weight:700;color:#0f172a}
.result-sub{display:block;margin-top:5px;font-size:12px;color:#64748b}
.formula{margin-top:15px;background:#eef2ff;padding:10px;border-radius:8px;font-size:12px}
.footer{margin-top:12px;font-size:12px;color:#666;text-align:center}
@media(max-width:600px){.container{width:100%;padding:12px}.form-group,.result-grid{grid-template-columns:1fr}}
</style>
</head>
<body>
<div class="container">
<h1>CCTV Depolama Hesaplama</h1>
<div class="form-group"><label>Kamera Sayısı</label><input type="number" id="cams" value="16" min="1"></div>
<div class="form-group"><label>Çözünürlük</label>
<select id="resolution">
<option value="1">1 MP (720p)</option>
<option value="1.25" selected>2 MP (1080p)</option>
<option value="1.5">4 MP</option>
<option value="1.75">5 MP</option>
<option value="2">8 MP (4K)</option>
<option value="2.5">12 MP</option>
</select></div>
<div class="form-group"><label>Bitrate (Mbps)</label><select id="bitrate"></select></div>
<div class="form-group"><label>Codec</label>
<select id="codec">
<option value="1">H.264</option>
<option value="0.6">H.265 (~%40 Tasarruf)</option>
</select></div>
<div class="form-group"><label>Kayıt Süresi (Gün)</label><input type="number" id="days" value="30" min="1"></div>
<div id="results"></div>
<div class="formula">
<strong>Formül:</strong><br>(Kamera Sayısı × BitRate × Codec × 3600 × 24 × Gün) ÷ 8 ÷ 1024 ÷ 1024</div>
<div class="footer">AI Web Designer: Muhammed Yusuf OLGUN</div>
</div>
<script>
const bitrateSelect=document.getElementById("bitrate");
for(let i=1;i<=30;i++){
const o=document.createElement("option");
o.value=i;o.textContent=i+" Mbps";
bitrateSelect.appendChild(o);
}
const bitrateMap={
"1 MP (720p)":2,
"2 MP (1080p)":4,
"4 MP":6,
"5 MP":8,
"8 MP (4K)":12,
"12 MP":16
};
bitrateSelect.value=4;
function convertStorage(gb){
let main="",sub="";
if(gb < (1/1024)){
const kb=gb*1024*1024;
const mb=kb/1024;
main=kb.toFixed(2)+" KB";
if(mb>=0.01) sub="("+mb.toFixed(2)+" MB)";
}
else if(gb < 1){
const mb=gb*1024;
main=mb.toFixed(2)+" MB";
sub="("+(mb/1024).toFixed(2)+" GB)";
}
else if(gb < 1024){
main=gb.toFixed(2)+" GB";
const tb=gb/1024;
if(tb>=0.01) sub="("+tb.toFixed(2)+" TB)";
}
else if(gb < 1024*1024){
const tb=gb/1024;
main=tb.toFixed(2)+" TB";
const pb=tb/1024;
if(pb>=0.01) sub="("+pb.toFixed(2)+" PB)";
}
else if(gb < 1024*1024*1024){
const pb=gb/(1024*1024);
main=pb.toFixed(2)+" PB";
const eb=pb/1024;
if(eb>=0.01) sub="("+eb.toFixed(2)+" EB)";
}
else{
const eb=gb/(1024*1024*1024);
main=eb.toFixed(2)+" EB";
}
return {main,sub};
}
function calculateStorage(){
const cams=Number(document.getElementById("cams").value)||1;
const resolutionFactor=1; // Çözünürlük yalnızca bitrate önerisi için kullanılır
const bitrate=Number(document.getElementById("bitrate").value)||1;
const codec=Number(document.getElementById("codec").value)||1;
const days=Number(document.getElementById("days").value)||1;
const totalGB=((bitrate*codec)*3600*24*days*cams)/(8*1024*1024);
const recommendedGB=totalGB*1.20;
const total=convertStorage(totalGB);
const recommended=convertStorage(recommendedGB);
document.getElementById("results").innerHTML=`
<div class="result-grid">
<div class="result-box">
<div class="result-box-title">💾 Toplam Depolama</div>
<div class="result-box-value">${total.main}<span class="result-sub">${total.sub}</span></div>
</div>
<div class="result-box">
<div class="result-box-title">💿 Önerilen Disk (+%20)</div>
<div class="result-box-value">${recommended.main}<span class="result-sub">${recommended.sub}</span></div>
</div>
</div>`;
}
document.getElementById("resolution").addEventListener("change",function(){
const text=this.options[this.selectedIndex].text;
if(bitrateMap[text]) document.getElementById("bitrate").value=bitrateMap[text];
calculateStorage();
});
["cams","resolution","bitrate","codec","days"].forEach(id=>{
const el=document.getElementById(id);
el.addEventListener("input",calculateStorage);
el.addEventListener("change",calculateStorage);
});
window.addEventListener("DOMContentLoaded",calculateStorage);
</script>
</body>
</html>
Kaynak:
ChatGPT
