2009-07-07 31 views
19

En iPhone OS 3, Apple ha introducido HTTP Live Streaming que debería permitir la transmisión de video en vivo desde Internet. Actualmente estoy operando una cámara web, que se alimenta en mi servidor, y luego se convierte en una secuencia de flv por ffmpeg, y se vuelve a transmitir mediante ffserver. ¿Alguien sabe cómo configurar una transmisión de video que el iPhone puede usar usando ffmpeg y ffserver? Debería poder volver a codificar en casi cualquier formato sobre la marcha.HTTP Live Streaming, FFMPEG y FFSERVER, y iPhone OS 3

Respuesta

22

Tendrá que compilar una copia de ffmpeg con una versión> = e109a29d6ddb02b2dd58c6c385ebec27f2d23b58 (git) o ​​18793 (svn). Asegúrese de especificar también el indicador --enable-libx264 cuando esté compilando. Una vez que tenga que marcha y funcionando, se puede hacer más o menos lo siguiente:

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/ 

decir Llevar un archivo de flujo de entrada o en ffmpeg y la tubería de un vídeo H.264 con audio MP3 en segmentador de Apple. El segmentador escupe archivos de video segmentados y listas de reproducción M3U apuntando a los archivos segmentados. Servirías los archivos segmentados y las listas de reproducción a través de un servidor web como Apache.

Obviamente, usted querrá modificar sustancialmente las opciones de ffmpeg y segmenter para obtener los resultados que busca.

+0

¿Alguna solución de servidor de Windows? – postalservice14

+0

¿Alguien ha conseguido esto realmente trabajando con una transmisión en vivo desde una fuente de dv? He estado intentando y sigo recibiendo errores del segmentador ... –

+0

Descubrí que la versión FFmpeg SVN-r21627 funciona con el segmentador de código abierto http://code.google.com/p/httpsegmenter/ ¿Alguien tiene una idea sobre qué cambió desde esa versión? –

12

Para aquellos que estén interesados ​​he incluido un segmentador de código abierto con un script que le permitirá usar ffmpeg para hacerlo, vea mi proyecto segmented streaming on the iphone. Puede hacer segmentos de bits múltiples para las secuencias de entrada y transferirá los segmentos de flujo a un destino configurable a través de scp, ftp e incluso hasta aws s3.

0

¿Qué hay de malo con el uso de QuickTime para convertir películas al formato "iPhone"? Simplemente haz Archivo> Exportar> formato iPhone ... ¿Me falta algo?

Después de convertir a formato iPhone, que se trocean con mediafilesegmenter (que se encuentra en Apple Developer Connection, Http Live Streaming Tools):

mediafilesegmenter -t 10 -f folderName/ nameOfInputFile.m4v 

(Nota: la carpeta/nomCarpeta debe existir)

Entonces apuntar su iPhone a un sitio web con

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

No todo el mundo usa Mac, y las herramientas de Apple solo funcionan en Mac. – Haqa

+1

@yujean Tu enlace está muerto. – Brad

3

Este es un tema bastante viejo, pero la compatibilidad con HLS, un aparentemente nueva característica de FFmpeg podría ser útil a alguien.

Un ejemplo de uso sería la siguiente:

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

Si le gustaría hacer en vivo, este sería otro ejemplo:

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> 

El argumento -hls_list_size limita el número de archivos en la lista de reproducción y el argumento -hls-wrap limitan el número total de archivos y envolverán los nombres de archivo una vez que llegue a ese punto (por ejemplo: test0.ts, test1.ts ... test7.ts, test0.ts, test1.ts ... cuando la envoltura es 8).

Para obtener más información, vea the documentation. Tenga en cuenta que los ejemplos anteriores eliminan el audio con el , ya que personalmente nunca lo necesité.

+0

respuesta perfecta ... funciona bien –

+0

Se ve bien, pero parece que el formato de salida es incorrecto para HLS; Obtengo el "complemento faltante" cuando miro el archivo m3u8 con Safari. – Jonny

Cuestiones relacionadas