Cách thiết lập máy chủ phát trực tuyến video bằng Nginx-RTMP trên Ubuntu 22.04

theanh

Administrator
Nhân viên
RTMP còn được gọi là "giao thức nhắn tin thời gian thực" là công nghệ truyền dữ liệu hỗ trợ phát trực tuyến video trực tiếp. Nó được sử dụng để truyền tệp video từ bộ mã hóa đến nền tảng lưu trữ video trực tuyến. RTMP sử dụng TCP để di chuyển và sử dụng bắt tay ba chiều khi vận chuyển dữ liệu. RTMP được sử dụng với nhiều loại phương tiện khác nhau bao gồm phát sóng truyền hình trực tiếp, video phát trực tuyến và dịch vụ điện thoại internet.

Tính năng
  • Sản xuất video trực tiếp chất lượng cao mà không cần đệm
  • Dễ cài đặt và cấu hình.
  • Tương thích với hầu hết các phần mềm phát trực tiếp và dịch vụ video.
Hướng dẫn này sẽ chỉ cho bạn cách thiết lập máy chủ phát trực tuyến video bằng Nginx-RTMP trên máy chủ Ubuntu 22.04.

Yêu cầu​

  • Máy chủ chạy Ubuntu 22.04.
  • Mật khẩu gốc được thiết lập cho máy chủ của bạn.

Cài đặt Nginx Web Server​

Trước khi bắt đầu, máy chủ web Nginx phải được cài đặt trên máy chủ của bạn. Nếu chưa cài đặt, bạn có thể cài đặt bằng lệnh sau.
Mã:
apt install nginx -y
Sau khi cài đặt gói Nginx, hãy khởi động dịch vụ Nginx và cho phép nó khởi động khi khởi động lại hệ thống.
Mã:
systemctl start nginx
systemctl enable nginx
Bạn có thể xác minh trạng thái dịch vụ Nginx bằng lệnh sau lệnh.
Mã:
systemctl status nginx
Bạn sẽ nhận được kết quả sau.
Mã:
? nginx.service - A high performance web server and a reverse proxy server Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled) Active: active (running) since Mon 2023-01-09 14:54:55 UTC; 28s ago Docs: man:nginx(8) Process: 43294 ExecReload=/usr/sbin/nginx -g daemon on; master_process on; -s reload (code=exited, status=0/SUCCESS) Main PID: 43005 (nginx) Tasks: 3 (limit: 4575) Memory: 8.5M CPU: 35ms CGroup: /system.slice/nginx.service ??43005 "nginx: master process /usr/sbin/nginx -g daemon on; master_process on;" ??43295 "nginx: worker process" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ??43296 "nginx: worker process" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""
Jan 09 14:54:55 vultr systemd[1]: Starting A high performance web server and a reverse proxy server...
Jan 09 14:54:55 vultr systemd[1]: Started A high performance web server and a reverse proxy server.
Jan 09 14:55:04 vultr systemd[1]: Reloading A high performance web server and a reverse proxy server...
Jan 09 14:55:04 vultr systemd[1]: Reloaded A high performance web server and a reverse proxy server.

Cài đặt và cấu hình Nginx-RTMP​

Theo mặc định, gói Nginx-RTMP được bao gồm trong kho lưu trữ mặc định của Ubuntu. Bạn có thể cài đặt nó bằng lệnh sau.
Mã:
apt install libnginx-mod-rtmp -y
Sau khi gói Nginx-RTMP được cài đặt, hãy chỉnh sửa tệp cấu hình chính của Nginx và xác định luồng của bạn.
Mã:
nano /etc/nginx/nginx.conf
Thêm các dòng sau vào cuối tệp:
Mã:
rtmp { server { listen 1935; chunk_size 4096; allow publish all; application live { live on; record off; } }
}
Lưu và đóng tệp sau đó xác minh Nginx xem có lỗi cấu hình nào không bằng lệnh sau.
Mã:
nginx -t
Bạn sẽ thấy thông báo sau đầu ra.
Mã:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Cuối cùng, khởi động lại dịch vụ Nginx để áp dụng các thay đổi.
Mã:
systemctl restart nginx
Lúc này, Nginx-RTMP đã được cài đặt và lắng nghe trên cổng 1935. Bạn có thể kiểm tra bằng lệnh sau lệnh.
Mã:
ss -antpl | grep 1935
Bạn sẽ thấy kết quả sau.
Mã:
LISTEN 0 511 0.0.0.0:1935 0.0.0.0:* users:(("nginx",pid=43388,fd=8),("nginx",pid=43387,fd=8),("nginx",pid=43386,fd=8))

Gửi video đến máy chủ RTMP​

Tiếp theo, bạn sẽ cần tải xuống một video mẫu từ YouTube và gửi đến máy chủ RTMP của mình bằng FFmpeg.

Đầu tiên, hãy cài đặt youtube-dl quảng cáo FFmpeg gói với lệnh sau.
Mã:
apt install python3-pip ffmpeg -y
pip install youtube-dl
Tiếp theo, tải xuống bất kỳ video nào từ YouTube bằng công cụ dòng lệnh youtube-dl.
Mã:
youtube-dl https://www.youtube.com/watch?v=oNEwEQ0uU1Y
Sau khi video được tải xuống hệ thống của bạn, bạn có thể gửi video đã tải xuống đến Máy chủ RTMP sử dụng lệnh FFmpeg.
Mã:
ffmpeg -re -i "How to Install Ubuntu 22.04 LTS-oNEwEQ0uU1Y.mp4" -c:v copy -c:a aac -ar 44100 -ac 1 -f flv rtmp://your-server-ip/live/stream &
Lúc này, video đã tải xuống của bạn sẽ được gửi đến rtmp://your-server-ip/live/stream

Truyền phát video đến VLC Player​

Trong phần này, chúng tôi sẽ chỉ cho bạn cách truyền phát video từ máy chủ RTMP trên phần mềm VLC player.

Trước tiên, hãy đăng nhập vào hệ thống máy tính để bàn của bạn và mở trình phát VLC. Sau đó, nhấp vào Media => Mở Network Stream. Bạn sẽ thấy màn hình sau.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22522%22%20height=%22435%22%3E%3C/svg%3E


Xác định URL máy chủ RTMP của bạn và nhấp vào nút Phát. Nếu mọi thứ hoạt động, bạn sẽ thấy video của mình trên màn hình sau.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22436%22%3E%3C/svg%3E

Cấu hình Thống kê RTMP để Giám sát​

Lúc này, máy chủ RTMP của bạn đã được cài đặt và hoạt động. Bây giờ, bạn sẽ cần cấu hình trang thống kê RTMP để theo dõi luồng phát trực tuyến của mình.

Đầu tiên, tạo một thư mục để lưu tệp thống kê RTMP bằng lệnh sau.
Mã:
mkdir /var/www/html/rtmp
Tiếp theo, sao chép tệp thống kê RTMP vào thư mục đã tạo.
Mã:
cp /usr/share/doc/libnginx-mod-rtmp/examples/stat.xsl /var/www/html/rtmp/stat.xsl
Tiếp theo, chỉnh sửa tệp ảo mặc định của Nginx tệp cấu hình máy chủ.
Mã:
nano /etc/nginx/sites-available/default
Xóa tất cả các dòng mặc định và thêm các dòng sau:
Mã:
server { listen 8080; server_name _; # rtmp stat location /stat { rtmp_stat all; rtmp_stat_stylesheet stat.xsl; } location /stat.xsl { root /var/www/html/rtmp; } # rtmp control location /control { rtmp_control all; }
}
Lưu và đóng tệp khi bạn hoàn tất. Sau đó, khởi động lại dịch vụ Nginx để áp dụng các thay đổi.
Mã:
systemctl restart nginx

Truy cập trang thống kê RTMP​

Bây giờ, hãy mở trình duyệt web của bạn và truy cập trang thống kê RTMP bằng URL Bạn sẽ thấy Thống kê RTMP trên màn hình sau.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22213%22%3E%3C/svg%3E


Bạn sẽ cần phải làm mới trang mỗi khi bạn phát trực tuyến video và xem số liệu thống kê luồng thay đổi.

Kết luận​

Bài đăng này giải thích cách thiết lập máy chủ phát trực tuyến video bằng Nginx-RTMP trên Ubuntu 22.04. Chúng tôi cũng thử nghiệm máy chủ RTMP thông qua trình phát VLC. Bây giờ bạn có thể phát trực tuyến bất kỳ video nào đến máy chủ RTMP và truy cập từ bất kỳ trình phát phương tiện nào được hỗ trợ. Hãy thoải mái hỏi tôi nếu bạn có bất kỳ câu hỏi nào.
 
Back
Bên trên