Breakthrough / DVR-Scan

:vhs: Tool for extracting scenes with motion from videos (e.g. security camera or DVR footage). Written in Python, uses OpenCV.
http://www.dvr-scan.com/
Other
362 stars 47 forks source link

Timecode format of hh:mm:ss not recognized #141

Closed lcoffin closed 9 months ago

lcoffin commented 10 months ago

Bug/Issue Description: Using -st hh:mm:ss or -et hh:mm:ss results in an error message of "Timecode format/type unrecognized."

Required Information:

Command line: dvr-scan -i "2023-09-05-001-C0009 - Duxbury - Off Saquish.mp4" -o 2023-09-05-001-C0009-motion.avi -tc -bb -t 4 -df 4 -st 0:01:49 -et 6:16:59 --verbosity debug

Output: INFO: controller._init_dvr_scan(): DVR-Scan v1.5.1 DEBUG: controller._init_dvr_scan(): User config file not found. DEBUG: controller._init_dvr_scan(): Parsing program options. INFO: scanner.init(): Initializing scan context... INFO: video_joiner._load_input_videos(): Opened video 2023-09-05-001-C0009 - Duxbury - Off Saquish.mp4 (2704 x 1520 at 29.970 FPS). Traceback (most recent call last): File "/usr/local/bin/dvr-scan", line 8, in sys.exit(main()) File "/usr/local/lib/python3.9/dist-packages/dvr_scan/main.py", line 24, in main sys.exit(run_dvr_scan()) File "/usr/local/lib/python3.9/dist-packages/dvr_scan/cli/controller.py", line 276, in run_dvr_scan sctx.set_video_time( File "/usr/local/lib/python3.9/dist-packages/dvr_scan/scanner.py", line 418, in set_video_time self._start_time = FrameTimecode(start_time, self._input.framerate) File "/usr/local/lib/python3.9/dist-packages/scenedetect/frame_timecode.py", line 141, in init self.frame_num = self._parse_timecode_number(timecode) File "/usr/local/lib/python3.9/dist-packages/scenedetect/frame_timecode.py", line 263, in _parse_timecode_number raise TypeError('Timecode format/type unrecognized.') TypeError: Timecode format/type unrecognized.

Expected Behavior: I expect it to properly recognize and use the hh:mm:ss timecode format to set the start/end times

Computing Environment:

Additional Information: Using seconds -- i.e. -st 99s or -et 99s -- works.

Breakthrough commented 10 months ago

Hi @lcoffin;

Thanks for pointing this out, indeed this is a bug in the latest release. I believe this applies to pretty much all arguments and config options that take timecodes unfortunately.

I'll make sure this is fixed in the next release. For anyone who needs a workaround, it can be fixed by removing the following line: https://github.com/Breakthrough/DVR-Scan/blob/f56a5e92700554412e019cec275774b62c10bd87/dvr_scan/cli/__init__.py#L91C1-L91C46

Thank you for the report!

lcoffin commented 9 months ago

Thanks, that workaround seems to do the trick!

Breakthrough commented 9 months ago

Fixed in latest development branch, will be included in the v1.6 release. Thanks for the report!