Ubuntu系统使用Nginx搭建RTMP服务器

环境:
推流端 rockpi s 主控rk3308 运行ubuntu系统
服务端 ubuntu
播放器 VLC播放器

服务端安装依赖:

apt-get install build-essential libpcre3 libpcre3-dev libssl-dev

创建nginx编译目录:

mkdir my_nginx_rtmp
cd my_nginx_rtmp/

下载 nginx与nginx-rtmp-module包:

wget http://nginx.org/download/nginx-1.21.6.tar.gz
wget https://github.com/arut/nginx-rtmp-module/archive/master.zip

解压缩:

tar -xf nginx-1.21.6.tar.gz
unzip master.zip

编译带nginx-rtmp模块的nginx:

cd nginx-1.21.6/
./configure --with-http_ssl_module --add-module=../nginx-rtmp-module-master
make j4 && make install

检查nginx是否安装完成:

/usr/local/nginx/sbin/nginx -v

将nginx添加到环境变量中:

sudo vi ~/.bashrc在最后添加:
export PATH=$PATH:/usr/local/nginx/sbin/添加完成执行source命令:
source ~/.bashrc

修改nginx的配置文件:

vim /usr/local/nginx/conf/nginx.conf在最后添加:
rtmp {server {listen 1935;chunk_size 4096;application live {live on;record off;}}
}

启动ngnix:

ngnix

查看nginx启动情况:

(base) rog@i7:~$ ps -ef | grep nginx | grep -v grep
rog      1312637    2257  0 15:51 ?        00:00:00 nginx: master process nginx
rog      1314761 1312637  0 16:01 ?        00:00:06 nginx: worker process

查看端口:

(base) rog@i7:~$ netstat -anp | grep nginx
(Not all processes could be identified, non-owned process infowill not be shown, you would have to be root to see it all.)
tcp        0      0 0.0.0.0:1935            0.0.0.0:*               LISTEN      1312637/nginx: mast
tcp        0      0 0.0.0.0:80            0.0.0.0:*               LISTEN      1312637/nginx: mast
tcp        0      0 192.168.110.30:1935     192.168.110.114:10441   ESTABLISHED 1314761/nginx: work
unix  3      [ ]         STREAM     CONNECTED     22049699 1312637/nginx: mast
unix  3      [ ]         STREAM     CONNECTED     22049700 1312637/nginx: mast

端口80是HTTP服务的默认监听端口,端口1935正是RTMP服务器的默认监听端口

遇到的问题:

 如果缺少zlib库,执行:
sudo apt-get install zlib1g-dev 找不到openssl库,在 ~/.bashrc中添加openssl库位置
export LD_LIBRARY_PATH=/home/rog/anaconda3/lib:$LD_LIBRARY_PATH   
source ~/.bashrc执行nginx如果出现如下错误,修改配置文件/usr/local/nginx/conf/nginx.conf将端口号改到1024以后的端口例如8090。
nginx: [emerg] bind() to 0.0.0.0:80 failed (13: Permission denied)  

测试:
测试视频下载地址:https://www.yingshiguang.com/

ffmpeg -re -i test2.mp4 -vcodec h264 -f flv rtmp://192.168.110.30:1935/live/1          ## X64 端本地推流
ffmpeg -re -i test.mp4 -c copy -f flv rtmp://192.168.110.30:1935/live/1                ## ARM 端推流ffmpeg -re -i /dev/video0 -vcodec h264 -f flv rtmp://192.168.110.30:1935/live/1        ## 摄像头推流
ffmpeg -i /dev/video0 -vcodec libx264 -acodec aac -tune zerolatency -f flv rtmp://192.168.110.30:1935/live/1部分参数解释:
-tune zerolatency  //设置零延时
-preset ultrafast  //--preset的参数主要调节编码速度和质量的平衡,有ultrafast(转码速度最快,视频往往也最模糊)、superfast、veryfast、faster、fast、medium、slow、slower、veryslow、placebo这10个选项,从快到慢

播放器使用VLC:
播放地址同推流地址一样

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/233006.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机网络:物理层(编码与调制)

今天又学会了一个知识,加油! 目录 一、基带信号与宽带信号 1、基带信号 2、宽带信号 3、选择 4、关系 二、数字数据编码为数字信号 1、非归零编码【NRZ】 2、曼彻斯特编码 3、差分曼彻斯特编码 4、归零编码【RZ】 5、反向不归零编码【NRZI】 …

查找Apple Watch的序列号有重要意思,主要有两种方法

如果你打算购买二手Apple Watch,你可能需要检查它的序列号或IMEI号,来确保可靠性。以下是如何从Apple Watch和iPhone中查找序列号。 在Apple Watch上查找序列号和IMEI 1、在Apple Watch上,按下手表表面的数字皇冠以打开应用程序网格或列表。…

【设计模式--行为型--访问者模式】

设计模式--行为型--访问者模式 访问者模式定义结构案例优缺点使用场景扩展分派动态分派静态分派双分派 访问者模式 定义 封装一些作用于某种数据结构中的各元素的操作,它可以在不改变这个数据结构的前提下定义作用于这些元素的新操作。 结构 抽象访问者角色&…

晶体管的工作状态判断和工作条件

晶体管是模拟电路中基础的器件,对于电子工程师来说,了解晶体管工作的条件和判断晶体管的工作状态都是非常基础的,本文将带大家一起学习或回顾一下。 一、晶体管工作的条件 1.集电极电阻Rc: 在共发射极电压放大器中,…

HPM6750系列--第十篇 时钟系统

一、目的 上一篇中《HPM6750系列--第九篇 GPIO详解(基本操作)》我们讲解了HPM6750 GPIO相关内容,在进一步讲解其他外设功能之前我们有必要先讲解一下HPM6750的时钟系统。 时钟可以说是微控制器系统中的心脏,片上外设模块必须依赖时…

爱普生手机打印助手Epson Smart Panel下载分享

新一代智能打印Epson Smart Panel为您提供一站式打印服务,人性化装机助手,智能联网,快速开启远程微信打印,全新交互式设计,打印体验焕新升级; 根据手机不同可选下列不同下载方式: 人性化智能装机…

《每天一分钟学习C语言·一》

1、转义字符:\n换行,\t前进一个tab键,\b退格键 2、八进制前面有0,%o或者%#o表示八进制,十六进制前有0X,%0x或者%#0x表示十六进制 3、%u打印无符号数,%g显示小数,类似于%f&#xff…

LibreNMS:从docker出发

引言 LibreNMS 是一个免费开源的网络监控和自动化工具,用于监视网络设备、服务器和应用程序的性能和状态。它提供了一个集中的管理平台,帮助管理员实时监控和管理整个网络基础设施。 以下是 LibreNMS 的一些主要特点和功能: 自动发现&#…

TikTok矩阵玩法分享,如何建立TikTok矩阵?

矩阵是在 TikTok 上非常常见的营销方式,很多卖家想要通过矩阵化运营快速涨粉。但要想做好TikTok矩阵,需要有明确的方向和计划。下面东哥我将分享一些做TikTok矩阵的玩法,帮助大家更好地搭建自己的TikTok矩阵。 了解TikTok矩阵 TikTok矩阵是一…

同时获取el-select的label和value

ui如下: 需求如下: 在点击确认的时候,将id和name都传给一个接口,但是ui只用展示name,name用v-model绑定给input框,但是id不知道怎么传给后端。 解决方法如下: vue中elementUi的el-select同时…

JVM-9-Class类文件的结构

Java技术能够一直保持着非常良好的向后兼容性,Class文件结构的稳定功不可没。 Class文件是一组以8个字节为基础单位的二进制流,各个数据项目严格按照顺序紧凑地排列在文件之中。 Class文件格式采用一种类似于C语言结构体的伪结构来存储数据&#xff0c…

c语言突击

一:前序 1.一个c语言程序有且只有一个main函数,是程序运行的起点! 每个c语言程序写完后,都是先编译(.c---),后链接(.obj---),最后运行(.exe&…

JAVA的三大版本

🍎个人主页 🏆​​​​​​​个人专栏:日常聊聊 ⛳️ 功不唐捐,玉汝于成 目录 前言 一、Java 二、JavaSE(Java Standard Edition) 三、JavaME(Java Micro Edition) 四、JavaE…

文件操作(下)

标题的顺序是接着之前写的,希望这篇博客对你有帮助 七. 随机读写函数 实际上,无论是读还是写,在一次调用顺序读写函数,文件指针会移到已经读过或者写过的下一个位置,从那个位置开始下一次读和写(在文件没有…

制作RK3568 ubuntu20.04桌面版镜像

平台 主控: RK3568 编译主机: Ubuntu 20.04 AMD64 目标版本: Ubuntu 20.04 概述 RK3568是极具性价比的高能国产“芯“ , 是Rockchip面向与AIOT和工业市场打造的一款高性能、低功耗、功能丰富的国产化应用处理器。采用四核64位Cortex-A55架构,主频高达2.0GHz&#x…

基于车载ESAM(ETC)系统设计(程序+原理图+PCB源文件+硬件资料+元器件清单等)方案

OBE-SAM 安全模块,通过车规 AEC-Q100 Grade1 认证。主要应用于 ETC(不停车收费)系统,内 嵌于车载设备 OBU 中。 OBE-SAM安全模块中保存了车辆相关信息,收费站出入口信息,以及交易记录等等,模块采…

MacBook磁盘清理妙招一:使用清理工具CleanMyMac X4.14.6中文版

笔记本电脑在是我们工作和生活中重要组成部分,磁盘清理是常有的事,而macbook作为其中的代表之一,也越来越受到人们的青睐。然而,如何进行macbook磁盘清理,也是许多人都会遇到的问题,特别是被提示“磁盘已满…

WeChatMsg中文版开源软件 提取导出微信聊天记录为文档-提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存

功能 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 支持导出视频、表情包 导出联系人到CSV 导出视频到HTML 导出表情包到HTML 显示和导出拍一拍等系统消息 说明 :如果出现闪退问题&#…

计算机服务器中了mkp勒索病毒怎么办,mkp勒索病毒解密恢复

在计算机技术飞速发展的今天,越来越多的企业走向了数字化办公模式,极大地方便了企业的生产运营,为企业带来了更高的效率。但网络威胁无处不在,网络威胁手段随着计算机技术的不断发展也在不断增加。近期,云天数据恢复中…

C#拼接JSON

一、业务背景 最近项目需要与U8c对接,实现增删改查,借此机会,梳理一下C#解析Json字符串的问题。 这篇文章,先以新增接口为例。 二、新增接口 查看需要传入的json格式。 拼接json,无非就是{}和[]的来回嵌套。 首先&am…