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

@@ -93,6 +93,7 @@ $top_lessons = $stmt->fetchAll();
<li><a href="lessons.php">🎥 Gestione Lezioni</a></li>
<li><a href="users.php">👥 Gestione Utenti</a></li>
<li><a href="purchases.php">💰 Acquisti</a></li>
<li><a href="../convert_videos.php">🔄 Converti Video</a></li>
<li><a href="profile.php">👤 Profilo</a></li>
</ul>
</aside>

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;

View File

@@ -81,6 +81,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
}
}
// Elimina il vecchio file se esisteva
$old_video_path = ltrim($lesson['video_url'], '/');
if (!empty($lesson['video_url']) && file_exists('../' . $old_video_path)) {

View File

@@ -83,6 +83,7 @@ $lessons = $stmt->fetchAll();
<li><a href="lessons.php" class="active">🎥 Gestione Lezioni</a></li>
<li><a href="users.php">👥 Gestione Utenti</a></li>
<li><a href="purchases.php">💰 Acquisti</a></li>
<li><a href="../convert_videos.php">🔄 Converti Video</a></li>
<li><a href="profile.php">👤 Profilo</a></li>
</ul>
</aside>

View File

@@ -183,6 +183,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['test_email'])) {
<li><a href="lessons.php">🎥 Gestione Lezioni</a></li>
<li><a href="users.php">👥 Gestione Utenti</a></li>
<li><a href="purchases.php">💰 Acquisti</a></li>
<li><a href="../convert_videos.php">🔄 Converti Video</a></li>
<li><a href="profile.php" class="active">👤 Profilo</a></li>
</ul>
</aside>

View File

@@ -74,6 +74,7 @@ $stats = $stmt->fetch();
<li><a href="lessons.php">🎥 Gestione Lezioni</a></li>
<li><a href="users.php">👥 Gestione Utenti</a></li>
<li><a href="purchases.php" class="active">💰 Acquisti</a></li>
<li><a href="../convert_videos.php">🔄 Converti Video</a></li>
<li><a href="profile.php">👤 Profilo</a></li>
</ul>
</aside>

View File

@@ -81,6 +81,7 @@ $users = $stmt->fetchAll();
<li><a href="lessons.php">🎥 Gestione Lezioni</a></li>
<li><a href="users.php" class="active">👥 Gestione Utenti</a></li>
<li><a href="purchases.php">💰 Acquisti</a></li>
<li><a href="../convert_videos.php">🔄 Converti Video</a></li>
<li><a href="profile.php">👤 Profilo</a></li>
</ul>
</aside>