back

eXport-it FFmpeg

Kas ir FFmpeg bibliotēka?

FFmpeg (https://www.ffmpeg.org/) ir pilnīgs, vairāku platformu risinājums audio un video ierakstīšanai, konvertēšanai un straumēšanai. FFmpeg ir vadošais multivides ietvars, kas spēj atšifrēt, kodēt, pārkodēt, sajaukt, demux, straumēt, filtrēt un atskaņot gandrīz visu, ko ir radījuši cilvēki un mašīnas. Tas atbalsta visneskaidrākos senos formātus līdz pat visprogresīvākajiem. Neatkarīgi no tā, vai tos izstrādājusi kāda standartu komiteja, kopiena vai korporācija.

Tā ir arī ļoti pārnēsājama: FFmpeg apkopo, palaiž un nodod mūsu testēšanas infrastruktūru FATE operētājsistēmās Linux, Mac OS X, Microsoft Windows, BSD, Solaris u.c. dažādās būvēšanas vidēs, mašīnu arhitektūrās, un konfigurācijas.

Pati FFmpeg bibliotēka ir saskaņā ar LGPL 2.1 licenci. Iespējojot noteiktas ārējās bibliotēkas (piemēram, libx264), licence tiek mainīta uz GPL 2 vai jaunāku versiju.

Kā šī bibliotēka ir integrēta Android lietojumprogrammā

Es izmantoju skriptu ffmpeg-android-maker (līdzstrādnieki: Aleksandrs Berežnojs Javernauts + codacy-badger Codacy Badger + A2va), lai apkopotu bibliotēkas. Šis skripts lejupielādē FFmpeg pirmkodu no https://www.ffmpeg.org un izveido bibliotēku un saliek to operētājsistēmai Android. Skripts veido koplietotās bibliotēkas (*.so failus), kā arī galvenes failus (*.h faili).

Ffmpeg-android-maker galvenais mērķis ir sagatavot koplietojamas bibliotēkas, lai tās netraucēti integrētu Android projektā. Skripts sagatavo izvades direktoriju, kas ir paredzēts lietošanai. Un tas nav vienīgais, ko šis projekts dara. ffmpeg-android-maker pirmkods ir pieejams saskaņā ar MIT licenci. Lai iegūtu plašāku informāciju, skatiet failu LICENSE.txt vietnē https://github.com/Javernaut/ffmpeg-android-maker/. eXport-it FFmpeg bibliotēkas ir tikai kompilētas ar libaom, libdav1d, liblame, libopus un libtwolame... bet ne visas saistītās bibliotēkas.

Lai izstrādātu Java atbalstu FFmpeg un palaistu to operētājsistēmā Android 7.1–12, es sāku no MobileFFmpeg projekta, kuru vietnē https://github.com/tanersener/mobile-ffmpeg/ dokumentēja Taners Seners un kurš vairs netiek uzturēts. ... un ir licencēts saskaņā ar LGPL 3.0 ...

Visbeidzot, es sagatavoju JNI Android Studio projektu ar bibliotēkām, iekļāvu failus un Java atbalsta kodu un ģenerēju .aar bibliotēkas failu, ko integrēt kā papildu bibliotēku manos esošajos projektos.


Kā sākt multiraides kanālu

Lai sāktu multiraides kanālu, ir jāizmanto klients, jāpiekļūst UPnP serverim jūsu lokālajā tīklā (Wi-Fi) ar FFmpeg atbalstu. Šim serverim ir jāatbild ar eksportēto failu sarakstu. Ja šim serverim ir FFmpeg atbalsts, saraksta lapas augšējās rindas beigās sarkanā krāsā ir jāparāda mazs teksts "Kā kanāls". Kad teksts ir "sarkans", noklikšķinot uz pogas "atskaņot", darbojas tāpat kā pirms UPnP protokola lietošanas. Ja noklikšķināsiet uz teksta, tam vajadzētu kļūt "zaļam" un, noklikšķinot uz pogas "atskaņot", pēc video vai audio failu atlasīšanas jāsāk "kanāls".

Atlasītie multivides faili šķietami tiek atskaņoti tādā pašā veidā nekā, izmantojot UPnP, izņemot to, ka palaišanas aizkave ir ilgāka papildu uzdevumu dēļ. Lai šis klients būtu aktīvs, šim klientam ir jāturpina atskaņot multivides failus.

Šīs caurules izmantošana citās ierīcēs

IP multiraide nedarbojas internetā, tā darbojas tikai lokālajā tīklā, tādējādi galvenokārt Wi-Fi tīklā. Multiraides datu kanālu var koplietot daudzi klienti vienlaikus. Jūs sūtāt multivides datu plūsmu savā Wi-Fi tīklā un gandrīz sinhroni rādāt šos datus pievienotajās ierīcēs, tikai ar latentuma aizkaves starpību.

Izmantojot UPnP vai HTTP straumēšanu, katrai ierīcei ir nepieciešams rādītā video joslas platums, un globālais joslas platums ir abu trafika summa. Izmantojot multiraides straumēšanu, mēs nosūtām vienu datu plūsmu LAN, kas tiek koplietota starp vairākiem klientiem.

Ja pēc kanāla palaišanas tīklā izmantojat citu klientu, klienta galvenajā logā vajadzētu redzēt papildu rindiņu. Noklikšķinot uz šīs rindiņas, raidījumam vajadzētu sākt.

Ir iespējams izmantot arī citus produktus, piemēram, VLC, SMplayer, ..., lai rādītu videoklipu vai klausītos mūziku, kas izplatīta multiraides kanālā, tikai izmantojot eXport-it klientā redzamo UDP URL.

Lai apturētu multiraides kanālu

Labākais veids, kā apturēt multiraides kanālu, ir to apturēt klientā, kurā to sākāt, jo šis kanāls tiek kontrolēts tur. Atskaņojot līdz straumēto multivides failu beigām, vajadzētu būt arī pārraides beigām.

Praktiski apsvērumi

Lai sāktu multiraides kanālu, ir nepieciešama konkrēta šīs lietojumprogrammas klienta daļa, tāda pati kā eXport-it klientam citiem maniem atjauninātajiem produktiem. Darbojošu multiraides kanālu var izmantot, izmantojot lietojumprogrammas klientu vai citus produktus, piemēram, VLC, SMPlayer, ..., kas darbojas citās platformās vai operētājsistēmā Android. Lietojot VLC, URL, lai izmantotu multiraides kanālu, vienmērīgi atšķiras, piemēram, udp://@239.255.147.111:27192... tikai ar papildu "@". Izmantojot UDP multiraides kanālu, multivides dati tiek nosūtīti tikai vienu reizi, lai tos rādītu vairākos klientiem, taču nav reālas sinhronizācijas, un aizkave var būt sekundes atkarībā no buferizācijas un ierīces īpašībām.

Audio multiraides kanālu var klausīties citos produktos, bet konkrētais klients rāda arī attēlus, kas nosūtīti, izmantojot IP multiraidi. Ja vēlaties nosūtīt konkrētus fotoattēlus kopā ar mūziku, varat izmantot servera izvēlnes opciju "Lapa 2", lai atlasītu tikai vajadzīgos attēlus, ar vienu klikšķi noņemiet atlasi visiem attēliem, pēc tam atlasiet tos, ko vēlaties...

Katram protokolam ir priekšrocības un neērtības. UPnP un Multicast kanālu var izmantot tikai lokālajā tīklā (galvenokārt Wi-Fi), HTTP straumēšana darbojas lokāli, bet arī internetā un kā klientu izmanto Web pārlūkprogrammu. UPnP un Multicast kanālam nav droša veida, lai kontrolētu piekļuvi, un jebkura ierīce, kas savienota ar Wi-Fi tīklu, var izmantot darbojošos serveri. Izmantojot HTTP protokolu, varat definēt lietotājvārdus un paroles, kā arī iestatīt failus piekļuves kategorijās (grupās), ierobežojot piekļuvi dažiem multivides failiem konkrētiem lietotājiem. Servera iestatījumi ļauj ierobežot, kuri faili tiek izplatīti, un, ja nepieciešams, katram failam iestatīt kategorijas nosaukumu.

back