CentOS搭建Nginx流媒體服務器

基礎配置

剛開始連不上網(wǎng),因為是剛搭建的centos環(huán)境,修改了一下網(wǎng)絡配置

vi /etc/sysconfig/network-scripts/ifcfg-ens192
###
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens192
UUID=1f0e3eea-8320-4ad3-90dc-259d4fbb3574
DEVICE=ens192
ONBOOT=yes

IPADDR=192.168.2.233
NETMASK=255.255.255.0
GATEWAY=192.168.2.1
### 添加DNS
DNS1=8.8.8.8
DNS2=192.168.2.2
### 添加DNS
ZONE=public

更換yum源

yum -y install wget
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

安裝必備環(huán)境

yum -y install gcc gcc-c++
yum install -y pcre pcre-devel
yum install -y zlib zlib-devel
yum install -y openssl openssl-devel

Nginx安裝

安裝nginx-rtmp-model

wget https://github.com/arut/nginx-rtmp-module/archive/master.zip
unzip -o master.zip
mv nginx-rtmp-module-master/ nginx-rtmp-module

安裝Nginx服務器

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

配置Nginx環(huán)境

vim /etc/profile
### 末尾添加以下內容
export PATH=$PATH:/usr/local/nginx/sbin
###
source /etc/profile # 環(huán)境生效

檢測是否安裝成功

nginx -V
### 輸出以下內容則成功
nginx version: nginx/1.12.2
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC)
built with OpenSSL 1.0.2k-fips  26 Jan 2017
TLS SNI support enabled
configure arguments: --prefix=/usr/local/nginx --add-module=/root/nginx/nginx-rtmp-module

安裝ffmpeg

yum install -y epel-release
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro 
rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-1.el7.nux.noarch.rpm 
yum update -y 
yum install -y ffmpeg 
#檢查版本 
ffmpeg -version

修改nginx配置

cp usr/local/nginx/html/index.html /root/nginx/html/ # 復制index網(wǎng)頁文件到自己的文件夾路徑
vi /usr/local/nginx/conf/nginx.conf

# 修改權限為root
user  root;
worker_processes  1;
...
# 在http節(jié)點后面加上rtmp配置:
rtmp {
    server {
        listen 1935;
        application rtmplive {
            live on;
            record off;
        }
    }
}
# 修改http-server的配置信息
http{
...
 server {
        listen       8081; #此處為監(jiān)聽端口
        server_name  192.168.2.233; # 此處為服務器IP地址

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   /root/nginx/html; # 這里需要修改為自己定義的網(wǎng)頁文件位置
            index  index.html index.htm;
        }
...
}

可啟動服務器,并關閉防火墻

/usr/local/nginx/sbin/nginx
sudo systemctl stop firewalld

登錄定義好的地址(此處為192.168.2.233:8081)查看,Nginx服務器是否成功啟動,正常則如下圖所示


Nginx服務器成功啟動

接下來通過ffmpeg對rtsp網(wǎng)絡攝像頭數(shù)據(jù)進行重新rtmp推流
命令格式

ffmpeg -i "rtsp://XXXX:XXX" -vcodec copy -acodec copy -f flv "rtmp://:XXXX:XXX"

此處需要將rtsp強制通過tcp傳輸(-rtsp_transport tcp),否則會出現(xiàn)斷流以及傳輸失敗的現(xiàn)象

ffmpeg -rtsp_transport tcp -i "rtsp://test:testhik501@218.90.159.147:7554/h264/ch1/sub/av_stream" -vcodec copy -acodec copy -f flv "rtmp://192.168.2.233:1935/live/"

通過vlc工具可以查看是否推流成功,也可以直接在index.html上獲取rtmp數(shù)據(jù)進行網(wǎng)頁顯示

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容