Skip to content
Brandon Castellano edited this page Mar 7, 2021 · 25 revisions

Welcome to the DVR-Scan wiki, used for development specific book-keeping and idea management.


Immediate Tasks

Consider Bumping Version to 2.0

To achieve all goals for v1.2, it's likely a lot will need to change on the command line, as well as internally refactoring the code entirely. Need to consider retarget as v2.0 and start from a clean slate, especially because default behaviours may be very different.

Another option is to tackle only the minimum for v1.2 to smooth the move to v2.0 (this will likely be the case).

Integration w/ ffmpeg

Replace use of OpenCV VideoWriter with ffmpeg - there's no real reason to prefer the VideoWriter method for this use case, and use of ffmpeg directly provides more optimization possibilities. If a v1.2 release is planned, can consider temporarily reverting to using OpenCV VideoWriter and display a warning (but only AVI is allowed as output - what if the user specifies MP4?). New CLI flags:

  • -ffmpeg/--force-ffmpeg (optional, if specified, errors if ffmpeg is not available)
  • -a/--override-args to override params passed to ffmpeg (default should be copy mode)
  • -p/--precise to default to high quality re-encoding for accurate timing of split videos (copy mode is not frame perfect)

Folder Support

Need to add -c/--concatenate to explicitly concatenate multiple videos when -i is specified multiple times (this changes default behaviour, as specifying -i multiple times concatenates right now).

As for folder support, should -i support a folder as a path directly? If so, how should we determine which files to try as videos? If we take wildcards, what happens in bash? Is it just easier to add another argument (-d/--directory)

Output File Naming

Currently there are no provisions to specify the output filenames. Allow users to enter a template like PySceneDetect does. (Aside: Should a different wildcard character be chosen, instead of $, to avoid issues on bash? Why not just use {VIDEO_NAME}, {EVENT_NUM}, etc...?)

Parallelization

If -c is not specified, and there are multiple inputs, we can run sub-processes simultaneously.


Roadmap: Features Under Development & Consideration

Features Under Development for Upcoming v1.2 Release

Type Description Complete Issue
bug-fix flag to manually set framerate if not properly detected from video/camera N N/A
feature downscaling for faster detection and encoding N N/A

Tasks & Features for Subsequent v1.2 Release

Type Description Complete Issue
feature image masking with a transparent .PNG to determine which parts of the frame should be excluded from motion detection N N/A

Ideas Under Consideration for Future Releases

Type Description Complete Issue
enhancement support for live videos via video cameras / webcams N N/A
feature integration with mkvmerge or ffmpeg instead of using the OpenCV VideoWriter N N/A
other find/create test footage with various events, e.g. static scene (example), scene with vehicles in background (example 1, example 2) to test masking and motion threshold/magnitude N N/A
other integration with PySceneDetect N N/A
Clone this wiki locally