天天看點

ffmpeg rtsp轉rtmp_流媒體開發學習5 CentOS搭建Nginx+Rtmp服務端流媒體服務功能說明:下載下傳nginx-rtmp-module下載下傳安裝nginx設定nginx解除安裝Flv配置功能對比:安裝

ffmpeg rtsp轉rtmp_流媒體開發學習5 CentOS搭建Nginx+Rtmp服務端流媒體服務功能說明:下載下傳nginx-rtmp-module下載下傳安裝nginx設定nginx解除安裝Flv配置功能對比:安裝

流媒體服務功能說明:

nginx實作rtmp服務端,可以接受推流,然後将流分發出去。

一般接受rtsp推流,可輸出rtmp或flv等多種格式。 在安防領域典型的應用場景:

将錄影機的rtsp推流到流媒體伺服器,網頁端可使用flash或無插件觀看視訊。

下載下傳nginx-rtmp-module

git clone https://github.com/arut/nginx-rtmp-module.git
           

下載下傳安裝nginx

wget http://nginx.org/download/nginx-1.8.1.tar.gz tar -zxvf nginx-1.8.1.tar.gz cd nginx-1.8.1 ./configure --prefix=/usr/local/nginx  --add-module=../nginx-rtmp-module  --with-http_ssl_module   make && make install
           

設定nginx

vi /usr/local/nginx/conf/nginx.conf
           

内容:

worker_processes  1;events {    worker_connections  1024;}http {    include       mime.types;    default_type  application/octet-stream;    sendfile        on;    keepalive_timeout  65;    server {        listen       809;        server_name  localhost;        location / {            root   html;            index  index.html index.htm;        }        error_page   500 502 503 504  /50x.html;        location = /50x.html {            root   html;        }    }}    rtmp {        out_queue 4096;        out_cork 8;        max_streams 4096;        server {            listen 90;            drop_idle_publisher 30s;            application live {                live on;            }        }    }
           

啟動:/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

解除安裝

# 如果有自啟動,則删除 Nginx 的自啟動chkconfig nginx off服務 nginx 資訊讀取出錯:沒有那個檔案或目錄# 查找nginx的安裝目錄whereis nginxnginx: /usr/local/nginx# 停止nginx服務/usr/local/nginx/sbin/nginx -s stop# 删除安裝目錄rm -rf /usr/local/nginx/# 查找是否還有殘餘的find / -name nginx/usr/local/lib64/nginx-1.15.7/objs/nginxrm -rf /usr/local/lib64/nginx-1.15.7/
           

使用ffmpeg推流測試:

ffmpeg -hwaccel cuvid -c:v h264_cuvid -i "視訊資源源位址"  -c:v h264_nvenc -an  -crf 20 -b:a 96k -b:v 2048k -preset medium -tune animation -vf scale_npp=1024:-1 -f flv rtmp://ip:90/live/test
           

拉流測試

使用:

rtmp://ip:90/live/test
           

位址播放即可。

Flv配置

https://github.com/winshining/nginx-http-flv-modulenginx flv是基于nginx-rtmp-module的流媒體伺服器

功能對比:

ffmpeg rtsp轉rtmp_流媒體開發學習5 CentOS搭建Nginx+Rtmp服務端流媒體服務功能說明:下載下傳nginx-rtmp-module下載下傳安裝nginx設定nginx解除安裝Flv配置功能對比:安裝

安裝

yum install https://extras.getpagespeed.com/release-el$(rpm -E %{rhel})-latest.rpmyum install nginx-module-flv
           

1. 通過nginx.conf引用

安裝完畢後,HTTP-FLV功能的配置檔案http-flv.conf和RTMP功能的配置檔案rtmp.conf會被放在/etc/nginx/http-flv目錄下,通過include手工将它們添加到/etc/nginx/nginx.conf,以開啟HTTP-FLV和RTMP功能:

http {    ...    include /etc/nginx/http-flv/http-flv.conf;}include /etc/nginx/http-flv/rtmp.conf;添加以下配置到/etc/nginx/nginx.conf,啟動或者重新開機NGINX來啟用本子產品:load_module modules/ngx_http_flv_live_module.so;注意上述的配置必須位于events配置項之前,否則NGINX不能啟動。更新可以通過yum update來完成。關于其他NGINX子產品的詳情見GetPageSpeed。對于其他作業系統,見下面源碼編譯安裝的說明。
           

2. 源碼編譯安裝

cd rootgit clone https://github.com/winshining/nginx-http-flv-modulewget http://nginx.org/download/nginx-1.8.1.tar.gz tar -zxvf nginx-1.8.1.tar.gz cd nginx-1.8.1 ./configure --add-module=/root/nginx-http-flv-module  --with-http_ssl_module   make && make install