FFmpeg (https://www.ffmpeg.org/) este o soluție completă, multiplatformă, pentru a înregistra, a converti și a transmite în flux audio și video. FFmpeg este cel mai important cadru multimedia, capabil de a decoda, codifica, transcoda, mux, demux, transmite în flux, filtrează și reda aproape orice au creat oamenii și mașinile. Acceptă cele mai obscure formate antice până la vârf. Indiferent dacă au fost proiectate de un comitet de standarde, de comunitate sau de o corporație.
Este, de asemenea, extrem de portabil: FFmpeg compilează, rulează și trece infrastructura noastră de testare FATE pe Linux, Mac OS X, Microsoft Windows, BSD-uri, Solaris etc... într-o mare varietate de medii de construcție, arhitecturi de mașini, și configurații.
Biblioteca FFmpeg în sine se află sub licență LGPL 2.1. Activarea anumitor biblioteci externe (cum ar fi libx264) schimbă licența la GPL 2 sau o versiune ulterioară.
Am folosit scriptul ffmpeg-android-maker (contribuitori: Alexander Berezhnoi Javernaut + codacy-badger Codacy Badger + A2va) pentru a compila bibliotecile. Acest script descarcă codul sursă al FFmpeg de pe https://www.ffmpeg.org și construiește biblioteca și o asamblează pentru Android. Scriptul produce biblioteci partajate (fișiere *.so), precum și fișiere antet (fișiere *.h).
Obiectivul principal al ffmpeg-android-maker este de a pregăti biblioteci partajate pentru o integrare perfectă într-un proiect Android. Scriptul pregătește directorul `output` care este menit să fie utilizat. Și nu este singurul lucru pe care îl face acest proiect. Codul sursă al ffmpeg-android-maker este disponibil sub licența MIT. Consultați fișierul LICENSE.txt pentru mai multe detalii pe https://github.com/Javernaut/ffmpeg-android-maker/ Bibliotecile eXport-it FFmpeg sunt doar compilate cu libaom, libdav1d, liblame, libopus și libtwolame... dar nu toate bibliotecile asociate.
Pentru a dezvolta suportul Java pentru FFmpeg și a-l rula pe Android 7.1 până la 12, am pornit de la proiectul MobileFFmpeg documentat pe https://github.com/tanersener/mobile-ffmpeg/ de către Taner Sener, care nu mai este întreținut ... și este licențiat sub LGPL 3.0 ...
În sfârșit, am pregătit un proiect JNI Android Studio cu bibliotecile, am inclus fișiere și cod de suport Java și am generat un fișier bibliotecă .aar pentru a-l integra ca bibliotecă suplimentară în proiectele mele existente.
Pentru a porni un canal multicast necesită utilizarea unui client, pentru a accesa un server UPnP din rețeaua locală (Wi-Fi) cu suport FFmpeg. Acest server ar trebui să răspundă cu lista fișierelor pe care le exportă. Dacă acest server are suport FFmpeg, un text mic „Ca canal” trebuie afișat cu roșu la sfârșitul liniei de sus a paginii listei. Când textul este „roșu”, făcând clic pe butonul „redare” funcționează ca înainte folosind protocolul UPnP. Dacă dați clic pe text, acesta ar trebui să devină „verde” și făcând clic pe butonul „redare”, după selectarea fișierelor video sau audio, ar trebui să pornească un „canal”.
Fișierele media selectate sunt redate aparent în același mod decât prin UPnP, cu excepția întârzierii de pornire mai mare din cauza sarcinilor suplimentare. Trebuie să păstrați acest client care redă fișierele media pentru a menține conducta activă.
Multicast IP nu funcționează pe Internet, funcționează numai în rețeaua locală, deci în principal pe Wi-Fi. Un canal de date multicast poate fi partajat de mai mulți clienți simultan. Trimiteți un flux de date media în rețeaua dvs. Wi-Fi și afișați aceste date pe dispozitivele conectate, aproape sincron, doar diferența de întârziere a latenței.
Cu streaming UPnP sau HTTP, fiecare dispozitiv necesită lățimea de bandă a videoclipului afișat, iar lățimea de bandă globală este suma ambelor trafic. Cu streaming multicast, trimitem un flux de date pe LAN care este partajat între mai mulți clienți.
Dacă folosiți un alt client în rețea după ce ați început un canal, ar trebui să vedeți o linie suplimentară în fereastra principală a clientului. Doar făcând clic pe această linie ar trebui să înceapă emisiunea.
De asemenea, este posibil să utilizați alte produse precum VLC, SMplayer, ... pentru a afișa un videoclip sau pentru a asculta muzică distribuită pe un canal multicast folosind doar adresa URL „UDP” afișată pe clientul eXport-it. p>
Modul bun de a opri un canal multicast este să îl opriți pe clientul pe care l-ați pornit, deoarece acest canal este controlat acolo. Redarea până la sfârșitul fișierelor media transmise în flux ar trebui să dea și sfârșitul emisiunii.