يمكنك الاطّلاع على صفحة التنسيقات المتوافقة مع ExoPlayer للحصول على مقدّمة حول تنسيقات الوسائط بشكل عام. تنطبق القيود نفسها على تحميل واستخراج وفك ترميز البيانات مع Transformer، مع العلم أنّ Transformer لا يتوافق مع وحدات فك الترميز المضمّنة في ExoPlayer.
يعتمد Transformer أيضًا على MediaCodec في الترميز، ويحتاج إلى دمج ملفات الوسائط الناتجة، أو دمجها، ما يحدّ من تنسيقات الإخراج المتوافقة. يمكنك الاطّلاع على
برامج ترميز الفيديو في MediaCodec
لمزيد من المعلومات حول قيود الترميز، وعلى
MediaMuxer
لمعرفة القيود التي تنطبق على حاوية الوسائط الناتجة. لا ينتج المحوّل سوى ملفات MP4.
تستخدم Transformer تلقائيًا MediaMuxer، ولكن يتوفّر إصدار InAppMuxer قيد التطوير بشكل اختياري لتجنُّب بعض القيود التي تفرضها MediaMuxer بشأن بنى إطار المرجع وتنسيقات العيّنات المتوافقة. سيصبح برنامج دمج الصوت والفيديو التلقائي هو برنامج دمج الصوت والفيديو داخل التطبيق في إصدار مستقبلي.
إتاحة استخدام الصور
يستخدم Transformer BitmapFactory لتحميل جميع مواد عرض الصور وفك ترميزها، وبالتالي، يتوافق Transformer مع جميع التنسيقات التي يتوافق معها BitmapFactory. راجِع مقالة
توافق الصور
للتعرّف على أنواع الصور المتوافقة. بالنسبة إلى تنسيقات الصور المتعددة (مثل صور GIF)، يتم عرض إطار صورة واحد من الحاوية إذا تم استخدام DefaultAssetLoaderFactory.
تنسيقات خاصة
تتيح أداة Transformer معالجة الإدخال بتنسيقات وسائط أحدث توفّر ميزات خاصة مقارنةً بالتنسيقات التقليدية.
التعامل مع فيديوهات HDR
تتيح المزيد من الأجهزة الآن تسجيل الفيديو بتكنولوجيا HDR، ما يمنحك ألوانًا أكثر حيوية ودقة ونطاق سطوع أكبر.
تتيح أداة Transformer تعديل فيديوهات HDR على أجهزة Android 13 (المستوى 33 لواجهة برمجة التطبيقات) والإصدارات الأحدث
التي تتوافق مع الترميز المطلوب. عند تعديل فيديوهات HDR، يجب أن تتعامل أي مؤثرات فيديو GL مع مكوّنات ألوان نقطة عائمة بدقة 16 بت ومساحة ألوان BT.2020. HDR_MODE_KEEP_HDR هو الوضع التلقائي عند إنشاء Composition. في حال عدم توفّر ميزة تعديل الصور بتقنية HDR، سيعود Transformer إلى استخدام HDR_MODE_TONE_MAP_HDR_TO_SDR_USING_OPEN_GL.
تتوفّر إمكانية تحويل محتوى HDR إلى SDR، المعروفة أيضًا باسم تعديل الألوان، على الأجهزة التي تعمل بالإصدار 10 من نظام التشغيل Android (المستوى 29 من واجهة برمجة التطبيقات) والإصدارات الأحدث والتي تتوافق مع متطلبات فك الترميز وOpenGL. يكون ذلك مفيدًا عند مشاركة وسائط HDR مع تطبيقات أو خدمات أخرى لا تتيح استيعاب محتوى HDR. لتفعيل عملية ربط الدرجات اللونية باستخدام طلب OpenGL
setHdrMode(HDR_MODE_TONE_MAP_HDR_TO_SDR_USING_OPEN_GL) عند إنشاء
Composition. بدءًا من الإصدار 12 من نظام التشغيل Android (المستوى 31 لواجهة برمجة التطبيقات)، تتيح MediaCodec
أيضًا ميزة "مطابقة الألوان" على بعض الأجهزة، بما في ذلك جميع الأجهزة التي تعمل بالإصدار 13 من نظام التشغيل Android أو الإصدارات الأحدث والتي يمكنها تسجيل فيديو بنطاق عالي الديناميكية (HDR). لتفعيل ميزة "مطابقة الألوان" باستخدام
MediaCodec، اتّبِع الخطوات التالية: setHdrMode(HDR_MODE_TONE_MAP_HDR_TO_SDR_USING_MEDIACODEC)
التعامل مع الوسائط التي تم تصويرها ببطء
تتضمّن فيديوهات الحركة البطيئة بيانات وصفية تشير إلى السرعة التي يجب تشغيل كل قسم من مجموعة البث بها. التسوية هي عملية إنشاء بث فيديو جديد استنادًا إلى فيديو بالحركة البطيئة، ولكن يتم فيها تسريع أو إبطاء المقاطع استنادًا إلى البيانات الوصفية، وذلك لتشغيلها بشكل صحيح حتى على المشغّلات التي لا تطبّق البيانات الوصفية للحركة البطيئة.
لتسوية أحداث البث البطيئة، استخدِم طريقة إنشاء setFlattenForSlowMotion على EditedMediaItem.
Kotlin
val editedMediaItem = EditedMediaItem.Builder(inputMediaItem).setFlattenForSlowMotion(true).build() val transformer = Transformer.Builder(context).addListener(transformerListener).build() transformer.start(editedMediaItem, outputPath)
Java
EditedMediaItem editedMediaItem = new EditedMediaItem.Builder(inputMediaItem).setFlattenForSlowMotion(true).build(); Transformer transformer = new Transformer.Builder(context).addListener(transformerListener).build(); transformer.start(editedMediaItem, outputPath);
يتيح لك ذلك إمكانية عرض فيديوهات بالحركة البطيئة بدون الحاجة إلى القلق بشأن معالجة هذه التنسيقات الخاصة. كل ما عليك فعله هو تخزين وتشغيل نسخة الفيديو المدمجة بدلاً من النسخة الأصلية.