OBS推流工具介绍及桌面录屏推流功能实现

news2024/11/15 14:02:21

OBS推流工具介绍及桌面录屏推流功能实现

文章目录

  • OBS推流工具介绍及桌面录屏推流功能实现
    • 1 OBS工具介绍
    • 2 OBS工具安装及简单使用
      • 2.1 安装步骤
      • 2.2 简单使用介绍
    • 3 OBS实现桌面录屏推流工具实现
    • 4 总结

流媒体开发工程中,我们除了使用ffmpeg等工具辅助调试外,还经常使用OBS采集真实的音视频流,进行相关流媒体的流程模拟和调试,本文主要介绍一下OBS基本使用及使用OBS推送实时桌面录屏给客户端调用场景介绍,OBS是非常强大的视频录制和直播工具,其他功能也非常实用,如有必要自行研究。相关工具请关注公众号 壹零仓,发送 视频流分析,获取相关工具。

1 OBS工具介绍

OBS全称Open Broadcaster Software,是一款开源的实时视频录制和直播工具,广泛应用于游戏直播、教育、会议等多个领域。OBS提供了强大而简单易用的工具,可让用户创建和定制自己的直播内容,同时也支持多种流行的流媒体平台。OBS具有非常高的自定义性,用户可以根据自己的需求调整视频和音频设置,并添加各种图层、文本、图片、摄像头、音乐等元素。这使得OBS成为自媒体人士、游戏主播、教育工作者、企业培训师等的理想选择。无论是实时转播游戏比赛,还是在线教学、会议,OBS都能满足用户各种需求。
OBS支持多种平台,包括Twitch、YouTube、Facebook等,因此用户可以将自己的直播内容直接发布到这些平台上。此外,OBS还提供了很多额外的插件、扩展和工具,可以进一步增强直播体验。用户可以选择添加绿屏特效,音频降噪等功能,以及使用混流器实时编辑直播内容。除了自定义性和领先的功能,OBS还因其开源性而备受青睐。开源意味着用户可以自由地使用、修改和分享软件代码,而不受限于专有软件的束缚。
本文主要介绍OBS工具的简单安装和使用、项目中遇到的桌面录屏推流工具实现等内容,其他功能如有兴趣,自行研究。

2 OBS工具安装及简单使用

2.1 安装步骤

OBS工具安装非常简单,安装步骤如下:
1.下载OBS软件,点击下载,从OBS官网下载软件,选择自己的操作系统适合的版本,这里以windows为例
2.安装OBS软件,双击安装包按照提示安装即可,安装完成之后,打开界面如下:
test

2.2 简单使用介绍

这里以显示器录屏配置为例,主要配置过程如下:
1.添加视频来源,这里选择显示器采集,其他默认,点击确定,确定即可。
2
2.配置录屏参数,打开文件->设置,在常规中勾选在屏幕采集中隐藏OBS窗口,输出路径配置为自己的路径,视频帧率设置为25,其他默认即可,如下图:
3
3
3
3.点击开始录制按钮,即可录制视频
3

录制后视频即可保存到自己定义的输出路径中。

下个章节会给出一个使用场景实例,来说明OBS直播推流的过程。

3 OBS实现桌面录屏推流工具实现

在某个项目中,有一个需求如下:

  • 场景需求:某部门指挥中心大屏需要通过网络看到其他部门指挥中心大屏的实时展示情况
  • 约束:由于网络安全原因,无法通过网络直接访问其他指挥中心大屏的界面

项目方案中为了实现这个需求,花了好几万购买了一个视频录屏并推送流的盒子,盒子通过HDMI接入其他部门指挥大厅大屏的客户机,盒子通过网口再把HDMI输入的大屏录屏后推送到指挥中心,由指挥中心大屏页面调用。等操作盒子时发现其录屏工具就是OBS,使用桌面采集,然后再推送到某部门指挥大厅部署的rtmp服务器上实现的,
实现方案如下:
3
具体实现方式:
1.配置视频来源并配置录屏参数,参照上一个章节。
2.搭建RTMP流媒体服务器,接受OBS推送的RTMP桌面录屏视频,并提供RTMP、HTTP-FLV、HLS视频拉流协议,供客户端调用,这里参照我以前的文章搭建,链接如下:
使用nginx搭建HTTP FLV流媒体服务器
如果已有RTMP接受推流的服务器(比如各种云上/视频内容厂商提供的直播服务),则无需搭建。
3.配置OBS推流参数,打开文件->设置,在直播配置界面选择服务自定义,服务器输入上个步骤中的RTMP流媒体服务器地址,这里以rtmp://10.45.12.34:1935/live为例,推流码也就是rtmp的streamkey,自己定义即可,这里我定义为test123,配置如下:
3
4.OBS上点击开始直播,OBS就开始向我们配置的rtmp流媒体推流了。
3
5.通过VLC分别输入RTMP、HLS、HTTP-FLV地址,验证是否能正常播放。

  • rtmp地址:rtmp://10.45.12.34:1935/live/test123
  • HLS地址:http://10.45.12.34/hls/test123.m3u8
  • HTTP-FLV地址:http://10.45.12.34/flv?port=1935&app=live&stream=test123
    3
    通过测试,能够在VLC正常播放,这里通过OBS实现了桌面录屏并推送rtmp流,通过nginx实现了HLS、HTTP-FLV、RTMP拉流的流媒体服务功能。

4 总结

本文介绍了OBS基本操作,并通过一个实际场景的例子,来说明OBS在我们流媒体领域中的应用,其使用方式比ffmpeg更加简单,提供更加易于操作的界面,如果使用好,也能为项目节省不少成本。

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

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

相关文章

《工具箱-数据库相关》Dbeaver数据导入“CSV格式“、“Txt格式“导入配置

《工具箱-数据库相关》DBeaver线下数据导入数据库表 Dbeaver数据导入"CSV格式"、"Txt格式"导入配置 使用CSV、Txt导入的时候,数据格式不同,在导入数据的时候,要根据数据编码样式设置不同的配置。 一、Txt格式导入 1.1 …

汇编语言基础知识

目录 前言: 汇编语言的产生 汇编语言的组成 内存 指令和数据 cpu对内存的读写操作 地址总线 数据总线 控制总线 内存地址空间 前言: 汇编语言是直接在硬件之上工作的 编程语言,我们首先了解硬件系统的机构,才能有效地应用…

CHI中的resp type

Rsp分为4大类; Completion response □ 除了PCrdReturn,PrefetchTgt,其他所有的trans都需要comp resp; □ 通常是一个trans的最后一个发送的message, 来自completer; 这个响应保证trans到达了POS/POC; □ 通常RN还会发送一个compack;Read an…

pytorch深度学习快速入门

放弃个人素质 享受缺德人生 拒绝精神内耗 有事直接发疯 一、安装Anaconda 官网下载地址 选择适合的系统版本进行安装即可 安装完之后,可以看到下面的内容 二、使用Anaconda创建开发环境 这也是为什么要使用Anaconda的原因,可以创建不同的开发环境&am…

剑指offer46.把数字翻译成字符串

一开始我的想法是从后面向前面不断对100取余,如果这个余数大于等于10并且小于等于25,说明这两位既可以做一个大的字母,也可以做两个小的字母。所以对于前面的n-2个数字来说,后面的连个数字使得前面的n-2个数字的结果数翻了一倍&am…

Statefulset 实战 1

上一部分与大家分享到 Statefulset 与 RplicaSet 的区别,以及 Statefulset 的特点,能做的一些事情及一些注意事项 现在我们来尝试使用 Statefulset 来部署我们的应用,我们可以需要有应用程序,然后有持久化卷 开始使用 Statefuls…

28.利用fminsearch、fminunc 求解最大利润问题(matlab程序)

1.简述 1.无约束(无条件)的最优化 fminunc函数 : - 可用于任意函数求最小值 - 统一求最小值问题 - 如求最大值问题: >对函数取相反数而变成求最小值问题,最后把函数值取反即为函数的最大值。 使用格式如下 1.必须预先把函数存…

【机器学习】Gradient Descent for Logistic Regression

Gradient Descent for Logistic Regression 1. 数据集(多变量)2. 逻辑梯度下降3. 梯度下降的实现及代码描述3.1 计算梯度3.2 梯度下降 4. 数据集(单变量)附录 导入所需的库 import copy, math import numpy as np %matplotlib wi…

Django的生命周期流程图(补充)、路由层urls.py文件、无名分组和有名分组、反向解析(无名反向解析、有名反向解析)、路由分发、伪静态

一、orm的增删改查方法(补充) 1. 查询resmodels.表名(类名).objects.all()[0]resmodels.表名(类名).objects.filter(usernameusername, passwordpassword).all()res models.表名(类名).objects.first() # 判断,判断数据是否有# res如果查询…

如何通过github学生包认证(远程不在学校或在校但位置报错均可用)

如何通过github学生包认证 在经历11次被拒绝,查阅多方博客后,终于成功通过了github的学生认证,材料每次重复的话github又会让你提交不同的材料,博主最后都已经要没有材料可以证明自己是学生了,不得不说这个认证是真的…

git使用(由浅到深)

目录流程图 1. 分布式版本控制与集中式版本控制 1.1 集中式版本控制 集中式版本控制系统有:CVS和SVN它们的主要特点是单一的集中管理的服务器,保存所有文件的修订版本;协同开发人员通过客户端连接到这台服务器,取出最新的文件或者提交更新…

【C++】通讯录管理系统

1.系统功能介绍与展示 2.创建项目 3.菜单功能 代码&#xff1a; //-封装函数显示该界面 如 void showMenu() //-在main函数中调用封装好的函数 #include <iostream> using namespace std;//-菜单界面 void showMenu() {cout << "***************************…

Azure pipeline自动化打包发布

pipeline自动化&#xff0c;提交代码后&#xff0c;就自动打包&#xff0c;打包成功后自动发布 第一步 pipeline提交代码后&#xff0c;自动打包。 1 在Repos,分支里选择要触发的分支&#xff0c;这里选择cn_china,对该分支设置分支策略 2 在生产验证中增加新的策略 3 在分支安…

【Linux】yum工具的认识及使用

【Linux】yum工具的认识及使用 1.知识点补充2.yum是什么3.yum常用指令3.1查看软件安装包3.1.1关于rzsz 3.2安装软件3.3卸载软件 4.yum扩展4.1扩展14.2扩展24.3扩展3 什么是工具&#xff1f; 本质上也是指令 1.知识点补充 1.我们一般安装软件&#xff0c;是不是需要把软件安装…

LabVIEW FPGA开发实时滑动摩擦系统

LabVIEW FPGA开发实时滑动摩擦系统 由于非线性摩擦效应的建模和补偿的固有困难&#xff0c;摩擦系统的运动控制已被广泛研究。最近&#xff0c;人们更加关注滑动动力学和滑动定位&#xff0c;作为传统机器人定位的低成本和更灵活的驱动替代方案。摩擦控制器设计和适当选择基础…

JVM类加载器的作用和层次结构

类加载器的作用 1)通过一个类的全限定名来获取定义此类的二进制字节流。 2)将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构。 3)在内存中生成一个代表这个类的java.lang.Class对象,这个对象存放在方法区中。这个对象将作为程序访问方法区中的这些数据的外部接…

【嵌入式学习笔记】嵌入式入门2——中断(外部中断)

1.什么是中断 打断CPU执行正常的程序&#xff0c;转而处理紧急程序&#xff0c;然后返回原暂停的程序继续运行&#xff0c;就叫中断 1.1.中断的作用与意义 作用1&#xff1a;实时控制在确定时间内对相应事件作出响应——定时器中断作用2&#xff1a;故障处理检测到故障&…

Linux内核的I2C驱动框架详解------这应该是我目前600多篇博客中耗时最长的一篇博客

目录 1 I2C驱动整体框架图 2 I2C控制器 2.1 I2C控制器设备--I2C控制器在内核中也被看做一个设备 2.2 i2c控制器驱动程序 2.3 platform_driver结构体中的probe函数做了什么 2.3.1 疑问&#xff1a; i2cdev_notifier_call函数哪里来的 2.3.2 疑问&#xff1a;为什么有两…

重生之我要学C++第六天

这篇文章的主要内容是const以及权限问题、static关键字、友元函数和友元类&#xff0c;希望对大家有所帮助&#xff0c;点赞收藏评论支持一下吧&#xff01; 更多优质内容跳转&#xff1a; 专栏&#xff1a;重生之C启程(文章平均质量分93) 目录 const以及权限问题 1.const修饰…

管理类联考——数学——可视化篇——代数即几何

数形结合百般好 代数即几何 两和三个数的完全平方和 https://www.bilibili.com/video/BV1zh4y137AY/ 立方差和立方和公式 通过图形得到立方差公式&#xff0c;将b换成-b&#xff0c;得到立方和公式 平方数列求和 https://www.bilibili.com/video/BV1vz4y1q75D/ 立方数列…