seydx / camera.ui Goto Github PK
View Code? Open in Web Editor NEWNVR like user Interface for RTSP capable cameras
Home Page: https://github.com/seydx/camera.ui
License: MIT License
NVR like user Interface for RTSP capable cameras
Home Page: https://github.com/seydx/camera.ui
License: MIT License
Describe the bug
FFMPEG Crashes on recording after detected motion.
To Reproduce
Add Camera with below confs
{
"name": "CameraUI",
"port": 8080,
"atHomeSwitch": true,
"logLevel": "debug",
"mqtt": {
"active": false,
"tls": false,
"port": 1883
},
"http": {
"active": false,
"port": 7272,
"localhttp": false
},
"smtp": {
"active": false,
"port": 2727,
"space_replace": "+"
},
"ftp": {
"active": false,
"useFile": false,
"port": 5050
},
"ssl": {
"active": false
},
"options": {
"videoProcessor": "ffmpeg"
},
"cameras": [
{
"name": "Living Room Camera",
"manufacturer": "TP-Link",
"model": "C200",
"privacySwitch": true,
"motion": true,
"doorbell": true,
"motionTimeout": 15,
"motionDoorbell": true,
"unbridge": true,
"hsv": true,
"prebuffering": false,
"prebufferLength": 4,
"hksvConfig": {
"source": "-i rtsp://user:pass%[email protected]:554/stream1",
"vcodec": "copy",
"audio": false
},
"videoConfig": {
"source": "-i rtsp://user:pass%[email protected]:554/stream1",
"subSource": "-i rtsp://user:pass%[email protected]:554/stream2",
"stillImageSource": "-i rtsp://user:pass%[email protected]:554/stream1",
"rtspTransport": "tcp",
"vcodec": "h264_videotoolbox",
"acodec": "libfdk_aac",
"audio": false,
"debug": true,
"debugReturn": false
},
"smtp": {
"email": "Living Room Camera"
},
"videoanalysis": {
"active": true
},
"mqtt": {}
}
],
"platform": "CameraUI"
}
],
Expected behavior
A clear and concise description of what you expected to happen.
Logs
[5/11/2022, 5:25:32 PM] [CameraUI] VIDEOANALYSIS: New message: Data: [{"zone":"region0","percent":26.64322853088379,"sensitivity":74,"dwell":60,"forceClose":3}] - Motion: detected - Camera: Living Room Camera
[5/11/2022, 5:25:32 PM] [CameraUI] Living Room Camera: {"error":false,"message":"Handling through extern controller.."}
[5/11/2022, 5:25:32 PM] [CameraUI] MQTT client not connected, skip MQTT (notification)..
[5/11/2022, 5:25:32 PM] [CameraUI] Living Room Camera: Motion ON
[5/11/2022, 5:25:32 PM] [CameraUI] Living Room Camera: Snapshot requested: 1280 x 720
[5/11/2022, 5:25:32 PM] [CameraUI] Living Room Camera: Snapshot command: ffmpeg -hide_banner -loglevel error -i rtsp://user:pass%[email protected]:554/stream1 -frames:v 1 -f image2 -
[5/11/2022, 5:25:32 PM] [CameraUI] Living Room Camera: Video fragments requested from HSV
[5/11/2022, 5:25:32 PM] [CameraUI] Living Room Camera: Start recording...
[5/11/2022, 5:25:32 PM] [CameraUI] Living Room Camera: Recording command: ffmpeg -hide_banner -rtsp_transport tcp -i rtsp://user:pass%[email protected]:554/stream1 -f mp4 -vcodec copy -an -movflags frag_keyframe+empty_moov+default_base_moof -max_muxing_queue_size 1024 tcp://127.0.0.1:37230
[5/11/2022, 5:25:32 PM] [CameraUI] Living Room Camera: [rtsp @ 0x55cc436e7880] method SETUP failed: 406 Not Acceptable
[5/11/2022, 5:25:32 PM] [CameraUI] Living Room Camera: rtsp://user:pass%[email protected]:554/stream1: Server returned 4XX Client Error, but not one of 40{0,1,3,4}
[5/11/2022, 5:25:32 PM] [CameraUI] ERROR Living Room Camera: FFmpeg recording process exited with error! (null)
[5/11/2022, 5:25:36 PM] [CameraUI] Living Room Camera: Fetching snapshot took 3.963 seconds.
[5/11/2022, 5:25:36 PM] [CameraUI] Living Room Camera: Sending snapshot: 1280x720
[5/11/2022, 5:25:36 PM] [CameraUI] Living Room Camera: Resize command: ffmpeg -i pipe: -frames:v 1 -filter:v scale='min(1280,iw)':'min(720,ih)':force_original_aspect_ratio=decrease -f image2 -
[5/11/2022, 5:25:40 PM] [CameraUI] Living Room Camera: New motion detected, resetting motion in 60s..
[5/11/2022, 5:25:40 PM] [CameraUI] Living Room Camera: Motion data: [{"zone":"region0","percent":27.27777862548828,"sensitivity":74,"dwell":60,"forceClose":3}]}
[5/11/2022, 5:25:40 PM] [CameraUI] Living Room Camera: Closing recording process
[5/11/2022, 5:25:40 PM] [CameraUI] Living Room Camera: Resetting motion sensor, because HSV closed the recording process
[5/11/2022, 5:25:40 PM] [CameraUI] MQTT client not connected, skip MQTT (notification)..
[5/11/2022, 5:25:40 PM] [CameraUI] Living Room Camera: Motion OFF
[HDS ::ffff:192.168.0.61] Recording download stream 1 is still awaiting generator although stream was closed 10s ago! This is a programming mistake by the camera implementation which prevents freeing up resources.
Environment
Describe the bug
Error: EACCES: permission denied, mkdir “/var/lib/homebridge”
Please help me understand how to
Fix this error.
To Reproduce
Installed on a new Mac mini m1
Expected behavior
Error occurs when loading a camera.
Logs
If available, attach the log where the bug is vissible
Screenshots
If applicable, add screenshots to help explain your problem.
Environment
@seydx I just wanted to compliment you on what a fantastic bit of code this is. I know there's a bunch of us out here wondering if you are still working on this project? Seems like there is just so much potential here for an even greater product. If you have had to stop working on this code, we understand, but we'd sure love to hear from you if there is a particular reason for that and if there is anything that we can do to help you get the next version published with some of the amazing features that have been teased.
To be honest with you, I'd even be willing to pay a small one-time fee for this software, it's that good. If that is at all motivating or encouraging. Anyways thank you and we hope to hear from you soon!
I am using a camera that updates an MQTT topic when an alarm was triggered. The value represents different alarm triggers in from of numbers - 1
, 2
, etc. The value falls back to 0
after a few seconds when entering the idle state:
"mqtt": {
"motionTopic": "cameras/120/status/alarm/triggered",
"motionMessage": "{\"val\":\"1\"}",
"motionResetTopic": "cameras/120/status/alarm/triggered",
"motionResetMessage": "{\"val\":\"0\"}"
},
When a trigger event represented by the value 1
happens it is registered. But the update to value 0
when falling back to idle seems to be skipped - seems that the reset topic cannot be identical to the motion topic?
[camera.ui] MQTT: New message: Topic: cameras/120/status/alarm/triggered - Data: {"val":"1"} - Type: string
[camera.ui] MQTT: New message: Topic: cameras/120/status/alarm/triggered - Data: {"val":"1"} - Type: string
[camera.ui] MQTT: New message: Topic: cameras/120/status/alarm/triggered - Data: {"val":"0"} - Type: string
[camera.ui] WARNING The incoming MQTT message ({"val":"0"}) for the topic (cameras/120/status/alarm/triggered) was not the same as set in config.json ({"val":"1"}). Skip...
And I am unable to use any other triggers with values > 1
.
To trigger camera.ui through it's webhook we have to attach a query to the GET request with the camera name. The camera I am using follows the convention of having queries consisting of key
+ value
. So when I am using the alarmserver camera.ui will receive a request with the query ?my%20camera=
or ?my%20camera=1
:
And the alarm is not triggered:
[camera.ui] HTTP: New message: URL: /motion?IN-9408%202k+%20WQHD=1
[camera.ui] WARNING IN-9408 2k+ WQHD=1: Camera 'IN-9408 2k+ WQHD=1' not found
reset_value
to trigger an alert. And if equal reset the alarm state?Describe the bug
At starting the server and/or at radom times (not sure for the last one) we may get TypeError: Cannot read properties of undefined (reading 'toFixed')
To Reproduce
Enable recording start the server.
Expected behavior
Record
Logs
Screenshots
Environment
Seems it is caused by this piece of (Orphan?) code at the event.cotroller.js
if (!allowRecording) {
log.warn(
`The available disk space is less than 1 GB (${diskSpace.available.toFixed(2)
} GB)! Please free up disk space to be able to create new recordings!`,
cameraName
);
log.info('Skip local storage of the recording..', cameraName);
}
[1/21/2022, 11:21:46 PM] [CameraUI] August: Restart prebuffer session..
[1/21/2022, 11:21:48 PM] [Homebridge UI] [homebridge-camera-ui] Incoming Request: /interfaceConfig
[1/21/2022, 11:21:49 PM] [CameraUI] August: Videoanalysis scheduled for restart at 4AM: 278 minutes
[1/21/2022, 11:21:49 PM] [CameraUI] August: FFmpeg videoanalysis process exited with error! (null) - rtsp://192.168.50.155:554/live/stream0: Protocol not foundDid you mean file:rtsp://192.168.50.155:554/live/stream0?
[1/21/2022, 11:21:49 PM] [CameraUI] August: FFmpeg videoanalysis process exited with error! (null) - rtsp://192.168.50.155:554/live/stream0: Protocol not foundDid you mean file:rtsp://192.168.50.155:554/live/stream0?
[1/21/2022, 11:21:49 PM] [CameraUI] August: Restart videoanalysis session..
Config:
"cameras": [
{
"name": "August",
"motion": true,
"unbridge": true,
"hsv": true,
"prebuffering": true,
"prebufferLength": 4,
"videoConfig": {
"source": "-i rtsp://192.168.50.155:554/live/stream0",
"maxStreams": 2,
"vcodec": "copy",
"acodec": "libfdk_aac",
"audio": false
},
"videoanalysis": {
"active": true
}
}
],
"platform": "CameraUI"
Describe the bug
When I try to install the camera.ui plugin on my Homebridge Raspberry Pi Zero 2, it always gives the following issue:
npm ERR! code ERR_SOCKET_TIMEOUT
npm ERR! network Socket timeout
npm ERR! network This is a problem related to network connectivity.
npm ERR! network In most cases you are behind a proxy or have bad network settings.
npm ERR! network
npm ERR! network If you are behind a proxy, please make sure that the
npm ERR! network 'proxy' config is set properly. See: 'npm help config'
npm ERR! A complete log of this run can be found in:
npm ERR! /home/pi/.npm/_logs/2023-08-23T16_17_39_926Z-debug-0.log
To Reproduce
Just try to install camera.ui on a Raspberry Pi!
Expected behavior
Camera.ui should install!
Logs
pi@homebridge:/var/lib/homebridge $ npm i -g camera.ui@latest --unsafe-perm
npm ERR! code ENOTEMPTY
npm ERR! syscall rename
npm ERR! path /opt/homebridge/lib/node_modules/camera.ui
npm ERR! dest /opt/homebridge/lib/node_modules/.camera.ui-pL2N2CGP
npm ERR! errno -39
npm ERR! ENOTEMPTY: directory not empty, rename '/opt/homebridge/lib/node_modules/camera.ui' -> '/opt/homebridge/lib/node_modules/.camera.ui-pL2N2CGP'
npm ERR! A complete log of this run can be found in:
npm ERR! /home/pi/.npm/_logs/2023-08-23T16_15_32_287Z-debug-0.log
pi@homebridge:/var/lib/homebridge $ rm -rf /opt/homebridge/lib/node_modules/camera.ui
pi@homebridge:/var/lib/homebridge $ npm config set fetch-retry-mintimeout 2000000
pi@homebridge:/var/lib/homebridge $ npm config set fetch-retry-maxtimeout 12000000000
pi@homebridge:/var/lib/homebridge $ npm i -g camera.ui@latest --unsafe-perm
npm ERR! code ERR_SOCKET_TIMEOUT
npm ERR! network Socket timeout
npm ERR! network This is a problem related to network connectivity.
npm ERR! network In most cases you are behind a proxy or have bad network settings.
npm ERR! network
npm ERR! network If you are behind a proxy, please make sure that the
npm ERR! network 'proxy' config is set properly. See: 'npm help config'
npm ERR! A complete log of this run can be found in:
npm ERR! /home/pi/.npm/_logs/2023-08-23T16_17_39_926Z-debug-0.log
Screenshots
Terminal only - so no screenshots.
Environment
Is your feature request related to a problem? Please describe.
When recording is set to videos instead of snapshop, there are two issues, 1. Orphan snapshops are created very often (jpeg with no video) making the front-end to appear a 'false' video that seems like a recording of 1hour to 2hours, (thats a different issue but i mentioning it, ffmpeg can create simmutaniously a jpeg with a video at one command line 1 proccess. instead of running two times ffmpeg to create a seperate vid and jpeg that would be really nice.
Back to the main issue, many motions go unrecorded which is bad for survillance use, as execept to know how a thing started (eg a person comes by) we also need to know what that person did the whole time was in the cameras view until the person left and there is no motion anymore.
Describe the solution you'd like
Instead of dwell timers or any timers at all plus small recordings up to 10min, i think it would be better to have 30min to 1hour segments of recordings just by starting a recording any time the movement is triggered. Example thought: store the spawn of the camera in an array to not start a reording again until there a exit-spawn
Describe alternatives you've considered
Also a 24/7 constant recordings would be nice.. eg. by ffmpeg -i
Describe the bug
I would like to add a timestamp to the video, but using the vFilter option doesn't seem to do anything
To Reproduce
I added drawtext=text='My text starting at 640x360':x=640:y=360:fontsize=24:fontcolor=white
to test this, and also tried to add -vf
before drawtext=..
I also changed the videoProcessor
to a local installed version of ffmpeg, does not make a difference
Expected behavior
The video should show a textstring
Logs
n/a
Screenshots
n/a
Environment
Hello,
I have 7 cameras configured in camera.ui (and passed through to Homebridge and HSV). Everything is working perfectly, but I'm having a strange issue with the camera.ui interface. On the cameras page, all seven cameras show up. However, only six of the seven are available on the dashboard and camview pages.
Any idea why this might be happening? Happy to share screenshots, but would rather not on a public page.
thanks!
How to add cams which have passwords? I am using Agent DVR atm for a long time. I am want to try out camera.ui, with my EZVIZ camera's. How to add username and password to the cameras? They need to use this.
Can i do this in the RSTP stream link?
Describe the bug
Whilst doing the camera RTSP configuration and save, it does not allows saving and error message appeared as Request failed with status code 500.
Expected behavior
It should save and allow cameras to be added thru config.json. However, I am unable to locate the directory or check the file permission/ownership
Logs
Not visible
Screenshots
It disappear rather fast but it shows at the bottom of the monitor.
Environment
Describe the bug
After following instructions as per here on how to set up service mode, I get the following error. I copy and pasted with 0 edits, I also tried to edit the folders but that didn't help.
Sep 04 15:03:07 DebianServer systemd[1]: camera.ui.service: Scheduled restart job, restart counter is at 188.
Sep 04 15:03:07 DebianServer systemd[1]: Stopped camera.ui.service - camera.ui.
Sep 04 15:03:07 DebianServer systemd[1]: camera.ui.service: Failed to load environment files: No such file or directory
Sep 04 15:03:07 DebianServer systemd[1]: camera.ui.service: Failed to run 'start' task: No such file or directory
Sep 04 15:03:07 DebianServer systemd[1]: camera.ui.service: Failed with result 'resources'.
Sep 04 15:03:07 DebianServer systemd[1]: Failed to start camera.ui.service - camera.ui.
To Reproduce
Follow the service mode instructions.
Expected behavior
Expected the service mode to work, could not start with above error.
Logs
See above.
Screenshots
If applicable, add screenshots to help explain your problem.
Environment
Question:
Could you outline the edits necessary to the files?
Is your feature request related to a problem? Please describe.
A Telegram Token and a ChatID are requested to send notifications, but it'd be great to know what kind of API token is requested, Telegram allows you to create different kinds of it.
Describe the solution you'd like
A clear documentation
Thank you.
Hi,
I have 5 Reolink PoE cameras and am thinking to use camera.ui instead of the Reolink NVR. In combination with Homekit Secure Video and its object recognition, I think it could replace the NVR without problems.
Now I was wondering what the host system of camera.ui would have to provide in terms of CPU and RAM power.
Is there some experience around it that we could collect? Do you think an RPi 3B or 4 would be sufficient if I attached a USB drive?
Maybe we can use this issue for people interested to share their setup.
Thanks.
Unless I missed it, is there a way to enable relays? I have a Doorbird with an electronic lock, for example, that I would like to be able to unlock when the doorbell is pushed through HomeKit.
Thank you!
I'm trying to install package to develope some solution useing your git code, so too many errors are occured.
I'm so sorry, but please update your package.json and package-lock.json.
Under Utilization, you might want to rename 'Disk Load' to 'Disk Usage'
'Disk Load' is an industry standard term for IOPs and their stats in a similar context.
Is your feature request related to a problem? Please describe.
no.
Describe the solution you'd like
Using full disk with periodically checks in order to delete the oldest video to make more space than 5gb
(assuming 5gb is a safe-space for OS. updates etc)
Describe alternatives you've considered
Altering a few lines at the cleartimer.js at the line 62 and bellow? i will provide an example.
` if (recRemoveAfter) {
const recordings = Cleartimer.#recordingsDB.chain.get('recordings').cloneDeep().value();
//will need to check free space later.
const recPath = Cleartimer.#recordingsDB.chain.get('path').cloneDeep().value();
//Change the (for loop) array to loop with shorting from lowest unix timestamp first to higher (oldest)
for (const recording of recordings.sort(({ timestamp: a }, { timestamp: b }) => a - b)) {
//Recycle option? considering frontend hides 100days for this. (time == 100)
if (recRemoveAfter == 100) {
//update available disk space?
let diskSpace = await checkDiskSpace(recPath);
//if we left less than 5gb free space, remove that file if still less than 5gb
if ((Math.round(diskSpace.free / 1e9) < 5)) {
Cleartimer.#recordingsTimer.set(recording.id, false);
await Cleartimer.#clearRecording(recording.id);
}
} else {
let timestampNow = moment();.................................................................`
Additional context
Im not sure how often this is called in order to work smoothly and how these timers actually work , i would like an explenation tho.
Hello I couldn't find a command line to make camera.ui start with debian 12 for that reason I created a functional command I will send it below, could you put it next to the installation tutorial?
1 create notepad with name.
sudo nano /lib/systemd/system/cameraui.service
2 inside notepad
[Service]
ExecStart=/usr/local/bin/camera.ui
[Install]
WantedBy=multi-user.target
3 to update the list of debian services
sudo systemctl daemon-reload
4 to update the service table that starts with the system
sudo systemctl enable cameraui.service
5 to check if service is running
sudo systemctl list-units --type service
*Bug
I've set my cameras up and I enabled the motion detection feature, but it seems it does not work. How to troubleshoot the problem?
To Reproduce
Settings --> Add camera --> Enable motion detection
Expected behavior
A notification should be shown
Environment
Thank you
I'm trying to start server in a windows os but it's not working... is there a way to run without linux?
Describe the bug
Recording is not working on a windows installation.
To Reproduce
Steps to reproduce the behavior
Installed camera.ui on Windows as described in docs.
Configured cameras, and double checked cameras built in motion detection.
Tried to use recording on 2 different paths (to make sure it wasn't a problem with the path name)
It simply doesn't start to record.
Is there any specific step to make it work?
I also tried the UI motion detection, without success.
Expected behavior
It should start recording with built in motion detection or at least with UI motion detection.
Logs
If available, attach the log where the bug is vissible
Screenshots
If applicable, add screenshots to help explain your problem.
Environment
I set up telegram notifications, pictures and text are successfully sent but if switch to video or text+video, then sending does not work. Error messages appear in the log
To Reproduce
Trigger motion
Logs
[4/15/2022, 6:32:09 PM] [camera.ui] VIDEOANALYSIS: New message: Data: {"time":"2022-04-15T15:32:09.378Z","event":"dwellTime (60s)"} - Motion: resetted - Camera: Backside
[4/15/2022, 6:34:07 PM] [camera.ui] Telegram: An error occured during sending video!
[4/15/2022, 6:34:07 PM] [camera.ui] Telegram: ETELEGRAM: 400 Bad Request: invalid file HTTP URL specified: URL host is empty
[4/15/2022, 6:34:29 PM] [camera.ui] Telegram: An error occured during sending video!
[4/15/2022, 6:34:29 PM] [camera.ui] Telegram: ETELEGRAM: 400 Bad Request: invalid file HTTP URL specified: URL host is empty
[4/15/2022, 6:35:37 PM] [camera.ui] Telegram: An error occured during sending video!
[4/15/2022, 6:35:37 PM] [camera.ui] Telegram: ETELEGRAM: 400 Bad Request: invalid file HTTP URL specified: URL host is empty
Environment
All my recordings so far have "Invalid date" as date.
This issue just occurred out of nowhere and persists through a server reboot, reset of Camera-UI database and reinstall of Camera-UI. When motion is detected from the cameras, Telegram notifications are no longer sent through the app. The configuration for Telegram is confirmed to be correct and has not changed between when this was working and now. Nothing telling in Console.
I keep getting the following messages in the logging:
[18/01/2022, 14:03:03] [CameraUI] birdy-two: Restart videoanalysis session..
[18/01/2022, 14:03:13] [CameraUI] birdy-two: Videoanalysis scheduled for restart at 4AM: 837 minutes
[18/01/2022, 14:03:26] [CameraUI] birdy-two: Watchdog for mp4 parser timed out... killing ffmpeg session
[18/01/2022, 14:03:26] [CameraUI] birdy-two: FFmpeg videoanalysis process exited with error! (null) - tcp://127.0.0.1:35812: could not find codec parameters
The relevant (I think) config:
"cameras": [
{
"name": "birdy-two",
"motion": true,
"unbridge": true,
"hsv": false,
"prebuffering": true,
"prebufferLength": 4,
"videoConfig": {
"source": "-i rtsp://192.168.178.3:8554/unicast",
"rtspTransport": "tcp",
"maxStreams": 8,
"maxWidth": 0,
"maxHeight": 0,
"maxFPS": 30,
"vcodec": "h264",
"acodec": "libfdk_aac",
"stimeout": 10,
"audio": false,
"debug": true,
"readRate": true
},
"videoanalysis": {
"active": true
},
"mqtt": {},
"smtp": {
"email": "birdy-two"
}
}
]
Anyone successfully used a camera with (only) ONVIF support?
Have a D-link DCS-8300LHV2 that I would like to use.
Works fine with D-link app and QNAP NAS
Not able to stream any video/picture in Homebridge (Mac) by use of camera.ui plugin. Find and connects to the camera, but no stream or fixed picture
For starters - love this plugin. Thanks for making it! I'm new to it, so I'm probably just holding it wrong, but my motion seems to be getting canceled quickly. I'm running v5.0.16
on Homebridge v1.4.0
on a RPi4.
[25/01/2022, 15:38:50] [CameraUI] VIDEOANALYSIS: New message: Data: [{"zone":"region0","percent":9.139323234558105,"sensitivity":92,"dwell":15,"forceClose":10}] - Motion: detected - Camera: Driveway
[25/01/2022, 15:38:50] [CameraUI] Driveway: Motion ON
[25/01/2022, 15:39:05] [CameraUI] Driveway: Motion OFF - Motion handler timeout.
I dropped dwell
down to 15 from default, but that made no difference. I bumped forceClose
up to 10, but that made no difference either. It's a consistent 15s from motion on to motion off.
Sorry for using this feature to ask help, but how do I add a Camera? The UI is fantastic but a "+ Add" is missing?
This is not a bug more of a question..
How can i get the camera id to use it in the system on windows
Describe the bug
Stream crashes while viewing live in Apple Home app
To Reproduce
When getting a notification that there is an activity noticed, the stream crashes after a couple of seconds
Expected behavior
The stream needs to keep going :)
Logs
I'm not sure if this is exactly what is causing the problem, but I'm seeing a lot of this logging:
birdy-two: FFmpeg prebuffer process exited with error! (SIGKILL) - [h264 @ 0x3a5f740] non-existing PPS 0 referenced - -
Last message repeated 1 times - [h264 @ 0x3a5f740] decode_slice_header error - [h264 @ 0x3a5f740] no frame! - -
[h264 @ 0x3a5f740] non-existing PPS 0 referenced - -
Last message repeated 1 times - [h264 @ 0x3a5f740] decode_slice_header error - [h264 @ 0x3a5f740] no frame! - -
[h264 @ 0x3a5f740] non-existing PPS 0 referenced - -
Last message repeated 1 times - [h264 @ 0x3a5f740] decode_slice_header error - [h264 @ 0x3a5f740] no frame! -
Screenshots
If applicable, add screenshots to help explain your problem.
Environment
I am running the Camera.ui on Homebridge on Mac mini and it is running at 80% load. I have 10 Amcrest cameras running and I got this error message when I tried to add another camera. This camera is same as rest and set up exactly the same. "2/8/2022, 9:49:45 PM] [CameraUI] Master Bedroom: FFmpeg videoanalysis process exited with error! (null) - [tcp @ 0x7f945a605d40] Connection to tcp://10.0.10.232:554?timeout=0 failed: Network is unreachable - rtsp://admin:[email protected]:554/cam/realmonitor?channel=1&subtype=0: Network is unreachable "
I have 4 more cameras I would like to add, should I just set up another server and create another Homebridge session to do it and split the cameras?
Any suggestions appreciated. New to this...
Hi,
dumb question, how do i install?
I cant seem to run this command on my ubuntu 22.04 machine.
Which OS is compatible with the program? is it IOS?
My original 3 cameras are working fine. I recently wanted to add a new rasp camera stream and I did it thru the home bridge plugin under CONFIG. the stream is showing well in the camera.ui interface but I cant add it to the home app. Its not getting discovered in the home app.
Hello @seydx,
We are a small Smart Home design house, creating Smart Home gateway.
Interested to work/collaborate with you.
Tried to contact you via email.
Just in case it was lost in spam, what is the best way to reach out to you?
Sorry for abusing the issues system on Github, I understand it's not intended like this.
Is your feature request related to a problem? Please describe.
Would love to run this off of my unRAID box like the rest of my home automation software.
Describe the solution you'd like
A Docker image provided.
When I visit the "start recording" endpoint, recording does not start.
Visiting http://192.168.1.4:7272/motion?Drivecam
in my browser results in:
{"error":false,"message":"Handling through extern controller.."}
And attempting to end the recording a while later http://192.168.1.4:7272/reset?Drivecam
gives the same result:
{"error":false,"message":"Handling through extern controller.."}
It's great that it reports no error, but it also doesn't record anything.
Is "Handing through extern controller" a clue?
Thanks
Environment
Describe the bug
When i try to add a camera I got 500 error from the console I get
[1/22/2022, 6:24:08 PM] [camera.ui] GET /api/config?target=config 200 1.759 ms - 192
Error: Can not save config, target cameras not found in config!
at Function.writeToConfig (file:///usr/lib/node_modules/camera.ui/src/services/config/config.service.js:201:15)
at Module.createCamera (file:///usr/lib/node_modules/camera.ui/src/api/components/cameras/cameras.model.js:29:19)
at insert (file:///usr/lib/node_modules/camera.ui/src/api/components/cameras/cameras.controller.js:22:39)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
To Reproduce
Add camera
Expected behavior
Camera to be added
Environment
Describe the bug
I had installed a new container in proxmox for install camera.ui
To Reproduce
run the command camera.ui
Expected behavior
A clear and concise description of what you expected to happen.
Logs
`/usr/local/lib/node_modules/camera.ui/bin/camera.ui.js:5
import fs from 'fs-extra';
^^
SyntaxError: Unexpected identifier
at Module._compile (internal/modules/cjs/loader.js:723:23)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
at Module.load (internal/modules/cjs/loader.js:653:32)
at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
at Function.Module._load (internal/modules/cjs/loader.js:585:3)
at Function.Module.runMain (internal/modules/cjs/loader.js:831:12)
at startup (internal/bootstrap/node.js:283:19)
at bootstrapNodeJSCore (internal/bootstrap/node.js:623:3)`
Screenshots
Environment
Describe the bug
When I create any new user, the user disappears after restarting the application
To Reproduce
Expected behavior
I would expect users to remain created.
Logs
If available, attach the log where the bug is vissible
Environment
Thank you a lot for this app!
Unable to configure as service mode, what should be the correct path for ExecStart
?
To Reproduce
Install and try to set as service mode
Expected behavior
Easy way to indentify which file place as ExecStart
, tested with:
// DOESNT WORK
ExecStart=/usr/lib/node_modules/camera.ui/bin/camera.ui.js $CAMERA_UI_OPTS
Logs
ene 28 17:41:31 homebridge systemd[1]: camera.ui.service: Failed to load environment files: No such file or directory
ene 28 17:41:31 homebridge systemd[1]: camera.ui.service: Failed to run 'start' task: No such file or directory
ene 28 17:41:31 homebridge systemd[1]: camera.ui.service: Failed with result 'resources'.
ene 28 17:41:31 homebridge systemd[1]: Failed to start camera.ui.
ene 28 17:41:36 homebridge systemd[1]: camera.ui.service: Scheduled restart job, restart counter is at 53.
ene 28 17:41:36 homebridge systemd[1]: Stopped camera.ui.
ene 28 17:41:36 homebridge systemd[1]: camera.ui.service: Failed to load environment files: No such file or directory
ene 28 17:41:36 homebridge systemd[1]: camera.ui.service: Failed to run 'start' task: No such file or directory
ene 28 17:41:36 homebridge systemd[1]: camera.ui.service: Failed with result 'resources'.
ene 28 17:41:36 homebridge systemd[1]: Failed to start camera.ui.
ene 28 17:41:41 homebridge systemd[1]: camera.ui.service: Scheduled restart job, restart counter is at 54.
ene 28 17:41:41 homebridge systemd[1]: Stopped camera.ui.
ene 28 17:41:41 homebridge systemd[1]: camera.ui.service: Failed to load environment files: No such file or directory
ene 28 17:41:41 homebridge systemd[1]: camera.ui.service: Failed to run 'start' task: No such file or directory
ene 28 17:41:41 homebridge systemd[1]: camera.ui.service: Failed with result 'resources'.
ene 28 17:41:41 homebridge systemd[1]: Failed to start camera.ui.
ene 28 17:41:46 homebridge systemd[1]: camera.ui.service: Scheduled restart job, restart counter is at 55.
ene 28 17:41:46 homebridge systemd[1]: Stopped camera.ui.
ene 28 17:41:46 homebridge systemd[1]: camera.ui.service: Failed to load environment files: No such file or directory
ene 28 17:41:46 homebridge systemd[1]: camera.ui.service: Failed to run 'start' task: No such file or directory
ene 28 17:41:46 homebridge systemd[1]: camera.ui.service: Failed with result 'resources'.
ene 28 17:41:46 homebridge systemd[1]: Failed to start camera.ui.
Environment
Thanks for the support!
Describe the bug
I add my camera with its rtsp stream and I get an error on the back-end informing me of a 500, unfortunately I don't know what it's due to as I don't even have the logs or the means to activate it in the configuration.
To Reproduce
Expected behavior
This bug occurs when you add your camera and access it from the camera table, impossible for me to view it live but strangely I've noticed that it's working in a certain way even though I don't have a view when you go to the settings and then to "Video analysis" you can still see a preview.
Logs
The 500 error does not appear in the logs to my great disappointment, impossible for me to know precisely what the problem is.
However, I'm sure it's not an error or a bad configuration, because I've got the overview working in spite of everything when you go to the camera's "Video analysis" settings:
Environment
Possibility of assigning camera views per user. have the possibility to create a user and assign which cameras can see, assign a group of cameras and permissions
I stopped getting notifications on my telegram, irrespective of the fact that i have correctly entered my chat ID as well as my bit access code.
If fact there is no error message in notification panel of the camera UI interface.
Security Reports summarizes everything that happened in a day.
A specially designed subpage is also planned. In addition, the reports will be saved locally at the end of the day.
Okay, i'm getting the feeling seyxd died by covid or vax since don't see activity/replies.. here is the deal
Most cameras if not all except some old i expecting to support ONVIF, onvif is really usefull because i didn't knew what the rtsp url is to put the cameras on the app, it toke me a while to figure out what is going on. with onvif we can detect all the cameras in the network and automatically grab A. a live url for snapshot, B. stream A and low B, and C. motion detect proccessed by camera.
To do this i used two packages.
import onvif from 'node-onvif'; <- for discovery of streaming urls, camera names, etc.
import onvifEvents from 'node-onvif-events'; <- for motion detection provided by the camera it self.
Note: node-onvif-events had to be manually installed as npm produced some errors when installing.
The following two functions return an array of objects, each object has these info. ob.snapshot is the url for a live fresh snapshot jpeg image, rtsp is an array of profiles, with urls for streaming note that to pass that info on ffmpeg you will need to replace :// with ://user:password@url
eg. rtsp://192.168.7.25:8554/profile0 needs to be http://user:[email protected]:8554/profile0
[ { snapshot: 'http://192.168.7.25:6688/snapshot/PROFILE_001', rtsp: [ 'rtsp://192.168.7.25:8554/profile0', 'rtsp://192.168.7.25:8554/profile1' ], urn: 'urn:uuid:2171bb3f-aa30-aa30-3030-e062905c7634', name: 'HD%20IPC', xaddr: 'http://192.168.7.25:6688/onvif/device_service' },
`async function testme(username, password) {
return new Promise(async (resolve, reject) => {
let camojb = {};
const cameras_info = [];
console.log('Start the discovery process.');
// Find the ONVIF network cameras.
// It will take about 3 seconds.
onvif.startProbe().then(async (device_info_list) => {
for (let i=0; i<device_info_list.length; i++) {
let info = device_info_list[i];
let device = new onvif.OnvifDevice({
xaddr: info.xaddrs[0],
user : username,
pass : password
});
camojb = await getURLs(device);
//set obj
camojb.urn = info.urn;
camojb.name = info.name;
camojb .xaddr = info.xaddrs[0];
// Initialize the OnvifDevice object
cameras_info.push(camojb);
}
resolve(cameras_info)
}).catch((error) => {
console.error(error);
})
})
}
async function getURLs(device) {
return new Promise(async function(resolve) {
let camojb = {};
camojb.snapshot = [];
camojb.rtsp = [];
device.init().then(() => {
let profile_list = device.getProfileList();
for(let i=0; i<profile_list.length; i++) {
camojb.snapshot = profile_list[i].snapshot;
camojb.rtsp[i] = profile_list[i].stream.rtsp;
}
}).then(() => {
resolve(camojb)
}).catch((error) => {
console.error(error);
});
});
}`
Now as for motion detection:
`const startMotion = async () => {
const detector = await onvifEvents.MotionDetector.create(options.id, options);
console.log(new Date(), '>> Motion Detection Listening!!');
detector.listen((motion) => {
if (motion) {
console.log(new Date(), '>> Motion Detected');
} else {
console.log(new Date(), '>> Motion Stopped');
}
});
}
startMotion();`
tested both packages inside camera.ui as console.prints and works wonders.. now we need to impelement those into the app.
a second feature that i find very important is to use .mkv for filenames and -copy for codecs, as almost all cameras provide already codec video and ffmpeg by default decodes video with mp4 or other extions in filename despite if you are u trying to use -codec copy, codec copy is only accepted on mkv.
How to reset a forgotten password.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.