قم بإعداد Nginx-RTMP على CentOS 7

يعد RTMP رائعًا لتقديم المحتوى المباشر. عندما يتم إقران RTMP مع FFmpeg ، يمكن تحويل التدفقات إلى صفات مختلفة. تعد Vultr رائعة لهذه التطبيقات لأنها توفر أداء وحدة معالجة مركزية سريعًا ومخصصًا. كما تضمن شبكة Vultr العالمية أنه يمكنك تقديم محتوى مباشر عالي الجودة بأقل قدر من التأخير. هيا بنا نبدأ!

تثبيت Nginx و Nginx-RTMP

قم بتثبيت الأدوات المطلوبة لتجميع Nginx و Nginx-RTMP من المصدر.

sudo yum install pcre pcre-devel openssl openssl-devel zlib zlib-devel -y

قم بعمل دليل عمل وقم بالتبديل إليه.

mkdir ~/working
cd ~/working

قم بتنزيل مصادر Nginx و Nginx-RTMP.

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

قم بتثبيت حزمة فك الضغط.

sudo yum install unzip

استخرج مصدر Nginx و Nginx-RTMP.

tar -xvf nginx-1.9.7.tar.gz
unzip v1.2.1.zip

قم بالتبديل إلى دليل Nginx.

cd nginx-1.9.7

أضف وحدات للترجمة إلى Nginx. تم تضمين Nginx-RTMP.

./configure --add-module=../nginx-rtmp-module-1.2.1/

ترجمة Nginx وتثبيته باستخدام Nginx-RTMP.

make
sudo make install

أنشئ ملف وحدة SystemD لـ Nginx.

sudo nano /usr/lib/systemd/system/nginx.service

تعبئة الملف بالمحتوى التالي.

[Unit]
Description=nginx - high performance web server
Documentation=https://nginx.org/en/docs/
After=network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target

[Service]
Type=forking
PIDFile=/var/run/nginx.pid
ExecStartPre=/usr/sbin/nginx -t -c /etc/nginx/nginx.conf
ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s TERM $MAINPID

[Install]
WantedBy=multi-user.target

ابدأ وتمكين خدمة Nginx.

sudo systemctl start nginx.service

أخبر SystemD لبدء خدمات Nginx تلقائيًا عند التمهيد.

systemctl enable nginx.service

تثبيت FFmpeg

قم بتثبيت epel-releaseوتحديث النظام.

sudo yum install epel-release -y
sudo yum update -y
sudo shutdown -r now

قم بتثبيت مستودع Nux.

sudo rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro
sudo rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm

قم بتثبيت FFmpeg وحزم التطوير الخاصة به.

sudo yum install ffmpeg ffmpeg-devel -y

تكوين Nginx-RTMP و FFmpeg

افتح ملف تكوين Nginx.

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

إلحاق ما يلي للتكوين.

    rtmp {
        server {
            listen 1935;
            chunk_size 4096;

            application live {
                    live on;
                    record off;
                    exec ffmpeg -i rtmp://localhost/live/$name -threads 1 -c:v libx264 -profile:v baseline -b:v 350K -s 640x360 -f flv -c:a aac -ac 1 -strict -2 -b:a 56k rtmp://localhost/live360p/$name;
            }
            application live360p {
                    live on;
                    record off;
        }
    }
}

بعد إضافة نص التكوين هذا ، يمكنك تخصيص الإعدادات مثل معدل البت للفيديو ومعدل البت الصوتي والدقة. سيتم تطبيق هذه التغييرات فقط على تدفق الجودة الأقل. لإضافة المزيد من الصفات ، قم بنسخ ولصق سطر exF FFmpeg وتغيير الإعدادات. ستحتاج أيضًا إلى إنشاء تطبيق جديد. يمكنك القيام بذلك عن طريق نسخ ولصق المثال live360 الذي تم تضمينه. لا تنس تحديث سطر exec FFmpeg بعنوان التطبيق الجديد. يمكنك القيام بذلك عن طريق تغيير عنوان RTMP النهائي في سطر exF FFmpeg.

ملاحظة: سيؤدي تغيير القيمة بعد ذلك -b:vإلى تغيير معدل البت للفيديو. يتم قياس هذا بالكيلوبت في الثانية. -b:aسيؤدي تغيير القيمة بعد ذلك إلى تغيير معدل البت الصوتي. يتم قياس هذا بالكيلوبت في الثانية. -sسيؤدي تغيير القيمة بعد ذلك إلى تغيير الدقة.

احفظ الملف بالضغط على CTRL+ X.

أعد تشغيل Nginx.

sudo service nginx restart

ملاحظة: للحصول على أفضل أداء ، يجب أن يكون لكل دفق يتم تحويله نواة وحدة المعالجة المركزية الخاصة به. على سبيل المثال ، إذا تم إنشاء صفتين ، 360P و 480 P ، من دفق 720P ، فيجب استخدام مثيل Vultr مع نواتين على الأقل من وحدة المعالجة المركزية.

ملاحظة أمنية

إذا كنت تستخدم جدار حماية ، فستحتاج إلى التأكد TCP 1935من السماح به.

التكوين الحالي يسمح لأي شخص بالتدفق إلى الخادم الخاص بك. يمكننا إصلاح ذلك عن طريق منح عناوين IP معينة إذن النشر فقط. افتح تكوين Nginx.

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

ابحث عن السطور التالية.

live on;
record off;

أضف ما يلي إلى كل مجموعة من الخطوط المذكورة أعلاه. التغيير 0.0.0.0إلى عنوان IP الفعلي الخاص بك.

allow publish 127.0.0.1;
allow publish 0.0.0.0;
deny publish all;

سيبدو التكوين الآن على النحو التالي.

rtmp {
    server {
        listen 1935;
        chunk_size 4096;

        application live {
                live on;
                record off;
                allow publish 127.0.0.1;
                allow publish 0.0.0.0;
                deny publish all;
                exec ffmpeg -i rtmp://localhost/live/$name -threads 1 -c:v libx264 -profile:v baseline -b:v 350K -s 640x360 -f flv -c:a aac -ac 1 -strict -2 -b:a 56k rtmp://localhost/live360p/$name;
        }
        application live360p {
                live on;
                record off;
                allow publish 127.0.0.1;
                allow publish 0.0.0.0;
                deny publish all;
        }
    }
}

احفظ الملف بالضغط على CTRL+ X.

أعد تشغيل Nginx.

sudo service nginx restart

تكوين البرنامج للعمل مع Nginx-RTMP

تحتوي تطبيقات البث عادةً على حقلين لمعلومات الاتصال. عادة ما يكون الحقل الأول لمعلومات الخادم ، وعادة ما يكون الحقل الثاني لاسم الدفق أو المفتاح. يتم سرد المعلومات التي يجب وضعها في كل حقل. يمكن تعيين اسم الدفق أو المفتاح إلى أي شيء.

Field 1: rtmp://your.vultr.ip/live/
Field 2: stream-key-you-set

لعرض التدفقات ، افتح الروابط التالية في مشغل يدعم RTMP.

rtmp://your.vultr.ip/live/stream-key-you-set
rtmp://your.vultr.ip/live360p/stream-key-you-set

اترك تعليقاً

نظرة ثاقبة على 26 أسلوبًا لتحليل البيانات الضخمة: الجزء الأول

نظرة ثاقبة على 26 أسلوبًا لتحليل البيانات الضخمة: الجزء الأول

نظرة ثاقبة على 26 أسلوبًا لتحليل البيانات الضخمة: الجزء الأول

وظائف طبقات معمارية مرجعية للبيانات الضخمة

وظائف طبقات معمارية مرجعية للبيانات الضخمة

اقرأ المدونة لمعرفة الطبقات المختلفة في بنية البيانات الضخمة ووظائفها بأبسط طريقة.

6 أشياء شديدة الجنون حول نينتندو سويتش

6 أشياء شديدة الجنون حول نينتندو سويتش

يعرف الكثير منكم أن Switch سيصدر في مارس 2017 وميزاته الجديدة. بالنسبة لأولئك الذين لا يعرفون ، قمنا بإعداد قائمة بالميزات التي تجعل "التبديل" "أداة لا غنى عنها".

وعود التكنولوجيا التي لم يتم الوفاء بها بعد

وعود التكنولوجيا التي لم يتم الوفاء بها بعد

هل تنتظر عمالقة التكنولوجيا للوفاء بوعودهم؟ تحقق من ما تبقى دون تسليم.

كيف يمكن للذكاء الاصطناعي نقل أتمتة العمليات إلى المستوى التالي؟

كيف يمكن للذكاء الاصطناعي نقل أتمتة العمليات إلى المستوى التالي؟

اقرأ هذا لمعرفة مدى انتشار الذكاء الاصطناعي بين الشركات الصغيرة وكيف أنه يزيد من احتمالات نموها ومنح منافسيها القدرة على التفوق.

التفرد التكنولوجي: مستقبل بعيد للحضارة الإنسانية؟

التفرد التكنولوجي: مستقبل بعيد للحضارة الإنسانية؟

مع تطور العلم بمعدل سريع ، واستلام الكثير من جهودنا ، تزداد أيضًا مخاطر تعريض أنفسنا إلى تفرد غير قابل للتفسير. اقرأ ، ماذا يمكن أن يعني التفرد بالنسبة لنا.

CAPTCHA: ما هي المدة التي يمكن أن تظل تقنية قابلة للتطبيق للتميز بين الإنسان والذكاء الاصطناعي؟

CAPTCHA: ما هي المدة التي يمكن أن تظل تقنية قابلة للتطبيق للتميز بين الإنسان والذكاء الاصطناعي؟

لقد أصبح حل CAPTCHA صعبًا جدًا على المستخدمين في السنوات القليلة الماضية. هل ستكون قادرة على أن تظل فعالة في اكتشاف البريد العشوائي والروبوتات في المستقبل القريب؟

التطبيب عن بعد والرعاية الصحية عن بعد: المستقبل هنا

التطبيب عن بعد والرعاية الصحية عن بعد: المستقبل هنا

ما هو التطبيب عن بعد والرعاية الصحية عن بعد وأثره على الأجيال القادمة؟ هل هو مكان جيد أم لا في حالة الوباء؟ اقرأ المدونة لتجد طريقة عرض!

هل تساءلت يومًا كيف يربح المتسللون الأموال؟

هل تساءلت يومًا كيف يربح المتسللون الأموال؟

ربما سمعت أن المتسللين يكسبون الكثير من المال ، لكن هل تساءلت يومًا كيف يجنون هذا النوع من المال؟ دعنا نناقش.

يتسبب التحديث الإضافي لنظام macOS Catalina 10.15.4 في حدوث مشكلات أكثر من حلها

يتسبب التحديث الإضافي لنظام macOS Catalina 10.15.4 في حدوث مشكلات أكثر من حلها

أصدرت Apple مؤخرًا macOS Catalina 10.15.4 تحديثًا تكميليًا لإصلاح المشكلات ولكن يبدو أن التحديث يتسبب في المزيد من المشكلات التي تؤدي إلى إنشاء أجهزة macOS. قراءة هذه المادة لمعرفة المزيد