Compare commits
2 Commits
da42c9662e
...
8656755a99
Author | SHA1 | Date | |
---|---|---|---|
8656755a99 | |||
a041bbc81b |
@ -9,7 +9,7 @@
|
|||||||
[Setup]
|
[Setup]
|
||||||
; 注意:AppId 的值唯一标识此应用程序。不要在其他应用程序的安装程序中使用相同的 AppId 值。
|
; 注意:AppId 的值唯一标识此应用程序。不要在其他应用程序的安装程序中使用相同的 AppId 值。
|
||||||
; (若要生成新的 GUID,请在 IDE 中单击 "工具|生成 GUID"。)
|
; (若要生成新的 GUID,请在 IDE 中单击 "工具|生成 GUID"。)
|
||||||
AppId={{91E7F53A-CF6E-4352-B62F-6EE52710603D}}
|
AppId={{34569C2B-A980-4031-94E1-7CC15988EA75}
|
||||||
AppName={#MyAppName}
|
AppName={#MyAppName}
|
||||||
AppVersion={#MyAppVersion}
|
AppVersion={#MyAppVersion}
|
||||||
;AppVerName={#MyAppName} {#MyAppVersion}
|
;AppVerName={#MyAppName} {#MyAppVersion}
|
||||||
@ -17,7 +17,7 @@ AppPublisher={#MyAppPublisher}
|
|||||||
AppPublisherURL={#MyAppURL}
|
AppPublisherURL={#MyAppURL}
|
||||||
AppSupportURL={#MyAppURL}
|
AppSupportURL={#MyAppURL}
|
||||||
AppUpdatesURL={#MyAppURL}
|
AppUpdatesURL={#MyAppURL}
|
||||||
DefaultDirName={autopf}\VideoCompress
|
DefaultDirName={autopf}\pdfUnlock
|
||||||
DefaultGroupName={#MyAppName}
|
DefaultGroupName={#MyAppName}
|
||||||
; 取消注释以下行以在非管理员安装模式下运行 (仅为当前用户安装)。
|
; 取消注释以下行以在非管理员安装模式下运行 (仅为当前用户安装)。
|
||||||
;PrivilegesRequired=lowest
|
;PrivilegesRequired=lowest
|
||||||
@ -29,27 +29,37 @@ WizardStyle=modern
|
|||||||
Name: "chinesesimp"; MessagesFile: "compiler:Default.isl"
|
Name: "chinesesimp"; MessagesFile: "compiler:Default.isl"
|
||||||
|
|
||||||
[Tasks]
|
[Tasks]
|
||||||
|
Name: "pdfcontextmenu"; Description: "为PDF文件添加右键菜单"; GroupDescription: "上下文菜单:"; Flags: checkedonce
|
||||||
Name: "foldercontextmenu"; Description: "为文件夹添加右键菜单"; GroupDescription: "上下文菜单:"; Flags: checkedonce
|
Name: "foldercontextmenu"; Description: "为文件夹添加右键菜单"; GroupDescription: "上下文菜单:"; Flags: checkedonce
|
||||||
Name: "folderbackgroundmenu"; Description: "为文件夹空白处添加右键菜单"; GroupDescription: "上下文菜单:"; Flags: checkedonce
|
Name: "folderbackgroundmenu"; Description: "为文件夹空白处添加右键菜单"; GroupDescription: "上下文菜单:"; Flags: checkedonce
|
||||||
|
|
||||||
[Files]
|
[Files]
|
||||||
Source: "E:\0学习\高中\录课\河豚\tools\VideoCompress\config_ui.dist"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
|
Source: "C:\git\tools-3\pdf_unlock\dist\main\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
|
||||||
; 注意:不要在任何共享系统文件上使用 "Flags: ignoreversion"
|
; 注意:不要在任何共享系统文件上使用 "Flags: ignoreversion"
|
||||||
|
|
||||||
[Registry]
|
[Registry]
|
||||||
|
; PDF文件右键菜单
|
||||||
|
Root: HKCR; Subkey: "SystemFileAssociations\.pdf\shell\RemovePermissions"; ValueType: string; ValueName: ""; ValueData: "移除PDF权限"; Tasks: pdfcontextmenu; Flags: uninsdeletekey
|
||||||
|
Root: HKCR; Subkey: "SystemFileAssociations\.pdf\shell\RemovePermissions"; ValueType: string; ValueName: "MultiSelectModel"; ValueData: "Player"; Tasks: pdfcontextmenu
|
||||||
|
Root: HKCR; Subkey: "SystemFileAssociations\.pdf\shell\RemovePermissions\command"; ValueType: string; ValueName: ""; ValueData: """{app}\main.exe"" ""%1"""; Tasks: pdfcontextmenu
|
||||||
|
|
||||||
; 文件夹右键菜单
|
; 文件夹右键菜单
|
||||||
Root: HKCR; Subkey: "Directory\shell\VideoCompress"; ValueType: string; ValueName: ""; ValueData: "批量压缩视频"; Tasks: foldercontextmenu; Flags: uninsdeletekey
|
Root: HKCR; Subkey: "Directory\shell\RemovePermissions"; ValueType: string; ValueName: ""; ValueData: "移除PDF权限"; Tasks: foldercontextmenu; Flags: uninsdeletekey
|
||||||
Root: HKCR; Subkey: "Directory\shell\VideoCompress\command"; ValueType: string; ValueName: ""; ValueData: """{app}\config_ui.exe"" ""%1"""; Tasks: foldercontextmenu
|
Root: HKCR; Subkey: "Directory\shell\RemovePermissions\command"; ValueType: string; ValueName: ""; ValueData: """{app}\main.exe"" ""%1"""; Tasks: foldercontextmenu
|
||||||
|
|
||||||
; 文件夹背景右键菜单
|
; 文件夹背景右键菜单
|
||||||
Root: HKCR; Subkey: "Directory\Background\shell\VideoCompress"; ValueType: string; ValueName: ""; ValueData: "批量压缩视频"; Tasks: folderbackgroundmenu; Flags: uninsdeletekey
|
Root: HKCR; Subkey: "Directory\Background\shell\RemovePermissions"; ValueType: string; ValueName: ""; ValueData: "移除PDF权限"; Tasks: folderbackgroundmenu; Flags: uninsdeletekey
|
||||||
Root: HKCR; Subkey: "Directory\Background\shell\VideoCompress\command"; ValueType: string; ValueName: ""; ValueData: """{app}\config_ui.exe"" ""%V"""; Tasks: folderbackgroundmenu
|
Root: HKCR; Subkey: "Directory\Background\shell\RemovePermissions\command"; ValueType: string; ValueName: ""; ValueData: """{app}\main.exe"" ""%V"""; Tasks: folderbackgroundmenu
|
||||||
|
|
||||||
[Icons]
|
[Icons]
|
||||||
Name: "{group}\配置"; Description: "打开视频压缩配置"; Filename: "{app}\config_ui.exe"
|
|
||||||
Name: "{group}\{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}"
|
Name: "{group}\{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}"
|
||||||
|
|
||||||
[UninstallDelete]
|
[UninstallDelete]
|
||||||
Type: files; Name: "{app}\*"
|
Type: files; Name: "{app}\*"
|
||||||
Type: dirifempty; Name: "{app}"
|
Type: dirifempty; Name: "{app}"
|
||||||
Type: filesandordirs; Name: "{userappdata}\VideoCompress"
|
|
||||||
|
; [UninstallRun]
|
||||||
|
; 卸载时清理注册表项
|
||||||
|
; Filename: "reg"; Parameters: "delete ""HKCR\SystemFileAssociations\.pdf\shell\RemovePermissions"" /f"; Flags: runhidden; RunOnceId: "DelPDFMenu"
|
||||||
|
; Filename: "reg"; Parameters: "delete ""HKCR\Directory\shell\RemovePermissions"" /f"; Flags: runhidden; RunOnceId: "DelFolderMenu"
|
||||||
|
; Filename: "reg"; Parameters: "delete ""HKCR\Directory\Background\shell\RemovePermissions"" /f"; Flags: runhidden; RunOnceId: "DelBgMenu"
|
||||||
|
@ -179,7 +179,7 @@ def save_esti():
|
|||||||
logging.warning("保存估算数据失败")
|
logging.warning("保存估算数据失败")
|
||||||
logging.debug("error at save_esti",exc_info=e)
|
logging.debug("error at save_esti",exc_info=e)
|
||||||
|
|
||||||
def fmt_time(t:int) -> str:
|
def fmt_time(t:float|int) -> str:
|
||||||
if t>3600:
|
if t>3600:
|
||||||
return f"{t//3600}h {t//60}min {t%60}s"
|
return f"{t//3600}h {t//60}min {t%60}s"
|
||||||
elif t>60:
|
elif t>60:
|
||||||
@ -242,7 +242,8 @@ def process_video(video_path: Path, compress_dir:Optional[Path]=None ,update_fun
|
|||||||
logging.warning(f"文件{output_file}存在,跳过")
|
logging.warning(f"文件{output_file}存在,跳过")
|
||||||
return use
|
return use
|
||||||
|
|
||||||
command = get_cmd(str(video_path.absolute()),output_file)
|
video_path_str = str(video_path.absolute())
|
||||||
|
command = get_cmd(video_path_str,output_file)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
result = subprocess.Popen(
|
result = subprocess.Popen(
|
||||||
@ -259,9 +260,9 @@ def process_video(video_path: Path, compress_dir:Optional[Path]=None ,update_fun
|
|||||||
line+=result.stderr.read(1)
|
line+=result.stderr.read(1)
|
||||||
# print(line[-1])
|
# print(line[-1])
|
||||||
if 'warning' in line.lower():
|
if 'warning' in line.lower():
|
||||||
logging.warning(f"[FFmpeg]({video_path}): {line}")
|
logging.warning(f"[FFmpeg]({video_path_str}): {line}")
|
||||||
elif 'error' in line.lower():
|
elif 'error' in line.lower():
|
||||||
logging.error(f"[FFmpeg]({video_path}): {line}")
|
logging.error(f"[FFmpeg]({video_path_str}): {line}")
|
||||||
elif "frame=" in line:
|
elif "frame=" in line:
|
||||||
# print(line,end="")
|
# print(line,end="")
|
||||||
match = re.search(r"frame=\s*(\d+)",line)
|
match = re.search(r"frame=\s*(\d+)",line)
|
||||||
@ -271,11 +272,11 @@ def process_video(video_path: Path, compress_dir:Optional[Path]=None ,update_fun
|
|||||||
update_func(frame_number)
|
update_func(frame_number)
|
||||||
|
|
||||||
if result.returncode != 0:
|
if result.returncode != 0:
|
||||||
logging.error(f"处理文件 {video_path} 失败,返回码: {result.returncode},cmd={' '.join(command)}")
|
logging.error(f"处理文件 {video_path_str} 失败,返回码: {result.returncode},cmd={' '.join(command)}")
|
||||||
logging.error(result.stdout)
|
logging.error(result.stdout)
|
||||||
logging.error(result.stderr)
|
logging.error(result.stderr)
|
||||||
else:
|
else:
|
||||||
logging.debug(f"文件处理成功: {video_path} -> {output_file}")
|
logging.debug(f"文件处理成功: {video_path_str} -> {output_file}")
|
||||||
|
|
||||||
end=time()
|
end=time()
|
||||||
if TRAIN:
|
if TRAIN:
|
||||||
@ -284,7 +285,7 @@ def process_video(video_path: Path, compress_dir:Optional[Path]=None ,update_fun
|
|||||||
|
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logging.error(f"执行 ffmpeg 命令时发生异常, 文件:{str(video_path)},cmd={' '.join(command)}",exc_info=e)
|
logging.error(f"执行 ffmpeg 命令时发生异常, 文件:{str(video_path_str)},cmd={' '.join(command)}",exc_info=e)
|
||||||
return use
|
return use
|
||||||
|
|
||||||
def traverse_directory(root_dir: Path):
|
def traverse_directory(root_dir: Path):
|
||||||
|
Reference in New Issue
Block a user