FFmpeg (https://www.ffmpeg.org/) je popolna rešitev za več platform za snemanje, pretvarjanje in pretakanje zvoka in videa. FFmpeg je vodilni multimedijski okvir, ki lahko dekodira, kodira, transkodira, mux, demux, pretaka, filtrira in predvaja skoraj vse, kar so ustvarili ljudje in stroji. Podpira najbolj nejasne starodavne formate do najsodobnejših. Ne glede na to, ali jih je zasnoval kakšen odbor za standarde, skupnost ali korporacija.
Prav tako je zelo prenosljiv: FFmpeg prevaja, zažene in posreduje našo infrastrukturo za testiranje FATE v Linux, Mac OS X, Microsoft Windows, BSD, Solaris itd... v najrazličnejših okoljih gradnje, strojnih arhitekturah, in konfiguracije.
Knjižnica FFmpeg je pod licenco LGPL 2.1. Če omogočite nekatere zunanje knjižnice (na primer libx264), spremenite licenco v GPL 2 ali novejšo.
Za sestavljanje knjižnic sem uporabil skript ffmpeg-android-maker (sodelujoči: Alexander Berezhnoi Javernaut + codacy-badger Codacy Badger + A2va). Ta skript prenese izvorno kodo FFmpeg s https://www.ffmpeg.org in zgradi knjižnico ter jo sestavi za Android. Skript ustvari knjižnice v skupni rabi (datoteke *.so) in datoteke z glavami (datoteke *.h).
Glavni poudarek ffmpeg-android-maker je priprava skupnih knjižnic za brezhibno integracijo v projekt Android. Skript pripravi imenik `output`, ki je namenjen uporabi. In to ni edina stvar, ki jo ta projekt počne. Izvorna koda ffmpeg-android-maker je na voljo pod licenco MIT. Oglejte si datoteko LICENSE.txt za več podrobnosti na https://github.com/Javernaut/ffmpeg-android-maker/ Knjižnice eXport-it FFmpeg so samo prevedene z libaom, libdav1d, liblame, libopus in libtwolame...vendar ne z vsemi povezanimi knjižnicami.
Da bi razvil podporo Java za FFmpeg in jo zagnal v sistemu Android 7.1 do 12, sem začel s projektom MobileFFmpeg, ki ga je na https://github.com/tanersener/mobile-ffmpeg/ dokumentiral Taner Sener, ki se ne vzdržuje več ... in je licenciran pod LGPL 3.0 ...
Končno sem pripravil projekt JNI Android Studio s knjižnicami, vključil datoteke in podporno kodo za Javo ter ustvaril datoteko knjižnice .aar, ki jo je treba vključiti kot dodatno knjižnico v moje obstoječe projekte.
Če želite zagnati kanal za več oddajanja, morate uporabiti odjemalca za dostop do strežnika UPnP v vašem lokalnem omrežju (Wi-Fi) s podporo FFmpeg. Ta strežnik mora odgovoriti s seznamom datotek, ki jih izvozi. Če ta strežnik podpira FFmpeg, mora biti na koncu zgornje vrstice strani s seznamom prikazano majhno besedilo "Kot kanal". Ko je besedilo "rdeče", klik na gumb "predvajaj" deluje kot prej pri uporabi protokola UPnP. Če kliknete besedilo, naj postane "zeleno" in s klikom na gumb "predvajaj" po izbiri video ali zvočnih datotek zaženete "kanal".
Izbrane predstavnostne datoteke se očitno predvajajo na enak način kot prek UPnP, le da je zagonska zamuda daljša zaradi dodatnih opravil. Ta odjemalec mora nadaljevati s predvajanjem predstavnostnih datotek, da ostane cev aktivna.
IP multicast ne deluje prek interneta, deluje samo v lokalnem omrežju, torej predvsem na Wi-Fi. Več odjemalcev lahko hkrati deli več odjemalcev. Pošiljate tok predstavnostnih podatkov v svojem omrežju Wi-Fi in prikazujete te podatke na povezanih napravah, skoraj sinhrono, samo razlika v zakasnitvi.
Pri pretakanju UPnP ali HTTP vsaka naprava zahteva pasovno širino prikazanega videoposnetka, globalna pasovna širina pa je vsota obeh prometa. Pri pretakanju več oddajanja pošljemo en tok podatkov v LAN, ki si ga deli več odjemalcev.
Če po zagonu kanala v svojem omrežju uporabljate drugega odjemalca, bi morali v glavnem oknu odjemalca videti dodatno vrstico. Samo s klikom na to vrstico bi se oddaja začela.
Mogoče je uporabiti tudi druge izdelke, kot so VLC, SMplayer, ... za prikaz videa ali poslušanje glasbe, distribuirane po kanalu za več oddajanja, samo z uporabo URL-ja »UDP«, prikazanega na odjemalcu eXport-it. p>
Dober način za zaustavitev večoddajnega kanala je, da ga ustavite na odjemalcu, na katerem ste ga začeli, ker je ta kanal tam nadzorovan. Predvajanje do konca pretočnih predstavnostnih datotek bi moralo prinesti tudi konec oddaje.
Če želite zagnati kanal za več oddajanja, potrebujete poseben odjemalski del te aplikacije, enako kot odjemalec eXport-it mojih drugih posodobljenih izdelkov. Za uporabo tekočega kanala za več oddajanja je mogoče z odjemalcem aplikacije ali z drugimi izdelki, kot so VLC, SMPlayer, ..., ki delujejo na drugih platformah ali na Androidu. Pri uporabi VLC je URL za uporabo kanala za več oddajanja gladko drugačen, kot je udp://@239.255.147.111:27192 ... samo z dodatnim "@". Pri kanalu UDP Multicast se predstavnostni podatki pošljejo samo enkrat, da se prikažejo na več odjemalcih, vendar ni prave sinhronizacije, zakasnitev pa je lahko sekunde, odvisno od medpomnilnika in značilnosti naprave.
Poslušanje zvočnega kanala za več oddajanja je mogoče izvajati z drugimi izdelki, vendar določen odjemalec prikazuje slike, poslane tudi preko IP multicast. Če želite z glasbo poslati določene fotografije, lahko uporabite možnost menija "Stran 2" na strežniku, da izberete samo slike, ki jih želite, z enim klikom prekličete izbor vseh slik in nato izberete tiste, ki jih želite ... p>
Vsak protokol ima prednosti in neprijetnosti. Kanal UPnP in Multicast se lahko uporablja samo v lokalnem omrežju (predvsem Wi-Fi), pretakanje HTTP deluje lokalno, pa tudi prek interneta in uporablja spletni brskalnik kot odjemalca. UPnP in kanal Multicast nimata varnega načina za nadzor dostopa in katera koli naprava, povezana v omrežje Wi-Fi, lahko uporablja delujoči strežnik. S protokolom HTTP lahko definirate uporabniška imena in gesla ter datoteke nastavite v kategorije (skupine) dostopa, s čimer omejite dostop do nekaterih predstavnostnih datotek za določene uporabnike. Nastavitve strežnika dovoljujejo, da omejite, katere datoteke se distribuirajo, in po potrebi nastavite ime kategorije na datoteko.