إرسال محتوى مباشر على YouTube عبر بروتوكول HLS

يشرح هذا المستند كيفية استخدام بروتوكول البث المباشر وفق بروتوكول 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 بت PQ وHLG مع إضاءة غير ثابتة. وبشكل أكثر تحديدًا:
    • يجب أن يكون تنسيق كثافة اللون YUV 4:2:0 و10 بت.
    • يجب أن تكون وظيفة النقل PQ (المعروفة أيضًا باسم SMPTE ST 2084) أو HLG. (المعروفة أيضًا باسم ARIB STD-B67).
    • يجب أن تكون الألوان الأساسية Rec. 2020.
    • يجب أن تكون معامِلات المصفوفة Rec. الإضاءة غير الثابتة في العام 2020
  • عينة ذات نطاق محدود (أو نطاق MPEG) ونطاق كامل (أو نطاق JPEG) محددة. من المهم أن يتم تعيين النطاق وفقًا نموذج نطاق القيمة الذي يستخدمه المحتوى. قيم العينة محدودة النطاق الموصى بها.

الحصول على عنوان URL لنقل HLS

الحصول على عنوان URL لنقل HLS من YouTube API

للحصول على عنوان URL الكامل للعرض، يمكن لبرامج الترميز استخدام خيار بث YouTube المباشر. واجهة برمجة التطبيقات لإدراج بث مباشر المصدر المواقع:

"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&copy=0&file=

... حيث يشير $STREAM_KEY إلى مفتاح البث المعروض في واجهة الويب. مثل: https://a.upload.youtube.com/http_upload_hls?cid=abcd-efgh-ijkl-mnop-qrst&copy=0&file=

لمزيد من الموثوقية، يمكنك نقل نسخة ثانية مكررة من العرض إلى عنوان URL الاحتياطي هذا:

https://b.upload.youtube.com/http_upload_hls?cid=$STREAM_KEY&copy=1&file=

يُرجى العلم أنّ للنسخة الاحتياطية مختلفة عن عنوان 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

شرائح الوسائط

تحدد القائمة التالية متطلبات شرائح الوسائط:

  • أسماء الملفات
    • يجب أن تحتوي أسماء ملفات Media Segment في عنوان URL على اسم الملف .ts امتداد ويجب أن تتطابق مع أسماء الملفات في قائمة التشغيل.
    • يجب أن تكون أسماء ملفات شرائح الوسائط فريدة في كل عمليات إعادة تشغيل برنامج الترميز من جديد.
  • التنسيق
    • يجب أن تكون شرائح الوسائط بتنسيق M2TS ويجب أن تكون ذاتية الإعداد.
    • يجب أن تحتوي كل شريحة M2TS على برنامج MPEG-2 واحد.
    • يجب أن تحتوي شريحة M2TS على PAT وPMT، وأول نوعين. يجب أن تكون حزم بث النقل في الشريحة PAT وPMT.
  • المحتوى
    • يجب إخفاء محتوى الفيديو والصوت.
    • برامج ترميز الفيديو المتوافقة هي H.264 وHEVC.
    • تتوفّر ميزة HDR مع HEVC (راجِع متطلبات تقنية HDR).
    • ويمكن استخدام المعدّلات التي تصل إلى 60 لقطة في الثانية.
    • لا يتم دعم سوى مجموعة GOP المغلقة.
    • إنّ برنامج ترميز الصوت المتوافق هو AAC، ويتم تشغيل الصوت ذي المسار الواحد فقط
    • يُنصح بأن تكون لشرائح الوسائط مدة تتراوح بين واحد وأربع. ثانية، كما هو موضح في القسم التالي. يجب عدم السماح بشرائح الوسائط أن تكون بمدة أطول من 5 ثوانٍ.
    • يجب ألا يتم تشفير شرائح الوسائط إلا في طبقة النقل الآمنة/طبقة المقابس الآمنة باستخدام بروتوكول HTTPS. ولا تتوفّر آليات تشفير أخرى.

مدة شريحة الوسائط

نتوقّع استخدام ميزة نقل بروتوكول HLS في المحتوى المميّز الذي يتطلّب قيمة الجودة والدقة العالية. يستغرق عادةً نقل البيانات وفق بروتوكول HLS وقتًا أطول مقارنةً ببروتوكول RTMP وعمليات العرض المستنِدة إلى WebRTC لأنّ عرض بروتوكول HLS يستند إلى الأقسام.

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

معدلات البت

مساعدة YouTube توسيط يوفر إرشادات حول إعدادات معدل نقل البيانات.

تجدر الإشارة إلى أنّ HEVC ينتج بشكل عام زيادة في ضغط البيانات بنسبة تتراوح بين% 25 و% 50 في الوقت ذاته. جودة الفيديو مقارنةً بتنسيق H.264. وبناءً على ذلك، فإن قيم معدل نقل البيانات في الطرف السفلي من كما يمكن استخدام النطاقات المقترحة مع HEVC لتوفير النطاق الترددي، مفيدة لمحتوى 4K.

متطلبات أخرى

  • يجب أن تضبط برامج الترميز العنوان User-Agent في طلب HTTP باستخدام بناء الجملة التالي، والتي تتضمن اسم الشركة المصنعة واسم الطراز :الإصدار:

    User-Agent: <manufacturer> / <model> / <version>
    

الترجمة والشرح

يتيح البث المباشر وفق بروتوكول HTTP (HLS) خيارين لإرسال مقاطع ترجمة وشرح:

  • أرسِل ترجمة وشرحًا باستخدام طلبات HTTP POST منفصلة. هذه الميزة تناسب جميع عمليات عرض HLS
  • تعمل مقاطع الترجمة والشرح المضمّنة 608/708 مع عمليات عرض HLS التي تستخدم H264 برنامج ترميز الفيديو ولكن ليس مع عمليات العرض التي تستخدم برنامج ترميز الفيديو HEVC. لمزيد من المعلومات، يُرجى الاطّلاع على متطلبات ميزة "النسخ النصي التلقائي". في مركز مساعدة YouTube.

رموز استجابة HTTP

توضّح الأقسام التالية رموز الاستجابة التي يعرضها YouTube في الاستجابة لـ "شرائح الوسائط" وقوائم تشغيل الوسائط التي يتم تقديمها باستخدام بروتوكول HLS.

200 (OK)

استجابةً لطلب PUT أو POST، تشير استجابة HTTP 200 (OK) إلى أن خادم YouTube قد تلقى عملية متوقعة وعالجها بنجاح.

استجابةً لطلب DELETE، تشير الاستجابة HTTP 200 (OK) إلى أن استلام خادم YouTube الطلب وتجاهله. أما خادم YouTube، فينفّذ لا تتطلب من العميل حذف أي مورد في ساحة المشاركات، وتتجاهل طلبات DELETE. لأسباب تتعلق بالأداء، يقترح YouTube العملاء عدم إرسال أي ملفات DELETE.

202 (تم القبول)

تشير استجابة HTTP 202 (مقبول) إلى أن خادم YouTube قد استلم شريحة الوسائط قبل تلقّي قائمة تشغيل وسائط تحتوي على شريحة الوسائط هذه. يوضح هذا للعميل أنه يجب أن يرسل قائمة تشغيل الوسائط التي تحتوي على شريحة الوسائط تلك في أسرع وقت ممكن لمنع حدوث تأخير في معالجة . يُرجى العلم أنّ هذه لن تحدث مشكلة إذا أرسل برنامج الترميز تحديثًا قائمة تشغيل وسائط لكل شريحة من شرائح الوسائط

400 (طلب غير صالح)

تشير استجابة HTTP 400 (طلب غير صالح) إلى إحدى المشكلات التالية حدث:

  • عنوان URL غير مكتوب بشكل صحيح
  • يتعذّر تحليل قائمة التشغيل أو لأنّها تحتوي على علامات غير متوافقة.
401 (غير مصرح به)

تشير استجابة HTTP 401 (غير مصرح به) إلى وجود المعلمة cid في عنوان URL الأساسي لنقطة نهاية HLS في YouTube تالف أو منتهي الصلاحية. العميل يجب تعديل المَعلمة cid للمتابعة.

405 (الطريقة غير مسموح بها)

تشير استجابة HTTP 405 (الطريقة غير مسموح بها) إلى أن الطلب ليس طلب POST أو PUT أو DELETE.

500 (خطأ داخلي في الخادم)

تشير استجابة HTTP 500 (خطأ خادم داخلي) إلى أن الخادم كان تتعذّر معالجة الطلب. بالنسبة لهذا الخطأ، ننصحك بإعادة محاولة طلب مع دالة أس تراجع.