desarrollo-web-br-bd.com

Streaming a través de RTSP o RTP en HTML5

Estoy creando 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 caer a un plugin VLC o algo así.

141
Elben Shira

Técnicamente 'Sí'

(pero no realmente ...)

La etiqueta <video> de HTML 5 es agnóstica al protocolo, no le importa. Coloque el protocolo en el atributo src como parte de la URL. P.ej.:

<video src="rtp://myserver.com/path/to/stream">
    Your browser does not support the VIDEO tag and/or RTP streams.
</video>

o tal vez

<video src="http://myserver.com:1935/path/to/stream/myPlaylist.m3u8">
    Your browser does not support the VIDEO tag and/or RTP streams.
</video>

Dicho esto, la implementación de la etiqueta <video> es específica del navegador. Dado que es muy pronto 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ódecs de video y audio y formatos de contenedor

88
Stu Thompson

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

La respuesta real es la siguiente: No, no puede simplemente colocar una etiqueta de video en una página html 5 y reproducir rtsp. Necesitas usar una biblioteca de Javascript de algún tipo (a menos que quieras jugar con los reproductores flash y silverlight) para reproducir videos en streaming. {IMHO} A la velocidad de la discusión y la implementación del video html 5, los distintos proveedores de estándares de video propietarios no están interesados ​​en ayudar a avanzar, así que no cuente con la facilidad de uso prometida de la etiqueta de video a menos que los fabricantes del navegador encargarse de resolver el problema ... de nuevo, no es probable. {/ IMHO}

50
GolfARama

Esta es una versión antigua, pero tuve que hacerlo recientemente y logré algo trabajando así (además de que la 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 transmisiones de IPCams h264 y algunas tipo básico de PCM, así que usa 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

Luego use video.js with HLS plugin Esto reproducirá la transmisión en vivo muy bien También hay un ejemplo de jsfiddle en el segundo enlace).

Nota: aunque esto no es un soporte nativo, no requiere nada extra en la interfaz del usuario.

23
Pawel K

Chrome nunca implementará soporte de transmisión RTSP.

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

nunca vamos a agregar soporte para esto

19
janesconference

Hay tres protocolos/tecnología de transmisión 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 seguro [RTP). Por lo tanto, podemos decir que la etiqueta de video admite RTP (SRTP) indirectamente a través de WebRTC.

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

2. Websocket

Se basa en TCP, pero con menor latencia 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).

14
ankitr

Con VLC puedo transcodificar un flujo RTSP en vivo (mpeg4) a un flujo HTTP en un formato OGG (Vorbis/Theora). La calidad es pobre, pero el video funciona en Chrome 9. También he probado con una codificación en WEBM (VP8) pero parece que no funciona (VLC tiene la opción, pero no sé si realmente está implementado por ahora). .)

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

8
molokoloco

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

"WebRTC es un proyecto abierto y gratuito que proporciona 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 y IOS

http://www.webrtc.org/

1
vrbsm

Mis observaciones con respecto a la etiqueta de video HTML 5 y las secuencias rtsp (rtp) son que solo funciona con konqueror (KDE 4.4.1, Phonon-backend configurado a 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 configurado para GStreamer).

1
Renegah