FFMpeg-Compressor: Hide all ffmpeg warnings and errors

This commit is contained in:
OleSTEEP 2023-10-02 19:46:12 +03:00
parent cefd0bc9ba
commit f15bb3df7e
5 changed files with 18 additions and 4 deletions

View file

@ -1,5 +1,5 @@
[FFMPEG] [FFMPEG]
FFmpegParams = "-n -hide_banner -loglevel error" FFmpegParams = "-n -hide_banner -loglevel quiet"
CopyUnprocessed = false CopyUnprocessed = false
MimicMode = false MimicMode = false

View file

@ -44,6 +44,8 @@ for folder, folders, files in os.walk(orig_folder):
case "unknown": case "unknown":
comp_file = compressor.compress(folder, file, target_folder) comp_file = compressor.compress(folder, file, target_folder)
utils.check_file_existing(folder.replace(orig_folder, f"{orig_folder}_compressed"), file)
if configloader.config['FFMPEG']['MimicMode']: if configloader.config['FFMPEG']['MimicMode']:
try: try:
os.rename(comp_file, f'{folder}_compressed/{file}') os.rename(comp_file, f'{folder}_compressed/{file}')

View file

@ -89,7 +89,6 @@ def compress_image(folder, file, target_folder):
def compress(folder, file, target_folder): def compress(folder, file, target_folder):
ffmpeg_params = configloader.config['FFMPEG']['FFmpegParams'] ffmpeg_params = configloader.config['FFMPEG']['FFmpegParams']
printer.warning("File extension not recognized. This may affect the quality of the compression.")
printer.unknown_file(file) printer.unknown_file(file)
os.system(f"ffmpeg -i '{folder}/{file}' {ffmpeg_params} '{target_folder}/{file}'") os.system(f"ffmpeg -i '{folder}/{file}' {ffmpeg_params} '{target_folder}/{file}'")
return f'{target_folder}/{file}' return f'{target_folder}/{file}'

View file

@ -38,5 +38,5 @@ def files(source, dest, dest_ext, comment):
def unknown_file(file): def unknown_file(file):
print(clean_str(f"\r[COMP] \033[0;33m{file}\033[0m")) print(clean_str(f"\r[COMP] \033[0;33m{file}\033[0m (File extension not recognized)"))
bar.next() bar.next()

View file

@ -3,6 +3,8 @@ from shutil import copyfile
from glob import glob from glob import glob
import os import os
errors_count = 0
def get_dir_size(directory, files): def get_dir_size(directory, files):
total_size = 0 total_size = 0
@ -42,11 +44,14 @@ def get_compression_status(orig_folder):
if not os.path.splitext(file)[1].count(" (copy)"): if not os.path.splitext(file)[1].count(" (copy)"):
comp_folder_len += 1 comp_folder_len += 1
if errors_count != 0:
printer.warning("Some files failed to compress!")
if orig_folder_len == comp_folder_len: if orig_folder_len == comp_folder_len:
printer.info("Success!") printer.info("Success!")
get_compression(orig_folder, f"{orig_folder}_compressed") get_compression(orig_folder, f"{orig_folder}_compressed")
else: else:
printer.warning("Some files failed to compress!") printer.warning("Original and compressed folders are not identical!")
get_compression(orig_folder, f"{orig_folder}_compressed") get_compression(orig_folder, f"{orig_folder}_compressed")
@ -67,5 +72,13 @@ def add_unprocessed_files(orig_folder):
printer.info(f"File {file} copied to compressed folder.") printer.info(f"File {file} copied to compressed folder.")
def check_file_existing(folder, file):
if not len(glob(f"{folder}/{os.path.splitext(file)[0]}*")):
global errors_count
errors_count += 1
printer.error(f"{file} not processed. It can be ffmpeg error or file type is unsupported. "
f"You can set '-loglevel error' in ffmpeg config to see full error.")
def help_message(): def help_message():
return "Usage: ffmpeg-comp {folder}" return "Usage: ffmpeg-comp {folder}"