New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Timecode frame number must be positive and greater than zero. #90
Comments
Hi @s17534; This may have been fixed in a recent commit: This is likely due to the event end times being wrong which can happen when a motion event is exactly the number of frames specified by Would you be willing to test the latest version including that change? You can download a .whl file and use Edit: Latest version uploaded to pip now, install with Thanks for the report. |
Oh wow, perfect timing! Is there a windows build of this available with the CUDA MOG2 with appveyor? I'm actually using this to help solve a crime that happened in the past couple days. Really love this tool! Saved me days of combing through massive amounts of footage. |
@jimmyhsu I'm still sorting out some issues with automating CUDA builds, and tried to build a regular one just now but something is broken. Given this is a hugely breaking bug, I'll get a CUDA build going right now and will upload it here. Would you be willing to test it out and let me know if it fixes the bug? Thanks. P.S. Glad you're finding the tool useful and that it could be of help, feel free to provide any feedback anytime. |
@Breakthrough absolutely! Really appreciate you doing this right now! |
@jimmyhsu Just finished uploading: Note that the parameter is now called As to why this bug occured, the This didn't crash in v1.4.1 due to differences in how the values were calculated (it was changed to support multithreading), but will result in the event end times being incorrect. Fortunately the video output isn't affected, just the text output, so the event start times + durations reported should still be accurate. I noticed this when doing some refactoring to remove redundant calculations (as duration can always be derived from end_time - start_time), and upon inspection realized that |
@Breakthrough thanks, testing it now! Will let you know if it runs into any issues. Explanation makes a lot of sense as well, appreciate the detail! |
@Breakthrough looks like it works and the timecodes are saved, but unfortunately the files with video were all saved with zero bytes The command used was It appears to have only process one of the files as well |
Actually, it looks like it just stitched all of the events together as if it was one video instead of breaking down the videos separately. Interesting behavior, makes sense in a way though. I'll retest with |
Hi, I've tested latest dvr-scan version linked by you and it properly scanned testing file |
@jimmyhsu thanks for verifying the fix. When specifying multiple input files, all generated output files use only the first filename as a prefix.
Motion events should only be stitched together if you are using the Also note that the CUDA binaries only support MOG2/MOG2_CUDA and not CNT, but the actual method shouldn't affect any other program logic other than how events are detected. Thanks for testing this out! @s17534 thanks for verifying the fix! :) TODOs for next release before this is closed out:
|
@Breakthrough no problem, and yes it did stitch them together automatically, that was the exact command line used. I used 1.4.1 with CNT overnight in parallel on a combined file and we've got their faces and the crime in action! Thanks for making this, it's saved so much time manually combing through all the footage by hand and will help everyone else affected. We think we may actually be able to catch them as they were wearing and carrying very distinctive items (at minimum, we can claim the insurance 100%). As an FYI, the second run with MOG2_CUDA still has an issue outputting 0 byte files, not sure what's going on there still. |
Glad it was able to help you out! What you're describing re: the concatenation and 0-byte files is really strange, and I could definitely use your help with resolving that one. I've tried the same command just now and I get all events in separate files. Would you be able to provide debug logs (add A few more questions that might help debug this (all regarding v1.5):
Since accuracy isn't important here, you can try setting Thanks! This is interesting as well since there should be no code paths that can actually lead to zero byte files anymore (each file created on demand when the first frame to write to it is received) [1]. The fact that you're also seeing concatenation happen is also quite troubling, since the only way that should happen is if [1] https://github.com/Breakthrough/DVR-Scan/blob/v1.5/dvr_scan/scanner.py#L949= |
@Breakthrough can do, I'll try to get to this either tomorrow or the day after—should this be in a different issue for clarity as it seems to be a totally different issue? |
@jimmyhsu yes please, separate issue would be great, thanks! |
Released new version of v1.5-beta (identifier is v1.5-dev2) with this fix, can grab the new version using pip now or from Github: |
Thanks all for your help with this one. v1.5 has officially been released 🎉 @jimmyhsu would love to know if you still run into the issue with the final release of v1.5. I did some more testing and was not able to reproduce the issue, so hoping the issue has been resolved. (If not please do feel free to open a new issue!) |
Hi, I'm using dvr-scan to scan files from my web camera to detect motion.
When using stable version, I'm able to successfully scan all of them - meaning no errors while scanning.
But if I use v1.5.dev1, following error occurs very often:
ERROR: controller.run_dvr_scan(): Timecode frame number must be positive and greater than zero.
Attached screenshots for proof.
The text was updated successfully, but these errors were encountered: