2013-02-25 20 views
8

Jest oczywiście sposób, aby to zrobić, ponieważ tak wiele aplikacji już to robi - NetCamViewer i iCamviewer wymieniają tylko jeden.Jak wyświetlać RTSP z kamery IP/CCTV w iOS

Szukałem i przeszukano, ale nie znajduję nic wartościowego, co daje wskazówkę, jak to zrobić. Wyciągam rękę z nadzieją, że ktoś da mi wskazówkę.

Próbuję połączyć się z kamerą wideo (Y-CAM), która obsługuje protokół RTSP, i wyświetlić wideo z mojej aplikacji na iPhone'a/iPada. Kamera ma adres IP i mogę oglądać wideo z przeglądarki internetowej oraz z Quicktime uruchomionego na moim Macu. Problem polega na tym, że RSTP nie jest obsługiwany w systemie iOS, więc nawet próba połączenia przy użyciu Safari na iPadzie nie działa.

Przeczytałem, że niektórzy próbują korzystać z Live5555, ale nie widziałem artykułu, który opisałby, czy udało się to zrobić i jak.

Alternatywą jest przechwytywanie strumienia RTSP na serwerze, przekształcenie go w strumień HTTP Live, a następnie połączenie ze strumieniem HTTP Live z iOS. Niestety nie okazało się to tak łatwe, jak się wydaje.

Wolałbym iść bezpośrednio do aparatu, podobnie jak inne aplikacje, które widziałem. RTSP na żywo to powrót, jeśli muszę.

Wszelkie wskazówki są mile widziane. Dzięki!

Odpowiedz

11

To jest złe :) czy nie jest to konieczne (Alternatywą jest uchwycić RTSP stream na serwerze, przekonwertuj go na strumień HTTP Live, a następnie połącz się ze strumieniem HTTP Live z iOS. Niestety, nie jest to tak łatwe, jak się wydaje.)

Powinieneś użyć biblioteki ffmpeg, ponieważ ta biblioteka można podłączyć dowolny serwer streamingowy (obsługujący rtsp, mms, tcp, udp, rtmp ...), a następnie narysować zdjęcia na ekranie. (do rysowania można użyć opengles lub uiimage również działa)

Przede wszystkim, należy avformat_open_input połączyć się z adresem IP następnie użyć avcodec_find_decoder & avcodec_open2 znaleźć kodeki i aby je otworzyć (trzeba zadzwonić do nich zarówno dla dźwięku & wideo)

Następnie w pętli odczytu while pakiety z serwera za pomocą metody av_read_frame Gdy otrzymasz ramkę, jeśli jest to audio, to wyślij ją do AudioUnit lub AudioQueue, , jeśli jest to wideo, a następnie przekonwertuj ją z yuv na format rgb za pomocą metody sws_scale i narysuj obraz na ekranie .

To wszystko.

spojrzenie na tej owijki również (http://www.videostreamsdk.com), jest napisane na ffmpeg biblioteki i obsługuje iOS

0

Naprawdę trzeba przeszukać przepełnienie stosu przed wysłaniem, to pytanie było wielokrotnie zadawane. Tak żyć 555 rodzaju prac, a niektóre z nas dostał go do pracy ..

Są też inni gracze, w tym naszej http://www.streammore.tv/

+0

Witam Michelle, w jaki sposób możemy użyć http: //www.streammore.tv/... jest jakiś SDK dla tego ... – vulvaji

+0

tak jest, dane kontaktowe znajdują się na stronie jesteś cytowany, łącza do nasze repozytorium github open source. –

0

Istnieją dwa ogólne technologia wyświetlania RTSP video na iOS Safari:

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

Dla HLS można rozważ serwer Wowza. Do odtwarzania z poziomu Websocket w Safari na iOS można użyć WCS4 server.

Głównym pomysłem na odtwarzanie websocket jest bezpośrednie renderowanie HTML5 do strony HTML Element canvas i audio. W przypadku odtwarzania MPEG dekodowanie wideo zostanie wykonane na stronie Safari iOS przy użyciu zwykłego kodu JavaScript.

Inna opcja - zainstaluj wtyczkę WebRTC z obsługą getUserMedia i odtwarzaj ten strumień za pośrednictwem WebRTC. W każdym razie będziesz potrzebował transkodera RTSP-WebRTC po stronie serwera.

Powiązane problemy