Update upload_media.php

This commit is contained in:
Lizandro Guarnizo
2026-01-22 12:59:30 -05:00
parent f40f5570fc
commit 7cb0dad0da
+8 -2
View File
@@ -108,9 +108,12 @@ try {
try { try {
$convertedName = uniqid('media_', true) . '.ogg'; $convertedName = uniqid('media_', true) . '.ogg';
$convertedPath = $uploadDir . $convertedName; $convertedPath = $uploadDir . $convertedName;
// Convertir a Opus (bitrate moderado) // Convertir a Opus (bitrate moderado). Forzamos formato OGG, mono 48kHz y mapeamos la primera pista de audio.
$cmd = escapeshellcmd($ffmpeg) . ' -y -i ' . escapeshellarg($uploadPath) . ' -c:a libopus -b:a 64000 ' . escapeshellarg($convertedPath) . ' 2>&1'; // Esto ayuda a evitar contenedores/streams extra que pueden causar que el archivo suene como ruido.
$cmd = escapeshellcmd($ffmpeg) . ' -y -i ' . escapeshellarg($uploadPath) . ' -map 0:a:0 -c:a libopus -b:a 64k -vbr on -ar 48000 -ac 1 -f ogg ' . escapeshellarg($convertedPath) . ' 2>&1';
$out = @shell_exec($cmd); $out = @shell_exec($cmd);
// Añadir comprobación diagnóstica con "ffmpeg -i" sobre el archivo convertido para registrar detalles del stream
$probe = @shell_exec(escapeshellcmd($ffmpeg) . ' -i ' . escapeshellarg($convertedPath) . ' 2>&1');
if (file_exists($convertedPath) && filesize($convertedPath) > 0) { if (file_exists($convertedPath) && filesize($convertedPath) > 0) {
// Reemplazar archivo original por el convertido // Reemplazar archivo original por el convertido
@unlink($uploadPath); @unlink($uploadPath);
@@ -120,9 +123,12 @@ try {
$converted = true; $converted = true;
error_log('upload_media.php - Audio convertido a OGG/Opus: ' . $convertedName); error_log('upload_media.php - Audio convertido a OGG/Opus: ' . $convertedName);
error_log('upload_media.php - ffmpeg output: ' . substr($out ?: '', 0, 2000)); error_log('upload_media.php - ffmpeg output: ' . substr($out ?: '', 0, 2000));
error_log('upload_media.php - ffmpeg probe:
' . substr($probe ?: '', 0, 2000));
} else { } else {
$conversion_error = 'Conversion failed or no output'; $conversion_error = 'Conversion failed or no output';
error_log('upload_media.php - Falló conversión con ffmpeg. Output: ' . substr($out ?: '', 0, 2000)); error_log('upload_media.php - Falló conversión con ffmpeg. Output: ' . substr($out ?: '', 0, 2000));
error_log('upload_media.php - ffmpeg probe after failure:\n' . substr($probe ?: '', 0, 2000));
} }
} catch (Exception $ex) { } catch (Exception $ex) {
$conversion_error = 'Conversion exception: ' . $ex->getMessage(); $conversion_error = 'Conversion exception: ' . $ex->getMessage();