ESP32-Audio: MP3-Upload und automatische Konvertierung zu PCM

🎧 Upload & Konvertierung: MP3 zu ESP32-kompatibler PCM-Datei

Dieses kleine PHP-Tool erlaubt dir, MP3-Dateien über eine Weboberfläche hochzuladen und automatisch in das PCM-Format zu konvertieren, das du direkt auf dem ESP32 über BluetoothA2DPSource abspielen kannst. Dabei wird das Audio komprimiert, um möglichst wenig Platz zu verbrauchen – ideal für Sprache oder einfache Töne.

🚀 Features

  • MP3-Upload per Webformular
  • Automatische Konvertierung mit ffmpeg
  • Mono (1 Kanal)
  • 44.1 kHz Samplerate (kompatibel mit A2DP)
  • RAW PCM, 16-Bit little endian
  • Direkte Ausspielung als .pcm-Datei

📄 Der PHP-Code (alles in einer Datei)

<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_FILES['audio'])) {
    $upload_dir = __DIR__;
    $mp3_path = $upload_dir . '/upload.mp3';
    $pcm_path = $upload_dir . '/test.pcm';

    move_uploaded_file($_FILES['audio']['tmp_name'], $mp3_path);

    $cmd = "ffmpeg -y -i $mp3_path -ac 1 -ar 44100 -acodec pcm_s16le -f s16le $pcm_path";
    $output = shell_exec($cmd);

    echo "<p>✅ Konvertierung abgeschlossen!</p>";
    echo "<p><a href='test.pcm' download>test.pcm herunterladen</a></p>";
}
?>

<h2>🎵 MP3 hochladen & konvertieren</h2>
<form method="POST" enctype="multipart/form-data">
  <input type="file" name="audio" accept="audio/mpeg" required><br><br>
  <button type="submit">Konvertieren</button>
</form>

🛠️ Voraussetzungen

  • Ein Webserver mit PHP (7.x oder 8.x)
  • ffmpeg muss per Shell verfügbar sein
  • Schreibrechte im Verzeichnis für Upload + Ausgabe

💡 Tipps

  • Du kannst die Datei test.pcm direkt auf deinem ESP abspielen lassen
  • Willst du mehrere Dateien? Einfach den Dateinamen anpassen und mitgeben
  • Bei Problemen: Ausgabe von shell_exec() debuggen oder Pfade prüfen

Viel Spaß beim Streamen vom Bastelschuppen! 🧠🎙️

Nach oben scrollen