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