پلتفرم Cloudflare Stream یک سرویس پخش ویدیو قدرتمند است، اما برای نیازهای خاص مانند افزودن حاشیهنویسیهای پویا (Dynamic Annotations) به پخش زنده یا ایجاد نسخههایی از ویدیو با زیرنویسهای Burn-in، نیاز به یک خطلوله (Pipeline) سفارشی است. در همین راستا، ابزار جدیدی به نام Streamline معرفی شده است که نشان میدهد چگونه میتوان با ترکیب Workers، Containers و پروتکلهای رسانهای، سیستمهای پردازش ویدیو را در پلتفرم توسعهدهندگان Cloudflare پیادهسازی کرد.
معماری سیستم و اجزای اصلی
یک استقرار Streamline از دو بخش اصلی تشکیل شده است:
- Media Engine: این بخش که در یک Container اجرا میشود، مسئول ورودی/خروجی و پردازش رسانهای است. این موتور شامل یک Controller (نوشته شده با زبان Go) برای مدیریت درخواستهای HTTP و یک Processor (در حال حاضر مبتنی بر FFmpeg) برای پردازش واقعی ویدیو است.
- Application: برنامهای که با استفاده از Workers ساخته شده و وظیفه مدیریت نشستها (Sessions)، پیکربندی و نظارت بر چرخه حیات Container را بر عهده دارد. برای هماهنگی این فرآیندها از Durable Objects استفاده شده است.
قابلیتهای فنی و پردازشی
سیستم Streamline قادر است ورودیهای متنوعی را پردازش کند:
- پخش زنده: دریافت جریانهای RTMPS از ورودیهای Stream Live و ارسال خروجی به مقصد دیگر.
- ویدیوهای VOD: دریافت Manifestهای HLS از ویدیوهای میزبانی شده در Cloudflare Stream و پردازش آنها.
- ورودیهای مستقیم: پذیرش دادههای ویدئویی از منابعی مانند وبکم از طریق Worker.
عملیات پشتیبانی شده و امنیت
در حال حاضر، این ابزار عملیاتی نظیر Filter (برای تاری یا اشباع رنگ)، Overlay (افزودن تصاویر PNG به صورت لایه) و Subtitle (جایگذاری زیرنویس در تصویر) را پشتیبانی میکند. برای پیشنمایش با تأخیر کم (Low-latency)، از WebSockets برای انتقال قطعات fMP4 استفاده میشود.
از نظر امنیتی، دسترسیها از طریق Workers Access مدیریت میشوند تا اطمینان حاصل شود تنها کاربران مجاز میتوانند نشستها را کنترل کنند. همچنین کلیدهای RTMPS به عنوان Secret ذخیره شده و هرگز به سمت کلاینت یا مرورگر ارسال نمیشوند تا از نشت اطلاعات جلوگیری شود.
آینده و توسعه
در نسخههای آتی، هدف ارتقای این معماری برای پشتیبانی از خطلولههای بینایی ماشین (Computer Vision)، پردازش رسانهای با شتاب سختافزاری و استفاده از پروتکلهای نسل جدید مانند WebRTC و MoQ است تا محدودیتهای فعلی CPU در پردازشهای با کیفیت بالا برطرف شود.