Cach hiết lập rtmp sever trên windows
Chào mọi người, lại là mình đây. Không hiểu sao dạo này mình chợt thấy hứng thú với Nginx, ngồi vọc lung tung thì chợt nghĩ ra chủ đề này, vậy là bắt tay vào làm một app demo nho nhỏ. Show Bài viết hôm nay mình sẽ demo về video theo yêu cầu (VOD), cùng tìm hiểu một vài định nghĩa sau nhé! Video on demand là gì
Ví dụ : Youtube, Netflix, Disney+ ... là những hệ thống cung cấp videos trực tuyến có cung cấp video on demand. Và trong demo này, chúng ta cũng có thế làm kiểu như vậy nhưng quy mô nhỏ hơn rất nhiều =)) Trước khi vào phần demo thì hãy cùng xem một vài định nghĩa về các giao thức mà chúng ta sẽ sử dụng nhé. RTMP
Nginx cung cấp cho chúng ta cách thức cấu hình rtmp thông qua nginx plus (https://www.nginx.com/products/nginx/modules/rtmp-media-streaming/), và vì phiên bản này có tính phí nên trong phạm vi bài viết này mình sẽ cấu hình bằng cách import thêm module cho nginx - nginx-rtmp-module (tác giả https://github.com/arut/) HLS
Mã hóaRTMPCác phiên RTMP có thể được mã hóa bằng một trong hai phương pháp:
HLS
Hỗ trợ clientVới giao thức RTMPRTMP là giao thức base trên TCP, có độ trễ thấp nhưng lại được hỗ trợ không rộng rãi, muốn phát video trên web chúng ta phải cài đặt Flash. Từ khi Apple tuyên bố không hỗ trợ flash và tự phát triển giao thức riêng thì flash cũng từ đó ít được hỗ trợ hơn.
Nguồn: https://en.wikipedia.org/wiki/Real-Time_Messaging_Protocol Với giao thức HLSHLS được hỗ trợ bởi hầu hết các nền tảng cũng như ứng dụng hiện nay. Mặc định, HLS được hỗ trợ phát với:
Ngoài ra mọi người có thể tham khảo thêm link wiki để tìm hiểu thêm. Nguồn: https://en.wikipedia.org/wiki/HTTP_Live_Streaming Setup basicGiới thiệu vậy đủ rồi, bây giờ mình sẽ trình bày các bước setup để stream video on demand sử dụng NGINX.
Install ffmpeg
Install nginxNhư đã nói ở phần đầu bài viết, mình sẽ sử dụng module free của tác giả Roman Arutyunyan. Và module này sẽ phải setup lúc cài nginx nên chúng ta không sử dụng apt-get để cài đặt.
Tải và cài đặt module nginx-rtmp-module:
Cần lấy đường dẫn đến thư mục nginx-rtmp-module vừa giải nén. Ở đây thư mục mình giải nén file zip ra là /home/uytv2/Downloads/nginx-rtmp-module-master vì thế mình sẽ để option như sau:
Check nginx version
Sửa config sau để có thể sử dụng nginx bằng lệnh systemctl
Dán cấu hình sau vào:
Bấm Ctrl + X, gõ y để lưu lại
Dán đoạn text sau và lưu lai:
Xong bước cài đặt module nginx-rtmp-module. Bây giờ chúng ta có thể sử dụng block rtmp trong config của nginx. Setup NGINX RTMP using nginx-rtmp-module
Thêm block rtmp vào cuối file và Ctrl + x để lưu lại: nginx.conf :
Thư mục
Setup NGINX HLSHLS base trên giao thức http, vì thế chúng ta có thể khai báo hls ngay trong block http: Cần include thư mục conf.d trong file /etc/nginx/nginx.conf, và các config khác mình cũng sẽ để ở đấy.
Lưu ý: Để có thể phát videos qua hls, chúng ta cần dùng ffmpeg convert video đó thành các file riêng lẻ dưới dạng .ts, và một playlist dưới dạng file .m3u8 Ví dụ video gốc là
Trong demo thư mục chứa videos playlist .m3u8 của mình là /home/uytv2/videos/hls, các bạn cần đổi đường dẫn cho phù hợp nhé. Sample file Ở file này hãy quan tâm đến block Còn
Link playlist video của mình bây giờ sẽ là:
update:
Chúng chỉ cần trỏ link đến link playlist này là được. Như vậy là xong setup cho nginx. Hãy restart nginx để update setup mới là xong
Demo
Việc cài đặt flash player trên web cũng khá vất vả nên mình sẽ dùng phần mềm vlc media player để phát video nhé. Ở cửa sổ vlc, chọn Media -> Open network stream và dán link videos vào là xong.
Với hls thì mình sẽ sử dụng jwplayer trên web để phát videos.
Mình đã chuẩn bị một video của Hoàng Thùy Linh để demo, mời mọi người vào xem nhé
Update: - https://user.uytran.tk/ Vậy là xong phần demo, hi vọng qua bài viết mọi người có thể setup được một server như ý muốn. Thanks for reading! |