قم بإعداد Nginx-RTMP على Ubuntu 14.04

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

تثبيت Nginx و Nginx-RTMP

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

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

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

mkdir ~/working
cd ~/working

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

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

قم بتثبيت حزمة Unzip.

sudo apt-get install unzip

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

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

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

cd nginx-1.7.5

أضف وحدات سيتم تجميع Nginx معها. تم تضمين Nginx-RTMP.

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

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

make
sudo make install

قم بتثبيت البرامج النصية لـ Nginx.

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

بدء وإيقاف Nginx لإنشاء ملفات التكوين.

sudo service nginx start
sudo service nginx stop

تثبيت FFmpeg

أضف FFmpeg PPA.

sudo apt-get install software-properties-common
sudo add-apt-repository ppa:kirillshkrogalev/ffmpeg-next

تحديث قوائم الحزمة.

sudo apt-get update

قم بتثبيت FFmpeg.

sudo apt-get install ffmpeg

ملاحظة: قد لا يتم تثبيت الأمر apt-add-repository في بعض الحالات. لتثبيت تشغيله sudo apt-get install software-properties-common.

تكوين 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;
        }
    }
}

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

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

احفظ الملف بالضغط على Control و X معًا. أعد تشغيل Nginx.

sudo service nginx restart

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

ملاحظة أمنية

إذا كنت تستخدم جدار حماية ، فستحتاج إلى التأكد من أن 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;
        }
    }
}

احفظ الملف بالضغط على Control و 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

يعد إعداد مشغل لعرض فيديو مباشر على موقع ويب خارج نطاق هذا الدليل. قد يساعدك البحث عن مصطلح "RTMP web player".



Leave a Comment

نظرة ثاقبة على 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. قراءة هذه المادة لمعرفة المزيد