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

عند تحديد التنسيقات التي يتوافق معها 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
‫CEA-708 نعم تكون مضمّنة في FMP4 عند الإشارة إليها باستخدام وصفي تسهيل الاستخدام في SCTE
البيانات الوصفية
البيانات الوصفية لتنسيق EMSG نعم مضمّنة في FMP4
حماية المحتوى
Widevine نعم مخطّط "cenc": الإصدار 19 من واجهة برمجة التطبيقات والإصدارات الأحدث مخطّط "cbcs": الإصدار 25 من واجهة برمجة التطبيقات والإصدارات الأحدث
‫PlayReady SL2000 نعم Android TV، مخطّط "cenc" فقط
ClearKey نعم الإصدار 21 من واجهة برمجة التطبيقات والإصدارات الأحدث، مخطّط "cenc" فقط
إدراج الإعلانات
تشغيل بيانات لعدة فترات زمنية نعم
إدراج الإعلانات بتوجيه من الخادم (xlinks) لا
إعلانات IMA من جهة العميل وخادم نعم دليل إدراج الإعلانات
التشغيل المباشر
التشغيل المباشر العادي نعم
تشغيل البث المباشر باستخدام CMAF بوقت استجابة فائق السرعة نعم
بيانات العميل المشترك للوسائط (CMCD) نعم دليل دمج CMCD

SmoothStreaming

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

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

HLS

يتوافق ExoPlayer مع HLS باستخدام تنسيقات حاويات متعددة. يجب أيضًا أن تكون تنسيقات عيّنات الصوت والفيديو المضمّنة متوافقة (اطّلِع على قسم تنسيقات العيّنات لمعرفة التفاصيل). ننصحك بشدة بصنّاع المحتوى الذين يستخدمون بروتوكول 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 فقط
التحكّم في الخادم
تعديلات دلتا نعم
حظر إعادة تحميل قائمة التشغيل نعم
حظر تحميل إشارات التحميل المُسبَق نعم باستثناء نطاقات البايت التي تتضمن أطوالًا غير محدّدة
إدراج الإعلانات
إدراج الإعلانات بتوجيه من الخادم (الإعلانات البينية) جزئيًا الفيديوهات عند الطلب فقط مع X-ASSET-URI ستتم إضافة أحداث البث المباشر وX-ASSET-LIST لاحقًا.
إعلانات IMA من جهة العميل وخادم نعم دليل إدراج الإعلانات
التشغيل المباشر
التشغيل المباشر العادي نعم
البث المباشر وفق بروتوكول HTTP (HLS) بوقت استجابة منخفض (Apple) نعم
البث المباشر وفق بروتوكول HTTP (HLS) بوقت استجابة منخفض (المنتدى) لا
بيانات العميل المشترك في الوسائط CMCD نعم دليل دمج 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 وMPEG-H.

مكتبة 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 (الأساسي) نعم يمكن فك ترميزها على أجهزة Android 14 والإصدارات الأحدث فقط

* يمكن الحصول على جزء الفيديو من الصور المتحركة بتنسيق 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 وحدة فك ترميز متوافقة مع هذا الملف الشخصي (إذا كان متاحًا)، حتى إذا كانت وحدة فك ترميز أخرى من النوع نفسه MediaCodec ومتاحة في أعلى قائمة برامج الترميز لا تتوافق مع هذا الملف الشخصي. ويمكن أن يؤدي ذلك إلى اختيار برنامج ترميز في الحالات التي يتجاوز فيها البث إمكانات برنامج ترميز الأجهزة لنوع MIME نفسه.