Experimental project

This is a sandbox project, which contains experimental code for developer use only.


CCTV brings IP Camera footage management (recording and retention) to Drupal.

There are a few Open Source CCTV solutions out there but I believe that CCTV fills in that gap with its ability to quickly produce a cameras recording in a standard format. Oh! Did I mention its super flexible due to being in Drupal!


  • Easy split files for per IP Camera
  • Flexible
  • Web Management


  • Large datastore depending on retention setting and ip camera compression
  • Local access to cron for more accurate recordings
  • IP Camera for recording
  • VLC Packages for command line execution (for built in recording option).
  • Unix Based or Cygwin Installed Host

Known problems

  • Recordings not starting on specified interval: This is due to the use of Drupal's cron system. For a more accurate result (minutes on either end of required execute) use the Manual Cron Solution.


Initial Configuration

  • After downloading and installing this module you will want to configure it. This can be done by going to the follow configuration page:
    Admin -> Configuration -> Media -> CCTV
  • The following fields are used to configure CCTV

    Basic Configuration

    • Enabled: Pretty straight forward (to turn on cctv recording).
    • Temporary Directory: The local directory in which the recordings are saved before saved to the "IP Camera" node "File" field.
    • Recording Length: The length (in seconds) in which the a recording runs for (NEEDS TO BE IN SYNC WITH YOUR CRON SETTING. EITHER DRUPAL OR MANUAL CRON).
    • File Format: The date which is added to the recordings file name. This is using the php date() syntax.
    • Retention: The length in time before a recording is deleted from both the "IP Camera" node and the filesystem.


    • Recording Command: The command which will be executed to start a recording process.
      Replacement Patterns
      • %STREAMURL% - The source URL of the IP Camera
      • %LENGTH% - The length in seconds the recording will save for
      • %OUTPUT% - Where the file will be temporarily saved
    • Check Recording Command: This command will be run to check if the process is still running for a given recording.
    • Replacement Patterns

      • %PID% - The PID of the local running recording process
  • There is now the option to configure cron to run more acutally (for recording timestamp purposes). I stongly recommend this. You will need to disable your site Drupal cron at:
    Admin -> Configuration -> Cron
    Then configure your site to use your hosts cron (Manual Cron Solution).
  • Now you are ready to go! You will now start to see recordings start to appear against the "IP's Cameras" node "File" field as they become available for saving.

Video Tutorial

Video Tutorial Coming Soon......

Project Information