RTMP là tuyệt vời để phục vụ nội dung trực tiếp. Khi RTMP được ghép nối với FFmpeg, các luồng có thể được chuyển đổi thành các chất lượng khác nhau. Vultr rất tốt cho các ứng dụng này vì chúng cung cấp hiệu suất CPU nhanh và chuyên dụng. Mạng toàn cầu của Vultr cũng đảm bảo rằng bạn có thể cung cấp nội dung trực tiếp chất lượng cao với độ trễ tối thiểu. Bắt đầu nào!
Cài đặt Nginx và Nginx-RTMP
Cài đặt các công cụ cần thiết để biên dịch Nginx và Nginx-RTMP từ nguồn.
sudo apt-get install build-essential libpcre3 libpcre3-dev libssl-dev
Tạo một thư mục làm việc và chuyển sang nó.
mkdir ~/working
cd ~/working
Tải xuống nguồn Nginx và Nginx-RTMP.
wget http://nginx.org/download/nginx-1.7.5.tar.gz
wget https://github.com/arut/nginx-rtmp-module/archive/master.zip
Cài đặt gói Unzip.
sudo apt-get install unzip
Trích xuất nguồn Nginx và Nginx-RTMP.
tar -zxvf nginx-1.7.5.tar.gz
unzip master.zip
Chuyển sang thư mục Nginx.
cd nginx-1.7.5
Thêm các mô-đun mà Nginx sẽ được biên dịch. Nginx-RTMP được bao gồm.
./configure --with-http_ssl_module --add-module=../nginx-rtmp-module-master
Biên dịch và cài đặt Nginx với Nginx-RTMP.
make
sudo make install
Cài đặt các tập lệnh init của 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
Bắt đầu và dừng Nginx để tạo tập tin cấu hình.
sudo service nginx start
sudo service nginx stop
Cài đặt FFmpeg
Thêm PPA FFmpeg.
sudo apt-get install software-properties-common
sudo add-apt-repository ppa:kirillshkrogalev/ffmpeg-next
Cập nhật danh sách gói.
sudo apt-get update
Cài đặt FFmpeg.
sudo apt-get install ffmpeg
Lưu ý: Lệnh apt-add-repository có thể không được cài đặt trong một số trường hợp. Để cài đặt nó chạy sudo apt-get install software-properties-common
.
Định cấu hình Nginx-RTMP và FFmpeg
Mở tệp cấu hình Nginx.
sudo nano /usr/local/nginx/conf/nginx.conf
Nối các phần sau.
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;
}
}
}
Sau khi bạn đã thêm ở trên, bạn có thể tùy chỉnh các cài đặt như bitrate video, bitrate âm thanh và độ phân giải. Những thay đổi này sẽ chỉ được áp dụng cho luồng chất lượng thấp hơn. Để thêm chất lượng, sao chép và dán dòng exec ffmpeg và thay đổi cài đặt. Bạn cũng sẽ cần phải tạo một ứng dụng mới. Bạn có thể làm điều này bằng cách sao chép và dán ví dụ live360 đã được đưa vào. Đừng quên cập nhật dòng exec ffmpeg với địa chỉ của ứng dụng mới. Bạn có thể làm điều này bằng cách thay đổi địa chỉ RTMP cuối cùng trong dòng exec ffmpeg.
Lưu ý: Thay đổi giá trị sau -b:v
sẽ thay đổi tốc độ bit video. Điều này được đo bằng kilobit mỗi giây. Thay đổi giá trị sau -b:a
sẽ thay đổi bitrate âm thanh. Điều này được đo bằng kilobit mỗi giây. Thay đổi giá trị sau -s
sẽ thay đổi độ phân giải.
Lưu tệp bằng cách nhấn Control và X cùng nhau. Khởi động lại Nginx.
sudo service nginx restart
Lưu ý: Để có hiệu suất tốt nhất, mỗi luồng được chuyển đổi phải có lõi CPU riêng. Ví dụ: hai phẩm chất, 360P và 480P đang được tạo từ luồng 720P. Một ví dụ Vultr có ít nhất hai lõi CPU nên được sử dụng.
Lưu ý bảo mật
Nếu bạn đang sử dụng tường lửa, bạn sẽ cần đảm bảo TCP 1935 được cho phép.
Cấu hình hiện tại cho phép mọi người truyền phát đến máy chủ của bạn. Chúng tôi có thể khắc phục điều này bằng cách chỉ cho phép một số địa chỉ IP nhất định được phép xuất bản. Mở cấu hình Nginx.
sudo nano /usr/local/nginx/conf/nginx.conf
Hãy tìm những dòng sau.
live on;
record off;
Thêm các mục sau vào mỗi bộ của các dòng trên. Thay đổi 0.0.0.0 thành địa chỉ IP của bạn.
allow publish 127.0.0.1;
allow publish 0.0.0.0;
deny publish all;
Cấu hình bây giờ trông giống như thế này.
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;
}
}
}
Lưu tệp bằng cách nhấn Control và X cùng nhau. Khởi động lại Nginx.
sudo service nginx restart
Cấu hình phần mềm để hoạt động với Nginx-RTMP
Các ứng dụng truyền phát thường có hai trường cho thông tin kết nối. Trường đầu tiên thường dành cho thông tin máy chủ và trường thứ hai thường dành cho tên luồng hoặc khóa. Thông tin mà bạn nên đặt vào từng lĩnh vực được liệt kê. Tên luồng hoặc khóa có thể được đặt thành bất cứ điều gì.
Field 1: rtmp://your.vultr.ip/live/
Field 2: stream-key-you-set
Để xem luồng, hãy mở các liên kết sau trong trình phát hỗ trợ RTMP.
rtmp://your.vultr.ip/live/stream-key-you-set
rtmp://your.vultr.ip/live360p/stream-key-you-set
Thiết lập trình phát để hiển thị video trực tiếp trên trang web nằm ngoài phạm vi của hướng dẫn này. Tìm kiếm cụm từ 'RTMP web player' có thể hỗ trợ bạn.