Git Product home page Git Product logo

ispyagentdvr-docker's Introduction

iSpy Agent DVR

This is a docker image for Agent DVR from iSpy created for convenience. Please consider donating/sponsoring. While still in direct contact with iSpy, we still maintain this at our own time. The software creates a local server for IP cameras to be managed. For more information visit: https://www.ispyconnect.com/userguide-agent-dvr.aspx

Sponsorship/Donations:

Ways to support us
Github Paypal
💗 Sponsor Paypal

Recommended settings:

Ports:

8090:

By default the container will use port 8090 for Web UI. To access the panel go to http://localhost:8090 or replace localhost with your local IP.

3478

Main port used for TURN server communication.

50000-50010

Ports used to create connections or WebRTC. These will be used as needed.

Volumes:

Config:

/agent/Media/XML/

Media:

/agent/Media/WebServerRoot/Media/

Commands:

/agent/Commands

Migration Notes: If you had the old format of audio and video volumes please move them within the new media folder before starting the container again.

It would look something like this: mkdir /appdata/ispyagentdvr/media mv /apdata/ispyagentdvr/audio /appdata/ispyagentdvr/media mv /appdata/ispyagentdvr/video /appdata/ispyagentdvr/media

Running Image :

docker run -it -p 8090:8090 -p 3478:3478/udp -p 50000-50010:50000-50010/udp \
-v /appdata/ispyagentdvr/config/:/agent/Media/XML/ \
-v /appdata/ispyagentdvr/media/:/agent/Media/WebServerRoot/Media/ \
-v /appdata/ispyagentdvr/commands:/agent/Commands/ \
-e TZ=America/Los_Angeles \
--name ispyagentdvr doitandbedone/ispyagentdvr

This will default to the latest. See Tags section for other versions. Make sure to change TZ value to your own timezone, here's a table with all values: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones

Tags:

latest:

This tag will give you the latest version of the build.

docker run -it -p 8090:8090 -p 3478:3478/udp -p 50000-50010:50000-50010/udp \
-v /appdata/ispyagentdvr/config/:/agent/Media/XML/ \
-v /appdata/ispyagentdvr/media/:/agent/Media/WebServerRoot/Media/ \
-v /appdata/ispyagentdvr/commands:/agent/Commands/ \
-e TZ=America/Los_Angeles \
--name ispyagentdvr doitandbedone/ispyagentdvr:latest

Other versions:

Tags will also be created for older releases. For example, for version 2.7.6.0:

docker run -it -p 8090:8090 -p 3478:3478/udp 50000-50010:50000-50010/udp \
-v /appdata/ispyagentdvr/config/:/agent/Media/XML/ \
-v /appdata/ispyagentdvr/media/:/agent/Media/WebServerRoot/Media/ \
-v /appdata/ispyagentdvr/commands:/agent/Commands/ \
-e TZ=America/Los_Angeles \
--name ispyagentdvr doitandbedone/ispyagentdvr:2.7.6.0

Non host network use:

As of version 2.8.4.0 non host network is supported, for this to work, a turn server was included with the software. You will need to open up ports for this to porperly work, thus the UDP ports listed in the sample runs.

To access UI panel go to the container's http://<container's ip>: such as http://192.168.1.42:8090.

VLC Support:

Please use tag vlc:

docker run -it -p 8090:8090 -p 3478:3478/udp -p 50000-50010:50000-50010/udp \
-v /appdata/ispyagentdvr/config/:/agent/Media/XML/ \
-v /appdata/ispyagentdvr/media/:/agent/Media/WebServerRoot/Media/ \
-v /appdata/ispyagentdvr/commands:/agent/Commands/ \
 -e TZ=America/Los_Angeles \
--name ispyagentdvr doitandbedone/ispyagentdvr:vlc

Upgrade existing setup:

Open up a terminal, and let's call bash in your existing image:

docker exec -it ispyagentdvr /bin/bash

Once in, run the following command:

apt-get update && apt-get install -y libvlc-dev vlc libx11-dev

Once the installation is done, exit out of bash:

exit

Now, let's restart the container:

docker restart ispyagentdvr

That should be it!

Please note that if you named your container differently you must use either the container id or name you assigned instead of "ispyagentdvr". You can get a list of containers by running the follwoing command:

docker ps -a

Also note if you remove the container you will have to do this again. Reason why we recommend using vlc tag instead.

Feedback:

ispyagentdvr-docker's People

Contributors

actions-user avatar alexbn71 avatar codebullfrog avatar deadended avatar doitandbedone avatar ispysoftware avatar rxm307 avatar scyto avatar titiviking avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

ispyagentdvr-docker's Issues

ram consumption is increasing every day

i only have two camera connect

i have two camere to which also record raw data i am using a cpu for the web page

every day that it is on longer, it uses more RAM, it is already 41 percent
when I just turned it on it was 15 percent

I think there is a memory leak somewhere
I am using version 3.0.6.0 as you can see

you can try to fix it
image

mic permission

Opening URL for local version Firefox is asking for mic permission, while docker version does not. Why not?

error on rasp pi 2b

Hi,
i've installed on rpi2b the multi-arch docker but i receive this error: standard_init_linux.go:219: exec user process caused: exec format error.
Linux/arm/v7 isn't for rpi2?
Could you help me?
Thanks

Random crash (May be related to cameras with less reliable connection; Wifi)

Affected version:
2.8.6.0

Expected behavior:
Server should run without any issues, if cameras cannot be contacted, it should handle the error gracefully.

Actual Result:
Server crashes after a few minutes, 10+ in my experience. Lots of logs about some cameras not being able to connect/be found are printed.

Additional info:
@ispysoftware This crash has been bothering me for a while but it's hard to get it from the server as I set it to restart if anything happens and logs aren't as easy to get. Anyhow, this happens randomly and usually takes 10+ mins to happen. I was able to get a clean set of logs from my mac.
I've noticed that some of the wifi cameras aren't as reliable and well... they do disconnect. Seems there's constant timeouts and seems to be the last logs in the container before it stops, not too sure if it has anything to do with it however.
agentRandomCrash.txt

Steps to reproduce:
Boot the server
Have one or more wifi cameras added in the network
Check logs for camera connectivity issues.
Using Amcrest IP3M-HX2W
Eventually it will timeout with this message:

The HTTP request to 'http://<redacted-ip>/onvif/device_service' has exceeded the allotted timeout of 00:00:15. The time allotted to this operation may have been a portion of a longer timeout.
�[39;49m�[33m�[40mError: SourceError: Deck: CoreLogic.Sources.Combined.MediaStream:Invalid Source ()

Allow export of core server settings

Describe the solution you'd like
Would like the ability to backup/export the base server settings in additional to the camera settings. Currently the settings export is only the cameras. Would be useful if migrating to new hardware, re-creating the Docker image, etc. Maybe a tickbox to choose if it's just device settings or all settings? Thanks!

Ability to set a default view

Is your feature request related to a problem? Please describe.
Every time I load in the 0 view is default. I want to keep all cameras in this view but have another view that's default.

Describe the solution you'd like
I would like to have a specific view set as the default when the interface is loaded up. Maybe I set the view then there is a "default" button? Not sure the proper way to implement to be honest.

Additional context
Keep up the great work - loving this software! Still wrapping my brain around it and trying to get remote access working.

Random Crashes

Hi,

This has been working fine for some time but suddenly it's been crashing a lot for no reason. This seems to be related to motion detection.
image

What can be done to diagnose this?

Thanks

[Feature Request] VLC support

Hello

I have some cameras who doesn't want to work with FFMPEG but are working with VLC. But the docker image doesn"t seems to include VLC. I have tried to install it manually with docker exec agentdvr apt-get install -yy libvlc-dev but it does not work.

Timezone selection not working

Usually, when selecting a timezone for a docker container, it is enough to set the TZ environment variable. This does not work for this docker image. To be able to do this, the tzdata package should be added to the image as described here:

phusion/baseimage-docker#513 (comment)

RUN apt-get update && apt-get install -y tzdata
ENV TZ "America/New_York"

Live URL and Record URL issue

Hello,

I try to setup my camera feed
I got a sub 640 x 480 and a main 2560 x 1440 feed and i would like to make a record from the main stream but all I got is the sub live and record.

Screenshot 2020-12-26 at 20 21 00
My setup shoul be okay, but something wrong.

Maximum size of folder (MB) settings does not work

Agent v3.1.3.0 (DOCKER)

Maximum size of folder (MB) settings does not work.
I set Max Size to 100 in Main storage settings and in Camera storage settings but media folder grows to 500+ MB and nothing happens.
I expected the old files to be deleted.

Feature: make the default turn server port configurable

Is your feature request related to a problem? Please describe.
Is it possible to change the port for the turn server? Port 3478 is also in use by the UniFi controller software for communication between controller and UniFi devices. Making this port configurable for iSpy through an enviroment variable would be great.

Trouble rtsp

Affected Version
v3.1.3.0

Describe the bug
Rstp stream playback does not work.

Steps To Reproduce
I connect dvr as ip cams because it is not in the list of devices. Live URL
rtsp: //10.99.20.47:554/user =admin& password=&channel=1&stream=0?.sdp

In the same version of the server, it works fine for Windows.

In VLC
image

Timelapses cause crash

@ispysoftware Seems there is an issue with timelapses, docker for mac seems to spit out things a bit better, here's an excerpt:

Writer: Mazda Parking: WriteHeader:Invalid argument <-- This is marked as the error , the rest is a warning, but all cameras with timelapses have the same logs.
Error:    at CoreLogic.RealTime.FFmpegBase.Throw(String method, Int32 code)
   at CoreLogic.RealTime.MediaWriter.Open(String filename, Int32 width, Int32 height, AVCodecID videoCodec, Int32 framerate, AVCodecID audioCodec, DateTime firstFrame, Int32 crf)
   at CoreLogic.Objects.Helpers.TimelapseController.OpenTimelapseWriter()
Error:    at CoreLogic.RealTime.FFmpegBase.Throw(String method, Int32 code)
   at CoreLogic.RealTime.MediaWriter.Open(String filename, Int32 width, Int32 height, AVCodecID videoCodec, Int32 framerate, AVCodecID audioCodec, DateTime firstFrame, Int32 crf)
   at CoreLogic.Objects.Helpers.TimelapseController.OpenTimelapseWriter()

I've attached more logs for you to see. Once I disabled timelapses on all cameras the crashes stopped.
Let me know if you need anything else.
logsCrashAgent.txt

Thanks!

try another browser

rtc:set flag
rtc:onsuccessanswer
Starting...
Creating temp path for opencv in /tmp/
Get com port list
Discover Onvif
Start network scan
IP addresses:
10.0.3.3
found 10.0.3.1
found 10.0.3.2
found 10.0.3.3
Agent (v3.0.0.0)
Log start
Process is 64 bit
Init FFmpeg
ffmpeg path: /usr/lib/x86_64-linux-gnu
Initializing devices
Hardware Acceleration:
Hardware Support:
vdpau
vaapi
drm
call ffplay -nodisp -f v4l2 -list_formats all /dev/video0
[video4linux2,v4l2 @ 0x7fa434000b80] cannot open video device /dev/video0: no such file or directory
call arecord -l
Error: No audio devices found
Init Webrtc
Preloading Images
Turn Server accepting connections at 10.0.3.3:3478 using range 50000-50010)
MQTT not configured or enabled
Loaded 0 cameras and 0 mics from /agent/Media/XML/objects.xml
Using default port (8090)
Local Server running on port 8090
ZeroConf: ZeroConf Service Started
Running at http://localhost:8090
rtc:added servers
rtc:inited peer connection (True)
rtc:set flag
rtc:onsuccessanswer
ICE state: Checking
ICE state: Failed

image

I don't know what is happening but I can't get the program running in front of me camera can someone tell me what I'm doing wrong I don't understand much about it but i nee to run this programma cam

More flexible encoding options for recordings

Is your feature request related to a problem? Please describe.
I'm trying to combine all timelapses into on, save events still as separate clips and upload them to the cloud as backup. The problem are webm files. They are proving to be rather time consuming and are not compatible/eligible for online playback. mkv files on the other hand are working as expected.

Describe the solution you'd like
Is there a way to change the file formats (extensions)? Seems webm is not widely compatible, specially among cloud backups with players. I noticed timelapses are recorded as webm, some regular videos too (seems non raw option in encoder forces it) and finally mkv, which seems the most compatible and easy to manipulate (seems raw encoder outputs mkv).  I'm hoping to force mkv's for all outputs.

Describe alternatives you've considered
N/A

Additional context
I'm using ffmpeg to stitch together the different files. The webm files seem to be encoded with the old VP8 and is being forced into VP9 and takes way too long to do so, yet still not compatible. The following formats are compatible:
.mpg, .mod, .mmv, .tod, .wmv, .asf, .avi, .divx, .mov, .m4v, .3gp, .3g2, .mp4, .m2t, .m2ts, .mts, and .mkv
Would it be possible? Also, which one would you recommend in terms of ease, higher compression, lower encoding times and least quality loss?

Thank you!

Does this support hardware acceleration (Intel QuickSync)?

I've been looking for surveillance software that I can run from within Docker on my Synology 918+ for months.

So far nothing satisfies this requirement.

I see this uses FFmpeg for encoding, there are some posts where people have been able to get this to work, such as this one on the Synology forums, but I don't think it's just an out-of-the-box solution.

Does this or can this utilise hardware acceleration?

Enabling GPU crashes ffmpeg on AMD Ryzen machine

Affected Version
v3.0.0.0

Describe the bug
I am trying to run the agent via docker.I forwarded /dev/dri so I can use vaapi for hardware en/decoding

When enabling GPU decoding I get this:

Frontdoor: Using hardware decoder: AV_HWDEVICE_TYPE_VAAPI
Enable: Camera 1 mic: Start audio
[swscaler @ 0x7f166c356280] vaapi_vld is not supported as input pixel format

Manually, I can open a shell inside the docker container and encode things fine using:

ffmpeg -i input.mp4 -vaapi_device /dev/dri/renderD128 -vcodec h264_vaapi -vf format='nv12|vaapi,hwupload' output.mp4

I can also seem to successfully just decode via hardware by using:

ffmpeg -hwaccel vaapi -hwaccel_device /dev/dri/renderD128 -i rtsp://192.168.30.176/live0 derp.mp4

In the debug logs, I see:

[AVHWDeviceContext @ 0x55887dc23180] Opened VA display via DRM device /dev/dri/renderD128.
[AVHWDeviceContext @ 0x55887dc23180] libva: VA-API version 1.4.0
[AVHWDeviceContext @ 0x55887dc23180] libva: va_getDriverName() returns 0
[AVHWDeviceContext @ 0x55887dc23180] libva: Trying to open /usr/lib/x86_64-linux-gnu/dri/radeonsi_drv_video.so
[AVHWDeviceContext @ 0x55887dc23180] libva: Found init function __vaDriverInit_1_4
[AVHWDeviceContext @ 0x55887dc23180] libva: va_openDriver() returns 0
[AVHWDeviceContext @ 0x55887dc23180] Initialised VAAPI connection: version 1.4
[AVHWDeviceContext @ 0x55887dc23180] Format 0x3231564e -> nv12.
[AVHWDeviceContext @ 0x55887dc23180] Format 0x30313050 -> p010le.
[AVHWDeviceContext @ 0x55887dc23180] Format 0x36313050 -> unknown.
[AVHWDeviceContext @ 0x55887dc23180] Format 0x32315659 -> yuv420p.
[AVHWDeviceContext @ 0x55887dc23180] Format 0x56595559 -> unknown.
[AVHWDeviceContext @ 0x55887dc23180] Format 0x59565955 -> uyvy422.
[AVHWDeviceContext @ 0x55887dc23180] Format 0x41524742 -> bgra.
[AVHWDeviceContext @ 0x55887dc23180] Format 0x41424752 -> rgba.
[AVHWDeviceContext @ 0x55887dc23180] Format 0x58524742 -> bgr0.
[AVHWDeviceContext @ 0x55887dc23180] Format 0x58424752 -> rgb0.
[AVHWDeviceContext @ 0x55887dc23180] VAAPI driver: Mesa Gallium driver 18.3.6 for AMD RAVEN (DRM 3.39.0, 5.9.8-2-default, LLVM 7.0.1).
[AVHWDeviceContext @ 0x55887dc23180] Driver not found in known nonstandard list, using standard behaviour.

I saw that there's ffmpeg options in the web interface, but I haven't been able to figure out how to set things correctly so they take effect.

Anyone using the integrated ryzen GPU to accelerate things and reduce CPU usage?

Steps To Reproduce
Enable GPU decoding on a machine with a AMD Ryzen APU

Expected behavior
Don't crash

Reproduction rate
100%

Screenshots

Host System Information (where ispy agent is running/hosted):

  • CPU: AMD Ryzen 3400G
  • OS: OpenSuse + docker with /dev/dri forwarded to the container

Network Storage is not working

No matter what and how I tried I couldn't get the storage to work on my samba share. Motion eye already works but ISPY is not,

What should I do? :(

This is a very important factor

Turn Server Port Conflict

UDP 3478 is used by other containers and causes a conflict, thus the container does not work properly. The conflict I'm having is with the Unifi Controller. Not sure if this is specific to this image or a bigger docker issue?

Agent DVR Fails to Connect to Agent

Affected Version
Found at top left "Server Menu" with a server/stack icon. A pop up will be opened, should be in bold letters to the right of your server name. [e.g. v3.0.0.0]

I'm unable to login. I'm using docker image doitandbedone/ispyagentdvr:latest within Docker Swarm.

Describe the bug
A clear and concise description of what the bug is.

When accessing http://localhost:8090 I see the spinning wheel and then a failure connecting to agent and am presented with the option to retry.

Steps To Reproduce
Steps to reproduce the behavior:

  1. Go to '...'
  2. Click on '....'
  3. Scroll down to '....'
  4. See error

Expected behavior
A clear and concise description of what you expected to happen.

Reproduction rate
How often does this happen in % [e.g. 100% or 50%]

100%

Screenshots
If applicable, add screenshots to help explain your problem.

image

Host System Information (where ispy agent is running/hosted):

  • OS: [e.g. macOS Catalina 10.15.7, Windows 10, Ubuntu 20.04.1 LTS]

Docker Swarm

Client System Information (device accessing the web portal, if applicable):

  • OS: [e.g. macOS Catalina 10.15.7, iOS 8.1, Windows 10, Android 10, Ubuntu 20.04.1 LTS]
  • Browser [e.g. stock browser, safari, chrome]
  • Browser Version [e.g. 86.0.4240.111 (Official Build) (x86_64)]

Additional Information
Add any other information about the problem here. This could include configuration files, video/images that may be causing the issue.

version: '3.3'
services:
app:
hostname: ispy-local
environment:
- NVIDIA_DRIVER_CAPABILITIES=compute,video
- NVIDIA_VISIBLE_DEVICES=all
ports:
- target: 8090
published: 8090
mode: host
- target: 3478
published: 3478
protocol: udp
mode: host
- target: 50000
published: 50000
protocol: udp
mode: host
- target: 50001
published: 50001
protocol: udp
mode: host
- target: 50002
published: 50002
protocol: udp
mode: host
- target: 50003
published: 50003
protocol: udp
mode: host
- target: 50004
published: 50004
protocol: udp
mode: host
- target: 50005
published: 50005
protocol: udp
mode: host
- target: 50006
published: 50006
protocol: udp
mode: host
- target: 50007
published: 50007
protocol: udp
mode: host
- target: 50008
published: 50008
protocol: udp
mode: host
- target: 50009
published: 50009
protocol: udp
mode: host
- target: 50010
published: 50010
protocol: udp
mode: host
volumes:
- '/volumes/ispy/config/:/agent/Media/XML/'
- '/ispy/:/agent/Media/WebServerRoot/Media/'
- '/volumes/ispy/commands/:/agent/Commands/'
image: 'doitandbedone/ispyagentdvr:latest'
deploy:
mode: replicated
replicas: 1
placement:
constraints: [node.hostname == xxxxx]
restart_policy:
condition: any

Cannot connect on non host network types

Decription:
When using non host network types, web UI gets stuck on loading and eventually fails to connect prompting to retry.

Logs:

Running at http://localhost:8090
rtc:added servers
rtc:inited peer connection (True)
rtc:set flag
rtc:onsuccessanswer
ICE state: Checking
ICE state: Failed

Been in contact with the Agent's main developer and seems this is related to: bbc/brave#43

There's also a side discussion here:
https://github.com/anthonyangel/agentdvr-docker/issues/2

Workaround:
Run the container in host network type.

[Workaround available] Caching causes old versions of agent to be downloaded/installed

In some cases when the image gets updated the download file obtained is not the latest, seems to be caching an older version somehow.

How to verify agent version:
Check your version number by going into Server Menu (top left).

Workaround:
Use --no-cache parameter during build/update.

Update:
Caching has been temporarily disabled on Dockerhub, --no-cache still applies if you are not using Dockerhub.

Run as user other than root

Is your feature request related to a problem? Please describe.
I would rather not run the container processes as root if not required.

Describe the solution you'd like
I would like options on the container to set UID and GUID.

Describe alternatives you've considered
Other containers have this option.

Additional context
Thanks in advance for considering this feature.

Panning and zooming are a bit unresponsive

@ispysoftware
I've noticed that panning and zooming are rather unresponsive/slow, specially if opening from a phone/tablet. I was wondering if this could be improved by perhaps making it more real time, seems it has some sort of delay after you scroll, swipe or pinch. Would be greatly appreciated!

On a side note: Not sure what's the best way to actually open issues/feature requests for the actual software, I don't mind if we continue to use this platform or if you'd like some help to setup something for it. I would recommend Gitlab or similar. Let me know, I'd be happy to help in any way!

RAM Usage

Affected Version
v3.0.5.0

Describe the bug
Ram usage increase over time by 3/4x

Steps To Reproduce
I've a 12 cameras setup (only view, neither recording nor detector) and the RAM usage increase over time by 3/4x (after 3x I restart the container).
The container start using 1.5GB but in about 12 hours it is increased by 3/4x above 5GB sometimes.

Expected behavior
Consistent RAM usage

Reproduction rate
How often does this happen in %: 100%

Screenshots
If applicable, add screenshots to help explain your problem.

Host System Information (where ispy agent is running/hosted):

  • OS: Unraid

Client System Information (device accessing the web portal, if applicable):

  • OS: Windows 10, Android 10, Ubuntu 20.04 LTS
  • Browser Chrome, Edge, Firefox, Chrome for Android

Additional Information
Docker run command docker run -d --name='ispyagentdvr' --net='proxy-net' -e TZ="Europe/Berlin" -e HOST_OS="Unraid" -p '3478:3478/udp' -p '8096:8090/tcp' -v '/mnt/user/appdata/ispyagentdvr/config':'/agent/Media/XML/':'rw' -v '/mnt/user/backup/video/':'/agent/Media/WebServerRoot/Media/':'rw' 'doitandbedone/ispyagentdvr'

SMTP send throw exceptions

Affected Version
Agent v3.0.9.0 (running in Docker using doitandbedone/ispyagentdvr:latest)

Describe the bug
SMTP send throw exceptions

Steps To Reproduce
Steps to reproduce the behavior:

Setup smpt in ispy server settings. Settings is correct. But when message sending (for example alert trigger) i recieve exceptions in log.

Expected behavior
Send email message by SMTP correct.

Reproduction rate
How often does this happen in 100%

Exceptions in log:

{"Created":"2021-01-28T13:24:02.3236542+00:00","Entry":"Error: Mailer: Mailer: The operation has timed out.","Type":"Message"}
,{"Created":"2021-01-28T13:24:02.3252639+00:00","Entry":"Mailer: at System.Net.Mail.SmtpClient.Send(MailMessage message)\n at CoreLogic.Mailer.Send(String to, String subject, String body, List1 attach)","Type":"Error"},{"Created":"2021-01-28T13:24:02.3252704+00:00","Entry":"Error: Mailer: at System.Net.Mail.SmtpClient.Send(MailMessage message)\n at CoreLogic.Mailer.Send(String to, String subject, String body, List1 attach)","Type":"Message"}

Can you help me? :)

Best regards.

Check DeepStack mode/ improve feedback from processing

Affected Version
v3.0.3.0

Describe the bug
Using AI for alerting doesn't block the alert/recording based on filter.

Steps To Reproduce
Steps to reproduce the behavior:

  1. Install Deepstack and configure Agent to use it
  2. Set up alerts to use "Intelligent Filter"
  3. Specify only "people" in the filter
  4. Wait for motion - it will alert/record regardless of what it detected in the frame

Expected behavior
Recording/Alerting should only happen if the given object is detected in-frame. In this case a person.

Reproduction rate
100%

Screenshots
image
image
image
image

Host System Information (where ispy agent is running/hosted):
Ubuntu 20.04 LTS x64

Client System Information (device accessing the web portal, if applicable):
N/A

Additional Information
It's possible something isn't configured right, the documentation I found says it's right but I don't know.

Crash when trying to play a timelapse recording

Affected version:
2.8.7.0

Expected behavior:
Should be able to play timelapse recordings, if a problem occurs a message should be displayed but should not crash the server.

Actual Result:
Server crashes after trying play a timelapse recording.

Steps to reproduce:

  1. Have at least one timelapse recording in the system.
  2. Navigate to Recordings.
  3. Select a timelapse recording by clicking/tapping on it.
  4. Observe server crashes.

Reproduction rate:
100%

Additional info:
Here's system and Docker logs:
CrashLogs.zip
Video causing crash:
https://www.dropbox.com/s/rn7nrd3393c1k1s/2_TimeLapse_2020-08-04_10-38-43.webm?dl=0
@ispysoftware

Support Arm/ Arm64

Is there a way to detect and install the Arm/ Arm64 binaries and dependencies in Docker if it's Arm hardware?

Dual stream from camera

Quick question:

Is it possible to set the viewing stream in Agent to use a low def secondary stream from a camera, while having the recordings use the high def primary stream?

Thanks,
DeadEnd

Webhook /agent/commands

Hello,

I am try to make a webhook automation when I have a alert.
I managed to create a bat file into: /agent/commands (in this case talan.bat)
There is my setup for a alert:
Screenshot 2020-12-29 at 18 47 45
When I run a trigger, in this case start recording nothing happen. not sure why?

My log:"Entry":"recordingstarted: Bejarat","Type":"Message"},{"Created":"2020-12-29T18:43:07.5485213+01:00","Entry":"Processing EXE (talan.bat)","Type":"Message"},{"Created":"2020-12-29T18:43:07.548913+01:00","Entry":"**No such file or directory**","Type":"Error"},{"Created":"2020-12-29T18:43:07.5489163+01:00","Entry":"Error: No such file or directory","Type":"Message"},{"Created":"2020-12-29T18:43:07.5491756+01:00","Entry":" at System.Diagnostics.Process.ForkAndExecProcess(String filename, String[] argv, String[] envp, String cwd, Boolean redirectStdin, Boolean redirectStdout, Boolean redirectStderr, Boolean setCredentials, UInt32 userId, UInt32 groupId, UInt32[] groups, Int32& stdinFd, Int32& stdoutFd, Int32& stderrFd, Boolean usesTerminal, Boolean throwOnNoExec)\n at System.Diagnostics.Process.StartCore(ProcessStartInfo startInfo)\n at System.Diagnostics.Process.Start()\n at System.Diagnostics.Process.Start(ProcessStartInfo startInfo)\n at CoreLogic.Objects.Helpers.AlertProcessor.ProcessAlertEvent(IAgentControl obj, IAgentControl source, String mode, String message, String type, String param1, String param2, String param3, String param4)","Type":"Error"},{"Created":"2020-12-29T18:43:07.5491779+01:00","Entry":"Error: at System.Diagnostics.Process.ForkAndExecProcess(String filename, String[] argv, String[] envp, String cwd, Boolean redirectStdin, Boolean redirectStdout, Boolean redirectStderr, Boolean setCredentials, UInt32 userId, UInt32 groupId, UInt32[] groups, Int32& stdinFd, Int32& stdoutFd, Int32& stderrFd, Boolean usesTerminal, Boolean throwOnNoExec)\n at System.Diagnostics.Process.StartCore(ProcessStartInfo startInfo)\n at System.Diagnostics.Process.Start()\n at System.Diagnostics.Process.Start(ProcessStartInfo startInfo)\n at CoreLogic.Objects.Helpers.AlertProcessor.ProcessAlertEvent(IAgentControl obj, IAgentControl source, String mode, String message, String type, String param1, String param2, String param3, String param4)","Type":"Message"},{"Created":"2020-12-29T18:43:07.549182+01:00","Entry":"No such file or directory","Type":"Message"},{"Created":"2020-12-29T18:43:09.6669807+01:00","Entry":"Bejarat: Recording Closed","Type":"Message"},{"Created":"2020-12-29T18:43:15.6808059+01:00","Entry":"rtc:ondatachannelstatechange (download_1609263794747: Open)","Type":"Message"},{"Created":"2020-12-29T18:43:15.680813+01:00","Entry":"rtc: opened download_1609263794747","Type":"Message"}]

talan.bat file:

curl -d "" https://mywebhook
If I run a curl -d "" https://mywebhook in Agent DVR docker the webhook works

Error changing storage location (current folder did not exist)

Affected Version
3.0.3.0

Describe the bug
Changing the storage location drive AND folder at the same time for a camera causes an error.

Steps To Reproduce
Steps to reproduce the behavior:

  1. Go to the storage tab of the setup for a camera
  2. Change the drive path to a different drive
  3. change the folder name

Expected behavior
Storage path changes to new location

Reproduction rate
How often does this happen in %100

Screenshots
As you can see in the screenshot the error shows the old drive path.
image

Host System Information (where ispy agent is running/hosted):

  • Host OS Ubuntu 20.04.1 LTS
  • running Docker 19.03.12

Client System Information (device accessing the web portal, if applicable):

  • OS: Windows 10
  • Browser Chrome
  • Browser Version 87.0.4280.88 (Official Build) (64-bit)

Additional Information
To get the issue to resolve, I first change the folder and save. Then I go back and change the drive. This is a work around, so I expect it has to do with how the system handles changing both fields... After more testing it seems it may be a problem that the original folder wasn't created, and it won't let me change it until it is. I generated a short recording to cause Agent DVR to create the folder, and then I could change it.

Apologies my testing isn't thorough enough to get all the variables... just playing around with changing the drive and folder to see when I get the error and not I ended up not being able to change the folder at all because the current folder didn't exist. After saving a recording I could change it.

Cheers!
DeadEnd

do you want a smaller image?

I was playing with the breadcrumb trail you left, nice work.

I am not sure ispy is for me - it has lower quality playback in the browser than my current solution (synology surveillance station). The free unlimited cameras is cool.

II got my image down to about half your size, if you want me to create a pull for edits let me know.
Otherwise i will slink away into the night :-)

image

ONVIF setup fails when using h.265

Affected Version
Agent v3.0.2.0 (running in Docker using doitandbedone/ispyagentdvr:latest)

Describe the bug
Trying to add an ONVIF camera generates error.

Steps To Reproduce
Steps to reproduce the behavior:

  1. Add Device - ONVIF - click okay to get to general settings
  2. Click on three dots beside source type (ONVIF) to get to ONVIF setup
  3. Populate username, password, and service URL (http:///onvif/device)
  4. Click Get Video URLs and error appears at the top of screen.

Expected behavior
System generates a list of selectable URLs for ONVIF.

Reproduction rate
How often does this happen in 100%

Screenshots
When attached to the container using http://<IP>/onvif/device, the following error appears:

Error: ONVIF Device: ONVIF Device: Object reference not set to an instance of an object.
Error: ONVIF Device:    at CoreLogic.Onvif.ONVIFDevice.MediaEndpoint..ctor(MediaUri uri, VideoEncoderConfiguration config)
   at CoreLogic.Onvif.ONVIFDevice.Connect()
Object reference not set to an instance of an object.
Error: Failed to connect
Error:    at CoreLogic.Server.JsonProcessor.LoadJson(Int32 oid, Int32 ot, String lc, String cmd, String data, RTCSession session)
Failed to connect

Host System Information (where ispy agent is running/hosted):

  • Host OS Ubuntu 20.04.1 LTS
  • running Docker 19.03.12
  • container image with digest # 2ab2b6e16bf0

Client System Information (device accessing the web portal, if applicable):

  • OS: Windows 10
  • Browser Chrome
  • Browser Version 87.0.4280.88 (Official Build) (64-bit)

Additional Information
Camera supports ONVIF version 19.12(V2.7.0.907196).
Using ONVIF manager, I can connect to the camera using http://<IP>/onvif/device so the ONVIF connection does work.
I have successfully setup the camera using the IP camera setup - it is just ONVIF that is not working.

I would like to use ONVIF with the potential to use the camera's detector (this is what I am trying to test).
Please let me know any other information I can gather to help diagnose the issue.

Thank you!
DeadEnd

Nvidia GPU features not working

Hello
Seem that all GPU related features are not working:
GPU decoding
GPU encoding
Object detection

There is any extra step needed to enable it ?

Create a build for ARM64

Is your feature request related to a problem? Please describe.
Doesn't seem to work on AArch64/ARM64?
I'm trying to run this in docker on my NAS. Its an Asustor 4002t with an Marvell ARMADA-7020 ARM64 CPU.

Describe the solution you'd like
Create a build for arm64

Describe alternatives you've considered

Additional context

LAN only with yolo?

Hi,
Can I use this agent dvr with lan only? I dont want to access remotely and I don't want to be accessed.. But also I would like to use yolo. There is a way to do that?

"bad cseq xxxx expected=xxxx" in logs after agent docker container restart

Agent v3.1.3.0 (DOCKER)

These errors goes without stopping after agent container restart and stops only if camera disabled:
9:49:17 AM [rtsp @ 0x7f0c6015bd00] RTP: PT=61: bad cseq 4ad7 expected=8733
9:49:17 AM [rtsp @ 0x7f0c6015bd00] RTP: PT=61: bad cseq 8733 expected=4ad9
....

If I enable camera, errors starts again.

If I disable camera before container restart - all goes well after starting. Then I can enable the camera without errors.

How to reproduce:
Restart docker container when ONVIF camera enabled and in use (showing image).
docker restart _agent_container_id_

Log attached:
log2.txt

iSpy and DeepStack example

I've been working on getting iStack in Docker working with DeepStack and didn't realize it would be quite a headache. Eventually, I managed to get the two talking using docker-compose and thought I'd share my setup here:

version: '3.3'
services:
    ispyagentdvr:
        container_name: agentdvr
        restart: always
        volumes:
            - '/appdata/ispyagentdvr/config/:/agent/Media/XML/'
            - '/appdata/ispyagentdvr/media/:/agent/Media/WebServerRoot/Media/'
            - '/appdata/ispyagentdvr/commands:/agent/Commands/'
        ports:
            - '8090:8090'
            - '3478:3478/udp'
            - '50000-50010:50000-50010/udp'
        image: 'doitandbedone/ispyagentdvr:latest'
    deepstack:
        container_name: deepstack
        restart: always
        environment:
            - VISION-SCENE=True
            - VISION-DETECTION=True
        volumes:
            - 'localstorage:/datastore'
        ports:
            - '5000:5000'
        image: deepquestai/deepstack:gpu
        deploy:
           resources:
             reservations:
               devices:
                 - capabilities:
                   - gpu
  
volumes:
  localstorage:

This starts up both and then in iSpy you can set the intelligence URL to http://deepstack:5000/. Let me know if this is useful!

SQLite.SQLiteException: database is locked on startup

Affected Version
Latest. repo digest:
doitandbedone/ispyagentdvr@sha256:c3902be7ad569a3fdb37b1d090351d2266525575190933807553a4939c2e42a5

Describe the bug
When I start the container, I get an error about the SQLite database being locked

Steps To Reproduce
Note: port changed to 34789. Also changed in config XML file.
sudo docker run -it --net=host -p 8090:8090 -p 34789:3478/udp -p 50000-50010:50000-50010/udp
-v /mnt/cams/ispyagentdvr/config/:/agent/Media/XML/
-v /mnt/cams/ispyagentdvr/media/:/agent/Media/WebServerRoot/Media/
-v /mnt/cams/ispyagentdvr/commands:/agent/Commands/
--name ispyagentdvr doitandbedone/ispyagentdvr
ispy.log

Expected behavior
No error

Reproduction rate
Every time I try to start the container

Screenshots
N/A

Host System Information (where ispy agent is running/hosted):
Ubuntu 18.04

Client System Information (device accessing the web portal, if applicable):
N/A

Additional Information
See attached log file.

high CPU usage

Hi,

why is docker version on Synology using so much CPU, even while all cams are disabled?

grafik

YOLO not working on docker

I have this install in Unraid via Docker..

YOLO does not seem to be working.

FULL LOG

YOLO: YOLO: The type initializer for 'Gdip' threw an exception. �[33m�[40mError: YOLO: at System.Drawing.SafeNativeMethods.Gdip.GdipCreateBitmapFromScan0(Int32 width, Int32 height, Int32 stride, Int32 format, HandleRef scan0, IntPtr& bitmap) m.Drawing.Bitmap..ctor(Int32 width, Int32 height, Int32 stride, PixelFormat format, IntPtr scan0) ogic.AI.Yolo.Process(Mat frame) �[33m�[40mError: YOLO: YOLO: Unable to load DLL 'libgdiplus': The specified module could not be found. �[33m�[40mError: YOLO: at System.Runtime.InteropServices.FunctionWrapper1.get_Delegate()
m.Drawing.SafeNativeMethods.Gdip.GdiplusStartup(IntPtr& token, StartupInput& input, StartupOutput& output)
m.Drawing.SafeNativeMethods.Gdip..cctor()
�[31m�[40mUnable to load DLL 'libgdiplus': The specified module could not be found.
�[33m�[40mError: YOLO: YOLO: The type initializer for 'Gdip' threw an exception.
�[33m�[40mError: YOLO: at System.Drawing.SafeNativeMethods.Gdip.GdipCreateBitmapFromScan0(Int32 width, Int32 height, Int32 stride, Int32 format, HandleRef scan0, IntPtr& bitmap)
m.Drawing.Bitmap..ctor(Int32 width, Int32 height, Int32 stride, PixelFormat format, IntPtr scan0)
ogic.AI.Yolo.Process(Mat frame)
�[33m�[40mError: YOLO: YOLO: Unable to load DLL 'libgdiplus': The specified module could not be found.
�[33m�[40mError: YOLO: at System.Runtime.InteropServices.FunctionWrapper1.get_Delegate() m.Drawing.SafeNativeMethods.Gdip.GdiplusStartup(IntPtr& token, StartupInput& input, StartupOutput& output) m.Drawing.SafeNativeMethods.Gdip..cctor() �[31m�[40mUnable to load DLL 'libgdiplus': The specified module could not be found.

[Feature Request] Recordings purge

@ispysoftware I've noticed that I have a bunch of missing files, probably old files from the encoder crashes fixed in #26. Would it be possible to have a way to purge these videos? Doing this manually with the amount fo cameras and recordings seems like a daunting task. A purge button in Recordings edit mode would be great, with a confirmation on how many will be deleted.

See below:
Corrupt Files

Thanks!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.