当前位置: 首页 > ops >正文

Ubuntu中使用nginx-rtmp-module实现视频点播

Ubuntu下安装nginx-rtmp-module

1下载源代码

1.1 下载nginx-rtmp-module源码

首先建立一个目录

# 切换到用户主目录
cd ~
# 创建新目录
mkdif nginx

下载nginx-rtmp-module源码

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

1.2 下载nginx源码

网上大部分资料是1.13.4的版本,编译时可能报错

src/os/unix/ngx_user.c:36:7: error: ‘struct crypt_data’ has no member named ‘current_salt

改为最新的1.29.1版本,可以避免报错:

# 下载nginx
wget https://nginx.org/download/nginx-1.29.1.tar.gz
# 解压缩
tar -zxvf nginx-1.29.1.tar.gz

2 安装nginx

2.1 配置

# 切换至nginx目录
cd nginx-1.29.1
# 配置编译信息
./configure --add-module=../nginx-rtmp-module --with-http_ssl_module

需要依赖包,根据提示信息分别执行相应的命令安装依赖包:

  1. gcc

./configure: error: C compiler cc is not found

sudo apt-get install gcc
  1. openssl

./configure: error: SSL modules require the OpenSSL library.
You can either do not enable the modules, or install the OpenSSL library
into the system, or build the OpenSSL library statically from the source
with nginx by using --with-openssl= option.

sudo apt-get install openssl libssl-dev
  1. gzip

./configure: error: the HTTP gzip module requires the zlib library.
You can either disable the module by using --without-http_gzip_module
option, or install the zlib library into the system, or build the zlib library
statically from the source with nginx by using --with-zlib= option.

sudo apt-get install zlib1g-dev

2.2 编译

依次运行以下命令

make
make install

若未安装make,可能提示

makeCommand ‘make’ not found

运行以下命令安装相应工具

sudo apt-get install build-essential

3 启动nginx

命令行输入

# 切换至nginx目录
cd /usr/local/nginx/sbin
# 启动nginx
sudo ./nginx

在浏览器中输入http://localhost,看到启动画面,启动成功。
在这里插入图片描述

4 配置rtmp

打开nginx.conf配置文件

# 切换目录
cd /usr/local/nginx/conf
# 备份配置文件
sodu cp nginx.conf nginx.conf.bak
# vim编辑配置
sudo vim nginx.conf

进入vim编辑界面后,按i键进入编辑模式,通过键盘操作,在配置文件的events和http项之间增加rtmp项:

events {worker_connections  1024;
}rtmp {                      #RTMP服务server {listen 1935;            # 服务端口chunk_size 4096;        # 数据传输块的大小application vod {play /opt/video/vod;  # 视频文件存放位置}}
}http {include       mime.types;default_type  application/octet-stream;

在这里插入图片描述

编辑完成后按ESC,再输入
:wq!

回车后即保存了修改内容并退出vim界面。

保存后,可在命令行输入:

sudo /usr/local/nginx/sbin/nginx -t
测试配置文件。测试成功后,重启nginx:
sudo ./sbin/nginx -s reload

5 准备视频文件和播放器

5.1 视频文件

在配置文件中设置了一个路径/opt/video/vod用于存放要点播的视频文件(不确定是否只能是这个路径,测试/home下的目录点播时都提示找不到视频),首先创建这个路径

# 添加目录
sudo mkdir /opt/video
sudo mkdir /opt/video/vod
# 修改目录权限
sudo chmod 777 /opt/video/vod

准备一个视频文件如.mp4拷贝至/opt/video/vod下。

5.2 准备流媒体播放器

一般使用VLC,可以直接通过源安装

sudo apt install vlc

安装完成后,在Ubuntu左下角的Show Apps图标点击后找到VLC打开
在这里插入图片描述

点击菜单Media-Open Network Stream,在输入URL的文本框中输入rtmp://localhost:1935/vod/1.mp4

rtmp://localhost:1935/vod/1.mp4

其中localhost是默认本地的地址,1935是在配置文件中listen项设置的端口,vod对应配置文件中application vod的应用名称,1.mp4是视频文件的名称。

在这里插入图片描述

在对话框中点击Play,能够看到视频,说明配置成功。

http://www.xdnf.cn/news/19975.html

相关文章:

  • mac 安装 nginx
  • Day36 TCP客户端编程 HTTP协议解析 获取实时天气信息
  • 如何选择适合的实验室铸铁地板和铸铁试验平板?专业人士帮助指南
  • 【开题答辩全过程】以 基于Android的点餐系统为例,包含答辩的问题和答案
  • 《sklearn机器学习——多标签排序指标》
  • Conda 使用py环境隔离
  • 新后端漏洞(上)- H2 Database Console 未授权访问
  • 高级RAG策略学习(四)——上下文窗口增强检索RAG
  • 耐达讯自动化RS485与Profinet双向奔赴,伺服驱动器连接“稳稳拿捏”
  • 第24节:3D音频与空间音效实现
  • 如何使用宝塔API批量操作Windows目录文件:从获取文件列表到删除文件的完整示例
  • 【第三方网站测试:WEB安全测试中HTTP响应头安全配置的检测的几个要点】
  • 【Web安全】命令注入与代码注入漏洞解析及安全测试指南
  • 极致效率:用 Copilot 加速你的 Android 开发
  • Linux内核网络安全序列号生成机制解析
  • 复合机器人能否更换末端执行器?
  • threejs入门学习日记
  • 分布式微服务--ZooKeeper作为分布式锁
  • Spring如何解决循环依赖:深入理解三级缓存机制
  • Android13 系统源码核心目录解析
  • css margin外边距重叠/塌陷问题
  • AI时代企业获取精准流量与实现增长的GEO新引擎
  • Android14实现Settings左右分屏显示的 代码修改
  • 智能相机还是视觉系统?一文讲透工业视觉两大选择的取舍之道
  • MCP驱动企业微信智能中枢:企业级机器人服务构建全攻略
  • 嘎嘎厉害!耐达讯自动化RS485转Profinet网关就是食品温控的“天选之子”
  • vscode连接SSH
  • 25高教社杯数模国赛【C题超高质量思路+可运行代码】第十弹
  • PostgreSQL15——DML 语句
  • jodconverter将word转pdf底层libreoffice的问题