يوضّح هذا المستند كيفية استخدام بروتوكول البث المباشر وفق بروتوكول HTTP (HLS) لبث بيانات مباشرة على YouTube من برنامج ترميز. هذا المستند مخصّص لمورّدي برامج الترميز الذين يريدون إضافة ميزة إدخال HLS إلى منتجاتهم. يُعدّ بث المحتوى باستخدام HLS خيارًا جيدًا للمحتوى المميّز الذي يتطلّب جودة عالية ودقة عالية مع وقت استجابة أطول نسبيًا. للحصول على مقارنة موجزة بين بروتوكولات النقل المختلفة التي يتيحها "بث YouTube المباشر"، يمكنك الاطّلاع على مقارنة بين بروتوكولات النقل في "بث YouTube المباشر".
لبث البيانات المباشرة باستخدام HLS، يجب أن يرسل برنامج الترميز سلسلة من قوائم تشغيل الوسائط وشرائح الوسائط إلى نقطة نهاية HLS في YouTube باستخدام طلبات HTTP PUT
أو POST
. من منظور برنامج الترميز، تبدو نقطة نهاية HLS على YouTube كخادم HTTP غير نشط.
يمثّل كل جزء من الوسائط محتوى الوسائط المتعددة الفعلي لجزء موجز من البث تتراوح مدته بين ثانية واحدة وأربع ثوانٍ. توضّح كل قائمة تشغيل وسائط كيفية إعادة تجميع مقاطع الوسائط بترتيب البث الصحيح.
متطلبات تنسيق الوسائط
تتضمّن عملية استيعاب HLS على YouTube المتطلبات التالية بشأن محتوى الفيديو والصوت:
- يجب دمج الفيديو والصوت بتنسيق M2TS.
- برامج ترميز الفيديو المتوافقة هي H.264 وHEVC.
- يمكن استخدام عدد لقطات في الثانية يصل إلى 60 لقطة.
- يُسمح فقط بمجموعة GOP المغلقة.
- برنامج ترميز الصوت المتوافق هو AAC، ولا يتوفّر سوى الصوت أحادي المسار.
يمكنك الاطّلاع على المزيد من المتطلبات التفصيلية في قسم مقاطع الوسائط.
نطاق عالي الديناميكية
يمكن عرض فيديوهات بنطاق عالي الديناميكية (HDR) باستخدام برنامج الترميز HEVC، ويجب أن تستوفي المتطلبات الإضافية التالية:
- معايير الألوان المتوافقة هي 10-bit PQ وHLG مع سطوع غير ثابت.
في ما يلي المزيد من التفاصيل:
- يجب أن يكون تنسيق مفتاح اللون YUV 4:2:0 10-bit.
- يجب أن تكون وظيفة النقل PQ (المعروفة أيضًا باسم SMPTE ST 2084) أو HLG (المعروفة أيضًا باسم ARIB STD-B67).
- يجب أن تكون الألوان الأساسية Rec. 2020.
- يجب أن تكون معامِلات المصفوفة Rec. 2020 بقياس ضوئي غير ثابت.
- يتوافق هذا التنسيق مع قيم العيّنات ذات النطاق المحدود (أو نطاق MPEG) والنطاق الكامل (أو نطاق JPEG). من المهم ضبط النطاق وفقًا لنطاق قيم العيّنات التي يستخدمها المحتوى. يُنصح باستخدام قيم عيّنات ذات نطاق محدود.
الحصول على عنوان URL لعرض المحتوى وفق بروتوكول HLS
الحصول على عنوان URL لعرض الترجمة والشرح باستخدام بروتوكول HLS من YouTube API
للحصول على عنوان URL الكامل الخاص بالنقل، يمكن لبرامج الترميز استخدام YouTube Live Streaming API من أجل إدراج مورد liveStream مع الخصائص التالية:
"cdn": {
"ingestionType": "hls",
"frameRate": "variable",
"resolution": "variable"
}
في استجابة واجهة برمجة التطبيقات، يحدّد الحقل cdn.ingestionInfo.ingestionAddress
عنوان URL الأساسي لنقل البيانات، ويحدّد الحقل cdn.ingestionInfo.backupIngestionAddress
عنوان URL الاحتياطي لنقل البيانات. لمزيد من التفاصيل، راجِع مستندات المورد liveStreams
.
الحصول على عنوان URL لنقل بيانات HLS من "استوديو YouTube"
في واجهة الويب الخاصة بـ "استوديو صنّاع المحتوى في YouTube"، بعد أن ينقر صانع المحتوى على "إنشاء بث مباشر"، يعرض YouTube "مفتاح بث" يتألف من أحرف أبجدية رقمية وواصلات. يحدّد مفتاح الأمان هذا كلاً من صانع المحتوى والبث إلى YouTube.
يمكنك إنشاء عنوان URL لبروتوكول HLS من مفتاح البث هذا على النحو التالي:
https://a.upload.youtube.com/http_upload_hls?cid=$STREAM_KEY©=0&file=
... حيث $STREAM_KEY
هو مفتاح البث المعروض في واجهة الويب.
على سبيل المثال:
https://a.upload.youtube.com/http_upload_hls?cid=abcd-efgh-ijkl-mnop-qrst©=0&file=
لتعزيز الموثوقية، يمكنك إرسال نسخة ثانية احتياطية من عملية الاستيعاب إلى عنوان URL الاحتياطي هذا:
https://b.upload.youtube.com/http_upload_hls?cid=$STREAM_KEY©=1&file=
يُرجى العِلم أنّ عنوان URL الاحتياطي يختلف عن عنوان URL الأساسي في نقطتَين: تم تغيير كل من اسم المضيف والمَعلمة copy=
. يجب أن يرسل العرض الاحتياطي قيمة مختلفة للمَعلمة copy=
عن العرض الأساسي لتجنُّب تلف البث.
إكمال عنوان URL لعرض المحتوى وفق بروتوكول HLS
إنّ عناوين URL التي يتم الحصول عليها باستخدام أيّ من الطريقتين هي نماذج غير مكتملة، وينتهي كلّ منها بمَعلمة طلب بحث فارغة file=
. لتكوين رابط عنوان URL النهائي، يجب أن يلحق برنامج الترميز اسم ملف قائمة تشغيل الوسائط أو مقطع الوسائط بنهاية رابط عنوان URL، وبالتالي إكمال المَعلمة file=
.
تنطبق القواعد التالية على قيمة المَعلمة file=
:
- يمكن للمشفّر إنشاء اسم ملف "قائمة وسائط" أو "جزء وسائط" من أحرف أبجدية رقمية وشرطات سفلية وشرطات مائلة للأمام وواصلات ونقاط، ولا يتم دعم أي أحرف أخرى.
- يجب ألا يشفّر برنامج الترميز اسم الملف باستخدام ترميز URL.
- يمكن أن يتضمّن برنامج الترميز عناصر مسار نسبية أو مطلقة في أسماء الملفات، على الرغم من أنّ ذلك ليس مطلوبًا أبدًا. إذا كان برنامج الترميز يتضمّن مكوّن مسار ضمن اسم ملف "جزء الوسائط"، يجب أن يشير إلى المسار نفسه في إدخال قائمة التشغيل المقابل.
متطلبات بروتوكول HLS
يجب أن تتوافق قوائم تشغيل الوسائط وشرائح الوسائط التي يرسلها برنامج الترميز مع مواصفات الإصدار الثاني من البث المباشر وفق بروتوكول HTTP.
تحدّد مواصفات HLS نوعَين من قوائم التشغيل: قائمة تشغيل الوسائط وقائمة التشغيل الرئيسية. بما أنّ YouTube يحوّل ترميز المحتوى الذي يتم بثه إلى درجات دقة ومعدلات نقل بيانات مختلفة، لا يحتاج برنامج الترميز إلى إرسال محتوى بمعدلات نقل بيانات مختلفة إلى YouTube. نتيجةً لذلك، يتيح YouTube استخدام "قوائم تشغيل الوسائط" فقط لإدخال محتوى HLS، ويتم تجاهل "قوائم التشغيل الرئيسية". (توفر قائمة التشغيل الرئيسية مجموعة من مصادر البيانات المتغيرة، يصف كل منها إصدارًا مختلفًا من المحتوى نفسه).
يجب أن يستوفي برنامج الترميز الشروط التالية:
- إرسال بث واحد مرمّز بدقة الوضوح الأعلى التي تريد عرضها للمستخدمين (دقة الوضوح وبرنامج الترميز الفرديان)
- دمج الصوت والفيديو
- استخدام بروتوكول HTTPS واتصال دائم لجميع الطلبات
تحتوي الأقسام التالية على متطلبات أكثر تحديدًا لقوائم تشغيل الوسائط ومقاطع الوسائط.
قوائم تشغيل الوسائط
تحتوي قائمة تشغيل الوسائط على قائمة بمقاطع الوسائط التي يمكن ربطها لتمثيل بث وسائط متعدّدة متواصل وقابل للفك. تخبر قائمة تشغيل الوسائط الخادم بشرائح الوسائط المتوقّعة وكيفية ترتيبها بشكل صحيح في البث المعاد تجميعه.
المتطلبات
يجب أن ينتهي اسم ملف قائمة التشغيل الخاصة بالوسائط باللاحقة
.m3u8
أو.m3u
.يجب أن تبدأ أول قائمة تشغيل وسائط يتم إرسالها لبرنامج بث بالرقم التسلسلي
0
، ويجب أن يتزايد الرقم التسلسلي بشكل منتظم.يجب أن تحدّد العلامة
EXT-X-MEDIA-SEQUENCE
الرقم التسلسلي لأول جزء وسائط مُدرَج في قائمة التشغيل.يجب ألا تحتوي "قائمة تشغيل الوسائط" على أكثر من خمس شرائح لم يستلمها الخادم. يكون الجزء معلّقًا إذا لم يتلقَّه الخادم أو لم يؤكّد استلامه.
بالإضافة إلى المقاطع المعلقة، يجب أيضًا تضمين بعض المقاطع التي تم تأكيدها في كل قائمة تشغيل وسائط. تؤدي هذه الممارسة إلى تقليل احتمال تخطّي مقطع إذا فقدت قائمة تشغيل الوسائط على الخادم. على سبيل المثال، يمكنك تضمين ما يصل إلى مقطعين تم تأكيد استلامهما وما يصل إلى خمسة مقاطع معلّقة في كل قائمة تشغيل وسائط.
يُرجى العِلم أنّ الخادم يقرّ باستلام "مقطع الوسائط" من خلال عرض الردّ
200
(OK
) أو202
(Accepted
) عند تحميل هذا المقطع. يشير الرد202
إلى أنّ الخادم تلقّى المقطع قبل تلقّي قائمة تشغيل تحدّد هذا المقطع.أرسِل قائمة تشغيل وسائط معدَّلة لكل مقطع وسائط كي يتمكّن الخادم من استرداد البيانات بسرعة في حال فقدان قائمة تشغيل وسائط.
عندما يقرّ الخادم باستلام "مقاطع الوسائط"، يمكنك زيادة قيمة العلامة
EXT-X-MEDIA-SEQUENCE
لمنع "قائمة تشغيل الوسائط" من أن تصبح طويلة جدًا. على سبيل المثال، إذا كان الخادم قد أقرّ باستلام أول تسعة أجزاء من الوسائط، قد تتضمّن قائمة تشغيل الوسائط التالية الجزء الثامن والتاسع والعاشر من الوسائط.لا يمكن استخدام العلامتَين
EXT-X-KEY
وEXT-X-SESSION-KEY
.
أمثلة
تعرض القائمة التالية مثالاً على الملفات التي من المتوقّع أن يرسلها برنامج الترميز:
Media Playlist file with seqnum #0
Media Segment file #0
Media Playlist file with seqnum #0-#1
Media Segment file #1
Media Playlist file with seqnum #0-#2
Media Segment file #2
Media Playlist file with seqnum #1-#3
Media Segment file #3
...
يوضّح المثال التالي قائمة تشغيل وسائط تم إرسالها في منتصف بث فيديو مباشر. بما أنّ المثال مأخوذ من منتصف بث مباشر، فإنّ العلامة
EXT-X-MEDIA-SEQUENCE
تتضمّن قيمة غير صفرية.
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:4
#EXT-X-MEDIA-SEQUENCE:2680
#EXTINF:3.975,
fileSequence2680.ts
#EXTINF:3.941,
fileSequence2681.ts
#EXTINF:3.975,
fileSequence2682.ts
شرائح الوسائط
تحدّد القائمة التالية متطلبات "شرائح الجمهور المستندة إلى الوسائط":
- أسماء الملفات
- يجب أن تتضمّن أسماء ملفات مقاطع الوسائط في عنوان URL الإضافة
.ts
في اسم الملف، ويجب أن تتطابق مع أسماء الملفات في قائمة التشغيل. - يجب أن تكون أسماء ملفات "مقاطع الوسائط" فريدة على مستوى عمليات إعادة تشغيل أجهزة الترميز وإعادة تشغيل البث.
- يجب أن تتضمّن أسماء ملفات مقاطع الوسائط في عنوان URL الإضافة
- التنسيق
- يجب أن تكون شرائح الوسائط بتنسيق M2TS وأن تكون قابلة للتهيئة الذاتية.
- يجب أن يحتوي كل جزء من M2TS على برنامج MPEG-2 واحد.
- يجب أن تحتوي شريحة M2TS على جدول PAT وجدول PMT، ويجب أن تكون حزمتان من حزم Transport Stream الأوليَين في الشريحة هما جدول PAT وجدول PMT.
- المحتوى
- يجب أن يتم دمج الفيديو والصوت.
- برامج ترميز الفيديو المتوافقة هي H.264 وHEVC.
- تتوفّر تقنية HDR مع HEVC (راجِع متطلبات HDR).
- يمكن استخدام عدد لقطات في الثانية يصل إلى 60 لقطة.
- يُسمح فقط بمجموعة GOP المغلقة.
- برنامج ترميز الصوت المتوافق هو AAC، ولا يتوفّر سوى الصوت أحادي المسار.
- يُنصح بأن تتراوح مدة مقاطع الوسائط بين ثانية واحدة وأربع ثوانٍ، كما هو موضّح في القسم التالي. يجب ألا تتجاوز مدة مقاطع الوسائط 5 ثوانٍ.
- يجب تشفير مقاطع الوسائط في طبقة TLS/SSL باستخدام HTTPS فقط. لا تتوفّر آليات تشفير أخرى.
مدة مقطع الوسائط
نتوقّع استخدام عملية نقل البيانات عبر HLS للمحتوى المميّز الذي يتطلّب جودة ودقة عاليتَين. عادةً ما يكون وقت استجابة عملية نقل البيانات باستخدام HLS أطول من وقت استجابة عمليات النقل المستندة إلى RTMP وWebRTC لأنّ عملية نقل البيانات باستخدام HLS تستند إلى الشرائح.
ننصح بضبط مدة "شريحة الوسائط" بين ثانية واحدة وأربع ثوانٍ، لأنّ استخدام شرائح وسائط أصغر يمكن أن يؤدي إلى تقليل وقت الاستجابة، ولكن على حساب ارتفاع معدّل إعادة التخزين المؤقت وانخفاض كفاءة الترميز. كما هو موضّح في القسم السابق، يجب ألا تتجاوز مدة "مقاطع الوسائط" 5 ثوانٍ.
معدلات البت
يقدّم مركز مساعدة YouTube إرشادات حول إعدادات معدّل نقل البيانات.
يُرجى العِلم أنّ HEVC يتيح بشكل عام ضغط البيانات بنسبة تتراوح بين% 25 و% 50 أكثر من H.264 مع الحفاظ على جودة الفيديو نفسها. وبالتالي، يمكن استخدام قيم معدّل نقل البيانات في الحد الأدنى من النطاقات المقترَحة مع ترميز HEVC لتوفير النطاق الترددي، وهو أمر مفيد بشكل خاص للمحتوى بدقة 4K.
متطلبات أخرى
على برامج الترميز ضبط العنوان
User-Agent
في طلب HTTP باستخدام الصيغة التالية التي تتضمّن اسم الشركة المصنّعة واسم الطراز والإصدار:User-Agent: <manufacturer> / <model> / <version>
الترجمة والشرح
يتيح إدخال HLS خيارَين لإرسال مقاطع الترجمة والشرح:
- إرسال الترجمة والشرح باستخدام طلبات HTTP POST منفصلة تعمل هذه الميزة مع جميع عمليات نقل بيانات HLS.
- تعمل مقاطع الترجمة والشرح 608/708 المضمّنة مع عمليات النقل باستخدام بروتوكول HLS التي تستخدم برنامج ترميز الفيديو H264، ولكنّها لا تعمل مع عمليات النقل التي تستخدم برنامج ترميز الفيديو HEVC. لمزيد من التفاصيل، يُرجى الاطّلاع على متطلبات ميزة "النسخ النصي التلقائي" في "مركز مساعدة YouTube".
رموز استجابة HTTP
توضّح الأقسام التالية رموز الاستجابة التي يعرضها YouTube ردًا على "مقاطع الوسائط" و"قوائم تشغيل الوسائط" التي يتم عرضها باستخدام HLS.
- 200 (OK)
في حال تلقّي استجابة HTTP 200 (موافق) ردًا على طلب PUT أو POST، يعني ذلك أنّ خادم YouTube تلقّى عملية متوقّعة ونفّذها بنجاح.
في حال تلقّي طلب DELETE، تشير الاستجابة HTTP 200 (حسنًا) إلى أنّ خادم YouTube تلقّى الطلب وتجاهله. لا يطلب خادم YouTube من العميل حذف أي مورد في البث، ويتجاهل طلبات الحذف. لأسباب تتعلّق بالأداء، ينصح YouTube العملاء بعدم إرسال طلبات DELETE.
- 202 (تم القبول)
تشير الاستجابة HTTP 202 (تم القبول) إلى أنّ خادم YouTube تلقّى "مقطع الوسائط" قبل تلقّي "قائمة تشغيل الوسائط" التي تتضمّن "مقطع الوسائط". يشير ذلك إلى أنّ على العميل إرسال قائمة تشغيل الوسائط التي تحتوي على جزء الوسائط هذا في أقرب وقت ممكن لتجنُّب أي تأخير في معالجة هذا الجزء. يُرجى العِلم أنّ هذه المشكلة لن تحدث إذا أرسل برنامج الترميز قائمة تشغيل وسائط معدَّلة لكل جزء من الوسائط.
- 400 (طلب غير صالح)
تشير استجابة HTTP 400 (طلب غير صالح) إلى حدوث إحدى المشاكل التالية:
- عنوان URL غير مكتوب بشكل صحيح
- يتعذّر تحليل قائمة التشغيل أو تحتوي على علامات غير متوافقة
- 401 (غير مصرّح به)
تشير استجابة HTTP 401 (غير مصرّح به) إلى أنّ المَعلمة cid في عنوان URL الأساسي لنقطة نهاية HLS على YouTube تالفة أو انتهت صلاحيتها. على العميل تعديل المَعلمة
cid
للمتابعة.- 405 (Method Not Allowed)
يشير الردّ HTTP 405 (الطريقة غير مسموح بها) إلى أنّ الطلب لم يكن طلب POST أو PUT أو DELETE.
- 500 (خطأ في الخادم الداخلي)
تشير استجابة HTTP 500 (خطأ في الخادم الداخلي) إلى أنّ الخادم لم يتمكّن من معالجة الطلب. لمعالجة هذا الخطأ، ننصحك بإعادة محاولة إرسال الطلب باستخدام خوارزمية الرقود الأسي الثنائي.