From eeb1af4fbd574832d2491260c35d526f2bb11eaf Mon Sep 17 00:00:00 2001 From: gsd Date: Wed, 28 Aug 2024 02:40:27 +0300 Subject: [PATCH] fixes --- backend/config_parser.py | 27 ++++++++++--------- .../components/history/history.component.html | 12 ++++----- 2 files changed, 21 insertions(+), 18 deletions(-) diff --git a/backend/config_parser.py b/backend/config_parser.py index 64f9330..cfa91dd 100644 --- a/backend/config_parser.py +++ b/backend/config_parser.py @@ -150,7 +150,8 @@ class TranscodeTools: statuses:dict[str, TranscodeStatus] = {} WIN32PYTHON = "python-win32" - def __init__(self, tools_directory, transcode_directory, hide_checks = True) -> None: + def __init__(self, tools_directory, transcode_directory, hide_checks = True, delete_temporary_files = False) -> None: + self.delete_temporary_files = delete_temporary_files self.logger = create_logger(TranscodeTools.__name__) self.hide_checks = hide_checks self.tools_directory = tools_directory @@ -258,7 +259,7 @@ class TranscodeTools: async def anytoimage(self, source_file, out_file, delete_source_file = False): exec_string = ["-y", "-i", source_file, "-ss", "1", "-vframes", "1", out_file] self.logger.debug(f"execute {exec_string}") - proc = await asyncio.create_subprocess_exec("ffmpeg", *exec_string, stderr=DEVNULL) + proc = await asyncio.create_subprocess_exec("ffmpeg", *exec_string) await proc.communicate() if delete_source_file: @@ -274,23 +275,25 @@ class TranscodeTools: except: pass - async def processing_preview(self, file:File, nvr: NVR, ext = "webp"): + async def processing_preview(self, file:File, nvr: NVR, ext = "webp", preview_pre_bytes = 1024 * 512): raw_file = file.previewPath(self.transcode_directory) preview_file = f"{raw_file}.{ext}" if os.path.exists(preview_file) and os.path.getsize(preview_file) != 0: + self.logger.info(f"{preview_file} is exists") return preview_file if nvr is None: raise NeedNVR - if not os.path.exists(raw_file) or os.path.getsize(raw_file) != 0: + if not os.path.exists(raw_file) or os.path.getsize(raw_file) == 0: + self.logger.info(f"download new preview {preview_file}") async with aiofiles.open(raw_file, "wb") as raw: - async for chunk in nvr.stream_file(file, 1024 * 512): + async for chunk in nvr.stream_file(file, preview_pre_bytes): await raw.write(chunk) nvr.logout() - - return await self.anytoimage(raw_file, preview_file, True) + raw_file = await self.h264toavi(raw_file) + return await self.anytoimage(raw_file, preview_file, False) async def processing_safe(self, status: TranscodeStatus, file:File, nvr: NVR, reCreate:bool = False): try: @@ -328,7 +331,7 @@ class TranscodeTools: self.statuses[status.b64].avi = 0 avi_file = raw_file + ".avi" if not os.path.exists(avi_file) or reCreate: - avi_file = await self.h264toavi(raw_file) + avi_file = await self.h264toavi(raw_file, self.delete_temporary_files) else: self.logger.debug("file avi format already exitst") self.statuses[status.b64].avi = 100 @@ -337,7 +340,7 @@ class TranscodeTools: self.statuses[status.b64].mp4 = 0 mp4_file = avi_file + ".mp4" if not os.path.exists(mp4_file) or reCreate: - mp4_file = await self.avitomp4(avi_file, True) + mp4_file = await self.avitomp4(avi_file, self.delete_temporary_files) else: self.logger.debug("file mp4 format already exists") self.statuses[status.b64].mp4 = 100 @@ -372,7 +375,7 @@ class Config: else: for recorder in self.recorders: self.logger.info(recorder) - self.transcode_tools:TranscodeTools = self.check_transcode_tools(not args.no_hide_check if args != None else True) + self.transcode_tools:TranscodeTools = self.check_transcode_tools(not args.no_hide_check if args != None else True, raw.get("delete_temporary_files", False)) def getRecorder(self, index = 0) -> Recorder: return self.recorders[index] @@ -386,9 +389,9 @@ class Config: os.mkdir(t_dir) return t_dir - def check_transcode_tools(self, hide_check): + def check_transcode_tools(self, hide_check, delete_temporary_files): tools_dir = os.path.join(app_dir(), "MiskaRisa264") - return TranscodeTools(tools_dir, self.check_transcode_directory(), hide_check) + return TranscodeTools(tools_dir, self.check_transcode_directory(), hide_check, delete_temporary_files) if __name__ == "__main__": import argparse diff --git a/frontend/ang_dvrip/src/app/components/history/history.component.html b/frontend/ang_dvrip/src/app/components/history/history.component.html index 78c7a7a..58b4e53 100644 --- a/frontend/ang_dvrip/src/app/components/history/history.component.html +++ b/frontend/ang_dvrip/src/app/components/history/history.component.html @@ -1,24 +1,24 @@ -
- +
+ Выбранный поток Основной Дополнительный - + Choose a date MM/DD/YYYY - + - + Choose a date MM/DD/YYYY - +