-
Notifications
You must be signed in to change notification settings - Fork 50
Home
Welcome to the DVR-Scan wiki, used for development specific book-keeping and idea management.
Now that the OpenCV Python bindings support the GPU module, DVR-Scan should provide support for using them. For now, an explicit flag will be added (e.g. -g/--gpu
). Also need to see if OpenCL/Vulkan works as well.
There is a lot of duplicated code between DVR-Scan and PySceneDetect, as well as more functionality that could be offered to DVR-Scan.
This would also allow for replacing the 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)
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
)
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...?)
If -c
is not specified, and there are multiple inputs, we can run sub-processes simultaneously.
andy-verstraeten has provided a proof of concept in the guidev
branch (#37), which should be cleaned up and provided as an official GUI. There are some edge cases with frame scaling/resizing in certain windows, but it does a great job, and shows how this is viable.
TODO: This section is out of date.
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 |
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 |
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 |