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

3、搭建rtmp视频推流服务器Linux安装nginx一般我们都需要先装pcre,zlib,前者为了重写rewrite,后者为了gzip压缩。1.选定源码目录cd/usr/local/src2.安装PCRE库下载wgethttps://netix.dl.sourceforge.net/project/pcre/pcre/8.40/pcre-8.40.tar.gz解压安装包tar-zxvfpcre-8.40.tar.gz进入安装目录cdpcre-8.40编译安装./configuremake

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

Linux安装nginx

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

1.选定源码目录

cd /usr/local/src

2.安装PCRE库

下载

wget https://netix.dl.sourceforge.net/project/pcre/pcre/8.40/pcre-8.40.tar.gz

解压安装包

tar -zxvf pcre-8.40.tar.gz

进入安装目录

cd pcre-8.40

编译安装

./configure 
make && make install

查看pcre版本

pcre-config --version

3.安装zlib库

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

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命令

vim /etc/profile

在最后添加Nginx的路径

export NGINX_HOME=/usr/local/nginx
export PATH=$PATH:$NGINX_HOME/sbin

重新编译环境变量

source /etc/profile

启动nginx

mkdir /usr/local/nginx/logs
cd sbin
./nginx

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

重启nginx命令为

nginx -s reload

关闭nginx服务:

killall -9 nginx

遇到的问题

nginx:[emerg] listen()to 0.0.0.0:80, backlog 511 failed (98: Address already in use)
.
.
.
nginx:[emerg] sill could not blind()

提示端口已被占用

查看端口占用情况

sudo netstat -ntpl

我的是

tcp6 0 0 :::80 :::* LISTEN 1128/apache2

然后杀死1128的任务

sudo kill 1128

重启Nginx便可

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

iptables -I INPUT -p tcp --dport 80 -j ACCEPT

5.安装Nginx的rtmp拓展

cd /usr/local/nginx

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

sudo apt-get install libssl-dev

如果报错

ERR:1 http://... 404 Not Found

更新一下

apt-get update

再进行安装

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服务站点

vim /usr/local/nginx/conf/nginx.conf

在文件底部添加下面内容

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模块

location/{
    root /usr/local/nginx/html;
    index index.html index.htm
}

打开1935端口,建议阿里云

启动nginx

cd /usr/local/nginx/sbin
./nginx

测试:

windows 终端

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文件

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和串流密钥

rtmp://服务器地址:1935/tv_file/test

点击播放

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • plc编程小技巧_plc编程入门培训

    plc编程小技巧_plc编程入门培训PLC是一种在工业中被广泛应用的自动控制元件。然而PLC应用与编程人才短缺已经成为制约我国自动控制领域发展的瓶颈。通过学习PLC可编程控制器程序设计使学员掌握可编程序控制器的工作原理和PLC控制系统硬件软件的设计方法,可编写复杂的PLC程序,为从事PLC控制系统的设计、调试和改造工作打下基础。可以独立承担相关项目的设计与开发。让您由一位电工升级为货真价实的工程师![1]随着现代工业设备自动化,越来越多的工厂设备将采用PLC人机界面等自动化器件来控制,因此设备自动化程度越来越高。对设备的维护人员的技术要求越

    2025年10月4日
    2
  • Java 多线程(超详细)

    Java 多线程(超详细)多线程学习思路:为什么学习线程?为了解决CPU利用率问题,提高CPU利用率。=》什么是进程?什么是线程?=》怎么创建线程?有哪几种方式?有什么特点?=》分别怎么启动线程?=》多线程带来了数据安全问题,该怎么解决?=》怎么使用synchronized(同步)决解?=》使用同步可能会产生死锁,该怎么决解?=》线程之间是如何通信的?=》线程有返回值吗?该如何拿到?=》怎么才能一次性启动几百上千个的线程?线程的概念什么是进程进程是操作系统中正在执行的不同的应用程序,例如:我

    2022年7月9日
    22
  • Java8新特性之Lambda表达式

    Java8新特性之Lambda表达式Lambda 目录前言一 Lambda 表达式有哪些语法 1 1 语法一 无参数 无返回值 1 2 语法二 有一个参数 并且无返回值 1 3 语法三 有两个以上的参数 有返回值 并且 Lambda 体中有多条语句 1 4 语法四 若 Lambda 体中只有一条语句 return 和大括号都可以省略不写 1 5 语法五 Lambda 表达式的参数列表的数据类型可以省略不写 因为 JVM 编译器通过上下文推断出 数据类型 即 类型推断 二 Lambda 表达式结构 三 函数式接口 3 1 在函数式接口上使用 lamb

    2026年1月17日
    2
  • phpstorm2021.4.13激活码【在线破解激活】

    phpstorm2021.4.13激活码【在线破解激活】,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月16日
    49
  • pycharm 程序调试快捷键「建议收藏」

    pycharm 程序调试快捷键「建议收藏」pycharm程序调试快捷键stepinto(F5):进入子函数,不管是遇到系统的子函数还是自己写的子函数,都会进入。stepover(F6):进入子函数,跳过系统的子函数而只进入自己写的子函数stepintomycode(Alt+shift+F7):跳过所有子函数runtocursor(Ctrl+R):运行到光标所在处resumeprogram(F9):运行到下一个断点(程序运行过程中依然可以添加断点)…

    2022年8月25日
    9
  • JAVA 取余 余数「建议收藏」

    JAVA 取余 余数「建议收藏」在java中%的含义为取余。java:a%b数学公式a%b=a-(a/b)*b

    2022年4月30日
    89

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号