清水迎朝阳
多年windows下c++客户端开发,或多或少踩了很多坑,积累了一些经验
展开
-
OBS 进阶 之 可自定义的全局热键
如果,不清楚OBS如何添加UI资源,参考这篇文章:OBS 基础11 添加自定义对话框在这个对话框中,添加快捷键编辑控件如果不自定义的话,默认会有 CTRL+H,CTRL+O,... 等,用逗号隔开的组合快捷键, 我的项目中,是不需要这样组合的,所以需要自定义下。原创 2023-09-11 14:54:27 · 536 阅读 · 0 评论 -
OBS 进阶 音频面板优化
因为,面板高度就那么大,如果声音源很多的话,就有点乱。优化目的:静音的,自动放在底部,这样,音频面板上面的都是没有静音的,也是我们最关注的部分。原创 2023-01-03 18:32:20 · 498 阅读 · 0 评论 -
OBS 进阶 之 设置摄像头初始化分辨率
默认情况,添加摄像头时,使用的1080P或更大的分辨率,这时候录像时,摄像头很容易卡,所以得想办法,添加新摄像头时,尽量不要使用那么高的分辨率,以免卡顿。新添加摄像头时,若JSON有此摄像头ID信息,则根据JSON设置其分辨率,若无,则设置默认分辨率720P。添加新摄像头时,查找此摄像头ID对应的分辨率,若有时,使用此分辨率,若无时,设置默认分辨率。网上有一些开源的JSON读取方式,可以借鉴,我这里使用我自己的JSON代码读写。设置一个JSON文件,保存摄像头ID,及最后设置的分辨率。原创 2023-02-28 18:19:47 · 467 阅读 · 0 评论 -
OBS 进阶 之 主进程中获得摄像头信息
参考:obs-studio->plugins->win-dshow->data->locale->zh-CN.ini。其中有一项,设备,是枚举的各个摄像头,可通过设备列表的个数,来获得摄像头的个数。需要添加一个摄像头源,但不想每次都跳出属性窗口,而是想直接添加。选择摄像头2,先把摄像头1源删除掉,在自动加上摄像头2。选择摄像头1,直接添加上这个摄像头源,属性默认,比如,有两个摄像头, 摄像头1,摄像头2。将枚举到的摄像头设备,添加到设备列表中。4)添加设备列表,枚举摄像头设备。具体,设备改变时,做的操作。原创 2023-02-24 17:11:15 · 759 阅读 · 0 评论 -
OBS 进阶之opengl使用方式 8 晶体管数字3 2 1倒计时显示
再上一篇里OBS 进阶之opengl使用方式 7 倒计时显示, 显示 三 二 一 倒计时后,再正式录制, 介绍了汉字 三 二 一 的显示,但是一般倒计时都是用的数字,本节主要介绍数字 321的显示,不过使用的晶体管数字的显示方式。关键点是:顶点数组的设计一、晶体管 3、2、1绘制1、1的顶点数组obs中y轴正方形朝下static gs_vertbuffer_t * CreateOneVer()//1 { float thi...原创 2021-10-29 14:59:46 · 809 阅读 · 0 评论 -
OBS 进阶之opengl使用方式 7 倒计时显示, 显示 三 二 一 倒计时后,再正式录制
要实现的倒计时效果如下:目录一、opengl显示 倒计时1、矩形顶点数组2、在指定相对位置绘制3、在实际位置绘制4、由相对位置获得实际位置5、绘制 一6、绘制 二7、绘制 三8、添加自己的渲染绘制二、定时响应难点有两个,一个是显示、一个是延时录制一、opengl显示 倒计时数字3、2、1 显示比较麻烦,但汉字三、二、一显示则较为简单就是利用基本的矩形顶点数组,对其进行平移 、放缩变换就可实现1、矩形顶点数组s...原创 2021-10-27 16:37:52 · 807 阅读 · 0 评论 -
OBS 进阶之opengl使用方式 6 自定义界面按钮
本节的目的是:在预览层上实现绘制一个OPENGL按钮,并且点击后,会触发按钮的响应动作。一、自定义OPENGL按钮只所以想用OPENGL生成按钮,是因为OBS 预览层是使用OPENGL绘制的,普通的按钮会有毛刺感,看起来很不舒服,所以,我选用了OPENGL来简单绘制一个按钮,模拟按钮的功能。具体流程如下:1)先生成一个普通的隐藏按钮,以便相应消息2)opengl方式绘制按钮图形3)响应鼠标按下消息,当左键点击的是OPENGL按钮范围内,则触发第1步的隐藏按钮的...原创 2021-07-29 11:10:31 · 970 阅读 · 0 评论 -
OBS 进阶之opengl使用方式 5 使用opengl 绘制三角形方式GL_TRIANGLES, 绘制目录按钮 和箭头按钮
闲话少叙,直接看效果方法:使用自定义顶点数组的方式,绘制采用GL_TRIANGLES方式,每三个顶点一个三角形代码如下:一目录按钮原创 2020-11-09 10:22:10 · 1052 阅读 · 2 评论 -
OBS 进阶之opengl使用方式 4 在预览层任意位置绘制自定义图形
前几篇,讲了OBS中opengl绘制原理,及OBS中矩阵含义本篇写几个实在代码,演示,如何在OBS预览层在我们希望的位置 绘制我们想绘制的图形一 定位矩阵要想在指定位置绘图,首先要能定位到指定的位置。通过上一篇,可以知道OBS中矩阵可以定位视频源的位置比如下面的矩阵,起点在(930,30)长宽分别为320,240现在,我们要定位画布中任意位置,也要借鉴一个矩阵1.1由输出视频的分辨率,获得定位矩阵假如,我们设置的视频输出分辨率为128...原创 2020-11-05 18:07:27 · 834 阅读 · 7 评论 -
OBS 进阶之opengl使用方式 3 OBS 中 使用的相关矩阵及使用解释
目录一矩阵相乘1.1 矩阵左乘顶点,获得变换后的顶点 1.2矩阵与矩阵相乘二 OPENGL 几种重要的矩阵2.1 平移矩阵Translation matrices2.2单位矩阵Identity matrix2.3缩放矩阵Scaling matrices2.4 矩阵变换顺序三 OBS使用的矩阵3.0 OBS中矩阵的含义3.1 OBS中平移矩阵gs_matrix_translate3.2 OBS中 缩放矩阵...原创 2020-11-03 18:34:42 · 756 阅读 · 0 评论 -
obs 进阶之opengl使用方式 2 预览层 使用Opengl 进行着色器效果编程
序opengl中,着色器是重要部分,可以在GPU中加速计算。着色器中主要是顶点着色器 、像素着色器(有时候也叫片段着色器)顶点着色器,主要对顶点进行处理,包括顶点位置,颜色信息等像素着色器,主要对顶点顶点间的那些像素点进行渲染这里主要分析OBS中预览层是如何使用着色器进行效果编程的一 obs效果文件1.1存放位置1.2 effect文件分析 以solid.ffect为例uniform float4x4 ViewPr...原创 2020-10-24 14:23:29 · 627 阅读 · 0 评论 -
obs 进阶之opengl使用方式 1 预览层 使用Opengl 顶点数组绘制分析
序 OBS预览层这一层非常重要, OBS中视频的显示预览都是在这一层实现的这一层的视频显示主要是使用opengl实现的一 OBS使用OPENGL方式1.1 obs中 openGL数据结构定义 obs中,有关GL图形处理封装,基本都在libobs\graphics\graphics.h中,这里定义封装了d3d\opengl通用的数据结构与接口。 重要的几个如下:enum gs_draw_mode { ...原创 2020-10-24 14:21:15 · 650 阅读 · 0 评论 -
obs 进阶之opengl使用方式 0 OBS中绘制方式
OBS为了对OPENGL和D3D统一处理,其绘制方式提供了只提供了两者都具相同效果的部分enum gs_draw_mode { GS_POINTS, //对应 点 GL_POINTS GS_LINES, //对应 线 GL_LINES GS_LINESTRIP, //对应 条带线 GL_LINE_STRIP GS_TRIS, //对应 独立三角形 GL_TRIANGLES GS_TRISTRIP ...原创 2020-11-06 14:38:54 · 1119 阅读 · 0 评论 -
OBS 进阶 一个从自定义对话框中 传参到插件的例子
OBS 基础11 添加自定义对话框,不在细讲Q_OBJECTprivate:public:public:这里,QSlider值改变信号关联了两个两个事件其1,是本类的事件,用以将QSlider当前值显示在文本中另外一个,则是parent_的事件,这里的parent_,就是 OBSBasic实例。//1 32//2 48//3 64//4 80//5 96to do here参考之前文章,自定义的额外参数可保存到 global.ini中。原创 2023-02-10 17:00:54 · 529 阅读 · 0 评论