2011-12-12 8 views
11

Me di cuenta de que Apple necesitaba HTTP Live Streaming para ver videos en aplicaciones de iPhone. No era consciente de esto antes ... Ahora trato de entender qué implica esto para poder decidir si quiero hacer el trabajo y hacer que los videos estén disponibles en 3G o limitar la reproducción de video a los usuarios que están conectados a wi-fi. .¿Cómo implementar HTTP Live Streaming Server en Unix?

He leído el overview proporcionado por Apple, y ahora entiendo que mi servidor necesita segmentar e indexar mis archivos multimedia. También entiendo que no tengo que alojar el contenido para poder transmitirlo (puedo señalar un video alojado en otro lugar, ¿no?).

Lo que no está claro para mí en este momento es lo que para poner en práctica en mi servidor (Ubuntu Hardy) para hacer el segmentación y la indexación real sobre la marcha (una vez más, que no alojan los vídeos que quiero servir).

Encontré un link explicando cómo instalar FFmpeg y X264, pero no sé si esta es la mejor solución (ya que tengo un servidor Ubuntu, no puedo usar las herramientas de Apple Live Streaming, ¿es correcto? ?). Además, no entiendo en qué punto mi servidor sabe que un video debe convertirse e inicia el trabajo ...

Cualquier comentario que pueda ayudarme a entender exactamente qué hacer en el servidor para poder transmitir videos en mi aplicación de iPhone en 3G serían muy apreciados! (Ah, y hace alguna diferencia, mi aplicación de back-end está en rieles)

+0

sugiero FMLE y red5 (más de rtmp) voy a responder más tarde si nadie lo hizo – malletjo

+0

Gracias por su respuesta. Solo quería aclarar una cosa: me interesan los videos que se grabaron, no los shows en vivo. – alex

+0

Tienes que alojar el contenido para poder transmitirlo desde tu servidor. ¿Cuál ves como la diferencia entre el alojamiento y el servicio? La respuesta aceptada no tiene nada que ver con su pregunta, por lo que no sé por qué la aceptó. – vipw

Respuesta

8

Si desea transmitir contenido en vivo de cámaras web en: FMLE (medios flash viven codificador)

Si desea transmitir contenido estático (película): ffmpeg & xuggle

red5:

Usted servidor de medios podría ser red5 (de código abierto y libre) o FMS o wowza. Pero usé solo red5, no sé sobre los demás. Puede encontrar red5 here.

Su servidor puede estar en cualquier lugar, pero deberá abrir algún puerto (1935 para rtmp al menos), 5080 para "panel de administración", puede ver 9999 en la lista. (Verifique el documento) Red5 es un servidor de medios en Java, por lo que necesitará java jdk> = 1.6.

Red5 1.0 RC se puede encontrar here. Puede encontrar una versión para windows, osx o linux. Usé la versión tarball. Extraelo y ejecuta "red5.sh". Debería poder acceder al administrador al http://localhost:5080/ y también debería ver un video en pantalla. Si no, algo está mal y no puedes avanzar más hasta que esto funcione.

Secuencia con ffmpeg:

Usted puede encontrar xuggle here y se puede encontrar más información sobre este here

ffmpeg -i your_file.flv -re -acodec copy -vcodec copy -f flv rtmp://localhost_or_yourred5serverip/live/livestream 

Tenga en cuenta que si desea transmitir en la web sólo flv y mp4 puede estar jugando en flash player (creo). Una vez que esté transmitiendo, debería poder verlo en el "panel de administración" here. Conéctese a su servidor (rtmp: // localhost/live /) y vaya a la pestaña vista y ponga "livestream". Puedes usar mplayer rtmp: // localhost/live/livestream para ver tu video también.

corriente en un reproductor flash:

Puede utilizar flowplayer (con el plugin RTMP) o jwplayer.

+0

y aquí hay una pregunta de seguimiento: http://stackoverflow.com/questions/8497541/installing-faad-library-for-ffmpeg-through-homebrew-on-mac-os-x-lion en caso de que pueda ayudar ¡de nuevo! Gracias. – alex

+0

Esto podría ayudarlo: http://jungels.net/articles/ffmpeg-howto.html – malletjo

0

La manera más fácil de transmitir HLS es usar algo como Wowza o FMIS (ninguno de los cuales es barato). Wowza tomará entrada (ya sea transmisión en vivo o contenido VOD almacenado y hacer la segmentación sobre la marcha.

+0

Wowza tiene prueba gratuita, vale la pena intentar – onmyway133

12

Existen varias tecnologías competidoras, pero hoy si desea que los archivos sean compatibles para la transmisión en dispositivos Apple (iPhones, iPads, etc) entonces HLS es el camino a seguir. Por cierto, también es compatible con la mayoría de los navegadores y Android, así que no es un mal lugar para comenzar. Sin embargo, no es adecuado para transmitir contenido en vivo a pesar del nombre

A menos que quieras vivir video, realmente NO necesitas red5 o wowza o fms o algo así. HLS es básicamente un conjunto de segmentos de video cortos (por ejemplo, 5 minutos cada uno) codificados en diferentes velocidades de bits y una lista de reproducción m3u que le das a tu flash o reproductor basado en HTML5 en el navegador. Depende de usted decidir el segme nt longitud o cómo la codifica.

Este es el mejor artículo que he visto acerca de cómo elegir resoluciones, tasas de bits, tamaños de segmentos, etc: http://www.streamingmedia.com/Articles/Editorial/Featured-Articles/Adaptive-Streaming-in-the-Field-73017.aspx

Desde allí se acaba, por ejemplo, crear una estructura de directorios, por ejemplo,

 
/data/video/video_id/original.mp4 
/data/video/video_id/quality1/chunk1.mp4 
/data/video/video_id/quality1/chunk2.mp4 
/data/video/video_id/quality2/chunk1.mp4 
etc.. 

Luego hay que generar una lista de reproducción M3U para todos los trozos y cualidades y es hasta el jugador en sí para implementar la conmutación entre las cualidades y la reproducción del archivo siguiente (que la mayoría de los jugadores modernos ya tienen).

También recomiendo visitar: https://developer.apple.com/resources/http-streaming/ - Apple proporciona un montón de herramientas gratuitas para preparar los videos y listas de reproducción para HTTP Live Streaming.

+0

Gracias Roman, un excelente enlace (Adaptive Streaming in the Field - por Jan Ozer) http: //www.streamingmedia.com/Articles/Editorial/Featured-Articles/Adaptive-Streaming-in-the-Field-73017.aspx –

Cuestiones relacionadas