Commit Graph

29 Commits

Author SHA1 Message Date
zii
c2b6575800 v3.5
-The app no longer works on multi-service arch and will instead
 operate under a single master service.
2024-08-02 08:22:37 -04:00
zii
daad0dffa2 v3.5.t2
-re-added recordloop as a thread within the app.
-the app no longer use mutiple services and will instead fully
 operate in a single master service.
-build/install.py will now install the app as a single service.
-added/updated -s, -r and -q options to manage the single master
 service.
2024-04-21 08:03:30 -04:00
zii
553585e275 v3.4.t4
-changed the app name to JustMotion to match the git repository.
-changed the build system away from cmake to qmake now that the
 app doesn't depend on openCV.
-changed the build/install scripts to python based scripts which
 now includes the ability create an installer.
2024-04-10 20:51:56 -04:00
zii
c5393484c2 v3.4.t3
-added aud_codec to the conf file so audio codec is now a
 configurable option.

-renamed stream_codec to vid_codec on the conf file to contrast
 aud_codec.

-rtsp streams now use udp instead of tcp.

-updated README with conf file changes.
2024-04-03 17:28:53 -04:00
zii
2aa5683c15 -fixed up the documentation 2023-12-24 10:26:52 -05:00
zii
7ca4fc3dbe v3.3.t9
-moved buff_path setup code away from rdconf() to loadSh(). this
 insures root will never take ownership of the camera buffer.
-added service group option.
-updated the documentation in preperation of release.
2023-12-23 17:38:11 -05:00
Zii
3791b29cf7 v3.2.t2
-fixed the -i option that was using /etc instaead of /etc/mow
-the externalized image comparison executable is now configurable
 in the config file.
-moved the main index.html and theme.css files to the buffer dir,
 moving even more io to the buffer dir.
2023-08-06 10:17:10 -04:00
Zii
ad733f8317 v3.1.t2
added a buffer directory so the actual work of image frame capture
and live video recording can be moved off of main storage.

also removed installation of the apache2 http server from
install.sh to make this app more agnostic and leave it up to the
end user to install what ever web server they want.
2023-07-18 18:47:14 -04:00
Zii
ff5f95f445 v3.0.0
The app in it's current iteration is stable in testing. Releasing
to master.
2023-06-18 09:06:12 -04:00
Zii
4bf260c0ae v3.0.t11
-max_event_secs is not being honered correctly. EventLoop was not
 calculating the amount the hls clips to grab from live correctly.
 chanaged it to properly calculate file count based on hls segment
 size.

-updated the documentation as the current version nears stable
 release.
2023-06-01 16:11:58 -04:00
Maurice ONeal
f4ea944f97 v2.2
Updated the documentation, current iteration of the code is deemed
stable. Releasing to main.
2023-05-06 09:08:47 -04:00
Maurice ONeal
19872b3ff5 v2.0
updated documentation and cleaned up the code. preparing to release to
master.
2023-03-28 20:27:12 -04:00
Maurice ONeal
81da33ba81 v1.6.t9
The fork() architecture from the previous commit is also deemed a
failure. Reverted back to v1.5.t19 code. I'll start from scratch, using
this commit as the new base.
2023-02-18 21:21:34 -05:00
Maurice ONeal
4758b62275 v1.6.t6
The crashing problems may have started after switching my test machine
to to multiple config file setup. I'll test this theory by completely
removing the multiple config file feasure and see if it crashes again.

I'll figure out a better solution for multi config files in the next
round of deveoplment.
2023-02-12 15:04:32 -05:00
Maurice ONeal
f4f1f62d25 v1.6.t4
Updated the documentation.

The test machine had a mystery crash that needs to be investigated. In
mean time, the timeout run code has been refactored and will not run
thread cancel unless is it absolutely needed at the individual thread
level (hopefully that fixes the crash issue).

post_cmd shall also now run via timeout. With that, no external commands
should cause this application to stall. Timeout protection should
prevent that.
2023-02-07 23:19:41 -05:00
Maurice ONeal
62b2bfd76b v1.5.t19
Added the ability to read multiple config files so it's now possible to
load a singular global config and then load a camera specific config in
another.

Many elements in the web interface are coming out too small. Added meta
viewport device width in hopes that the web interface will self adjust
to device it is being displayed on.

Changed duration to num_of_clips and added clip_len so the amount of
seconds in each clip and the amount of clips to be processed for motion
are now adjustable.

Adjusted a several default values.
2022-12-24 13:48:51 -05:00
Maurice ONeal
4e44111ea8 v1.5.t18
Discovered that the "ffmpeg stall" is still an issue so I put the
timeout call back into the ffmpeg command.

Changed the default pix_thresh to 10000.
2022-12-22 20:15:14 -05:00
Maurice ONeal
2e10d31ab6 v1.5.t13
Added the ability change the video codec via the config file.

Changed the install script to now install the application in the /opt
directory and then symm link to /usr/bin. Doing this allowed me to
create a run script to start the application and enable the
OPENCV_VIDEOIO_DEBUG parameter for opencv. This should make it easier to
diagnose video-io issues with opencv.

Updated the README documentation with all of the changes done to the
application since v1.5.
2022-12-18 10:25:46 -05:00
Maurice ONeal
a0ee8e35f7 v1.4.t11
completely removed object detection code because I don't foresee going
back to that model anytime soon. diffs will not reset to 0 instead
decrement and the consecutive pixel diffs are now adjustable via
consec_threshold.

updated README.md for the changes to pixel diff detection.
2022-10-14 14:31:12 -04:00
Maurice ONeal
d5a9d1f046 v1.4
Release candidate for merging to master.
2022-09-25 09:15:23 -04:00
Maurice ONeal
56bd855dbb v1.3.t2 Update
Added a -v command line option to display the application's current
version.

The application version is now defined in a single a const value called
APP_VER so bumping the version number now means updating this single
value in common.h.

Versioning scheme will now be major.minor.[test_rev]. test_rev will be
t1, 2, 3, etc... as updates are pushed to the test branch. all code
pushes to master shall bump major or minor and then remove test_rev.

Removed the detect loop's motion latching affect so it ONLY calls wrOut
if the video clip contains motion.

Fixed a bug in the recording loop that fail to create the needed sub-dir
before calling FFMPEG.
2022-09-23 21:50:06 -04:00
Maurice ONeal
bf3de932d1 v1.3 Update
Broken down the code into multiple files instead having it all in
main.cpp.

Also detached recording from detection by having them now run in
separate threads instead of having motion detection inline with
recording. this will hopefully make it so there is less missed motion
events due to processing overhead.

The recording loop now take advantage of FFMPEG's "-f segment" option
instead of generating the clips implicitly in separated FFMPEG calls.
again, all in hope to reduce missed motion events.

This application have the tendency to detect motion of small insects.
to prevent this it was determined with there will need to be some means
of identifying objects via machine vision. there is an object detection
function but it doesn't currently do anything at this time. this is
something that I will be working on in the near future.

created a test branch in the repository. all early, testing code will
now go in this branch going forward. only fully tested, stable code will
be committed to master going forward.
2022-09-22 20:57:46 -04:00
Maurice ONeal
64fe9fcad0 Compile and installation method updates
created setup, build and install scripts to make it easier and
convenient to compile and install the application from source. no plans
distribute pre-compiled binaries because it's just so much easier to
guarantee the application will actually work in the target machine when
compiled by the target machine.
2022-09-17 09:53:52 -04:00
Maurice ONeal
2687b938a0 v1.2 Update
Video clips recorded from the camera are no longer append, instead the
clips are kept as is and then linked together in a playlist file in the
output_dir. this makes it much more efficient and easier to maintain
code.

Also discovered that ffmpeg have a tendency to stall mid execution of
recording from the rtsp stream every now and then. added a work around
in the form of calling ffmpeg via the timeout command instead of
directly so it will force kill ffmpeg if it goes longer than the
expected BUF_SZ.

Increased BUF_SZ to 10 secs.

Added a clause in the recording loop that will make it write out a
second clip if motion was detected.
2022-09-11 12:56:32 -04:00
Maurice ONeal
7a4555f3c3 READ.md updated to new version 2022-08-12 21:50:35 -04:00
Maurice ONeal
48e55b9721 v1.1 Update
major changes to the motion detection scheme and re-introduced
multi-threading. this further sped up the motion detection to a point
that it can now be called in line with the recording loop without
loosing any extra camera footage due to heavy cpu usage.

pixels are now read in blocks to further increase efficiency and to
filter out movements of small objects. the footage clip size is now
hard coded to 3 seconds instead of it being external adjustable.

changed the way footage with motion is now stored. its now down to
single level files with the current date. if footage of the same date
already exists, new footage will be appended to it.

the version number shall be updated going forward.
2022-08-12 21:46:36 -04:00
Maurice ONeal
a36d4e93c0 Major changes to application internals and efficiency increases
removed all threads from the application as there is no used for them at
at this time. instead, the application will now operate on a single
event loop and now directly utilize use ffmpeg to record video footage
instead of opencv's implementation.

old code pulled tons of frames the detection stream at full speed,
wasting a lot of cpu cycles. instead it will now pull frames in a steady
speed at the new detect_fps value. doing this significantly reduced cpu
usage and can potentially further reduce cpu usage for end users by
pulling the fps value lower then the default.
2022-07-28 10:30:07 -04:00
Maurice ONeal
c054356541 Changed post motion detection conditioning
The app will now count the amount of secs to record post motion
detection instead of the amount of frames. Split the main loop timer
with the motion timer in separate threads to make that happen. The
parameter was added to the config file.

Recording fps is now adjustable.
2022-07-14 10:19:37 -04:00
Maurice ONeal
072cbe269c Changed comparison functions again
decided to change frame comparison functions again from optical flow to
    a home brewed function that compares gray levels in the pixels of each
    frame. significant differences in gray levels between the frames can
    potentially trigger a motion event.

    also moved away command line arguments to an external config file to set
    app parameters.

    created a README file to get this project ready for general open source
    release.
2022-07-08 15:24:45 -04:00