Possiedo un server Python Tornado che accetta un file mp3 bitrate variabile un chunk alla volta (i blocchi sono costituiti da un numero fisso di frame).Python decodifica MP3 in blocchi su Mac OS
Tutto quello che sto facendo è passare quel binario in avanti, tuttavia, voglio sapere la durata del blocco. Poiché è un bitrate variabile, non posso fare un semplice calcolo. Stavo cercando su pymedia ma sviluppo su mac OS e sembra che pymedia non possa installarsi lì (inoltre, non è stato aggiornato dal 2006). Ho anche provato pymad ma non ho potuto installarlo (non è stato aggiornato dal 2007), sembra comunque più centrato sui file.
Idealmente, mi piacerebbe estrarre il bitrate da ogni blocco nel modo in cui lo fa mutagen per esempio. Tuttavia, mutagen richiede un file come input mentre desidero inserire un frame mp3 o una serie di tali frame.
def _on_read_frames(self, data):
logging.info('read from input:\n%s', data)
binary_audio = base64.b64decode(data)
# need to find out how many miliseconds went by here
UPDATE: Questo fa parte di un vicino streaming in tempo reale l'architettura in modo che il formato mp3 è codificato in piccoli pezzi, così la mia soluzione attuale è quella di utilizzare bit rate costante che permette semplice calcolo, mi sono reso conto che non c'è quasi nessun vantaggio nell'utilizzare il bit rate variabile qui.
Dubito che troverete qualcosa che funziona già per il vostro caso. La fonte mutagena per la gestione di MP3 non sembra essere così grande forse implementare qualcosa da te in base ad esso? – entropy
Dopo aver realizzato che per lo streaming di blocchi audio in tempo reale, il bitrate variabile non offre alcun vantaggio. In effetti, fornisce uno svantaggio. Capisco ora perché nessuno ha creato strumenti per questo, non è davvero utile! Potrei comunque creare un tale strumento, perché anche con un bitrate costante può essere utile misurare il bitrate su qualsiasi fotogramma audio. – JonathanC