redzilla
All tools
CCTV

CCTV Storage

Estimate the storage (TB) and bandwidth (Mbps) of an IP camera system based on resolution, FPS, codec, activity level, recording hours and retention days. These are estimates using a typical VBR bitrate. 100% in your browser.

Typical surveillance 1015 fps · real-time 2530 fps.

H.265 cuts ~50 % vs H.264 · H.265+ (Smart) ~65 %.

Activity / motion level

More motion in scene = more bitrate under VBR (low ×0.6 · medium ×1.0 · high ×1.4).

24 h = continuous recording · fewer hours if you record only on events/motion.

Examples
redzilla.cl — cctv
 
Total storage
Total bandwidth
recording from all cameras
Bitrate per camera
TB
Mbps
GB/cam/day

Calculation breakdown

ItemValueNote
How it is calculated · bitrate, storage and bandwidth

1. Base bitrate (Mbps) at H.264 / 15 fps / medium activity: 1MP=2, 2MP=4, 4MP=8, 5MP=10, 8MP=16.

2. bitrate/camera = base × (fps/15) × codec × activity. Codec: H.264=1.0, H.265=0.5, H.265+=0.35. Activity: low=0.6, medium=1.0, high=1.4.

3. GB/camera/day = bitrate(Mbps) × 3600 × hours / 8 / 1000 (Mbps to megabytes/s divided by 8, then to GB).

4. Total TB = GB/camera/day × cameras × retention / 1000 · Total Mbps = bitrate/camera × cameras.

5. These are estimates: real bitrate is VBR and depends on the scene, lighting, manufacturer and encoder settings. Size with headroom.

Runs locally in your browser · no sign-up · nothing leaves your browser.

How it works

The calculator estimates each IP camera bitrate starting from a base value per resolution at H.264, 15 fps and medium activity (1 MP = 2 Mbps, 2 MP = 4, 4 MP = 8, 5 MP = 10, 8 MP/4K = 16) and applying three factors: bitrate = base × (fps/15) × codec × activity. The codec multiplies by 1.0 for H.264, 0.5 for H.265 and 0.35 for H.265+/Smart; activity by 0.6 (low), 1.0 (medium) or 1.4 (high).

With the bitrate it derives the daily usage per camera (GB/day = Mbps × 3600 × hours / 8 / 1000), the total system storage (TB = GB/cam/day × cameras × retention days / 1000) and the recording bandwidth (total Mbps = bitrate × cameras). These are typical VBR estimates: real figures depend on the scene, night-time noise and each vendor encoder, so size with headroom.

Example: 8 1080p cameras with H.265, 30 days of retention

  1. Bitrate per camera: 4 × (15/15) × 0.5 × 1.0 = 2 Mbps (2 MP, H.265, medium activity).
  2. Daily usage: 2 × 3600 × 24 / 8 / 1000 = 21.6 GB per camera.
  3. Storage: 21.6 × 8 × 30 / 1000 ≈ 5.2 TB → a 6 TB surveillance drive is borderline; 8 TB is safer.
  4. Recording bandwidth: 2 × 8 = 16 Mbps toward the NVR.

Frequently asked questions

How many GB does a security camera use per day?
A 1080p camera with H.265 at 15 fps and medium activity generates about 21.6 GB per day recording 24/7 (a sustained 2 Mbps). The same camera on H.264 doubles that (~43 GB), and a 4K camera on H.265 runs around 86 GB per day.
What is the difference between H.264, H.265 and H.265+?
H.265 (HEVC) compresses about 50 % better than H.264 at the same quality, halving storage and bandwidth. H.265+ (or each vendor Smart mode) adds region-based smart encoding and reaches about 65 % savings in low-motion scenes, though compatibility outside the vendor ecosystem is more limited.
How many days of recording fit on a 4 TB drive?
It depends on the total bitrate. With 8 1080p cameras on H.265 (21.6 GB per camera per day, about 173 GB daily for the system) you get close to 23 days. On H.264 that drops to about 11 days. Lowering FPS, using H.265+ or recording on motion only extends retention.
Does lowering FPS really reduce storage?
Yes, almost proportionally: the model scales bitrate by (fps/15), so going from 25 to 12 fps cuts usage to less than half. For general surveillance 10–15 fps is enough; 25–30 fps is reserved for casinos, cash registers or moving license plates.
Was this tool useful?
Disclaimer We take great care to keep every tool accurate and review it thoroughly; even so, we can't guarantee it is free of errors or take responsibility for how the results are used. We recommend double-checking anything critical.
Found an error? Let us know →