مطالعات موردی

‫Instagram و Facebook با Media3 PreloadManager بازپخش فوری ارائه می‌دهند و مشارکت کاربر را تقویت می‌کنند

زمان خواندن: ۴ دقیقه

در دنیای پویای رسانه‌های اجتماعی، توجه کاربر به‌سرعت جلب یا ازدست می‌رود. برنامه‌های Meta (فیس‌بوک و اینستاگرام) از بزرگ‌ترین پلاتفرم‌های اجتماعی جهان هستند و به میلیاردها کاربر در سراسر جهان خدمات ارائه می‌دهند. برای Meta، ارائه یکپارچه ویدیوها فقط یک ویژگی نیست، بلکه هسته اصلی تجربه کاربری آن‌ها است. ویدیوهای کوتاه، به‌ویژه «فید اخبار» فیس‌بوک و «فیلم‌های کوتاه» Instagram، به محرک اصلی تعامل تبدیل شده‌اند. این ویدیوها امکان بیان خلاقانه و مصرف سریع محتوا را فراهم می‌کنند و افراد را در سراسر جهان به هم متصل و سرگرم می‌کنند. 

این پست وبلاگ شما را با مسیری آشنا می‌کند که Meta طی کرد تا با ارائه بازپخش فوری واقعی، بازپخش ویدیو را برای میلیاردها نفر متحول کند.

شکاف تأخیر در ویدیوهای کوتاه

ویدیوهای کوتاه مدت منجر به تعاملات بسیار سریع می‌شوند زیرا کاربران به‌سرعت در فیدهای خود پیمایش می‌کنند. ارائه انتقال یکپارچه بین ویدیوها در فیدی که دائماً درحال تغییر است، موانع منحصربه‌فردی را برای بازپخش فوری ایجاد می‌کند. بنابراین به راه‌حل‌هایی نیاز داریم که فراتر از حافظه نهان دیسک سنتی و استراتژی‌های بازپخش واکنشی استاندارد باشند.

مسیر پیش‌رو با Media3 PreloadManager

برای رسیدگی به تغییرات در عادات مصرف ناشی از افزایش محتوای کوتاه و محدودیت‌های معماری بازپخش سنتی محتوای طولانی، Jetpack Media3 PreloadManager را معرفی کرد. این مؤلفه به توسعه‌دهندگان اجازه می‌دهد فراتر از حافظه نهان دیسک بروند و کنترل و سفارشی‌سازی دانه‌ای ارائه می‌دهد تا رسانه قبل‌از اینکه کاربر روی پخش ضربه بزند در حافظه آماده باشد. برای درک جزئیات فنی درباره بازپخش رسانه با PreloadManager، این مجموعه وبلاگ را بخوانید.

چگونه Meta به بازپخش فوری واقعی دست یافت

پیچیدگی‌های موجود

پیش‌تر، Meta از ترکیبی از آماده‌سازی (برای آماده کردن پخش‌کننده‌ها) و پیش‌واکشی (برای ذخیره محتوا در حافظه نهان دیسک) برای ارائه ویدیو استفاده می‌کرد. اگرچه این روش‌ها به بهبود کارایی شبکه کمک کردند، اما چالش‌های قابل‌توجهی را نیز به‌همراه داشتند. آماده‌سازی مستلزم نمونه‌سازی متوالی چندین نمونه پخش‌کننده بود که حافظه قابل‌توجهی مصرف می‌کرد و پیش‌بارگیری را به چند ویدیو محدود می‌کرد. این تقاضای بالا برای منابع به این معنی بود که می‌توان از راه‌حل قوی‌تر و مقیاس‌پذیرتری برای ارائه بازپخش فوری موردانتظار در فیدهای اجتماعی مدرن با پیمایش سریع استفاده کرد.

ادغام Media3 PreloadManager

برای دستیابی به بازپخش واقعاً فوری، تیم «کارخواه بنیاد رسانه» Meta،‏ Jetpack Media3 PreloadManager را در Facebook و Instagram ادغام کرد. آن‌ها DefaultPreloadManager را برای یکپارچه کردن سیستم‌های پیش‌بارگیری و بازپخش خود انتخاب کردند. این ادغام مستلزم بازسازی معماری موجود Meta بود تا هم‌رسانی کارآمد منابع بین نمونه‌های PreloadManager و ExoPlayer امکان‌پذیر شود. این تغییر استراتژیک یک مزیت معماری کلیدی را فراهم کرد: توانایی موازی‌سازی وظایف پیش‌بارگیری و مدیریت ویدیوهای متعدد بااستفاده از یک نمونه پخش‌کننده واحد. این کار ظرفیت پیش‌بارگیری را به‌طور چشمگیری افزایش داد و درعین‌حال پیچیدگی‌های بالای حافظه در رویکرد قبلی را ازبین برد.

colinKho.png

بهینه‌سازی و تنظیم عملکرد

سپس تیم آزمایش‌ها و تکرارهای گسترده‌ای را برای بهینه‌سازی عملکرد در سراسر بوم‌سازگان دستگاه‌های جهانی متنوع Meta انجام داد. پیش‌بارگیری تهاجمی اولیه گاهی اوقات مشکلاتی ایجاد می‌کرد، ازجمله افزایش استفاده از حافظه و کند شدن عملکرد پیمایش. برای حل این مشکل، آن‌ها پیاده‌سازی را بااستفاده از اندازه‌گیری‌های دقیق حافظه، درنظر گرفتن تکه‌تکه‌سازی دستگاه، و تطبیق سیستم با الگوهای خاص میانای کاربر تنظیم دقیق کردند.

تنظیم دقیق پیاده‌سازی برای الگوهای میانای کاربر خاص

‫Meta استراتژی‌های پیش‌بارگیری متفاوتی را اعمال کرد و رفتار را برای مطابقت با الگوهای میانای کاربر خاص هر برنامه سفارشی‌سازی کرد:

  • فید اخبار فیس‌بوک: میانای کاربر ویدیویی را که درحال‌حاضر درحال نمایش است در اولویت قرار می‌دهد. مدیر فقط ویدیو فعلی را پیش‌بار می‌کند تا مطمئن شود که ویدیو دقیقاً در لحظه‌ای که کاربر پیمایش را متوقف می‌کند شروع می‌شود. این تمرکز «فقط فعلی» ردپای داده و حافظه را در محیطی که کاربران ممکن است پست‌های ثابت زیادی را بین ویدیوها ببینند به‌حداقل می‌رساند. درحالی‌که سیستم درحال‌حاضر برای پیش‌بارگیری فقط ویدیو درحال مشاهده طراحی شده است، می‌توان آن را برای پیش‌بارگیری ویدیوهای بعدی (آینده) نیز تنظیم کرد. 
  • Instagram Reels: این یک محیط ویدیویی خالص است که کاربران به‌صورت عمودی تند می‌کشند. برای این واسط کاربر، تیم استراتژی «پیش‌بارگیری مجاور» را پیاده‌سازی کرد. PreloadManager ویدیوها را بلافاصله پس‌از «فیلم کوتاه» فعلی در حافظه آماده نگه می‌دارد. این رویکرد دوطرفه تضمین می‌کند که چه کاربر تند به بالا بکشد چه به پایین، انتقال فوری و روان باقی بماند. نتیجه این کار بهبود چشمگیر در «کیفیت تجربه» (QoE) بود، ازجمله بهبود در «شروع بازپخش» و «زمان تا اولین فریم» برای کاربر.

مقیاس‌بندی برای بوم‌سازگان دستگاه‌های جهانی متنوع

مقیاس‌بندی پشته ویدیویی با عملکرد بالا در میلیاردها دستگاه به چیزی بیش از پیش‌بارگیری تهاجمی نیاز دارد؛ به هوش نیاز دارد. Meta در ابتدا با چالش‌هایی درزمینه فشار حافظه و تأخیر پیمایش، به‌ویژه در سخت‌افزارهای میان‌رده تا پایین‌رده، مواجه شد. برای حل این مشکل، آن‌ها سیستم تشخیص فشار دستگاه را حول پیاده‌سازی Media3 ساختند. اکنون برنامه‌ها سیگنال‌های ورودی/خروجی و واحد پردازش مرکزی را به‌طور هم‌زمان پایش می‌کنند. اگر دستگاه تحت بار سنگین باشد، پیش‌بارگذاری موقتاً متوقف می‌شود تا پاسخ‌گویی واسط کاربر در اولویت قرار گیرد.

این بهینه‌سازی آگاه از دستگاه تضمین می‌کند که مزیت بازپخش فوری به قیمت پایداری سیستم تمام نمی‌شود و حتی به کاربران دارای سخت‌افزار قدیمی‌تر اجازه می‌دهد فید روان‌تر و بدون وقفه‌ای را تجربه کنند.

mirabelHu.png

موفقیت‌های معماری و سلامت کد

فراتر از معیارهای سَمت کاربر، انتقال به Media3 PreloadManager مزایای معماری بلندمدتی را ارائه داد. اگرچه فرایند ادغام و تنظیم برای ایجاد تعادل در عملکرد به تکرارهای متعدد نیاز داشت، پایگاه کد حاصل قابل‌نگهداری‌تر است. تیم متوجه شد که میانای برنامه‌سازی کاربردی PreloadManager به‌طور تمیز با بوم‌سازگان Media3 موجود ادغام شده است و امکان هم‌رسانی بهتر منابع را فراهم می‌کند. برای Meta، پذیرش Media3 PreloadManager یک سرمایه‌گذاری استراتژیک در آینده مصرف ویدیو بود. 

با اتخاذ پیش‌بارگیری و افزودن دروازه‌های هوشمند دستگاه، آن‌ها با موفقیت کل زمان تماشا را در برنامه‌های خود افزایش دادند و تعامل کلی جامعه جهانی خود را بهبود بخشیدند. 

تأثیر ناشی از آن بر Instagram و Facebook

معماری پیش‌کنشی بهبودهای فوری و قابل‌اندازه‌گیری را در هر دو پلاتفرم ارائه کرد. 

  • Facebook شروع بازپخش سریع‌تر، کاهش نرخ توقف بازپخش، و کاهش جلسات بد (مانند میان‌گیری مجدد، زمان شروع با تأخیر، کیفیت پایین‌تر، و غیره) را تجربه کرد که درمجموع منجر به زمان تماشای بیشتر شد. 
  • Instagram شاهد شروع سریع‌تر بازپخش و افزایش در کل زمان تماشا بود. حذف تأخیر پیوستن (فاصله زمانی بین کنش کاربر تا نمایش اولین فریم) مستقیماً سنجه‌های تعامل را افزایش داد. کاهش وقفه‌ها به‌دلیل کاهش میان‌گیری به این معنی بود که کاربران محتوای بیشتری تماشا کردند، که این امر ازطریق سنجه‌های تعامل نشان داده شد.
beforeAfterPreload.gif

یادگیری‌های مهندسی کلیدی در مقیاس

با تکامل عادت‌های مصرف رسانه، تقاضا برای تجربه‌های فوری همچنان افزایش خواهد یافت. پیاده‌سازی مدیریت حافظه پیش‌کنشی و بهینه‌سازی برای مقیاس و تنوع دستگاه تضمین می‌کند که برنامه شما می‌تواند به‌طور کارآمد این انتظارات را برآورده کند.

  • اولویت‌بندی پیش‌بارگیری هوشمند

با به‌حداقل رساندن لکنت و زمان بار کردن ازطریق پیش‌بار کردن، بر ارائه تجربه‌ای قابل‌اعتماد تمرکز کنید. به‌جای ذخیره ساده در حافظه نهان دیسک، استفاده از پیش‌بارگیری در سطح حافظه تضمین می‌کند که محتوا در لحظه تعامل کاربر با آن آماده است.

  • هم‌راستا کردن پیاده‌سازی با الگوهای میانای کاربر

رفتار پیش‌بارگیری را مطابق با میانای کاربر برنامه‌تان سفارشی‌سازی کنید. برای مثال، برای فیدهای ترکیبی مانند فیس‌بوک، از تمرکز «فقط فعلی» برای صرفه‌جویی در حافظه استفاده کنید و برای محیط‌های عمودی مانند Instagram Reels، از استراتژی «پیش‌بارگذاری مجاور» استفاده کنید.

preloadingStrategy.png
  • استفاده از Media3 برای سلامت کد در بلندمدت

ادغام با Media3 API به‌جای راهکار ذخیره موقت سفارشی، امکان هم‌رسانی بهتر منابع بین پخش‌کننده و PreloadManager را فراهم می‌کند و به شما امکان می‌دهد چندین ویدیو را با یک نمونه پخش‌کننده مدیریت کنید. این کار منجر به ایجاد پایگاه کدی می‌شود که برای آینده مناسب است و برای تیم‌های مهندسی آسان‌تر است که نه‌تنها آن را درطول زمان حفظ و بهینه‌سازی کنند، بلکه از جدیدترین به‌روزرسانی‌های ویژگی نیز بهره‌مند شوند.

  • پیاده‌سازی بهینه‌سازی‌های آگاه از دستگاه

با آزمایش کردن روی دستگاه‌های مختلف، ازجمله مدل‌های متوسط تا پایین، دسترسی به بازارتان را گسترش دهید. از سیگنال‌های هم‌زمان مانند CPU، حافظه، و I/O برای تطبیق پویای ویژگی‌ها و استفاده از منابع استفاده کنید.

بیشتر بدانید

برای شروع و کسب اطلاعات بیشتر، به   مراجعه کنید

اکنون رازهای بازپخش فوری را می‌دانید. بروید و آن‌ها را امتحان کنید!

نویسنده:
ادامه خواندن