nginx-rtmp服务器搭建
音视频服务器搭建
本文采用
nginx/1.18.0和nginx-rtmp-module模块源代码搭建RTMP流媒体服务器
流程
- 查看当前服务器的nginx版本
- 下载nginx和nginx-rtmp-module源代码
- 重新编译nginx,并进行相关配置(nginx.conf、防火墙等)
- 客户端测试连接
- 测试搭建的直播与点播功能
查看当前nginx版本,并下载对应的源代码
-
nginx版本:
nginx -V
-
下载对应源码:将以下两个文件安装到同一个路径下(如新建一个/cml路径)
- 下载nginx源码:
wget http://nginx.org/download/nginx-1.18.0.tar.gz、tar -zxvf nginx-1.18.0.tar.gz - 下载nginx-rtmp-module模块源码:
git clone https://github.com/arut/nginx-rtmp-module.git
- 下载nginx源码:

重新编译并配置nginx
-
进入nginx-1.18目录,执行configure可执行文件
./configure --prefix=/home/ubuntu/cml/nginx-1.18.0/build --add-module=/home/ubuntu/cml/nginx-rtmp-module参数说明:
第一个参数
--prefix=/home/ubuntu/cml/nginx-1.18.0/build指明安装路径第二个参数
--add-module=/home/ubuntu/cml/nginx-rtmp-module指明导入的模块再执行
make install指令生成build目录
-
配置nginx.conf文件

rtmp {server {listen 1935;chunk_size 4096;# live onapplication rtmp_live {live on;# hls on; #这个参数把直播服务器改造成实时回放服务器。# wait_key on; #对视频切片进行保护,这样就不会产生马赛克了。# hls_path ./sbin/html; #切片视频文件存放位置。# hls_fragment 10s; #每个视频切片的时长。# hls_playlist_length 60s; #总共可以回看的时间,这里设置的是1分钟。# hls_continuous on; #连续模式。# hls_cleanup on; #对多余的切片进行删除。# hls_nested on; #嵌套模式。}# play videosapplication rtmp_play{play ./videos; #build directory}} } -
启动nginx服务
sudo ./sbin/nginx -
打开端口防火墙
sudo ufw allow 1935/tcp -
通过ffmpeg客户端命令测试服务器是否搭建成功
-
ffmpeg -i test.flv -vcodec libx264 -acodec aac -f flv rtmp://8.134.156.7:1935/rtmp_live/mystream出现以下画面则服务器搭建成功。

-
如果出现以下错误:
Connection to tcp://8.134.156.7:1935 failed: Error number -138 occurred [rtmp @ 00000202d836e940] Cannot open connection tcp://8.134.156.7:1935 rtmp://8.134.156.7:1935/rtmp_live/mystream: Unknown error
请再度检查防火墙是否开放该端口,或再次重启nginx服务
systemctl status nginx
测试服务器直播效果
打开
VLC视频测试工具,选择媒体->打开网络串流 -> 输入网络地址 rtmp://xxx.xxx.xxx:1935/rtmp_live/mystream*,再客户端推送rtmp流到服务器
推送成功

测试rtmp服务器的点播效果
在系统中准备好测试的点播文件

-
打开网络流:rtmp://xxx.xxx.xxx:1935/rtmp_play/test.flv,点播打开成功。

参考文献
[1] https://mp.weixin.qq.com/s/axPKe2m2Cn6W17v56j-UQQ
[2] 视频教程
[3] https://www.cnblogs.com/Naylor/p/18070047
相关文章:
nginx-rtmp服务器搭建
音视频服务器搭建 本文采用 nginx/1.18.0和nginx-rtmp-module模块源代码搭建RTMP流媒体服务器 流程 查看当前服务器的nginx版本下载nginx和nginx-rtmp-module源代码重新编译nginx,并进行相关配置(nginx.conf、防火墙等)客户端测试连接测试搭…...
[c++进阶(三)]单例模式及特殊类的设计
1.前言 在实际场景中,总会遇见一些特殊情况,比如设计一个类,只能在堆上开辟空间, 或者是设计一个类只能实例化一个对象。那么我们应该如何编写代码呢?本篇将会详细的介绍 本章重点: 本篇文章着重讲解如何设计一些特殊 的类,包括不能被拷贝,只能在栈/堆上…...
企业内训|高智能数据构建和多模态数据处理、Agent研发及AI测评技术内训-吉林省某汽车厂商
吉林省某汽车厂商为提升员工在AI大模型技术方面的知识和实践能力,举办本次为期8天的综合培训课程。本课程涵盖“高智能数据构建与智驾云多模态数据处理”、“AI Agent的研发”和“大模型测评”三大模块。通过系统梳理从非结构化数据的高效标注与融合,到L…...
009 Qt_显示类控件_QLCDNumber、ProgressBar、Calendar
文章目录 前言LCD NumberProgressBarCalendar Widget 小结 前言 本文将会向你介绍显示类控件中QLCDNumber显示数字、ProgressBar进度条、Calendar日历 LCD Number QLCDNumer 是⼀个专门用来显示数字的控件. 类似于 “老式计算器” 的效果. 属性说明intValueQLCDNumber 显示…...
--spring.profiles.active=prod
rootproduct-qualification:~# ps -ef | grep java root 5110 1 3 16:57 ? 00:00:54 java -jar productQualification.jar --spring.profiles.activeprod root 6476 5797 0 17:26 pts/0 00:00:00 grep --colorauto java好的,你使用 ps …...
深入解析JVM中对象的创建过程
1. 引言 对象是面向对象编程的核心概念之一,它们封装了数据和行为,构成了应用程序的基本构建块。然而,在Java语言中,每当使用new关键字或其他方式创建一个新对象时,背后发生了什么?这个问题的答案隐藏在JV…...
使用开源在线聊天工具Fiora轻松搭建个性化聊天平台在线交流
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家:人工智能教程 文章目录 前言1.关于Fiora2.安装Docker3.本地部署Fiora4.使用Fiora5.cpolar内网穿透工具安装6.创建远程连接公网地址7.固定Uptime …...
ffmpeg之显示一个yuv照片
显示YUV图片的步骤 1.初始化SDL库 目的:确保SDL库正确初始化,以便可以使用其窗口、渲染和事件处理功能。操作:调用 SDL_Init(SDL_INIT_VIDEO) 来初始化SDL的视频子系统。 2.创建窗口用于显示YUV图像: 目的:创建一个…...
MySQL中Performance Schema库的详解(下)
昨天说了关于SQL语句相关的,今天来说说性能相关的,如果没有看过上篇请点传送门https://blog.csdn.net/2301_80479959/article/details/144693574?fromshareblogdetail&sharetypeblogdetail&sharerId144693574&sharereferPC&sharesource…...
【Rust自学】7.1. Package、Crate和定义Module
喜欢的话别忘了点赞、收藏加关注哦,对接下来的教程有兴趣的可以关注专栏。谢谢喵!(・ω・) 7.1.1. Rust的代码组织 代码组织主要包括: 那些细节可以对外暴露,而哪些细节是私有的在作用域内哪些名称有效… …...
【Git】-- 版本说明
Alpha:是内部测试版,一般不向外部发布,会有很多 Bug .一般只有测试人员使用。Beta:也是测试版,这个阶段的版本会一直加入新的功能。在 Alpha 版之后推出。RC:(Release Candidate) 顾名思义么 ! 用在软件上就是候选版本。系统平台…...
1919C. Grouping Increases
问题描述 序列 X X X,划分成两个字序列 A , B A,B A,B,其中惩罚是 A , B A,B A,B之中, A [ i ] < A [ i 1 ] , B [ i ] < B [ i 1 ] A[i] < A[i1], B[i] < B[i1] A[i]<A[i1],B[i]<B[i1]的个数 思路 拆分 X X X…...
Pion WebRTC 项目教程
Pion WebRTC 项目教程 webrtc Pure Go implementation of the WebRTC API [这里是图片001] 项目地址: https://gitcode.com/gh_mirrors/we/webrtc 1. 项目目录结构及介绍 Pion WebRTC 项目的目录结构如下: pion/webrtc ├── api ├── examples ├── inter…...
【安全编码】Web平台如何设计防止重放攻击
我们先来做一道关于防重放的题,答案在文末 防止重放攻击最有效的方法是( )。 A.对用户密码进行加密存储使用 B.使用一次一密的加密方式 C.强制用户经常修改用户密码 D.强制用户设置复杂度高的密码 如果这道题目自己拿不准,或者…...
VUE3+django接口自动化部署平台部署说明文档(使用说明,需要私信)
网址连接:http://118.25.110.213:5200/#/login 账号/密码:renxiaoyong 1、VUE3部署本地。 1.1本地安装部署node.js 1.2安装vue脚手架 npm install -g vue/cli # 或者 yarn global add vue/cli1.3创建本地项目 vue create my-vue-project1.4安装依赖和插…...
Python爬虫(入门+进阶)
简介 围绕 Python 爬虫展开,包括四个章节。第一章从 Python 爬虫入门,涵盖爬虫概念、Requests 爬取、Xpath 解析、数据保存及入库等知识,并结合知乎、豆瓣、淘宝等案例讲解浏览器抓包及 Selenium 爬取动态网页。第二章介绍 Scrapy 框架&…...
保姆级教程Docker部署RabbitMQ镜像
目录 1、安装Docker及可视化工具 2、创建挂载目录 3、运行RabbitMQ容器 4、Compose运行RabbitMQ容器 5、开启界面插件 6、查看RabbitMQ运行状态 7、常见问题处理 1、安装Docker及可视化工具 Docker及可视化工具的安装可参考:Ubuntu上安装 Docker及可视化管理…...
【RAII | 设计模式】C++智能指针,内存管理与设计模式
前言 nav2系列教材,yolov11部署,系统迁移教程我会放到年后一起更新,最近年末手头事情多,还请大家多多谅解。 上一节我们讲述了C移动语义相关的知识,本期我们来看看C中常用的几种智能指针,并看看他们在设计模式中的运…...
Linux复习3——管理文件系统2
修改文件权限命令 chmod 功能: chmod 命令主要用于修改文件或者目录的权限 只有文件所有者和超级用户可以修改文件或目录的权限 (1)使用数字表示法修改权限 所谓数字表示法是指将读取(r)、写入(w)和执行(x)分别以4、2、1来表示,没有授予的部分就表示…...
c++---------数据类型
基本数据类型 整数类型(Integral Types) int(整型) 这是最常用的整数类型,通常用于存储一般范围的整数值。在32位系统中,int类型一般占用4个字节,取值范围大约是 - 2147483648到2147483647。例如…...
python-langchain框架(3-9-word文档加载 )
二、基于 LangChain 的功能亮点1. 原生 LangChain 组件,开箱即用直接使用 LangChain 社区提供的专业文档加载器,属于框架原生支持能力,无需自己编写解析逻辑,与 LangChain 整个 AI 开发生态无缝衔接。2. 纯文本精准提取࿰…...
狩猎之眼:用数据透视你的怪物猎人世界
狩猎之眼:用数据透视你的怪物猎人世界 【免费下载链接】HunterPie-legacy A complete, modern and clean overlay with Discord Rich Presence integration for Monster Hunter: World. 项目地址: https://gitcode.com/gh_mirrors/hu/HunterPie-legacy 当你面…...
Qwen3-VL:30B在嵌入式系统的轻量化部署方案
Qwen3-VL:30B在嵌入式系统的轻量化部署方案 将30B参数的多模态大模型塞进嵌入式设备?这听起来像是天方夜谭,但通过巧妙的轻量化技术,我们确实能让Qwen3-VL在资源受限的环境中运行起来。 1. 为什么要在嵌入式系统部署大模型? 你可…...
3个关键优化:如何让Stable Diffusion模型在普通硬件上流畅运行?
3个关键优化:如何让Stable Diffusion模型在普通硬件上流畅运行? 【免费下载链接】chilloutmix_NiPrunedFp32Fix 项目地址: https://ai.gitcode.com/hf_mirrors/emilianJR/chilloutmix_NiPrunedFp32Fix 你是否曾经尝试运行Stable Diffusion模型&a…...
res-downloader:多源媒体捕获与智能管理的跨平台资源获取工具
res-downloader:多源媒体捕获与智能管理的跨平台资源获取工具 【免费下载链接】res-downloader 视频号、小程序、抖音、快手、小红书、直播流、m3u8、酷狗、QQ音乐等常见网络资源下载! 项目地址: https://gitcode.com/GitHub_Trending/re/res-downloader 在数…...
机器翻译大揭秘:电脑是如何学会“说人话”的?
📝 想获取更多技术干货?欢迎关注我的微信公众号【小布的学习手记】,第一时间获取最新文章和学习资源! 版权声明:本文同步发布于个人博客。欢迎交流与转载,但请务必注明出处。 你是否想过,当你按…...
BilibiliDown终极指南:3步轻松下载B站视频的完整教程
BilibiliDown终极指南:3步轻松下载B站视频的完整教程 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader 😳 项目地址: https://gitcode.com/gh_mirrors/bi…...
3步掌握Blender 3MF插件:轻松实现3D打印文件无缝导入导出
3步掌握Blender 3MF插件:轻松实现3D打印文件无缝导入导出 【免费下载链接】Blender3mfFormat Blender add-on to import/export 3MF files 项目地址: https://gitcode.com/gh_mirrors/bl/Blender3mfFormat 想要在Blender中直接处理3D打印文件吗?B…...
Unity托管堆内存优化实战:如何避免频繁GC引发的性能卡顿
1. 为什么你的Unity游戏会卡顿?GC是罪魁祸首 刚做完的Unity游戏明明跑得好好的,一到真机上就出现迷之卡顿?特别是场景切换或者特效爆发时,画面突然卡住0.5秒?这很可能就是垃圾回收(GC)在搞鬼。…...
新手前端开发入门:借助快马AI从零理解小恐龙游戏代码逻辑
今天想和大家分享一个特别适合前端新手的练手项目——用HTML、CSS和JavaScript实现一个简易的小恐龙游戏。这个项目结构清晰,能帮助我们快速理解前端三件套的协作方式。最近我在InsCode(快马)平台上尝试了这个项目,发现它的AI辅助功能对新手特别友好。 项…...
