2009-07-07 25 views
19

In iPhone OS 3, Apple ha introdotto HTTP Live Streaming che dovrebbe consentire lo streaming live di video da Internet. Attualmente sto operando una webcam, che si alimenta nel mio server, e viene quindi convertita in un flusso flv da ffmpeg, e in streaming indietro usando ffserver. Qualcuno sa come configurare un flusso video che l'iPhone può usare usando ffmpeg e ffserver? Dovrei essere in grado di ricodificare in qualsiasi formato al volo.HTTP Live Streaming, FFMPEG e FFSERVER e iPhone OS 3

risposta

22

Avrai bisogno di costruire una copia di ffmpeg con una versione> = e109a29d6ddb02b2dd58c6c385ebec27f2d23b58 (Git) o ​​18793 (SVN). Assicurati di specificare anche il flag --enable-libx264 quando stai costruendo. Una volta che hai installato e funzionante che, si può fare più o meno il seguente:

ffmpeg -i <input video> -acodec libmp3lame -ac 1 -vcodec libx264 -s 320x240 \ 
     -level 30 -f mpegts - | \ 
segmenter - 10 test test.m3u8 http://example.com/path/to/your/files/ 

cioè Portare un file di flusso in entrata o in ffmpeg e tubo un video H.264 con audio MP3 in segmenter di Apple. Il segmentatore sputa file video segmentati e playlist M3U che puntano ai file segmentati. Serviresti i file segmentati e le playlist tramite un server web come Apache.

Ovviamente ti consigliamo di modificare sostanzialmente le opzioni ffmpeg e segmenter per ottenere i risultati che desideri.

+0

Qualsiasi soluzione per server Windows? – postalservice14

+0

Chiunque ha ancora funzionato con un live streaming da una fonte dv? Ho cercato e continuo a ricevere errori dal segmenter ... –

+0

Ho trovato che la versione FFmpeg SVN-r21627 funziona con il segmentatore open source http://code.google.com/p/httpsegmenter/ Qualcuno ha un'idea di cosa è cambiato da quella versione? –

12

Per chi è interessato, ho raggruppato un segmenter open source con uno script che consente di utilizzare ffmpeg per fare ciò, vedere il mio progetto segmented streaming on the iphone. Può eseguire segmenti multi-bitrate per i flussi di input e trasferire i segmenti del flusso in una destinazione configurabile tramite scp, ftp e anche fino a aws s3.

0

Cosa c'è di sbagliato nell'usare QuickTime per convertire i film in formato "iPhone"? Devi solo fare File> Esporta> formato iPhone ... Mi manca qualcosa?

Dopo la conversione in formato iPhone, ho tritarlo con mediafilesegmenter (che si trova a Apple Developer Connection, Http Live Streaming Tools):

mediafilesegmenter -t 10 -f folderName/ nameOfInputFile.m4v 

(Nota: il nomeCartella/cartella deve esistere)

Poi puntare il vostro iPhone a un sito web con

<video src='folderName/prog_index.m3u8' height=45 width=70 
     controls='on'>Your browser does not support the video tag</video> 
+3

Non tutti usano Mac e gli strumenti Apple funzionano solo su Mac. – Haqa

+1

@yujean Il tuo link è morto. – Brad

3

Questo è piuttosto un argomento vecchio, ma il supporto HLS, un apparentemente nuova caratteristica di FFmpeg potrebbe essere utile a qualcuno.

Un esempio di utilizzo potrebbe essere il seguente:

ffmpeg -i <input_file> -c:v libx264 -preset slow -map 0 -an -flags -global_header -f hls -hls_time <segment_length> <m3u8_file> 

Se volete fare lo streaming dal vivo, questo sarebbe un altro esempio:

ffmpeg -i <input_stream> -c:v libx264 -preset ultrafast -map 0 -an -flags -global_header -f hls -hls_time <segment_length> -hls_list_size <playlist_entries> -hls_wrap <wrap> <m3u8_file> 

L'argomento -hls_list_size limita il numero di file in la playlist e l'argomento -hls-wrap limita il numero di file totali e avvolgerà i nomi dei file una volta arrivati ​​a quel punto (es: test0.ts, test1.ts ... test7.ts, test0.ts, test1.ts ... quando l'involucro è 8).

Per ulteriori informazioni, vedere the documentation. Si prega di notare che gli esempi sopra riportati escludono l'audio con il flag , poiché personalmente non ne avevo mai avuto bisogno.

+0

risposta perfetta ... funziona bene –

+0

Sembra bello, ma sembra che il formato di output non sia corretto per HLS; Ottengo "plugin mancante" quando guardo il file m3u8 con Safari? – Jonny

Problemi correlati