🎧 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! 🧠🎙️