fix ffmpeg

This commit is contained in:
Francesco Picone
2025-12-09 16:58:11 +01:00
parent e7ea7dbd3b
commit 59c9b1f5be
11 changed files with 476 additions and 57 deletions

View File

@@ -52,6 +52,34 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$upload_path = $upload_dir . $file_name;
if (move_uploaded_file($_FILES['video_file']['tmp_name'], $upload_path)) {
// Se il video non è MP4, prova a convertirlo automaticamente
if ($file_extension !== 'mp4') {
$converted_path = $upload_dir . pathinfo($file_name, PATHINFO_FILENAME) . '.mp4';
// Verifica se FFmpeg è disponibile
$ffmpeg_check = [];
exec('ffmpeg -version 2>&1', $ffmpeg_check, $ffmpeg_return);
if ($ffmpeg_return === 0) {
// Converti il video in MP4
$convert_cmd = sprintf(
'ffmpeg -i %s -c:v libx264 -preset medium -crf 23 -c:a aac -b:a 128k -movflags +faststart -y %s 2>&1',
escapeshellarg($upload_path),
escapeshellarg($converted_path)
);
exec($convert_cmd, $convert_output, $convert_return);
if ($convert_return === 0 && file_exists($converted_path)) {
// Conversione riuscita, elimina il file originale e usa quello convertito
unlink($upload_path);
$file_name = pathinfo($file_name, PATHINFO_FILENAME) . '.mp4';
$upload_path = $converted_path;
}
// Se la conversione fallisce, usa comunque il file originale
}
}
// Imposta il percorso relativo per il database (senza slash iniziale)
$video_url = 'uploads/lessons/' . ($is_demo ? 'demo' : 'pay') . '/' . $file_name;