FFmpeg (https://www.ffmpeg.org/) je cjelovito, višeplatformsko rješenje za snimanje, pretvaranje i strujanje audio i video zapisa. FFmpeg je vodeći multimedijski okvir, sposoban dekodirati, kodirati, transkodirati, mux, demux, streamati, filtrirati i reproducirati gotovo sve što su ljudi i strojevi stvorili. Podržava najnejasnije drevne formate sve do najmodernije. Bez obzira jesu li ih dizajnirao neki odbor za standarde, zajednica ili korporacija.
Također je vrlo prenosiv: FFmpeg kompilira, pokreće i prosljeđuje našu infrastrukturu za testiranje FATE na Linux, Mac OS X, Microsoft Windows, BSD-ove, Solaris, itd... u širokom rasponu okruženja za izgradnju, arhitektura strojeva, i konfiguracije.
Sama biblioteka FFmpeg je pod LGPL 2.1 licencom. Omogućavanje određenih vanjskih biblioteka (kao što je libx264) mijenja licencu u GPL 2 ili noviju verziju.
Koristio sam skriptu ffmpeg-android-maker (suradnici: Alexander Berezhnoi Javernaut + codacy-badger Codacy Badger + A2va) za sastavljanje knjižnica. Ova skripta preuzima izvorni kod FFmpeg s https://www.ffmpeg.org i gradi biblioteku te je sklapa za Android. Skripta proizvodi dijeljene biblioteke (*.so datoteke) kao i datoteke zaglavlja (*.h datoteke).
Glavni fokus ffmpeg-android-makera je priprema zajedničkih knjižnica za besprijekornu integraciju u Android projekt. Skripta priprema `izlazni` direktorij koji je namijenjen za korištenje. I to nije jedino što ovaj projekt radi. Izvorni kod ffmpeg-android-makera dostupan je pod MIT licencom. Pogledajte datoteku LICENSE.txt za više pojedinosti na https://github.com/Javernaut/ffmpeg-android-maker/ Knjižnice eXport-it FFmpeg su samo kompajlirane s libaom, libdav1d, liblame, libopus i libtwolame...ali ne sa svim povezanim knjižnicama.
Da bih razvio podršku za Java za FFmpeg i pokrenuo je na Androidu 7.1 do 12, počeo sam od projekta MobileFFmpeg koji je na https://github.com/tanersener/mobile-ffmpeg/ dokumentirao Taner Sener, a koji se više ne održava ... i licenciran je pod LGPL 3.0 ...
Konačno, pripremio sam JNI Android Studio projekt s knjižnicama, uključio datoteke i Java kod za podršku te generirao .aar datoteku knjižnice za integraciju kao dodatnu biblioteku u moje postojeće projekte.
Za pokretanje multicast kanala potrebno je koristiti klijenta za pristup UPnP poslužitelju na vašoj lokalnoj mreži (Wi-Fi) s podrškom za FFmpeg. Ovaj poslužitelj bi trebao odgovoriti s popisom datoteka koje izvozi. Ako ovaj poslužitelj ima podršku za FFmpeg, mali tekst "Kao kanal" mora biti prikazan crvenom bojom na kraju gornjeg retka stranice s popisom. Kada je tekst "crven", klik na gumb "play" radi kao i prije korištenjem UPnP protokola. Ako kliknete na tekst, trebao bi postati "zelen" i klikom na gumb "play", nakon odabira video ili audio datoteka, trebao bi pokrenuti "kanal".
Odabrane medijske datoteke reproduciraju se očito na isti način kao putem UPnP-a, osim što je odgoda pokretanja duža zbog dodatnih zadataka. Morate zadržati ovaj klijent da reproducira medijske datoteke kako bi kanal ostao aktivan.
IP multicast ne radi preko Interneta, radi samo na lokalnoj mreži, dakle uglavnom na Wi-Fi. Multicast podatkovni kanal može dijeliti više klijenata istovremeno. Šaljete tok medijskih podataka na svoju Wi-Fi mrežu i prikazujete te podatke na povezanim uređajima, gotovo sinkrono, samo razlika u kašnjenju.
Uz UPnP ili HTTP streaming, svaki uređaj zahtijeva propusnost prikazanog videozapisa, a globalna propusnost je zbroj oba prometa. Uz multicast streaming, šaljemo jedan tok podataka na LAN koji se dijeli između više klijenata.
Ako koristite drugog klijenta na svojoj mreži nakon pokretanja kanala, trebali biste vidjeti dodatni redak u glavnom prozoru klijenta. Samo klik na ovaj redak trebao bi pokrenuti emisiju.
Također je moguće koristiti druge proizvode kao što su VLC, SMplayer, ... za prikazivanje videozapisa ili slušanje glazbe distribuirane preko multicast kanala samo pomoću "UDP" URL-a prikazanog na eXport-it klijentu.
p>Dobar način za zaustavljanje multicast kanala je da ga zaustavite na klijentu na kojem ste ga pokrenuli jer se taj kanal tamo kontrolira. Reprodukcija do kraja strujanih medijskih datoteka također bi trebala završiti emisiju.
Za pokretanje multicast kanala potreban je određeni klijentski dio ove aplikacije, isti kao i eXport-it klijent mojih ostalih ažuriranih proizvoda. Korištenje pokrenutog multicast kanala može se učiniti s klijentom aplikacije ili s drugim proizvodima kao što su VLC, SMPlayer, ... koji rade na drugim platformama ili na Androidu. Kada koristite VLC, URL za korištenje Multicast kanala se glatko razlikuje kao udp://@239.255.147.111:27192... samo s dodatnim "@". S UDP Multicast kanalom medijski se podaci šalju samo jednom kako bi se prikazali na više klijenata, ali nema stvarne sinkronizacije, a kašnjenje može trajati nekoliko sekundi, ovisno o međuspremniku i karakteristikama uređaja.
Slušanje audio multicast kanala može se obaviti i na drugim proizvodima, ali određeni klijent prikazuje slike također poslane putem IP multicasta. Ako želite slati određene fotografije s glazbom, možete koristiti opciju izbornika "Stranica 2" na poslužitelju, da odaberete samo slike koje želite, poništite odabir svih slika jednim klikom, a zatim odaberite one koje želite... p>
Svaki protokol ima prednosti i neugodnosti. UPnP i Multicast kanal mogu se koristiti samo na lokalnoj mreži (uglavnom Wi-Fi), HTTP streaming radi lokalno, ali i preko Interneta i koristite web preglednik kao klijent. UPnP i Multicast kanal nemaju siguran način kontrole pristupa, a bilo koji uređaj spojen na Wi-Fi mrežu može koristiti pokrenuti poslužitelj. S HTTP protokolom možete definirati korisnička imena i lozinke te postaviti datoteke u pristupne kategorije (grupe), ograničavajući pristup nekim medijskim datotekama za određene korisnike. Postavke poslužitelja dopuštaju ograničavanje datoteka koje se distribuiraju i postavljanje naziva kategorije po datoteci ako je potrebno.