FFmpeg (https://www.ffmpeg.org/) ni suluhisho kamili, la jukwaa mtambuka la kurekodi, kubadilisha na kutiririsha sauti na video. FFmpeg ndio mfumo mkuu wa media titika, unaoweza kusimbua, kusimba, kupitisha msimbo, mux, demux, kutiririsha, kuchuja na kucheza kitu chochote ambacho wanadamu na mashine wameunda. Inaauni miundo ya kale isiyojulikana zaidi hadi kwenye makali ya kukata. Haijalishi ikiwa ziliundwa na kamati fulani ya viwango, jumuiya au shirika.
Pia inabebeka sana: FFmpeg hukusanya, kuendesha, na kupitisha miundombinu yetu ya majaribio FATE kote Linux, Mac OS X, Microsoft Windows, BSDs, Solaris, n.k... chini ya anuwai ya mazingira ya ujenzi, usanifu wa mashine, na usanidi.
Maktaba ya FFmpeg yenyewe iko chini ya leseni ya LGPL 2.1. Kuwezesha maktaba fulani za nje (kama libx264) hubadilisha leseni kuwa GPL 2 au toleo jipya zaidi.
Nilitumia hati ya ffmpeg-android-maker (wachangiaji: Alexander Berezhnoi Javernaut + codacy-badger Codacy Badger + A2va) kukusanya maktaba. Hati hii inapakua msimbo chanzo wa FFmpeg kutoka https://www.ffmpeg.org na kuunda maktaba na kuikusanya kwa ajili ya Android. Hati hii inazalisha maktaba zilizoshirikiwa (*.so faili) pamoja na faili za vichwa (*.h faili).
Lengo kuu la ffmpeg-android-maker ni kuandaa maktaba zinazoshirikiwa kwa ujumuishaji wa kina katika mradi wa Android. Hati hutayarisha saraka ya `pato` ambayo inakusudiwa kutumika. Na sio jambo pekee ambalo mradi huu hufanya. Msimbo wa chanzo wa ffmpeg-android-maker unapatikana chini ya leseni ya MIT. Tazama faili ya LICENSE.txt kwa maelezo zaidi kwenye https://github.com/Javernaut/ffmpeg-android-maker/ Maktaba za eExport-it FFmpeg zimeundwa na libaom, libdav1d, liblame, libopus na libtwolame...lakini sio maktaba zote zinazohusiana.
Ili kukuza usaidizi wa Java kwa FFmpeg na kuiendesha kwenye Android 7.1 hadi 12, nilianza kutoka kwa mradi wa MobileFFmpeg uliorekodiwa kwenye https://github.com/tanersener/mobile-ffmpeg/ na Taner Sener, ambao hautunziwi tena. ... na imepewa leseni chini ya LGPL 3.0 ...
Mwishowe, nilitayarisha mradi wa JNI Android Studio pamoja na maktaba, ikijumuisha faili na msimbo wa usaidizi wa Java, na kutoa faili ya .aar ya Maktaba ili kuunganishwa kama maktaba ya ziada katika miradi yangu iliyopo.
Ili kuanzisha Kituo cha utangazaji anuwai kunahitaji kutumia mteja, kufikia seva ya UPnP kwenye mtandao wa ndani (Wi-Fi) kwa usaidizi wa FFmpeg. Seva hii inapaswa kujibu na orodha ya faili inazosafirisha. Ikiwa seva hii ina usaidizi wa FFmpeg, maandishi madogo "Kama chaneli" lazima yaonyeshwe kwa rangi nyekundu mwishoni mwa mstari wa juu wa ukurasa wa orodha. Wakati maandishi ni "nyekundu", kubofya kitufe cha "cheza" hufanya kazi kama kabla ya kutumia itifaki ya UPnP. Ukibofya maandishi, yanapaswa kuwa "kijani" na kubofya kitufe cha "cheza", baada ya kuchagua faili za video au sauti, inapaswa kuanzisha "chaneli".
Faili za midia zilizochaguliwa zinachezwa inavyoonekana kwa njia sawa kuliko kupitia UPnP, isipokuwa ucheleweshaji wa kuanza ni mrefu kwa sababu ya majukumu ya ziada. Ni lazima uweke mteja huyu akicheza faili za midia ili kuweka bomba amilifu.
Utangazaji anuwai wa IP haufanyi kazi kwenye Mtandao, hufanya kazi kwenye Mtandao wa Maeneo ya Ndani pekee, hivyo basi hasa kwenye Wi-Fi. Chaneli ya data ya utangazaji anuwai inaweza kushirikiwa na wateja wengi kwa wakati mmoja. Unatuma mtiririko wa data ya media kwenye mtandao wako wa Wi-Fi na unaonyesha data hizi kwenye vifaa vilivyounganishwa, karibu kwa usawa, tofauti tu ya ucheleweshaji wa kusubiri.
Kwa utiririshaji wa UPnP au HTTP, kila kifaa kinahitaji kipimo data cha video iliyoonyeshwa na kipimo data cha kimataifa ni jumla ya trafiki zote mbili. Kwa utiririshaji wa matangazo mengi, tunatuma mtiririko mmoja wa data kwenye LAN ambao unashirikiwa kati ya wateja wengi.
Ikiwa unatumia mteja mwingine kwenye mtandao wako baada ya kuanzisha kituo, unapaswa kuona laini ya ziada kwenye dirisha kuu la mteja. Kubofya tu kwenye mstari huu kunafaa kuanza onyesho.
Pia inawezekana kutumia bidhaa zingine kama VLC, SMplayer, ... kuonyesha video au kusikiliza muziki unaosambazwa kwenye kituo cha utangazaji anuwai kwa kutumia tu URL ya "UDP" inayoonyeshwa kwenye kiteja cha eXport-it. p>
Njia nzuri ya kusimamisha Idhaa ya utangazaji anuwai ni kuisimamisha kwa mteja uliyoianzisha kwa sababu chaneli hii inadhibitiwa hapo. Kucheza hadi mwisho wa faili za midia zinazotiririshwa kunafaa pia kutoa mwisho wa kipindi.
Ili kuanzisha kituo cha utangazaji anuwai kunahitaji sehemu maalum ya mteja ya programu hii, sawa na mteja wa e-Export-it wa bidhaa zangu zingine zilizosasishwa. Kutumia chaneli ya utangazaji anuwai kunaweza kufanywa na mteja wa programu au na bidhaa zingine kama vile VLC, SMPlayer, ... inayoendeshwa kwenye mifumo mingine au kwenye Android. Unapotumia VLC URL ya kutumia chaneli ya Multicast ni tofauti vizuri kama udp://@239.255.147.111:27192... kwa ziada "@". Kwa kutumia chaneli ya UDP Multicast data ya midia hutumwa mara moja pekee ili kuonyeshwa kwa wateja wengi, lakini hakuna usawazishaji halisi, na ucheleweshaji unaweza kuwa sekunde kulingana na kuakibisha na sifa za kifaa.
Kusikiliza kituo cha sauti cha utangazaji anuwai kunaweza kufanywa kwa bidhaa zingine lakini mteja mahususi huonyesha picha zinazotumwa kupitia utangazaji anuwai wa IP. Ikiwa ungependa kutuma picha mahususi na wewe muziki, unaweza kutumia chaguo la menyu ya "Ukurasa wa 2" kwenye seva, ili kuchagua picha unazotaka pekee, ubatilishe kuchagua picha zote kwa mbofyo mmoja, kisha uchague hizi unazotaka... p>
Kuna faida na usumbufu kwa kila itifaki. UPnP na chaneli ya Multicast inaweza tu kutumika kwenye mtandao wa ndani (hasa Wi-Fi), utiririshaji wa HTTP hufanya kazi ndani ya nchi lakini pia kwenye Mtandao na utumie kivinjari cha Wavuti kama mteja. Chaneli ya UPnP na Multicast hazina njia salama ya kudhibiti ufikiaji, na kifaa chochote kilichounganishwa kwenye mtandao wa Wi-Fi kinaweza kutumia seva inayoendesha. Kwa itifaki ya HTTP, unaweza kufafanua majina ya watumiaji na nywila, na kuweka faili katika kategoria za ufikiaji (vikundi), ukizuia ufikiaji wa faili zingine za media kwa watumiaji maalum. Mipangilio ya seva inaruhusu kuweka kikomo ni faili zipi zinazosambazwa na kuweka jina la kategoria kwa kila faili ikihitajika.