RTMP LÀ GÌ

  -  

Chào phần đa bạn, lại là mình trên đây.Không gọi sao dạo bước này mình bỗng thấy hứng thú với Nginx, ngồi vọc ltinh tinh thì thốt nhiên nghĩ ra chủ thể này, vậy là bắt tay vào có tác dụng một tiện ích demo nho nhỏ dại.

Bạn đang xem: Rtmp là gì

Bài viết lúc này mình vẫn demo về đoạn Clip theo yên cầu (VOD), cùng khám phá một vài ba tư tưởng sau nhé!

Video on demand là gì

Video theo thử khám phá (VOD) hay âm tkhô hanh cùng đoạn Clip theo yên cầu (AVOD) là khối hệ thống chất nhận được người tiêu dùng tuyển lựa với coi / nghe văn bản đoạn Clip hoặc âm thanh khô Khi chúng ta chọn, vắt bởi đề xuất xem vào trong 1 thời hạn phát sóng cụ thể. Công nghệ IPTV thường xuyên được áp dụng nhằm đem lại các đoạn Clip theo đề xuất mang lại TV cùng máy tính cá thể.

Có thể gọi qua là họ đã thiết đặt VPS biến hóa một hệ thống chứa videos tất cả sẵn, bạn cũng có thể phân phát video clip trong danh sách có sẵn kia.

Ví dụ : Youtube, Netflix, Disney+ ... là phần đông khối hệ thống cung ứng videos trực tuyến đường có cung ứng video clip on demvà. Và vào kiểm tra này, họ cũng đều có cầm có tác dụng hình trạng điều đó tuy vậy bài bản nhỏ rộng rất nhiều =))

*

Trước Khi vào phần demo thì nên thuộc coi một vài khái niệm về những giao thức mà họ đã thực hiện nhé.

RTMP

RTMPhường là từ viết tắt của Real time messaging protocol.Giao thức RTMPhường lúc đầu là một giao thức độc quyền được trở nên tân tiến vì chưng Macrotruyền thông để truyền phân phát âm tkhô giòn, video với dữ liệu qua Internet, thân trình vạc Flash và máy chủ. Macrotruyền thông hiện thuộc sở hữu của Adobe, đang xây đắp một phiên bạn dạng chưa hoàn hảo về Đặc điểm chuyên môn của giao thức để gây ra chấp thuận.

RTMP là một trong những giao thức dựa vào TCP.., bảo trì những kết nối thường xuyên và có thể chấp nhận được giao tiếp cùng với độ trễ thấp. Để phân phối hận luồng một bí quyết trót lọt tru và truyền càng nhiều biết tin càng tốt, nó phân tách luồng thành các đoạn (fragments) và form size của bọn chúng được thỏa thuận hợp tác tùy thuộc vào thỏa thuận hợp tác thân thiết bị khách hàng cùng máy chủ. Đôi khi, kích cỡ đó được không thay đổi.

Kích thước đoạn mặc định là 64 byte cho tài liệu âm tkhô cứng cùng 128 byte đến dữ liệu Clip với hầu như những nhiều loại tài liệu không giống. Các đoạn từ bỏ các luồng không giống nhau sau đó hoàn toàn có thể được xen kẹt với ghép thành một liên kết độc nhất vô nhị.

Với những kăn năn dữ liệu dài ra hơn nữa, giao thức vì thế chỉ mang một tiêu đề một byte cho mỗi đoạn, cho nên tạo ra hết sức không nhiều đường truyền. Tuy nhiên, vào thực tiễn, các mhình ảnh đơn lẻ thường ko được xen kẹt. Txuất xắc vào đó, vấn đề xen kẹt cùng ghép kênh được triển khai làm việc cấp cho gói, với những gói RTMP. trên một số trong những kênh hoạt động không giống nhau được đan xen nhằm đảm bảo an toàn mỗi kênh đáp ứng băng thông, độ trễ cùng các yên cầu quality hình thức dịch vụ khác. Các gói đan xen trong thời hạn này được coi là cần yếu phân tách cắt, cũng giống như ko xen kẽ sinh hoạt Lever mhình họa.

Nginx hỗ trợ mang đến chúng ta cách thức thông số kỹ thuật rtmp trải qua nginx plus (https://www.nginx.com/products/nginx/modules/rtmp-media-streaming/), và vị phiên bạn dạng này còn có tính tầm giá đề nghị trong phạm vi nội dung bài viết này bản thân đã cấu hình bằng phương pháp import thêm module mang lại nginx - nginx-rtmp-module (tác giả https://github.com/arut/)

HLS

HLS là trường đoản cú viết tắt của HTTP.. live sầu streaming, HLS là một trong HTTP-based adaptive sầu bitrate streaming, một giao thức truyền bitrate dựa trên HTTPhường. HLS được lập trình bởi Apple Inc. Là một giao thức truyền phạt ngôn từ đa phương tiện khá phổ cập.

HLS tương đương cùng với MPEG-DASH ở trong phần nó hoạt động bằng cách phân chia luồng tổng thể thành một chuỗi các tệp mua xuống dựa trên HTTPhường., các lần thiết lập xuống download một đoạn nđính thêm của một luồng truyền download toàn diện có chức năng không biến thành buộc ràng.Một danh sách các luồng khả dụng, được mã hóa làm việc các tốc độ bit khác nhau, được gửi cho sản phẩm client bằng cách thực hiện danh sách phát m3u mở rộng.

Mã hóa

RTMP

Các phiên RTMP rất có thể được mã hóa bởi một trong các hai phương pháp:

Sử dụng các nguyên tắc TLS / SSL tiêu chuẩn của ngành. Phiên RTMPhường cơ bản chỉ đơn giản được gói bên phía trong phiên TLS / SSL thông thường.Sử dụng RTMPE, xong xuôi phiên RTMP. trong lớp mã hóa trọng lượng nhẹ hơn.

HLS

Dựa trên những giao dịch HTTP tiêu chuẩn, HLS rất có thể đi qua ngẫu nhiên tường lửa hoặc sever proxy làm sao chất nhận được lưu lại lượng HTTPhường tiêu chuẩn, không y như những giao thức dựa vào UDPhường nlỗi RTPhường.

Như vậy cũng cho phép câu chữ được cung cấp trường đoản cú những sever HTTPhường. thường thì với được phân păn năn bên trên những mạng phân phối hận nội dung dựa trên HTTP bao gồm sẵn rộng rãi. Tiêu chuẩn cũng gồm 1 phương pháp mã hóa tiêu chuẩn cùng phân pân hận khóa bảo mật dựa vào HTTPS, cùng cả nhà cung cấp một hệ thống DRM đơn giản và dễ dàng. Các phiên bản sau đây của giao thức cũng cung cấp kỹ năng tua nkhô hanh với tua lại, tích hòa hợp phụ đề.

Hỗ trợ client

Với giao thức RTMP

RTMPhường là giao thức base trên TCP, gồm độ trễ phải chăng mà lại lại được cung ứng không rộng thoải mái, mong mỏi phát đoạn Clip trên website họ đề nghị setup Flash.

Từ Lúc Apple tulặng cha không cung ứng flash với từ trở nên tân tiến giao thức riêng thì flash cũng tự đó không nhiều được cung cấp rộng.

*

Adobe Flash Player (website browser plug-in):Windows, OS X, Chrome OS, Linux

Gnash (web browser plug-in/truyền thông media player):Windows, Linux

VLC media player:Windows, OS X, Linux, iOS, Android

MPC-HC:Windows

XBMC Media Center:Windows, OS X, Linux, iOS (jailbroken), Android

Với giao thức HLS

HLS được cung cấp bởi vì đa số các nền tảng cũng như áp dụng bây giờ.

Xem thêm: Nghĩa Của Từ After Shave Là Gì ? Kiến Thức Cơ Bản Để Cạo Râu Đúng Cách

Mặc định, HLS được cung ứng phát với:

Windows 10 (Microsoft Edge)macOS 10.6+ (Safari và QuickTime)iOS 3.0+ (Safari)Andoid 4.1+ (Google Chrome)

Hình như gần như bạn rất có thể đọc thêm links wiki để đọc thêm.

Setup basic

Giới thiệu vậy đủ rồi, bây giờ mình vẫn trình bày các bước thiết đặt để stream đoạn Clip on demvà áp dụng NGINX.

Lưu ý server bản thân áp dụng là server aws ec2 đang hoạt động ubuntu 16.04. Vì vậy nên toàn cục thiết lập mình lý giải trong bài viết này là sử dụng mang lại ubuntu 16.04.

Các hệ quản lý và điều hành khác sẽ có biện pháp thiết lập không giống cơ mà bản thân không đề cập tới vào bài này nhé.

Install ffmpeg

suvì add-apt-repository ppa:jonathonf/ffmpeg-4suvì apt-get updatesuvì apt-get install ffmpegInstall nginxNhư vẫn nói tại phần đầu bài viết, mình vẫn sử dụng module không tính tiền của tác giả Roman Arutyunyan.Và module này đã buộc phải setup dịp download nginx yêu cầu chúng ta ko áp dụng apt-get nhằm thiết lập.

suvì chưng apt install build-essential -ywget http://nginx.org/download/nginx-1.14.2.tar.gztar zxvf nginx-1.14.2.tar.gzwget https://ftp.pcre.org/pub/pcre/pcre-8.40.tar.gztar xzvf pcre-8.40.tar.gzwget http://www.zlib.net/zlib-1.2.11.tar.gztar xzvf zlib-1.2.11.tar.gzwget https://www.openssl.org/source/openssl-1.1.0f.tar.gztar xzvf openssl-1.1.0f.tar.gzTải cùng setup module nginx-rtmp-module:

wget https://github.com/arut/nginx-rtmp-module/archive/master.zipunzip master.zipCần đem đường truyền cho thư mục nginx-rtmp-module vừa bung file.

Ở phía trên thư mục mình giải nén tệp tin zip ra là /home/uytv2/Downloads/nginx-rtmp-module-master chính vì vậy mình sẽ để option như sau:

--add-module="/home/uytv2/Downloads/nginx-rtmp-module-master"cd nginx-1.14.2./configure --prefix=/usr/share/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/run/nginx.pid --lock-path=/var/lock/nginx.lock --user=www-data --group=www-data --build=Ubuntu --http-client-body-temp-path=/var/lib/nginx/toàn thân --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --http-proxy-temp-path=/var/lib/nginx/proxy --http-scgi-temp-path=/var/lib/nginx/scgi --http-uwsgi-temp-path=/var/lib/nginx/uwsgi --with-openssl=../openssl-1.1.0f --with-openssl-opt=enable-ec_nistp_64_gcc_128 --with-openssl-opt=no-nextprotoneg --with-openssl-opt=no-weak-ssl-ciphers --with-openssl-opt=no-ssl3 --with-pcre=../pcre-8.40 --with-pcre-jit --with-zlib=../zlib-1.2.11 --with-compat --with-file-aio --with-threads --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_mp4_module --with-http_random_index_module --with-http_realip_module --with-http_slice_module --with-http_ssl_module --with-http_sub_module --with-http_stub_status_module --with-http_v2_module --with-http_secure_link_module --with-mail --with-mail_ssl_module --with-stream --with-stream_realip_module --with-stream_ssl_module --with-stream_ssl_preread_module --with-debug --add-module="/home/uytv2/Downloads/nginx-rtmp-module-master" suvày makesudo make installCheck nginx version

suvì chưng nginx -VSửa config sau để hoàn toàn có thể sử dụng nginx bởi lệnh systemctl

sudo nano /etc/systemd/system/nginx.serviceDán cấu hình sau vào:

Description=A high performance web VPS & a reverse proxy serverAfter=network.targetType=forkingPIDFile=/run/nginx.pidExecStartPre=/usr/sbin/nginx -t -q -g "daetháng on; master_process on;"ExecStart=/usr/sbin/nginx -g "daemon on; master_process on;"ExecReload=/usr/sbin/nginx -g "daetháng on; master_process on;" -s reloadExecStop=-/sbin/start-stop-daetháng --quiet --stop --retry QUIT/5 --pidtệp tin /run/nginx.pidTimeoutStopSec=5KillMode=mixedWantedBy=multi-user.targetBấm Ctrl + X, gõ y nhằm lưu giữ lại

suvày nano /etc/ufw/applications.d/nginxDán đoạn text sau và lưu giữ lai:

title=Web Server (Nginx, HTTP)description=Small, but very powerful và efficient website serverports=80/tcptitle=Web Server (Nginx, HTTPS)description=Small, but very powerful & efficient web serverports=443/tcptitle=Web Server (Nginx, HTTP. + HTTPS)description=Small, but very powerful & efficient website serverports=80,443/tcpXong bước cài đặt module nginx-rtmp-module. Bây tiếng bạn cũng có thể thực hiện bloông xã rtmp vào config của nginx.

Setup NGINX RTMP.. using nginx-rtmp-module

cd /etc/nginxsuvì chưng nano nginx.confThêm block rtmp vào thời gian cuối file cùng Ctrl + x nhằm lưu lại lại:

nginx.conf :

rtmp server listen 1935; application myvideos play /home/uytv2/videos; Thỏng mục /home/uytv2/videos là thư mục cất video clip contents. Chọn videos lưu vào đây để rất có thể stream.Videos có thể vạc trực tiếp qua giao thức rtmp

rtmp:///myvideos/

Setup NGINX HLS

HLS base bên trên giao thức http, chính vì như thế bạn cũng có thể khai báo hls ngay lập tức trong block http:

Cần include thỏng mục conf.d trong file /etc/nginx/nginx.conf, và các config khác bản thân cũng biến thành để tại đấy.

http ... include /etc/nginx/conf.d;...Lưu ý:

Để rất có thể phạt videos qua hls, chúng ta buộc phải sử dụng ffmpeg convert đoạn phim kia thành các file trật dưới dạng .ts, và một playlist dưới dạng file .m3u8

lấy ví dụ như đoạn Clip gốc là kiểm tra.mp4 thì convert thành những file: chạy thử.m3u8, demo0.ts, demo1.ts, demo2.ts ...

ffmpeg -i demo.mp4 -profile:v baseline -level 3.0 -s 720x400 -start_number 0 -hls_time 10 -hls_list_kích cỡ 0 -f hls /home/uytv2/videos/hls/kiểm tra.m3u8Trong chạy thử thư mục chứa videos playmenu .m3u8 của bản thân là /home/uytv2/videos/hls, các bạn yêu cầu thay đổi đường dẫn đến tương xứng nhé.

Sample file /etc/nginx/conf.d/hls.conf

Ở file này hãy quan tâm đến block types: cùng alias.Bloông chồng types knhị báo mimes type cho các videos phạt qua hls.Phần server_name thì nên cần chuyển domain name name vào. Nếu VPS của khách hàng không cần quản lý domains thì có thể để là gì cũng rất được.

Còn alias knhị báo thư mục chứa videos playlist họ vừa convert kết thúc.

VPS listen 80; root /var/www/html; server_name videos.uytran.cf; location /hls # CORS cài đặt 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.táo khuyết.mpegurl m3u8; video/mp2t ts; add_header Cache-Control no-cache; alias /home/uytv2/videos/hls; Link playmenu video của chính mình bây chừ sẽ là:

http://videos.uytran.cf/hls/chạy thử.m3u8update:

http://videos.uytran.tk/hls/video_1.m3u8Chúng chỉ việc trỏ liên kết đến link playdanh sách này là được.

vì thế là dứt thiết đặt mang lại nginx. Hãy restart nginx để update cài đặt mới là chấm dứt

*

suvị systemctl restart nginx

Demo

Với RTMP:Nlỗi các mục những ứng dụng hỗ trợ nhì giao thức này bản thân có kể ở vị trí đầu nội dung bài viết. Vì giao thức rtmp hiện nay không hề được support thoáng rộng.Việc cài đặt flash player bên trên web cũng rất vất vả phải mình sẽ cần sử dụng ứng dụng vlc media player để vạc đoạn Clip nhé.

Tại hành lang cửa số vlc, chọn Media -> xuất hiện network stream và dán link videos vào là chấm dứt.

Xem thêm: Hackerrank Là Gì - Lời Khuyên Khi Tham Gia Hackerrank

rtmp://uytran.cf/myvideos/demo.mp4Với HLS chúng ta có tương đối nhiều chọn lọc hơn. Hls được cung cấp vị trình phát vlc, vừa được hỗ trợ bời nhiều lib player js trên web.Với hls thì bản thân vẫn áp dụng jwplayer bên trên website để phân phát videos.

http://videos.uytran.cf/hls/kiểm tra.m3u8script src="https://cdn.jwplayer.com/libraries/.js">script>div id="myPlayer">This text will be replaced with a player.div>script> jwplayer("myPlayer").setup( file: "http://videos.uytran.cf/hls/test.m3u8", height: 360, width: 640 );script>Mình vẫn sẵn sàng một video của Hoàng Thùy Linc nhằm kiểm tra, mời rất nhiều tín đồ vào xem nhé

*

Update: - https://user.uytran.tk/

Vậy là xong phần test, hy vọng qua nội dung bài viết phần đa người có thể thiết đặt được một VPS như ý muốn. Thanks for reading!