基礎配置
剛開始連不上網(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)頁顯示