آی میتران

تجربه یک آنلاین متفاوت

بخش سوم - پخش زنده

بخش سوم - پخش زنده

سلام وقت بخیر

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

در این پست به سراغ نصب وب سرور انجینکس ( NGINX )  خواهیم رفت و مراحل نصب آنرا دنبال خواهیم کرد. نصب این وب سرور ساده می باشد و کل نصب این وب سرور توسط دستورات لینوکسی خواهد بود که در ادامه مطلب برای شما خواهیم آورد. در طول نصب وب سرور، کانفیگ و نصب ffmpeg هم آموزش داده شده است.


ابتدا ابزار لازم برای کامپایل Nginx و Nginx-RTMP را از منبع نصب کنید

sudo apt-get install build-essential libpcre3 libpcre3-dev libssl-dev

ساخت دایرکتوری

mkdir ~/working
cd ~/working

دانلود بسته نصبی ماژول rtmp و وب سرور nginx

wget http://nginx.org/download/nginx-1.14.0.tar.gz
wget https://github.com/arut/nginx-rtmp-module/archive/master.zip

نصب بسته unzip

sudo apt-get install unzip

خارج کردن محتویات بسته های فشرده شده

tar -zxvf nginx-1.14.0.tar.gz
unzip master.zip

رفتن به مسیر وب سرور

cd nginx-1.14.0

اضافه کردن ماژول هایی که Nginx با آن کامپایل می شود. این ماژول در Nginx-RTMP گنجانده شده است

./configure --with-http_ssl_module --add-module=../nginx-rtmp-module-master

Nginx را با Nginx-RTMP کامپایل و نصب کنید

make
sudo make install

حالا اسکریپت های Nginx init را نصب کنید

sudo wget https://raw.github.com/JasonGiedymin/nginx-init-ubuntu/master/nginx -O /etc/init.d/nginx
sudo chmod +x /etc/init.d/nginx
sudo update-rc.d nginx defaults

یکبار وب سرور را استارت نمایید (برای اینکه مطمئن شوید وب سرور به درستی نصب شده است) و سپس آنرا برای ادامه کار متوقف نمایید.

sudo service nginx start
sudo service nginx stop

فهرست بسته را بروزرسانی می کنیم

sudo apt-get update

نصب نرم افزار ffmpeg

sudo apt-get install ffmpeg

ایجاد ساختار پوشه ای لازم برای نگهداری نمایش های زنده و موبایل HLS و قطعات ویدیویی:

sudo mkdir /HLS
sudo mkdir /HLS/live
sudo mkdir /HLS/mobile
sudo mkdir /video_recordings
sudo chmod -R 777 /video_recordings

احتمالا این یک ایده خوب است که فایروال شما روشن باشد البته اگر قبلا انجام نداده اید. اگر چنین است، شما باید ترافیک را به پورت های مورد استفاده توسط Nginx و HLS اجازه دهید. اگر میخواهید بدون فایروال در حال حاضر اجرا شود، بخش ufw زیر را نادیده بگیرید

sudo ufw limit ssh
sudo ufw allow 80
sudo ufw allow 1935
sudo ufw enable

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

sudo nano /usr/local/nginx/conf/nginx.conf

همه محتویات فایل کانفیگ را پاک کنید و سپس کدهای زیر را درون آن جاگذاری کنید

#user  nobody;
worker_processes  1;
 
error_log  logs/rtmp_error.log debug;
pid        logs/nginx.pid;
 
events {
    worker_connections  1024;
}
 
http {
    server {
        listen       80;
        server_name  localhost;
 
        location /hls {
            # Serve HLS fragments
 
            # CORS setup
            add_header 'Access-Control-Allow-Origin' '*' always;
            add_header 'Access-Control-Expose-Headers' 'Content-Length';
 
            # allow CORS preflight requests
            if ($request_method = 'OPTIONS') {
                add_header 'Access-Control-Allow-Origin' '*';
                add_header 'Access-Control-Max-Age' 1728000;
                add_header 'Content-Type' 'text/plain charset=UTF-8';
                add_header 'Content-Length' 0;
                return 204;
            }
 
 
            types {
                application/vnd.apple.mpegurl m3u8;
                video/mp2t ts;
            }
            root /tmp;
            add_header Cache-Control no-cache;
        }
    }
}
 
rtmp {
        server {
                listen 1935;
                chunk_size 8192;
 
                application hls {
                        live on;
                        meta copy;
                        hls on;
                        hls_path /tmp/hls;
        }
    }
}

Ctrl + X برای ذخیره فایل همزمان بفشارید و خارج شوید.

قبل از انجام هر کار دیگری برای جلوگیری از کراس دامین خود ابتدا این کار را انجام دهید

 یک فایل crossdomain.xml را در پوشه nginx / html خود ایجاد کنید و دستورالعمل هایی را که در پایین نوشته ایم در آن جایگذاری نمایید تا داده ها بین دامنه ها جریان یابد

sudo nano /usr/local/nginx/html/crossdomain.xml

متن پایین را کپی کنید و با یک کلیک راست در فایلی که ساخته اید جایگذاری نمایید

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<allow-access-from domain="*"/>
</cross-domain-policy>

ابتدا با فشردن کلید های ترکیبی Ctrl+o آنرا نوشته و سپس توسط کلیدهای Ctrl+x آنرا ذخیره و خارج شوید.

در نهایت وب سرور را استارت نمایید

sudo service nginx start

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




مهران ایمانی هستم فارغ التحصیل رشته برق قدرت. عاشق طراحی در زمینه برق ، سایت و همچنین کد نویسی به زبان php هستم. امیدوارم بتونم دانشی رو که دارم از طریق آی میتران به اشتراک بذارم.

دهکده من در 4 سال و 2 ماه و 6 روز و 9 ساعت و 57 دقیقه پیش گفته

سلام آیا آیا میشه انجینیکس رو کامپایل کنیم بعد به سرور انتقال بدیم؟؟؟؟؟

پاسخ به این نظر :

سلام بله مشکلی نداره.

ارسال یک نظر جدید

نام شما
ایمیل (منتشر نخواهد شد)
آدرس وبسایت
کد امنیتی