Come si convertono i file audio (al volo) nel browser?
Domanda
Vorrei essere in grado di convertire file audio in MP3 sul browser degli utenti al volo. Il software che sto usando è: Apache, PHP & amp; FFMPEG su un sistema Ubuntu. Ecco il codice che ho finora:
<?php
header("Content-Transfer-Encoding: binary");
header("Content-Type: audio/mpeg, audio/x-mpeg, audio/x-mpeg-3, audio/mpeg3");
passthru('ffmpeg -i song.flac -v 0 -ab 320k -f mp3 -');
?>
Con questo codice, vengono convertiti solo i primi secondi dell'audio, tuttavia, quando commento le funzioni di intestazione, il file audio viene completamente convertito ma tutti i dati binari vengono passati allo schermo (anziché racchiusi nella browser mp3 player).
Qualche idea?
Soluzione
Beh, ho trovato la risposta. Devi calcolare la dimensione del flusso di output e generare la seguente intestazione (prima dell'output del flusso audio):
header("Content-Length: {$calculatedFileSize}");
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow