使用centos7搭建流媒体平台

实现流媒体直播

流媒体服务器,推流客户端,拉流客户端

硬件设施 centos7服务器,window拉流客户端

软件层面 dockers+nginx+rtmp模块

其他工具 git vlc

搭建rtmp服务器

这里是搭建服务器的环境

首先配置centos的环境

下载vmware

vmware的破解码

下载centos7的镜像

按照普通安装centos7的方式给一个1核2g运存20g内存的环境

配置centos7环境

更新系统到最新状态 sudo yum update

启用epel仓库 sudo yum install epel-release

配置语言环境 sudo yum install -y gcc-c++
make python-devel # 或其他特定版本的Python如python36-devel

防火墙设置 sudo firewall-cmd --permanent --add-port=80/tcp

安装dockers

sudo yum install -y yum-utils

sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

sudo yum install -y docker-ce docker-ce-cli containerd.io

启用docker并设置自动启动

sudo systemctl start docker

sudo systemctl enable docker

检查是否成功安装运行
docker --version

运行项目

安装git

sudo yum install git

git --version

开始克隆

git clone https://gitcode.com/tiangolo/nginx-rtmp-docker.git

然后进去到项目目录
cd nginx-rtmp-docker

使用docker启动监听,这里就已经运行了RTMP服务器,监听口在1935

docker run -d -p 1935:1935 --name=nginx-rtmp tiangolo/nginx-rtmp

推流服务端

安装ffmpeg推流

sudo apt-get updatesudo apt-get install ffmpeg

然后进到一个文件夹,文件夹内必须要有mp4文件,下一步要做的就是将这个文件转码推送到客户端

ffmpeg -re -i input.mp4 -c copy -f flv rtmp://localhost/live/stream

“input.mp4”是你的视频文件,“rtmp://localhost/live/stream”是你的RTMP服务器地址

现在的RTMP是自己服务器内

docker run -d -p 1935:1935 --name=nginx-rtmp 

tiangolo/nginx-rtmp命令启动了一个名为"nginx-rtmp"的容器,它监听主机的1935端口。

ffmpeg -re -i input.mp4 -c copy -f flv

rtmp://localhost/live/stream命令将名为"input.mp4"的视频文件转换成流,然后推送到"rtmp://localhost/live/stream

ffmpeg是推流客户端,而nginx-rtmp容器是流媒体服务器,二者之间通过RTMP协议进行通信

sudo firewall-cmd --reload

到这一步推流客户端,流媒体服务器已经搭建完毕

拉流客户端

搭建流媒体服务器

搭建之前需要知道一个东西,这个时候推流服务器的ip地址是哪个

在centos7系统中,使用ip addr指令获取
会出来几条IP接口

io 环回接口,用在本机通讯

ens33 物理以太网接口

virbr0 虚拟网桥

docker0 Docker容器网络的虚拟网桥

这里需要用 ens33地址接口

然后在其他机器上测试这个接口是否能正常使用

在windows上使用ipconfig 地址
看是否有返回值

这里就确定是否可以正常使用

下一步,下载Vlc客户端作为拉流客户端
vlc下载地址:windows版

在推流服务器使用这个指令让客户端播放完视频一直循环播放

ffmpeg -re -stream_loop -1 -i forest4kTest.mp4 -c copy -f flv rtmp://192.168.121.50/live/stream

总结:

三个端串联,流媒体服务器,推流客户端,拉流客户端
参考原作者:https://blog.csdn.net/Dontla/article/details/135375042

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

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

相关文章

【学习AI-相关路程-工具使用-自我学习-Ubuntucudavisco-开发工具尝试-基础样例 (2)】

【学习AI-相关路程-工具使用-自我学习-cuda&visco-开发工具尝试-基础样例 (2)】 1、前言2、环境说明3、总结说明4、工具安装0、验证cuda1、软件下载2、插件安装 5、软件设置与编程练习1、创建目录2、编译软件进入目录&创建两个文件3、编写配置文…

【iOS开发】—— 初识锁

【iOS开发】—— 初识锁 线程安全锁的种类自旋锁定义原理自旋锁缺点OSSpinLock(自旋锁) 互斥锁os_unfair_lockpthread_mutexNSLockNSRecusiveLockSemaphore信号量synchronized 总结两种之间的区别和联系: 线程安全 当一个线程访问数据的时候…

音视频开发4-补充 FFmpeg 开发环境搭建 -- ubuntu ffmpeg开发环境搭建

ubuntu ffmpeg开发环境搭建 1 创建目录 在 /home/hunandede/ffmpeg/ 目录下创建 ffmpeg_sources:用于下载源文件 ffmpeg_build: 存储编译后的库文件 bin:存储二进制文件(ffmpeg,ffplay,ffprobe&#…

Request请求数据 (** kwargs参数)

目录 🌟前言🍉request入门1. params2. data3. json4. headers5. cookies6. auth7. files8. timeout9. proxies10. allow_redirects11. stream12. verify13. cert 🌟总结 🌟前言 在Python中,发送网络请求是一项常见的任…

Linux----磁盘操作

1.在Linux中要使用一个新的磁盘,通常可以按照哪几个步骤进行? 在Linux中要使用一个新的磁盘,通常可以按照以下步骤进行: 查看磁盘:使用 fdisk -l 等命令查看新磁盘是否被系统识别。分区:使用 fdisk 或 gdis…

淘宝商品评论电商API接口,让你购物不再困扰

现在的时代购物已经成为了人们生活中不可或缺的一部分。然而,面对琳琅满目的商品,我们常常犯愁,不知道如何选择。为了解决这个问题,淘宝推出了商品评论电商API接口,为广大消费者提供了极大的便利。联讯数据将详细介绍淘…

数据挖掘实战-基于决策树算法构建银行贷款审批预测模型

🤵‍♂️ 个人主页:艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞&#x1f4…

6818Linux内核--Bootloader应用分析

Bootloader应用分析 一个嵌入式 Linux 系统从软件的角度看通常可以分为四个层次: 引导加载程序。包括固化在固件( firmware )中的 boot 代码(可选),和 Boot Loader 两大部分。 Linux 内核。特定于嵌入式板子的定制内核以及内核的启动参数。 文件系统…

一分钟把小程序音频保存到手机上

在这个快节奏的时代,每一分钟都显得格外珍贵。你是否曾在小程序中偶遇一段旋律,它如同清晨的露珠,晶莹剔透,却又转瞬即逝?是否曾在某个瞬间,渴望将那段旋律永久地镌刻在心间,让它成为你私人时光…

vant NavBar 导航栏详解

vant 是一个基于 Vue 的移动端 UI 组件库,而 NavBar 是其中的一个导航栏组件。下面是对 vant 的 NavBar 导航栏组件的详细解释: 1. 引入 NavBar 首先,你需要在你的 Vue 组件中引入 NavBar 组件: import { NavBar } from vant; …

【微信小程序开发】flex布局在小程序开发项目中的应用详解

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,…

2024-3-23 青少年软件编程(C语言)等考(四级)解析

2024-3-23 青少年软件编程(C语言)等级考试试卷(四级)解析 1、最长上升子序列 一个数的序列bi,当b1 < b2 < ... < bS的时候,我们称这个序列是上升的。对于给定的一个序列(a1, a2, ..., aN),我们可以得到一些上升的子序列(ai1, ai2, ..., aiK),这里1 <= i1 …

温情母亲节,李良济中医课堂,用爱呵护妈妈的健康与美丽

这个世界上&#xff0c;有这么一个人&#xff0c;你听过她最美的年华&#xff0c;她见证你最美的长大&#xff0c;这个人就是妈妈。 知恩于心&#xff0c;感恩于行&#xff01;母亲节&#xff0c;李良济中医课堂助健康&#xff0c;滋养好物养身心&#xff0c;与您一起用爱守护…

2024最新单身经济新模式,低客单量高转换率,长期项目,新手快速上手

在今年&#xff0c;”搭子”这个词汇异常火爆&#xff0c;主要通过搭子流量进行线下推广以实现高品质群的盈利。有一句流行语说&#xff0c;年轻人可以不想谈恋爱&#xff0c;但不能没有搭子&#xff0c;这显示了搭子的需求量很大。 只要有需求&#xff0c;就会有创业的机会。…

第二证券今日投资参考:VA、VE景气上行 猪价步入慢涨趋势

上周五&#xff0c;沪指午后在地产、金融等板块的带动下震荡上升&#xff0c;创业板指等弱势下探。到收盘&#xff0c;沪指微涨0.01%报3154.55点&#xff0c;深证成指跌0.58%报9731.24点&#xff0c;创业板指跌1.15%报1878.17点&#xff0c;科创50指数跌1.5%&#xff1b;两市算…

【解决】:git clone项目报错fatal: fetch-pack: invalid index-pack output

象&#xff1a;之前一直使用gitee将个人学习和工作相关记录上传到个人gitee仓库&#xff0c;一直没出现过问题。直到有一天换电脑重新拉取代码发现出了问题&#xff0c;具体如下图&#xff1a; 原因分析&#xff1a; 经过查询发现主要原因是因为git clone的远程仓库的项目过大…

MySQL查询篇-排序

文章目录 单列排序多列排序null排序 排序时 asc 升序&#xff0c;desc 降序 &#xff0c;默认asc 单列排序 select * from table order by version;多列排序 按照指定的列顺序依次排序 select * from table order by version,name; --先根据version升序&#xff0c;再根据na…

OD试题(12)

文章目录 1. 字符逆序2. 求解立方根3. 求最小公倍数 1. 字符逆序 描述&#xff1a;将一个字符串str的内容颠倒过来&#xff0c;并输出。 输入描述&#xff1a;输入一个字符串&#xff0c;可以有空格 输出描述&#xff1a;输出逆序的字符串 示例1&#xff1a; 输入&#xff1a;…

Spring Boot警告:TLSv1 was negotiated【 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接】

文章目录 引言I 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接1.1 原因1.2 解决方案1.3 Microsoft SQL Server(jTDS)II Spring Boot警告:TLSv1 was negotiated.引言 com.microsoft.sqlserver.jdbc.SQLServerException: 驱动程序无法通过使用安全套接…

Selenium WebDriver自动化测试(框架篇)--TestNG测试框架:分组和依赖

文章目录 一、引言二、测试方法优先级示例代码三、分组(Groups)示例代码四、测试用例之间的依赖示例代码五、禁用测试方法示例代码六、设置测试方法超时示例代码七、维持测试用例的执行顺序示例代码八、封装通用方法示例代码