ubuntu+nginx+rtmp搭建流媒体服务器


创建rtmp流媒体服务器

创建放压缩包的目录

cd /usr/local
sudo mkdir package
cd package

下载软件

sudo wget http://nginx.org/download/nginx-1.19.9.tar.gz

sudo wget http://zlib.net/zlib-1.2.11.tar.gz

sudo wget https://ftp.pcre.org/pub/pcre/pcre-8.40.tar.gz

sudo wget https://www.openssl.org/source/openssl-1.0.2k.tar.gz

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

解压下载的文件

# tar后缀的使用 tar -zxvf 文件名
# zip后缀的使用 unzip 文件名 -C指定解压后的路径

cd package
sudo tar -zxvf nginx-1.19.9.tar.gz -C /usr/local
sudo tar -zxvf zlib-1.2.11.tar.gz -C /usr/local
sudo tar -zxvf pcre-8.40.tar.gz -C /usr/local
sudo tar -zxvf openssl-1.0.2k.tar.gz -C /usr/local
cd ..

进入nginx文件,编译安装nginx

cd nginx-1.19.9
# 输入./configure --help 可以看使用帮助
# --prefix=PATH            set installation prefix(设置安装前缀)
# --add-module=PATH        enable external module (启用外部模块)
sudo ./configure --prefix=/usr/local/nginx --with-debug --with-pcre=../pcre-8.40 --with-zlib=../zlib-1.2.11 --with-openssl=../openssl-1.0.2k --add-module=../nginx-rtmp-module

sudo make
sudo make install
cd ..
cd nginx

启动nginx服务

sudo /usr/local/nginx/sbin/nginx

结果如下:

在这里插入图片描述

配置nginx.conf文件

cd /usr/local/nginx/conf
sudo vi nginx.conf

在文件尾添加:

rtmp {
    server {
        listen 1935;

        application myapp{
        live on;
        hls on;
        hls_path /usr/local/nginx/myapp;  #推流拉流存放路径
        }

        # video on demand
        application vod {
            play /opt/video/vod; #指定存放视频文件的路径
        }

        application vod_http {
            #myserver.com及服务器地址,如果只是本地播放,填写127.0.0.1:端口号 就行,端口好看配置文件中http监听的端口下同
            play http://172.20.125.125/vod;
                 }

        application vod_mirror {
            play /var/local_mirror http://172.20.125.125:1935/vod;
        }
    }
}
#如果想在网页显示,在http中添加
 autoindex on; #开启nginx目录浏览功能
 autoindex_exact_size off; #文件大小从KB开始显示
 autoindex_localtime on; #显示文件修改时间为服务器本地时间
# 将视频文件放在html的文件夹里

重新加载配置,使用命令

sudo mkdir /usr/local/nginx/myapp     // 拉流和推流视频地址
sudo mkdir /usr/local/html/video   // 网页上的视频地址
sudo /usr/local/nginx/sbin/nginx -s reload

出现的问题

端口被占用

//启动nginx
sudo /usr/local/nginx/sbin/nginx

在这里插入图片描述

//该问题是该端口被占用了

// 查看是否开启了nginx
ps -e | grep nginx

方法一:
//切换到nginx sbin目录
-- 停止
sudo ./nginx -s stop
-- 启动
./nginx

方法二:
ps -e | grep nginx
kill -9 PID

查看开放的端口,并关闭在运行的进程

// 查看所有开放端口
netstat -ntlp

在这里插入图片描述

kill 6751

在这里插入图片描述

// 查看端口命令
   lsof -i:port
 // 关闭进程
       kill -9 PID
// 下面是防火墙      
// 查看开启的端口
    sudo ufw status
// 打开端口
    sudo ufw allow 1935
// 开启防火墙
    sudo ufw enable
 // 重启防火墙
      sudo ufw reload
  
//如果你使用了防火墙,请允许端口 tcp 1935,81
iptables -A INPUT -p tcp --dport 1935 -j ACCEPT 
iptables -A OUTPUT -p tcp --sport 1935 -j ACCEPT 
iptables -A INPUT -p tcp --dport 81 -j ACCEPT 
iptables -A OUTPUT -p tcp --sport 81 -j ACCEPT
//关闭防火墙
iptables -F
       
 // wsl2网络地址异常ping不通
 //重启 WSL 指令 
$ wsl --shutdown 
// 之后就重新启动进入即可 
$ wsl 

运行结果

网页上访问服务区媒体资源

在这里插入图片描述

拉流和推流

在虚拟机上
在这里插入图片描述

用云服务器
在这里插入图片描述

在这里插入图片描述

播放媒体服务器中的文件

将文件放在指定路径下
将input.mp4文件放在了/opt/video/vod
拉流地址:rtmp://172.20.113.219:1935/vod/input.mp4
然后就可以播放了

总结

搭建好的nginx-rtmp服务器上做推流延时会很高,开始在5s左右,用云服务器延时会更高

参考文章

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值