Shaka Player هي مكتبة جافا سكريبت مفتوحة المصدر للوسائط التكيفية. يقوم بتشغيل تنسيقات الوسائط التكيفية (مثل DASH وHLS وMSS) في المتصفح، دون استخدام المكونات الإضافية أو Flash. بدلاً من ذلك، يستخدم Shaka Player معايير الويب المفتوحة MediaSource Extensions وEncrypted Media Extensions.
يدعم Shaka Player أيضًا التخزين دون الاتصال بالإنترنت وتشغيل الوسائط باستخدام IndexedDB. يمكن تخزين المحتوى على أي متصفح. يعتمد تخزين التراخيص على دعم المتصفح.
هدفنا الرئيسي هو تسهيل بث الفيديو والصوت بمعدل البت التكيفي قدر الإمكان باستخدام تقنيات المتصفح الحديثة. نحن نحاول أن نجعل المكتبة خفيفة وبسيطة وخالية من تبعيات الطرف الثالث. كل ما تحتاجه للبناء والنشر موجود في المصادر.
للحصول على تفاصيل حول ما سيأتي بعد ذلك، راجع خريطة طريق التطوير الخاصة بنا.
راجع "maintened-branches.md" للحصول على القائمة المحدثة للفروع التي تمت صيانتها لـ Shaka Player.
المتصفح | ويندوز | ماك | لينكس | أندرويد | دائرة الرقابة الداخلية>= 9 | دائرة الرقابة الداخلية>= 17.1 | نظام تشغيل iPad >= 13 | نظام التشغيل Chrome | آخر |
---|---|---|---|---|---|---|---|---|---|
كروم¹ | ي | ي | ي | ي | محلي | محلي | محلي | ي | - |
فايرفوكس¹ | ي | ي | ي | غير مجرب⁵ | محلي | محلي | محلي | - | - |
الحافة¹ | ي | - | - | - | - | - | - | - | - |
حافة الكروم | ي | ي | ي | غير مجرب⁵ | محلي | محلي | محلي | - | - |
أي | ن | - | - | - | - | - | - | - | - |
سفاري¹ | - | ي | - | - | محلي | ي | ي | - | - |
الأوبرا¹ | ي | ي | ي | غير مجرب⁵ | محلي | - | - | - | - |
كروم كاست². | - | - | - | - | - | - | - | - | ي |
تلفزيون تايزن³ | - | - | - | - | - | - | - | - | ي |
ويب أو إس⁶ | - | - | - | - | - | - | - | - | ي |
هيسنس⁷ | - | - | - | - | - | - | - | - | ي |
اكس بوكس واحد | - | - | - | - | - | - | - | - | ي |
بلاي ستيشن 4⁷ | - | - | - | - | - | - | - | - | ي |
بلاي ستيشن 5⁷ | - | - | - | - | - | - | - | - | ي |
ملحوظات:
ملاحظات لنظامي التشغيل iOS وiPadOS:
src
الخاص بالفيديو على البيان/الوسائط. لذلك نحن نعتمد على المتصفح الذي يدعم البيانات.شكل | فيديو حسب الطلب | يعيش | حدث | التسجيل قيد التقدم |
---|---|---|---|---|
داش | ي | ي | - | ي |
HLS | ي | ي | ي | - |
إم إس إس | ي | - | - | - |
يمكنك أيضًا إنشاء مكون إضافي لمحلل البيان لدعم تنسيقات البيان المخصصة.
ميزات DASH المدعومة:
ميزات DASH غير مدعومة:
ميزات HLS المدعومة:
ميزات HLS غير مدعومة:
للحصول على تفاصيل حول تنسيق HLS ومعاني هذه العلامات، راجع https://datatracker.ietf.org/doc/html/draft-pantos-hls-rfc8216bis
#EXT-X-STREAM-INF:<attribute-list>
<URI>
#EXT-X-MEDIA:<attribute-list>
#EXT-X-IMAGE-STREAM-INF:<attribute-list>
#EXT-XI-FRAME-STREAM-INF:<attribute-list>
#EXT-X-SESSION-DATA:<attribute-list>
#EXT-X-SESSION-KEY:<attribute-list>
تحديد نظام مفاتيح EME والتحميل المسبق#EXT-X-START:TIME-OFFSET=<n>
#EXT-X-CONTENT-STEERING:<attribute-list>
توجيه المحتوى#EXT-X-DEFINE:<attribute-list>
استبدال المتغير (سمات NAME,VALUE,QUERYPARAM
) #EXTM3U
#EXTINF:<duration>,[<title>]
#EXT-X-PLAYLIST-TYPE:<type
#EXT-X-ENDLIST
#EXT-X-MEDIA-SEQUENCE=<n>
#EXT-X-TARGETDURATION=<n>
#EXT-X-DISCONTINUITY
#EXT-X-DISCONTINUITY-SEQUENCE=<n>
#EXT-X-BYTERANGE=<n>[@<o>]
#EXT-X-MAP:<attribute-list>
#EXT-X-KEY:<attribute-list>
( KEYFORMAT="identity",METHOD=SAMPLE-AES
مدعوم فقط مع مقاطع MP4)#EXT-X-PROGRAM-DATE-TIME:<attribute-list>
#EXT-X-START:TIME-OFFSET=<n>
#EXT-X-SERVER-CONTROL:<attribute-list>
#EXT-X-PART-INF:PART-TARGET=<n>
#EXT-X-PART:<attribute-list>
#EXT-X-SKIP:<attribute-list>
قوائم تشغيل دلتا#EXT-X-DATERANGE:<attribute-list>
البيانات الوصفية#EXT-X-DEFINE:<attribute-list>
استيراد واستبدال المتغير (سمات NAME,VALUE,IMPORT,QUERYPARAM
)#EXT-X-GAP
#EXT-X-PRELOAD-HINT:<attribute-list>
#EXT-X-BITRATE
مدعوم فقط على المتصفحات التي تدعم ملحقات مصدر الوسائط SourceBuffer
دعم فك تشفير MPEG-5 Part2 LCEVC (يجب تضمين فك التشفير المقدم بواسطة lcevc_dec.js بشكل منفصل)
وثائق التكامل: مستندات
المزيد عن MPEG-5 Part2 LCEVC
ميزات MSS المدعومة:
ميزات MSS غير مدعومة:
المتصفح | ويديفين | PlayReady | اللعب العادل | ClearKey⁶ |
---|---|---|---|---|
كروم¹ | ي | - | - | ي |
فايرفوكس² | ي | - | - | ي |
الحافة³ | - | ي | - | - |
حافة الكروم | ي | ي | - | ي |
سفاري | - | - | ي | - |
الأوبرا | ي | - | - | ي |
كروم كاست | ي | ي | - | ي |
تلفزيون تايزن | ي | ي | - | ي |
ويب أو إس⁷ | لم يتم اختباره⁷ | لم يتم اختباره⁷ | - | لم يتم اختباره⁷ |
هيسنس⁷ | لم يتم اختباره⁷ | لم يتم اختباره⁷ | - | لم يتم اختباره⁷ |
اكس بوكس واحد | - | ي | - | - |
بلاي ستيشن 4⁷ | - | لم يتم اختباره⁷ | - | لم يتم اختباره⁷ |
بلاي ستيشن 5⁷ | - | لم يتم اختباره⁷ | - | لم يتم اختباره⁷ |
يجب أن تعمل أنظمة إدارة الحقوق الرقمية الأخرى خارج الصندوق إذا كانت قابلة للتشغيل البيني ومتوافقة مع مواصفات EME.
ملحوظات:
يظهر | ويديفين | PlayReady | اللعب العادل | كليركي |
---|---|---|---|---|
داش | ي | ي | - | ي |
HLS | ي | ي | ص ¹ | - |
إم إس إس | - | ي | - | - |
ملحوظات:
streaming.useNativeHlsForFairPlay
. يدعم شاكا بلاير:
يتم عرض الترجمات بواسطة المتصفح بشكل افتراضي. يمكن للتطبيقات إنشاء مكون إضافي لعرض النص لعرض العملاء لتجاوز السمات التي يدعمها المتصفح.
يدعم شاكا بلاير:
يدعم شاكا بلاير:
يدعم شاكا بلاير:
يدعم Shaka Player توجيه المحتوى (الإصدار 1) في DASH وHLS.
ميزات توجيه المحتوى المدعومة:
ميزات توجيه المحتوى غير مدعومة:
يدعم Shaka Player الواقع الافتراضي عندما:
prji
و hfov
أوضاع الواقع الافتراضي المدعومة:
ملحوظات:
للحصول على مساعدة عامة وقبل تقديم أي أخطاء، يرجى قراءة الأسئلة الشائعة.
إذا كانت لديك تحسينات أو إصلاحات، فنحن نحب أن نحصل على مساهماتك. يرجى قراءة CONTRIBUTING.md لمزيد من المعلومات حول العملية التي نود من المساهمين اتباعها.
لا يمتلك فريق Shaka النطاق الترددي والخبرة اللازمة لتقديم التوجيه والدعم لدمج Shaka Player مع أطر عمل محددة، ولكن بعض مستخدمينا نجحوا في القيام بذلك وقاموا بإنشاء برامج تعليمية لمساعدة المبتدئين الآخرين.
مكتبة شاكا + ReactJS
تكاملات Shaka + ReactJS:
التكامل شاكا + Next.js:
التكامل شاكا + Vue.js:
التكامل شاكا + Nuxt.js:
تكامل شاكا + video.js:
شاكا + التكامل الزاوي:
إذا قمت بنشر كود/برامج تعليمية خاصة بـ Shaka Integration، فلا تتردد في إرسال العلاقات العامة لإضافتها إلى هذه القائمة، وسنوافق عليها بكل سرور!