back

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.

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

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

اعتبارات عملية

لبدء قناة متعددة البث يتطلب جزء عميل معين من هذا التطبيق ، مثل عميل eXport-it لمنتجاتي الأخرى الحديثة. لاستخدام قناة متعددة البث ، يمكن القيام بذلك مع عميل التطبيق أو مع منتجات أخرى مثل VLC ، SMPlayer ، ... تعمل على منصات أخرى أو على Android. عند استخدام VLC ، يختلف عنوان URL لاستخدام قناة Multicast بشكل سلس مثل udp: //@239.255.147.111: 27192 ... فقط مع "@" إضافي. باستخدام قناة UDP Multicast ، يتم إرسال بيانات الوسائط مرة واحدة فقط ليتم عرضها على عملاء متعددين ، ولكن لا توجد مزامنة حقيقية ، ويمكن أن يكون التأخير ثوانٍ اعتمادًا على التخزين المؤقت وخصائص الجهاز.

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

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

back