أداة معالجة البيان لأحداث البث عند الطلب

تتيح واجهة برمجة تطبيقات عرض Pod إمكانية الوصول إلى مجموعات إعلانات الفيديو المتسلسلة التي تم تجهيزها بمعدل نقل بيانات تكيُّفي بطريقة يمكن دمجها مباشرةً في بروتوكول HLS مواجه للمستخدم قائمة تشغيل وسائط MPEG-DASH

يركّز هذا الدليل على تنفيذ معالجة أساسية لبيان عرض الإعلانات المتسلسلة. مخصصة لعمليات بث الفيديوهات عند الطلب.

تلقّي طلبات بيان البث

يجب أن يوفر معالج البيان نقطة نهاية لواجهة برمجة التطبيقات للاستماع إلى البيان الطلبات من تطبيق عميل مشغّل الفيديو. على الأقل، يجب أن تكون نقطة النهاية هذه جمع معرّف مصدر بيانات من تطبيق العميل. يُستخدَم رقم تعريف مصدر البيانات هذا من أجل: تحديد جلسة البث إلى "مدير إعلانات Google" في طلبات مجموعات الإعلانات المتسلسلة.

عليك أيضًا جمع بعض المعلومات الأخرى لتحديد الجهة المناسبة مصدر بيانات، مثل Content ID

مثال على نقطة نهاية طلب البيان

GET /api/stream_id/{stream_id}/video/{content_id}.{format}
Host: {your_domain}
مَعلمات المسار
stream_id رقم تعريف مصدر البيانات في "مدير الإعلانات" من تطبيق مشغّل الفيديو للعميل.
content_id معرّف افتراضي يقابل فيديو المحتوى في نظامك.
format مَعلمة افتراضية تتوافق مع تنسيق البث. يجب استخدام أحد الخيارَين التاليَين:
mpd لأحداث بث MPEG-DASH
m3u8 لبث HLS

استرداد بث المحتوى

استخدام Content ID الذي تم جمعه من طلب البيان لاختيار المحتوى البث للربط بالإعلانات

طلب بيانات مجموعة الإعلانات المتسلسلة

لطلب الإعلانات من "مدير الإعلانات"، يجب أن يقدّم خادمك طلب POST إلى الإعلان نقطة نهاية مجموعات الإعلانات المتسلسلة، وتمرير ملفات الترميز الشخصية المطلوبة وعلامة الإعلان والاستهداف المعلَمات. ويشمل هذا الطلب أيضًا معرّف مصدر البيانات الذي جمعته في الخطوة 1-

وفي المقابل، ستتلقّى قائمة بعناصر مجموعات الإعلانات المتسلسلة تحتوي على ملفات بيان مجموعات الإعلانات المتسلسلة التي تطلبها علامة إعلان الناشر ومعلومات عن وقت وأين يجب إدراجها في المحتوى

POST /ondemand/pods/api/v1/network/{network_code}/streams/{stream_id}/adpods
Host: dai.google.com
Content-Type: application/json
مَعلمات المسار
network_code رمز شبكة "مدير الإعلانات 360" للناشر.
stream_id معرّف البث من تطبيق مشغّل الفيديو للعميل

نص JSON

معلمات النص الأساسي
encoding_profiles Required قائمة بتمثيل JSON للملفات الشخصية للترميز التي تريد تلقّيها لكل فاصل إعلاني اطّلِع على التفاصيل أدناه.

لتسهيل التشغيل قدر الإمكان، يجب أن يتطابق هذا مع مجموعة ملفات الترميز الشخصية المستخدمة في تدفق المحتوى.

ad_tag Required علامة إعلان لطلب إعلانات VMAP
cuepoints Optional قائمة بنقاط عرض الإعلانات ضمن بث المحتوى حيث يتم عرض الفواصل الإعلانية أثناء التشغيل إدراجه. يتم قياس نقاط عرض الإعلانات بالثواني العائم.

مطلوبة فقط للردود التي تتضمّن إعلانات أثناء التشغيل تستخدم إعلانات VMAP فواصل زمنية موضعية وهذا أمر غير شائع.

content_duration_seconds Optional مدة المحتوى بالثواني.

مطلوبة فقط للردود التي تتضمّن إعلانات أثناء التشغيل تستخدم إعلانات VMAP percentage من فترات معادلة الوقت. وهذا أمر غير شائع.

manifest_type Optional شكل مجموعات بث الإعلانات المطلوبة، إما hls أو dash القيمة التلقائية هي hls.
dai_options Optional خيارات إضافية تتحكّم في جوانب كيفية عرض البيانات اطّلِع على التفاصيل أدناه.
الملف الشخصي للترميز
profile_name Required معرّف لملف الترميز هذا. يمكن أن تكون هذه القيمة أي سلسلة ولكن لا يمكن أن تكون لديك ملفات تعريف متعددة تحمل الاسم نفسه على البث نفسه.
type Required نوع ترميز مجموعة البث الموصوف في ملف الترميز هذا. قانع الأنواع هي: media وiframe وsubtitles.
container_type Required تنسيق الحاوية المستخدَم في هذا الملف الشخصي للترميز تنسيقات الحاويات هي: "mpeg2ts" و"fmp4cmaf" و"hls_packed_audio"
video_settings Optional تكون هذه السمة مطلوبة إذا كان نوع الملف الشخصي للترميز هو iframe. وإلا، لا يُسمح به إلا إذا كان نوع الوسائط يحتوي على فيديو. عرض التفاصيل أدناه
audio_settings Optional مطلوب إذا كان الملف الشخصي للترميز يحتوي على صوت. لا يُسمح بذلك إلا إذا كان النوع الوسائط. اطّلِع على التفاصيل أدناه.
subtitle_settings Optional هذا الحقل مطلوب إذا كان الملف الشخصي للترميز يحتوي على ترجمة. اطّلِع على التفاصيل أدناه.
إعدادات الفيديو
codec Required سلسلة برنامج ترميز RFC6381.

مثال: avc1.4d000c

bitrate Required عدد صحيح يمثّل الحد الأقصى لمعدل نقل بيانات الفيديو لهذا الملف الشخصي بالبايت لكل ثانيًا.
frames_per_second Required تمثّل هذه السمة النقطة العائمة عدد اللقطات في الثانية في الفيديو.
resolution Required قيمة مرمّزة بتنسيق JSON تحتوي على "عرض" الفيديو و"ارتفاعه" بالبكسل.

مثال: {"width": 640, "height": 320}

إعدادات الصوت
codec Required سلسلة برنامج ترميز RFC6381.

مثال: mp4a.40.5

bitrate Required عدد صحيح يمثّل الحد الأقصى لمعدل نقل بيانات الصوت في هذا الملف الشخصي بالبايت لكل ثانيًا.

مثال: 300000

channels Required عدد صحيح يمثّل عدد القنوات الصوتية، بما في ذلك التردد المنخفض بشكل أفضل.
sample_rate Required عدد صحيح يمثّل معدّل عيّنات الصوت بالهرتز.

مثال: 4800

إعدادات الترجمة
format Required تمثّل هذه السمة تنسيق الملف المُستخدَم في الترجمة ضمن النطاق. القيم المسموح بها هي: webvtt أو ttml
language Optional لغة العنوان الفرعي كسلسلة لغة RFC5646 هذه القيمة إذا تم توفيرها فقط لعرض DASH.

مثال: en-us

خيارات ميزة "إدراج إعلان ديناميكي"
dash_profile Optional الملف الشخصي لـ MPEG-DASH المطلوب تطبيقه على بيانات مجموعة الإعلانات المتسلسلة. يُستخدم هذا الإعداد مع بيان DASH فقط. القيم المسموح بها هي live أو on-demand القيمة التلقائية هي on-demand.

تتوافق القيمة live مع ملف MPEG-DASH الشخصي "urn:mpeg:dash:profile:isoff-live:2011"

تتوافق القيمة on-demand مع ملف MPEG-DASH الشخصي urn:mpeg:dash:profile:isoff-on-demand:2011

ad_pod_timeout Optional الحد الأقصى للوقت المُستغرَق في اختيار الإعلانات وإنشاء مجموعات الإعلانات المتسلسلة في الوقت العائم نقطة ثانية. وبعد انقضاء هذه المدة، يعرض "مدير الإعلانات" أي الإعلانات المحددة سلفًا في استجابة ad_pods وتتوقف قيد المعالجة.
sam_id Optional تحدد مفتاح تصحيح أخطاء بديل يمكن استخدامه للبحث عن جلسات في نشاط ساحة المشاركات الشاشة.

الرد

مَعلمات الاستجابة
valid_for المدة التي تكون فيها قوائم تشغيل مجموعات الإعلانات المتسلسلة هذه صالحة باللغة dhms (الأيام والساعات والدقائق والثواني).
valid_until تاريخ ووقت صلاحية قوائم تشغيل مجموعات الإعلانات المتسلسلة هذه كمعيار ISO8601 سلسلة التاريخ والوقت، باللغة yyyy-MM-dd'T'hh:mm:ss.sssssssss[+|-]hh:mm .
ad_pods قائمة بمجموعات الإعلانات المتسلسلة التي تم اختيارها لمصدر البيانات هذا.
مجموعة الإعلانات المتسلسلة
manifest_uris لبث HLS فقط. ربط معرّفات الملف الشخصي للترميز بمعرّفات الموارد المنتظمة (URI) لبيان HLS.
mpd_uri لأحداث بث DASH فقط معرّف الموارد المنتظم (URI) لـ DASH MPD.
type نوع مجموعة الإعلانات المتسلسلة. أنواع مجموعات الإعلانات المتسلسلة هي: pre أو mid أو post
start للوحات الإعلانات أثناء التشغيل فقط موضع مجموعة الإعلانات المتسلسلة هذه في البث المباشر يجب إدراجه، في ثانية النقطة العائمة.
duration مدة مجموعة الإعلانات المتسلسلة هذه بالثواني.
midroll_index للوحات الإعلانات أثناء التشغيل فقط فهرس مجموعة الإعلانات أثناء التشغيل الحالية الفهرسة يبدأ بـ 1.

مثال على الطلب (cURL)

curl -X POST \
     -d '@request-body.json' \
     -H 'Content-Type: application/json' \
  https://dai.google.com/ondemand/pods/api/v1/network/21775744923/streams/6e69425c-0ac5-43ef-b070-c5143ba68541:CHS/adpods

مثال لنص الطلب

هذا هو محتوى request-body.json المُشار إليه في طلب cURL أعلاه.

{
  "encoding_profiles": [
   {
     "profile_name": "1080p",
     "type": "media",
     "container_type": "mpeg2ts",
     "video_settings": {
       "codec": "avc1.4d000c",
       "bitrate": 5000000,
       "frames_per_second": 30.0,
       "resolution": {
         "width": 1920,
         "height": 1080
       }
     },
     "audio_settings": {
       "codec": "mp4a.40.5",
       "bitrate": 300000,
       "channels": 2,
       "sample_rate": 48000
     }
   },
   {
     "profile_name": "360p",
     "type": "media",
     "container_type": "mpeg2ts",
     "video_settings": {
       "codec": "avc1.4d000d",
       "bitrate": 1000000,
       "frames_per_second": 30.0,
       "resolution": {
         "width": 640,
         "height": 360
       }
     },
     "audio_settings": {
       "codec": "mp4a.40.5",
       "bitrate": 64000,
       "channels": 2,
       "sample_rate": 48000
     }
   },
   {
     "profile_name": "subtitles-webvtt",
     "type": "subtitles",
     "subtitle_settings": {
       "format": "webvtt"
     }
   }
 ],
 "ad_tag": "https://pubads.g.doubleclick.net/gampad/ads?...",
 "manifest_type": "hls"
}

مثال على إجابة

{
  "valid_for": "8h0m0s",
  "valid_until": "2023-03-24T08:30:26.839717986-07:00",
  "ad_pods": [
    {
      "manifest_urls":{
        "1080p": "https://{...}/pod/0/profile/1080p.m3u8",
        "360p": "https://{...}/pod/0/profile.m3u8",
        "subtitles-webvtt": "https://{...}/pod/0/profile/subtitles-en.vtt"
      },
      "type": "pre",
      "duration": 10.0
    },
    {
      "manifest_urls":{
        "1080p": "https://{...}/pod/1/profile/1080p.m3u8",
        "360p": "https://{...}/pod/1/profile.m3u8",
        "subtitles-webvtt": "https://{...}/pod/1/profile/subtitles-en.vtt"
      },
      "type": "mid",
      "start": 15.0,
      "duration": 15.0,
      "midroll_index": 1
    },
    {
      "manifest_urls":{
        ]"1080p": "https://{...}/pod/2/profile/1080p.m3u8",
        "360p": "https://{...}/pod/2/profile.m3u8",
        "subtitles-webvtt": "https://{...}/pod/0/profile/subtitles-en.vtt""
      },
      "type": "post",
      "duration": 10.0
    }
  ]
}

دمج مجموعات الإعلانات المتسلسلة في المحتوى

تختلف عملية دمج مجموعات الإعلانات المتسلسلة في مجموعات بث المحتوى حسب الفئة العمرية. حول التنفيذ وتنسيق البث والميزات التي تختارها تنفيذها من مواصفات التنسيق. تتمثل مهام سير العمل التالية في اقتراحات حول كيفية التعامل مع هذه العملية. التفاصيل الدقيقة قد يختلف تنفيذها حسب احتياجات نشاطك التجاري والمحتوى الذي تقدّمه جداول البيانات.

مجموعات بث HLS

إذا كنت تريد دمج بث بتنسيق HLS، سيصبح بث المحتوى متعددة المتغيرات قائمة تشغيل روابط تؤدي إلى بيانات بث منفصلة، بحيث يكون هناك رابط واحد لكل ملف شخصي للترميز إعلانك يجب إدراج مجموعات الإعلانات المتسلسلة في كل بيانات الصيغة. من بين طرق يكون ذلك من خلال إعداد جميع بيانات الخيارات ونقلها إلى قسم المحتوى شبكة التسليم (CDN) لخدمة المضيف. قائمة التشغيل النهائية متعددة المتغيرات عبارة عن مجموعة من الروابط إلى هذه القنوات التي تستضيفها شبكة توصيل المحتوى البيانات.

التكرار خلال ملفات الترميز الشخصية

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

مثال على مصفوفة مجموعات الإعلانات المتسلسلة
"ad_pods": [
    {
      "manifest_urls":{
        "1080p": "https://{...}/pod/0/profile/1080p.m3u8",
        "360p": "https://{...}/pod/0/profile/360p.m3u8",
        "subtitles-en": "https://{...}/pod/0/profile/subitles-en.vtt"
      },
      "type": "pre",
      "duration": 10.0
    },
    {
      "manifest_urls":{
        "1080p": "https://{...}/pod/1/profile/1080p.m3u8",
        "360p": "https://{...}/pod/1/profile/360p.m3u8",
        "subtitles-en": "https://{...}/pod/1/profile/subitles-en.vtt"
      },
      "type": "mid",
      "start": 15.0,
      "duration": 15.0,
      "midroll_index": 1
    },
    {
      "manifest_urls":{
        "1080p": "https://{...}/pod/2/profile/1080p.m3u8",
        "360p": "https://{...}/pod/2/profile/360p.m3u8",
        "subtitles-en": "https://{...}/pod/2/profile/subitles-en.vtt"
      },
      "type": "post",
      "duration": 10.0
    }
  ]
مثال على قائمة تشغيل تتضمّن محتوى متعدد المتغيرات
#EXTM3U
#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subs0",LANGUAGE="en",NAME="English",AUTOSELECT=YES,DEFAULT=YES,URI="https://{...}/subitles-en.vtt"
#EXT-X-STREAM-INF:BANDWIDTH=5000000,RESOLUTION=1920x1080,CODECS="avc1.4d000c,mp4a.40.5"
https://{...}/1080p.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=1000000,RESOLUTION=640x360,CODECS="avc1.4d000d,mp4a.40.5"
https://{...}/360p.m3u8
مثال على بيانات خيارات المنتج التي تم جمعها
Encoding profile: "1080p"
Profile settings: {...}
Content manifest: https://{...}/1080p.m3u8
Ad pods (start time -> manifest):
    0 -> https://{...}/pod/0/profile/1080p.m3u8
   15 -> https://{...}/pod/1/profile/1080p.m3u8
  600 -> https://{...}/pod/2/profile/1080p.m3u8

إدراج إعلانات في كل بيان صيغة

بالنسبة إلى كل بث مباشر لخيارات المنتج، راجِع أقسام بيان المحتوى مع وضع إجمالي وقت المحتوى المنقضي. عندما تصل إلى موضع البداية لمجموعة الإعلانات المتسلسلة، ثم استخرِج قائمة الأقسام من هذا البيان، ثم قائمة بالأقسام في علامتَي #EXT-X-DISCONTINUITY، وأدرِج القائمة في الموقع الحالي في بيان المحتوى. استمر في هذه العملية حتى يتم عرض جميع الإعلانات تمت معالجة مجموعات الإعلانات المتسلسلة وبث خيارات المنتج.

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

إذا كان بيان المحتوى مشفّرًا، يجب تخزين آخر تشفير. قبل بدء مجموعة الإعلانات المتسلسلة الحالية في علامة #EXT-X-KEY. بعد ذلك، يُرجى اتّباع الخطوات التالية: عليك إضافة العلامة #EXT-X-KEY:METHOD=NONE لإزالة التشفير قبل الشريحة الأولى من كل مجموعة إعلانات متسلسلة أخيرًا، يجب عليك إضافة نسخة من ملف #EXT-X-KEY قبل القسم الأول من المحتوى بعد كل مجموعة إعلانات متسلسلة استعادة تشفير المحتوى.

مثال على بيانات خيارات المنتج التي تم جمعها
Encoding profile: "1080p"
Content manifest: https://{...}/1080p.m3u8
Ad pods (start time -> manifest):
    0 -> https://dai.google.com/{...}pod/0/profile/1080p.m3u8
   15 -> https://dai.google.com/{...}pod/1/profile/1080p.m3u8
  600 -> https://dai.google.com/{...}pod/2/profile/1080p.m3u8
مثال على بيان المحتوى

هذا هو محتوى بيان https://{...}/1080p.m3u8 المدرَج في التي تم جمعها من البيانات المتغيرة.

#EXTM3U
{...}
#EXTINF:5.000,
https://{...}/1080p/content-segment-0.ts
#EXTINF:5.000,
https://{...}/1080p/content-segment-1.ts
#EXTINF:5.000,
https://{...}/1080p/content-segment-2.ts
#EXTINF:5.000,
https://{...}/1080p/content-segment-3.ts
#EXTINF:5.000,
https://{...}/1080p/content-segment-4.ts
#EXTINF:5.000,
https://{...}/1080p/content-segment-5.ts
{...}
مثال على بيان مجموعة الإعلانات المتسلسلة

يمثل هذا محتوى بيان https://dai.google.com/{...}/pod/1/profile/1080p.m3u8 مُدرَجة في بيانات خيارات المنتج التي تم جمعها

#EXTM3U
{...}
#EXTINF:5.000,
https://dai.google.com/{...}/0.ts
#EXTINF:5.000,
https://dai.google.com/{...}/1.ts
#EXTINF:5.000,
https://dai.google.com/{...}/2.ts
مثال على بيان الصيغة المجمّعة

سيكون هذا هو بيان الصيغة المجمّعة الناتج، والذي يتم تمريره إلى شبكة توصيل المحتوى (CDN) تمت استضافته على https://cdn.{...}/{userid}/1080p.m3u8.

#EXTM3U
{...}
#EXTINF:5.000,
https://{...}/1080p/content-segment-0.ts
#EXTINF:5.000,
https://{...}/1080p/content-segment-1.ts
#EXTINF:5.000,
https://{...}/1080p/content-segment-2.ts
#EXT-X-DISCONTINUITY
#EXTINF:5.000,
https://dai.google.com/{...}/0.ts
#EXTINF:5.000,
https://dai.google.com/{...}/1.ts
#EXTINF:5.000,
https://dai.google.com/{...}/2.ts
#EXT-X-DISCONTINUITY
#EXTINF:5.000,
https://{...}/1080p/content-segment-3.ts
#EXTINF:5.000,
https://{...}/1080p/content-segment-4.ts
#EXTINF:5.000,
https://{...}/1080p/content-segment-5.ts
{...}

إنشاء قائمة تشغيل تتضمّن متغيرات متعدّدة

اجمع عناوين شبكة توصيل المحتوى (CDN) لكل بيان متغير مكتمل بالإضافة إلى ومطابقة تفاصيل ملف التشفير، وتجميع النتائج في نافذة جديدة بيان متعدد المتغيرات. يتم عرض هذا البيان الخاص بالمستخدم كاستجابة لطلب البيان الذي تلقّيته في الخطوة 1

مثال على قائمة تشغيل نهائية متعدّدة المتغيرات
#EXTM3U
#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subs0",LANGUAGE="en",NAME="English",AUTOSELECT=YES,DEFAULT=YES,URI="https://cdn.{...}-subitles-en.vtt"
#EXT-X-STREAM-INF:BANDWIDTH=5000000,RESOLUTION=1920x1080,CODECS="avc1.4d000c,mp4a.40.5"
https://cdn.{...}/{userid}/1080p.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=1000000,RESOLUTION=640x360,CODECS="avc1.4d000d,mp4a.40.5"
https://cdn.{...}/{userid}/360p.m3u8

مجموعات بث MPEG DASH

في حال أردت دمج البث بتنسيق MPEG DASH، يجب إنتاج ملف واحد. ويسهّل ذلك دمج مجموعات بث DASH مقارنةً بالبث المباشر وفق بروتوكول HTTP (HLS).

يجب أن يتم إعداد ملف وصف عرض وسائط MPEG DASH (MPD) بشكل صحيح فترات متعددة، يحتوي كل منها على تمثيلات متعددة. على كل تطابق أحد ملفات الترميز الشخصية. تم عرض كل مجموعة إعلانات متسلسلة من "مدير الإعلانات" هو أيضًا ملف MPD يحتوي على سلسلة من النقاط مع والتمثيلات المطابقة.

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

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

مثال على محتوى بتنسيق MPD

<?xml version="1.0" encoding="UTF-8"?>
<MPD xmlns="urn:mpeg:dash:schema:mpd:2011" minBufferTime="PT1.500000S" type="static" mediaPresentationDuration="PT0H10M00.000S" profiles="urn:mpeg:dash:profile:isoff-on-demand:2011">
  <ProgramInformation moreInformationURL="http://.../info">
    <Title>Example Stream</Title>
  </ProgramInformation>
  <Period duration="PT0H0M15.000S" id="content-period-1">
    ...
  </Period>
  <Period duration="PT0H0M15.000S" id="content-period-2">
    ...
  </Period>
  <Period duration="PT0H0M15.000S" id="content-period-3">
    ...
  </Period>
  ...
</MPD>

مثال على ملف JSON لمجموعة الإعلانات

[{
  "mpd_uri": "https://{...}pod/1.mpd",
  "type": "mid",
  "start": 15.0,
  "duration": 15.0,
  "midroll_index": 1
}]

مثال لمجموعة الإعلانات المتسلسلة MPD

هذا هو محتوى mpd_uri من مجموعة الإعلانات المتسلسلة JSON أعلاه.

<?xml version="1.0" encoding="UTF-8"?>
<MPD xmlns="urn:mpeg:dash:schema:mpd:2011" minBufferTime="PT1.500000S" type="static" mediaPresentationDuration="PT0H0M15.000S" profiles="urn:mpeg:dash:profile:isoff-on-demand:2011">
  <ProgramInformation moreInformationURL="http://.../info">
    <Title>Ad Pod 1</Title>
  </ProgramInformation>
  <Period duration="PT0H0M5.000S" id="ad-pod-1-period-1">
    ...
  </Period>
  <Period duration="PT0H0M5.000S" id="ad-pod-1-period-2">
    ...
  </Period>
  <Period duration="PT0H0M5.000S" id="ad-pod-1-period-3">
    ...
  </Period>
  ...
</MPD>

مثال على ملف MPD مجمّع

يمكنك إرسال هذا الردّ كردّ على طلب بيان البث الأولي.

<?xml version="1.0" encoding="UTF-8"?>
<MPD xmlns="urn:mpeg:dash:schema:mpd:2011" minBufferTime="PT1.500000S" type="static" mediaPresentationDuration="PT0H10M15.000S" profiles="urn:mpeg:dash:profile:isoff-on-demand:2011">
  <ProgramInformation moreInformationURL="http://.../info">
    <Title>Example Stream</Title>
  </ProgramInformation>
  <Period duration="PT0H0M15.000S" id="content-period-1">
    ...
  </Period>
  <Period duration="PT0H0M5.000S" id="ad-pod-1-period-1">
    ...
  </Period>
  <Period duration="PT0H0M5.000S" id="ad-pod-1-period-2">
    ...
  </Period>
  <Period duration="PT0H0M5.000S" id="ad-pod-1-period-3">
    ...
  </Period>
  <Period duration="PT0H0M15.000S" id="content-period-2">
    ...
  </Period>
  <Period duration="PT0H0M15.000S" id="content-period-3">
    ...
  </Period>
  ...
</MPD>

مراجع إضافية