1. Về nginx-rtmp module
Nginx-rtmp là module mở rộng, mà kết hợp với Nginx để cho phép xây dựng máy chủ streaming media.
Đang xem: Giới thiệu về kỹ thuật video streaming server là gì, streaming server là gì
Một số tính năng mà nginx-rtmp hỗ trợ:
4. VOD qua HLS
Chúng ta sẽ cấu hình để cho phép video player phát video qua giao thức HLS (Apple HTTP Live Streaming).
4.1 Cài đặt Ffmpeg
Sử dụng script Installing FFmpeg on Linux
Nếu chỉ sử dụng một thư viện có sẵn thì cài đặt đơn giản như sau trên CentOS
yum install ffmpeg ffmpeg-devel ffmpeg-libpostproc
Trong phần Giới thiệu FFmpeg, cũng đã giới thiệu và cách sử dụng cơ bản FFmpeg.
Xem thêm: Ghế Sofa Là Gì ? Các Loại Ghế Sofa Hiện Nay Các Loại Ghế Sofa Hiện Nay
4.2 Convert tệp vod.mp4 sang HLS
Trước khi convert, chúng ta thực hiện copy/download tệp tin video lên server (ví dụ tệp tin là vod.mp4)
Sử dụng lệnh ffmpeg để convert vod.mp4 sang định dạng HLS (Apache HTTP Live Stream)
ffmpeg -i video.mp4 -profile:v baseline -level 3.0 -s 720×400 -start_number 0 -hls_time 10 -hls_list_size 0 -f hls /tmp/index.m3u8
Trong đó:
vod.mp4 là tệp video đầu vào cần convertindex.m3u8 là tệp tin master đầu ra của HLS playlistvà một số tham số tùy chọn cho độ phân giải, thời gian phân đoạn, …
4.3 Cấu hình nginx
Ở đây, Chúng ta sẽ cấu hình nginx làm web server, đồng thời cấu hình làm media server.
Xem thêm: ” Swish Là Gì ? Nghĩa Của Từ Swish Trong Tiếng Việt Nghĩa Của Từ Swish Trong Tiếng Việt
user nginx;worker_processes 1;error_log logs/rtmp_error.log debug;pid /var/run/nginx.pid;events { worker_connections 1024;}http { #serve the player for HLS server { listen 80; root /var/www/html; server_name localhost; location /hls { # CORS setup add_header “Access-Control-Allow-Origin” “*” always; add_header “Access-Control-Expose-Headers” “Content-Length”; # Allow CORS preflight requests if ($request_method = “OPTIONS”) { add_header “Access-Control-Allow-Origin” “*”; add_header “Access-Control-Max-Age” 1728000; add_header “Content-Type” “text/plain charset=UTF-8”; add_header “Content-Length” 0; return 204; } types { application/vnd.apple.mpegurl m3u8; video/mp2t ts; } add_header Cache-Control no-cache; alias /tmp; } }}Listen với port default 80Playlist của stream là tệp tin m3u8, với các segment là tệp tsĐường dẫn thư mục chứa các playlist là /tmp
4.4 Phát video trên web browser với videojs
Chúng ta có thể phát video trên web browser, mà sử dụng flash player như Flowplayer hay Jwplayer. Trong trường hợp này, tôi sẽ giới thiệu sử dụng videojs player cho phát video trên web browser.
Link về videojs: https://github.com/videojs/http-streaming
Trên Nginx web server, chúng ta sẽ tạo tệp tin index.html với nội dung sau vào root directory: