back

eXport-it FFmpeg

FFmpeg номын сан гэж юу вэ?

FFmpeg (https://www.ffmpeg.org/) нь аудио болон видео бичлэг хийх, хөрвүүлэх, дамжуулахад зориулагдсан иж бүрэн, хөндлөн платформ шийдэл юм. FFmpeg нь хүн болон машинуудын бүтээсэн бараг бүх зүйлийг тайлах, кодлох, хөрвүүлэх, mux, demux, цацах, шүүх, тоглуулах чадвартай тэргүүлэх мультимедиа фреймворк юм. Энэ нь хамгийн бүдэг бадаг эртний форматуудыг дээд зэргээр дэмждэг. Тэдгээрийг зарим стандартын хороо, нийгэмлэг эсвэл корпораци боловсруулсан эсэхээс үл хамааран.

Мөн зөөврийн өндөртэй: FFmpeg нь Linux, Mac OS X, Microsoft Windows, BSDs, Solaris гэх мэт олон төрлийн бүтээх орчин, машины архитектур, болон тохиргоо.

FFmpeg номын сан нь өөрөө LGPL 2.1 лицензийн дор байдаг. Зарим гадаад сангуудыг (libx264 гэх мэт) идэвхжүүлснээр лицензийг GPL 2 эсвэл түүнээс хойшхи хувилбар болгон өөрчилнө.

Энэ номын санг Андройд аппликейшн дээр хэрхэн нэгтгэсэн бэ

Би номын сангуудыг эмхэтгэхэд ffmpeg-android үйлдвэрлэгч скриптийг ашигласан (хувь нэмэр оруулагч: Александр Бережной Жавернаут + codacy-badger Codacy Badger + A2va). Энэхүү скрипт нь https://www.ffmpeg.org сайтаас FFmpeg-ийн эх кодыг татаж аваад номын сан байгуулж, Android-д зориулж угсардаг. Скрипт нь хуваалцсан сангууд (*.so файлууд) болон толгой файлуудыг (*.h файл) үүсгэдэг.

Ffmpeg-android- үйлдвэрлэгчийн гол зорилго нь Android төсөлд саадгүй нэгтгэх дундын номын санг бэлтгэх явдал юм. Скрипт нь ашиглахад зориулагдсан "гаралтын" санг бэлтгэдэг. Мөн энэ төслийн хийдэг цорын ганц зүйл биш юм. ffmpeg-android үйлдвэрлэгчийн эх кодыг MIT лицензийн дагуу авах боломжтой. Дэлгэрэнгүй мэдээллийг https://github.com/Javernaut/ffmpeg-android-maker/ дээрээс LICENSE.txt файлаас үзнэ үү. eXport-it FFmpeg сангууд нь зөвхөн libaom, libdav1d, liblame, libopus болон libtwolame-тай эмхэтгэсэн болно... гэхдээ холбогдох бүх сангууд биш.

FFmpeg-д зориулсан Java-ийн дэмжлэгийг хөгжүүлж, Android 7.1-12 дээр ажиллуулахын тулд би Танер Сэнэрийн https://github.com/tanersener/mobile-ffmpeg/ дээр баримтжуулсан MobileFFmpeg төслөөс эхэлсэн бөгөөд энэ нь одоохондоо ашиглагдахгүй байна. ... бөгөөд LGPL 3.0 ...

дагуу лицензтэй.

Эцэст нь би JNI Android Studio төслийг номын сангуудтай хамт бэлтгэж, файлууд болон Java дэмжлэгийн кодыг оруулан, одоо байгаа төслүүддээ нэмэлт номын сан болгон нэгтгэхийн тулд .aar Library файлыг үүсгэсэн.


Олон дамжуулалтын сувгийг хэрхэн эхлүүлэх вэ

Олон дамжуулалтын суваг эхлүүлэхийн тулд үйлчлүүлэгч ашиглах, FFmpeg дэмжлэгтэйгээр дотоод сүлжээндээ (Wi-Fi) UPnP серверт хандах шаардлагатай. Энэ сервер экспортлож буй файлуудын жагсаалтад хариулах ёстой. Хэрэв энэ сервер FFmpeg-ийн дэмжлэгтэй бол жагсаалтын хуудасны дээд мөрний төгсгөлд "Суваг болгон" гэсэн жижиг бичвэрийг улаанаар харуулах ёстой. Текст "улаан" байх үед "тоглох" товчийг дарснаар UPnP протоколыг ашиглахаас өмнөх шиг ажиллана. Хэрэв та текст дээр дарвал энэ нь "ногоон" болж, "тоглуулах" товчийг дарснаар видео эсвэл аудио файлуудыг сонгосны дараа "суваг" эхэлнэ.

Сонгосон медиа файлууд нь UPnP-тэй ижил аргаар тоглуулж байгаа бөгөөд нэмэлт ажлуудын улмаас эхлүүлэх саатал удаан байдаг. Та хоолойг идэвхтэй байлгахын тулд энэ клиентийг медиа файлуудыг тоглуулах ёстой.

Энэ хоолойг бусад төхөөрөмж дээр ашиглах

IP multicast нь Интернэтээр ажилладаггүй, энэ нь зөвхөн дотоод сүлжээнд ажилладаг тул Wi-Fi дээр голчлон ажилладаг. Олон дамжуулалтын мэдээллийн сувгийг олон үйлчлүүлэгч нэгэн зэрэг хуваалцах боломжтой. Та өөрийн Wi-Fi сүлжээнд медиа өгөгдлийн урсгалыг илгээж байгаа бөгөөд эдгээр өгөгдлийг холбогдсон төхөөрөмжүүд дээр бараг синхроноор, зөвхөн хоцрогдлын саатлын зөрүүгээр харуулна.

UPnP эсвэл HTTP дамжуулалттай бол төхөөрөмж бүр үзүүлсэн видеоны зурвасын өргөнийг шаарддаг бөгөөд дэлхийн зурвасын өргөн нь хоёулангийнх нь урсгалын нийлбэр юм. Олон дамжуулалтын дамжуулалтаар бид LAN-д нэг өгөгдлийн урсгалыг илгээдэг бөгөөд үүнийг олон үйлчлүүлэгчид хуваалцдаг.

Хэрэв та суваг ажиллуулсны дараа сүлжээндээ өөр клиент ашиглаж байгаа бол харилцагчийн үндсэн цонхон дээр нэмэлт мөр гарч ирнэ. Энэ мөр дээр дарахад л шоу эхлэх болно.

Мөн VLC, SMplayer, ... зэрэг бусад бүтээгдэхүүнүүдийг eXport-it клиент дээр харуулсан "UDP" URL-ыг ашиглан олон дамжуулалт сувгаар түгээсэн хөгжим сонсох эсвэл видео үзүүлэхэд ашиглах боломжтой.

Олон дамжуулалтын сувгийг зогсоох

Олон дамжуулалтын сувгийг зогсоох сайн арга бол энэ сувгийг тэнд удирддаг тул эхлүүлсэн клиент дээрээ зогсоох явдал юм. Дамжуулсан медиа файлуудыг дуустал тоглуулах нь мөн шоуны төгсгөлийг өгөх ёстой.

Практик анхаарах зүйлс

Олон дамжуулалтын суваг эхлүүлэхийн тулд миний бусад сүүлийн үеийн бүтээгдэхүүнүүдийн eXport-it клиенттэй адил энэ аппликешны тодорхой клиент хэсэг шаардлагатай. Ажиллаж байгаа олон дамжуулалтын сувгийг ашиглахын тулд програмын клиент эсвэл VLC, SMPlayer, ... зэрэг бусад платформ дээр эсвэл Android дээр ажилладаг бусад бүтээгдэхүүнээр хийж болно. VLC ашиглах үед Multicast сувгийг ашиглах URL нь udp://@239.255.147.111:27192... зүгээр л нэмэлт "@"-тэй адил ялгаатай байна. UDP Multicast сувгийн хувьд медиа өгөгдлийг олон үйлчлүүлэгчид харуулахын тулд зөвхөн нэг удаа илгээдэг боловч бодит синхрончлол байхгүй бөгөөд буфер болон төхөөрөмжийн шинж чанараас хамааран саатал секунд байж болно.

Аудио олон дамжуулалтын сувгийг бусад бүтээгдэхүүнээс сонсож болно, гэхдээ тусгай үйлчлүүлэгч IP олон дамжуулалтаар илгээсэн зургуудыг харуулдаг. Хэрэв та хөгжимтэй тодорхой зураг илгээхийг хүсвэл сервер дээрх "Page 2" цэсийн сонголтыг ашиглан зөвхөн хүссэн зургаа сонгоод, нэг товшилтоор бүх зургийн сонголтыг болиулж, хүссэн зургаа сонгоно уу...

Протокол болгонд давуу болон тохиромжгүй талууд бий. UPnP болон Multicast сувгийг зөвхөн дотоод сүлжээнд (гол төлөв Wi-Fi) ашиглах боломжтой, HTTP дамжуулалт нь дотоодод төдийгүй интернетээр ажилладаг бөгөөд вэб хөтчийг үйлчлүүлэгч болгон ашигладаг. UPnP болон Multicast сувагт хандалтыг хянах найдвартай арга байхгүй бөгөөд Wi-Fi сүлжээнд холбогдсон ямар ч төхөөрөмж ажиллаж байгаа серверийг ашиглах боломжтой. HTTP протоколын тусламжтайгаар та хэрэглэгчийн нэр, нууц үгээ тодорхойлж, файлуудыг хандалтын ангилалд (бүлэг) тохируулж, тодорхой хэрэглэгчдийн зарим медиа файлд хандах хандалтыг хязгаарлаж болно. Серверийн тохиргоо нь аль файлыг түгээхийг хязгаарлаж, шаардлагатай бол файл бүрт ангиллын нэрийг тохируулахыг зөвшөөрдөг.

back