eXport-it, android  UPnP Client/Server

الروبوت بنب/HTTP عميل وخادم eXport-it

Android


الروبوت التطبيق تبادل الملفات للفيديو والصوت والصور والكتب




eXport-it FFmpeg



ما هي مكتبة FFmpeg؟

FFmpeg (https://www.ffmpeg.org/) هو حل كامل متعدد الأنظمة الأساسية لتسجيل وتحويل وبث الصوت والفيديو. FFmpeg هو إطار عمل الوسائط المتعددة الرائد ، وهو قادر على فك التشفير ، والترميز ، وتحويل الشفرة ، و mux ، و demux ، والدفق ، والفلترة ، وتشغيل أي شيء تقريبًا أنشأه البشر والآلات. وهو يدعم التنسيقات القديمة الأكثر غموضًا حتى أحدث التقنيات. بغض النظر عما إذا كانت قد تم تصميمها من قبل بعض لجان المعايير أو المجتمع أو الشركة.

إنها أيضًا محمولة للغاية: تقوم 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) بالإضافة إلى ملفات رأس (ملفات * .h).

ينصب التركيز الرئيسي لـ ffmpeg-android-maker على إعداد مكتبات مشتركة للتكامل السلس في مشروع Android. يقوم البرنامج النصي بإعداد دليل "الإخراج" المقصود استخدامه. وهو ليس الشيء الوحيد الذي يفعله هذا المشروع. الكود المصدري لـ ffmpeg-android-maker متاح بموجب ترخيص معهد ماساتشوستس للتكنولوجيا. راجع ملف 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. لدمجها كمكتبة إضافية في مشاريعي الحالية.


/>

كيف تبدأ قناة متعددة البث

لبدء قناة متعددة البث يتطلب استخدام عميل للوصول إلى خادم UPnP على شبكتك المحلية (Wi-Fi) بدعم FFmpeg. يجب أن يجيب هذا الخادم بقائمة الملفات التي يصدرها. إذا كان هذا الخادم يدعم FFmpeg ، فيجب أن يظهر نص صغير "كقناة" باللون الأحمر في نهاية السطر العلوي من صفحة القائمة. عندما يكون النص "أحمر" ، فإن النقر فوق الزر "تشغيل" يعمل كما كان من قبل باستخدام بروتوكول UPnP. إذا قمت بالنقر فوق النص ، يجب أن يصبح "أخضر" والنقر فوق الزر "تشغيل" ، بعد تحديد ملفات الفيديو أو الصوت ، يجب أن يبدأ "قناة".

يتم تشغيل ملفات الوسائط المحددة على ما يبدو بنفس الطريقة التي يتم تشغيلها من خلال UPnP ، باستثناء أن تأخير بدء التشغيل يكون أطول بسبب المهام الإضافية. يجب أن يستمر هذا العميل في تشغيل ملفات الوسائط للحفاظ على الأنبوب نشطًا.

استخدام هذا الأنبوب على أجهزة أخرى

لا يعمل البث المتعدد لـ IP عبر الإنترنت ، فهو يعمل فقط على شبكة المنطقة المحلية وبالتالي بشكل أساسي على شبكة Wi-Fi. يمكن مشاركة قناة بيانات متعددة البث من قبل العديد من العملاء في وقت واحد. أنت ترسل تدفق بيانات الوسائط على شبكة Wi-Fi وتعرض هذه البيانات على الأجهزة المتصلة ، بشكل متزامن تقريبًا ، فقط فرق تأخير وقت الاستجابة.

مع دفق UPnP أو HTTP ، يتطلب كل جهاز عرض النطاق الترددي للفيديو المعروض ويكون النطاق الترددي العالمي هو مجموع كلتا حركة المرور. من خلال دفق البث المتعدد ، نرسل تدفق بيانات واحدًا على الشبكة المحلية والذي يتم مشاركته بين عدة عملاء.

إذا كنت تستخدم عميلًا آخر على شبكتك بعد بدء قناة ، فسترى سطرًا إضافيًا في النافذة الرئيسية للعميل. مجرد النقر على هذا الخط يجب أن يبدأ العرض.

من الممكن أيضًا استخدام منتجات أخرى مثل VLC و SMplayer ... لعرض مقطع فيديو أو للاستماع إلى الموسيقى الموزعة عبر قناة متعددة البث فقط باستخدام عنوان URL "UDP" المعروض على عميل eXport-it.

لإيقاف قناة البث المتعدد

تتمثل الطريقة الجيدة لإيقاف قناة البث المتعدد في إيقافها على العميل الذي بدأت منه هذه القناة لأنه يتم التحكم في هذه القناة هناك. يجب أيضًا أن يؤدي التشغيل حتى نهاية ملفات الوسائط المتدفقة إلى نهاية العرض.