it-swarm.com.de

Streaming über RTSP oder RTP in HTML5

Ich erstelle eine Web-App, die einen RTSP/RTP-Stream von einem Server wiedergeben soll http://lscube.org/projects/feng.

Unterstützt das HTML5-Video-/Audio-Tag RTSP oder RTP? Wenn nicht, was wäre die einfachste Lösung? Vielleicht runter zu einem VLC-Plugin oder so ähnlich.

143
Elben Shira

Technisch gesehen "Ja"

(aber nicht wirklich ...)

HTML 5's <video> tag ist protokollunabhängig - das ist ihm egal. Sie platzieren das Protokoll als Teil der URL im Attribut src. Z.B.:

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

oder vielleicht

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

Das heißt, die Umsetzung der <video>-Tag ist browserspezifisch. Da HTML 5 noch in den Anfängen steckt, erwarte ich häufig wechselnden Support (oder mangelnden Support).

Aus der HTML5-Spezifikation des W3C ( Das Videoelement ):

Benutzerprogramme unterstützen möglicherweise alle Video- und Audiocodecs und Containerformate

88
Stu Thompson

Ich glaube, der Sinn der Frage wurde nicht wirklich beantwortet. Nein, Sie können derzeit kein Video-Tag zum Abspielen von RTSP-Streams verwenden. Die andere Antwort in Bezug auf den Link zu Chromium Guys "Nie" ist etwas irreführend, da der verknüpfte Thread/die verknüpfte Antwort nicht direkt auf Chrome verweist, der RTSP über das Video-Tag spielt. Lesen Sie den gesamten verlinkten Thread, insbesondere die Kommentare ganz unten und Links zu anderen Threads.

Die eigentliche Antwort lautet: Nein, Sie können nicht einfach ein Video-Tag auf eine HTML 5-Seite setzen und RTSP abspielen. Sie müssen eine Art Javascript-Bibliothek verwenden (es sei denn, Sie möchten sich mit Flash- und Silverlight-Playern beschäftigen), um Streaming-Videos abzuspielen. {IMHO} In Anbetracht der fortschreitenden Diskussion und Implementierung von HTML 5-Videos sind die verschiedenen Anbieter proprietärer Videostandards nicht daran interessiert, diesen Schritt voranzutreiben. Berücksichtigen Sie daher nicht die versprochene Benutzerfreundlichkeit des Video-Tags, es sei denn, die Hersteller des Browsers Nimm es auf dich, das Problem irgendwie zu lösen ... wieder, wahrscheinlich nicht. {/ IMHO}

52
GolfARama

Dies ist eine alte Frage, aber ich musste es kürzlich selbst tun und habe etwas erreicht, das funktioniert (neben der Antwort, die mir einige Zeit erspart): Verwenden Sie grundsätzlich ffmpeg, um den Container auf HLS zu ändern, den Großteil des IPCams-Streams h264 und einige Basistyp von PCM, also benutze so etwas:

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

Dann benutze video.js mit HLS-Plugin Dies wird den Live-Stream schön abspielen. Es gibt auch ein jsfiddle-Beispiel unter dem zweiten Link.

Hinweis: Dies ist zwar keine native Unterstützung, es sind jedoch keine zusätzlichen Funktionen im Benutzer-Frontend erforderlich.

25
Pawel K

Chrome wird niemals RTSP-Streaming unterstützen.

Zumindest in den Worten eines Chromium-Entwicklers hier :

wir werden dafür niemals Unterstützung hinzufügen

19
janesconference

In HTML5 gibt es drei Streaming-Protokolle/-Technologien:

Live Streaming, geringe Latenz - WebRTC - Websocket

VOD- und Live-Streaming, hohe Latenz - HLS

1. WebRTC

Tatsächlich ist WebRTC SRTP (sicheres RTP Protokoll). Somit können wir sagen, dass Video-Tags RTP (SRTP) indirekt über WebRTC unterstützen.

Um RTP auf Ihrem Chrome, Firefox oder einem anderen HTML5-Browser streamen zu können, benötigen Sie einen WebRTC-Server, der den SRTP-Stream an den Browser sendet.

2. Websocket

Es ist TCP, aber mit einer geringeren Latenz als HLS. Auch hier benötigen Sie einen Websocket-Server.

. HLS

Das beliebteste Streaming-Protokoll mit hoher Latenz für VOD (aufgezeichnetes Video).

14
ankitr

Mit VLC kann ich einen Live-RTSP-Stream (mpeg4) in einen HTTP-Stream im OGG-Format (Vorbis/Theora) umcodieren. Die Qualität ist schlecht, aber das Video funktioniert in Chrome 9). Ich habe es auch mit einem Trancoding in WEBM (VP8) getestet, aber es scheint nicht zu funktionieren (VLC hat die Option, aber ich weiß nicht). Ich weiß nicht, ob es wirklich implementiert ist.)

Wer als Erster einen Doc dazu hat, sollte uns benachrichtigen;)

8
molokoloco

Chrome unterstützt kein RTSP-Streaming. Ein wichtiges Projekt, um es WebRTC zu überprüfen.

"WebRTC ist ein kostenloses, offenes Projekt, das Browsern und mobilen Anwendungen Echtzeitkommunikationsfunktionen (RTC) über einfache APIs zur Verfügung stellt."

Unterstützte Browser:

Chrome, Firefox und Opera.

Unterstützte mobile Plattformen:

Android und iOS

http://www.webrtc.org/

1
vrbsm

Meine Beobachtungen in Bezug auf die HTML 5-Video-Tags und RTSP (RTP) -Streams sind, dass es nur mit Konqueror funktioniert (KDE 4.4.1, Phonon-Backend auf GStreamer eingestellt). Ich habe nur Video (kein Audio) mit einem H.264/AAC RTSP (RTP) -Stream.

Die Streams von http://media.esof2010.org/ funktionierten nicht mit konqueror (KDE 4.4.1, Phonon-Backend auf GStreamer eingestellt).

1
Renegah