Sto lavorando a un'app VOD musicale su iPhone e, grazie alle linee guida Apple, devo eseguire uno streaming live HTTP per essere accettato su AppStore. Tuttavia, dal momento che Apple non si interessa del 98% dei server sulla terra, non forniscono i loro strumenti di streaming live HTTP così magici per i sistemi basati su Linux. E da questo punto inizia l'incubo.HTTP Live Streaming: l'incubo di Linux
Il mio obiettivo è semplice: prendere un MP3, segmentarlo e generare un semplice file indice .m3u8. Ho cercato su google "HTTP Live Streaming Linux" e "Oh grandioso! Molte persone lo hanno già fatto"!
In primo luogo, ho visitato the (so famous) post by Carson McDonald. Risultato: la svn segmentate.c era vecchia, buggata e un incubo da compilare (Nessuno in questo mondo può precisare quale versione di ffmpeg sta usando!). Poi mi sono imbattuto in the Carson's git repo, ma troppo male, c'è un sacco di roba fastidiosa ruby e live_segmenter.c non può prendere file mp3.
Poi ho cercato più profondamente. Ho trovato this stackoverflow topic ed è esattamente quello che voglio fare. Quindi ho seguito il consiglio di juuni per usare this script (httpsegmenter). Risultato: impossibile compilare nulla, 2 giorni di lavoro e alla fine sono riuscito a compilarlo (ffmpeg 8.1 w/httpsegmenter rev17). E no, questo non è un buon script, prende i file mp3, ma i file ts generati e il file indice non possono essere letti da un giocatore.
Poi l'autore del post krisbulman, è venuto con una soluzione, e persino dato una versione modificata di M3U8-segmenter dal suo stesso (git repo). Lo collaudo: non si compila, non fa niente. Quindi ho preso la versione originale da johnf https://github.com/johnf/m3u8-segmenter. Sono riuscito a compilare e miracolo funziona (non proprio). Ho usato questa riga di comando (ffmpeg 0.8.1):
ffmpeg -er 4 -i music.mp3 -f mpegts -acodec libmp3lame -ar 44100 -ab 128k -vn - | m3u8-segmenter -i - -d 10 -p outputdir/prefix -m outputdir/output.m3u8 -u http://test.com/
Questo script codificare il mio file mp3 (ci vogliono 4 secondi, troppo lungo), e passarlo al M3U8-segmenter di segmentare in 10 secondi File .TS.
Ho testato questo flusso con mediastreamvalidator di Apple sul mio mac e ho detto che era OK. Quindi l'ho riprodotto in quicktime, ma ci sono circa 0,2 secondi in bianco tra ogni file .TS !!
Quindi ecco la mia situazione, è un incubo, non riesco a ottenere un semplice flusso mp3 tramite il protocollo HLS. C'è una soluzione di LAVORO semplice per segmentare un mp3? Perché non posso segmentare direttamente il file mp3 in più file mp3 come fa il mediafilesegmenter di Apple?
tuo inglese è bene, ma il tuo post è lungo e incoerente. Potresti condensare e metterlo a fuoco sulla domanda chiave? –
La domanda principale è: esiste una soluzione semplice e funzionante per segmentare un file mp3 su Debian? – Ethan0026
Beh, questo spiega che l'accusa è orrenda. –