Transmisión por RTSP o RTP en HTML5

Estoy construyendo una aplicación web que debería reproducir una secuencia RTSP / RTP desde un servidor http://lscube.org/projects/feng .

¿La etiqueta de video / audio HTML5 es compatible con rtsp o rtp? Si no, ¿cuál sería la solución más fácil? Tal vez bajar a un plugin VLC o algo así.

Técnicamente ‘Sí’

(pero no realmente…)

La etiqueta HTML 5 es independiente del protocolo; no le importa. Coloca el protocolo en el atributo src como parte de la URL. P.ej:

  

o tal vez

  

Dicho esto, la implementación de la etiqueta es específica del navegador. Como es temprano para HTML 5, espero que cambie frecuentemente el soporte (o la falta de soporte).

De la especificación HTML5 del W3C ( El elemento de video ):

Los agentes de usuario pueden admitir cualquier códec de audio y video y formatos de contenedor

El espíritu de la pregunta, creo, no fue realmente respondido. No, no puedes usar una etiqueta de video para reproducir transmisiones rtsp a partir de ahora. La otra respuesta con respecto al enlace al “nunca” del chico de Chromium es un poco engañosa ya que el hilo / la respuesta vinculados no se refiere directamente a Chrome jugando rtsp a través de la etiqueta de video. Lea todo el hilo enlazado, especialmente los comentarios en la parte inferior y enlaces a otros hilos.

La verdadera respuesta es esta: no, no puedes poner una etiqueta de video en una página html 5 y jugar rtsp. Necesita reproducir una biblioteca de Javascript de algún tipo (a menos que quiera jugar con flash y jugadores de Silverlight) para reproducir video en tiempo real. {IMHO} A la velocidad de la discusión e implementación del video html 5, los distintos proveedores de estándares de video patentados no están interesados ​​en ayudar a que esto avance, así que no cuentan la facilidad de uso prometida de la etiqueta de video a menos que los navegadores asumir sobre sí mismos para resolver de alguna manera el problema … de nuevo, no es probable. {/ IMHO}

Esta es una pregunta antigua, pero tuve que hacerlo yo mismo recientemente y logré algo que funcionara (además de una respuesta como la mía me ahorraría algo de tiempo): básicamente use ffmpeg para cambiar el contenedor a HLS, la mayoría de las IPCams transmiten h264 y algunas tipo básico de PCM, así que use algo como eso:

 ffmpeg -v info -i rtsp://ip:port/h264.sdp -c:v copy -c:a copy -bufsize 1835k -pix_fmt yuv420p -flags -global_header -hls_time 10 -hls_list_size 6 -hls_wrap 10 -start_number 1 /var/www/html/test.m3u8 

A continuación, use video.js con el complemento HLS. Esto reproducirá la transmisión en vivo muy bien. También hay un ejemplo de jsfiddle en el segundo enlace.

Nota: aunque no es una compatibilidad nativa, no requiere nada adicional en la interfaz de usuario.

Chrome nunca implementará la transmisión RTSP de soporte.

Al menos, en palabras de un desarrollador de Chromium aquí :

nunca vamos a agregar soporte para esto

Hay tres protocolos de transmisión / tecnología en HTML5:

Transmisión en vivo, baja latencia – WebRTC – Websocket

VOD y transmisión en vivo, alta latencia – HLS

1. WebRTC

De hecho, WebRTC es SRTP (protocolo RTP seguro). Por lo tanto, podemos decir que la etiqueta de video admite RTP (SRTP) indirectamente a través de WebRTC.

Por lo tanto, para obtener transmisión RTP en su Chrome, Firefox u otro navegador HTML5, necesita un servidor WebRTC que entregue la secuencia SRTP al navegador.

2. Websocket

Está basado en TCP, pero con una latencia menor que HLS. De nuevo, necesitas un servidor Websocket.

3. HLS

El protocolo de transmisión de alta latencia más popular para VOD (video pregrabado).

Con VLC puedo transcodificar una transmisión RTSP en vivo (mpeg4) a una transmisión HTTP en formato OGG (Vorbis / Theora). La calidad es mala pero el video funciona en Chrome 9. También probé con una transencoding en WEBM (VP8) pero parece que no funciona (VLC tiene la opción, pero no sé si realmente se implementó por el momento. .)

El primero en tener un documento sobre esto debe notificarnos;)

Mis observaciones con respecto a la secuencia de tags HTML 5 y las secuencias rtsp (rtp) son que solo funciona con konqueror (KDE 4.4.1, Phonon-backend establecido en GStreamer). Solo obtuve video (sin audio) con una transmisión H.264 / AAC RTSP (RTP).

Las transmisiones de http://media.esof2010.org/ no funcionaron con konqueror (KDE 4.4.1, Phonon-backend establecido en GStreamer).

Chrome no implementa la transmisión RTSP de soporte. Un proyecto importante para comprobarlo WebRTC.

“WebRTC es un proyecto abierto y gratuito que ofrece a los navegadores y aplicaciones móviles capacidades de comunicación en tiempo real (RTC) a través de API simples”

Navegadores compatibles:

Chrome, Firefox y Opera.

Plataformas móviles compatibles:

Android e IOS

http://www.webrtc.org/