Regina Schlauklug: RTSP als <video>-src

Hi,

ich habe eine IP-Kamera deren Feed über RTSP erreichbar ist. Meiner Recherche nach unterstützt kein Browser RTSP als source für das video-Element. Weshalb ich gerade nach einer Möglichkeit suche, das on-the-fly in ein Format zu konvertieren, mit dem die Browser was anfangen können.

Über den VLC-Player kann ich einwandfrei auf den Stream zugreifen.

Daher war auch mein erster Gedanke, den VLC zum streamen zu verwenden. Über die GUI kann man das auch alles auswählen, und er zeigt am Schluss sogar an, wie man das über die CL machen könnte:

vlc -I Dummy -vv rtsp://192.168.0.102:554/onvif1 :sout=#transcode{vcodec=h264,acodec=mpga,ab=128,channels=2,samplerate=44100}:http{mux=ffmpeg{mux=flv},dst=:8081/test} :sout-keep

Dabei stürzt mir aber nur der VLC ab, sonst passiert nichts. Ich habe damit dann noch ein bisschen rumgespielt, aber nicht geschafft, dass der VLC nicht abstürzt.

Mein nächster Gedanke war dann, FFmpeg zu verwenden.

Mit folgendem Befehl ging das dann auch:

ffmpeg -i "rtsp://192.168.0.102/onvif1" -hls_time 3 -hls_wrap 10 "\path\to\html-root\stream.m3u8"

Zumindest konnte ich dann im VLC wieder die Stream-URL eingeben (http://localhost/stream.m3u8).

Das video-Element kann aber scheinbar auch mit .m3u8 nicht viel anfangen. Zumindest wurde bei mir mit kein Video angezeigt.

Kann mich hierbei jemand unterstützen?

  1. Eventuell hier eine Hilfe

    HLS ist doch ein Streamingformat von Apple für iOS Devices mit UFT 8 encoded Zeichen oder?

  2. Meiner Recherche nach unterstützt kein Browser RTSP als source für das video-Element. Weshalb ich gerade nach einer Möglichkeit suche, das on-the-fly in ein Format zu konvertieren, mit dem die Browser was anfangen können.

    Das video-Element kann aber scheinbar auch mit .m3u8 nicht viel anfangen. Zumindest wurde bei mir mit kein Video angezeigt.

    Welches Format ein Browser unterstützen muss, ist nicht festgelegt. Am sichersten fährst du vermutlich mit WebM, falls es um mehr als deine private Seite geht; Youtube hängt (auch) bei Livestreams WebM-Container von wenigen Sekunden Länge aneinander in ein Video-Element.

    Davon ab: https://stackoverflow.com/a/39697546 https://stackoverflow.com/questions/2245040/ https://duckduckgo.com/?q=html+video+rtsp

    1. Wie in deinen beiden verlinkten Stackoverflow Artikeln: Ohne Plugins/Zusätzliche Javascript-Bibliotheken geht das nicht?