فرمت MPD (.mpd): راهنمای جامع توصیف ارائه رسانه
پسوند فایل .mpd ممکن است نامفهوم به نظر برسد، اما نقش حیاتی در پخش ویدیوهای مدرن دارد. اگر تا به حال ویدیویی را در یوتیوب یا نتفلیکس تماشا کردهاید و تنظیمات کیفیت بدون درز بر اساس سرعت اینترنت شما انجام شده است، بهطور غیرمستقیم از فناوری پشت فرمت MPD بهرهمند شدهاید.
این مقاله نگاهی عمیق به فرمت MPD میاندازد، بهویژه با تمرکز بر Media Presentation Description که در پخش MPEG-DASH (پخش پویا تطبیقی بر بستر HTTP) استفاده میشود. ما توضیح خواهیم داد که این چیست، ویژگیهای کلیدی آن، چگونه آن را ایجاد و باز کنیم، و به سؤالات رایج پاسخ میدهیم. از آنجا که “.mpd” میتواند به انواع دیگر فایلها اشاره کند، این راهنما بر مهمترین کاربرد آن در فناوری پخش مدرن تمرکز خواهد کرد.
فایل MPD (.mpd) چیست؟
در زمینه پخش ویدیو آنلاین، فایل MPD مخفف Media Presentation Description است. این یک فایل مانیفست مبتنی بر XML است که بهعنوان سند کنترل مرکزی برای MPEG‑DASH، یک استاندارد بینالمللی برای پخش تطبیقی بیتریت، عمل میکند. میتوانید آن را بهعنوان فهرست مطالب دقیق و نقشهٔ پویا برای یک فایل ویدئویی در نظر بگیرید.
به جای یک فایل ویدئویی واحد، یک MPD یک ارائه رسانهای را توصیف میکند که مجموعهای ساختار یافته از دادهها است که محتویات رسانه را تشکیل میدهد. این به پخشکننده رسانه (کلاینت) میگوید که کجا دادههای واقعی ویدئو و صدا را پیدا کند، که به بخشهای کوچک و مبتنی بر زمان تقسیم شدهاند. MPD URLها یا قالبهای URL برای این بخشها را فراهم میکند تا کلاینت بتواند آنها را از طریق HTTP درخواست کند.
ویژگیهای کلیدی یک فایل MPD
قدرت فرمت MPD در توانایی آن برای فراهم کردن تجربه پخش روان و با کیفیت بالا نهفته است. ویژگیهای کلیدی آن توسط استاندارد MPEG‑DASH تعریف شدهاند.
1. پخش تطبیقی با نرخ بیت متغیر (ABR)
این مهمترین ویژگی است. MPD چندین نمایش از یک محتوای یکسان را فهرست میکند. یک نمایش نسخهای رمزگذاریشده از ویدئو با بیتریت و وضوح خاص است (مثلاً 720p با 2 Mbps، 1080p با 5 Mbps). بر اساس شرایط شبکه بهصورت زمان واقعی و قابلیتهای دستگاه، کلاینت میتواند بین این نمایشها بهصورت بیوقفه جابجا شود و پخش مداوم بدون بافرینگ را تضمین کند.
2. ساختار سلسلهمراتبی XML
MPD یک فایل متنی است که به فرمت XML نوشته شده است، که باعث میشود هم برای انسان قابل خواندن و هم برای ماشین قابل تجزیه باشد. اطلاعات بهصورت یک سلسلهمراتب واضح سازماندهی شدهاند:
- دوره: یک دوره نمایانگر یک بازه زمانی پیوسته در ارائهٔ رسانهای است. یک فیلم کامل میتواند یک دوره باشد، یا میتواند به چندین دوره برای فصلهای مختلف یا قطعهای تبلیغاتی تقسیم شود.
- مجموعه سازگاری: در یک دوره، یک مجموعه سازگاری نمایانگر ترکیب نمایههای جایگزین از همان مؤلفهٔ محتوای رسانهای است، مانند جریان ویدئویی یا جریان صوتی.
- نمایش: این یک نسخهٔ رمزگذاریشدهٔ خاص از مؤلفهٔ رسانهای را تعریف میکند، شامل جزئیاتی مانند بیتریت، وضوح، کدک و نرخ فریم.
- اطلاعات بخش: این بخش شامل اطلاعاتی دربارهٔ بخشهای رسانهای است، مانند مدت زمان آنها و چگونگی ساخت URL برای درخواست آنها.
۳. پشتیبانی از پخش زنده و بر حسب درخواست
قالب MPD میتواند هر دو محتوای بر پایهٔ درخواست (مانند یک فیلم) و جریانهای زنده (مانند یک رویداد ورزشی) را توصیف کند. این توسط ویژگی type در برچسب <MPD> کنترل میشود. یک type="static" برای محتوای بر پایهٔ درخواست استفاده میشود، در حالی که type="dynamic" برای پخشهای زنده به کار میرود.
۴. همگامسازی چندجریان
رسانههای مدرن اغلب شامل چندین مسیر مانند ویدئو، صدا به زبانهای مختلف، و زیرنویسها هستند. MPD میتواند تمام این مؤلفهها را توصیف کند و ساختار آن به کلاینت امکان میدهد تا آنها را بهطور کامل در حین پخش همگامسازی کند.
۵. حفاظت از محتوا و احراز هویت
فایلهای MPD میتوانند عناصری برای مدیریت حقوق دیجیتال (DRM) و احراز هویت محتوا شامل شوند و روشی استاندارد برای حفاظت از مطالب دارای حق کپیرایت فراهم میکنند.
نحوه ایجاد فایل MPD
ایجاد یک فایل MPD فرآیندی است که به “DASHing” یا “بستهبندی” شناخته میشود. این کار شامل گرفتن فایل رسانهای شما (مانند MP4) و تقسیمبندی آن بر اساس استاندارد MPEG‑DASH است که بهصورت خودکار مانیفست MPD را تولید میکند.
ابزار رایجترین برای این کار MP4Box از GPAC است. در اینجا یک مثال سادهشده از فرمان آورده شده است:
MP4Box -dash 2000 sample.mp4 -out sample.mpd
در این فرمان:
-dash 2000مدت زمان بخش را به ۲۰۰۰ میلیثانیه (۲ ثانیه) تنظیم میکند.sample.mp4فایل ویدیویی ورودی شما است.-out sample.mpdنام فایل مانیفست خروجی را مشخص میکند.
نکته مهم: فایل خروجی باید پسوند .mpd داشته باشد، نه .mp4. این یک اشتباه رایج است که میتواند منجر به سردرگمی شود.
برای سناریوهای پیچیدهتر، میتوانید چندین مسیر صوتی و تصویری، پروفایلهای مختلف و قالبهای URL را مشخص کنید. به عنوان مثال، میتوان فرمان را گسترش داد تا چندین مسیر را مدیریت کرده و یک پروفایل پخش زنده ایجاد کند:
MP4Box -dash 2000 -profile dashavc264:live -bs-switching multi -url-template video.mp4#trackID=1:id=vid0 audio.mp4#trackID=2:id=aud0 -out sample.mpd
ساختار نمونه کد MPD
در اینجا یک فایل MPD پایه به صورت XML نشان داده میشود:
<?xml version="1.0" encoding="UTF-8"?>
<MPD xmlns="urn:mpeg:dash:schema:mpd:2011"
type="static"
mediaPresentationDuration="PT10M"
minBufferTime="PT1.5S"
profiles="urn:mpeg:dash:profile:isoff-on-demand:2011">
<Period duration="PT10M">
<AdaptationSet mimeType="video/mp4" codecs="avc1.4D401E">
<Representation id="video_1" bandwidth="500000" width="640" height="360">
<BaseURL>video-360.mp4</BaseURL>
<SegmentBase indexRange="1000-2000"/>
</Representation>
<Representation id="video_2" bandwidth="1500000" width="1280" height="720">
<BaseURL>video-720.mp4</BaseURL>
<SegmentBase indexRange="3000-4000"/>
</Representation>
</AdaptationSet>
<AdaptationSet mimeType="audio/mp4" codecs="mp4a.40.2">
<Representation id="audio_1" bandwidth="128000">
<BaseURL>audio.mp4</BaseURL>
<SegmentBase indexRange="5000-6000"/>
</Representation>
</AdaptationSet>
</Period>
</MPD>
ابزارهای جایگزین برای ایجاد فایلهای MPD
در حالی که MP4Box محبوبترین است، ابزارهای دیگری که میتوانید استفاده کنید عبارتند از:
| ابزار | توضیح | پلتفرم |
|---|---|---|
| FFmpeg | میتواند بخشهای DASH و فایلهای MPD را با استفاده از گزینه -f dash ایجاد کند | چندپلتفرمی |
| Bento4 | مجموعهای از ابزارها برای بستهبندی MP4 و DASH | چندپلتفرمی |
| Shaka Packager | ابزار بستهبندی منبع باز گوگل برای DASH و HLS | چندسکویی |
| AWS Elemental MediaConvert | سرویس بستهبندی مبتنی بر ابر | ابر |
مثال با استفاده از FFmpeg
ffmpeg -i input.mp4 -c:v libx264 -c:a aac -f dash -seg_duration 2 output.mpd
نحوه باز کردن فایل MPD
نحوهٔ باز کردن یک فایل .mpd کاملاً به این که برای چه منظوری طراحی شده است بستگی دارد.
برای پخش (MPEG-DASH MPD)
پخشکنندههای وب: شما نمیتوانید یک فایل MPD را همانند یک فایل MP4 در یک پخشکنندهٔ رسانهٔ استاندارد مانند VLC یا Windows Media Player «باز» کنید. در عوض، یک MPD توسط پخشکنندهٔ رسانهای سازگار با DASH باز میشود. یک مثال، پخشکنندهٔ منبع باز Dash.js است که در بسیاری از برنامههای وب تعبیه شده است. وقتی به وبسایتی که از MPEG‑DASH استفاده میکند مراجعه میکنید، پخشکنندهٔ وب فایل MPD را در پسزمینه میخواند و پردازش میکند تا بخشهای ویدئویی را دریافت و پخش کند.
آزمون با Dash.js: میتوانید یک فایل MPD را با استفاده از پخشکنندهٔ مرجع Dash.js که در https://reference.dashif.org/dash.js/ موجود است، تست کنید. به سادگی URL فایل MPD خود را بچسبانید و پخشکننده سعی خواهد کرد محتوا را استریم کند.
برای مشاهده کد
- ویرایشگرهای متن: از آنجا که این یک فایل XML است، میتوانید یک فایل MPD را در هر ویرایشگر متنی باز کنید تا ساختار و محتوای آن را بررسی کنید. این برای توسعهدهندگان و تستکنندگان تضمین کیفیت مفید است. میتوانید از Notepad (Windows)، TextEdit (Mac) یا یک ویرایشگر کد پیشرفتهتر مانند VS Code، Sublime Text یا Notepad++ استفاده کنید.
توضیح مهم درباره انواع دیگر فایلهای .mpd
پایگاهداده Microsoft Project: این یک فرمت قدیمی است که توسط Microsoft Project برای ذخیرهسازی دادههای مدیریت پروژه استفاده میشود. این فایل فقط میتواند با نسخههای خاص، اغلب قدیمی، Microsoft Project یا کتابخانههای شخص ثالث مانند MPXJ باز شود.
فهرستساز فایلها (File List Creator) Playlist: برخی نرمافزارهای قدیمی از پسوند
.mpdبرای فایلهای لیست پخش استفاده میکنند که میتوان آنها را با ویرایشگرهای متن باز کرد.
موارد استفاده و کاربردها
خدمات ویدیو بر حسب درخواست (VOD)
پلتفرمهایی مانند Netflix، Amazon Prime و Disney+ از MPEG‑DASH همراه با مانیفستهای MPD برای ارائه فیلمها و برنامههای تلویزیونی استفاده میکنند. MPD به این سرویسها امکان میدهد سطوح کیفیت متعددی ارائه دهند و با اتصال اینترنت هر کاربر سازگار شوند.
پخش زنده
رویدادهای ورزشی، کانالهای خبری و کنسرتها بهصورت زنده با استفاده از فایلهای MPD پویا پخش میشوند. مانیفست بهصورت زمان واقعی بهروزرسانی میشود هنگامی که بخشهای جدید در دسترس میگردند، که به بینندگان امکان میدهد رویدادها را همانلحظه تماشا کنند.
نظارت و امنیت
دوربینهای IP و سیستمهای امنیتی از فایلهای MPD برای پخش زنده تصویر به ایستگاههای نظارت و دستگاههای موبایل استفاده میکنند و پخش قابل اعتماد را حتی در شرایط نوسان شبکه تضمین مینمایند.
پلتفرمهای آموزش الکترونیکی
پلتفرمهای آموزشی از پخش DASH برای ارائه ویدیوهای درسی استفاده میکنند و اطمینان میدهند که دانشآموزان میتوانند بدون مشکلات بافرینگ، صرفنظر از کیفیت اتصال خود، به محتوا دسترسی داشته باشند.
مزایای استفاده از MPD در MPEG-DASH
1. استاندارد باز
بر خلاف HLS (پخش زنده HTTP) اپل، MPEG-DASH یک استاندارد بینالمللی باز است که آن را بهصورت مستقل از پلتفرم و بهطور گستردهای پشتیبانی میکند.
2. استفاده بهینه از پهنای باند
با تنظیم دینامیک کیفیت، MPD مصرف داده را به حداقل میرساند و هزینهها را برای هر دو طرف ارائهدهندگان و کاربران صرفهجویی میکند.
3. انتقالهای روان
رویکرد مبتنی بر بخشها امکان انتقال بیوقفه بین سطوح کیفیت را فراهم میکند و از ناامیدی بینندگان بهدلیل بافرینگ یا کاهش کیفیت جلوگیری میکند.
4. پشتیبانی از چند CDN
فایلهای MPD میتوانند شامل چندین BaseURL باشند که امکان تحویل محتوا از چندین CDN برای افزونگی و تعادل بار را فراهم میکند.
5. درج تبلیغات
MPDهای پویا امکان درج تبلیغات در سمت سرور را فراهم میکنند، بهطوری که تبلیغات بهصورت یکپارچه در پخش زنده یا محتوای VOD ادغام میشوند.
محدودیتها و ملاحظات
۱. پیچیدگی DRM
اگرچه MPD از DRM پشتیبانی میکند، پیادهسازی صحیح آن در دستگاهها و مرورگرهای مختلف میتواند چالشبرانگیز باشد.
۲. نیازهای سمتکلاینت
کلاینت (پخشکننده) باید با DASH سازگار باشد. همه پخشکنندههای قدیمی بدون کتابخانههای جاوااسکریپت اضافی از MPEG-DASH پشتیبانی نمیکنند.
۳. تأخیر
پخش زنده با MPD معمولاً تاخیر ۶ تا ۳۰ ثانیه دارد. برای برنامههای با تأخیر فوقالعاده پایین (مانند ویدئو کنفرانس)، پروتکلهای دیگری مانند WebRTC ممکن است مناسبتر باشند.
۴. هزینهٔ حجم فایل
ساختار XML میتواند پرحجم باشد و نسبت به فرمتهای باینری مانیفست، مقداری سربار اضافه کند.
روندهای آینده
۱. DASH با تأخیر کم (LL-DASH)
انجمن صنعتی DASH افزونههایی را برای کاهش تاخیر معرفی کرده است که تجربههای پخش نزدیک به زمان واقعی را ممکن میسازد.
۲. یکپارچهسازی CMCD
یکپارچهسازی Common Media Client Data (CMCD) به پخشکنندههای MPD امکان میدهد دادههای پخش را با CDNها به اشتراک بگذارند تا بهینهسازی عملکرد بهتری داشته باشند.
۳. پشتیبانی از 8K و HDR
همانطور که کیفیت ویدئو پیشرفت میکند، MPDها در حال گسترش برای پشتیبانی از رزولوشنهای بالاتر، HDR و گاموتهای رنگی گستردهتر هستند.
4. درج تبلیغ در سمت سرور (SSAI)
دستکاریهای پیشرفته MPD امکان ادغام بدون درز تبلیغات را مستقیماً در مانیفست فراهم میکند و تجربههای تبلیغاتی روانتری ایجاد مینماید.
نتیجهگیری
فرمت MPD قهرمان نادیدهگیر شدهٔ استریمینگ مدرن است. در حالی که پسوند فایل آن میتواند با سایر فرمتهای داده اشتباه گرفته شود، نقش آن به عنوان Media Presentation Description در MPEG-DASH است که جریانهای ویدئویی سازگار و با کیفیت بالا را که روزانه در اینترنت لذت میبریم، قدرت میبخشد. ساختار XML منظم آن و اصول اصلی ارائهٔ چندین نمای مختلف و اطلاعات جزئیات بخشها، تجربهٔ استریمینگ قوی، مقیاسپذیر و کاربرپسند را تضمین میکند.
چه شما یک ارائهدهنده محتوا باشید، چه توسعهدهندهای که یک پلتفرم استریمینگ میسازد، یا صرفاً یک علاقهمند کنجکاو به فناوری، درک فرمت MPD به شما بینش میدهد دربارهٔ فناوری پیشرفتهٔ پشت هر تجربهٔ پخش ویدئویی بدون درز.
سوالات متداول (FAQ)
1. برای باز کردن یک فایل DASH MPD برای مشاهده چه نرمافزاری نیاز دارم؟ شما به یک پخشکنندهٔ رسانهای نیاز دارید که از MPEG-DASH پشتیبانی کند، مانند مرورگر وب با یک پخشکنندهٔ سازگار با DASH مانند dash.js. شما نمیتوانید آن را بهصورت مستقیم در یک پخشکنندهٔ ویدئویی استاندارد باز کنید.
2. آیا فایل MPD همان فایل MP4 است؟ خیر. یک فایل MP4 شامل دادههای صوتی و تصویری رمزگذاریشدهٔ واقعی است. یک فایل MPD یک مانیفست است که محتوای رسانهای را توصیف میکند و به پخشکننده میگوید کجا بخشهای کوچکتر آن داده را پیدا کند.
3. ساختار یک فایل MPD چیست؟ یک MPD یک فایل XML با ساختار سلسلهمراتبی است که شامل عناصر <Period>، <AdaptationSet>، <Representation> و <SegmentInfo> برای سازماندهی و توصیف رسانه میباشد.
4. آیا میتوانم یک فایل MPD از ویدئوی خودم ایجاد کنم؟ بله، میتوانید از ابزارهای منبع باز مانند MP4Box از GPAC یا FFmpeg برای تقسیم ویدئوی خود و تولید خودکار فایل MPD مربوطه استفاده کنید.
5. چرا پخشکننده من هنگام استفاده از MPD کمتر باقیمانده میشود؟ زیرا MPD به پخشکننده امکان میدهد تا با شرایط شبکه شما سازگار شود. اگر سرعت شما کاهش یابد، پخشکننده میتواند یک نمای با کیفیت پایینتر را از MPD درخواست کند و با دانلود قطعات کوچکتر داده، از باقیمانده شدن جلوگیری میکند.