WebSocket整合直播

【obs】官方最强插件obs-websocket入门 利用ws实现高效低延迟的局域网远程操控,让用户可以通过局域网内的其他设备,如手机、ipad、平板,进行常用的obs操作。obs-websocket-js库中提供了一个十分有用的工具tester.html,十分的实用,可以测试所有支持的协议。obs-websocket提供了obs的服务能力,根据WebSocket协议,出现了很多三方控制软件。库,该库提供了WebSocket的封装,支持4.x和5.x协议的obs-websocket。这样的神器,很多插件及软件都是基于该插件实现的,我们可以从官网的。 阅读详情

由于浏览器不支持对于rtmp协议推拉流,所以需要后台对传输的数据进行处理,将数据转接,为了实现其实时性,使用websocket将数据传输

先使用obs和vlc测试正常的推拉流是否正常

然后在跑本地后台传输视频

使用JavaCV技术传输音视频

        //创建+设置采集器
        FFmpegFrameGrabber grabber = FFmpegFrameGrabber.createDefault(inputPath);
        grabber.setOption("rtsp_transport", "tcp");
        grabber.setImageWidth(960);
        grabber.setImageHeight(540);

        //开启采集器
        grabber.start();

        //直播播放窗口
        CanvasFrame canvasFrame = new CanvasFrame("直播------来自"+inputPath);
        canvasFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        canvasFrame.setAlwaysOnTop(true);
        OpenCVFrameConverter.ToMat converter = new OpenCVFrameConverter.ToMat();

        //播流
        while (true){
            Frame frame = grabber.grabImage();  //拉流
            opencv_core.Mat mat = converter.convertToMat(frame);
            canvasFrame.showImage(frame);   //播放
        }

测试时正常显示页面

对音视频解析转为二进制流传递给前端

//读取rtmp文件流
        // 获取视频源
        log.info("音频流地址{}",url);
        FFmpegFrameGrabber grabber = new FFmpegFrameGrabber(url);
        try {
            grabber.start();
            Frame frame = null;
            long startTime = System.currentTimeMillis();
            ByteArrayOutputStream wavBuffer = new ByteArrayOutputStream();
            while ((frame = grabber.grabFrame()) != null) {
                log.info("解流");
                Buffer[] samples = frame.samples;
                int sampleRate = frame.sampleRate;
                int audioChannels = frame.audioChannels;
                int sampleSizeInBit = 16;
                //一秒数据量
                Thread.sleep(1000);
                int oneSecondBytes = sampleRate * sampleSizeInBit / 2 * audioChannels;

                Java2DFrameConverter converter = new Java2DFrameConverter();
                BufferedImage image=converter.convert(frame);
                ByteArrayOutputStream baos = new ByteArrayOutputStream();
                ImageIO.write(image, "jpg", baos);
                byte[] imageData = baos.toByteArray();
                webSocketService.sendBroadcast(imageData);

设置1秒时长的延迟,防止服务器因为拉流崩溃

【OBS】obs-websocket实战技巧,让你更快的了解OBS OBS-websocket封装了很多api,用于控制OBS,我们可以通过该方式,学习OBS,也可以直接使用该方式进行二次开发。关于OBS-web相关知识,参考文章《【obs】官方最强插件obs-websocket入门。获取特殊输入源设置(全局音频设备)获取特殊输入源设置(全局音频设备)1️⃣ 修改OBS-web源码。1️⃣ 修改OBS-web源码。2️⃣ 常用api汇总。获取设置输入源静音状态。获取设置输入源静音状态。打开输入源属性设置框。打开输入源属性设置框。打开输入源属性设置框。打开输入源属性设置框。 阅读详情

相关推荐

直播技术架构优化与数据驱动内容策略实战指南

直播技术架构是支撑实时音视频传输的核心系统,其原理基于推流、传输、分发三个关键环节。通过优化编码参数和网络协议,可以显著提升直播质量和稳定性,这在工程实践中具有重要价值。在应用场景中,结合数据驱动方法分析观众行为,能够精准优化内容策略。本文聚焦OBS推流配置、Nginx-RTMP模块等技术细节,并融入弹幕系统优化和CDN调度策略,为直播平台的高并发处理与用户体验提升提供实用解决方案。

weixin_30457551的博客 329

websocket+node实现直播(弱鸡版)

前端与websocket相连接实现直播功能

YX0711的博客 1549

GPW-OBS-Client:通过WebSocket插件控制OBS

名称 Net :: Protocol :: OBSRemote-通过WebSocket插件控制OBS 概要 my $protocol = Net::Protocol::OBSRemote->new(); my $message = $protocol->GetVersion(); my $result = $obs_connection->send_message( $message ); 有关Mojolicious实现,请参见 。 也可以看看

Gocv+websocket实现视频直播

文章目录数据流向图实现方式主要功能点从摄像头获取视频数据图像Base64编码Websocket服务通过websocket广播完整代码gohtml5效果图参考 数据流向图 实现方式 通过opencv抓取摄像头的视频数据按帧处理 将每一帧压缩成jpg格式并编码成base64格式 通过websocket协议将base64图像传输给前端页面 前端解析每一帧并更新显示 本文使用了iris框架的webs...

Ango_的专栏 2057

基于websocket协议的简易视频直播

该Demo实现了简单的视频直播功能

javacv实现rtsp转flv用于网页前端播放验证可用

rtsp地址不同的nvr有不通的拼接方式 rtsp转flv用于网页前端播放 经验证可用

Spring Boot整合WebSocket和Redis实现直播间在线人数统计功能

在现在这个短视频时代,很多企业也投入到了直播的行业,甚至为了打造自己专属私域某些企业也会开发应用自己的直播系统,而在直播应用中,实时显示在线人数是一个非常重要的功能。这里博主将详细介绍通过结合WebSocket和Redis,我们可以实现一个简单而高效的直播间在线人数统计功能,并提供完整的代码示例。创建一个WebSocket理器类继承,用于处理WebSocket消息和连接事件import org。

Micro麦可乐的博客 1万+

SPL06气压温度传感器SPI驱动与补偿算法详解

气压传感器与温度传感器是嵌入式环境感知系统的核心组件,其测量精度高度依赖于MEMS芯片的校准参数与非线性补偿机制。SPL06作为集成式高精度数字传感器,采用24位Σ-Δ ADC与片内补偿引擎,需结合唯一出厂校准系数(即‘芯片指纹’)进行多阶数学修正,才能将原始ADC值转化为符合计量要求的帕斯卡(Pa)与摄氏度(℃)物理量。该过程涵盖SPI通信协议解析、寄存器时序控制、大端数据拼接、二进制补码处理及浮点/定点混合运算等典型嵌入式工程实践。广泛应用于无人机高度计、智能穿戴海拔监测与IoT气象终端中。

weixin_34640289的博客 142

直播弹幕系统(五)- 整合Stomp替换原生WebSocket方案探究

本篇文章是基于SpringBoot - WebSocket的使用和聊天室练习来讲解的。在设计弹幕系统(目前还是从设计聊天室开始入手,弹幕的React实现后面会开始写)这块,我还是用最原生的WebSocket来进行的。对于服务端而言。无非就是添加注解修饰,通过@OnOpen进行监听等操作。但是最最最重要的一点是,这种设计系统,WebSocket信息是存储于本地缓存的。而且,在分布式架构下,还需要考虑到消息的一致性。因此本篇文章,先简单了解下Stomp以及它的聊天室替代方案实现。,即简单文本定向消息协议。

Zong_0915的博客 2835

VSCode里玩转AvaloniaUI:手把手教你搭建跨平台桌面应用开发环境(附.NET 7配置避坑)

本文详细介绍了如何在VSCode中搭建AvaloniaUI跨平台桌面应用开发环境,包括.NET 7配置避坑指南。从环境准备、项目创建到调试优化,手把手教你利用VSCode和Avalonia实现高效开发,特别解决了.NET 7依赖等常见问题,助力开发者快速上手跨平台应用开发。

weixin_28826545的博客 576

基于STM32设计的水下水质检测装置(微信小程序)(205)

本项目设计了一款基于STM32微控制器为核心的水下水质检测设备,该设备具有高度集成化、智能化的特点,能够实时监测水深、温度、浊度及溶解性总固体(TDS)等关键水质参数,并通过4G网络将数据上传至腾讯云IOT物联网平台,实现远程监控和数据分析。同时,为了便于操作和移动观测,还配套开发了微信小程序,用户可通过微信小程序实时查看并控制设备的各项功能,如调整下潜深度等。

1250

直播弹幕系统(三)- 直播在线人数统计

上一篇文章整合RabbitMQ进行消息广播和异步处理写完了消息的广播、削峰、异步处理业务逻辑等操作。完成了实时共享功能。不过写到后面发现在线人数统计这块的功能还没实现,因此在这篇补上。目前的WebSocket写法实现只是一种方案,显然并不是最优解,也可能有更好的写法。后期准备尝试用Netty来平移替换。

Zong_0915的博客 3245

Altium Designer 超详细入门教程

本文是一份Altium Designer新手入门教程,详细介绍了从软件基础到PCB制版的全流程。主要内容包括:软件界面介绍与工程创建方法;原理图设计中的元件放置、电气连线、标注添加等操作;PCB设计的布局布线、铺铜和DRC检查;Gerber和钻孔文件的导出方法。教程还提供了分类整理的实用快捷键表和新手避坑指南,强调原理图编译和DRC检查的重要性。通过本教程,新手可以快速掌握AD基本操作,完成简单电路板的设计与制版文件导出。

学习中...... 818

直播弹幕系统(四)- 发送弹幕校验登录整合JWT

上一篇文章直播弹幕系统(三)- 直播在线人数统计主要讲了利用Redis对一个直播间的在线用户做出统计。那么这篇文章,就要对发送弹幕的用户进行一个校验了。毕竟一个直播间,游客是可以正常访问的。但是发送弹幕的话,肯定就是需要登录了。这次使用JWT来完成校验。JWT可以先看看这篇文章Java - JWT的简单介绍和使用。

Zong_0915的博客 1163

NVIDIA Isaac Sim 入门教程(一)

文档分为以下几个部分: 简介、安装指南、API 文档、教程、手册和参考资料。简介部分是对 Omniverse Isaac Sim 的基本概述,以及它如何融入 NVIDIA Omniverse™ 生态系统。它还概述了 Omniverse Isaac Sim 的架构、工作流程和文档布局。

机器人控制与仿真应用 1万+

vue2/3 - [超详细] 实现企业微信扫码登录完整流程及代码,vue项目接入企业微信扫码登录功能教程,支持新跳页显示二维码或div容器里内嵌登录二维码(详细代码注释,一键复制开箱即用)

vue企业微信扫码登录,vue网页网站企业微信扫码登录教程,vue如何实现企业微信扫码登录功能,vue详细企业微信扫码登录功能实现,vue2实现企业微信扫码登录,前端vue企业微信扫码登录教程,vue pc电脑端企业微信扫码登录详细教程,vue项目中怎么做企业微信扫码注册登录,vue实现网站接入企业微信扫码登录,vue2做企业微信扫码登录的优质文章教程,vue网站对接企业微信扫码登录,vue企业微信扫码登录如何新开一页全屏显示登录二维码,vue企业微信登录二维码 内嵌在div容器里/跳页显示登录二维码,vu

✅ 精选推荐文章 5701

OBS WebSocket:实时流媒体控制的新维度

OBS WebSocket:实时流媒体控制的新维度 项目地址:https://gitcode.com/gh_mirrors/obs/obs-websocket 项目简介 是一个开源项目,由 Palakis 创建并维护,它为流行的开源直播软件 [OBS Studio](https)添加了WebSocket协议支持,使得你可以通过网络远程控制OBS Studio的各种操作。这个项目的目的是为开发者提供...

gitblog_00030的博客 1080

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

搭建私域直播系统需要哪些功能?直播+商城+会员体系全面解析

私域直播系统开发需要构建完整的业务闭环,核心模块包括:1)直播基础能力(推流、互动、回放等);2)商城交易系统(商品展示、下单支付);3)会员运营体系(用户画像、精准营销);4)多终端支持(APP/小程序/H5);5)数据安全与性能保障。系统设计需实现直播、电商、会员三者的深度整合,通过API网关统一服务,结合缓存、CDN等技术确保高并发性能,最终形成"内容传播-商品交易-用户沉淀"的完整业务链路,为私域运营提供持续支撑。

m0_61203577的博客 517

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

微信视频号直播数据抓取神器:wxlivespy 深度解析与实战指南

想要实时监控微信视频号直播间互动数据却苦于找不到合适工具?今天为大家介绍一款开源利器——wxlivespy,它能够帮你轻松抓取直播间弹幕、礼物、用户进入等关键数据,为直播运营和数据分析提供强大支持。 ## 直播数据监控的三大痛点 在微信视频号直播运营中,我们常常面临这些挑战: 1. **数据延迟严重** - 官方后台数据更新缓慢,无法实时响应 2. **用户身份难追踪** - 同一用户在不同

gitblog_01187的博客 187

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

一应用搞定全网直播:Simple Live 跨平台聚合直播终极解决方案

厌倦了在不同直播平台间频繁切换的繁琐操作?想要一个真正高效、跨平台的直播聚合工具?Simple Live 用 Flutter 技术栈为你提供了一站式直播观看体验,让你在手机、电脑、电视上都能无缝观看虎牙、斗鱼、哔哩哔哩、抖音等主流平台的直播内容。 ## 从碎片化到聚合化:直播观看体验的革命 传统直播观看方式存在明显的平台壁垒——每个平台都需要独立的应用,不仅占用大量存储空间,操作流程也各不相同

gitblog_00040的博客 971

告别切换烦恼:纯粹直播如何打造一站式直播聚合体验

在数字化娱乐时代,直播内容已成为用户日常消费的重要组成部分。然而,不同平台间的内容割裂导致用户平均每天需要切换3-5个应用才能获取完整的直播体验,这种碎片化模式严重影响了观看连续性。纯粹直播作为一款开源跨平台直播聚合工具,通过整合哔哩哔哩、虎牙、斗鱼、快手、抖音等主流平台资源,实现了80%以上的操作效率提升,彻底改变了多平台直播的观看方式。 ## 多平台数据同步机制解析 纯粹直播的核心价值在于

gitblog_00827的博客 281

GPT-4驱动虚拟人直播:技术方案与实战优化

虚拟人技术正成为数字内容创作的重要方向,其核心在于实现自然的人机交互。通过多模态AI模型如GPT-4的情感分析与文本生成能力,结合3D动画引擎,可以构建实时响应的虚拟主播系统。关键技术包括语言模型API调用、情绪-动画映射、实时渲染等工程实践。在直播场景中,这类方案能显著提升用户互动体验,特别适用于电商、教育等领域。本文以Unity/UE5和Blender工具链为例,详解如何将GPT-4的多模态输出转化为虚拟人的表情动作,并分享OBS集成和性能调优的实战经验。

weixin_30892763的博客 405

如何用OBS Studio实现专业级多机位直播:从场景编排到视觉叙事的创新方法

OBS Studio作为业界领先的开源直播软件,其多机位切换功能不仅是技术实现,更是视觉叙事艺术的核心。在当今内容创作领域,多机位直播已成为专业直播的标准配置,而OBS Studio通过其强大的场景管理和过渡效果系统,为创作者提供了从基础到高级的完整解决方案。 **核心关键词**:OBS Studio多机位直播、场景切换 **长尾关键词**:专业直播场景编排、亮度蒙版转场效果、多机位音频同步

gitblog_00173的博客 859

OBS Studio多机位切换:专业直播制作的视觉叙事革命

当直播内容创作者在深夜调试设备时,他们面对的不仅仅是技术参数的堆砌,而是一场关于视觉叙事的哲学思考。OBS Studio作为开源直播软件的代表,其多机位切换功能早已超越了简单的画面切换工具,演变为一种视觉语言表达系统。在这个数字内容爆炸的时代,真正的专业直播不在于拥有多少摄像头,而在于如何通过精密的视觉编排讲述一个连贯的故事。 ## 视觉叙事的架构哲学:从技术实现到用户体验 OBS Studi

gitblog_00701的博客 637
上一篇: NIO基础
下一篇: Java使用Time实现发送邮件提醒
Array_new
博客等级 码龄5年 5粉丝 62原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Array_new

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值