back

eXport-it FFmpeg

ຫ້ອງສະໝຸດ FFmpeg ແມ່ນຫຍັງ?

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 ຫຼືຫຼັງຈາກນັ້ນ.

ຫ້ອງສະໝຸດນີ້ປະສົມປະສານແນວໃດຢູ່ໃນແອັບພລິເຄຊັນ Android

ຂ້ອຍໃຊ້ 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

ເພື່ອເລີ່ມຕົ້ນຊ່ອງ 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.

ເພື່ອຢຸດຊ່ອງ multicast

ວິທີທີ່ດີສຳລັບການຢຸດຊ່ອງ multicast ແມ່ນຢຸດມັນຢູ່ໃນລູກຄ້າທີ່ທ່ານເລີ່ມມັນເພາະວ່າຊ່ອງນີ້ຖືກຄວບຄຸມຢູ່ທີ່ນັ້ນ. ການຫຼິ້ນຈົນຈົບຂອງໄຟລ໌ມີເດຍທີ່ຖ່າຍທອດແລ້ວຄວນເຮັດໃຫ້ການສະແດງຈົບລົງ.

ການພິຈາລະນາພາກປະຕິບັດ

ເພື່ອເລີ່ມຕົ້ນຊ່ອງ multicast ຕ້ອງການສ່ວນລູກຄ້າສະເພາະຂອງແອັບພລິເຄຊັນນີ້, ຄືກັນກັບລູກຄ້າ eXport-it ຂອງຜະລິດຕະພັນອັບເດດອື່ນໆຂອງຂ້ອຍ. ເພື່ອໃຊ້ຊ່ອງ multicast ແລ່ນສາມາດເຮັດໄດ້ກັບລູກຄ້າແອັບພລິເຄຊັນຫຼືກັບຜະລິດຕະພັນອື່ນໆເຊັ່ນ VLC, SMPlayer, ... ແລ່ນຢູ່ໃນເວທີອື່ນໆຫຼືໃນ Android. ໃນ​ເວ​ລາ​ທີ່​ການ​ນໍາ​ໃຊ້ VLC URL ການ​ນໍາ​ໃຊ້​ຊ່ອງ​ທາງ Multicast ແມ່ນ​ແຕກ​ຕ່າງ​ກັນ​ຢ່າງ​ກ້ຽງ​ຄື udp://@239.255.147.111:27192... ພຽງ​ແຕ່​ມີ "@​" ເພີ່ມ​ເຕີມ​. ດ້ວຍຊ່ອງ UDP Multicast ຂໍ້ມູນສື່ຈະຖືກສົ່ງພຽງແຕ່ຄັ້ງດຽວເພື່ອສະແດງຢູ່ໃນລູກຂ່າຍຫຼາຍອັນ, ແຕ່ບໍ່ມີການຊິງໂຄຣໄນທີ່ແທ້ຈິງ, ແລະຄວາມລ່າຊ້າສາມາດເປັນວິນາທີຂຶ້ນກັບ buffering ແລະຄຸນລັກສະນະຂອງອຸປະກອນ.

ການຟັງຊ່ອງ multicast ສຽງສາມາດເຮັດໄດ້ກັບຜະລິດຕະພັນອື່ນໆແຕ່ລູກຄ້າສະເພາະສະແດງໃຫ້ເຫັນຮູບພາບທີ່ສົ່ງຜ່ານ IP multicast. ຖ້າທ່ານຕ້ອງການສົ່ງຮູບພາບສະເພາະກັບເພງຂອງທ່ານ, ທ່ານສາມາດໃຊ້ຕົວເລືອກເມນູ "ໜ້າ 2" ໃນເຊີບເວີ, ເພື່ອເລືອກສະເພາະຮູບທີ່ທ່ານຕ້ອງການ, ຍົກເລີກການເລືອກທຸກຮູບດ້ວຍການຄລິກດຽວ, ຈາກນັ້ນເລືອກສິ່ງທີ່ທ່ານຕ້ອງການ...

ມີຂໍ້ດີ ແລະຄວາມບໍ່ສະດວກກັບແຕ່ລະໂປຣໂຕຄໍ. ຊ່ອງ UPnP ແລະ Multicast ສາມາດໃຊ້ໄດ້ໃນເຄືອຂ່າຍທ້ອງຖິ່ນເທົ່ານັ້ນ (ສ່ວນໃຫຍ່ແມ່ນ Wi-Fi), HTTP streaming ເຮັດວຽກຢູ່ໃນທ້ອງຖິ່ນແຕ່ຍັງຜ່ານອິນເຕີເນັດແລະໃຊ້ຕົວທ່ອງເວັບເປັນລູກຄ້າ. ຊ່ອງ UPnP ແລະ Multicast ບໍ່ມີວິທີການທີ່ປອດໄພໃນການຄວບຄຸມການເຂົ້າເຖິງ, ແລະອຸປະກອນໃດໆທີ່ເຊື່ອມຕໍ່ຢູ່ໃນເຄືອຂ່າຍ Wi-Fi ສາມາດນໍາໃຊ້ເຄື່ອງແມ່ຂ່າຍທີ່ແລ່ນ. ດ້ວຍໂປໂຕຄອນ HTTP, ທ່ານສາມາດກໍານົດຊື່ຜູ້ໃຊ້ແລະລະຫັດຜ່ານ, ແລະກໍານົດໄຟລ໌ໃນປະເພດການເຂົ້າເຖິງ (ກຸ່ມ), ຈໍາກັດການເຂົ້າເຖິງບາງໄຟລ໌ສື່ມວນຊົນສໍາລັບຜູ້ໃຊ້ສະເພາະ. ການ​ຕັ້ງ​ຄ່າ​ຂອງ​ເຊີບ​ເວີ​ອະ​ນຸ​ຍາດ​ໃຫ້​ຈໍາ​ກັດ​ວ່າ​ໄຟລ​໌​ໃດ​ຖືກ​ແຈກ​ຢາຍ​ແລະ​ການ​ຕັ້ງ​ຊື່​ປະ​ເພດ​ຕໍ່​ໄຟລ​໌​ຖ້າ​ຫາກ​ວ່າ​ຕ້ອງ​ການ​.

back