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

nginx-rtmp服务器搭建

音视频服务器搭建

本文采用 nginx/1.18.0nginx-rtmp-module模块源代码搭建RTMP流媒体服务器

流程

  1. 查看当前服务器的nginx版本
  2. 下载nginx和nginx-rtmp-module源代码
  3. 重新编译nginx,并进行相关配置(nginx.conf、防火墙等)
  4. 客户端测试连接
  5. 测试搭建的直播与点播功能

查看当前nginx版本,并下载对应的源代码

  • nginx版本:nginx -V

    image-20241221112103292

  • 下载对应源码:将以下两个文件安装到同一个路径下(如新建一个/cml路径)

    • 下载nginx源码:wget http://nginx.org/download/nginx-1.18.0.tar.gztar -zxvf nginx-1.18.0.tar.gz
    • 下载nginx-rtmp-module模块源码:git clone https://github.com/arut/nginx-rtmp-module.git

image-20241221114437978

重新编译并配置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目录

    image-20241221133824897

  • 配置nginx.conf文件

    image-20241221133920334

    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

      出现以下画面则服务器搭建成功。

      image-20241221134407680

    • 如果出现以下错误:

      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流到服务器

    image-20241221134716141

    推送成功

    image-20241221135109676

    测试rtmp服务器的点播效果

    在系统中准备好测试的点播文件

    image-20241221135506356

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

image-20241221135712904

参考文献

[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&#xff0c;划分成两个字序列 A , B A,B A,B&#xff0c;其中惩罚是 A , B A,B A,B之中&#xff0c; 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&#xf…...

Pion WebRTC 项目教程

Pion WebRTC 项目教程 webrtc Pure Go implementation of the WebRTC API [这里是图片001] 项目地址: https://gitcode.com/gh_mirrors/we/webrtc 1. 项目目录结构及介绍 Pion WebRTC 项目的目录结构如下&#xff1a; pion/webrtc ├── api ├── examples ├── inter…...

【安全编码】Web平台如何设计防止重放攻击

我们先来做一道关于防重放的题&#xff0c;答案在文末 防止重放攻击最有效的方法是&#xff08; &#xff09;。 A.对用户密码进行加密存储使用 B.使用一次一密的加密方式 C.强制用户经常修改用户密码 D.强制用户设置复杂度高的密码 如果这道题目自己拿不准&#xff0c;或者…...

VUE3+django接口自动化部署平台部署说明文档(使用说明,需要私信)

网址连接&#xff1a;http://118.25.110.213:5200/#/login 账号/密码&#xff1a;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 爬虫展开&#xff0c;包括四个章节。第一章从 Python 爬虫入门&#xff0c;涵盖爬虫概念、Requests 爬取、Xpath 解析、数据保存及入库等知识&#xff0c;并结合知乎、豆瓣、淘宝等案例讲解浏览器抓包及 Selenium 爬取动态网页。第二章介绍 Scrapy 框架&…...

保姆级教程Docker部署RabbitMQ镜像

目录 1、安装Docker及可视化工具 2、创建挂载目录 3、运行RabbitMQ容器 4、Compose运行RabbitMQ容器 5、开启界面插件 6、查看RabbitMQ运行状态 7、常见问题处理 1、安装Docker及可视化工具 Docker及可视化工具的安装可参考&#xff1a;Ubuntu上安装 Docker及可视化管理…...

【RAII | 设计模式】C++智能指针,内存管理与设计模式

前言 nav2系列教材&#xff0c;yolov11部署,系统迁移教程我会放到年后一起更新&#xff0c;最近年末手头事情多&#xff0c;还请大家多多谅解。 上一节我们讲述了C移动语义相关的知识&#xff0c;本期我们来看看C中常用的几种智能指针&#xff0c;并看看他们在设计模式中的运…...

Linux复习3——管理文件系统2

修改文件权限命令 chmod 功能&#xff1a; chmod 命令主要用于修改文件或者目录的权限 只有文件所有者和超级用户可以修改文件或目录的权限 (1)使用数字表示法修改权限 所谓数字表示法是指将读取(r)、写入(w)和执行(x)分别以4、2、1来表示&#xff0c;没有授予的部分就表示…...

c++---------数据类型

基本数据类型 整数类型&#xff08;Integral Types&#xff09; int&#xff08;整型&#xff09; 这是最常用的整数类型&#xff0c;通常用于存储一般范围的整数值。在32位系统中&#xff0c;int类型一般占用4个字节&#xff0c;取值范围大约是 - 2147483648到2147483647。例如…...

python-langchain框架(3-9-word文档加载 )

二、基于 LangChain 的功能亮点1. 原生 LangChain 组件&#xff0c;开箱即用直接使用 LangChain 社区提供的专业文档加载器&#xff0c;属于框架原生支持能力&#xff0c;无需自己编写解析逻辑&#xff0c;与 LangChain 整个 AI 开发生态无缝衔接。2. 纯文本精准提取&#xff0…...

狩猎之眼:用数据透视你的怪物猎人世界

狩猎之眼&#xff1a;用数据透视你的怪物猎人世界 【免费下载链接】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参数的多模态大模型塞进嵌入式设备&#xff1f;这听起来像是天方夜谭&#xff0c;但通过巧妙的轻量化技术&#xff0c;我们确实能让Qwen3-VL在资源受限的环境中运行起来。 1. 为什么要在嵌入式系统部署大模型&#xff1f; 你可…...

3个关键优化:如何让Stable Diffusion模型在普通硬件上流畅运行?

3个关键优化&#xff1a;如何让Stable Diffusion模型在普通硬件上流畅运行&#xff1f; 【免费下载链接】chilloutmix_NiPrunedFp32Fix 项目地址: https://ai.gitcode.com/hf_mirrors/emilianJR/chilloutmix_NiPrunedFp32Fix 你是否曾经尝试运行Stable Diffusion模型&a…...

res-downloader:多源媒体捕获与智能管理的跨平台资源获取工具

res-downloader&#xff1a;多源媒体捕获与智能管理的跨平台资源获取工具 【免费下载链接】res-downloader 视频号、小程序、抖音、快手、小红书、直播流、m3u8、酷狗、QQ音乐等常见网络资源下载! 项目地址: https://gitcode.com/GitHub_Trending/re/res-downloader 在数…...

机器翻译大揭秘:电脑是如何学会“说人话”的?

&#x1f4dd; 想获取更多技术干货&#xff1f;欢迎关注我的微信公众号【小布的学习手记】&#xff0c;第一时间获取最新文章和学习资源&#xff01; 版权声明&#xff1a;本文同步发布于个人博客。欢迎交流与转载&#xff0c;但请务必注明出处。 你是否想过&#xff0c;当你按…...

BilibiliDown终极指南:3步轻松下载B站视频的完整教程

BilibiliDown终极指南&#xff1a;3步轻松下载B站视频的完整教程 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader &#x1f633; 项目地址: https://gitcode.com/gh_mirrors/bi…...

3步掌握Blender 3MF插件:轻松实现3D打印文件无缝导入导出

3步掌握Blender 3MF插件&#xff1a;轻松实现3D打印文件无缝导入导出 【免费下载链接】Blender3mfFormat Blender add-on to import/export 3MF files 项目地址: https://gitcode.com/gh_mirrors/bl/Blender3mfFormat 想要在Blender中直接处理3D打印文件吗&#xff1f;B…...

Unity托管堆内存优化实战:如何避免频繁GC引发的性能卡顿

1. 为什么你的Unity游戏会卡顿&#xff1f;GC是罪魁祸首 刚做完的Unity游戏明明跑得好好的&#xff0c;一到真机上就出现迷之卡顿&#xff1f;特别是场景切换或者特效爆发时&#xff0c;画面突然卡住0.5秒&#xff1f;这很可能就是垃圾回收&#xff08;GC&#xff09;在搞鬼。…...

新手前端开发入门:借助快马AI从零理解小恐龙游戏代码逻辑

今天想和大家分享一个特别适合前端新手的练手项目——用HTML、CSS和JavaScript实现一个简易的小恐龙游戏。这个项目结构清晰&#xff0c;能帮助我们快速理解前端三件套的协作方式。最近我在InsCode(快马)平台上尝试了这个项目&#xff0c;发现它的AI辅助功能对新手特别友好。 项…...