back

eXport-it FFmpeg

Mis on FFmpegi teek?

FFmpeg (https://www.ffmpeg.org/) on terviklik platvormideülene lahendus heli ja video salvestamiseks, teisendamiseks ja voogesitamiseks. FFmpeg on juhtiv multimeediumiraamistik, mis suudab dekodeerida, kodeerida, ümber kodeerida, segada, demuxida, voogesitada, filtreerida ja mängida peaaegu kõike, mida inimesed ja masinad on loonud. See toetab kõige ebaselgemaid iidseid vorminguid kuni tipptasemeni. Pole tähtis, kas need on välja töötatud mõne standardikomitee, kogukonna või ettevõtte poolt.

See on ka väga kaasaskantav: FFmpeg kompileerib, käitab ja edastab meie testimisinfrastruktuuri FATE Linuxi, Mac OS X-i, Microsoft Windowsi, BSD-de, Solarise jne vahel paljudes ehituskeskkondades, masinaarhitektuurides, ja konfiguratsioonid.

FFmpegi teek ise kuulub LGPL 2.1 litsentsi alla. Teatud väliste teekide (nt libx264) lubamine muudab litsentsi versiooniks GPL 2 või uuemaks.

Kuidas on see teek Androidi rakendusse integreeritud

Kasutasin teekide koostamiseks skripti ffmpeg-android-maker (kaastöötajad: Alexander Berezhnoi Javernaut + codacy-badger Codacy Badger + A2va). See skript laadib FFmpegi lähtekoodi alla saidilt https://www.ffmpeg.org ning loob raamatukogu ja koostab selle Androidi jaoks. Skript loob jagatud teeke (*.so-failid) ja päisefaile (*.h-failid).

Rakenduse ffmpeg-android-maker põhitähelepanu on jagatud teekide ettevalmistamisel Androidi projekti sujuvaks integreerimiseks. Skript valmistab ette 'väljundi' kataloogi, mis on mõeldud kasutamiseks. Ja see pole ainus asi, mida see projekt teeb. Rakenduse ffmpeg-android-maker lähtekood on saadaval MIT-i litsentsi all. Lisateavet leiate aadressilt https://github.com/Javernaut/ffmpeg-android-maker/ failist LICENSE.txt eXport-it FFmpegi teegid on lihtsalt koostatud libaomi, libdav1d, liblame, libopuse ja libtwolame'iga, kuid mitte kõik seotud teegid.

FFmpegi Java-toe arendamiseks ja selle käitamiseks operatsioonisüsteemides Android 7.1–12 alustasin Taner Seneri poolt aadressil https://github.com/tanersener/mobile-ffmpeg/ dokumenteeritud MobileFFmpegi projektist, mida enam ei hooldata. ... ja on litsentsitud LGPL 3.0 alusel ...

Lõpuks valmistasin JNI Android Studio projekti koos teekidega, lisasin failid ja Java tugikoodi ning genereerisin .aar Library faili, et integreerida see täiendava teegina oma olemasolevatesse projektidesse.


Kuidas käivitada multiedastuskanalit

Multisaatekanali käivitamiseks on vaja kasutada klienti, pääseda FFmpegi toega kohaliku võrgu (Wi-Fi) UPnP-serverile. See server peaks vastama eksporditavate failide loendiga. Kui sellel serveril on FFmpegi tugi, siis peab loendilehe ülemise rea lõpus olema punane väike tekst "Kanalina". Kui tekst on "punane", toimib nupu "esita" klõpsamine nagu enne UPnP protokolli kasutamist. Kui klõpsate tekstil, peaks see muutuma "roheliseks" ja klõpsates nuppu "Esita", pärast video- või helifailide valimist peaks käivitama "kanali".

Valitud meediumifaile esitatakse ilmselt samal viisil kui UPnP kaudu, välja arvatud juhul, kui käivitusviivitus on lisatoimingute tõttu pikem. Toru aktiivsena hoidmiseks peate sellel kliendil meediumifaile esitama.

Selle toru kasutamine teistes seadmetes

IP multisaade ei tööta üle Interneti, see töötab ainult kohtvõrgus, seega peamiselt WiFi kaudu. Multisaate andmekanalit saavad korraga jagada paljud kliendid. Saadate meediumiandmevoo oma WiFi-võrku ja kuvate neid andmeid ühendatud seadmetes peaaegu sünkroonselt, ainult latentsusaja viivituse erinevusega.

UPnP või HTTP voogesituse korral nõuab iga seade kuvatava video ribalaiust ja globaalne ribalaius on mõlema liikluse summa. Multisaadete voogesituse korral saadame kohtvõrgus ühe andmevoo, mida jagatakse mitme kliendi vahel.

Kui kasutate pärast kanali käivitamist oma võrgus teist klienti, peaksite kliendi peaaknas nägema täiendavat rida. Lihtsalt sellel real klõpsates peaks saade algama.

Video kuvamiseks või multiedastuskanali kaudu levitatava muusika kuulamiseks on võimalik kasutada ka muid tooteid, nagu VLC, SMplayer, eXport-it kliendis kuvatava UDP URL-i abil.

Multiedastuskanali peatamiseks

Hea viis multiedastuskanali peatamiseks on see peatada kliendil, millel te selle käivitasite, kuna seda kanalit juhitakse seal. Voogesitatud meediumifailide lõpuni esitamine peaks andma ka saate lõpu.

Praktilised kaalutlused

Multiedastuskanali käivitamiseks on vaja selle rakenduse konkreetset kliendiosa, mis on sama mis minu teiste ajakohaste toodete eXport-it klient. Töötavat multisaatekanalit saab kasutada rakenduskliendi või muude toodetega, nagu VLC, SMPlayer, ... mis töötavad muudel platvormidel või Androidis. Kui kasutate VLC-d, on multisaatekanali kasutamise URL sujuvalt erinev, näiteks udp://@239.255.147.111:27192... ainult lisatähega @. UDP multisaadete kanali puhul saadetakse meediumiandmed mitmele kliendile kuvamiseks ainult üks kord, kuid tegelikku sünkroonimist ei toimu ning viivitus võib olenevalt puhverdamisest ja seadme omadustest olla sekundites.

Heli multisaadete kanalit saab kuulata ka teistes toodetes, kuid konkreetne klient näitab pilte, mis on saadetud ka IP multisaadete kaudu. Kui soovite saata konkreetseid fotosid koos muusikaga, saate kasutada serveri menüüvalikut "Lehekülg 2", et valida ainult soovitud pildid, tühistada kõigi piltide valik ühe klõpsuga ja seejärel valida need, mida soovid...

Igal protokollil on eeliseid ja ebamugavusi. UPnP ja Multicast kanalit saab kasutada ainult kohalikus võrgus (peamiselt Wi-Fi), HTTP voogesitus toimib kohapeal, aga ka üle Interneti ning kliendina kasutatakse veebibrauserit. UPnP-l ja multisaatekanalil pole juurdepääsu kontrollimiseks turvalist viisi ning töötavat serverit saavad kasutada kõik Wi-Fi-võrguga ühendatud seadmed. HTTP-protokolli abil saate määrata kasutajanimesid ja paroole ning määrata faile juurdepääsukategooriatesse (rühmadesse), piirates teatud kasutajate juurdepääsu mõnele meediumifailile. Serveri sätted võimaldavad piirata levitatavaid faile ja vajadusel määrata failile kategooria nime.

back