عند تحديد التنسيقات المتوافقة مع 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 نفسه.