marcus-j-davies / nvr-js

A simple, lightweight, but very functional NVR aimed at 24/7 recording using nodejs.
MIT License
25 stars 13 forks source link

FFMPEG missing? #14

Closed b3nis closed 8 months ago

b3nis commented 1 year ago

Hi! Like your project here - I think it suits me perfect. However, I am getting following error when trying to start:

0|NVRJS  |  - Checking volumes and ffmpeg.
0|NVRJS  | ffmpeg not found in specifed location: ffmpeg

I am running on a Ubuntu Server 20.04 with ffmpeg installed (apt install ffmpeg). Anything else I need to do?

marcus-j-davies commented 1 year ago

Hi,

Try changing the config to point to /usr/bin/ffmpeg

I.e the absolute path to ffmpeg.

EDIT you may also need to remove the below line, as I don't think that works in ffmpeg anymore.

stimeout: '30000000'

b3nis commented 1 year ago

That worked - thanks @marcus-j-davies ! Next question now, I cannot login. Ofc, I have double checked everything 3 times. This is my config. What can be wrong?

        /* System Settings */
        system: {
                /* Username */
                username: 'admin',
                /* bcrypt password (default: admin) */
                password: 'knorr',
                /* bcrypt API Key (default: x7Te9m38JHQq6ddv) */
                apiKey: '$2a$10$N53ci.EIQ7JCu6u1HlOjoO//W0Bmp3GrRruyK1Jysr01CQ1rDrVQK',
                /* Any random string */
                cookieKey: 'f3gi6FLhIPVV31d1TBQUPEAngrI3wAoP',
                interfacePort: 7878,
                /* location used for 24/7 recording and database generation */
                /* This should be the root of a mount point i.e a dedicated HDD for 24/7 recordings */
                storageVolume: '/media/video',
                /* Continuous recording settings */
                ffmpegLocation: '/usr/bin/ffmpeg',
                continuousSegTimeMinutes: 15,
                continuousDays: 365,
                continuousPurgeIntervalHours: 24,
                /* event throttle per sensorId */
                eventSensorIdCoolOffSeconds: 60
        },

Second question:

0|NVRJS  | (node:1924) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 close listeners added to [Server]. Use emitter.setMaxListeners() to increase limit
0|NVRJS  | (Use `node --trace-warnings ...` to show where the warning was created)
0|NVRJS  | (node:1924) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 listening listeners added to [Server]. Use emitter.setMaxListeners() to increase limit
0|NVRJS  | (node:1924) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 upgrade listeners added to [Server]. Use emitter.setMaxListeners() to increase limit

What is this? Might be a problem?

marcus-j-davies commented 1 year ago

The password is not plain text, it must be stored as bcrypt. Use some online bcrypt encoder.

As for the memory event emitter warnings, this I believe, has been fixed in v3. When I finally get around to releasing 3.0 - this repo doesn't see much maintenance at the moment.

Also, if you really are storing 365 days worth of footage.

b3nis commented 1 year ago

I do have a lot of storage. But I have other issues with respawning camera - I guess it's not how it is supposed to work?

/home/benjamin/.pm2/logs/NVRJS-error.log last 15 lines:
0|NVRJS    |     at Module._extensions..js (node:internal/modules/cjs/loader:1309:10)
0|NVRJS    |     at Module.load (node:internal/modules/cjs/loader:1113:32)
0|NVRJS    |     at Module._load (node:internal/modules/cjs/loader:960:12)
0|NVRJS    |     at Module.require (node:internal/modules/cjs/loader:1137:19)
0|NVRJS    |     at Hook._require.Module.require (/usr/local/lib/node_modules/pm2/node_modules/require-in-the-middle/index.js:101:39)
0|NVRJS    |     at require (node:internal/modules/helpers:121:18)
0|NVRJS    |     at Object.<anonymous> (/home/benjamin/node_modules/nvr-js/NVRJS.js:33:16)
0|NVRJS    | (node:2314) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 close listeners added to [Server]. Use emitter.setMaxListeners() to increase limit
0|NVRJS    | (Use `node --trace-warnings ...` to show where the warning was created)
0|NVRJS    | (node:2314) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 listening listeners added to [Server]. Use emitter.setMaxListeners() to increase limit
0|NVRJS    | (node:2314) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 upgrade listeners added to [Server]. Use emitter.setMaxListeners() to increase limit
0|NVRJS    | (node:13505) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 close listeners added to [Server]. Use emitter.setMaxListeners() to increase limit
0|NVRJS    | (Use `node --trace-warnings ...` to show where the warning was created)
0|NVRJS    | (node:13505) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 listening listeners added to [Server]. Use emitter.setMaxListeners() to increase limit
0|NVRJS    | (node:13505) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 upgrade listeners added to [Server]. Use emitter.setMaxListeners() to increase limit

/home/benjamin/.pm2/logs/NVRJS-out.log last 15 lines:
0|NVRJS    |  - Camera: Uteplatsen was terminated, respawning after 10 seconds...
0|NVRJS    |  - Camera: Uteplatsen was terminated, respawning after 10 seconds...
0|NVRJS    |  - Camera: Uteplatsen was terminated, respawning after 10 seconds...
0|NVRJS    |  - Camera: Uteplatsen was terminated, respawning after 10 seconds...
0|NVRJS    |  - Camera: Uteplatsen was terminated, respawning after 10 seconds...
0|NVRJS    |  - Camera: Uteplatsen was terminated, respawning after 10 seconds...
0|NVRJS    |  - Camera: Uteplatsen was terminated, respawning after 10 seconds...
0|NVRJS    |  - Camera: Uteplatsen was terminated, respawning after 10 seconds...
0|NVRJS    |  - Camera: Uteplatsen was terminated, respawning after 10 seconds...
0|NVRJS    |  - Camera: Uteplatsen was terminated, respawning after 10 seconds...
0|NVRJS    |  - Camera: Uteplatsen was terminated, respawning after 10 seconds...
0|NVRJS    |  - Camera: Uteplatsen was terminated, respawning after 10 seconds...
0|NVRJS    |  - Camera: Uteplatsen was terminated, respawning after 10 seconds...
0|NVRJS    |  - Camera: Uteplatsen was terminated, respawning after 10 seconds...
0|NVRJS    |  - Camera: Uteplatsen was terminated, respawning after 10 seconds...
marcus-j-davies commented 1 year ago

ffmpeg is not able to utilise the output stream of the camera, ensure its producing x264/5 streams and its audio is AAC. of causing checking if the address is correct also.