Thursday 16 November 2017

Live555 Proxy Server Binario Options


Sto usando LIVE555 streaming media per un'applicazione che registra e flussi di re-stream RTSP proveniente dalla telecamera IP. Per questo, sto usando openRTSP per server proxy registrazione e LIVE555 per la ri-streaming del flusso della macchina fotografica. Per alcune delle telecamere siamo di fronte ad un problema di strano in cui nella registrazione della videocamera avviene con successo, tuttavia il server LIVE555 proxy è in grado di generare un nuovo flusso per lo stesso flusso della macchina fotografica (non vi è alcuna indicazione di guasto in discarica output dettagliato, tuttavia l'URL RTSP generato dal server proxy non può essere decodificato da un client RTSP). Dal momento che non ho alcuna idea circa i dettagli del server LIVE555 del proxy, sono stato in grado di entrare in questo problema. Ho provato in streaming lo stesso flusso fotocamera utilizzando VLC e che funziona bene. Che cosa potrebbe essere, eventualmente, di sbagliato in questo. Sono qui allegando il output dettagliato per riferimento. E :. liveproxyServergtlive555ProxyServer. exe - V rtsp: 10.17.10.67ch0unicastfirststream LIVE555 Proxy Server (LIVE555 Streaming Media library versione 2012/05/17) il collegamento di apertura a 10.17.10.67, porta 554. RTSP flusso, il proxy del flusso RTSP: 10.17.10.67ch0unicastfirststream Gioca questo flusso utilizzando l'URL RTSP: 10.17.1.150proxyStream (usiamo la porta 8000 per facoltativo RTSP-over-HTTP tunneling.) connessione remota aperto Invio richiesta: DESCRIVERE rtsp: 10.17.10.67ch0unicastfirststream RTSP1.0 User-Agent: ProxyRTSPClient (LIVE555 Streaming media V2012. 05.17) ha ricevuto 716 nuovi byte di dati di risposta. Ha ricevuto una completa DESCRIVERE risposta: I e Saurabh stiamo lavorando allo stesso progetto. Abbiamo provato analizzando in ciò che sta accadendo utilizzando il testRTSPClient come suggerito da te e qui è la discarica verbose del testRTSPClient: collegamento Apertura al 10.17.1.111, porta di connessione remota 8554. aperto Invio richiesta: DESCRIVERE rtsp: 10.17.1.111: 8554proxyStream RTSP1 .0 msWin32DebugTestPrograms. exe (LIVE555 Streaming media v2012.06.26) ha ricevuto 101 nuovi byte di dati di risposta. Ha ricevuto una completa DESCRIVERE risposta: RTSP1.0 404 File Not Found, oppure in errato Formato Data: Giovedì, 5 lug 2012 09:23:54 GMT URL: rtsp: 10.17.1.111: 8554proxyStream: non è riuscito a ottenere una descrizione SDP: 40 4 file not found, O In URL Formato non corretto: rtsp: 10.17.1.111: 8554proxyStream: Chiusura del corso d'acqua. Premere un tasto per continuare Sembra che il server LIVE555 proxy è in grado di fornire una risposta alla richiesta di DESCRIVERE inviato dal client (testRTSPClient). Quale potrebbe essere la ragione di questo. Sto presente allego il corrispondente server proxy LIVE555 discarica verbose pure per riferimento. LIVE555 Proxy Server (LIVE555 Streaming Media library versione 2012/06/26) il collegamento di apertura a 10.17.10.67, porta 554. RTSP flusso, il proxy del flusso RTSP: 10.17.10.67ch0unicastfirststream Gioca a questo flusso utilizzando l'URL RTSP: 10.17.1.111: 8554proxyStream (Noi utilizzare la porta 80 per facoltativo RTSP-over-HTTP tunneling) connessione remota aperto Invio richiesta:. DESCRIVERE rtsp: 10.17.10.67ch0unicastfirststream RTSP1.0 User-Agent: ProxyRTSPClient (LIVE555 Streaming media v2012.06.26) Ha ricevuto 718 nuovi byte di dati di risposta. Ha ricevuto una completa DESCRIVERE risposta: Data: Giovedì, 5 Luglio 2012 09:19:08 GMT 2012-07-06 05:58:23 UTC Grazie per la risposta. Ho discarica informazioni di debug che avete suggerito. Si prega di trovare il login qui sotto. LOG INFO-AVVIO LIVE555 Proxy Server (LIVE555 Streaming Media library versione 2012/06/26) il collegamento di apertura a 10.17.10.56, porta 554. RTSP flusso, il proxy del flusso RTSP: 10.17.10.56ch0unicastfirststream Gioca a questo flusso utilizzando l'URL RTSP: 10.17.1.111 : 8554proxyStream (usiamo la porta 80 per facoltativo tunneling RTSP-over-HTTP.). connessione remota ha aperto Invio richiesta: DESCRIVERE rtsp: 10.17.10.56ch0unicastfirststreamRTSP1.0 CSeq: 2 User-Agent: ProxyRTSPClient (LIVE555 Streaming Media v2012.06.26) Accept: applicationsdp ricevuto 716 nuovi byte di dati di risposta. Ha ricevuto una completa DESCRIVERE risposta: RTSP1.0 200 CSeq OK: 2 Data: Fri, 6 luglio 2012 11:05:59 GMT Content-Base: rtsp: 10.17.10.56ch0unicastfirststream Content-Type: applicationsdp Content-Length: 540 V0 o - 1341318888742256 1 iN IP4 10.17.10.56 sSession del primo flusso iFirst Codec flusso T0 0 atool: LIVE555 Streaming media v2007.08.03 ATYPE: trasmissione Acontrol: arange: npt0- ax-qt-text-nam: sessione del primo flusso aX-qt-text - inf: primo codec flusso mVIDEO 0 RTPAVP 96 CIN IP4 0.0.0.0 artpmap: 96 MP4V-ES90000 afmtp: 96 a livello di profilo-id5config000001B005000001B509000001000000012000847A98 28A02240A31F Acontrol: track1 mmetadata 0 RTPAVP 97 CIN IP4 0.0.0.0 artpmap: 97 METADATA64000 Acontrol: TRACK2 ProxyServerMediaSessionrtsp : 10.17.10.56ch0unicastfirststream aggiunto nuovo ProxyServerMediaSubsession per RTPvideoMP4V-NO tracciato ProxyServerMediaSessionrtsp: 10.17.10.56ch0unicastfirststream aggiunto nuovo ProxyServerMediaSubsession per RTPmetadataMETADATA pista invio richiesta: OPZIONI RTSP: 10.17.10.56ch0unicastfirststreamRTSP1.0 CSeq: 3 User-Agent: ProxyRTSPClient (LIVE555 Streaming media V2012 .06.26) ha ricevuto 122 nuovi byte di dati di risposta. Ha ricevuto una risposta completa OPZIONI: RTSP1.0 200 CSeq OK: 3 Data: Fri, 6 luglio 2012 11:06:33 GMT pubblico: OPZIONI, DESCRIVERE, SETUP, TEARDOWN, riproduzione, pausa accept () collegamento ed da 10.17.1.111 Liveness indicazione dal client al 10.17.1.111 indicazione Liveness dal client al 10.17.1.111 RTSPClientSession02060068 :: handleRequestBytes () leggi 161 nuovi byte: DESCRIVERE rt sp: 10.17.1.111: 8554proxyStream RTSP1.0 CSeq: 2 User-Agent: testRTSPClient. exe (LIVE555 Streaming media v2012.05.11) Accept: applicationsdp parseRTSPRequestString () è riuscito, di ritorno CmdName dESCRIVERE, urlPreSuffix, urlSuffix proxyStream, CSeq 2, Content-Length 0, con 0 byte seguente t ha un messaggio. ProxyServerMediaSubsessionMP4V-ES :: createNewStreamSource (Session ID 0) Iniziato: ProxyServerMediaSubsessionMP4V-ES ProxyServerMediaSubsessionMP4V-ES :: createNewRTPSink () ProxyServerMediaSubsessionMP4V-ES :: closeStreamSource () ProxyServerMediaSubsessionMETADATA :: createNewStreamSource (Session ID 0) Iniziato: ProxyServerMediaSubsessionMETADATA invio di risposta: RTSP1.0 404 File Not Found, oppure in errato Formato CSeq: 2 Data: Fri, 6 Luglio 2012 05:38:16 GMT indicazione Liveness dal client al 10.17.1.111 RTSPClientSession02060068 :: handleRequestBytes (): 0 a nuovi byte (di 10000) collegamento t erminating Invio richiesta: OPZIONI rtsp: 10.17.10.56ch0unicastfirststreamRTSP1.0 CSeq: 4 User-Agent: ProxyRTSPClient (LIVE555 Streaming media v2012.06.26) Ha ricevuto 122 nuovi byte di dati di risposta. Ha ricevuto una risposta completa OPZIONI: RTSP1.0 200 OK CSeq: 4 Data: Fri, 6 luglio 2012 11:07:10 GMT pubblico: OPZIONI, descrivere SETUP, TEARDOWN, play, pausa di apertura collegamento alla 10.17.10.56, porta 554. . connessione remota aperta richiesta di invio: OPZIONI rtsp: 10.17.10.56ch0unicastfirststreamRTSP1.0 CSeq: 5 User-Agent: ProxyRTSPClient (LIVE555 Streaming Media v2012.06.26) Ha ricevuto 122 nuovi byte di dati di risposta. Ha ricevuto una risposta completa OPZIONI: RTSP1.0 200 CSeq OK: 5 Data: Fri, 6 luglio 2012 11:08:09 GMT pubblico: OPZIONI, DESCRIVERE, SETUP, TEARDOWN, play, pausa ho verificato informazioni di debug da RTSPServer. cpp è effettuato E 'a mantenere la stampa per altro fotocamera di lavoro (Esso stampa indicazione Liveness dal client al 10.17.1.111 ..) Nel registro corrente anche una volta le sue stampe indicazione Liveness dal client al 10.17.1.111. e in testRTSPClient sta dando seguente registro che è simile alla precedente LOG Apertura connessione al 10.17.1.111, porto 8554.. connessione remota ha aperto Invio richiesta: DESCRIVERE rtsp: 10.17.1.111: 8554proxyStream RTSP1.0 CSeq: 2 User-Agent: testRTSPClient. exe (LIVE555 Streaming Media v2012.05.11) Accept: applicationsdp ricevuti 101 nuovi byte di dati di risposta. Ha ricevuto una completa DESCRIVERE risposta: RTSP1.0 404 File Not Found, oppure in errato Formato CSeq: 2 Data: Fri, 6 Luglio 2012 05:53:08 GMT messaggio da Ross Finlayson Questo è molto strano. Non capisco perché il server proxy sta rispondendo 404 File Not Found. alle richieste da parte del cliente. 1 Modifica liveMediaRTSPServer. cpp, e aggiungere la riga definire DEBUG 1 per l'inizio del file. 2 Ricompilare la libreria livemedia. 3 Nella biblioteca ProxyServer, rifare il binario live555ProxyServer. 4 Eseguire live555ProxyServer - V ltback-end-RTSP-URLgt, ancora una volta, e provare a connettersi ad esso da parte del cliente. Inviaci l'output di debug dal server proxy. Ross Finlayson diretta Networks, Inc. LIVE555 live-devel mailing list lists. live555mailmanlistinfolive-devel Grazie per il vostro supporto rapido. Si sta lavorando ora. Viene anche a noi noti che stesso tipo, stessa differenti impostazioni della fotocamera ha metadati diverso. Post di Ross Finlayson OK, ho capito il problema - è stato causato dalla pista metadati non standard nel flusso di back-end. Perché questa pista non è standard, smussiamo procura, ma che non avrebbero dovuto prevetnted l'altro, traccia video di serie da essere proxy. Ive ora installato una nuova versione 2012/07/06 del software LIVE555 Streaming Media che dovrebbe risolvere questo problema. Ora, il client di front-end dovrebbe essere in grado di ricevere la traccia video OK. Grazie per aver portato questo problema alla nostra attenzione. Ross Finlayson vivo Networks, Inc. LIVE555 live-devel mailing list lists. live555mailmanlistinfolive-devel 2012-07-14 05:22:32 UTC Vi saremmo grati se potesse approfondire cosa si intende per metadati non standard dal momento che stiamo cercando di segnalare lo stesso problema per il nostro produttore della fotocamera. Aspettando la tua risposta. Grazie. Il Sab, 7 luglio 2012 alle 10:32, Kiran P. Thakkar post di Kiran P. Thakkar Caro Ross, Grazie per il vostro supporto rapido. Si sta lavorando ora. Viene anche a noi noti che stesso tipo, stessa differenti impostazioni della fotocamera ha metadati diverso. Saluti Kiran messaggio da Ross Finlayson OK, ho capito il problema - è stato causato dalla pista metadati non standard nel flusso di back-end. Perché questa pista non è standard, smussiamo procura, ma che non avrebbero dovuto prevetnted l'altro, traccia video di serie da essere proxy. Ive ora installato una nuova versione 2012/07/06 del software LIVE555 Streaming Media che dovrebbe risolvere questo problema. Ora, il client di front-end dovrebbe essere in grado di ricevere la traccia video OK. Grazie per aver portato questo problema alla nostra attenzione. Ross Finlayson live Networks, Inc. LIVE555 live-devel mailing list lists. live555mailmanlistinfolive-devel live-devel mailing list lists. live555mailmanlistinfolive-devel 2012-07-17 00:05:31 UTCIm cercando di streaming video RTSP via TCP utilizzando mplayer in Windows MinGW guscio e dipende LIVE555 in streaming libreria multimediale. I passi che ho fatto sono: scaricare il LIVE555 streaming media src costruire ogni file. MAK in srclive processo di costruzione era successo e il risultato sono (io uso nmake f. mak tramite linea di comando, perché il mio VS2010 sopraelevazione di riconoscere i file. MAK.). obj file. Il problema è necessità MPlayer. a file di fare e la costruzione non ha ancora creato esso. ne ho veramente bisogno i file. a Se è così, come faccio ad ottenere è lì qualsiasi altro metodo di costruzione che posso utilizzare per risolvere taleil LIVE555 TM Proxy Server Il proxy server LIVE555 è un server RTSP unicast - costruita dal software LIVE555 Streaming Media - che agisce come un proxy per uno o più di back-end unicast o flussi RTSPRTP multicast (cioè servito da altro server (s)). La caratteristica fondamentale di un server proxy è che si legge ogni flusso di back-end una sola volta, indipendentemente dal numero di clienti separati in streaming dal server proxy. Questo rende il server ideale proxy, ad esempio, per lo streaming da una videocamera RTSP abilitato (che potrebbe non essere in grado di gestire più di una connessione alla volta). Operazioni di base Il server proxy LIVE555 è una riga di comando (console vale a dire) applicazione. Il modo più semplice per farlo funzionare è quello di digitare: dove lturlgt è un URL RTSP (vale a dire che inizia con RTSP :) di un flusso di back-end (ad esempio, da una videocamera). Dopo l'avvio, il server visualizzerà il proprio rtsp: URL del flusso proxy. client RTSP possono quindi utilizzare questo URL per giocare (cioè ricevere) il flusso di proxy. Il server può agire come un proxy per molti flussi di back-end - non solo uno. Se si inserisce più di una rtsp: URL nella riga di comando, cioè il server sarà - dopo l'avvio - visualizzazione RTSP: URL per il trasferimento di ciascuno di essi. (Naturalmente, si dovrebbe più flussi di proxy solo se si dispone di una larghezza di banda sufficiente per ricevere tutti loro.) Dettagliato (debug) uscita per visualizzare l'output aggiuntivo, che mostra il funzionamento di base del server, aggiungere l'opzione - v, prima della RTSP : URL. Per visualizzare ancora più uscita - compreso lo scambio protocollo RTSP tra il server proxy e ciascuno dei server back-end - usare l'opzione - V (cioè maiuscole V), invece. (Se si hanno problemi con il server proxy, quindi si consiglia di utilizzare l'opzione - V per cercare di capire che cosa è sbagliato.) Back-end in streaming su TCP Per impostazione predefinita, il server proxy chiederà di ricevere ogni flusso di back-end tramite UDP (vale a dire ricevere RTP e pacchetti RTCP come datagrammi UDP). A volte, tuttavia, il server back-end può essere dietro un firewall che blocca i pacchetti UDP. Per ovviare a questo, è possibile utilizzare l'opzione - t per richiedere che ogni back-end RTSP flusso di server RTP e RTCP pacchetti di dati sulla sua connessione TCP, invece di utilizzare pacchetti UDP. (Si noti che non tutti i server RTSP supporto di streaming TCP, e che il protocollo TCP non può essere utilizzato per ricevere flussi multicast.) Si dovrebbe utilizzare questa opzione solo se si è in grado di ricevere pacchetti UDP, perché lo streaming su TCP può causare i dati in entrata per essere eccessivamente ritardata . In alternativa, è possibile utilizzare l'opzione lthttp-port-numbergt - T per richiedere che ogni flusso di back-end da inviare (utilizzando il protocollo TCP) nel corso di un tunnel di RTSP-over-HTTP, utilizzando il numero di porta HTTP specificato. tunneling RTSP-over-HTTP può essere utile se si è dietro un solo HTTP firewall. (Si noti, tuttavia, che non tutti i server RTSP back-end sosterrà questo.) Nota: La - t e opzioni lthttp-port-numbergt - T sono valide solo per il flusso di back-end (s). Essi non influenzano i flussi front-end dal server proxy per (potenzialmente multipli) client RTSP. Quei corsi d'acqua possono essere più o TCP o UDP, a seconda di ciò ciascuna le richieste dei client. Proxy flussi di accesso controllato alcuni server RTSP back-end richiedono l'autenticazione dell'utente (tramite un nome utente e una password) prima di poter accedere al proprio flusso. Se si aggiunge l'ltusernamegt ltpasswordgt opzione - u al server proxy, quindi userà questa coppia ltpasswordgt ltusernamegt - se necessario - per accedere a ogni flusso di back-end. (Per specificare una password vuota, usare per ltpasswordgt.) In alternativa, si potrebbe provare incluso il nome utente e la password all'interno del rtsp: URL, come: rtsp: ltusernamegt: ltpasswordgt lthostnamegt: ltetc. gt. (Questo non è raccomandato, però, perché - in questo caso -. La password verrà inviata in chiaro su Internet Inoltre, non tutti i server back-end accetteranno questo tipo di URL.) Si noti che è anche possibile fornire il controllo di accesso al server proxy stesso - cioè dal client RTSP front-end. (Questo, tuttavia, non è fatto dalla riga di comando, invece, è fatto modificando il codice sorgente del server proxy. Si noti il ​​codice racchiuso da in live555ProxyServer. cpp. Specificando una porta server RTSP Per impostazione predefinita, l'applicazione server tenta di utilizzare uno dei numeri di porta del server standard di RTSP (554 e 8554). in alternativa, è possibile utilizzare l'opzione ltrtsp-port-numbergt - p per specificare che il server tenta di utilizzare il numero di porta specificato per RTSP. (Se questa porta non può essere flussi di back-end utilizzati, allora proverà uno dei numeri di porta standard, come al solito.) proxy uno o più pubblicizzati Questa applicazione server può anche impostare proxy per un back-end questo è flusso pubblicizzato utilizzando un comando REGISTER RTSP. (Questo pubblicità - che specifica il rtsp:. URL del flusso di back-end - possono essere inviati sia dal server back-end per sé, o da qualche applicazione di terze parti) per dare l'applicazione server questa funzionalità, avviarlo con il - R . opzione della riga di comando (se si utilizza questa opzione, allora si può omettere di entrare in qualsiasi RTSP: URL sulla riga di comando.) il flusso di delega sarà quindi accessibile - dal proxy server - utilizzando un RTSP: URL che verrà annunciato il la console. Come caratteristica speciale - se il parametro reuseconnection è stato impostato nel registro comandi di trasporto: colpo di testa - il server proxy viene a riutilizzare la connessione TCP in cui ha ricevuto il comando REGISTER. Questo può essere utile se il server flussi di back-end è dietro un firewall o NAT, ma il server proxy viene eseguito su Internet pubblico. (In questo caso, si può anche utilizzare l'opzione - t, per richiedere che il server back-end anche inviare i suoi pacchetti RTPRTCP su questa stessa connessione TCP.) REGISTRO è un comando personalizzato RTSP, sviluppato da Live Networks, Inc. attualmente è non-standard, ma è descritta in un IETF Internet-Draft. Se si utilizza l'opzione - R, allora si dovrebbe anche usare l'opzione - U ltpasswordgt ltusernamegt, che specifica un nome utente e una password che deve essere utilizzato per autenticare il comando REGISTER in entrata. (Si noti la differenza tra il comando - u, che specifica un nome utente e una password da utilizzare per l'accesso a flussi di back-end, e il comando - U, che specifica un nome utente e una password da utilizzare per l'autenticazione comandi REGISTRO in arrivo.) L'applicazione registerRTSPStream - incluso nella directory testProgs - può essere utilizzato per registrare un flusso di back-end con un server proxy. codice sorgente, e il supporto Poiché questa applicazione è destinato ai professionisti di rete di computer, piuttosto che gli utenti finali occasionali, non facciamo disponibile come binario pre-costruito. Invece, è necessario costruire da soli, dal codice sorgente. Per fare ciò, è necessario scaricare e compilare il software LIVE555 Streaming Media. Si noti che l'applicazione LIVE555 Proxy Server è inclusa nella sottodirectory proxyserver. Il supporto per il server proxy LIVE555 (e il resto del codice LIVE555 Streaming Media) è fornito tramite i nostri sviluppatori mailing list: live-devellists. live555. Si noti che è necessario prima iscriversi alla mailing list prima di poter postare ad esso si prega di leggere anche le FAQ prima di inviare alla mailing list. LIVE555 e le reti logo sono marchi registrati dal vivo di Live Networks, Inc. LIVE555 Streaming Media Questo codice costituisce un set di librerie C per lo streaming multimediale, utilizzando protocolli standard aperti (RTPRTCP, RTSP, SIP). Queste librerie - che può essere compilato per Unix (compreso Linux e Mac OS X), Windows e QNX (e altri sistemi POSIX-compliant) - possono essere utilizzate per costruire applicazioni di streaming. Le librerie sono già utilizzati per implementare applicazioni come il Server LIVE555 media e LIVE555 Proxy Server (applicazioni server RTSP), e vobStreamer (per lo streaming di contenuti DVD utilizzando RTPRTCPRTSP). Le librerie possono essere utilizzati anche per lo streaming, ricevere, e il processo di MPEG, H.265, H.264, H.263, DV o il video JPEG, e diversi codec audio. Possono essere facilmente esteso per supportare ulteriori codec (audio e video Andor), e possono anche essere usati per costruire i client ei server RTSP o SIP di base, e sono stati utilizzati per aggiungere il supporto di streaming per applicazioni media player esistenti, come VLC e MPlayer. (Per alcuni esempi specifici di come possono essere utilizzate queste librerie, vedere i programmi di test qui di seguito.) Codice sorgente Il codice sorgente del progetto è disponibile - come un file. tar. gz - qui. Vedi sotto per le istruzioni su come costruirlo. (Nota: Per utilizzare questo software, è necessario essere consapevoli di come si è concesso in licenza, e gli obblighi di cui al presente licenza.) Mailing list c'è un sviluppatori di mailing list. live-devellists. live555. Gli utenti (o potenziali utenti) delle biblioteche sono incoraggiati a partecipare a questo (basso volume) mailing list, Andor a rivedere la mailing list archivi. (È anche possibile cercare questi archivi utilizzando Google, con l'aggiunta del sito:. Lists. live555 alla query di ricerca) Prima di inviare alla mailing list per la prima volta, si prega di leggere le FAQ, per controllare se la tua domanda è già stata data risposta. Il principale mezzo di supporto per queste librerie è la mailing list live-devellists. live555 sopra descritto. (Si noti che è necessario prima iscriversi alla mailing list prima di poter postare ad esso.) Avete in programma di implementare RTP (Andor RTSP) Invece di scrivere la propria implementazione da zero, considerare l'utilizzo di queste librerie. Essi sono già stati utilizzati in numerose applicazioni RTP-based del mondo reale, e sono particolarmente adatti per l'utilizzo in sistemi embedded. Il codice include un'implementazione di RTCP, e può essere facilmente estesa (tramite subclassing) per supportare nuovi tipi di payload RTP. miglioramenti contribuire a sostenere ed estensioni al software LIVE555 Streaming Media: Progetti LIVE555 finanziati. Descrizione Il codice include le seguenti librerie, ognuna con la propria sottodirectory: classi UsageEnvironment Il UsageEnvironment e TaskScheduler sono utilizzati per eventi di pianificazione differita, per l'assegnazione di gestori per eventi asincroni di lettura, e per l'output dei messaggi errorwarning. Inoltre, la classe HashTable definisce l'interfaccia a una tabella hash generico, utilizzato dal resto del codice. Queste sono tutte le classi base astratte devono essere sottoclasse per l'uso in una implementazione. Queste sottoclassi possono sfruttare le proprietà particolare, dell'ambiente in cui il programma verrà eseguito - per esempio il suo ambiente di scripting GUI Andor. Le classi in questa libreria racchiudono le interfacce di rete e prese. In particolare, la classe Groupsock incapsula una presa per l'invio (ricezione Andor) datagrammi multicast. Questa libreria definisce una gerarchia di classi - radicata nella classe media - per una varietà di tipi di media in streaming e codec. BasicUsageEnvironment Questa libreria definisce una realizzazione concreta (cioè sottoclassi) delle classi UsageEnvironment, per l'utilizzo in semplici applicazioni di console. eventi di lettura e le operazioni in ritardo vengono gestiti utilizzando un ciclo select (). Questa directory implementa alcuni semplici programmi che utilizzano BasicUsageEnvironment per dimostrare come sviluppare applicazioni che utilizzano queste librerie. RTSP cliente testRTSPClient è un programma a riga di comando che mostra come aprire e ricevere flussi multimediali che sono specificati da un URL RTSP - vale a dire un URL che inizia con RTSP: In questa applicazione la dimostrazione, non si fa nulla con i dati audiovideo ricevuti. Si potrebbe, tuttavia, utilizzare e adattare questo codice nella propria applicazione per (ad esempio) decodificare e riprodurre i dati ricevuti. openRTSP è simile a testRTSPClient, ma ha molte altre caratteristiche. Si tratta di un programma a riga di comando che - a differenza testRTSPClient - è destinato ad essere utilizzato come un completo, un'applicazione completa (piuttosto che avere il suo codice utilizzato all'interno di altre applicazioni). Per ulteriori informazioni su openRTSP - comprese le sue numerose opzioni della riga di comando - vedere la documentazione in linea. server RTSP testOnDemandRTSPServer crea un server RTSP che può trasmettere, via RTP unicast, da vari tipi di file multimediale, su richiesta. (Tipi di media supportati includono: MPEG-1 o 2 audio o video (stream elementari), tra cui MP3 audio video MPEG-4 (elementary stream) video H.264 (flusso elementare) il video H.265 (elementary stream) Programma MPEG o Trasporto corsi d'acqua, inclusi i file VOB DV AMR audio WAV (PCM) audio). il server può anche trasmettere da un file WebM Matroska o (per demultiplexing e in streaming le tracce all'interno del file). MPEG Transport Stream può essere anche in streaming su UDP cruda, se richiesto - ad esempio da un set-top box. Questa applicazione server dimostra anche come consegnare - via RTSP - un MPEG Transport Stream che è arrivato al server come un UDP (raw-UDP o RTPUDP) multicast o unicast flusso. In particolare, si è impostato, per impostazione predefinita, per accettare l'input dall'applicazione demo testMPEG2TransportStreamer. client SIP playSIP è un programma a riga di comando (simile a openRTSP) che effettua una chiamata a una sessione SIP (utilizzando un sorso: URL), e poi (opzionalmente) registra il flusso multimediale in ingresso in un file. programmi audio MP3 prova testMP3Streamer ripetutamente legge da un file audio MP3 (nome test. mp3), e torrenti, utilizzando RTP, al gruppo multicast 239.255.42.42, porta 6666 (con RTCP utilizzando la porta 6667). Questo programma ha anche un (opzionale) server RTSP incorporato. testMP3Receiver fa il contrario: Si legge un flusso MP3RTP (dallo stesso groupport multicast), ed emette il flusso MP3 ricostituito allo stdout. Si invia anche rapporti RTCP reception. In alternativa, il flusso MP3RTP potrebbe essere svolto utilizzando uno di questi strumenti. programmi MPEG video di prova testMPEG1or2VideoStreamer ripetutamente legge da un file video MPEG-1 o 2 (nome test. mpg), e torrenti, utilizzando RTP, al gruppo multicast 239.255.42.42, porta 8888 (con RTCP utilizzando la porta 8889). Questo programma ha anche un (opzionale) server RTSP incorporato. Per impostazione predefinita, il file di input viene considerato un MPEG Video Elementary Stream. Se, tuttavia, si tratta di un MPEG Program Stream, allora si può anche inserire un filtro demultiplexing per estrarre il video Elementary Stream. (Per i dettagli vedere testMPEG1or2VideoStreamer. cpp.) Mele QuickTime Player può essere utilizzato per ricevere e visualizzare il video in streaming (a condizione che la sua MPEG-1, MPEG-2 non). Per utilizzare questa, hanno QuickTime Player aprire il file testMPEG1or2Video. sdp. (Se il server RTSP testMPEG1or2VideoStreamers è stato abilitato, quindi QuickTime Player può anche riprodurre il flusso con un rtsp:. URL) L'Open Source lettori multimediali VLC e MPlayer può anche essere usato. RealNetworks RealPlayer può essere utilizzato anche per riprodurre il flusso. (Si consiglia una versione recente.) TestMPEG1or2VideoReceiver fa il contrario: Si legge un flusso MPEG VideoRTP (dallo stesso groupport multicast), ed emette il flusso ricostituito il video MPEG (elementari) sullo standard output. Si invia anche rapporti RTCP reception. testMPEG4VideoStreamer legge ripetutamente da un file video Elementary Stream MPEG-4 (chiamato test. m4e), e corsi d'acqua utilizzando RTP multicast. Questo programma ha anche un built-in server RTSP. Mele QuickTime Player può essere utilizzato per ricevere e riprodurre questo flusso audio. Per utilizzare questo, hanno il giocatore aprire la sessione rtsp: URL (che il programma stampa come inizia lo streaming). I lettori multimediali open source VLC e MPlayer può anche essere usato. testH264VideoStreamer legge ripetutamente da un file video H.264 Elementary Stream (nome test.264), e corsi d'acqua utilizzando RTP multicast. Questo programma ha anche un built-in server RTSP. Mele QuickTime Player può essere utilizzato per ricevere e riprodurre questo flusso audio. Per utilizzare questo, hanno il giocatore aprire la sessione rtsp: URL (che il programma stampa come inizia lo streaming). I lettori multimediali open source VLC e MPlayer può anche essere usato. testH265VideoStreamer legge ripetutamente da un file video H.265 Elementary Stream (nome test.265), e corsi d'acqua utilizzando RTP multicast. Questo programma ha anche un built-in server RTSP. MPEG audiovideo (Program Stream) programmi di test testMPEG1or2AudioVideoStreamer legge un file di flusso MPEG-1 o 2 Programma (nome test. mpg), estratti da questo un audio e un video Elementary Stream, e corsi d'acqua questi, utilizzando l'RTP, al gruppo multicast 239,255. 42.42, porto 66.666.667 (per il flusso audio) e 88.888.889 (per il flusso video). Questo programma ha anche un (opzionale) server RTSP incorporato. Mele QuickTime Player può essere utilizzato per ricevere e visualizzare il video in streaming (a condizione che la sua MPEG-1, MPEG-2 non). Per utilizzare questa, hanno QuickTime Player aprire il file testMPEG1or2AudioVideo. sdp. (Se il server RTSP testMPEG1or2VideoStreamers è stato abilitato, quindi QuickTime Player può anche riprodurre il flusso con un rtsp:. URL) L'Open Source lettori multimediali VLC e MPlayer può anche essere usato. testMPEG1or2Splitter legge un file Program Stream MPEG-1 o 2 (nome in. mpg), e gli estratti da questo un audio e un video Elementary Stream. Questi due flussi elementari sono scritti in file denominati outaudio. mpg e outvideo. mpg rispettivamente. MPEG audiovideo (Transport Stream) programmi di test testMPEG2TransportStreamer legge un file MPEG Transport Stream (nome test. ts), e torrenti, utilizzando RTP, al gruppo multicast 239.255.42.42, porta 1234 (con RTCP utilizzando la porta 1235). Questo programma ha anche un (opzionale) server RTSP incorporato. Il lettore multimediale Open Source VLC può essere utilizzato per giocare a questo flusso. testMPEG2TransportReceiver fa il contrario: Si legge un flusso MPEG TransportRTP (dallo stesso groupport multicast), ed emette il flusso ricostituita MPEG Transport Stream sullo standard output. Si invia anche rapporti RTCP reception. testMPEG1or2ProgramToTransportStream legge un-1 MPEG o 2 file di Program Stream (nome in. mpg), e lo converte in un file equivalente MPEG Transport Stream, chiamato out. ts. testH264VideoToTransportStream legge un file H.264 Video Elementary Stream (nome in.264), e lo converte in un file equivalente MPEG Transport Stream, chiamato out. ts. testH265VideoToTransportStream legge un file H.265 Video Elementary Stream (nome in.265), e lo converte in un file equivalente MPEG Transport Stream, chiamato out. ts. programma di test audio PCM testWAVAudioStreamer legge da un file audio formato WAV (nome test. wav), e corsi d'acqua il flusso audio PCM chiusa tramite multicast IP, utilizzando un server integrato RTSP. Il programma supporta flussi PCM a 8 o 16 bit, mono o stereo, a qualsiasi frequenza di campionamento. Mele QuickTime Player può essere utilizzato per ricevere e riprodurre questo flusso audio. Per utilizzare questo, hanno il giocatore aprire la sessione rtsp: URL (che il programma stampa come inizia lo streaming). Opzionalmente, flussi PCM a 16 bit possono essere convertiti in formato u-legge 8-bit prima di streaming. (Vedi testWAVAudioStreamer. cpp per le istruzioni su come fare questo.) La Open Source lettori multimediali VLC e MPlayer può anche essere usato. programma di test audio AMR testAMRAudioStreamer legge da un file audio AMR-formato (chiamato test. amr) - come definito nella RFC 3267, sezione 5 - e torrenti il ​​flusso audio in dotazione tramite multicast IP, utilizzando un server integrato RTSP. Mele QuickTime Player può essere utilizzato per ricevere e riprodurre questo flusso audio. Per utilizzare questo, hanno il giocatore aprire la sessione rtsp: URL (che il programma stampa come inizia lo streaming). programma di test video DV testDVVideoStreamer legge da un file video DV (di nome test. dv), e corsi d'acqua tramite multicast IP, utilizzando un server integrato RTSP. Allo stato attuale, sappiamo di nessun client lettore multimediale ampiamente disponibili in grado di riprodurre questo flusso. Matroska (o Webm) programma di test in streaming testMKVStreamer legge da un file Matroska (o Webm) (denominato test. mkv), e corsi d'acqua tramite multicast IP, utilizzando un server integrato RTSP. VOB (DVD) programma di test in streaming vobStreamer legge uno o più file VOB (ad esempio da un DVD), estrae i flussi audio e video, e li trasmette tramite RTP multicast. Supporto per le attività di riproduzione speciali server su MPEG Transport Stream sui file di applicazioni MPEG2TransportStreamIndexer e programmi di test testMPEG2TransportStreamTrickPlay vari testRelay ripetutamente legge da un socket multicast UDP, e ritrasmette (relè) ogni pacchetti carico utile ad una nuova (multicast o unicast) l'indirizzo e la porta. testReplicator è simile a testRelay. tranne che si replica il flusso di input - utilizzando la classe FrameReplicator - e ritrasmette un flusso replica ad un altro indirizzo (multicast o unicast) e il porto, mentre la scrittura l'altro flusso di replica a un file. sapWatch legge e gli annunci stampa SDPSAP fatte sulla directory predefinita SDPSAP (224.2.127.2549875) registerRTSPStream invia un comando personalizzato RTSP REGISTRO ad un determinato cliente RTSP (o un server proxy), chiedendo di streaming da un dato rtsp: URL. WindowsAudioInputDevice This is an implementation of the liveMedia librarys AudioInputDevice abstract class. This can be used by a Windows application to read PCM audio samples from an input device. (This project builds two libraries: libWindowsAudioInputDevicemixer. lib, which uses Windows built-in mixer, and libWindowsAudioInputDevicenoMixer. lib, which doesnt.) How to configure and build the code on Unix (including Linux, Mac OS X, QNX, and other Posix-compliant systems) The source code package can be found (as a. tar. gz file) here. Use tar - x and gunzip (or tar - xz, if available) to extract the package then cd to the live directory. Then run where ltos-platformgt is your target platform - e. g. linux or solaris - defined by a config. ltos-platformgt file. This will generate a Makefile in the live directory and each subdirectory. Then run make. If the make fails, you may need to make small modifications to the appropriate config. ltos-platformgt file, and then re-run genMakefiles ltos-platformgt . (E. g. you may need to add another - I ltdirgt flag to the COMPILEOPTS definition.) Some people (in particular, FreeBSD users) have reported that the GNU version of make - often called gmake - works better than their default, pre-installed version of make. (In particular, you should try using gmake if you encounter linking problems with the ar command.) If youre using gcc version 3.0 or greater: You may also wish to add the - Wno-deprecated flag to CPLUSPLUSFLAGS. If no config. ltos-platformgt file exists for your target platform, then try using one of the existing files as a template. If you wish, you can also install the headers, libraries, and applications by running make install. How to configure and build the code on Windows Unpack and extract the. tar. gz file (using an application such as WinZip). If the tools directory on your Windows machine is something other than c:Program FilesDevStudioVc, change the TOOLS32 line in the file win32config. In a command shell, cd to the live directory, and run This will generate - in each subdirectory - a. mak makefile suitable for use by (e. g.) Microsoft Visual Studio. Alternatively, if youre starting from a Unix machine, you can generate the Windows Makefiles by running (after - if necessary - changing the TOOLS32 line in the file win32config, as noted above). Then, copy the live directories and its subdirectories (in ASCII mode) to a Windows machine. To use these Makefiles from within Visual Studio, use the Open Workspace menu command, then (in the file selection dialog) for Files of type, choose Makefiles (.mak). Visual Studio should then prompt you, asking if you want to use this Makefile to set up a new project. Say OK. Note that you will need to build each of the UsageEnvironment, groupsock, liveMedia, and BasicUsageEnvironment projects first . before building testProgs. If you wish, you can build the WindowsAudioInputDevice project also. Doug Kosovic notes: Visual C 2003 no longer comes with the old IO Streams headers iostreams. h et al, or the corresponding library msvcirt. lib. So anybody trying to build the LIVE555 code with VC 2003 might find the following useful: A non-sourcecode modification workaround for VC 2003 is to copy the missing headers and msvcirt. lib from VC 2002. In file win32config add an extra - I switch to COMPILEOPTS to find the old headers and a - LIBPATH: switch to LINKOPTS0 to find msvcirt. lib. If youre using the Borland C compiler The instructions above assume that you use Microsoft Visual Studio (version 5 or greater) as your C development environment. If, however, you are using Borlands development tools, then the instructions above are amended as follows: Before running the genWindowsMakefiles. cmd script, edit it to replace each occurrence of win32config with win32config. Borland. After running genWindowsMakefiles, edit each of the new Makefiles by following these instructions. (Please read this before posting questions to the mailing list.) Source code license This code is open source, and is released under the LGPL. This allows you to use these libraries (via linking) inside closed-source products. It also allows you to make closed-source binary extensions to these libraries - for instance, to support proprietary media codecs that subclass the existing liveMedia class hierarchy. Nonetheless, we hope that subclass extensions of these libraries will also be developed under the LGPL, and contributed for inclusion here. We encourage developers to contribute to the development and enhancement of these libraries. Extend the liveMedia library to support even more media types andor codecs. Supply additional UsageEnvironment subclassed implementations - e. g. for use with scripted environments, such as Tcl, Python, or Perl. Expand the RTCP implementation to support more SDES items (other than just CNAME), and to more completely handle incoming RTCP packets. In places the code uses data types such as unsigned, where instead specific lengths (e. g. 32 bits) are required. The data types should be changed in each such case. Fix the groupsock implementation so that it could use IPv6 instead of IPv4. (At present, 4-byte addresses are hard-wired into the code in several places.) Switch to using ISO-conformant C headers (but in such a way that the code can remain portable across both Unix (using gcc) and Windows (using Visual C)). Implement network sockets (groupsocks) as liveMedia sources. This will make the code for RTP sources more consistent with the rest of the liveMedia library, allowing them to be FramedFilters. (This will make it possible to use synthetic network sockets - e. g. for debugging or simulation.) Add support for SRTP (secure RTP), and perhaps also RTSP-over-TLS. Some third-party applications Several third-party devices and applications have made use of the LIVE555 Streaming Media Software. Here is a list of some of them: RaspberrIPCam - a full HD IP Camera based on Raspberry Pi Network-enabled, RTP-streaming Security Cameras. from RVision The LMLM4 MPEG-4 audiovideo hardware encoder PCI board. from Linux Media Labs. WIS Technologies media encoders. (The wis-streamer server application - for Linux - can be used to stream from many of these encoders.) Elphel Network Video Cameras (with optional JPEG streaming over RTP ). The Cam. ly wireless security camera system uses openRTSP to archive recorded video. The VLC media player (uses the LIVE555 Streaming Media libraries for its RTSP client implementation). The MPlayer media player. Ralf Globischs Video Processing Project - a RTSP client DirectShow Filter Morgan RTP DirectShow TM Filters , from Morgan Multimedia Omnimeeting - a videoconferencing application Network-Integrated Multimedia Middleware (NMM) , from Saarland University ivrworx - a SIP IVR application - uses LIVE555 Streaming Media code for RTP mixing LiveMediaStreamer - an open source multimedia framework If you would like your product (or project) added to this list, please send email to the developers mailing list.

No comments:

Post a Comment