FFmpeg (https://www.ffmpeg.org/) ເປັນການແກ້ໄຂທີ່ສົມບູນແບບຂ້າມເວທີເພື່ອບັນທຶກ, ແປງແລະນ້ໍາສຽງແລະວິດີໂອ. FFmpeg ເປັນກອບມັນຕິມີເດຍຊັ້ນນໍາ, ສາມາດຖອດລະຫັດ, ເຂົ້າລະຫັດ, transcode, mux, demux, stream, filter ແລະຫຼິ້ນ pretty ຫຼາຍສິ່ງທີ່ມະນຸດແລະເຄື່ອງຈັກໄດ້ສ້າງ. ມັນສະຫນັບສະຫນູນຮູບແບບວັດຖຸບູຮານທີ່ບໍ່ຊັດເຈນທີ່ສຸດເຖິງການຕັດແຂບ. ບໍ່ວ່າພວກມັນຖືກອອກແບບໂດຍຄະນະກໍາມະການມາດຕະຖານ, ຊຸມຊົນ ຫຼືບໍລິສັດ.
ມັນຍັງມີການເຄື່ອນໄຫວໄດ້ສູງ: FFmpeg ລວບລວມ, ແລ່ນ, ແລະຜ່ານໂຄງລ່າງການທົດສອບ FATE ຂອງພວກເຮົາທົ່ວ Linux, Mac OS X, Microsoft Windows, BSDs, Solaris, ແລະອື່ນໆ... ພາຍໃຕ້ສະພາບແວດລ້ອມການກໍ່ສ້າງທີ່ຫຼາກຫຼາຍ, ສະຖາປັດຕະຍະກຳຂອງເຄື່ອງຈັກ, ແລະການຕັ້ງຄ່າ.
ຫ້ອງສະໝຸດ FFmpeg ຕົວຂອງມັນເອງຢູ່ພາຍໃຕ້ ໃບອະນຸຍາດ LGPL 2.1. ການເປີດໃຊ້ຫ້ອງສະໝຸດພາຍນອກສະເພາະ (ເຊັ່ນ: libx264) ປ່ຽນໃບອະນຸຍາດເປັນ GPL 2 ຫຼືຫຼັງຈາກນັ້ນ.
ຂ້ອຍໃຊ້ ffmpeg-android-maker (ຜູ້ປະກອບສ່ວນ: Alexander Berezhnoi Javernaut + codacy-badger Codacy Badger + A2va) ເພື່ອລວບລວມຫ້ອງສະໝຸດ. ສະຄຣິບນີ້ດາວໂຫລດລະຫັດແຫຼ່ງຂອງ FFmpeg ຈາກ https://www.ffmpeg.org ແລະສ້າງຫ້ອງສະຫມຸດແລະປະກອບມັນສໍາລັບ Android. ສະຄຣິບສ້າງຫ້ອງສະໝຸດທີ່ໃຊ້ຮ່ວມກັນ (*.so files) ເຊັ່ນດຽວກັນກັບໄຟລ໌ສ່ວນຫົວ (*.h files).
ຈຸດສຸມຕົ້ນຕໍຂອງ ffmpeg-android-maker ແມ່ນການກະກຽມຫ້ອງສະຫມຸດທີ່ແບ່ງປັນສໍາລັບການເຊື່ອມໂຍງເຂົ້າໄປໃນໂຄງການ Android ຢ່າງບໍ່ຢຸດຢັ້ງ. script ກະກຽມໄດເລກະທໍລີ 'output' ທີ່ຫມາຍຄວາມວ່າຈະຖືກນໍາໃຊ້. ແລະມັນບໍ່ແມ່ນສິ່ງດຽວທີ່ໂຄງການນີ້ເຮັດ. ລະຫັດແຫຼ່ງຂອງ ffmpeg-android-maker ແມ່ນມີໃຫ້ພາຍໃຕ້ໃບອະນຸຍາດ MIT. ເບິ່ງ ໄຟລ໌ LICENSE.txt ສໍາລັບລາຍລະອຽດເພີ່ມເຕີມຢູ່ https://github.com/Javernaut/ffmpeg-android-maker/ ຫ້ອງສະໝຸດ eXport-it FFmpeg ພຽງແຕ່ຖືກລວບລວມດ້ວຍ libaom, libdav1d, liblame, libopus ແລະ libtwolame... ແຕ່ບໍ່ແມ່ນຫ້ອງສະໝຸດທີ່ກ່ຽວຂ້ອງທັງໝົດ.
ເພື່ອພັດທະນາການສະຫນັບສະຫນູນ Java ສໍາລັບ FFmpeg ແລະດໍາເນີນການໃນ Android 7.1 ເຖິງ 12, ຂ້າພະເຈົ້າໄດ້ເລີ່ມຕົ້ນຈາກໂຄງການ MobileFFmpeg ທີ່ບັນທຶກໄວ້ໃນ https://github.com/tanersener/mobile-ffmpeg/ ໂດຍ Taner Sener, ເຊິ່ງບໍ່ໄດ້ຮັກສາໄວ້ອີກແລ້ວ ... ແລະໄດ້ຮັບອະນຸຍາດພາຍໃຕ້ LGPL 3.0 ...
ສຸດທ້າຍ, ຂ້າພະເຈົ້າໄດ້ກະກຽມໂຄງການ JNI Android Studio ກັບຫ້ອງສະໝຸດ, ປະກອບມີໄຟລ໌ ແລະລະຫັດສະຫນັບສະຫນູນ Java, ແລະສ້າງໄຟລ໌ .aar Library ເພື່ອປະສົມປະສານເປັນຫ້ອງສະໝຸດເພີ່ມເຕີມເຂົ້າໃນໂຄງການທີ່ມີຢູ່ຂອງຂ້ອຍ.
ເພື່ອເລີ່ມຕົ້ນຊ່ອງ multicast ຕ້ອງການໃຊ້ລູກຂ່າຍ, ເພື່ອເຂົ້າເຖິງເຊີບເວີ UPnP ໃນເຄືອຂ່າຍທ້ອງຖິ່ນຂອງທ່ານ (Wi-Fi) ດ້ວຍການຮອງຮັບ FFmpeg. ເຊີບເວີນີ້ຄວນຕອບດ້ວຍລາຍຊື່ໄຟລ໌ທີ່ມັນສົ່ງອອກ. ຖ້າເຄື່ອງແມ່ຂ່າຍນີ້ມີການສະຫນັບສະຫນູນ FFmpeg, ຂໍ້ຄວາມຂະຫນາດນ້ອຍ "As a channel" ຕ້ອງສະແດງເປັນສີແດງໃນຕອນທ້າຍຂອງແຖວເທິງຂອງຫນ້າບັນຊີລາຍຊື່. ເມື່ອຂໍ້ຄວາມເປັນ "ສີແດງ", ການຄລິກໃສ່ປຸ່ມ "ຫຼິ້ນ" ເຮັດວຽກຄືກັບກ່ອນທີ່ຈະໃຊ້ UPnP protocol. ຖ້າຫາກທ່ານຄລິກໃສ່ຂໍ້ຄວາມ, ມັນຄວນຈະກາຍເປັນ "ສີຂຽວ" ແລະການຄລິກໃສ່ປຸ່ມ "ຫຼິ້ນ", ຫຼັງຈາກການເລືອກໄຟລ໌ວິດີໂອຫຼືສຽງ, ຄວນຈະເລີ່ມຕົ້ນ "ຊ່ອງ".
ໄຟລ໌ມີເດຍທີ່ເລືອກແມ່ນຈະຫຼິ້ນໃນແບບດຽວກັນກວ່າຜ່ານ UPnP, ຍົກເວັ້ນຄວາມລ່າຊ້າຂອງການເລີ່ມຕົ້ນແມ່ນດົນກວ່າເນື່ອງຈາກວຽກງານເພີ່ມເຕີມ. ທ່ານຕ້ອງໃຫ້ລູກຄ້າຄົນນີ້ຫຼິ້ນໄຟມີເດຍໄວ້ເພື່ອໃຫ້ທໍ່ມີການເຄື່ອນໄຫວ.
IP multicast ບໍ່ໄດ້ເຮັດວຽກຜ່ານອິນເຕີເນັດ, ມັນເຮັດວຽກຢູ່ໃນເຄືອຂ່າຍທ້ອງຖິ່ນເທົ່ານັ້ນ, ດັ່ງນັ້ນສ່ວນໃຫຍ່ແມ່ນຢູ່ໃນ Wi-Fi. ຊ່ອງຂໍ້ມູນ multicast ສາມາດຖືກແບ່ງປັນໂດຍລູກຄ້າຫຼາຍຄົນພ້ອມກັນ. ທ່ານກຳລັງສົ່ງກະແສຂໍ້ມູນສື່ໃນເຄືອຂ່າຍ Wi-Fi ຂອງເຈົ້າ ແລະສະແດງຂໍ້ມູນເຫຼົ່ານີ້ຢູ່ໃນອຸປະກອນທີ່ເຊື່ອມຕໍ່, ເກືອບຊິ້ງກົງກັນ, ພຽງແຕ່ຄວາມແຕກຕ່າງຄວາມລ່າຊ້າໃນການຕອບສະໜອງ.
ດ້ວຍ UPnP ຫຼື HTTP streaming, ແຕ່ລະອຸປະກອນຕ້ອງການແບນວິດຂອງວິດີໂອທີ່ສະແດງແລະແບນວິດທົ່ວໂລກແມ່ນຜົນລວມຂອງທັງສອງການຈະລາຈອນ. ດ້ວຍ multicast streaming, ພວກເຮົາສົ່ງຂໍ້ມູນຫນຶ່ງກະແສໃນ LAN ເຊິ່ງຖືກແບ່ງປັນລະຫວ່າງລູກຄ້າຫຼາຍໆຄົນ.
ຖ້າທ່ານໃຊ້ລູກຂ່າຍອື່ນໃນເຄືອຂ່າຍຂອງທ່ານຫຼັງຈາກເລີ່ມຕົ້ນຊ່ອງ, ທ່ານຄວນເຫັນແຖວເພີ່ມເຕີມຢູ່ໃນປ່ອງຢ້ຽມຫຼັກຂອງລູກຄ້າ. ພຽງແຕ່ຄລິກໃສ່ເສັ້ນນີ້ຄວນຈະເລີ່ມຕົ້ນການສະແດງ.
ມັນຍັງເປັນໄປໄດ້ທີ່ຈະນໍາໃຊ້ຜະລິດຕະພັນອື່ນໆເຊັ່ນ VLC, SMplayer, ... ເພື່ອສະແດງວິດີໂອຫຼືການຟັງເພງທີ່ແຈກຢາຍໃນຊ່ອງ multicast ພຽງແຕ່ການນໍາໃຊ້ "UDP" URL ສະແດງໃຫ້ເຫັນຢູ່ໃນ eXport-it client. p >
ວິທີທີ່ດີສຳລັບການຢຸດຊ່ອງ multicast ແມ່ນຢຸດມັນຢູ່ໃນລູກຄ້າທີ່ທ່ານເລີ່ມມັນເພາະວ່າຊ່ອງນີ້ຖືກຄວບຄຸມຢູ່ທີ່ນັ້ນ. ການຫຼິ້ນຈົນຈົບຂອງໄຟລ໌ມີເດຍທີ່ຖ່າຍທອດແລ້ວຄວນເຮັດໃຫ້ການສະແດງຈົບລົງ.
ເພື່ອເລີ່ມຕົ້ນຊ່ອງ multicast ຕ້ອງການສ່ວນລູກຄ້າສະເພາະຂອງແອັບພລິເຄຊັນນີ້, ຄືກັນກັບລູກຄ້າ eXport-it ຂອງຜະລິດຕະພັນອັບເດດອື່ນໆຂອງຂ້ອຍ. ເພື່ອໃຊ້ຊ່ອງ multicast ແລ່ນສາມາດເຮັດໄດ້ກັບລູກຄ້າແອັບພລິເຄຊັນຫຼືກັບຜະລິດຕະພັນອື່ນໆເຊັ່ນ VLC, SMPlayer, ... ແລ່ນຢູ່ໃນເວທີອື່ນໆຫຼືໃນ Android. ໃນເວລາທີ່ການນໍາໃຊ້ VLC URL ການນໍາໃຊ້ຊ່ອງທາງ Multicast ແມ່ນແຕກຕ່າງກັນຢ່າງກ້ຽງຄື udp://@239.255.147.111:27192... ພຽງແຕ່ມີ "@" ເພີ່ມເຕີມ. ດ້ວຍຊ່ອງ UDP Multicast ຂໍ້ມູນສື່ຈະຖືກສົ່ງພຽງແຕ່ຄັ້ງດຽວເພື່ອສະແດງຢູ່ໃນລູກຂ່າຍຫຼາຍອັນ, ແຕ່ບໍ່ມີການຊິງໂຄຣໄນທີ່ແທ້ຈິງ, ແລະຄວາມລ່າຊ້າສາມາດເປັນວິນາທີຂຶ້ນກັບ buffering ແລະຄຸນລັກສະນະຂອງອຸປະກອນ.
ການຟັງຊ່ອງ multicast ສຽງສາມາດເຮັດໄດ້ກັບຜະລິດຕະພັນອື່ນໆແຕ່ລູກຄ້າສະເພາະສະແດງໃຫ້ເຫັນຮູບພາບທີ່ສົ່ງຜ່ານ IP multicast. ຖ້າທ່ານຕ້ອງການສົ່ງຮູບພາບສະເພາະກັບເພງຂອງທ່ານ, ທ່ານສາມາດໃຊ້ຕົວເລືອກເມນູ "ໜ້າ 2" ໃນເຊີບເວີ, ເພື່ອເລືອກສະເພາະຮູບທີ່ທ່ານຕ້ອງການ, ຍົກເລີກການເລືອກທຸກຮູບດ້ວຍການຄລິກດຽວ, ຈາກນັ້ນເລືອກສິ່ງທີ່ທ່ານຕ້ອງການ... p >
ມີຂໍ້ດີ ແລະຄວາມບໍ່ສະດວກກັບແຕ່ລະໂປຣໂຕຄໍ. ຊ່ອງ UPnP ແລະ Multicast ສາມາດໃຊ້ໄດ້ໃນເຄືອຂ່າຍທ້ອງຖິ່ນເທົ່ານັ້ນ (ສ່ວນໃຫຍ່ແມ່ນ Wi-Fi), HTTP streaming ເຮັດວຽກຢູ່ໃນທ້ອງຖິ່ນແຕ່ຍັງຜ່ານອິນເຕີເນັດແລະໃຊ້ຕົວທ່ອງເວັບເປັນລູກຄ້າ. ຊ່ອງ UPnP ແລະ Multicast ບໍ່ມີວິທີການທີ່ປອດໄພໃນການຄວບຄຸມການເຂົ້າເຖິງ, ແລະອຸປະກອນໃດໆທີ່ເຊື່ອມຕໍ່ຢູ່ໃນເຄືອຂ່າຍ Wi-Fi ສາມາດນໍາໃຊ້ເຄື່ອງແມ່ຂ່າຍທີ່ແລ່ນ. ດ້ວຍໂປໂຕຄອນ HTTP, ທ່ານສາມາດກໍານົດຊື່ຜູ້ໃຊ້ແລະລະຫັດຜ່ານ, ແລະກໍານົດໄຟລ໌ໃນປະເພດການເຂົ້າເຖິງ (ກຸ່ມ), ຈໍາກັດການເຂົ້າເຖິງບາງໄຟລ໌ສື່ມວນຊົນສໍາລັບຜູ້ໃຊ້ສະເພາະ. ການຕັ້ງຄ່າຂອງເຊີບເວີອະນຸຍາດໃຫ້ຈໍາກັດວ່າໄຟລ໌ໃດຖືກແຈກຢາຍແລະການຕັ້ງຊື່ປະເພດຕໍ່ໄຟລ໌ຖ້າຫາກວ່າຕ້ອງການ.