So zeigen Sie RTSP über die IP-Kamera / CCTV in iOS an

8

Es gibt offensichtlich einen Weg, dies zu tun, weil so viele Anwendungen es bereits tun - NetCamViewer und iCamviewer, um nur einen zu nennen.

Ich habe gesucht und gesucht, aber ich finde nichts von Wert, das einen Hinweis darauf gibt, wie das gemacht wird. Ich hoffe, dass mir jemand einen Hinweis geben wird.

Ich versuche, eine Verbindung zu einer Video-Überwachungskamera (Y-CAM) herzustellen, die das RTSP-Protokoll unterstützt, und das Video von meiner iPhone / iPad-Anwendung anzuzeigen. Die Kamera hat eine IP-Adresse und ich kann das Video von einem Webbrowser und von Quicktime auf meinem Mac ansehen. Das Problem ist, dass RSTP unter iOS nicht unterstützt wird. Daher funktioniert auch die Verbindung mit Safari auf einem iPad nicht.

Ich habe gelesen, dass einige versuchen, Live5555 zu verwenden, aber ich habe keinen Artikel gesehen, der beschreibt, ob es erfolgreich gemacht wurde und wie.

Alternativ können Sie den RTSP-Stream auf einem Server erfassen, in einen HTTP-Livestream konvertieren und dann eine Verbindung zum HTTP-Livestream von iOS herstellen. Leider ist das nicht so einfach wie es sich anhört.

Ich würde es vorziehen, direkt zur Kamera zu gehen, wie andere Anwendungen, die ich gesehen habe. der RTSP to Live ist ein Rückfall wenn ich muss.

Alle Hinweise werden sehr geschätzt. Danke!

    
vulvaji 25.02.2013, 09:25
quelle

4 Antworten

11

Das ist falsch :) oder nicht notwendig (Eine Alternative besteht darin, den RTSP-Stream auf einem Server zu erfassen, in einen HTTP-Livestream umzuwandeln und dann eine Verbindung zum HTTP-Livestream von iOS herzustellen. Dies hat sich leider nicht als erwiesen so einfach es klingt.)

Sie sollten ffmpeg library verwenden, da diese Bibliothek einen beliebigen Streaming Server verbinden kann (unterstützt rtsp, mms, tcp, udp, rtmp ...) und dann Bilder auf den Bildschirm zeichnet. (Zum Zeichnen können Sie opengles oder uiimage verwenden funktioniert auch)

Verwenden Sie zunächst avformat_open_input, um eine Verbindung zu Ihrer IP-Adresse herzustellen dann benutze avcodec_find_decoder & amp; avcodec_open2, um Codecs zu finden und sie zu öffnen (Sie sollten sie für Audio und Video aufrufen)

Dann lesen Sie in einer while-Schleife Pakete vom Server mit der Methode av_read_frame Wenn Sie einen Frame erhalten, wird Audio an AudioUnit oder AudioQueue gesendet. Wenn es sich um ein Video handelt, wandeln Sie es mithilfe der Methode sws_scale vom yuv- in das rgb-Format um und zeichnen Sie das Bild auf den Bildschirm.

Das ist alles.

Sehen Sie sich auch diesen Wrapper an ( Ссылка ), er ist auf der Bibliothek ffmpeg geschrieben und unterstützt iOS

    
Tarum 28.02.2013, 22:29
quelle
0

Sie müssen wirklich den Stack-Überlauf vor dem Posten suchen, diese Frage wurde schon oft gestellt. Ja lebe 555 Art von Arbeiten und einige von uns haben es zur Arbeit bekommen.

Es gibt auch andere Spieler, einschließlich unserer Ссылка

    
Michelle Cannon 26.02.2013 16:02
quelle
0

Sie können einen Open Source FFMepg Decoder für iOS (und einige Beispiele) auf GitHub finden: Ссылка

Beispielverwendung dieser Bibliothek: Ссылка

    
Spawnrider 06.05.2013 17:44
quelle
0

Es gibt zwei allgemeine Technologien, um RTSP-Video in iOS Safari anzuzeigen:

  • RTSP / HLS (H.264 + AAC)
  • RTSP / Websocket (H.264 + AAC == & gt; MPEG + G.711 oder H.264 +?)

Für HLS können Sie den Wowza-Server in Betracht ziehen. Für die Websocket-Wiedergabe in iOS Safari können Sie WCS4 Server .

Die Hauptidee für die Websocket-Wiedergabe ist das direkte HTML5-Rendering auf die HTML-Seite Canvas-Element und Audio-Kontext. Im Falle der MPEG-Wiedergabe wird die Videodekodierung auf der iOS-Safari-Seite mit einfachem JavaScript durchgeführt.

Eine weitere Option - Installieren Sie ein WebRTC-Plugin mit getUserMedia-Unterstützung und spielen Sie diesen Stream über WebRTC. In diesem Fall benötigen Sie einen serverseitigen RTSP-WebRTC-Transcoder.

    
ankitr 10.09.2015 16:48
quelle