前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >3、搭建rtmp视频推流服务器

3、搭建rtmp视频推流服务器

作者头像
全栈程序员站长
发布2022-11-01 15:24:12
4K0
发布2022-11-01 15:24:12
举报
文章被收录于专栏:全栈程序员必看

Linux安装nginx

一般我们都需要先装pcre, zlib,前者为了重写rewrite,后者为了gzip压缩。

1.选定源码目录

代码语言:javascript
复制
cd /usr/local/src

2.安装PCRE库

下载

代码语言:javascript
复制
wget https://netix.dl.sourceforge.net/project/pcre/pcre/8.40/pcre-8.40.tar.gz

解压安装包

代码语言:javascript
复制
tar -zxvf pcre-8.40.tar.gz

进入安装目录

代码语言:javascript
复制
cd pcre-8.40

编译安装

代码语言:javascript
复制
./configure 
make && make install

查看pcre版本

代码语言:javascript
复制
pcre-config --version

3.安装zlib库

代码语言:javascript
复制
wget http://www.zlib.net/zlib-1.2.11.tar.gz
tar -zxvf zlib-1.2.11.tar.gz
cd zlib-1.2.11
./configure
make && make install

4.安装Nginx

代码语言:javascript
复制
cd /usr/local/
wget http://nginx.org/download/nginx-1.15.3.tar.gz
tar -zxvf nginx-1.15.3.tar.gz
rm nginx-1.15.3.tar.gz
mv nginx-1.15.3 nginx
cd nginx/
./configure --prefix=/usr/local/nginx 
make & make install

遇到错误,先不管继续以下步骤

添加Nginx环境变量,可以在命令行直接输入Nginx命令

代码语言:javascript
复制
vim /etc/profile

在最后添加Nginx的路径

代码语言:javascript
复制
export NGINX_HOME=/usr/local/nginx
export PATH=$PATH:$NGINX_HOME/sbin

重新编译环境变量

代码语言:javascript
复制
source /etc/profile

启动nginx

代码语言:javascript
复制
mkdir /usr/local/nginx/logs
cd sbin
./nginx

浏览器输入IP,就会有nginx欢迎界面

重启nginx命令为

代码语言:javascript
复制
nginx -s reload

关闭nginx服务:

代码语言:javascript
复制
killall -9 nginx

遇到的问题

代码语言:javascript
复制
nginx:[emerg] listen()to 0.0.0.0:80, backlog 511 failed (98: Address already in use)
.
.
.
nginx:[emerg] sill could not blind()

提示端口已被占用

查看端口占用情况

代码语言:javascript
复制
sudo netstat -ntpl

我的是

代码语言:javascript
复制
tcp6 0 0 :::80 :::* LISTEN 1128/apache2

然后杀死1128的任务

代码语言:javascript
复制
sudo kill 1128

重启Nginx便可

也又可能是防火墙没有打开80端口 打开80端口

代码语言:javascript
复制
iptables -I INPUT -p tcp --dport 80 -j ACCEPT

5.安装Nginx的rtmp拓展

代码语言:javascript
复制
cd /usr/local/nginx

还缺少openssl环境,需要手动安装

代码语言:javascript
复制
sudo apt-get install libssl-dev

如果报错

代码语言:javascript
复制
ERR:1 http://... 404 Not Found

更新一下

代码语言:javascript
复制
apt-get update

再进行安装

代码语言:javascript
复制
sudo apt-get install libssl-dev

git clone https://github.com/arut/nginx-rtmp-module.git
./configure --add-module=/usr/local/nginx/nginx-rtmp-module
make & make install

6.配置Nginx的rtmp服务站点

代码语言:javascript
复制
vim /usr/local/nginx/conf/nginx.conf

在文件底部添加下面内容

代码语言:javascript
复制
rtmp{
    server{
        #监听的端口
        listen 1935;
        chunk_size 4000;
        application tv_file{
            #开启实时
            live on;
            #开启hls
            hls on;
            #rtmp推流请求路径,文件存放路径
            hls_path /usr/local/nginx/html/tv_file;
            #每个TS文件包含5秒的视频内容
            hls_fragment 5s;
        }
    }
}

在文件中部,修改http的server模块

代码语言:javascript
复制
location/{
    root /usr/local/nginx/html;
    index index.html index.htm
}

打开1935端口,建议阿里云

启动nginx

代码语言:javascript
复制
cd /usr/local/nginx/sbin
./nginx

测试:

windows 终端

代码语言:javascript
复制
telnet 服务器地址 1935

遇到的问题: telnet不可用, 控制面板->程序和功能->启用和关闭Windows功能->勾选Telnet Client

7.推流测试

下载 OBS Studio 下载地址:https://pc.qq.com/detail/4/detail_23604.html 安装完成后,打开软件 在 来源 模块,点击+,媒体源,新建一个, 在本地文件添加一个视频文件上去, 勾选:循环、当源变为活跃状态时重新启动播放、在可用时使用硬件解码 在右下角 控件 模块,点击设置,点击推流 服务:自定义 服务器:rtmp://服务器地址:1935/tv_file 串流密钥:test(这处随便,也就是保存到服务器端的文件名)

开始推流: 然后在服务器段就可以看到 .ts .m3u8文件

代码语言:javascript
复制
cd /usr/local/nginx/html/tv_file
ls
test-0.ts test-1.ts test-2.ts test.m3u8            

8.拉流测试

下载安装 VLC 下载地址 https://www.videolan.org/ 点击媒体->打开网络串流 选择网络,在URL里输入 流媒体服务器IP和串流密钥

代码语言:javascript
复制
rtmp://服务器地址:1935/tv_file/test

点击播放

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/179933.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年10月20日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Linux安装nginx
    • 1.选定源码目录
      • 2.安装PCRE库
        • 3.安装zlib库
          • 4.安装Nginx
            • 5.安装Nginx的rtmp拓展
              • 6.配置Nginx的rtmp服务站点
                • 测试:
                  • 7.推流测试
                    • 8.拉流测试
                    相关产品与服务
                    云直播
                    云直播(Cloud Streaming Services,CSS)为您提供极速、稳定、专业的云端直播处理服务,根据业务的不同直播场景需求,云直播提供了标准直播、快直播、云导播台三种服务,分别针对大规模实时观看、超低延时直播、便捷云端导播的场景,配合腾讯云视立方·直播 SDK,为您提供一站式的音视频直播解决方案。
                    领券
                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档