تتيح واجهة برمجة تطبيقات عرض 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 |
مَعلمة افتراضية تتوافق مع تنسيق البث. يجب استخدام أحد الخيارَين التاليَين:
|
استرداد بث المحتوى
استخدام 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.
مثال: |
bitrate |
Required |
عدد صحيح يمثّل الحد الأقصى لمعدل نقل بيانات الفيديو لهذا الملف الشخصي بالبايت لكل ثانيًا. |
frames_per_second |
Required |
تمثّل هذه السمة النقطة العائمة عدد اللقطات في الثانية في الفيديو. |
resolution |
Required |
قيمة مرمّزة بتنسيق JSON تحتوي على "عرض" الفيديو و"ارتفاعه" بالبكسل.
مثال: |
إعدادات الصوت | ||
codec |
Required |
سلسلة برنامج ترميز RFC6381.
مثال: |
bitrate |
Required |
عدد صحيح يمثّل الحد الأقصى لمعدل نقل بيانات الصوت في هذا الملف الشخصي بالبايت لكل
ثانيًا.
مثال: |
channels |
Required |
عدد صحيح يمثّل عدد القنوات الصوتية، بما في ذلك التردد المنخفض بشكل أفضل. |
sample_rate |
Required |
عدد صحيح يمثّل معدّل عيّنات الصوت بالهرتز.
مثال: |
إعدادات الترجمة | ||
format |
Required |
تمثّل هذه السمة تنسيق الملف المُستخدَم في الترجمة ضمن النطاق. القيم المسموح بها هي:
webvtt أو ttml
|
language |
Optional |
لغة العنوان الفرعي كسلسلة لغة RFC5646 هذه القيمة إذا تم توفيرها
فقط لعرض DASH.
مثال: |
خيارات ميزة "إدراج إعلان ديناميكي" | ||
dash_profile |
Optional |
الملف الشخصي لـ MPEG-DASH المطلوب تطبيقه على بيانات مجموعة الإعلانات المتسلسلة. يُستخدم هذا الإعداد مع
بيان DASH فقط. القيم المسموح بها هي live أو
on-demand القيمة التلقائية هي on-demand .
تتوافق القيمة
تتوافق القيمة |
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>
مراجع إضافية
- عرض الإعلانات المتسلسلة باستخدام حزمة تطوير البرامج لإعلانات الوسائط التفاعلية:
- البودكاست الذي يعرض إمكانية تشغيل المحتوى باستخدام ميزة "إدراج إعلان ديناميكي" واجهة برمجة التطبيقات