Pregunta

En iPhone OS 3, Apple ha introducido Transmisión en vivo HTTP que debería permitir la transmisión en vivo de vídeo desde Internet.Actualmente estoy operando una cámara web, que se alimenta a mi servidor y luego ffmpeg la convierte en una transmisión flv y la transmite nuevamente usando ffserver.¿Alguien sabe cómo configurar una transmisión de video que el iPhone pueda usar usando ffmpeg y ffserver?Debería poder volver a codificar en casi cualquier formato sobre la marcha.

¿Fue útil?

Solución

Usted necesita para construir una copia de ffmpeg con una versión> = e109a29d6ddb02b2dd58c6c385ebec27f2d23b58 (GIT) o 18793 (SVN). Asegúrese de que también se especifica la bandera --enable-libx264 cuando está la construcción. 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/

es 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. La segmentación de escupe archivos de vídeo segmentados y listas de reproducción M3U que señalan a los archivos segmentados. Se podría servir a los archivos segmentados y listas de reproducción a través de un servidor web como Apache.

Obviamente usted querrá ajustar las opciones de FFmpeg y segmentador sustancialmente para obtener los resultados que está buscando.

Otros consejos

Para aquellos que estén interesados, he incluido un segmentador de código abierto con un script que les permitirá usar ffmpeg para hacer esto, consulte mi streaming segmentado en el iphone proyecto.Puede crear segmentos de múltiples velocidades de bits para los flujos de entrada y transferirá los segmentos de flujo a un destino configurable a través de scp, ftp e incluso hasta aws s3.

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 como sigue:

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 de la lista de reproducción, y el argumento -hls-wrap limita el número total de archivos y nombres de archivo se ajustará una vez que se llega a ese punto (ex: test0.ts, test1.ts ... test7. ts, test0.ts, test1.ts ... cuando envoltura es 8).

Para obtener más información, ver la documentación . Tenga en cuenta que los ejemplos anteriores Franja de formularios de audio con la bandera -an, como yo personalmente nunca lo necesitaba.

¿Qué hay de malo con el uso de QuickTime para convertir películas al formato de "iPhone"? Sólo haz Archivo> Exportar> formato de iPhone ... ¿Me estoy perdiendo algo?

Después de la conversión a formato iPhone, que se trocean con mediafilesegmenter (que se encuentra en Apple Developer Connection, hTTP Live Streaming Herramientas ):

mediafilesegmenter -t 10 -f folderName/ nameOfInputFile.m4v

(Nota: la carpeta / nomCarpeta debe existir)

A continuación, 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>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top