RTMP服务器搭建

1、流媒体

基本概念

流媒体(Streaming media),也叫做:流式媒体。

  • 是指将一连串的多媒体数据压缩后,经过互联网分段发送数据,在互联网上即时传输影音以供观赏的一种技术与过程
  • 此技术使得数据包可以像流水一样发送,如果不使用此技术,就必须得先下载整个媒体文件才能进行观看

流媒体的一个非常典型、火爆的应用场景:直播。近几年,直播行业是蒸蒸日上。

直播架构

下面放几张图片,简单了解一下直播技术的基本架构。

你可能会有个疑问:信令服务器是干嘛用的?用来处理分享端和观看端的一些信令指令,比如创建房间、加入房间等。

 

用文字总结一下基本流程是:

  • 分享端(比如主播) -> 产生音视频 -> 编码压缩音视频 -> 推流到服务器
  • 观看端(比如观众) -> 从服务器拉流 -> 解码解压缩音视频 -> 播放音视频

推拉流

  • 推流:通过流媒体协议,将音视频数据发送到流媒体服务器
  • 拉流:通过流媒体协议,从流媒体服务器上拉取获得音视频数据

流媒体协议

常见的流媒体协议有:RTMP、HLS等。

  • RTMP(Real-Time Messaging Protocol)译为:实时消息传输协议,由Adobe公司出品默认基于TCP的1935端口
  • HLS(HTTP Live Streaming)基于HTTP的流媒体网络传输协议,苹果公司出品参考:RFC 8216

本文主要介绍RTMP协议相关知识。

2、服务器环境

首先,要搭建好RTMP服务器环境,主要步骤如下:

  • 安装虚拟机VMWare或Parallels Desktop我这里安装的是VMWare
  • 在虚拟机上安装CentOS系统CentOS是Linux系统的一种,这里用7.6版本,建议跟我的版本保持一致
  • 在CentOS系统中安装nginxnginx-rtmp-modulenginx:一款高性能的开源web服务器nginx-rtmp-module:让nginx支持rtmp
  • 配置nginx
  • 启动nginx

安装CentOS

下载CentOS

推荐网站:centoschina,上面有CentOS的各种版本,这里下载CentOS-7-x86_64-DVD-1810.iso,大小是4G多。

安装nginx

在nginx官网下载目前最新的稳定版:nginx-1.20.1.tar.gz。

安装nginx-rtmp-module

在nginx-rtmp-module的github下载目前最新的稳定版:v1.2.2.tar.gz。

配置nginx

启动nginx

一些步骤和命令整理

  • 安装依赖
yum install -y gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel
  • 设置共享文件夹查看共享成功与否vmware-hgfsclient挂载到对应目录(这里放mnt)vmhgfs-fuse .host:/共享目录名称 /mnt/目录名称
  • 解压ngnix相关内容cp 源 目标tar -zxvf 解压文件
  • 进入nginx目录,执行configure进行配置
./configure --prefix=/usr/local/nginx --add-module=ngnix的rtmp模块目录 --with-http_ssl_module
  • 修改nginx配置

vim conf/nginx.conf

rtmp {      
    server {    
        listen 1935; # 端口
        chunk_size 4000;     
        application live { # 请求路径
            live on;     
        }   
    }   
}
  • 配置PATH

export PATH=$PATH:/usr/local/nginx/sbin

  • 启动nginx

nginx

  • 查看

端口占用:lsof -i:1935杀死进程:kill -9 pid

  • 如果远程连接不上rtmp服务器,有可能是因为防火墙把1935端口关掉了
# 查看端口情况(返回no代表被关闭了)
firewall-cmd --query-port=1935/tcp
 
# 拿到zone名称(一般是public)
firewall-cmd --get-active-zones
 
# 打开端口
firewall-cmd --zone=public --add-port=1935/tcp --permanent
 
# 重启防火墙(再次查看端口情况,应该会返回yes了)
firewall-cmd --reload
  • ffmpeg推流
ffmpeg -i xx.mp4 -f flv rtmp://ip地址:1935/live/xx
  • ffmpeg拉流
ffplay rtmp://ip地址:1935/live/xx

本文福利, 免费领取C++音视频学习资料包+学习路线大纲、技术视频/代码,内容包括(音视频开发,面试题,FFmpeg ,webRTC ,rtmp ,hls ,rtsp ,ffplay ,编解码,推拉流,srs),有需要的可以进企鹅裙927239107领取哦~

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

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

相关文章

13.Oracle通过JDBC连接Java

Oracle通过JDBC连接Java 一、什么是JDBC二、Oracle通过JDBC连接Java1、导入jar包1.1 下载jar包1.2 将jar包导入到java项目中1.3编译jar包 2、连接数据库2.1 编写jdbc工具类2.2 对数据进行基本操作 一、什么是JDBC JDBC(Java Database Connectivity)是Jav…

深度学习YOLO安检管制物品识别与检测 - python opencv 计算机竞赛

文章目录 0 前言1 课题背景2 实现效果3 卷积神经网络4 Yolov55 模型训练6 实现效果7 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 **基于深度学习YOLO安检管制误判识别与检测 ** 该项目较为新颖,适合作为竞赛课题方向&…

跨越边界:虚拟直播间席卷各行业领域,引爆下一代直播风暴

随着直播的发展和元宇宙概念浪潮的快速席卷,虚拟直播正在成为当下备受瞩目的热门直播形式。各个领域和品类都开始打造虚拟直播间,并展现出了迅猛的增长势头。接下来就带大家看看vLive虚拟直播在各个领域中的应用及其成功案例。 目前常见的虚…

Android App 启动流程学习

App启动 壹、App启动流程图贰、流程图详细解读2.1、系统操作Zygote 进程的孵化应用资源和类加载App在启动后立即显示应用的空白启动窗口创建应用进程 2.2、进程开始步骤3、ActivityThread 被加载到内存中步骤3.2、ActivityThread.main()步骤4、ActivityManagerService.attachAp…

事务死锁排查

记一次 事务死锁的排查过程 首先使用 SELECT * FROM INFORMATION_SCHEMA.INNODB_TRX;可以查看当前数据库所有事务状态 使用 SHOW ENGINE INNODB STATUS可以查看一些事务状态 可以看出 trxId 565678168 锁住了 invoice表, 使用命令杀掉对应mysql线程&#xff0…

高标准农田数字孪生

高标准农田是指通过土地整治、土壤改良、水利设施、农电配套、机械化作业等措施,提升农田质量和生产能力,达到田块平整、集中连片、设施完善、节水高效、宜机作业、土壤肥沃、生态友好、抗灾能力强、与现代农业生产和经营方式相适应的旱涝保收、稳产高产…

element-china-area-data插件vue3做省市区的下拉选择,用3个独立的el-select实现

第1版,选择下拉没有优化 第2版,选择下拉时,做了优化

接口测试到底怎么做,5分钟时间看完这篇文章彻底搞清楚

01、通用的项目架构 02、什么是接口 接口:服务端程序对外提供的一种统一的访问方式,通常采用HTTP协议,通过不同的url,不同的请求类型(GET、POST),不同的参数,来执行不同的业务逻辑。…

代码随想录算法训练营第五十六天 | LeetCode 647. 回文子串、516. 最长回文子序列、动态规划总结

代码随想录算法训练营第五十六天 | LeetCode 647. 回文子串、516. 最长回文子序列、动态规划总结 文章链接:回文子串、最长回文子序列、动态规划总结 视频链接:回文子串、最长回文子序列 1. LeetCode 647. 回文子串 1.1 思路 本题是给个字符串 s 求里面…

浏览器插件在content_script和top窗口之间进行消息通信

为什么要进行消息通信? content_script和top窗口之间除了DOM共享之外,window对象是不共享的。如果content_script需要获得top窗口中window对象的数据,就需要使用到通信。反之,也是相同的情况。 1、自定义监听事件(推荐…

装机必备!这5款免费软件,你值得拥有!

​ 目前win7渐渐退出视野,大部分人都开始使用win10了,笔者在日常的工作和使用中,为了能够让效率的大提升,下载了不少软件,以下的软件都是个人认为装机必备,而且都是可以免费下载。 1.屏幕亮度调节——Twin…

运维知识点-Windows操作系统cmd/Dos批处理命令与脚本手册bat

Windows操作系统命令与脚本总结 管理员权限:添加账号并加入管理员组添加用户至远程桌面组允许修改密码 防火墙 :关闭防火墙 匹配出注册表信息中的软件:获取完整补丁信息(比systeminfo全):获取系统和版本信息显示本地或…

敲敲云与简道云流程设计引擎对比:选择更适合您的产品

在当今数字化时代,流程管理和自动化变得越来越重要。作为APaaS服务的两个知名产品,敲敲云和简道云都提供了流程设计引擎,帮助企业实现高效的流程管理。然而,在比较两者之后,您可能会发现敲敲云在多个方面具有优势&…

YOLOV8目标识别——详细记录从环境配置、自定义数据、模型训练到模型推理部署

一、概述 Yolov8建立在Yolo系列历史版本的基础上,并引入了新的功能和改进点,以进一步提升性能和灵活性。Yolov8具有以下特点: 高效性:Yolov8采用了新的骨干网络、新的Ancher-Free检测头和新的损失函数,可在CPU到GPU的…

【JVM】Java虚拟机

本文主要介绍了JVM的内存区域划分,类加载机制以及垃圾回收机制. 其实JVM的初心,就是让java程序员不需要去了解JVM的细节,它把很多工作内部封装好了.但是学习JVM的内部原理有利于我们深入理解学习Java. 1.JVM的内存区域划分 JVM其实是一个java进程 ; 每个java进程,就是一个jvm…

芸鹰蓬飞:抖店服务分怎么快速升分?

在这个平台上,抖店服务分数的高低直接关系到商家在抖音平台上的曝光和信任度。那么,如何快速提升抖店服务分,成为了广大商家亟需解决的问题。本文将从多个角度,深入探讨提升抖店服务分的有效方法。 一、了解抖店服务分的评估标准 …

茶百道:门店数量狂飙,食品安全问题成最大绊脚石

茶百道近日传出即将在香港进行非交易路演,计划在今年内登陆港交所上市,消息一出引发市场广泛关注。然而,茶百道的上市能否成为其自救的解药,还存在诸多质疑。 茶百道的惊人营收增长背后,门店数量的迅速扩张功不可没。在…

⑩② 【MySQL索引】详解MySQL`索引`:结构、分类、性能分析、设计及使用规则。

个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~ 个人主页:.29.的博客 学习社区:进去逛一逛~ MySQL索引 ⑩② 【MySQL索引】1. 索引2. 索引的…

Wordpress多语言插件:WPML插件使用教程,最佳的多语言建站方案

今天小编讲的是另外一款多语言插件WPML。相比Gtranslate采用的是机器翻译,难免存在翻译不准确,词不达意的情况,WPML可以支持人工翻译内容添加。 事先说明一点:用插件实现多语言较为方便,但此方法做出的多语言网站SEO性能一般,只建议展示站使用,如果想要SEO营销型多语言网…

猫罐头哪个牌子好?盘点十大猫罐头品牌排行榜!

作为一个多猫家庭的铲屎官,我之前一直购买性价比较高的德国进口猫罐头。然而,近来进口主食罐的频繁涨价让我不得不开始关注国产主食罐。在这篇文章中,我想与大家分享一些口碑较好的国产猫罐头品牌,希望能对你的选购决策提供一些参…