From 6332dd11c1119f4283d1ffb8dde84851a7c1caac Mon Sep 17 00:00:00 2001 From: vitrinekast Date: Wed, 26 Jun 2024 18:26:10 +0200 Subject: [PATCH] compress --- app.py | 67 +++++++++++++++++++++++++++++++++++++++++---------------- test.py | 5 ----- 2 files changed, 49 insertions(+), 23 deletions(-) delete mode 100644 test.py diff --git a/app.py b/app.py index 0cc3e31..e659bd7 100644 --- a/app.py +++ b/app.py @@ -1,14 +1,12 @@ from flask import Flask, render_template, request, flash, redirect, url_for from werkzeug.utils import secure_filename from PIL import Image -import os -# import ffmpeg -import datetime; - +import os, random, datetime +from ffmpeg import FFmpeg app = Flask(__name__) -app.config['UPLOAD_FOLDER'] = "uploads" +app.config['UPLOAD_FOLDER'] = "media" app.config['TMP_FOLDER'] = "tmp" def get_extension(filename): @@ -26,6 +24,14 @@ def submitted(): print("doingsubmit") return render_template('index.html', error=request.args.get('error'), submitted=True) +def get_random_subfolder(): + # folder = os.listdir(app.config['UPLOAD_FOLDER']) + folder = [f for f in os.listdir(app.config['UPLOAD_FOLDER']) if not os.path.isfile(os.path.join(app.config['UPLOAD_FOLDER'], f))] + + + random.shuffle(folder) + print(folder[0]) + return folder[0] @app.route('/upload', methods=['POST']) def upload_file(): @@ -45,28 +51,53 @@ def upload_file(): ext = get_extension(file.filename) temp_path = os.path.join(app.config['TMP_FOLDER'], filename) + # random_sub = random.choice(os.listdir(app.config['UPLOAD_FOLDER'])) + # sub_folder = os.path.join(app.config['UPLOAD_FOLDER'], random_sub) + sub_folder = os.path.join(app.config['UPLOAD_FOLDER'], get_random_subfolder()) + print("saving to:") + print(sub_folder) + if ext in ['png', 'jpg', 'jpeg', 'gif']: print("dealing with an image!") img = Image.open(file) img.thumbnail((100, 100), Image.LANCZOS) - img.save(os.path.join(app.config['UPLOAD_FOLDER'], filename)) + img.save(os.path.join(sub_folder, filename)) return redirect(url_for('submitted')) elif ext in ['mp4', 'avi', 'mov', 'flv']: - out_path = os.path.join(app.config['UPLOAD_FOLDER'], filename.rsplit('.', 1)[0].lower() + '.mp4') - file.save(out_path) - # stream = ffmpeg.input(temp_path) - # stream = ffmpeg.hflip(stream) - # stream = ffmpeg.output(stream, out_path) - # ffmpeg.run(stream) - # ffmpeg.input(temp_path).output(out_path,vf="scale=300:230", crf=24).run() - # os.remove(temp_path) + file.save(temp_path) + + out_path = os.path.join(sub_folder, filename.rsplit('.', 1)[0].lower() + '.mp4') + + ffmpeg = ( + FFmpeg() + .option("y") + .input(temp_path) + .output( + out_path, + crf=40, + ) + ) + + ffmpeg.execute() + os.remove(temp_path) return redirect(url_for('submitted')) elif ext in ['mp3', 'wav', 'flac']: - out_name = filename.rsplit('.', 1)[0].lower() + '.mp3' - file.save(os.path.join(app.config['UPLOAD_FOLDER'], out_name)) - # ffmpeg.input(temp_path).output(os.path.join(app.config['UPLOAD_FOLDER'], out_name)).run() - # os.remove(temp_path) + out_path = os.path.join(sub_folder, filename.rsplit('.', 1)[0].lower() + '.mp3') + file.save(temp_path) + + ffmpeg = ( + FFmpeg() + .option("y") + .input(temp_path) + .output( + out_path, + ) + ) + + ffmpeg.execute() + + os.remove(temp_path) return redirect(url_for('submitted')) else: print("not an image!") diff --git a/test.py b/test.py deleted file mode 100644 index 1f3b877..0000000 --- a/test.py +++ /dev/null @@ -1,5 +0,0 @@ -import ffmpeg -stream = ffmpeg.input('input.mp4') -stream = ffmpeg.hflip(stream) -stream = ffmpeg.output(stream, 'output.mp4') -ffmpeg.run(stream)