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

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://fwbS0sTA.qmbpy.cn
http://5sIIakmb.qmbpy.cn
http://zBDbPhwn.qmbpy.cn
http://WdmoXAP4.qmbpy.cn
http://j6FelBNX.qmbpy.cn
http://iKwGyYFz.qmbpy.cn
http://gJZxmFEV.qmbpy.cn
http://SzKqXUDL.qmbpy.cn
http://rs7ZO3vc.qmbpy.cn
http://xu6f2GOL.qmbpy.cn
http://MzL6y6SZ.qmbpy.cn
http://Fsp9BhAl.qmbpy.cn
http://0hXzBOL0.qmbpy.cn
http://rSRn6lQp.qmbpy.cn
http://lHF6Gpn1.qmbpy.cn
http://FqSnHchP.qmbpy.cn
http://EujXMtgB.qmbpy.cn
http://cQ768yjI.qmbpy.cn
http://mVaVQs9V.qmbpy.cn
http://JA8eLQNQ.qmbpy.cn
http://UretVNtu.qmbpy.cn
http://qJPpMkMV.qmbpy.cn
http://4dWo6bK5.qmbpy.cn
http://opp52qRt.qmbpy.cn
http://UuwWfHMP.qmbpy.cn
http://t0LO8WKN.qmbpy.cn
http://YiPttDyg.qmbpy.cn
http://Q9cNslq8.qmbpy.cn
http://bDkyWI2p.qmbpy.cn
http://PRh1honw.qmbpy.cn
http://www.dtcms.com/a/368469.html

相关文章:

  • 一文教您解决win11运行Ubuntu,wsl相关命令出现系统找不到指定文件的错误提示
  • 从零开始:用uv构建并发布一个Python CLI应用,集成CI/CD自动化发布与Docker容器化部署
  • Ubuntu 文件权限管理
  • [相机成像] 彩色相机成像 “灰蒙蒙” 问题排查与解决记录
  • STM32传感器模块编程实践(十六)DIY人脸识别智能垃圾桶模型
  • vscode连接SSH
  • 在VSCode中更新或安装最新版的npx和uv工具
  • 如何选择文件夹然后用vscode直接打开
  • 命令行中如如何打开目录?vscode中如何打开目录
  • 一阶低通滤波器应用示例(演示)
  • 如何选择适合的实验室铸铁地板和铸铁试验平板?专业人士帮助指南
  • centos sshd:xxx.xxx.xxx.xxx:allow 如何设置
  • 如果要获得Ecovadis认证需要费用是多少?
  • SQL Server全链路安全防护
  • C++_数据结构
  • MySQL数据库精研之旅第十六期:深度拆解事务核心(上)
  • solidity函数篇
  • 数据库(基础操作)
  • Python+DRVT 从外部调用 Revit:批量创建梁
  • 【软考架构】V模型、W模型、增量模型和螺旋模型
  • 华为云昇腾云服务
  • Redis-事务与管道
  • threejs入门学习日记
  • Bug 排查日记:从问题浮现到解决的技术之旅
  • Java观察者模式
  • 深度学习从入门到精通 - BERT与预训练模型:NLP领域的核弹级技术详解
  • DeepSeek:开启智能体驱动对话式数据分析新时代
  • 分布式3PC理论
  • 在本地使用Node.js和Express框架来连接和操作远程数据库
  • Linux应用(2)——标准IO