diff --git a/FFMpeg-Compressor/README.md b/FFMpeg-Compressor/README.md index 8a7295e..e1f025c 100644 --- a/FFMpeg-Compressor/README.md +++ b/FFMpeg-Compressor/README.md @@ -10,6 +10,7 @@ Python utility uses ffmpeg to compress Visual Novel Resources ### Configuration #### FFMPEG section * CopyUnprocessed - Copy all files that failed to compress by ffmpeg to destination folder. In can helps to recreate original folder, but with compressed files. +* ForceCompress - Force try to compress all files in directory via ffmpeg. (default: `false`) * MimicMode - Rename compressed file to it original name and extension. VN engines determine the file type by its header, so for example PNG file named file.jpg will be loaded as PNG file. (default: `false`) * HideErrors - Hide some errors about compression. (default: `false`) * WebpRGBA - Alpha channel in webp. If false switches extension to png. (default: `true`) diff --git a/FFMpeg-Compressor/ffmpeg-comp.toml b/FFMpeg-Compressor/ffmpeg-comp.toml index 3840e5a..2f14653 100644 --- a/FFMpeg-Compressor/ffmpeg-comp.toml +++ b/FFMpeg-Compressor/ffmpeg-comp.toml @@ -1,5 +1,6 @@ [FFMPEG] CopyUnprocessed = false +ForceCompress = false MimicMode = false HideErrors = false WebpRGBA = true diff --git a/FFMpeg-Compressor/modules/compressor.py b/FFMpeg-Compressor/modules/compressor.py index b1d22ea..3fc67af 100644 --- a/FFMpeg-Compressor/modules/compressor.py +++ b/FFMpeg-Compressor/modules/compressor.py @@ -86,16 +86,19 @@ def compress_image(folder, file, target_folder, extension): def compress(folder, file, target_folder): - printer.unknown_file(file) - try: - (ffmpeg - .input(f'{folder}/{file}') - .output(f'{target_folder}/{file}') - .run(quiet=True) - ) - except ffmpeg._run.Error as e: + if configloader.config["FFMPEG"]["ForceCompress"]: + printer.unknown_file(file) + try: + (ffmpeg + .input(f'{folder}/{file}') + .output(f'{target_folder}/{file}') + .run(quiet=True) + ) + except ffmpeg._run.Error as e: + utils.add_unprocessed_file(f'{folder}/{file}', f'{target_folder}/{file}') + utils.errors_count += 1 + if not configloader.config['FFMPEG']['HideErrors']: + printer.error(f"File {file} can't be processed! Error: {e}") + else: utils.add_unprocessed_file(f'{folder}/{file}', f'{target_folder}/{file}') - utils.errors_count += 1 - if not configloader.config['FFMPEG']['HideErrors']: - printer.error(f"File {file} can't be processed! Error: {e}") return f'{target_folder}/{file}' diff --git a/FFMpeg-Compressor/modules/printer.py b/FFMpeg-Compressor/modules/printer.py index f82b2e2..4c99ced 100644 --- a/FFMpeg-Compressor/modules/printer.py +++ b/FFMpeg-Compressor/modules/printer.py @@ -38,7 +38,7 @@ def files(source, dest, dest_ext, comment): def unknown_file(file): - print(clean_str(f"\r* \033[0;33m{file}\033[0m (Not recognized)")) + print(clean_str(f"\r* \033[0;33m{file}\033[0m (File will be force compressed wia ffmpeg)")) bar.next()