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

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

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

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

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

بروتوكول DASH

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

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

البث السلس

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

الميزة معلومات معتمَدة التعليقات
الحاويات
قاعدة بيانات FMP4 نعم أحداث البث المباشر فقط
الترجمة المغلقة
TTML نعم مُضمَّنة في FMP4
حماية المحتوى
Playجاهز 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")
Playجاهز SL2000 نعم Android TV فقط
التحكُّم في الخادم
تعديلات دلتا نعم
حظر إعادة تحميل قائمة التشغيل نعم
حظر تحميل تلميحات التحميل المُسبق نعم باستثناء نطاقات البايت ذات الأطوال غير المحددة
التشغيل المباشر
تشغيل مباشر عادي نعم
بروتوكول HLS في وقت استجابة سريع (تفاح) نعم
بروتوكول HLS في وقت استجابة بطيء (المنتدى) لا
بيانات برنامج الوسائط الشائعة (CMCD) نعم دليل الدمج

تنسيقات الحاوية التدريجية

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

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

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

** تحتوي أدوات الاستخراج هذه على عدد علامات 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 لإعداد برنامج فك الترميز).
  • AAC (مع بث بيانات ADTS)
  • AC3.

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

  • بروتوكول RTP عبر البث الأحادي لبروتوكول UDP (البث المتعدد غير متوافق)
  • بروتوكول RTSP مع التداخل وبروتوكول RTP عبر بروتوكول RTSP باستخدام بروتوكول TCP.

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

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

إلى جانب برامج فك ترميز النظام الأساسي لنظام التشغيل Android، يمكن لـ ExoPlayer الاستفادة من إضافات برامج فك ترميز البرامج. يجب إنشاؤها يدويًا وإدراجها في المشروعات التي ترغب في الاستفادة منها. نوفّر حاليًا مكتبات برامج فك ترميز البرامج لـ AV1 وVP9 وFLAC وOpus وFFmpeg.

مكتبة FFmpeg

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

نموذج تنسيق أسماء برامج فك الترميز
فوربيس فوربيس
Opus عمليّ
FLAC فلك
ألاك ألاك
قانون PCM PCM_mulaw
قانون PCM PCM_alaw
MP1 وMP2 وMP3 mp3
AMR-NB أمررنب
AMR-WB أمروب
الترميز المتقدّم للصوت aac
تنسيق AC-3 Ac3
E-AC-3 eac3
DTS، DTS-HD نموذج DC
دقة عالية صواب مدمَج (MLp)

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

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

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

تشغيل الفيديو بنطاق عالي الديناميكية

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

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