پروتکل RTMP توسط کمپانی Adobe توسعه داده شده است و از HLS قدمت بیشتری دارد. پروتکل HLS در سال 2003 و پروتکل RTMP در واسط سال 2000 به حوزه استریمینگ ورود کرده اند. هرکدام از این پروتکل ها مزایا و ویژگی های خاص خود را دارند که در ادامه به آن میپردازیم ولی از پروتکل RTMP بیشتر برای ارتباط زنده استفاده می شود (مانند نرم افزار AdobeConnect) و باید اضافه کنیم که RTMP از پروتکل TCP جهت انتقال اطلاعات ویدیویی استفاده میکند. البته امکان استفاده از پروتکل RTMP , هم در لایو استریمینگ (live streaming) و هم در ویدیو های درخواستی (on-demand video streaming) وجود دارد.

نحوه کار این پروتکل هم بدین صورت است که کلاینت (معمولا فلش پلیر) یک کانکشن TCP بر روی پورت 1935 ایجاد میکند (ممکن است نیاز به احراز هویت باشد) و پس موفقیت آمیز بودن اصطلاحا" session کاربر پس از HandShake ایجاد شده و سرور و کلاینت میتوانند محتوای ویدیویی را منتقل کنند.

با توجه به از بین رفتن و منسوخ شدن FlashPlayer و عدم پشتیبانی آن توسط مرورگر ها این پروتکل کمی محبوبیت خود را از دست داده است و کاربران و مرورگر ها از پروتکل هایی که بر بستر HTTP هستند بیشتر استقبال میکنند.

پروتکل RTMP و HLS هر دو برای استریم ویدیو هستند:

پروتکل HLS که مخفف عبارت (HTTP Live Streaming) می باشد و در کنار آن پروتکل RTMP که مخفف (Real-Time Messaging Protocol) می باشد هردو جزو محبوب ترین پروتکل ها در صنعت ویدیو استریمینگ به حساب می آیند به طوری که اگر با کمی با این حوزه آشنا باشید و شاید بعضا" با برخی از نرم افزار های آن کار کرده باشید حتی اگر معنی آن را ندانید ولی اسم آن به گوش شما خورده است.

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

پروتکل‌ HLS نسبت به فناوری‌های قبلی ایمن‌تر، قابل اعتمادتر و سریع‌تر هستند. و به لطف این پروتکل ها فضا و همچنین راه برای تولید کنندگان محتوا بسیار راحت شده است این پروتکل ویدیو شما را به تیکه های کوچک تری تقسیم میکند و در لایه HTTP به دیوایس های مختلف ارسال میکند.

تطبیق پذیری هوشمند (Adaptive Bitrate Streaming)

احتمالا در قابلیت های پلتفرم ویژگی ABR به چشم شما خورده است و به این معنی است که این قابلیت در negavid پشتیبانی می شود. یکی از تفاوت های کلیدی بین RTMP  و HLS قابلیت ABR می باشد. به کمک این قابلیت کیفیت ویدیو شما بر اساس پهنای باند گوشی و یا لب تاپ شما تطبیق داده می شود و شما میتوانید یک استریم روان و بدون لگ را تجربه کنید در صورتی که پروتکل RTMP به صورت پیش فرض این قابلیت را در خود ندارد و در آن پیاده سازی نشده است و شما برای این کار باید از نرم افزار های جانبی استفاده کنید.

سازگاری (Compatibility)

پروتکل HLS با طیف گسترده ای از دستگاه ها و پلتفرم ها از جمله iOS، Android و مرورگرهای وب سازگار است. این باعث می شود که این پروتکل را به یک انتخاب محبوب و البته درست برای سرویس های استریم ویدیو تبدیل کند که می خواهند به مخاطبان زیادی دست یابند. از طرف دیگر پروتکل  RTMP به اندازه پروتکل HLS پشتیبانی نمی شود.یعنی این پروتکل نیاز به نصب نرم افزار خاصی بر روی دیوایس کاربران دارد که می تواند سازگاری آن را محدود کند.

امنیت (Security)

HLS و RTMP در نحوه مدیریت امنیت و ایجاد کردن آن متفاوت هستند. HLS از HTTPS برای استریم استفاده می کند که رمزگذاری و احراز هویت را فراهم می کند. از طرف دیگر RTMP هیچ ویژگی امنیتی داخلی را ارائه نمی دهد. برای ایمن سازی جریان RTMP، باید از نرم افزار یا پروتکل های اضافی استفاده کنید.

تاخیر (Latency)

تفاوت اصلی و دیگر این دو پروتکل در میزان تاخیر آنها در پخش و استریم ویدیو است RTMP در بحث مربوط به لایو استریمینگ تاخیر کمتری نسبت به HLS دارد و این دلیل RTMP  را به گزینه بهتری برای راهکار های پخش زنده تبدیل میکند. ولی در پخش ویدیو ها در حالت درخواستی (مانند سرویس های VOD) تفاوت چشم گیری میان این دو پروتکل دیده نمی شود.

به طوری کلی HLS و RTMP هر دو پروتکل های استریم ویدیو هستند که به طور گسترده مورد استفاده قرار گرفته و میگیرند، اما از جهات مختلفی با هم تفاوت دارند.  همانطور که شاید از نوشته بالا برداشت کرده اید HLS یک پروتکل انعطاف‌پذیر تر نسبت به RTMP  است که امکان ABR را فراهم می‌کند و با طیف وسیعی از دستگاه‌ها و پلتفرم‌ها سازگار است. و با توجه به این که در لایه HTTP ارتباط برقرار میکند با بسیاری از مرورگر ها و نرم افزار ها به راحتی ادغام می شود.

از سوی دیگر، RTMP یک پروتکل اختصاصی است که برای ارتباطات بلادرنگ طراحی شده است و تاخیر کمتری نسبت به HLS دارد. که البته در حالت on-demand streaming هم میتواند استفاده شود. با خواندن این مقاله و درک تفاوت‌های بین این دو پروتکل می‌تواند به شما در انتخاب پروتکل مناسب برای نیازهای استریم ویدیو کمک کند.