مطالعات موردی
اینستاگرام و فیسبوک با Media3 PreloadManager پخش فوری را ارائه میدهند و تعامل کاربر را افزایش میدهند
مطالعه ۴ دقیقهای

در دنیای پویای رسانههای اجتماعی، توجه کاربران به سرعت جلب یا از دست میرود. اپلیکیشنهای متا (فیسبوک و اینستاگرام) از بزرگترین پلتفرمهای اجتماعی جهان هستند و به میلیاردها کاربر در سراسر جهان خدمترسانی میکنند. برای متا، ارائه یکپارچه ویدیوها فقط یک ویژگی نیست، بلکه هسته اصلی تجربه کاربری آنهاست. ویدیوهای کوتاه، به ویژه فید خبری فیسبوک و ریلز اینستاگرام، به محرک اصلی تعامل تبدیل شدهاند. آنها امکان بیان خلاقانه و مصرف سریع محتوا را فراهم میکنند؛ مردم را در سراسر جهان به هم متصل و سرگرم میکنند.
این پست وبلاگ شما را با چگونگی متحول کردن پخش ویدیو توسط متا با ارائه پخش فوری واقعی، آشنا میکند.
شکاف تأخیر در ویدیوهای کوتاه
ویدیوهای کوتاه منجر به تعاملات بسیار سریع میشوند، زیرا کاربران به سرعت در فیدهای خود اسکرول میکنند. ارائه یک انتقال یکپارچه بین ویدیوها در یک فید دائماً در حال تغییر، موانع منحصر به فردی را برای پخش آنی ایجاد میکند. از این رو، ما به راهحلهایی نیاز داریم که فراتر از ذخیرهسازی دیسک سنتی و استراتژیهای پخش واکنشی استاندارد باشند.
مسیر پیش رو با Media3 PreloadManager
برای پرداختن به تغییرات در عادات مصرف ناشی از افزایش محتوای کوتاه و محدودیتهای معماری سنتی پخش محتوای طولانی، Jetpack Media3 PreloadManager را معرفی کرد. این مؤلفه به توسعهدهندگان اجازه میدهد تا فراتر از ذخیرهسازی دیسک حرکت کنند و کنترل و سفارشیسازی دقیقی را ارائه میدهند تا رسانهها را قبل از شروع پخش توسط کاربر، در حافظه آماده نگه دارند. برای درک جزئیات فنی در مورد پخش رسانه با PreloadManager، این مجموعه مقالات وبلاگ را مطالعه کنید.
چگونه متا به پخش فوری واقعی دست یافت
پیچیدگیهای موجود
پیش از این، متا از ترکیبی از warmup (برای آمادهسازی بازیکنان) و prefetch (برای ذخیره محتوا روی دیسک) برای تحویل ویدیو استفاده میکرد. در حالی که این روشها به بهبود کارایی شبکه کمک میکردند، چالشهای قابل توجهی را نیز ایجاد میکردند. warmup نیاز به نمونهسازی چندین نمونه بازیکن به صورت متوالی داشت که حافظه قابل توجهی مصرف میکرد و پیشبارگذاری را فقط به چند ویدیو محدود میکرد. این نیاز به منابع بالا به این معنی بود که میتوان از یک راهحل قویتر و مقیاسپذیرتر برای ارائه پخش فوری مورد انتظار در فیدهای اجتماعی مدرن و با پیمایش سریع استفاده کرد.
یکپارچهسازی Media3 PreloadManager
برای دستیابی به پخش واقعاً فوری، تیم Media Foundation Client متا، Jetpack Media3 PreloadManager را در فیسبوک و اینستاگرام ادغام کرد. آنها DefaultPreloadManager را برای یکپارچهسازی سیستمهای پیشبارگذاری و پخش خود انتخاب کردند. این ادغام مستلزم بازسازی معماری موجود متا بود تا امکان اشتراکگذاری کارآمد منابع بین نمونههای PreloadManager و ExoPlayer فراهم شود. این تغییر استراتژیک یک مزیت کلیدی معماری را فراهم کرد: توانایی موازیسازی وظایف پیشبارگذاری و مدیریت بسیاری از ویدیوها با استفاده از یک نمونه پخشکننده. این امر ظرفیت پیشبارگذاری را به طرز چشمگیری افزایش داد و در عین حال پیچیدگیهای بالای حافظه رویکرد قبلی آنها را از بین برد.

بهینهسازی و تنظیم عملکرد
سپس این تیم آزمایشها و تکرارهای گستردهای را برای بهینهسازی عملکرد در سراسر اکوسیستم دستگاههای جهانی متنوع متا انجام داد. پیشبارگذاری اولیهی تهاجمی گاهی اوقات باعث مشکلاتی از جمله افزایش استفاده از حافظه و کاهش سرعت عملکرد پیمایش میشد. برای حل این مشکل، آنها با استفاده از اندازهگیریهای دقیق حافظه، در نظر گرفتن قطعه قطعه شدن دستگاه و متناسبسازی سیستم با الگوهای خاص رابط کاربری، پیادهسازی را به دقت تنظیم کردند.
تنظیم دقیق پیادهسازی با الگوهای خاص رابط کاربری
متا استراتژیهای مختلف پیشبارگذاری را اعمال کرد و رفتار را متناسب با الگوهای خاص رابط کاربری هر برنامه تنظیم کرد:
- فید خبری فیسبوک : رابط کاربری، ویدیویی که در حال حاضر در حال مشاهده است را در اولویت قرار میدهد. مدیر فقط ویدیوی فعلی را از قبل بارگذاری میکند تا مطمئن شود که به محض مکث کاربر در اسکرول، شروع به پخش میکند. این تمرکز « فقط فعلی »، ردپای داده و حافظه را در محیطی که کاربران ممکن است پستهای ثابت زیادی را بین ویدیوها ببینند، به حداقل میرساند. در حالی که سیستم در حال حاضر برای بارگذاری اولیه فقط ویدیوی در حال مشاهده طراحی شده است، میتوان آن را طوری تنظیم کرد که ویدیوهای آینده (آینده) را نیز از قبل بارگذاری کند.
- اینستاگرام ریلز : این یک محیط ویدیویی خالص است که در آن کاربران به صورت عمودی سوایپ میکنند. برای این رابط کاربری، تیم یک استراتژی " پیشبارگذاری مجاور " را پیادهسازی کرده است. PreloadManager ویدیوها را بلافاصله پس از Reel فعلی در حافظه آماده نگه میدارد. این رویکرد دو طرفه تضمین میکند که چه کاربر به بالا و چه به پایین سوایپ کند، انتقال سریع و روان باقی میماند. نتیجه، بهبود چشمگیر در کیفیت تجربه (QoE) از جمله بهبود در شروع پخش و زمان اولین فریم برای کاربر بود.
مقیاسپذیری برای یک اکوسیستم متنوع دستگاه جهانی
مقیاسپذیری یک پشته ویدیویی با کارایی بالا در میلیاردها دستگاه، چیزی بیش از پیشبارگذاری تهاجمی نیاز دارد؛ این کار به هوش نیاز دارد. متا در ابتدا با چالشهایی مانند فشار بر حافظه و تأخیر اسکرول، بهویژه در سختافزارهای میانرده تا پایینرده، مواجه بود. برای حل این مشکل، آنها یک سیستم تشخیص استرس دستگاه را حول پیادهسازی Media3 ساختند. برنامهها اکنون سیگنالهای ورودی/خروجی و CPU را بهصورت بلادرنگ رصد میکنند. اگر دستگاهی تحت بار سنگین باشد، پیشبارگذاری متوقف میشود تا پاسخگویی رابط کاربری در اولویت قرار گیرد.
این بهینهسازیِ آگاه از دستگاه، تضمین میکند که مزیت پخش فوری به قیمت از دست رفتن پایداری سیستم تمام نشود و حتی به کاربرانی که از سختافزارهای قدیمیتر استفاده میکنند، امکان تجربهی پخش روانتر و بدون وقفه را بدهد.

پیروزیهای معماری و سلامت کد
فراتر از معیارهای کاربرپسند، مهاجرت به Media3 PreloadManager مزایای معماری بلندمدتی را ارائه داد. در حالی که فرآیند ادغام و تنظیم برای متعادل کردن عملکرد به چندین تکرار نیاز داشت، کدبیس حاصل قابلیت نگهداری بیشتری دارد. تیم متوجه شد که API PreloadManager به طور کامل با اکوسیستم موجود Media3 ادغام شده و امکان اشتراکگذاری بهتر منابع را فراهم میکند. برای متا، پذیرش Media3 PreloadManager یک سرمایهگذاری استراتژیک در آینده مصرف ویدیو بود.
با اتخاذ پیشبارگذاری و افزودن دروازههای هوشمند دستگاه، آنها با موفقیت زمان کل تماشای برنامههای خود را افزایش داده و تعامل کلی جامعه جهانی خود را بهبود بخشیدند.
تأثیر نتیجهبخش بر اینستاگرام و فیسبوک
معماری پیشگیرانه، بهبودهای فوری و قابل اندازهگیری را در هر دو پلتفرم ارائه داد.
- فیسبوک شاهد شروع پخش سریعتر، کاهش نرخ توقف پخش و کاهش تعداد جلسات بد (مانند بافر مجدد، زمان شروع با تأخیر، کیفیت پایینتر و غیره) بود که در مجموع منجر به افزایش زمان تماشا شد.
- اینستاگرام شاهد شروع پخش سریعتر و افزایش زمان کل تماشا بود. حذف تأخیر اتصال (فاصله زمانی از اقدام کاربر تا نمایش اولین فریم) مستقیماً معیارهای تعامل را افزایش داد. وقفههای کمتر به دلیل کاهش بافر به این معنی بود که کاربران محتوای بیشتری را تماشا کردند، که از طریق معیارهای تعامل نشان داده شد.

آموختههای کلیدی مهندسی در مقیاس بزرگ
با تکامل عادات مصرف رسانه، تقاضا برای تجربیات فوری همچنان رو به افزایش خواهد بود. پیادهسازی مدیریت حافظه پیشگیرانه و بهینهسازی برای مقیاس و تنوع دستگاهها، تضمین میکند که برنامه شما میتواند این انتظارات را به طور مؤثر برآورده کند.
- اولویتبندی پیشبارگذاری هوشمند
با به حداقل رساندن وقفهها و زمان بارگذاری از طریق پیشبارگذاری، بر ارائه یک تجربه قابل اعتماد تمرکز کنید. به جای ذخیرهسازی ساده دیسک، با استفاده از پیشبارگذاری در سطح حافظه، تضمین میشود که محتوا در لحظه تعامل کاربر با آن آماده است.
- پیادهسازی خود را با الگوهای رابط کاربری همسو کنید
رفتار پیشبارگذاری را مطابق با رابط کاربری برنامههای خود سفارشی کنید. برای مثال، برای فیدهای ترکیبی مانند فیسبوک از تمرکز «فقط فعلی» برای صرفهجویی در حافظه و برای محیطهای عمودی مانند اینستاگرام از استراتژی «پیشبارگذاری مجاور» استفاده کنید.

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

مطالعات موردی
مونزو یک بانک دیجیتال بریتانیایی با ۱۵ میلیون مشتری و در حال رشد است. با گسترش اپلیکیشن، تیم مهندسی زمان راهاندازی اپلیکیشن را به عنوان یک حوزه حیاتی برای بهبود شناسایی کرد، اما نگران بود که این امر نیاز به تغییرات قابل توجهی در کدبیس آنها داشته باشد.
Ben Weiss • ۲ دقیقه مطالعه

مطالعات موردی
تیک تاک یک پلتفرم جهانی برای ویدیوهای کوتاه است که به خاطر پایگاه کاربری گسترده و ویژگیهای نوآورانهاش شناخته میشود.
Ben Trengrove , Ajesh Pai • ۲ دقیقه مطالعه

مطالعات موردی
ساخت یک اپلیکیشن اندروید برای یک گجت پوشیدنی به این معنی است که کار واقعی از زمانی شروع میشود که صفحه نمایش خاموش میشود.
Breana Tate • ۴ دقیقه مطالعه
در جریان باشید
جدیدترین بینشهای توسعه اندروید را به صورت هفتگی در صندوق ورودی خود دریافت کنید.





