التنسيقات المعتمدة

عند تحديد التنسيقات التي يتوافق معها ExoPlayer، من المهم ملاحظة أنّه يتم تحديد "تنسيقات الوسائط" على مستويات متعدّدة. من المستوى الأدنى إلى الأكثر أهمية، إليك المستويات:

  • تنسيق عيّنات الوسائط الفردية (مثل إطار من الفيديو أو إطار من الصوت) هذه هي عيّنات التنسيقات. يُرجى العِلم أنّ ملف الفيديو العادي سيتضمّن وسائط بتنسيقَين نموذجيَّين على الأقل، أحدهما للفيديو (مثل H.264) وأحدهما للصوت (مثل AAC).
  • تنسيق الحاوية التي تحتوي على نماذج الوسائط والبيانات الوصفية المرتبطة بها هذه هي تنسيقات الحاويات. يحتوي ملف الوسائط على حاوية واحدة بتنسيق معيّن (مثل MP4)، ويُشار إليها عادةً من خلال امتداد الملف. يُرجى العلم أنّه في بعض تنسيقات الصوت فقط (مثل MP3)، قد يكون تنسيق العيّنة والحاوية متطابقًا.
  • تقنيات البث التكيُّفي، مثل DASH وSmoothStreaming وHLS هذه الأنواع ليست تنسيقات وسائط بحد ذاتها، ولكن لا يزال من الضروري تحديد مستوى التوافق الذي يوفّره ExoPlayer.

تحدِّد الأقسام التالية مدى توافق ExoPlayer مع كل مستوى، من الأعلى إلى الأدنى. يوضّح القسمان الأخيران مدى توافق الأجهزة مع تنسيقات الترجمة والشرح المستقلة وتشغيل الفيديوهات بنطاق عالي الديناميكية (HDR).

البث التكيُّفي

DASH

يتوافق ExoPlayer مع DASH باستخدام تنسيقات حاويات متعددة. يجب إزالة الترميز من مصادر الوسائط، ما يعني أنّه يجب تحديد الفيديو والصوت والنص في عناصر AdaptationSet مختلفة في بيان DASH (CEA-608 هو استثناء كما هو описан في الجدول أدناه). يجب أيضًا أن تكون تنسيقات عيّنات الصوت والفيديو المضمّنة متوافقة (اطّلِع على القسم تنسيقات العيّنات لمعرفة التفاصيل).

الميزة معلومات معتمَدة التعليقات
الحاويات
‫FMP4 نعم أحداث البث التي تم فك ترميزها فقط
WebM نعم أحداث البث التي تم فك ترميزها فقط
Matroska نعم أحداث البث التي تم فك ترميزها فقط
‫MPEG-TS لا لا يتوفّر دعم
الترجمة والشرح
TTML نعم تنسيق RAW أو مضمّن في FMP4 وفقًا لمعيار ISO/IEC 14496-30
WebVTT نعم تنسيق RAW أو مضمّن في FMP4 وفقًا لمعيار ISO/IEC 14496-30
‫CEA-608 نعم تكون مضمّنة في FMP4 عند إرسال إشارة باستخدام أوصاف SCTE Accessibility
‫CEA-708 نعم تكون مضمّنة في FMP4 عند إرسال إشارة باستخدام أوصاف SCTE Accessibility
البيانات الوصفية
البيانات الوصفية لتنسيق EMSG نعم مضمّنة في FMP4
حماية المحتوى
Widevine نعم مخطّط "cenc": الإصدار 19 من واجهة برمجة التطبيقات والإصدارات الأحدث؛ مخطّط "cbcs": الإصدار 25 من واجهة برمجة التطبيقات والإصدارات الأحدث
‫PlayReady SL2000 نعم Android TV، مخطّط "cenc" فقط
ClearKey نعم الإصدار 21 من واجهة برمجة التطبيقات والإصدارات الأحدث، مخطّط "cenc" فقط
التشغيل المباشر
التشغيل المباشر العادي نعم
تشغيل المحتوى المباشر بتنسيق CMAF بوقت استجابة فائق السرعة نعم
بيانات العميل المشترَكة للوسائط (CMCD) نعم دليل الدمج

SmoothStreaming

يتوافق ExoPlayer مع تقنية SmoothStreaming باستخدام تنسيق حاوية FMP4. يجب إزالة ترميز مجموعات بث الوسائط، ما يعني أنّه يجب تحديد الفيديو والصوت والنص في عناصر StreamIndex مختلفة في ملف بيان SmoothStreaming. يجب أيضًا أن تكون تنسيقات عيّنات الصوت والفيديو المضمّنة متوافقة (اطّلِع على قسم تنسيقات العيّنات لمعرفة التفاصيل).

الميزة معلومات معتمَدة التعليقات
الحاويات
‫FMP4 نعم أحداث البث التي تم فك ترميزها فقط
الترجمة والشرح
TTML نعم مضمّنة في FMP4
حماية المحتوى
‫PlayReady SL2000 نعم Android TV فقط
التشغيل المباشر
التشغيل المباشر العادي نعم
بيانات العميل المشترَكة للوسائط (CMCD) نعم دليل الدمج

HLS

يتوافق ExoPlayer مع HLS باستخدام تنسيقات حاويات متعددة. يجب أيضًا أن تكون تنسيقات عيّنات الصوت والفيديو المضمّنة متوافقة (اطّلِع على قسم تنسيقات العيّنات لمعرفة التفاصيل). ننصح بشدة صنّاع المحتوى الذين يستخدمون بروتوكول HLS بإنشاء أحداث بث عالية الجودة باستخدام هذا البروتوكول، كما هو موضّح هنا.

الميزة معلومات معتمَدة التعليقات
الحاويات
‫MPEG-TS نعم
‫FMP4/CMAF نعم
ADTS (AAC) نعم
MP3 نعم
الترجمة والشرح
‫CEA-608 نعم
‫CEA-708 نعم
WebVTT نعم
البيانات الوصفية
رقم التعريف 3 نعم
SCTE-35 لا
حماية المحتوى
‫AES-128 نعم
نموذج AES-128 لا
Widevine نعم الإصدار 19 من واجهة برمجة التطبيقات والإصدارات الأحدث ("مخطط cenc") والإصدار 25 من واجهة برمجة التطبيقات والإصدارات الأحدث ("مخطط cbcs")
‫PlayReady SL2000 نعم Android TV فقط
التحكّم في الخادم
تحديثات دلتا نعم
حظر إعادة تحميل قائمة التشغيل نعم
حظر تحميل إشارات التحميل المُسبَق نعم باستثناء نطاقات البايتات ذات الأطوال غير المحدّدة
التشغيل المباشر
التشغيل المباشر العادي نعم
البث المباشر وفق بروتوكول HTTP (HLS) بوقت استجابة منخفض (Apple) نعم
البث المباشر وفق بروتوكول HTTP (HLS) بوقت استجابة منخفض (المنتدى) لا
بيانات العميل المشترَكة للوسائط (CMCD) نعم دليل الدمج

تنسيقات الحاويات المتقدّمة

يمكن لتطبيق ExoPlayer تشغيل أحداث البث بتنسيقات الحاويات التالية مباشرةً. يجب أيضًا أن تكون تنسيقات عيّنات الصوت والفيديو المضمّنة متوافقة (اطّلِع على القسم تنسيقات العيّنات لمعرفة التفاصيل). للاطّلاع على معلومات حول الحاويات والتنسيقات المتوافقة مع الصور، يُرجى الاطّلاع على مقالة الصور.

تنسيق الحاوية معلومات معتمَدة التعليقات
MP4 نعم
‫M4A نعم
‫FMP4 نعم
WebM نعم
Matroska نعم
MP3 نعم لا يمكن تقديم أو ترجيع بعض أحداث البث إلا باستخدام ميزة تقديم/ترجيع بمعدل نقل بيانات ثابت**
Ogg نعم أن تحتوي على Vorbis وOpus وFLAC
WAV نعم
‫MPEG-TS نعم
MPEG-PS نعم
FLV نعم لا يمكن تقديم أو ترجيع الفيديو*
ADTS (AAC) نعم يمكن تقديم/ترجيع الفيديو باستخدام ميزة تقديم/ترجيع الفيديو بمعدّل نقل بيانات ثابت فقط**
FLAC نعم باستخدام مكتبة FLAC أو أداة استخراج FLAC في مكتبة ExoPlayer***
AMR نعم يمكن تقديم/ترجيع الفيديو باستخدام ميزة تقديم/ترجيع الفيديو بمعدّل نقل بيانات ثابت فقط**

* لا تتوفّر ميزة التقديم/الترجيع لأنّ الحاوية لا توفّر بيانات وصفية (مثل فهرس عيّنات) للسماح لمشغّل الوسائط بتنفيذ عملية تقديم/ترجيع بطريقة فعّالة. إذا كان من الضروري تقديم ميزة التقديم/الترجيع، ننصحك باستخدام تنسيق حاوية أكثر ملاءمةً.

** تحتوي هذه النازعات على علامات FLAG_ENABLE_CONSTANT_BITRATE_SEEKING لأجل تفعيل التقديم/الترجيع التقريبي باستخدام افتراض معدل نقل بيانات ثابت. لا تكون هذه الميزة مفعّلة تلقائيًا. إنّ أبسط طريقة لتفعيل هذه الميزة في جميع برامج الاستخراج المتوافقة معها هي استخدام DefaultExtractorsFactory.setConstantBitrateSeekingEnabled، كما هو موضّح هنا.

*** يُخرج مستخرج مكتبة FLAC ملف صوتي خام يمكن التعامل معه من خلال إطار العمل على جميع مستويات واجهة برمجة التطبيقات. تُخرج أداة استخراج FLAC في مكتبة ExoPlayer ملفًا يحتوي على إطارات صوت FLAC، لذا تعتمد على توفُّر برنامج ترميز FLAC (على سبيل المثال، MediaCodec برنامج ترميز يعالج FLAC (مطلوب من المستوى 27 من واجهة برمجة التطبيقات) أو مكتبة FFmpeg مع تفعيل FLAC). يستخدم DefaultExtractorsFactory أداة استخراج الإضافات إذا تم إنشاء التطبيق باستخدام مكتبة FLAC. بخلاف ذلك، يتم استخدام أداة استخراج مكتبة ExoPlayer.

RTSP

يتوافق ExoPlayer مع بروتوكول RTSP للبث المباشر والمسجّل. في ما يلي تنسيقات النماذج المتوافقة وأنواع الشبكات المتوافقة.

تنسيقات النماذج المتوافقة

  • ‫H264 (يجب أن يتضمّن وصف وسائط SDP بيانات SPS/PPS في سمة fmtp لبدء تشغيل وحدة الترميز)
  • الترميز المتقدّم للصوت (مع بث ADTS)
  • ‫AC3

أنواع الشبكات المتوافقة

  • بروتوكول RTP عبر بروتوكول UDP للبث المباشر إلى مستخدم واحد (لا يتوفّر البث المتعدد)
  • ‫RTSP وRTP المُدرَجَين على بروتوكول RTSP باستخدام بروتوكول TCP

نماذج التنسيقات

يستخدم ExoPlayer بشكلٍ تلقائي برامج ترميز النظام الأساسي في Android. وبالتالي، تعتمد التنسيقات المتوافقة للعيّنات على النظام الأساسي بدلاً من ExoPlayer. يُرجى الرجوع إلى تنسيقات الوسائط المتوافقة للحصول على مستندات حول نماذج التنسيقات المتوافقة مع أجهزة Android. يُرجى العِلم أنّه قد تتيح الأجهزة الفردية تنسيقات إضافية غير تلك المُدرَجة.

بالإضافة إلى برامج الترميز الخاصة بمنصّة Android، يمكن أن يستخدِم ExoPlayer أيضًا إضافات برامج الترميز. ويجب إنشاء هذه العناصر يدويًا وتضمينها في المشاريع التي تريد الاستفادة منها. نوفّر حاليًا مكتبات برمجية لفك ترميز AV1 وVP9 وFLAC وOpus وFFmpeg وMIDI وIAMF.

مكتبة FFmpeg

تتيح مكتبة FFmpeg فك ترميز مجموعة متنوعة من تنسيقات ملفّات محتوى الوسائط المختلفة. يمكنك اختيار برامج الترميز المطلوب تضمينها عند إنشاء المكتبة، كما هو موضّح في README.md الخاص بالمكتبة. يقدّم الجدول التالي تعيينًا من تنسيق عيّنة الصوت إلى اسم رمز ترميز FFmpeg المقابل.

نموذج أسماء برامج فك الترميز
Vorbis vorbis
Opus opus
FLAC flac
ALAC alac
ترميز PCM μ-law pcm_mulaw
PCM A-law pcm_alaw
MP1 وMP2 وMP3 mp3
AMR-NB amrnb
AMR-WB amrwb
الترميز المتقدّم للصوت aac
‫AC-3 ac3
E-AC-3 eac3
DTS وDTS-HD dca
TrueHD mlp truehd

صور

يتوافق ExoPlayer مع تنسيقات الصور التالية. اطّلِع على مكتبات تحميل الصور للتعرّف على كيفية الدمج مع المكتبات الخارجية التي قد توفّر دعمًا لمجموعة مختلفة من التنسيقات.

تنسيق الصورة معلومات معتمَدة ملاحظات
BMP نعم
ملف GIF لا لا تتوفّر أداة استخراج
JPEG نعم
صورة متحركة بتنسيق JPEG نعم الصور الثابتة والفيديوهات المتوافقة
دقة HDR فائقة بتنسيق JPEG نعم يتم الرجوع إلى SDR قبل Android 14 أو على الشاشات غير المزوّدة بتقنية النطاق العالي الديناميكية
PNG نعم
WebP نعم
HEIF/HEIC نعم
صورة حيّة بتنسيق HEIC جزئيًا تتوفّر الصور الثابتة فقط*
‫AVIF (الأساسي) نعم يتم فك ترميزها على الإصدار 14 من نظام التشغيل Android والإصدارات الأحدث فقط.

* يمكن الحصول على جزء الفيديو من الصور المتحركة بتنسيق HEIC باستخدام مكتبة MetadataRetriever وتشغيله كملف مستقل.

تنسيقات الترجمة المستقلة

يتوافق ExoPlayer مع ملفات الترجمة والشرح المستقلة بتنسيقات متنوعة. يمكن تحميل ملفات الترجمة والشرح من مصدر غير معروف كما هو موضّح في صفحة عناصر الوسائط.

تنسيق الحاوية معلومات معتمَدة نوع MIME
WebVTT نعم MimeTypes.TEXT_VTT
TTML / SMPTE-TT نعم MimeTypes.APPLICATION_TTML
SubRip نعم MimeTypes.APPLICATION_SUBRIP
SubStationAlpha (SSA/ASS) نعم MimeTypes.TEXT_SSA

تشغيل فيديوهات بتنسيق HDR

يعالج ExoPlayer استخراج الفيديو بنطاق عالي الديناميكية (HDR) في حاويات مختلفة، بما في ذلك Dolby Vision بتنسيق MP4 وHDR10+ بتنسيق Matroska/WebM. يعتمد فك ترميز محتوى HDR وعرضه على مدى توفّر التوافق مع نظام التشغيل Android و الجهاز. اطّلِع على مقالة تشغيل الفيديوهات بنطاق عالي الديناميكية (HDR) للتعرّف على إمكانيات فك ترميز/عرض الفيديوهات بنطاق عالي الديناميكية (HDR) والقيود المفروضة على استخدام ميزة النطاق العالي الديناميكية (HDR) في جميع إصدارات Android.

عند تشغيل بث بدقة عالية واتّباع ملف شخصي معيّن لبرنامج الترميز، سيختار MediaCodec التلقائي في ExoPlayer وحدة فك ترميز متوافقة مع هذا الملف الشخصي (إذا كان متاحًا)، حتى إذا كانت وحدة فك ترميز أخرى من النوع نفسه لملف MIME ومتاحة في أعلى قائمة برامج الترميز لا تتوافق مع هذا الملف الشخصي. ويمكن أن يؤدي ذلك إلى اختيار برنامج ترميز في الحالات التي يتجاوز فيها البث إمكانات برنامج ترميز الأجهزة لنوع MIME نفسه.