From 9c124dbd7e72671413cd666d8181521a017c29ba Mon Sep 17 00:00:00 2001 From: ske087 Date: Mon, 25 Aug 2025 00:32:42 -0400 Subject: [PATCH] fix: remove video conversion, use uploaded videos as-is for playlist (bugfix) --- app/utils/uploads.py | 82 +++----------------------------------------- 1 file changed, 4 insertions(+), 78 deletions(-) diff --git a/app/utils/uploads.py b/app/utils/uploads.py index 0bcdf52..a19d209 100644 --- a/app/utils/uploads.py +++ b/app/utils/uploads.py @@ -52,86 +52,12 @@ def add_image_to_playlist(app, file, filename, duration, target_type, target_id) # Video conversion functions def convert_video(input_file, output_folder): - """ - Converts a video file to MP4 format with H.264 codec. - """ - # Use simple path resolution for containerized environment - if not os.path.isabs(output_folder): - # In container, relative paths work from /app directory - print(f"Using relative path: {output_folder}") - else: - print(f"Using absolute path: {output_folder}") - - if not os.path.exists(output_folder): - os.makedirs(output_folder, exist_ok=True) - print(f"Created output folder: {output_folder}") - - # Generate the output file path - base_name = os.path.splitext(os.path.basename(input_file))[0] - output_file = os.path.join(output_folder, f"{base_name}.mp4") - print(f"Converting video: {input_file} -> {output_file}") - - # FFmpeg command to convert the video - command = [ - "ffmpeg", - "-i", input_file, # Input file - "-c:v", "libx264", # Video codec: H.264 - "-preset", "fast", # Encoding speed/quality tradeoff - "-crf", "23", # Constant Rate Factor (quality, lower is better) - "-vf", "scale=-1:1080", # Scale video to 1080p (preserve aspect ratio) - "-r", "30", # Frame rate: 30 FPS - "-c:a", "aac", # Audio codec: AAC - "-b:a", "128k", # Audio bitrate - output_file # Output file - ] - - try: - # Run the FFmpeg command - subprocess.run(command, check=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) - print(f"Video converted successfully: {output_file}") - return output_file - except subprocess.CalledProcessError as e: - print(f"Error converting video: {e.stderr.decode()}") - return None + print(f"Video conversion skipped for: {input_file}") + return input_file def convert_video_and_update_playlist(app, file_path, original_filename, target_type, target_id, duration): - """ - Converts a video and updates the playlist database. - """ - print(f"Starting video conversion for: {file_path}") - - # Use simple path resolution for containerized environment - upload_folder = app.config['UPLOAD_FOLDER'] - print(f"Upload folder: {upload_folder}") - - converted_file = convert_video(file_path, upload_folder) - if converted_file: - converted_filename = os.path.basename(converted_file) - print(f"Video converted successfully: {converted_filename}") - - # Use the application context to interact with the database - with app.app_context(): - # Update the database with the converted filename - if target_type == 'group': - group = Group.query.get_or_404(target_id) - for player in group.players: - content = Content.query.filter_by(player_id=player.id, file_name=original_filename).first() - if content: - content.file_name = converted_filename - elif target_type == 'player': - content = Content.query.filter_by(player_id=target_id, file_name=original_filename).first() - if content: - content.file_name = converted_filename - - db.session.commit() - print(f"Database updated with converted video: {converted_filename}") - - # Delete the original file only if it exists - if os.path.exists(file_path): - os.remove(file_path) - print(f"Original file deleted: {file_path}") - else: - print(f"Video conversion failed for: {file_path}") + print(f"Video conversion skipped for: {file_path}") + return None # PDF conversion functions def convert_pdf_to_images(pdf_file, output_folder, delete_pdf=True, dpi=300):