آموزش مرحله به مرحله راه اندازی سرویس استریمینگ سرور یا سرور پخش زنده رایگان با قابلیت پشتیبانی از پروتکل های RTMP و HLS که جزو رایج ترین پروتکل های استریمینگ (Streaming) بصورت زنده (Live) و تعاملی (VOD) در سیستم عامل های ویندوز.
از موارد کاربردی این استریم سرور میتوان به راه اندازی یک سرور پخش زنده اینترنتی، برای دریافت و انتشار پخش زنده، یا همان تلویزیون اینترنتی؛ و یا راه اندازی یک وبسایت انتشار ویدیو، با قابلیت جلوگیری از دانلود؛ نام برد.

مقدمه

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

برای این آموزش نیاز دارید که اصطلاحاتی را بلد باشید:
استریمینگ مدیا (Streaming media) و یا محتوای جاری به رسانه ای گفته میشود که همزمان با ارسال توسط گیرنده قابل نمایش است. به بیان دیگر برای تماشای فایل گیرنده نیاز ندارد تمامی فایل را دانلود کند تا بتواند آن را مشاهده نماید بلکه فرستنده میتواند فایل را بصورت جاری ارسال کند و گیرنده آن را تماشا کند. مثال آن پخش زنده های تلویزیون های اینترنتی صدا و سیما.
استریمینگ سرور (Streaming Server) به سروری گفته میشود که سرویس های مبتنی بر جریان زنده (استریمینگ Streaming) اعم از صوتی و تصویری یا زنده و تعاملی را ارائه میدهد. از رایج ترین پروتکل های جریان زنده میتوان RTMP و HLS و MMS (این پروتکل ربطی به MMS دریافتی در گوشی ندارد) را نام برد که هم اکنون در سایت های معروفی همچون یوتیوب و آپارات و پخش زنده اینترنتی سایت صدا و سیما استفاده میشود.
پروتکل RTMP که مخفف شده ی (Real-Time Messaging Protocol) میباشد ساخته و پرداخته شرکت Macromedia سازنده Flash است که هم اکنون تحت انحصار شرکت Adobe میباشد. این پروتکل در ابتدا برای جریان زنده صدا و تصویر روی بستر اینترنت بین یک فلش پلیر و سرور ایجاد شد که بعدها با استقبال عمومی مواجه و در اکثر دستگاه های خانگی و حرفه ای و اکثر پلیر ها اعم از موبایل و سیستم های مختلف استفاده شد. پرت پیشفرض این پروتکل 1935 است و برای استفاده آن در مرورگر وب باید از فلش پلیر استفاده نمود.
پرتکل HLS مخفف شده (HTTP Live Streaming) است. این پروتکل توسط شرکت Apple برای استفاده جریان زنده در پلیر QuickTime و سیستم عامل های OS X و iOS موبایل و مرورگر Safari نوشته شده که هم اکنون در فایرفاکس، گوگل کروم و مرورگر جدید ماکروسافت Microsoft Edge پیاده سازی شده. این پروتکل با تبدیل جریان زنده بصورت فایل های تکه ای قابلیت پخش آن را در تمامی مرورگر ها با تگ < video > مقدور کرده است، این فایل های تکه ای در یک فایل M3U playlist ذخیره شده. بر این اساس آدرس دهی این پروتکل با این پسوند تمام میشود. به دلیل استفاده از پروتکل HTTP در این پروتکل اغلب نیازی به تنظیم Firewall در مبدا و مقصد نیست و از پروکسی ها براحتی عبور میکند که تمامی اینها راحتی استفاده برای کاربران را به همراه دارد.همچنین از ویژگی های خوب این پروتکل استفاده از قابلیت adaptive bitrate streaming میباشد. با استفاده از این قابلیت میتوان پهنای باند کاربر را شناسایی کرده و جریان زنده ای متناسب با پهنای باندش برای آن ارسال کرد.

پیش نیازها
برای راه اندازی یک سرور پخش زنده اینترنتی شما نیاز به یک سرور ویندوز دارید ورژن ویندوز فرقی نمیکند ولی بهتر است از آخرین ورژن ویندوز سرور استفاده شود در صورتی که میخواهید این آموزش را روی سیستم عامل های دیگر امتحان کنید در پایان این مقاله لینک آموزش آنها موجود میباشد.
سیستم عامل توصیه شده : Windows Server 2016 Standard
درصورتی که قصد استفاده از قابلیت ABS و یا Transcoding را دارید نیاز به رم و CPU بالایی دارید.
درصورتی که میخواهید همزمان تصاویر را ذخیره Record کنید نیاز به هارد SSD و حجم بالا دارید.
برای استفاده از این نرم افزار به صورت سرویس نیاز به دسترسی Administrator دارید.

شروع نصب
شما نیاز به یک نسخه کمپایل شده از Nginx به همراه ماژول nginx-rtmp-module دارید که من برای شما این کار را انجام داده ام. شما میتوانید فایل Zip ریلیز شده از پروژه alighaemia/nginx-rtmp-hls-win32 که لینک دانلود در انتهای مطلب موجود است را دانلود و آن را به درایو C انتقال دهید.

دانلود نرم افزار اجرای RTMP سرور با Nginx از سایت Github

بهتر است فایل در ریشه اصلی درایو C قرار گیرد و همچنین نام فولدر آن نیز nginx باشد.

برای اجرای برنامه کافی است که فایل nginx.exe را باز نمایید. در صورتی که در اجرای برنامه به مشکل خوردید میتوانید آن را با دسترسی Administrator باز کنید.

برای استریم RTMP نیاز به اجرای Nginx دارید

در صورتی که بخواهید nginx بصورت سرویس Service در سیستم عامل شما نصب و اجرا شود میتوانید از ابزار NSSM استفاده کنید. ابتدا باید آخرین نسخه از nssm را از لینک بالا دانلود کرده و فایل nssm.exe از فولدر win64 این بسته را به محل نصب Nginx انتقال دهید.

اجرای NSSM نیاز به دسترسی Administrator دارد، باز کردن CMD ویندوز

سپس یک cmd از منوی استارت با دسترسی Administrator باز نمایید و دستورات زیر را وارد نمایید:

ali@windows$ cd c:\nginx
ali@windows$ nssm install nginx

با دستور بالا پنجره ای باز میشود که مقادیر آن را بصورت زیر وارد کنید همچنین در صورتی که نیاز به فایل های logs داشته باشید تب I/O را کامل کنید.

نصب Nginx بصورت سرویس با ابزار NSSM

در پایان روی Install Service کلیک کنید. هم اکنون nginx شما بصورت سرویس نصب شده است و هر وقت ویندوز اجرا شود این برنامه نیز اجرا خواهد شد.

 

ارسال پخش زنده

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

پخش زنده را باید با پروتکل RTMP برای nginx ارسال کرد. نرم افزار های گرافیکی ارسال پخش زنده با پروتکل RTMP عبارت اند از Adobe Flash Media Live Encoder, OBS, vMix, Wirecast, VLC که هر کدام قابلیت خاص خودشان را دارند. اکثر این نرم افزار ها کتابخانه هایی نظیر ffmpeg برای ارسال استریم استفاده میکنند.

به دلیل در دسترس بودن و همچنین Open Source بودن برای آموزش ما از نرم افزار OBS استفاده میکنیم که شما میتوانید آن را از وبسایت obsproject.com بصورت رایگان دانلود کنید.

آموزش پخش زنده توسط نرم افزار OBS برای ارسال RTMP

روی دکمه Settings کلیک کرده و به تب Stream بروید و مطابق تصویر زیر اطلاعات سرور را وارد کنید.

آموزش پخش زنده ارسال RTMP در نرم افزار OBS Studio

همان طور که در تصویر مشخص است در قسمت URL آدرس آی پی یا هاست نیم سرور خود را وارد کنید. در صورتی که nginx را در سیستم شخصی خود نصب نموده اید به جای test.ghm.me عبارت localhost را وارد کنید. در صورتی که از سرور دیگری استفاده میکنید IP آن سرور را وارد کنید.

دقت کنید که مقدار 1935 و hls باید ثابت باشد. شما میتوانید آنها را در فایل nginx.conf در شاخه conf محل نصب nginx تغییر دهید. بعد از اعمال تغییرات نیاز دارد که nginx را مجددا بارگزاری کنید.

در قسمت Stream key یک نام دلخواه وارد کنید. در انتها تغییرات را تایید کرده و روی دکمه Start Streaming کلیک کنید و منتظر باشید قسمت پایین سبز شود.

 

تماشای پخش زنده

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

همچنین شما میتوانید با استفاده از نرم افزار VLC پخش زنده را با استفاده از آدرس های زیر بصورت مستقیم در ویندوز تماشا کنید.

RTMP : rtmp://test.ghm.me:1935/hls/test_ghm

HLS : http://test.ghm.me:8080/hls/test_ghm.m3u8

همچنین شما میتوانید وضعیت دریافت و ارسال استریم ها به nginx را با آدرس زیر بررسی کنید:

http://test.ghm.me:8080/stat

به جای test.ghm.me آدرس سرور خود را قرار دهید. (برای سیستم شخصی از localhost استفاده میشود.)

بررسی وضعیت پخش زنده rtmp در nginx

درصورتی میخواهید این آموزش را در سیستم عامل Ubuntu انجام دهید میتوانید به این لینک مراجعه کنید.