自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(55)
  • 资源 (16)
  • 收藏
  • 关注

原创 【基于obs开发推流工具教程】-opengl渲染 -着色器源码-贴图分析

一,着色器源码:如果通过effect ->着色器源码的,主要通过effect 解析,然后拼接的源码举例:defult.effect拼接的顶点着色器源码,处理的位置:通过这个地方进行effect解析。着色器源码拼接的地方...

2021-05-28 18:34:08 3

原创 【基于obs开发推流工具教程】-opengl着色器源码分析

一,OBS openggl main 顶点着色器和片段着色器源码分析核心的代码区域:一个是顶点着色器,一个是片段,源码是通过字符串拼接的在default.effect 着色器源码中:拼接后的结果:,1 , #version 330const bool obs_glsl_compile = true;uniform mat4x4 ViewProj;in vec4 inputval_vert_in_pos;in vec2 inputval_vert_in_uv;out vec2 outpu

2021-05-27 16:26:22 3

原创 【基于obs开发推流工具教程】-工作室模块推流地方分析

第一,推送音频的地方在这里插入图片描述核心代码:疑问:为什么要stopped = stop_audio(transition);transition->transition_sources[0] = transition->transition_sources[1];transition->transition_sources[1] = NULL;把transition_sources【0】清空,是以前的预览元素第一,推送视频的地方第三,麦克风控制地方为什么要换成f

2021-04-25 18:11:45 9

原创 【基于obs开发推流工具教程】-多路推流,

基于版本obs25.0.8一, 同一数据源推不同的后台服务1,创建输出对象2,创建推送的server信息3,直接推送验证结果:两个不同的拉流地址不同画面推流画面地方控制:二,推送不同的画面和音频到不同的rtmp服务器多个outhanl控制(控制不同的画面可同时推出到不同发rtmp流媒体服务)关键代码地方:static void receive_video(void *param, struct video_data *frame);static void receive_au

2021-04-19 11:06:48 63

原创 nginx -rtmp多码率,动态码率二级m3u8适应

视频看这里此处是youtube的播放链接,需要科学上网。喜欢我的分享,记得订阅我的频道,打开旁边的小铃铛,谢谢支持。前言之前的一篇博文 https://xugaoxiang.com/2020/01/19/build-video-server-using-nginx-rtmp/已经简单的介绍了如何利用nginx、nginx-rtmp-module和ffmpeg实现基于rtmp协议的直播。今天这篇继续直播这个话题,聊聊hls的应用。HLSHLS(Http Live Streaming)是由Apple公

2021-03-31 18:41:05 141

原创 ngigx-vod-module视频格式 比较 dash,hls,mp4

https://www.cloudflare.com/zh-cn/learning/video/what-is-mpeg-dash/lhls ll-hls LL-HLS是指苹果公司在WWDC2019上发布的低延迟HLS协议,LHLS是指由JW、Mux、Wowza等公司牵头开发的社区版低延迟HLS,DASH-LL是指低延迟DASH协议 LL-HLS还需要HTTP2...

2021-03-26 14:49:23 32

原创 centos下nginx 编译安装

centos第一步:安装环境yum -y install gcc gcc-c++ make zlib-devel pcre-devel openssl-devel安装:–with-pcre=/web/upload/pcre-8.40 –with-zlib=/web/upload/zlib/1.2.3/http://nginx.org/download/nginx-1.19.8.tar.gz第二步./configure –prefix=/web/webserver/nginx-vod-te

2021-03-10 18:13:30 12

原创 AV1编码各种浏览的版本支持

在这里插入图片描述https://caniuse.com/?search=av1

2021-03-08 10:01:56 800

原创 kaldi数据准备

排序,清楚差异的信息:去1000spk2utt:

2021-02-26 19:04:23 30 3

原创 windows 下安装ubuntu

一个月前windows刚好宣传了WSL2对GPU的支持,虽然WSL一直因为对IO支持不佳被诟病,但是从简洁性来看还是很值得想学linux但又不想配置虚拟机的同学们的。刚好自己想在本地配置个kaldi,这里就介绍一下这一系列配置过程。 首先安装WSL,直接上microsoft store搜索ubuntu,下载第一个安装好之后,进入windows功能,将子系统功能打开,就可以使用了。WSL的root根目录一般在C:\Users\User\AppData\Local\Packages\CanonicalG

2021-02-26 16:40:37 38

原创 kaldi windows安装教程

教程:https://blog.csdn.net/yutouwd/article/details/89951025相关的资料:http://antkillerfarm.github.io/ai/2018/06/04/kaldi.html#kaldi结构说明:https://blog.csdn.net/yutouwd/article/details/86662250?spm=1001.2014.3001.5501

2021-02-26 14:28:05 49

原创 【基于obs开发推流工具教程】-OBS 人脸特效facemask-plugin如何调用

通过facemask-plugin效果展示:第一步:拷贝data资源文件拷贝到:第二步:处理facemask-plugin 的运行异常1,//subdiv.getTriangleIndexList(triangleList); 屏蔽,要用pencv 更高级的版本2,gs-texture.cpp 101 行 /m_texture = gs_cubetexture_create(size, format, mip_levels, mip_data, (flags & Flags::Dy

2021-02-23 15:27:02 117

原创 【基于obs开发推流工具教程】-OBS 人脸特效facemask-plugin的编译

第一步下载资源a,facemask-plugin:https://github.com/stream-labs/facemask-plugin注意:tirdpartyd的3个资源包分开下载,资源包很大由于网速差资源下载很慢,多试几次,下载了几天才成功b:下载OBS源码,用的是OBS25.0.8版本第二步编译添加OBS source的路径编译后的由于源码中opencv.lib的版本是4.0.0编译后报错需要高版本的opencv,有空在验证第三步,验证拷贝需要的库到plugins中

2021-02-19 16:21:04 127

原创 【基于obs开发推流工具教程】-导出音视频文件方式

1,创建的接口obs_output_t *obs_output_create(const char *id, const char *name,obs_data_t *settings, obs_data_t *hotkey_data)2,创建的方式a,id:“ffmpeg_encoded_output” --ffmepg标准方式输出b,id:“ffmpeg_muxer” -标准输出方式c,id:.“replay_buffer” --缓存回放d,.id :: “flv_output”

2021-02-02 16:07:20 113

原创 【基于obs开发推流工具教程】-滤镜创建的流程

操作入口:第一步:打开滤镜管理窗体source:选择的数据源第二步:添加选择的滤镜id:滤镜的Id 亮度键id:luma_key_filter第三步:在数据源中保存添加的滤镜,保存在缓存中

2021-02-02 11:22:23 62

原创 OBS 如何添加qt 的ui文件

OBS 上层界面是用QT+C++11来完成的,对OBS进行开发需要添加自己新的ui界面,以下是添加ui的过程第一:用qtcreator创建窗体文件第二:拷贝文件到OBS自建目录第三:把新文件添加到cmake里面然后把自定义的目录的cpp,h ,ui 添加到工程里面最后结果:...

2021-01-13 16:56:12 46

原创 OBS 编译缺少Could NOT find LibVLC_INCLUDES win-dshow plugin disabled

编译OBS的时候碰到的问题第一:libdshowcapture submodule not found! Please fetch submodules. win-dshow plugin disabled.CMake Warning (dev) at D:/test/obs-source/文件包/cmake-3.17.4-win32-x86/cmake-3.17.4-win32-x86/share/cmake-3.17/Modules/FindPackageHandleStandardArgs.

2021-01-12 18:20:39 231

原创 obs 虚拟摄像头插件obs-virtualsource.dll注册失败问题0x80070005 和自配置

先把编译好的obs-virtualsource.dll和obs-virtualoutput.dll,obs版本号是25.0.8,虚拟摄像头插件是2.0.5需要自己编译,前面有介绍一,把编译好的obs-virtualsource.dll文件拷贝和obs.exe同级目录二,把obs-virtualoutput.dll插件库拷贝到obs-plugins目录三,如果要显示中文把locale等信息文件拷贝到 data目录注意如果编译的是32的摄像头插件,在regsvr32 注册的时候一定要以管理员

2021-01-08 21:59:22 233

原创 【基于obs开发推流工具教程】-编译virtualcam 2.0.5虚拟摄像头

编译virtualcam 2.0.5虚拟摄像头环境:vs2017 ,cmake3.17,obs25.0.8 ,virtualcam 2.0.5,qt 5.12第一步要把obs先编译好1,下载virtualcam 2.0.5https://github.com/Fenrirthviti/obs-virtual-cam/releases/tag/2.0.52,cmake配置按照自己电脑的环境进行配置,现在编译的是32位的。3,生成的工程...

2021-01-08 14:55:35 269

转载 OBS常用的插件

remote-websocket 远程控制插件spectralizer 音频频谱virtualcam 虚拟摄像头NDI 局域网视频无线传输技术NDI插件shader filter 文字图片特效滤镜transition matrix 过渡矩阵scrab 截图lower third in html/css 文字运动特效input overlay 输入显示motion-effect 动画效果reply source 回放控制advanced scene switcher 高级场景切换器PT

2021-01-08 11:19:12 432

原创 【基于obs开发推流工具教程】-录制,推流音视频编解码创作流程

记录obs高级模式下地方(AdvancedOutput),简单模式在SimpleOutput一,视频初始化: AdvancedOutput 初始化函数OBSEncoder h264Streaming;//推流视频编码OBSEncoder h264Recording; //录制视频编码OBSEncoder streamAudioEnc; //推流音频编码OBSEncoder aacTrack[MAX_AUDIO_MIXES]; //给录制和缓存播放音频编码,高级设置支持6个音轨。简单模块式的音频

2021-01-07 18:47:57 57

原创 基于obs开发推流工具教程】-摄像头数据采集和渲染流程

一,OBS摄像头渲染涉及到两个线程1,win-dshow.dll:摄像头设备信息采集,数据的采集(DShowThread线程)2,libobs.dll :摄像头数据的渲染(obs_graphics_thread线程)二,摄像头数据采集(win-dshow)DShowThread-》obs_source_output_video2-》obs_source_output_video_internal-》三,摄像头数据显示流程(libobs.dll)obs_graphics_thread->t

2020-12-31 11:59:33 67

转载 OBS音频数据混音、编码、推流数据流程

转发:https://blog.csdn.net/haoxiangnia111?spm=1001.2014.3001.5343

2020-12-25 17:22:25 34

原创 【基于obs开发推流工具教程】-数据源属性设置和主面板数据同步流程

数据源属性设置和主面板数据同步流程1,文本的UI控制的流程第一步:保存属性设置里面修改的信息WidgetInfo::ControlChanged()->WidgetInfo::TextChanged(const char *setting)->obs_data_set_string(view->settings, setting, QT_TO_UTF8(edit->text())); //source 信息改变了第二步:修改source的1,WidgetInfo::

2020-12-24 18:32:51 45 1

原创 【基于obs开发推流工具教程】-direct主窗体渲染 RenderMain分析

一,控制能选择数据源部分代码:window->ui->preview->DrawSceneEditing();二,数据源溢出控制window->ui->preview->DrawOverflow(); //控制数据源溢出三数据源具体内容控制地方文本:obs_graphics_thread-》tick_sources-》obs_source_video_tick-》obs_source_deferred_update-》TextSource::Update

2020-12-24 15:19:46 23

原创 【基于obs开发推流工具教程】-direct主窗体渲染和创建数据源渲染分析

主要是在windows下测试,是通过directx渲染,别的平台通过opengl,流程是一样的一,主窗体directx 渲染区域代码流程:obs_graphics_thread()->render_displays()->render_display()->回调到UI线程for (size_t i = 0; i < display->draw_callbacks.num; i++) {struct draw_callback *callback;callback

2020-12-23 19:42:45 52

原创 【基于obs开发推流工具教程】-窗口渲染线程流程和obs_display_t分析

一,OBS 渲染函数执行的流程libobs: obs_graphics_thread->render_displays->render_display ->obs(主工程) RenderMain(主要的绘制函数)二,OBS主工程UI和libobs绘制线程回调绑定绑定:obs_display_remove_draw_callback(ui->preview->GetDisplay(),OBSBasic::RenderMain, this);移除绑定:obs_displ

2020-12-23 11:31:44 111

转载 QT5.7和QT5.12不同版本 https请求openssl库支持分析

Qt自带的老版本OpenSSL1.0.x在今年(2019)就要结束LTS支持了,从本版本开始(5.12.4)Qt将启用1.1.x,新版本带来的TLS1.3,以前的libeay32.dll和ssleay32.dll变成了libcrypto-1_1.dll 和libssl-1_1.dll

2020-12-22 17:49:48 134

原创 【基于obs开发推流工具教程】-简单输出录制和高级输出录制源码分析

简单输出模式和高级输出模块源码分析1,设置位置2,高级模式:创建管理:CreateAdvancedOutputHandler3,简单模式:创建管理类:CreateSimpleOutputHandler4,初始化类分析a.编码器类型recType:ffmpeg,标准ffmpegOutput = astrcmpi(recType, “FFmpeg”) == 0;ffmpegRecording =ffmpegOutput &&config_get_bool(main-&gt

2020-12-21 19:39:34 148

原创 【基于obs开发推流工具教程】-opengl和Direct 11纹理效果统计

纹理效果统计1,area.effect - 面积效果bicubic scale.effect -双立方刻度bilinear lowres scale.effect-双线性低分辨率deinterlace base.effect -去隔行基础deinterlace_blend.effect 去隔行混合deinterlace linear.effect 去隔行线性deinterlace yadif.effect 去隔行扫描Yadifformat conversion.effect 格式转换la

2020-12-21 17:04:05 61

原创 【基于obs开发推流工具教程】-opengl和Direct 11接口统计

一,平台初始化:#if _WIN32config_set_default_string(globalConfig, “Video”, “Renderer”,“Direct3D 11”);#elseconfig_set_default_string(globalConfig, “Video”, “Renderer”, “OpenGL”);#endifwindows平台默认的是用Direct 进行渲染,Direct对于windows不同显卡的兼容性跟好一些。2,源码渲染器创建流程1,OBSBa

2020-12-21 15:23:23 78

原创 【基于obs开发推流工具教程】-音频声道知识介绍

enum speaker_layout {SPEAKERS_UNKNOWN,//未知声道SPEAKERS_MONO,//单声道SPEAKERS_STEREO,//立体声道SPEAKERS_2POINT1,//2.1声道系统:在这两声道基础上,加一路重低音输出声道SPEAKERS_QUAD,//四声道SPEAKERS_4POINT1,//前置和后置都是一个左右声道加一个低音炮SPEAKERS_5POINT1,//中央声道,前置左、右声道,后置左、右道,及所谓的0.1声道 重低音声道SPEAKE

2020-12-21 11:05:14 98 1

原创 【基于obs开发推流工具教程】-高级音频属性介绍

在混音器中空白处右键点击"高级音频属性"进入设置界面每个音频信号均会在此罗列。名称:对应的声源名称;状态:激活状体表示当前的音频源可以用,当前(切换至PGM)场景下的音频源和默认采集设备方式添加的音频源均会处于激活状态。去掉“高级音频属性”设置界面左下角“仅活动源”前面的复选框,可以列出未激活的音频源。音量:可以进行声音的衰减或者增益(区别:混音器中的推子不能增益,只能衰减),单位dB。单声道:复选后,该声音会左右声道混音。平衡:调节声相,即左右声道声音的大小比例。同步偏移:增加或者减小延迟

2020-12-18 14:26:33 190

转载 【基于obs开发推流工具教程】-obs模块介绍

核心库libobs: obs的核心库,其他的插件都基于他的基础上,同时它也会操作管理各个插件资源。就好像爪子一样,伸向各个地方,暂且可以这么理解。基础库glad 对OpenGL函数的封装 使用 dlopen和dlsym是用于打开动态链接库中的函数,将动态链接库中的函数或类导入到本程序中,为了解决 没有lib库,只有dll库的尴尬情况。这种方法在obs中很多地方用到,例如:vlc插件的加载。ipc-util 进程间通信,主要封装了pipe管道的实现,用于在hook 游戏进程时,传递原始画面

2020-12-17 17:09:12 188 1

原创 【基于obs开发推流工具教程】-OBS初始化模块分析

1. 程序初始化:OBSApp::AppInit()if (!InitApplicationBundle())throw “Failed to initialize application bundle”;if (!MakeUserDirs())//用户配置路径初始化throw “Failed to create required user directories”;if (!InitGlobalConfig())//程序全局设置初始化throw “Failed to initialize g

2020-12-17 16:43:58 72

原创 obs-studio 编译-vs2017+qt5.12环境搭建

一,环境准备1.项目预构建依赖【FFmpeg, x264, cURL, and mbedTLS】https://obsproject.com/downloads/dependencies2017.zip2.Qt5.12http://download.qt.io/archive/qt/5.12/3.cmakehttps://cmake.org/download/下载对应版本注意下载的版本最低要3.16以上,最后下载的3.17.44,拉取obs源码:拉取的OBS版本号是25.0.8git c

2020-12-17 10:06:44 120 1

原创 【基于obs开发推流工具教程】-线程梳理

OBS主要线程共五个:1.主线程:主要做一些初始化工作和UI处理2.视频渲染线程:渲染视频到窗口3.视频编码线程:编码原始视频4.音频编码线程:编码原始音频5.流输出线程:将编码后的音视频数据发送出去-推流。...

2020-12-17 09:39:53 52

原创 【基于obs开发推流工具教程】-音视频滤镜vid 统计

压缩器:compressor_filter反转极性:invert_polarity_filter噪声抑制:noise_suppress_filter噪音阈值:noise_gate_filter增益:gain_filter扩展效果:expander_filter视频延迟(异步):async_delay_filter限幅:limiter_filter...

2020-12-16 18:05:52 56

原创 【基于obs开发推流工具教程】-图片滤镜vid 统计

亮度键:luma_key_filter图像掩码/混合:mask_filter应用 LUT:clut_filter渲染延迟:gpu_delay滚动:scroll_filter缩放比例:scale_filter色值:color_key_filter色度键:chroma_key_filter色彩校正:color_filter裁剪/填充:crop_filter锐化:sharpness_filter...

2020-12-16 18:00:14 77

原创 【基于obs开发推流工具教程】-数据来源vid 统计

在这里插入图片描述创建来源vid统计:图片:image_source图像幻灯片放映:slideshow场景:scene媒体源:ffmpeg_source文本 (GDI+):text_gdiplus显示器捕获:monitor_capture游戏捕获:game_capture窗口捕获:window_capture色源:color_source视频捕获设备:dshow_input音频输入捕获:wasapi_input_capture音频输出捕获:wasapi_output_captur

2020-12-16 14:17:43 48

qt openssl_32.rar

qt https 研发需要的libeay32.dll ssleay32.dll 32位的支持win all 32,64系统运行,支持qt32位应用程序 ,非常不容易找到的32位openssl库,现在官网上已经没找到了。

2020-12-11

Qt5.12_openssl.rar(32位)

QT5.12 HTTPS请求 TLS failed 需要的openssl库 适用于win32的程序。 qt.network.ssl: QSslSocket: cannot resolve TLSv1_1_client_method qt.network.ssl: QSslSocket: cannot resolve TLSv1_2_client_method qt.network.ssl:

2020-11-26

Qt5.12_openssl.rar

QT5.12 HTTPS请求 TLS failed 需要的openssl库 QT5.12 HTTPS请求 TLS failed 需要的openssl库

2020-11-11

QTAV_lib_win_x86_64_debug.rar

qtav 可以在msvc2017下运行使用。release两个版本,附带sdk_install.bat 编译好的QtAV库Qt_5_12_2_MSVC2017debug

2020-10-20

QTAV_lib_win_x86_64_release.rar

可以在msvc2017下运行使用。release两个版本,附带sdk_install.bat 编译好的QtAV库Qt_5_12_2_MSVC2017Release

2020-10-20

dependencies2015-2017.rar

dependencies2015-2017.rar

2021-03-10

facemask-plugin-staging.rar

opengl面部遮罩

2021-03-10

obs25.0.8_record11.rar

obs25.0.8_record11.rar

2021-03-10

MediaInfo_x64_86.rar

依赖MediaInfo 获取音视频相关的信息库,支持vs2008 2010 2012 2013 2015 2017,Delphi等,包含x64 x86

2020-12-08

mindmasterpj_114009.rar

mindmaster pro 面注册

2020-12-25

libmediainfo_20.09_AllInclusive.7z

mediainfo源码库,支持VS2008 2010 2013 2015 2017 2019

2020-12-11

qt 5.12+obs25.8 运行发布需要的动态库(32位debug)

基于qt5.12+obs25.8 二次研发开发的程序,发布应用的时候,运行发布需要的动态库(32位debug)

2020-11-26

x86-libeay32.dll-ssleay32.dll.rar

QT5.12 HTTPS请求 TLS failed 需要的openssl库 适用于win32的程序。 qt.network.ssl: QSslSocket: cannot resolve TLSv1_1_client_method qt.network.ssl: QSslSocket: cannot resolve TLSv1_2_client_method qt.network.ssl:

2020-11-26

QT5 全局快捷键的封装

适用于 qt5 封装的全局快捷键, 调用方法m_pF10Shortcut = new MyGlobalShortCut("F10", this); QObject::connect(m_pF10Shortcut, SIGNAL(activated()), this,SLOT(slot_onStop()));

2020-11-10

UDPCS 工具

UDPCS工具 ,UDP协议客户服务器端代码

2013-12-19

mfc Silder

MFC VC C++ Silder控件点击滚动条精确定位 设置值

2013-12-19

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除