eXport-it, android  UPnP Client/Server

eXport-it android UPnP/HTTP client/server

Android


una applicazione di file sharing Android per video, audio, immagini e ebooks




eXport-it FFmpeg



Cos'è la libreria FFmpeg?

FFmpeg (https://www.ffmpeg.org/) è una soluzione completa e multipiattaforma per registrare, convertire e trasmettere in streaming audio e video. FFmpeg è il framework multimediale leader, in grado di decodificare, codificare, transcodificare, mux, demux, stream, filtrare e riprodurre praticamente tutto ciò che gli esseri umani e le macchine hanno creato. Supporta i formati antichi più oscuri fino al tagliente. Non importa se sono stati progettati da un comitato per gli standard, dalla comunità o da un'azienda.

È anche altamente portatile: FFmpeg compila, esegue e supera la nostra infrastruttura di test FATE su Linux, Mac OS X, Microsoft Windows, BSD, Solaris, ecc... in un'ampia varietà di ambienti di costruzione, architetture di macchine, e configurazioni.

La libreria FFmpeg stessa è sotto licenza LGPL 2.1. L'abilitazione di alcune librerie esterne (come libx264) cambia la licenza in GPL 2 o successiva.

Come si integra questa libreria nell'applicazione Android

Ho usato lo script ffmpeg-android-maker (contribuenti: Alexander Berezhnoi Javernaut + codacy-badger Codacy Badger + A2va) per compilare le librerie. Questo script scarica il codice sorgente di FFmpeg da https://www.ffmpeg.org e crea la libreria e la assembla per Android. Lo script produce librerie condivise (file *.so) e file di intestazione (file *.h).

L'obiettivo principale di ffmpeg-android-maker è preparare librerie condivise per una perfetta integrazione in un progetto Android. Lo script prepara la directory `output` che deve essere utilizzata. E non è l'unica cosa che fa questo progetto. Il codice sorgente di ffmpeg-android-maker è disponibile con la licenza MIT. Consulta il file LICENSE.txt per maggiori dettagli su https://github.com/Javernaut/ffmpeg-android-maker/ Le librerie eXport-it FFmpeg sono semplicemente compilate con libaom, libdav1d, liblame, libopus e libtwolame... ma non tutte le librerie associate.

Per sviluppare il supporto Java per FFmpeg ed eseguirlo su Android da 7.1 a 12, sono partito dal progetto MobileFFmpeg documentato su https://github.com/tanersener/mobile-ffmpeg/ da Taner Sener, che non viene più mantenuto ... ed è concesso in licenza in base a LGPL 3.0 ...

Infine, ho preparato un progetto JNI Android Studio con le librerie, ho incluso file e codice di supporto Java e ho generato un file di libreria .aar da integrare come libreria aggiuntiva nei miei progetti esistenti.


Come avviare un canale multicast

Per avviare un canale multicast è necessario utilizzare un client, per accedere a un server UPnP sulla rete locale (Wi-Fi) con il supporto FFmpeg. Questo server dovrebbe rispondere con l'elenco dei file che esporta. Se questo server ha il supporto FFmpeg, un piccolo testo "Come canale" deve essere visualizzato in rosso alla fine della riga superiore della pagina dell'elenco. Quando il testo è "rosso", fare clic sul pulsante "riproduci" funziona come prima di utilizzare il protocollo UPnP. Se fai clic sul testo, questo dovrebbe diventare "verde" e facendo clic sul pulsante "riproduci", dopo aver selezionato i file video o audio, dovrebbe avviare un "canale".

I file multimediali selezionati vengono riprodotti apparentemente allo stesso modo rispetto a UPnP, tranne per il fatto che il ritardo di avvio è più lungo a causa di attività aggiuntive. Devi mantenere questo client che riproduce i file multimediali per mantenere attiva la pipe.

Utilizzo di questa pipe su altri dispositivi

Il multicast IP non funziona su Internet, funziona solo su rete locale quindi principalmente su Wi-Fi. Un canale dati multicast può essere condiviso da più client contemporaneamente. Stai inviando un flusso di dati multimediali sulla tua rete Wi-Fi e mostri questi dati sui dispositivi connessi, quasi in modo sincrono, solo la differenza di ritardo di latenza.

Con lo streaming UPnP o HTTP, ogni dispositivo richiede la larghezza di banda del video mostrato e la larghezza di banda globale è la somma di entrambi i traffico. Con lo streaming multicast, inviamo un flusso di dati sulla LAN che è condiviso tra più client.

Se utilizzi un altro client sulla tua rete dopo aver avviato un canale, dovresti vedere una riga aggiuntiva nella finestra principale del client. Basta fare clic su questa riga per avviare lo spettacolo.

È anche possibile utilizzare altri prodotti come VLC, SMplayer, ... per mostrare un video o ascoltare musica distribuita su un canale multicast semplicemente utilizzando l'URL "UDP" mostrato sul client eXport-it.

Per interrompere un canale multicast

Il buon modo per interrompere un canale multicast è interromperlo sul client su cui è stato avviato perché questo canale è controllato lì. Anche la riproduzione fino alla fine dei file multimediali in streaming dovrebbe dare la fine dello spettacolo.