Parts list to build the ultimate NVR (IP cameras recording server)

Discussion in 'Processors and Motherboards' started by yesaii, Oct 13, 2019.

  1. yesaii

    yesaii New Member

    Oct 13, 2019
    Likes Received:
    Hello, this is my first post so I hope to be in the right section.

    A few years ago, I started recording 16x IP cameras 24/7 on a Dell OptiPlex 3020 Mini-tour BTX Base. Its specs are:
    • Processor: Intel(R) Core(TM) i5-4570 Quad Core Processor(3.2GHz, 6M, 86W)
    • RAM: 8GB (2x4GB) Non-ECC DDR3 1600MHz SDRAM Memory
    • Main hard drive: 128 GB SSD
    • Videos are recorded to a 10Tb LVM based on 2x 5Tb USB drives (no redundancy)
    At software level:
    • OS: Ubuntu 14.04
    • I record the RTSP streams of the IP cameras with openRTSP or FFmpeg (depending on the camera model). I don't transcode so basically I just get the streams and store them in AVI files (1 file per minute per camera)
    • But I trimmed all cameras configurations to these settings so the whole system can keep up:
      • Codec = H.264
      • Resolution = 1280*960
      • Bitrate Type = variable
      • Frame Rate = 10 FPS
      • Max. Bitrate = 2048 Kbps
      • I Frame Interval = 10
    • At the end of every minute, my recording script asks our security system if there was any movement during the recorded minute (we have many motion sensors in the building) and writes the filename accordingly (for example: <camera_number><timestamp><motionOFF>.avi or <camera_number><timestamp><motionON>.avi)
    • Every night, a "cleaning script":
      • finds the videos older than 7 days with no motion and deletes them
      • finds the videos older than 7 days with motion and re-encode them to lower quality (h264 -preset ultrafast -crf 40) to save space
      • deletes the oldest files until there is enough space to record all cameras the next day

    This solution has worked pretty well until now but of course, using an LVM with USB drives and no redundancy is quite a bad idea... I plan to install more cameras and upgrade our network with fiber optic backbones (between the switches), so I thought it would be a good time to upgrade our recording system.

    My idea was to upgrade to Ubuntu 18.04 and use internal hard drives (NAS grade) to create a mirrored ZFS pool of ~30Tb. Also, I would use one or more GPU to accelerate considerably the nightly re-encoding part (I have some AMD RX-570 and RX-580). In the future, I might also use the GPU's for OpenCV on live videos (for object detection for example).

    The problem is I don't know much about hardware, so I am afraid to buy incompatible or irrelevant components...

    Can you help me gather a list of the right components (motherboard, CPU, RAM, PSU, enclosure, drives, etc...) to build such a server?

    The server will be located in a technical room, so no problem if it's big and noisy. Also, I can afford to turn the server off in case I need to replace a drive so hot swapping is not mandatory.

    Sorry for the long post and thank you very much in advance for any help.
    Last edited: Oct 13, 2019
  2. SRussell

    SRussell Member

    Oct 7, 2019
    Likes Received:
Similar Threads: Parts list
Forum Title Date
Processors and Motherboards Dell PowerEdge C6100 spare parts list Jan 31, 2014
Processors and Motherboards Parts for ESXi 6.0 build Feb 24, 2019
Processors and Motherboards How Reputable Is I Computer Parts International on Ebay? Apr 7, 2017
Processors and Motherboards List of X99 motherboards compatible with ECC memory ? Nov 28, 2018
Processors and Motherboards list of IOMMU groupings for X11SPH-nCTF Jun 8, 2018

Share This Page