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 info
 will 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如果出现如下错误,将端口号改到1024以后的端口例如8090,修改文件/usr/local/nginx/conf/nginx.conf
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:
播放地址同推流地址一样

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux性能调优技术概览

Linux性能调优技术概览 概述 这里的Linux性能调优主要是关于Linux系统上程序的性能跟踪,因为只有收集到足够的准确的性能数据才能找到程序和系统的性能瓶颈。Linux性能调优的原理、框架、工具等内容包括三个方面: 信息源 通常是以“事件”的形式&#…

X86汇编语言:从实模式到保护模式(代码+注释)--c10、11(保护模式:32位x86处理器编程架构+进入保护模式)

保护模式:32位x86处理器编程架构 IA-32架构的基本执行环境 寄存器扩展 通用寄存器(32):EAX EBX ECX EDX ESI EDI EBP ESP 指令寄存器(32):EIP 标志寄存器(32)&#xff…

Hive学习新天地一站式掌握Hive技能,让你成为大数据领域的佼佼者!

介绍:Hive是一个构建在Hadoop顶层的数据仓库工具,起源于Facebook为了解决海量数据的统计分析需求。它能够将结构化的数据文件映射为一张数据库表,并提供类似于SQL的查询功能,可以将SQL语句转换为MapReduce任务进行运行。 Hive的出…

【企业转型】以企业架构为中心的SABOE数字化转型五环法

01 传统企业数字化转型面临诸多挑战 即将过去的2023年,chatGPT大模型、数据资产入表等事件的发生,标志着数字经济正在加速发展。数字经济是人类社会继农业经济、工业经济之后的第三种经济形态,将推动生产方式、生活方式和治理方式深刻变革&a…

21.Servlet 技术

JavaWeb应用的概念 在Sun的Java Servlet规范中,对Java Web应用作了这样定义:“Java Web应用由一组Servlet、HTML页、类、以及其它可以被绑定的资源构成。它可以在各种供应商提供的实现Servlet规范的 Servlet容器 中运行。” Java Web应用中可以包含如下…

教师退休享受国家规定的什么待遇

作为一名教师,一直致力于为学生提供最好的教育服务。然而,随着时间的推移,我们的身体和精力可能会逐渐下降,最终不得不退休。 那么,教师退休后可以享受哪些待遇呢?根据我所了解的情况,以下是一些…

2023本四前端社招面经

美团 全程问项目,根据项目提问,SEO优化方案,还出了一道动态规划的题 SEO优化方案 一、内部优化 META 标签优化:例如:TITLE,KEYWORDS,DESCRIPTION (TDK)等的优化 内部链接…

窗口看门狗和独立看门狗的异同

场景:工业自动化控制器 1. 独立看门狗的应用: 要求: 在一个工业自动化控制器中,需要确保周期性任务能够按时完成。在这个场景中,如果周期性任务在规定的时间内没有完成,可能会导致系统的不稳定。 实现&am…

黑皮诺、白皮诺与灰皮诺各自的特点?

黑皮诺在所有葡萄品种中被誉为的“公主般娇弱的身子却有着皇后的命”,被众多酿酒师认为是最娇弱又最名贵的葡萄品种。云仓酒庄的品牌雷盛红酒LEESON分享这么受欢迎的葡萄品种还有两个同样气质出众的妹妹,分别是灰皮诺和白皮诺。只是姐姐黑皮诺的名气实在…

【Python】人工智能-机器学习——不调库手撕贝叶斯分类问题

1. 作业内容描述 1.1 背景 数据集大小150该数据有4个属性,分别如下 Sepal.Length:花萼长度(cm)Sepal.Width:花萼宽度单位(cm)Petal.Length:花瓣长度(cm)Petal.Width:花瓣宽度(cm)category:类别&#xff0…

GNSS定位中常见的几大坐标系统及其相互转换

目录 一、坐标系概念 二、常见的几大坐标系统 1.ECEF坐标系 2.ENU坐标系 3.LLA坐标系 4.三个坐标系之间的相互转化关系 (1)LLA坐标系转ECEF坐标系 (2)ECEF坐标系转LLA坐标系 (3)ECEF坐标系转ENU坐标系 (4)ENU坐标系转ECEF坐标系 (5)LLA坐标系转ENU坐标系 (6)ENU坐标…

Linux下Netty实现高性能UDP服务

前言 近期笔者基于Netty接收UDP报文进行业务数据统计的功能,因为Netty默认情况下处理UDP收包只能由一个线程负责,无法像TCP协议那种基于主从reactor模型实现多线程监听端口,所以笔者查阅网上资料查看是否有什么方式可以接收UDP收包的性能瓶颈…

Jenkins配置代理节点时遇到的坑和解决办法

需求:服务器太满了,需要找个比较空闲的机器分担一下,看上了同网络的某开会用的笔记本,把这个本本利用起来能跑一个算一个。 但配置起来并不容易,遇到的问题有些网上也几乎找不到答案。这里记录一下能救一个是一个&…

STP原理与配置

为了提高网络可靠性,交换网络中通常会使用冗余链路。然而,冗余链路会给交换网络带来环路风险,并导致广播风暴以及MAC地址表不稳定等问题,进而会影响到用户的通信质量。生成树协议STP(Spanning Tree Protocol&#xff0…

【深度学习目标检测】九、基于yolov5的路标识别(python,目标检测)

YOLOv5是目标检测领域一种非常优秀的模型,其具有以下几个优势: 1. 高精度:YOLOv5相比于其前身YOLOv4,在目标检测精度上有了显著的提升。YOLOv5使用了一系列的改进,如更深的网络结构、更多的特征层和更高分辨率的输入图…

VSCode 配置自动生成头文件

相关文章 VSCode 开发C/C实用插件分享——codegeex VSCode 开发C/C实用插件分享——koroFileHeader VSCode 配置自动生成头文件 一、snippets二、配置步骤三、效果展示 一、snippets 相信大家对C、C都头文件都不陌生,都会发现每个头文件都会包括下面的这些格式&…

【PostgreSQL】从零开始:(三)PgAdmin4下载与安装

【PostgreSQL】从零开始:(三)PgAdmin4下载与安装 pgAdmin简介liunx下部署通过yum部署pgAdmin4(6.21)1.安装依赖包2.永久停止防火墙3.配置pgadmin4项目源4.下载并安装pgAdmin45.执行初始化命令6.访问我们的网站 liunx下通过python方…

思码逸企业版 4.0 特性之三:研发效能数据的智能化分析与解读

建立研发效能体系,数据的收集与清理并建立指标体系只是第一步,如果不针对这些指标采集到的数据进行分析,那就无法做到研发效能度量闭环,那么指标体系也就毫无意义。所以研发效能分析在整个研发效能改进闭环中占据非常重要的一环。…

前端开发中的webpack打包工具

前端技术发展迅猛,各种可以提高开发效率的新思想和框架层出不穷,但是它们都有一个共同点,即源代码无法直接运行,必须通过转换后才可以正常运行。webpack是目前主流的打包模块化JavaScript的工具之一。 本章主要涉及的知识点有&am…

算法-动态规划

动态规划算法 应用场景-背包问题 介绍 动态规划(Dynamic Programming)算法的核心思想是:将大问题划分为小问题进行解决,从而一步步获取最优解的处理算法动态规划算法与分治算法类似,其基本思想也是将待求解问题分解成若干个子问题&#xff0…