RTMP นั้นยอดเยี่ยมสำหรับการแสดงเนื้อหาสด เมื่อ RTMP ถูกจับคู่กับ FFmpeg สตรีมสามารถแปลงเป็นคุณสมบัติที่หลากหลาย Vultr นั้นยอดเยี่ยมสำหรับแอปพลิเคชันเหล่านี้เนื่องจากให้ประสิทธิภาพของ CPU ที่รวดเร็วและโดยเฉพาะ เครือข่ายทั่วโลกของ 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 สุดท้ายในบรรทัด exec ffmpeg
หมายเหตุ: การเปลี่ยนค่าหลังจาก-b:v
จะเปลี่ยนบิตเรตวิดีโอ นี่คือหน่วยวัดเป็นกิโลบิตต่อวินาที การเปลี่ยนค่าหลังจาก-b:a
จะเปลี่ยนบิตเรตเสียง นี่คือหน่วยวัดเป็นกิโลบิตต่อวินาที การเปลี่ยนค่าหลังจาก-s
จะเปลี่ยนความละเอียด
บันทึกไฟล์โดยกด Control และ X พร้อมกัน รีสตาร์ท Nginx
sudo service nginx restart
หมายเหตุ: เพื่อประสิทธิภาพที่ดีที่สุดแต่ละสตรีมที่ถูกแปลงควรมี CPU core ของตัวเอง ตัวอย่างเช่นคุณสมบัติสองประการคือ 360P และ 480P กำลังสร้างจากสตรีม 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;
}
}
}
บันทึกไฟล์โดยกด 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' อาจช่วยคุณได้