Adaptive Bitrate (ABR) — فناوری پخش جریانی است که کیفیت ویدیو را بسته به پهنای باند کانال کاربر به صورت پویا تغییر میدهد. برخلاف دانلود تدریجی، ABR ویدیو را به بخشهای کوچک ۲–۱۰ ثانیهای تقسیم میکند و در لحظه بین آنها سوئیچ میکند. بر اساس گزارش Bitmovin Video Developer Report (2025)، ۸۶٪ از سرویسهای استریمینگ از ABR برای پخش روان در دستگاههای موبایل استفاده میکنند.
نکات اصلی
Adaptive Bitrate (ABR) — روشی برای پخش جریانی محتوای رسانهای است که در آن فایل ویدیویی به چندین نسخه با نرخ بیت و وضوح متفاوت کدگذاری میشود و پخشکننده به طور خودکار نسخه مناسب را در زمان واقعی انتخاب میکند. کاربر حداکثر کیفیت ممکن را بدون بافرینگ با سرعت اینترنت فعلی خود دریافت میکند.
برخلاف دانلود تدریجی سنتی (progressive download)، ABR نیاز به بارگیری کل فایل ندارد — پخشکننده بخشهای کوتاه با کیفیت مورد نیاز را درخواست میکند و میتواند بین بخشها به نرخ بیت دیگری سوئیچ کند. این فناوری را برای برنامههای موبایل که سرعت شبکه دائماً در حال تغییر است ضروری میسازد.
فناوری استریمینگ تطبیقی اولین بار در سال ۲۰۰۶ توسط Move Networks برای پخش کانال ABC به صورت تجاری پیادهسازی شد. در سال ۲۰۰۹، اپل HTTP Live Streaming (HLS) را معرفی کرد که اولین استاندارد پرکاربرد ABR مبتنی بر HTTP شد و هنوز در اکوسیستم iOS غالب است.
در سال ۲۰۱۲، MPEG استاندارد MPEG-DASH (Dynamic Adaptive Streaming over HTTP) را به عنوان فرمت جهانی ABR منتشر کرد که به فروشنده خاصی وابسته نیست. DASH توسط تمام پلتفرمهای بزرگ پشتیبانی میشود و تنها استاندارد ABR است که توسط ISO پذیرفته شده است.
فرآیند استریمینگ ABR از مرحله آمادهسازی محتوا آغاز میشود: ویدیوی اصلی به چندین نسخه با نرخ بیت متفاوت — مثلاً ۱۴۴p، ۳۶۰p، ۷۲۰p، ۱۰۸۰p و ۴K — کدگذاری میشود. هر نسخه به بخشهایی با طول یکسان، معمولاً ۲، ۴، ۶ یا ۱۰ ثانیه تقسیم میشود.
در سرور یک فایل مانیفست ایجاد میشود که نسخههای موجود (representations)، نرخ بیت، وضوح، کدک و پیوندهای بخشها را توصیف میکند. پخشکننده مانیفست را دانلود میکند، آن را تحلیل میکند و برای شروع سریع با کمترین نرخ بیت پخش را آغاز میکند.
<!-- MPEG-DASH MPD manifest -->
<MPD profiles="urn:mpeg:dash:profile:isoff-live:2011">
<Period>
<AdaptationSet mimeType="video/mp4">
<Representation id="720p" bandwidth="2800000"
width="1280" height="720">
<SegmentTemplate duration="4"
media="seg_$Number$.m4s"/>
</Representation>
</AdaptationSet>
</Period>
</MPD>
در طول پخش، الگوریتم ABR در سمت کلient به طور مداوم وضعیت شبکه و بافر را پایش میکند. اگر پهنای باند کاهش یابد، پخشکننده بخشهای بعدی را با نرخ بیت پایینتر درخواست میکند تا از بافرینگ جلوگیری کند. با بهبود شبکه، نرخ بیت افزایش مییابد.
سوئیچینگ بین نرخهای بیت در مرزهای بخشها انجام میشود که تغییر کیفیت را برای کاربر تقریباً نامحسوس میکند. پخشکنندههای مدرن میتوانند فریمهای کلیدی را بین نسخههای مختلف همگامسازی کنند تا سوئیچینگ بدون مصنوعات بصری انجام شود.
سه پروتکل اصلی ABR در بازار ویدیوی جریانی غالب هستند: HLS از اپل، MPEG-DASH به عنوان استاندارد باز و Smooth Streaming از مایکروسافت. هر پروتکل فرمت مانیفست، روش بخشبندی و مکانیزم رمزنگاری را تعیین میکند.
| پروتکل | توسعهدهنده | مانیفست | بخشها | رمزنگاری |
|---|---|---|---|---|
| HLS | Apple | .m3u8 (M3U playlist) | .ts یا .fmp4 | AES-128، SAMPLE-AES |
| MPEG-DASH | ISO/MPEG | .mpd (XML) | .m4s یا .webm | CENC (Common Encryption) |
| Smooth Streaming | Microsoft | .ismc (XML، IIS) | .ismv / .isma | PlayReady (AES-128 CT) |
HLS — رایجترین پروتکل ABR است که در iOS، tvOS و Safari در macOS تعبیه شده است. فرمت مانیفست بر اساس پلیلیستهای توسعهیافته M3U است، جایی که پلیلیست اصلی (master playlist) شامل پیوندهایی به نسخههای مختلف (variant streams) با نرخ بیت و وضوح متفاوت است.
هر نسخه به پلیلیست رسانهای خود با فهرست بخشها اشاره میکند. HLS از پخش زنده از طریق مکانیزم پنجره کشویی (sliding window) پشتیبانی میکند، جایی که بخشهای قدیمی حذف و بخشهای جدید با ورود اضافه میشوند.
MPEG-DASH — تنها استاندارد ABR است که در سال ۲۰۱۲ توسط ISO/IEC 23009-1 پذیرفته شده است. برخلاف HLS، DASH از مانیفست XML (MPD — Media Presentation Description) استفاده میکند و به فرمت کانتینر خاصی وابسته نیست — از fMP4، WebM و غیره پشتیبانی میکند.
DASH بخشبندی منعطف را فراهم میکند: بخشها میتوانند در یک جریان طول متفاوت داشته باشند که نسبت تأخیر به سربار درخواستهای HTTP را بهینه میکند. برای پخش زنده، DASH از الگوهای بخش (SegmentTemplate) پشتیبانی میکند.
بر اساس آزمایشهای Bitmovin (2025)، HLS و DASH عملکرد قابل مقایسهای از نظر زمان راهاندازی و تعداد سوئیچهای نرخ بیت نشان میدهند. HLS در iOS به دلیل پشتیبانی سختافزاری تأخیر کمتری دارد، DASH در Android به دلیل تنظیمات منعطفتر الگوریتمهای ABR ترجیح داده میشود.
قلب ABR — الگوریتم انتخاب نرخ بیت است که تعیین میکند کدام نسخه بعدی درخواست شود. سه خانواده اصلی از الگوریتمها وجود دارد: مبتنی بر توان عملیاتی (throughput-based)، مبتنی بر بافر (buffer-based) و ترکیبی (hybrid). هر رویکرد نقاط قوت و محدودیتهای خود را دارد.
Throughput-based الگوریتمها پهنای باند شبکه را بر اساس سرعت دانلود بخشهای قبلی تخمین میزنند. الگوریتم حداکثر نرخ بیتی را انتخاب میکند که از ۸۰–۹۰٪ پهنای باند اندازهگیریشده تجاوز نکند و برای نوسانات ذخیره باقی بگذارد.
عیب این رویکرد حساسیت به افزایشهای کوتاهمدت سرعت است. اگر شبکه در طول دانلود یک بخش به شدت کاهش یابد، تخمین پهنای باند پایین میآید و کیفیت به طور غیرضروری کاهش مییابد.
Buffer-based الگوریتمها تصمیمات را بر اساس میزان پر بودن بافر پخشکننده اتخاذ میکنند. اگر بافر بیش از ۷۰٪ پر باشد، الگوریتم نرخ بیت را افزایش میدهد؛ اگر بافر به زیر ۲۰٪ برسد — برای جلوگیری از بافرینگ، کیفیت را به شدت کاهش میدهد.
مزیت اصلی عدم کاهشهای کاذب در افتهای کوتاهمدت شبکه است، زیرا بافر نوسانات را هموار میکند. عیب — واکنش آهسته به تغییرات پایدار پهنای باند.
پخشکنندههای مدرن مانند ExoPlayer و AVPlayer از الگوریتمهای ترکیبی استفاده میکنند که تخمین پهنای باند و وضعیت بافر را ترکیب میکنند. ExoPlayer به طور پیشفرض از الگوریتم ABR DefaultTrackSelector استفاده میکند که هر دو پارامتر را در نظر میگیرد.
در سالهای ۲۰۲۴–۲۰۲۵، الگوریتمهای مبتنی بر یادگیری ماشین که تغییرات آینده شبکه را بر اساس دادههای تاریخی پیشبینی میکنند، به طور فعال در حال پیادهسازی هستند. Netflix، YouTube و Twitch از مدلهای یادگیری ماشین خود برای بهینهسازی انتخاب نرخ بیت استفاده میکنند که تعداد سوئیچها را ۳۰–۴۰٪ کاهش میدهد.
برنامههای موبایل به دلیل ناپایداری شبکههای سلولی (4G/LTE، 5G) و قدرت محاسباتی محدود دستگاهها، الزامات خاصی برای ABR دارند. پخشکننده باید سریعاً با تغییرات شبکه سازگار شود و در عین حال مصرف انرژی و ترافیک را به حداقل برساند.
بر اساس OpenSignal (2025)، میانگین سرعت 4G در شرایط شهری از ۵ تا ۵۰ مگابیت بر ثانیه متغیر است و در حرکت میتواند به ۱ مگابیت بر ثانیه کاهش یابد. الگوریتمهای ABR باید بین نرخهای بیت در ۱–۲ بخش سوئیچ کنند تا از بافرینگ هنگام ورود به تونل یا آسانسور جلوگیری شود.
val trackSelector = DefaultTrackSelector(context).apply {
setParameters(buildUponParameters {
setMaxVideoSizeSd()
setAllowVideoMixedMimeTypeAdaptiveness(true)
setPreferredVideoRoleFlags(
roleFlags(C.ROLE_FLAG_DESCRIBES_VIDEO_AND_AUDIO)
)
})
}
val adaptiveTrackSelectionFactory =
AdaptiveTrackSelection.Factory()
val player = ExoPlayer.Builder(context)
.setTrackSelector(trackSelector)
.setMediaSourceFactory(
DashMediaSource.Factory(dataSourceFactory)
)
.build()
برای برنامههای موبایل، بارگذاری اولیه سریع (time-to-first-frame کمتر از ۲ ثانیه) حیاتی است. توصیه میشود پخش را با کمترین نرخ بیت موجود شروع کنید و سپس با پر شدن بافر کیفیت را افزایش دهید — استراتژی start-low-and-rise.
مصرف انرژی نیز مهم است: شتابدهی سختافزاری رمزگشایی باید برای همه نرخهای بیت استفاده شود. رمزگشایی نرمافزاری نرخهای بیت بالا (۱۰۸۰p و بالاتر) در دستگاههای قدیمی میتواند منجر به داغ شدن و کاهش فرکانس شود.
متریکهای کلیدی کیفیت ABR: تعداد سوئیچهای نرخ بیت (switches)، زمان تا اولین فریم (TTFF)، نسبت سوئیچها به کل زمان تماشا. شاخص کیفیت QoE (Quality of Experience) به عنوان مجموع وزنی نرخ بیت، جریمه سوئیچها و جریمه بافرینگ محاسبه میشود.
برای پایش ABR توصیه میشود تحلیل از پخشکننده جمعآوری شود: نرخ بیت فعلی، اندازه بافر، پهنای باند، تعداد و انواع سوئیچها. دادهها به ارائهدهندگان محتوا کمک میکند مجموعه نرخهای بیت موجود را بهینه کرده و بخشبندی را برای مخاطب خاص تنظیم کنند.
سوالات متداول
Adaptive Bitrate (ABR) — فناوری پخش جریانی که کیفیت ویدیو را به صورت پویا با توجه به شرایط شبکه تغییر میدهد. پخشکننده ویدیو را به بخشها تقسیم کرده و برای هر کدام نرخ بیت بهینه را انتخاب میکند و پخش روان بدون بافرینگ را در دستگاههای موبایل تضمین میکند.
HLS — پروتکل اپل که از پلیلیستهای M3U و جریانهای حمل و نقل (.ts) استفاده میکند. MPEG-DASH — استاندارد باز ISO با مانیفست XML (.mpd) و فرمتهای بخش منعطف. HLS در iOS بهتر است، DASH در Android و وب.
ABR بهبود میبخشد کیفیت درک شده را با حذف بافرینگ: ویدیو میتواند موقتاً وضوح را هنگام بدتر شدن شبکه کاهش دهد، اما متوقف نمیشود. کاربر ویدیوی روان ۷۲۰p را به ۴K متناوب با بافرینگ مداوم ترجیح میدهد.
ExoPlayer از الگوریتم ترکیبی DefaultTrackSelector استفاده میکند که پهنای باند شبکه و میزان پر بودن بافر را در نظر میگیرد. همچنین استراتژیهای Throughput-based و Buffer-based با قابلیت سفارشیسازی از طریق AdaptiveTrackSelection.Factory در دسترس هستند.
طول بخشها تعداد تطبیقها را تعیین میکند: بخشهای کوتاه (۲ ثانیه) سریعتر به تغییرات شبکه واکنش نشان میدهند اما درخواستهای HTTP بیشتری ایجاد میکنند. بخشهای ۴–۶ ثانیه از نظر نسبت سرعت تطبیق به سربار برای دستگاههای موبایل بهینه هستند.
خلاصه
ما یک اپلیکیشن موبایل به صورت کلید در دست توسعه خواهیم داد
IT Sectr از سال 2017 برنامههای iOS و Android را برای استارتاپها و کسبوکارها ایجاد میکند. ما به شما مشاوره میدهیم و بهترین راهحل را پیشنهاد خواهیم کرد.
همچنین بخوانید