1.?桌面桌面??湲????ƵԴ??
2.基于vue实现Web视频聊天和屏幕分享(附源码,PC版+手机版)
3.OBS 源码分析- 采集方案之二(显示器采集)
4.OBS桌面视频直播软件/推流工具使用指南
?共享共享??湲????ƵԴ??
本文将展示如何在纯网页中实现视频聊天和桌面分享功能的Demo,无需额外插件即可在浏览器中运行。视频视频设置 一. 功能及支持平台 该Demo具备以下功能:一对一语音视频聊天
远程桌面观看
客户端掉线后自动重连,源码源码网络恢复时重连成功
支持的桌面桌面操作系统包括:Windows、信创国产Linux(银河麒麟、共享共享红包扫雷房间源码统信UOS)、视频视频设置Android、源码源码iOS、桌面桌面Mac、共享共享鸿蒙OS。视频视频设置 CPU架构:X/X、源码源码ARM、桌面桌面MIPS、共享共享Loongarch。视频视频设置 主流浏览器:Chrome、Edge、Firefox、Safari、浏览器、QQ浏览器等。 APP套壳内加载Demo页面,同样可正常视频聊天。 二. 开发环境 服务端使用Visual Sudio ,C#语言; PC端Web:VS Code 1.,Vue 3框架; 手机端Web:HBuilder 3.8.,uni-app(导出H5)。influxdb 源码开发 三. 运行效果 Demo源码分为三部分:服务端、PC端Web和手机端Web。 移动端Web运行效果包括:登录界面、已连接提示框、发起视频聊天、手机端不支持桌面分享但可观看PC端桌面。 PC端Web运行效果包括:登录界面、显示对方摄像头或桌面。 四. 服务端源码说明 部署需使用HTTPS协议,服务端需使用WSS协议。本地测试无需准备SSL证书。 服务端初始化代码需根据部署环境调整配置。 五. Web端源码说明 Web端包含移动端和PC端代码,逻辑基本相同。 消息定义:定义种消息类型用于通信。 自定义消息处理器:在登录成功后注册回调函数。 一对一语音视频:用户间发送请求,对方选择同意或拒绝。 桌面分享:发起和回应过程与语音视频类似。 断网重连:网络中断时每5秒重试连接。 六. 本地部署Web端 移动端:通过HBuilder X运行uniapp项目。 PC端:安装NodeJS,使用npm命令启动Vue3项目。 七. 源码与测试 PC版源码与手机版源码可下载。 提供测试服务器,方便验证。sdd源码分析 通过本Demo,网页中实现视频聊天和桌面分享功能变得简单可行,满足多种平台与浏览器需求。基于vue实现Web视频聊天和屏幕分享(附源码,PC版+手机版)
实现网页文字聊天相对简单,但要实现视频聊天则较为复杂。本文将介绍一个纯网页版的视频聊天和桌面分享的Demo,可直接在浏览器中运行,无需安装插件。
一. 主要功能及支持平台
1. 本Demo的主要功能包括:
(1)一对一语音视频聊天。
(2)远程桌面观看。
(3)当客户端掉线时,会自动重连,网络恢复后重连成功。
2. 支持的平台包括:
(1)支持的操作系统有:Windows、信创国产Linux(银河麒麟、统信UOS)、Android、iOS、Mac、鸿蒙OS。
(2)支持的CPU架构有:X/X、ARM、MIPS、Loongarch。
(3)支持几乎所有主流浏览器:Chrome、mysql源码linuxEdge、Firefox、Safari、浏览器、QQ浏览器等。
(4)此外,使用APP套壳,在WebView控件中加载Demo页面,也能正常进行视频聊天。这可以在C/S架构的客户端或手机APP中嵌入WebView控件来引入视频聊天或桌面分享功能。
二. 开发环境
1. 服务端:
服务端开发环境是Visual Studio ,开发语言是C#。
2. Web端:
PC版Web开发环境是VS Code 1.,使用vue 3。
手机版Web开发环境是HBuilder 3.8.,uni-app(导出H5)。
三. 运行效果
此Demo的源码分为三个部分:服务端、PC端Web(横版)和手机端Web(竖版)。首先来看移动端Web的运行效果。
(1)登录界面有三个输入框:服务器IP、用户账号和用户密码,用户账号和用户密码均可随便填写。
(2)首页界面有一个已连接的提示框,表示目前与服务端是连接状态,因网络或其他原因断开时,会提示已断开连接。webrtc编辑源码
(3)发起视频聊天:输入对方的账号,点击请求视频会话按钮即可向对方发起视频聊天请求,对方接受请求后即可聊天。
(4)手机端不支持分享自己的桌面,但可以观看PC端桌面。
(5)PC端运行效果:登录后主页界面,左上角是关于自己的一些信息,右边窗口显示连接对方的摄像头或桌面。
(6)输入对方的账号,点击请求远程桌面,对方同意后即可观看别人的屏幕。
四. 服务端源码说明
注意,由于浏览器限制,将Web端部署到公网需要使用HTTPS协议,否则无法访问摄像头。
服务端也需要使用WSS协议,因此需要准备SSL证书用于部署。若仅在本地运行,则无需准备。
若不部署,则将服务端初始化代码中的第六行注释掉,并将第七行中的MultimediaServerFactory.CreateMultimediaServer方法中的wssOption用null替换掉。
若部署在服务器上,则需要将第五行XCertificate2中的两个参数分别修改为证书路径和密码。
五. Web端源码说明
本Demo中的Web端包含两套代码,移动端Web采用uni-app开发,PC端Web采用Vue框架开发。关键点如下:
1. 消息定义:定义了个消息类型,用于Web端之间进行通信,定义放在Vuex或src目录下的omcs目录下。
2. 自定义消息处理器:在登录成功后,通过调用多媒体管理器上的SetCustomMessageReceivedCallback方法,向multimediaManager注册回调函数,接收消息类型和发起者用户名数据,根据消息类型完成业务操作。
3. 一对一语音视频:实现逻辑为用户A向用户B发送VideoRequest消息,用户B收到消息后选择同意与否,并将携带用户B意愿数据的VideoResult消息发送给用户A。
4. 桌面分享:实现逻辑与语音视频类似,请求消息类型为DesktopRequest,响应消息类型为DesktopResult。
5. 断网重连:网络断开时,每5秒进行与服务器的重新连接,注入ConnectionInterrupted和ConnectionRebuildSucceed回调,在断开和重新连接成功时进行操作。
六. 如何在本地部署运行Web端
Web端包含两套代码,移动端Web目录是H5MediaDemo_WebH5,PC端Web目录是H5MediaDemo_WebPC。
1. 移动端web:通过HBuilder X运行,打开运行→运行到浏览器,选择浏览器即可运行。
2. PC端web:需要NodeJS环境,安装成功后,在命令行窗口输入node -v和npm -v检查是否安装成功。
在项目根目录下输入npm run dev运行项目。
七. 源码下载
(1)PC版源码
(2)手机版源码
此外,已部署测试服务器方便测试。
(1)PC Web测试网址
(2)手机 Web测试网址
网页版视频聊天Demo实现介绍到此结束,感谢!
OBS 源码分析- 采集方案之二(显示器采集)
OBS的视频录制功能支持多种采集方式,其中在plugin-main.c文件中定义了不同采集方式的结构体,并通过extern声明。在Windows系统中,特别是从Windows 8开始,显示器采集方式有所改变,以提高采集效率。Windows 8引入了Microsoft DirectX图形基础设施(DXGI)的API,旨在简化桌面协作和远程桌面访问,这一变化使得应用程序能够更轻松地访问和传输桌面内容。
Windows 8及更高版本的桌面采集API,称为桌面复制API,通过位图和关联的元数据进行优化,允许应用程序请求访问沿监视器边界的桌面内容。API提供的元数据包括脏区域、屏幕移动、鼠标光标信息等,应用程序可以根据这些信息进行优化,如基于脏区域进行处理、硬件加速移动和鼠标数据、以及压缩等。OBS的桌面复制功能主要在duplicator-monitor-capture.c、monitor-capture.c以及libobs-d3d中实现,使用DXGI技术来获取屏幕数据,相比传统GDI截图技术有显著性能提升。
在添加采集源时,选择使用DXGI技术可以解决fps采集的挑战,特别是对于Windows 8以上的系统。例如,在duplicator-monitor-capture.c中的duplicator_capture_tick方法会根据系统版本决定采用WCG还是DXGI。在使用DXGI时,关键函数如gs_duplicator_update_frame会被频繁调用,获取桌面资源,并可能遇到如DXGI_ERROR_WAIT_TIMEOUT的返回值处理问题。获取到纹理数据后,需要进行拷贝操作。
DXGI的开发基于COM技术,如果不熟悉这部分,理解相关代码可能会有难度。但熟悉COM的开发者会注意到,如IDXGIOutputDuplication这样的对象都继承自IUnknown。在使用OBS SDK进行二次开发时,确保包含libobs-winrt生成的DLL文件是至关重要的。
OBS桌面视频直播软件/推流工具使用指南
OBS操作指南
什么是OBS?
Open Broadcaster Software 是一款免费的互联网流媒体直播内容输入作软件,适用于OS X,Windows,Linux操作系统。
使用OBS是否需要付费?
不收取费用,OBS的程序与源代码均是免费提供。
OBS支持哪些操作系统?
支持OS X,Windows,Linux操作系统,满足多样的直播需求。
如何下载OBS?
请访问OBS官网获取最新版的软件。
OBS的通用设置有哪些?
在使用OBS进行直播时,建议进行本地录制以备不时之需。串流设置应根据直播平台要求进行参数配置,分辨率设置应根据观众体验选择适当值,同时调整FPS以确保流畅度。输出分辨率决定了画面清晰度,FPS则控制视频流畅度。
OBS提供了哪些输出设置?
具体包括输出分辨率、FPS、流码率等参数的调整,以适应不同直播场景。
如何减少直播延迟?
在OBS中进行一些设置可以有效减少直播延迟,提升观众体验。
OBS有哪些常见操作设置?
包括图像、图像幻灯片放映、视频捕捉设备、音频输入捕获、显示捕获、窗口捕获、游戏捕获、媒体源、文本、VLC视频源、BrowserSource等,用户可以根据实际需要进行选择和调整。
遇到直播卡顿、丢帧的情况如何解决?
可能的原因包括网络延迟、硬件性能不足、编码设置不匹配等,调整参数、优化网络环境、升级硬件设备或调整编码设置可能有助于改善直播质量。