FFmpeg (https://www.ffmpeg.org/) minangka solusi lintas platform lengkap kanggo ngrekam, ngowahi lan streaming audio lan video. FFmpeg minangka kerangka multimedia sing unggul, bisa decode, encode, transcode, mux, demux, stream, nyaring lan muter apa wae sing digawe manungsa lan mesin. Ndhukung format kuno sing paling ora jelas nganti pungkasan. Ora preduli yen dirancang dening sawetara panitia standar, komunitas utawa perusahaan.
Iki uga banget portabel: FFmpeg nyusun, mbukak, lan ngliwati infrastruktur pengujian FATE ing Linux, Mac OS X, Microsoft Windows, BSD, Solaris, lsp... ing macem-macem lingkungan mbangun, arsitektur mesin, lan konfigurasi.
Perpustakaan FFmpeg dhewe ana ing lisensi LGPL 2.1. Ngaktifake perpustakaan eksternal tartamtu (kaya libx264) ngganti lisensi dadi GPL 2 utawa luwih anyar.
Aku nggunakake skrip ffmpeg-android-maker (kontributor: Alexander Berezhnoi Javernaut + codacy-badger Codacy Badger + A2va) kanggo ngumpulake perpustakaan. Skrip iki ngundhuh kode sumber FFmpeg saka https://www.ffmpeg.org lan mbangun perpustakaan lan ngrakit kanggo Android. Skrip kasebut ngasilake perpustakaan bareng (*.so file) uga file header (*.h file).
Fokus utama ffmpeg-android-maker yaiku nyiapake perpustakaan sing dienggo bareng kanggo integrasi sing lancar menyang proyek Android. Skrip nyiapake direktori `output` sing arep digunakake. Lan ora mung proyek iki. Kode sumber ffmpeg-android-maker kasedhiya ing lisensi MIT. Deleng file LICENSE.txt kanggo rincian liyane babagan https://github.com/Javernaut/ffmpeg-android-maker/ Pustaka eXport-it FFmpeg mung dikompilasi karo libaom, libdav1d, liblame, libopus lan libtwolame...nanging ora kabeh perpustakaan sing ana gandhengane.
Kanggo ngembangake dhukungan Jawa kanggo FFmpeg lan mbukak ing Android 7.1 nganti 12, aku miwiti saka proyek MobileFFmpeg sing didokumentasikake ing https://github.com/tanersener/mobile-ffmpeg/ dening Taner Sener, sing ora dikelola maneh. ... lan dilisensi ing LGPL 3.0 ...
Pungkasane, aku nyiapake proyek JNI Android Studio karo perpustakaan, kalebu file lan kode dhukungan Java, lan nggawe file Pustaka .aar kanggo digabungake minangka perpustakaan tambahan menyang proyek sing wis ana.
Kanggo miwiti Saluran multicast kudu nggunakake klien, kanggo ngakses server UPnP ing jaringan lokal (Wi-Fi) kanthi dhukungan FFmpeg. Server iki kudu njawab karo dhaptar file sing diekspor. Yen server iki duwe dhukungan FFmpeg, teks cilik "Minangka saluran" kudu ditampilake kanthi warna abang ing mburi baris ndhuwur kaca dhaptar. Nalika teks kasebut "abang", ngeklik tombol "muter" kaya sadurunge nggunakake protokol UPnP. Yen sampeyan ngeklik teks kasebut, teks kasebut kudu dadi "ijo" lan ngeklik tombol "muter", sawise milih file video utawa audio, kudu miwiti "saluran".
File media sing dipilih dimainake kanthi cara sing padha tinimbang liwat UPnP, kajaba wektu tundha wiwitan luwih suwe amarga ana tugas tambahan. Sampeyan kudu njaga klien iki muter file media supaya pipa tetep aktif.
Multicast IP ora bisa digunakake liwat Internet, mung bisa digunakake ing Jaringan Area Lokal saengga utamane ing Wi-Fi. Saluran data multicast bisa dienggo bareng karo akeh klien bebarengan. Sampeyan ngirim aliran data media ing jaringan Wi-Fi lan nuduhake data kasebut ing piranti sing disambungake, meh bebarengan, mung beda wektu tundha latensi.
Kanthi streaming UPnP utawa HTTP, saben piranti mbutuhake bandwidth video sing ditampilake lan bandwidth global minangka jumlah lalu lintas loro kasebut. Kanthi streaming multicast, kita ngirim siji aliran data ing LAN sing dienggo bareng antarane sawetara klien.
Yen sampeyan nggunakake klien liyane ing jaringan sawise miwiti saluran, sampeyan kudu ndeleng baris tambahan ing jendela utama klien. Cukup ngeklik baris iki kudu miwiti pertunjukan.
Sampeyan uga bisa nggunakake produk liyane kayata VLC, SMplayer, ... kanggo nuduhake video utawa ngrungokake musik sing disebarake liwat saluran multicast mung nggunakake URL "UDP" sing ditampilake ing klien eXport-it.
p>Cara sing apik kanggo mungkasi Saluran multicast yaiku mungkasi saluran kasebut ing klien sing sampeyan miwiti amarga saluran iki dikontrol ing kana. Muter nganti pungkasan file media sing di-stream uga kudu mungkasi pertunjukan.
Kanggo miwiti saluran multicast mbutuhake bagean klien tartamtu saka aplikasi iki, padha karo klien eXport-it saka produk liyane sing paling anyar. Kanggo nggunakake saluran multicast sing mlaku bisa ditindakake karo klien aplikasi utawa karo produk liyane kaya VLC, SMPlayer, ... mlaku ing platform liyane utawa ing Android. Nalika nggunakake VLC URL kanggo nggunakake saluran Multicast lancar beda kaya udp://@239.255.147.111:27192... mung karo ekstra "@". Kanthi saluran UDP Multicast, data media dikirim mung sapisan kanggo ditampilake ing sawetara klien, nanging ora ana sinkronisasi nyata, lan wektu tundha bisa sawetara detik gumantung saka buffering lan karakteristik piranti.
Ngrungokake saluran multicast audio bisa ditindakake karo produk liyane nanging klien tartamtu nuduhake gambar uga dikirim liwat multicast IP. Yen sampeyan pengin ngirim foto tartamtu karo musik sampeyan, sampeyan bisa nggunakake pilihan menu "Page 2" ing server, kanggo milih mung gambar sing dikarepake, batal pilih kabeh gambar kanthi siji klik, banjur pilih iki sing dikarepake... p>
Ana kaluwihan lan ora nyaman karo saben protokol. Saluran UPnP lan Multicast mung bisa digunakake ing jaringan lokal (utamane Wi-Fi), streaming HTTP bisa digunakake sacara lokal nanging uga liwat Internet lan nggunakake browser Web minangka klien. Saluran UPnP lan Multicast ora duwe cara sing aman kanggo ngontrol akses, lan piranti apa wae sing disambungake ing jaringan Wi-Fi bisa nggunakake server sing mlaku. Kanthi protokol HTTP, sampeyan bisa nemtokake jeneng pangguna lan sandhi, lan nyetel file ing kategori akses (grup), mbatesi akses menyang sawetara file media kanggo pangguna tartamtu. Setelan server ngidini kanggo mbatesi file sing disebar lan nyetel jeneng kategori saben file yen dibutuhake.