2013-02-25 5 views
8
zeigt

Es gibt offensichtlich einen Weg, dies zu tun, weil so viele Anwendungen es bereits tun - NetCamViewer und iCamviewer, um nur einen zu nennen.Wie man RTSP von IP-Kamera/CCTV in iOS

Ich habe gesucht und gesucht, aber ich finde nichts von Wert, die einen Hinweis gibt, wie dies getan wird. Ich hoffe, dass jemand mir 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.

Eine Alternative besteht darin, den RTSP-Stream auf einem Server zu erfassen, ihn in einen HTTP-Livestream umzuwandeln und dann eine Verbindung zum HTTP-Livestream von iOS herzustellen. Leider ist das nicht so einfach wie es sich anhört.

Ich würde lieber direkt in die Kamera gehen, wie andere Anwendungen, die ich gesehen habe. Das RTSP to Live ist ein Rückfall wenn ich muss.

Alle Hinweise werden sehr geschätzt. Vielen Dank!

Antwort

11

Das ist falsch :) oder nicht erforderlich (Eine Alternative ist es, die RTSP zu erfassen streamen Sie auf einem Server, konvertieren Sie es in einen HTTP-Livestream und stellen Sie dann eine Verbindung zum HTTP-Livestream von iOS her. Leider hat sich dies nicht als einfach erwiesen.)

Sie sollten ffmpeg library als diese Bibliothek verwenden kann jeden Streaming-Server verbinden (unterstützt rtsp, mms, tcp, udp, rtmp ...) und dann Bilder auf den Bildschirm zeichnen .. (zum Zeichnen können Sie OpenGLES verwenden oder uiimage funktioniert auch)

Zunächst einmal verwenden avformat_open_input auf Ihre IP-Adresse verbinden dann avcodec_find_decoder & avcodec_open2 verwenden Codecs zu finden und sie zu öffnen (Sie sollten sie für Audio & Videoanruf)

Dann in einer while-Schleife Lese Pakete vom Server mit av_read_frame Methode Wenn Sie Frame erhalten, wenn es Audio ist dann an AudioUnit oder AudioQueue, gesendet, wenn es Video ist, dann wandeln Sie es von Yuv in RGB-Format mit der Methode sws_scale und zeichnen Sie das Bild auf dem Bildschirm .

Das ist alles.

Blick auf diese Wrapper auch (http://www.videostreamsdk.com), ist es auf ffmpeg Bibliothek geschrieben und unterstützt iOS

0

Sie müssen wirklich Stapelüberlauf vor dem Posten suchen, diese Frage wurde oft gestellt. leben Ja 555 Art der Arbeiten und einige von uns haben es bekommen zu arbeiten ..

Es gibt auch andere Spieler, darunter auch unsere http://www.streammore.tv/

+0

Hallo Michelle, wie können wir http: //www.streammore.tv/... verwenden, gibt es ein SDK für diese ... – vulvaji

+0

ja es gibt Kontaktinformationen auf der Website, die Sie zitiert haben, plus die Links zu unser Open-Source-Github-Repository. –

0

Es gibt zwei allgemeine Technologie RTSP Video auf iOS Safari anzuzeigen:

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

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

Grundidee für die Websocket-Wiedergabe ist das direkte HTML5-Rendering auf 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. Auf jeden Fall benötigen Sie in diesem Fall einen serverseitigen RTSP-WebRTC-Transcoder.