2013-02-25 13 views
8

Ovviamente c'è un modo per farlo perché così tante applicazioni lo stanno già facendo - NetCamViewer e iCamviewer per citarne solo uno.Come visualizzare RTSP da telecamera IP/CCTV su iOS

Ho cercato e cercato, ma non sto trovando nulla di valore che dia un suggerimento su come questo viene fatto. Sto raggiungendo fuori sperando che qualcuno mi dia un indizio.

Sto provando a connettermi a una videocamera di sicurezza video (Y-CAM), che supporta il protocollo RTSP, e visualizzare il video dall'applicazione iPhone/iPad. La fotocamera ha un indirizzo IP e posso visualizzare il video da un browser web e da Quicktime in esecuzione sul mio Mac. Il problema è che RSTP non è supportato su iOS, quindi anche il tentativo di connettersi con Safari su un iPad non funziona.

Ho letto che alcuni stanno cercando di utilizzare Live5555, ma non ho visto un articolo che descrive se è stato fatto con successo e come.

Un'alternativa è quella di acquisire il flusso RTSP su un server, convertirlo in un flusso HTTP Live e quindi connettersi al flusso HTTP Live da iOS. Sfortunatamente, questo non è stato così facile come sembra.

Preferirei andare direttamente alla telecamera come altre applicazioni che ho visto fare. il RTSP to Live è un fallback se devo.

Qualsiasi suggerimento è molto apprezzato. Grazie!

risposta

11

Questo è sbagliato :) o non è necessario (Un'alternativa è quella di catturare il RTSP in streaming su un server, convertirlo in un flusso HTTP Live e quindi connettersi al flusso HTTP Live da iOS. Sfortunatamente, non è stato così facile come sembra.)

Si consiglia di utilizzare la libreria ffmpeg, come questa libreria puoi connettere qualsiasi server di streaming (supportando rtsp, mms, tcp, udp, rtmp ...) e poi disegnare le immagini sullo schermo .. (per disegnare puoi usare anche opengles o uiimage)

Prima di tutto, utilizzare avformat_open_input di connettersi all'indirizzo IP quindi utilizzare avcodec_find_decoder & avcodec_open2 per trovare i codec e di aprire loro (li si dovrebbe chiamare sia per audio & video)

Poi, in un ciclo di lettura, mentre pacchetti dal server utilizzando il metodo av_read_frame Quando si ottiene il frame, se è audio, quindi inviato a AudioUnit o AudioQueue, se è video, quindi convertirlo da yuv in formato rgb utilizzando il metodo sws_scale e disegnare l'immagine sullo schermo .

Questo è tutto.

un'occhiata a questo involucro anche (http://www.videostreamsdk.com), è scritto sulla libreria ffmpeg e supporta iOS

0

È davvero necessario cercare traboccare lo stack prima di postare, questa domanda è stata posta molte volte. Si vivono 555 specie di opere e alcuni di noi hanno ottenuto di lavorare ..

Ci sono altri giocatori troppo, compreso il nostro http://www.streammore.tv/

+0

Ciao Michelle, come possiamo usare http: //www.streammore.tv/... c'è qualche SDK per questo ... – vulvaji

+0

sì c'è, le informazioni di contatto sono sul sito che hai citato, più i link a il nostro repository github open source. –

0

ci sono due generale la tecnologia per visualizzare il video RTSP su iOS Safari:

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

Per HLS si può considera il server Wowza. Per la riproduzione di Websocket in Safari iOS è possibile utilizzare WCS4 server.

L'idea principale per la riproduzione di websocket è il rendering HTML5 diretto alla pagina HTML Elemento Canvas e contesto audio. Nel caso della riproduzione MPEG, la decodifica video verrà eseguita sul lato Safari di iOS utilizzando il semplice JavaScript.

Un'altra opzione: installare un plug-in WebRTC con supporto getUserMedia e riprodurre questo flusso tramite WebRTC. In ogni caso, in questo caso sarà necessario un transcoder RTSP-WebRTC lato server.

Problemi correlati