自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(493)
  • 资源 (41)
  • 收藏
  • 关注

原创 qt 如何制作动态库插件

首先第一点要确定我们的接口是固定的,也就是要确定使用extern “C” 来保持接口能被正确的找到函数名rtspplugin_global.h 文件定义宏defined文件实现如下,需要定义一个结构体,将需要保存的数据结构都放在里面qt的pro文件如下+=ifdeprecatedifdo+=0x0600006.0.0for编译完成,正确生成 动态库。

2024-07-24 16:28:37 374

原创 c++写数据结构进入文件

【代码】c++写数据结构进入文件。

2024-07-16 14:01:26 171

原创 嵌入式上gst rtsp server opencv mat

注意一定要加上dev。

2024-07-04 13:50:45 421

原创 ue 材质贴图Tiling repeat

拖出一个TexCoord,代表坐标,拖出一个参数,代表次数,如下操作:为了实现Tiling,你需要修改Texture Coordinate节点的UV值。这可以通过简单的数学运算来完成,例如乘以一个数值。例如,如果你想要纹理平铺两次,你可以创建一个Scalar Parameter(标量参数)节点,设置其值为2,然后将其输出乘以Texture Coordinate节点的输出。这会将UV坐标翻倍,从而导致纹理在U和V方向上平铺两次。贴图显然不符合逻辑,太大,并且是一次性贴图。换一个红砖纹理,就看清了,砖太大了。

2024-06-26 21:26:33 457

原创 极简opencv操作xml文件

修改xml文件,先产生一个临时文件,拷贝,修改,改名,使用opencv 非常简单地就可以搞定配置xml文件。

2024-06-13 07:34:27 360

原创 dx11硬件解码传递给opencl并行处理

使用ffmpeg进行directx11 解码将解码后的NV12格式数据从D3D11 Texture中通过OpenCL处理需要经过几个步骤:首先,确保D3D11 Texture正确设置并与OpenCL上下文关联;然后,将NV12数据分两个步骤处理(Y平面和UV平面);最后,在OpenCL内核中处理这些数据。

2024-05-28 14:24:00 415

原创 视频拼接融合产品的产品与架构设计(四)分布式GPU运算合并单元

视频拼接 视频融合 数字孪生 视频孪生

2024-05-26 19:18:50 901

原创 香橙派华为昇腾CANN架构编译opencv4.9

这块小盒子本身带了一些例子,不过我们最需要的是如何发挥他的关键,就是硬件资源调度,在教育、体育、安防、交通、医疗等领域中,AI检测应用发挥着至关重要的作用,比如在各种安全分析,各种体育训练时的实时人体关键点检测可以精确、实时地捕捉运动员的动作,在安防应用场景中,识别各种异常现象和异常行为或特定姿态,以达到场景安全防控的目的。

2024-05-25 08:22:29 907

原创 opencl 基础:如何编译核函数

CUDA和OpenCL类似,都是异构并行计算系统。系统中有一台主机和一个或多个计算设备。关于计算设备,CUDA中叫做多喝流处理器(SM),而OpenCL中叫做计算单元(CU)。另外,在OpenCL中一个CU在CPU中相当于CPU的一个内核。get_global_id是OpenCL编程语言中的一个内置函数,用于在OpenCL内核(kernel)中获取当前工作项在全球工作空间中的唯一标识符(ID)。这个标识符通常是多维的,对应于内核执行时定义的全局工作项的索引。

2024-05-23 07:06:17 336

原创 opencl色域变换,处理传递显存数据

在使用ffmpeg解码后的多路解码数据非常慢,还要给AI做分析,可行的加速方式是在显存处理数据,在中,提高了比较可靠的方式是使用cuda,那么没有cuda的显卡如何处理呢,比较好的方式是使用opencl来提高数据传输方式。

2024-05-22 06:01:00 560

原创 unity 如何开启360视频的转向

只是个简单的做法,事实上需要大量插件代码,硬件解码加上贴图,假设我们准备好了360 视频。

2024-05-17 05:49:47 218

原创 视频拼接融合产品的产品与架构设计(三)内存和显存单元数据迁移

下一篇会往整体架构上写,多画图,少代码。

2024-05-13 16:44:13 982

原创 windows编译opencv4.9

opencv很多人在windows上编译感觉特别麻烦,没有linux下方便,设定以下三点,我们几乎会无障碍。

2024-05-12 09:33:24 533 2

原创 视频拼接融合产品的产品与架构设计(二)

总之效率是最重要的,还有一点一直是我所思考的,如果死磕gpu,那么cpu 会浪费,所以对gpu 和 cpu 除了要分布式处理,还要进行分担,所以我决定从多点出发,需要进行cpu 前处理插件点,gpu处理插件点,gpu下拉后插件点 ,利用cpu 多核处理能力,同时分担gpu的任务。未完,待续。。。。。。。

2024-05-10 14:10:33 1079 2

原创 c++ libtorch使用cmake建立

如果我们安装好pytorch,其实不一定一定要安装libtorch,默认都已经安装过了。

2024-05-09 17:00:25 341

原创 ffmpeg 转文件为h265

nvidia-smi±----------------------------------------------------------------------------------------+| NVIDIA-SMI 551.61 Driver Version: 551.61 CUDA Version: 12.4 ||-----------------------------------------±-------------------

2024-05-04 08:12:28 881

原创 ffmpeg 转换es流成为ps流

目的是将es流转换成为ps流。

2024-05-02 21:18:11 645 2

原创 简单使用asio发送组播包

直接使用asio库来发送,这样比较简单。

2024-05-02 20:45:28 171

原创 视频输入c++ 调用 libtorch推理

libtorch 支持GPU情况比较奇怪,目前2.3 版本需要在链接器里面加上以下命令,否则不会支持gpu-INCLUDE:?

2024-04-27 04:54:00 622 1

原创 使用零拷贝技术加速视频图像操作

总结起来,使用cv::cuda::HostMem的主要优点在于:减少数据拷贝:利用CUDA的零拷贝技术,可以避免不必要的内存复制,提高数据交互效率。优化内存访问:通过设置合适的内存属性(如OST_MEM_WRITE_COMBINING),可以提高内存访问性能。请注意,实际效果取决于硬件环境、CUDA驱动支持以及具体的应用场景。对于现代GPU架构,特别是在支持统一内存访问(UMA)或非一致性内存访问(NUMA)的系统上,使用HostMem可以获得更好的性能优势。

2024-04-26 06:55:26 407

原创 硬件解码后显存数据直接推理

网络摄像头解码的时候传输到内存中后数据比原始的rgb 图像要小很多,这时候直接传输到显卡以后解码,速度很快,而mipi摄像头如果不使用dma技术,结果会直接用rgb传输到显存中,可想而知,数据量大,一下子慢了下来,就是这个原因。

2024-04-25 19:31:52 259

原创 如何使用cuda进行图像矫正

相机矫正我们经常会用到,如果没有gpu加速,实际上矫正会很吃力,我们先用普通的矫正。

2024-04-16 13:13:40 486

原创 使用avx2 指令集加速向量算法运算

我们使用向量加,为什么函数是0 到 8 的计算,因为avx2 寄存器为256位,同时设置启动增强指令集猜猜以上代码会怎么样,如果是在debug下,明显avx2 指令集会快,在release下,普通代码立刻甩开了avx2指令,所以一定要判断数据量,下面重写代码来测试。

2024-04-13 08:43:07 658

原创 使用vulkan 和 glsl来渲染 yuv nv12

1.1 编写一个顶点着色器(Vertex Shader),用于处理顶点数据(通常用于几何变换)。1.2 编写一个片段着色器(Fragment Shader),用于处理像素级别的颜色转换。使用着色器编译器(如glslc)将GLSL源代码编译为SPIR-V二进制格式。Vulkan运行时能够直接加载和执行SPIR-V代码。在Vulkan中创建着色器模块,将SPIR-V代码加载到这些模块中。创建描述符集和描述符集布局,用于向着色器提供输入数据(如YUV纹理)和输出数据(如转换后的RGB图像)。

2024-04-11 22:01:52 553

原创 ffmpeg cuda硬件解码后处理使用opengl渲染,全硬件流程

整个流程是一旦数据到了cuda内核,就不要轻易下载到内存,直接在cuda里面进行操作,一直到渲染完毕,后面在给出完整的代码示例。

2024-04-08 21:12:08 824

原创 在gb2818 中计算ssrc可使用的三个hash算法

三个hash算法

2024-03-30 21:04:24 196

原创 解码视频流在opengl中的贴图投影计算

我们把视频当成纹理,首先要确定贴入的坐标,原始坐标如下所示实际上我们要确定的是opengl的投影视窗,视窗大小就是位置,相当于把解码图像放到窗口中的什么位置,这里并不是纹理位置,纹理位置是具体取到那一块的纹理,涉及到放大缩小,我们写一个顶点着色器,如下所示330没有任何约束,放出来的贴图会随着窗口的变化而变化,问题是不成比例,视频展现失比例拉伸,对展现并不友好。我们要使用向量的运算来修改投影视窗。

2024-03-28 21:58:54 573 2

原创 基于cuda和opengl高性能处理渲染多阵列摄像头8K画面(一)

科学!=技术,非常有同感,接触过很多博士,硕士,博士的科学理论化和想象力更多一些,用于指导技术,而一些硕士和本科的技术的实践性更强一些,用于反向传播科学的参数,从而显现偏差,再来纠偏,这就和业务部门必须指导技术部门一样的道理,业务部门可以想象自己的处理方式,最后技术部门必须落地。我有一个比较映像深刻的地方就是闫令其老师在讲课图形学的时候,底下一个学生问体积着色的问题,一下把老师整蒙了,把底下听课的我也整笑了,就像你再问总统说我家里的拖把如何拖地的问题一样,事实上,这种细节问题显然不是图像学的基础,而是在工业

2024-03-28 09:37:12 905

原创 glsl改变纹理坐标来放大图像

使用顶点着色器和片段着色器来放大图像

2024-03-25 22:13:08 274

原创 如何解决新版的anaconda notebook 打不开浏览器

先安装nodejs,删除其他源头,留下默认,重新安装notebook,修改配置,最后选择浏览器

2024-03-10 11:14:31 506

原创 RTP工具改进(五)--使用qt

第四篇前面使用的工具一直为mfc,今天将使用qt 来做界面,使用qt 来进行程序和协议的编写,qt部分目前还不包括rtp ps流和rtmp,暂时只有rtp 直接传输,关于rtmp协议和ps流协议,先使用vs的mfc。增加和改变的模块为rtp,和 rtp_recv,如下图,以前的vs MFC版本都放到vs下面,有关于qt的 gb28181 的sip server 和 rtp 发送接收等都放到qt下面,所有可执行都放到外层的bin下面代码地址。

2024-01-27 14:47:18 847

原创 c++网络大小端互转

大小端互转

2024-01-27 10:07:29 438

原创 RTP工具改进(四) - rtmp协议推送

前面写了rtsp ps 流推送,为了把软件提高使用的实用性,准备将rtp协议扩展到rtmp 和 rtsp。rtsp 扩展是必然的,因为rtsp的核心协议是rtp,rtmp协议实际上在封包的原理上借鉴了rtp。代码地址RTMP是Real Time Messaging Protocol(实时消息传输协议)的首字母缩写。该协议基于TCP,是一个协议族,包括RTMP基本协议及RTMPT/RTMPS/RTMPE等多种变。

2024-01-25 13:02:38 1087

原创 RTP 接发ps流工具改进(三)

代码地址注:两种方式发送,一种直接rtp方式,一种ps over rtp方式代码里面有直接rtp方式发送,可以修改代码成为直接的rtp方式也是可以的。

2024-01-21 12:41:39 569

原创 论rtp协议的重要性

对于tcp来说,是流式协议,不作他讲。无论是tcp还是udp都是可行的做法,rtp over tcp 和 rtp over udp 都可以放入rtsp 或者 sip 协议中,其中另外一个指明交换的文本协议叫做sdp协议,中文名为会话描述协议,可以直接rtp传输吗,可以,但是关键帧之前一定要有sps,pps,h265 之前再加个vps,因为一般来说,sps,pps这种信息会放到sdp中,没有了sdp的加持,那么我们的接收程序必须要约定一些内容。

2024-01-20 00:15:57 492

原创 jetson deepstream 解码接入编码输出

在jetson主板上安装gstreamer工具链,编译opencv上面的opencv 肯定是少编译了很多东西,尤其是cuda的编译,需要大家自己去写参数编译,jetson上编译挺费时间的,耐心做就行了。

2024-01-06 15:05:37 1162

原创 rtsp超分推流流程(一)

播放一个RTSP的流需要如下的RTSP请求命令:OPTIONS -> DESCRIBE -> SETUP -> PLAY 然后就是接收RTP包、播放了最开始也不太清楚推流到底应该怎么来推,后来使用ffmpeg的推流命令,然后抓包分析出来,推流的RTSP请求命令如下:OPTIONS -> ANNOUNCE -> SETUP -> RECORDEASYPUSHER安卓ANDROID手机直播推送之MEDIACODEC 硬编码H264格式https://www.fr

2024-01-04 13:58:39 1241

原创 yolov8 tracking编码为web 和 rtsp流输出

使用python pytorch yolov8 track进行reid 识别后将识别后的图片通过websocket 协议和内存共享发送到web端和 rtsp server端,可通过web显示或者通过rtsp 客户端拉流

2023-12-31 19:45:37 1945

原创 使用tesla gpu 加速大模型,ffmpeg,unity 和 UE等二三维应用

我们知道tesla gpu 没有显示器接口,那么在windows中怎么使用加速unity ue这种三维编辑器呢,答案就是改变注册表来加速相应的三维渲染程序.

2023-12-25 21:32:12 2746

原创 ffmpeg 解码文件时的时间戳问题

实时流编码时,我们一般不进行b帧编码,但是文件存储时为了减小大小,会增加b帧,实时流只带了I,P帧,那就会好很多很多文件带了b帧,所以要使用解码时间去同步,如果使用pts,很多人一定会被其时间搞混。

2023-12-25 16:51:15 769

opencv hand openpose

使用opencv c++ 来判别手指和关节点

2023-07-26

使用qt的webengine让客户端嵌入网页

使用qt的webengine来嵌入网页到客户端程序里面

2023-07-19

windows网络转发服务程序

为了在windows网关上转发tcp数据,使用了c# 调用了windows的netsh命令,来增加,删除规则,使得数据能够通过程序进行转发。

2023-07-10

大华摄像头转发到外网接收程序

大华摄像头里面直接配置外网的IP地址和端口,推流到外网,使用websocket建立h264服务

2022-11-06

websocket c语言实现

websocket c语言实现, 包含httpparser, sha1 算法,wsparser,实现了websocket 服务器的协议部分。vs 作为ide,可修改到linux下实现

2022-10-07

c++mongoose 实现httpserver,httpclient

使用mongoose实现了httpserver,httpclient,websocketserver

2022-09-30

qt websocket 客户端 多线程使用

qt 使用QWebSocket 创建websocket客户端来读取数据,异步链接,并且放入到线程中去执行,线程池的基础,代码使用两个用户,放入到一个线程中执行,同理,可以多个用户放入到多个线程中执行,为线程池执行websocket client 打下了基础。

2022-09-16

udp tunnel 转udp 到 tcp

UDPTunnel is a small program which can tunnel UDP packets bi-directionally over a TCP connection. Its primary purpose (and original motivation) is to allow multi-media conferences to traverse a firewall which allows only outgoing TCP connections.

2022-07-19

ppt 转化成html5

使用java poi 来读ppt文件,转化成为html5 文件,方便网站阅读

2022-07-08

c++使用libcurl上传和下载资源

c++使用libcurl上传和下载资源,封装了库,带lib文件,带nodejs测试服务端

2022-06-11

web摄像头rtsp协议

使用web usb摄像头,live555, ffmpeg硬件编码,制作rtsp 多摄像头服务器

2022-05-31

onnxruntime gpu

onnxruntime gpu版本推理库文件,包含头文件,lib库文件,dll 动态库文件,用于c++开发

2022-05-31

qt c++ dialog 异形窗口+半透明窗体制作

qt c++ dialog 异形窗口+半透明窗体制作,让不一样的窗口展现在大家面前 使用setmask函数+ QRegion方式去设置一个dialog,让dialog半透明并且挖去一个洞

2022-05-24

2d平面在3d中展示,使用threejs

2d平面在3d中展示,使用threejs,使得2d渲染的平面div在3d世界上真实展示,并且真实显示和响应按钮事件。

2022-05-02

qt下写的内存池和线程调用

其实和qt无关,不过既然已经使用qt,就加上吧,无论使用qt与否,都额可以使用,限制为片元固定大小内存,非固定内存内存池可以看我的其他文章,线程调用,完整的例子。

2022-04-26

vue+nodejs 将canvas发布到dlna投屏服务

1 将html5 得cancas抓取h264 2 将h264使用websocket传输出去 3 启动server,启动dlna服务程序 4 restfulserver,vue前端获取所有大屏 5 投屏

2022-03-18

player_ok.zip

ffmpeg 播放器

2021-07-20

ipfsclient.rar

ipfs 星际文件系统的c++客户端

2021-07-20

c# use c++ mfc.zip

c# 使用MFC窗体并传递信息

2021-07-14

3d-bim-models-threejs-master.zip

用threejs展示三维bim模型

2021-07-08

TensorFlow-Fully-Convolutional-Image-Classification.zip

残差网络探测图片带模型

2021-07-06

restful.zip java springboot 基础http

java srpingboot 基础啊

2021-06-26

HiRedis.zip hiredis 和自己封装的客户端

c++使用hiredis 和封装的客户端 访问redis

2021-06-26

Whiteboard.zip wcf电子白板

c# wcf 电子白板

2021-06-09

WinAudioRecord_ok.zip directshow 录制音频 faac编码

directshow 录制音频 faac编码

2021-06-04

nodejs的io获取,包括cpu,disk等

获取内存,cpu使用率,磁盘,网络,网络连接的nodejs程序

2021-06-04

test.rar进程通信范例

c++ 和nodejs进行最简单的通信

2021-06-01

stdfure.zip

c++使用std::future 和std::async 同步线程

2021-05-29

HttpClient.zip

http client mongoose

2021-05-27

mongoose_wsclient.zip

mongoose 的websocket示例代码

2021-05-27

labelImg.zip

labelimg 训练标注工具

2021-03-19

webgl.zip的例子

webgl的例子,简单易懂

2021-03-18

FFmpegRTSPServer.rar

ffmpeg 和 live555 组成rtsp server传输实时流。ffmpeg编码

2021-03-14

appvideo 2维视频.rar

websocket 链接服务器显示h264 视频,注意没有服务器,服务器自己要写

2021-03-14

thinkjsdemo.zip

thinkjs 使用sqlite的demo

2021-03-14

ThreeJSPotCloud.zip

threejs 画点云数据

2021-03-13

polyhedron-galaxy.zip

threejs的三维星系,用的各种形状代替星星

2021-03-13

threedemo.zip

threejs的demo,非常简单易懂,但完整

2021-03-13

live555_vs2017.rar

vs2017编译live555,只生成一个库,liveMedia_d.lib, liveMedia.lib

2021-03-04

minst 数据集.zip

minst 手写数字数据集

2021-03-03

空空如也

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

TA关注的人

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