win11下,RTMP流媒体服务器保姆级教程

news2024/11/28 10:48:33

本片博客将详细介绍如何搭建一个RTMP流媒体服务器,包含源码下载,编译常见问题解决方法以及流媒体测试,最后讲解了如何利用obs软件实现推流。

服务器:SRS 3.0(Simple Realtime Server,支持RTMP、HTTP-FLV、HLS、WebRTC)
推流端:ffmpeg + OBS
拉流端:ffplay +VLC + srs播放器

🎡导航小助手🎡

    • 1.安装SRS流媒体服务器
    • 2.测试srs流媒体服务器
    • 3.使用OBS推流

1.安装SRS流媒体服务器

利用码云来下载源代码,速度块

	git clone -b 3.0release https://gitee.com/ossrs/srs.git

编译

	cd srs/trunk
	./configure
	make

编译可能遇到的问题,没有就跳过
第一种:build CherryPy-3.2.4 failed, ret=127
在这里插入图片描述

查看3rdparty中有安装包,
需要到objs目录下安装才有效

	 cp 3rdparty/CherryPy-3.2.4.zip ./objs/

解压好就ok了。

第二种:Build openssl-1.1.0e failed, ret=2
在这里插入图片描述
这个是由srs3.0自带openssl老版本导致的,可以自己手动去下载一个新的openssl

	sudo apt-get install openssl
	sudo apt-get install libssl-dev
	sudo apt-get install libssl0.9.8
	sudo apt-get install libgtk2.0-dev
	然后再重新配置:
	./configure --full --use-sys-ssl
	然后:
	make

如果报错:
在这里插入图片描述
执行

	/configure --without-utest --full --use-sys-ssl
	之后再make

成功效果如下:
在这里插入图片描述

启动服务器:

	./objs/srs -c conf/srs.conf

查看是否已经启动了srs:

	ps -ef | grep srs
或者
	./etc/init.d/srs status

在这里插入图片描述

实时查看SRS日志:

	tail -f ./objs/srs.log

停止、开始srs

	./etc/init.d/srs stop
	./etc/init.d/srs start

在这里插入图片描述
查看版本:

	./objs/srs -v

在这里插入图片描述
以上完成了RTMP流媒体搭建。

查看RTMP配置

	cd conf
	vim ttmp.conf

conf/rtmp.conf中的配置默认配置为:

	listen              1935;
	max_connections     1000;
	vhost __defaultVhost__ {
	}

1935rtmp使用的端口,如果改动需要在推拉流时指定端口号:如rtmp://192.168.100.109:2935/live/yqw
其中vhost __defaultVhost__就是rtmp://本机ip/live/livestream后的/live/livestream,如果不改动则默认是这个。
/live/livestream可以任意改变比如/x/y,只要推拉流一致就行,但必须是两个标识。

查看本机ip

	ifconfig

在这里插入图片描述

2.测试srs流媒体服务器

启动推流编码器
使用 FFmpegOBS推流:

	ffmpeg -re -i test.flv -vcodec copy -acodec copy -f flv -y rtmp://192.168.3.181/live/livestream

其中,test.flv,需要修改为实际flv文件名称
rtmp://192.168.3.181/live/livestream其中,ip需要改成上面ubuntu查询的ip号。

ffplay接收:

	ffplay -x 800 -y 600 rtmp://192.168.3.181/live/livestream

当然也可以使用vlc等进行接收。
srs在线播放不再支持trmp流的播放。

3.使用OBS推流

实测可用破解版下载:链接
文件推流
新添加一个“媒体源”
在这里插入图片描述
选择要推流的文件,多种流媒体文件都可以进行推流。
在这里插入图片描述
重点:设置“服务器”和“推码流”
在这里插入图片描述
在这里插入图片描述
之后点击“ 开始直播 ”
此时ubuntu里,
查看日志,发现有流上传,此时可以拉流查看。

在这里插入图片描述
当然,obs也可以实现多种输入的推流,可以尝试屏幕,窗口,摄像头等等。
在这里插入图片描述

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

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

相关文章

蓝桥杯刷题day13——自助餐【算法赛】

一、问题描述 食堂最近推出了自助取餐功能,可以通过盘子的形状自动计算费用。你参与到自助计算价格的项目工作中。视觉组的同学已经帮你通过图像识别把盘子图片转换为了字符串,你只需要计算具体的价格即可。 餐盘的费用如下表所示: 你将会得到n 个字符…

【css】文本过长溢出一行不换行普通css以及antd实现

.text-box { white-space: nowrap; /* 防止文字换行 */ overflow: hidden; /* 隐藏超出div的内容 */ text-overflow: ellipsis; /* 当内容超出时,显示省略号 */ max-width: calc(100% - 80px); /* 假设按钮宽度为80px,则设置div的最大宽度为容器宽度…

强化基础-Java-集合

这块的知识点比较零碎也是看到了就过来记录一点,可能是之前没有特别注意的,会持续补充 集合 1 通用实现 ListSetSortedSet(如果表达是有序的,返回签名使用有序set来表达)NavigableSet(since 1.6)Queue (since 1.5)Deque(since …

2024 年最值得阅读的 ChatGPT 书籍

自ChatGPT问市以来,其全球风靡之势标志着生成式人工智能新纪元的到来。尽管在ChatGPT之前,大型语言模型(LLM)已存在,但其便捷访问和用户友好界面无疑将LLM的应用推向了新高度。至2024年,ChatGPT持续作为热门话题,本文旨…

Qt加载.css/.qss文件设置控件的QSS样式(支持程序运行时修改且立即生效类似换肤效果)

初学Qt时要想通过QSS修改控件QWidget,QPushButton等原生基础控件的样式,一般都是直接在.ui文件中直接添加qss,或者在代码中通过setStyleSheet(QString qss)来设置。当程序很大时,很多地方需要复用样式时会非常麻烦,qss…

CCIE-12-IPSec-VPN-RemoteAccess

目录 实验条件网络拓朴实验目的 开始配置1. R2 Ping R3确定基础网络是通的2. 配置R23. 配置R53. 验证 实验条件 网络拓朴 实验目的 为R2和R3建立IPSec VPN R4可以ping通R5 开始配置 R2:模拟需要远程访问网络的网关 R4:模拟需要远程访问网络内的目标主…

问题2-前端json数组数据转换成csv文件

代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>将 JSON 数据导出为 CSV 文件</title> …

node.js的模块化 与 CommonJS规范

一、node.js的模块化 (1)什么是模块化&#xff1f; 将一个复杂的程序文件依据一定的规则拆分成为多个文件的过程就是模块化 在node.js中&#xff0c;模块化是指把一个大文件拆分成独立并且相互依赖的多个小模块&#xff0c;将每个js文件被认为单独的一个模块&#xff1b;模块…

【蓝桥杯】积木

积木 题目描述 小明用积木搭了一个城堡。 为了方便&#xff0c;小明在搭的时候用的是一样大小的正方体积本&#xff0c;搭在了一个 n 行 m 列的方格图上&#xff0c;每个积木正好占据方格图的一个小方格。 当然&#xff0c;小明的城堡并不是平面的&#xff0c;而是立体的。…

mac如何检测移动硬盘 mac硬盘检测工具 Tuxera怎么用 Tuxera NTFS官网

在工作学习中&#xff0c;我们都绕不开用移动硬盘来拷贝存储一些文件。但是在使用过程中&#xff0c;我们经常遇到“mac检测不到移动硬盘”“移动硬盘不存在”等问题&#xff0c;今天本文就带大家了解下mac如何检测移动硬盘&#xff0c;mac硬盘检测工具。 一、mac如何检测移动…

C++ —— C++11新增语法

目录 一&#xff0c;列表初始化 1.1 这是什么&#xff1f; 1.2 initializer_list 1.3 在容器的运用 1.4 STL中的变化 二&#xff0c;右值引用和左值引用 2.1 是什么&#xff1f; 2.2 这两个东西有啥关系&#xff1f; 2.3 有啥用&#xff1f; 三&#xff0c;*移动构…

智乃想考一道鸽巢原理

题目 思路&#xff1a; #include <bits/stdc.h> using namespace std; #define int long long #define pb push_back #define fi first #define se second #define lson p << 1 #define rson p << 1 | 1 const int maxn 1e6 5, inf 1e9, maxm 4e4 5; co…

【御控物联】JavaScript JSON结构转换(14):对象To数组——规则属性重组

文章目录 一、JSON结构转换是什么&#xff1f;二、术语解释三、案例之《JSON对象 To JSON数组》四、代码实现五、在线转换工具六、技术资料 一、JSON结构转换是什么&#xff1f; JSON结构转换指的是将一个JSON对象或JSON数组按照一定规则进行重组、筛选、映射或转换&#xff0…

实验:基于Red Hat Enterprise Linux系统的创建磁盘和磁盘分区(一)

目录 一. 实验目的 二. 实验内容 三. 实验设计描述及实验结果 fdisk [参数] [设备] 1. 为虚拟机添加1块大小为3-5G的硬盘nvme&#xff0c;将该硬盘划分1个主分区和两个逻辑分区分别为600MB。 partprobe [选项] [设备] 2. 将主分区格式化为ext4文件系统并挂载到/自己名字命名…

【Go】十五、接口、多态、断言

文章目录 1、接口的引入2、接口3、接口的注意点4、多态5、断言6、Type Switch 1、接口的引入 以日常生活中打招呼为例&#xff0c;定义接口规范&#xff0c;各国人为打招呼为具体的实现 package main import "fmt"//接口的定义&#xff1a;定义规则、定义规范&…

3. WiFi基本原理

1. WiFi简介 WiFi的全称是Wireless Fidelity。它是一种无线网络通信技术&#xff0c;由Wi-Fi联盟拥有&#xff0c;目的是改善基于IEEE 802.11标准的无线网络产品之间的互通性&#xff0c;允许电子设备在没有物理连接的情况下进行高速数据传输。此外&#xff0c;WiFi也被视为IE…

手搓Docker-Image-Creator(DIC)工具(03):实现alpine+jre的镜像

此篇博客将介绍如何使用 Docker 创建一个alpine3.10-jre1.8.0_401 的 Docker 镜像&#xff0c;并使用 Docker 运行起来。将用到 Dockerfile 的 COPY 命令、RUN 命令、ENV 命令&#xff0c;最终实现基于单一应用的 Dockerfile 构建镜像和运行。 紧急修改&#xff1a;代码我是在m…

代码随想录第27天| 39. 组合总和

39. 组合总和 39. 组合总和 - 力扣&#xff08;LeetCode&#xff09; 代码随想录 (programmercarl.com) 带你学透回溯算法-组合总和&#xff08;对应「leetcode」力扣题目&#xff1a;39.组合总和&#xff09;| 回溯法精讲&#xff01;_哔哩哔哩_bilibili 给你一个 无重复元…

理解 SQL 数据添加:从基础到实践

引言&#xff1a; 在现代软件开发中&#xff0c;数据库是不可或缺的一部分。而 SQL 作为结构化查询语言的代表&#xff0c;广泛应用于数据库管理系统中&#xff0c;为我们提供了强大的数据管理和查询能力。 主题&#xff1a; 我们将从基础的 SQL INSERT INTO 语句开始&…

使用Pollard_rho算法分解质因数

分解质因数的朴素算法 最简单的算法即为从 [2, sqrt&#xff08;N&#xff09;] 进行遍历。 vector<int> breakdown(int N) {vector<int> result;for (int i 2; i * i < N; i) {if (N % i 0) { // 如果 i 能够整除 N&#xff0c;说明 i 为 N 的一个质因子。…