自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

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

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

2024-04-16 13:13:40 140

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

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

2024-04-13 08:43:07 371

原创 使用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 313

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

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

2024-04-08 21:12:08 478

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

三个hash算法

2024-03-30 21:04:24 169

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

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

2024-03-28 21:58:54 527 1

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

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

2024-03-28 09:37:12 650

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

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

2024-03-25 22:13:08 229

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

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

2024-03-10 11:14:31 323

原创 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 732

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

大小端互转

2024-01-27 10:07:29 206

原创 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 953

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

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

2024-01-21 12:41:39 466

原创 论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 455

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

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

2024-01-06 15:05:37 968

原创 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 1128

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

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

2023-12-31 19:45:37 1443

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

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

2023-12-25 21:32:12 2114

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

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

2023-12-25 16:51:15 659

原创 ffmpeg 硬件解码零拷贝unity 播放

ffmpeg 在硬件解码,一般来说,我们解码使用cuda方式,当然,最好的方式是不要确定一定是cuda,客户的显卡不一定有cuda,windows 下,和linux 下要做一些适配工作,最麻烦的不是这个,二是ffmpeg解码后,颜色空间的转换,如果使用cuda,那么可以使用cuda去在gpu中直接转码,如果没有cuda,那么我们希望的是不要转颜色空间。ffmpeg 硬件解码相信下面这一段代码是大家比较熟悉的如下我们在解码的时候,gpu 一个tesla p40 都占用了42%,实际上是unity渲染占用。

2023-12-22 16:10:41 1100

原创 rtsp视频在使用unity三维融合播放后的修正

我们使用unity UE 等三维渲染引擎中使用c++编写插件来接入rtsp 视频。同时做融合的时候,和背景的三维颜色要一致,这就要使用视频融合修正技术。包括亮度,对比度,饱和度的修正。在单纯颜色上的修正可以简单使用rgb->hsv去修改,这里不做累赘说明了。

2023-12-21 17:41:42 761 1

原创 arm linux 平台 打开摄像头矫正

v4l 意思为 video for Linux, 是linux驱动链接摄像头的软件应用部分,当然先要安装好v4l-utils看完以后基础信息以后就可以使用jetson等主板工具打开查看使用gstreamer 工具。

2023-12-04 07:38:28 522

原创 cesium 融合视频

和untiy 一样,可以添加材质后,将image 直接给材质赋值上,其中abcd 是四个点,这四个点要经过计算。

2023-12-01 20:10:02 1285

原创 十六进制字符串转成十进制数

十进制和十六进制转

2023-11-21 15:50:41 197

原创 图像新型拼接

拼接道路上的摄像头,比较麻烦,如图所示前后的摄像头都是如此,那么如何拼接摄像头画面呢,像下面这样拼接。

2023-11-05 22:30:26 246

原创 unity 控制玩家物体

放上一个plane,放上一个球 sphere,假定我们的球就是我们的玩家,使用控制键w a s d 来控制球也就是玩家移动。增加一个材质,把颜色改成绿色,把材质赋给plane,区分我们增加的白球。

2023-10-06 22:22:13 299

原创 unity 摄像头拉进代码

拼接完成后的摄像机拉进拉远代码。

2023-09-25 14:07:11 145

原创 unity gb28181 rtsp 视频孪生图像拉流和矫正插件(一)

目的是为了视频孪生,将视频放到三维里面,如果使用自己写的插件,有更好的灵活性,同时断线重连等等都更好控制了。

2023-09-18 22:47:53 542

原创 unity 接收拼接数据进行纹理替换且保存相机纹理到rtsp server(一)

rtsp协议的问题就是,拼接完成后,还需要编码,而unity里面再需要解码,需要的过程多了一步编码再解码,大大加重了。

2023-09-12 16:17:36 476

原创 如何写http mjpeg server

是为了让unity ue 等三维引擎直接读取mjpeg图像进行纹理贴图使用qt,opencv等等,因为经常要进行图像处理。

2023-09-11 21:26:39 324

原创 rtsp 拉流 gb28181 收流 经AI 算法 再生成 rtsp server (一)

必备工具必备工具player 使用tcp 拉流,不自己写的话,使用ffmpeg 去写一个播放器就行编译好live555, 将live555的参数修改以下,主要是缓存大小文章使用c++ 来写一个server,目的主要是为了gb28181 接收ps流, 主动拉rtsp 流,经过AI 算法以后 ,再将AI 结果 转成wsflv 和 rtsp 流。为了对比live555的过程,编译live555,本身live是一个非常好的服务端和客户端,测试非常方便。这里AI 使用libtorch。

2023-09-01 21:19:43 643

原创 python rtsp 硬件解码 二

上次使用了python的opencv模块述说了使用PyNvCodec 模块,这个模块本身并没有rtsp的读写,那么读写rtsp是可以使用很多方法的,我们为了输出到pytorch直接使用AI程序,简化rtsp 输入,可以直接使用ffmpeg的子进程。

2023-08-20 17:23:06 1615

原创 wsl2 安装cuda

首先登录wsl 直接命令 wsl 就行。

2023-08-19 14:26:09 383

原创 go 切换代理

很多需要切换到阿里云才行。

2023-08-12 21:53:30 846

原创 FFmpeg中硬解码后深度学习模型的图像处理dnn_processing(一)

ffmpeg硬件解码可以使用最新的vulkan来做,基本上来说,不挑操作系统是比较重要的,如果直接使用cuda也是非常好的选择。下面的class 是我封装了一些功能,只是示例,读者可以自行修改,读的是rtsp 流,后面准备推流到gb28181上。0110。

2023-08-05 19:16:18 966

原创 boost beast http server 测试

boost beast 是一个非常好用的库,带上boost的协程,好很多东西是比较好用的,以下程序使用四个线程开启协程处理进入http协议处理。协议支持http get 和 http post。

2023-08-04 20:55:08 1058

原创 opencv rtsp 硬件解码

硬件解码的方案有太多种,如果使用ffmpeg硬件解码是最方便的,不方便的是把解码过后的GPU 拉到 CPU 上,再使用opencv的Mat 从cpu 上上载到gpu上,是不是多了两个过程,应该是直接从GPU mat 直接去处理, 最后一步再从GPU mat 上下载到cpu,render显示。GPU 硬件解码是nv12 格式,我们为了显示和cpu使用直接转成了RGB或者BGR, 使用opencv再映射封装,最后又上载到cuda,这个过程很耗时间,而且不是必要的。

2023-07-30 16:27:15 2502

原创 opencv hand openpose

使用opencv 得dnn 模块调用 caffemodel得程序,图片自己输入就行,不做过多得解释,看代码清单。const int POSE_PAIRS[20][2] ={{0,1}, {1,2}, {2,3}, {3,4}, // thumb{0,5}, {5,6}, {6,7}, {7,8}, // index{0,9}, {9,10}, {10,11}, {11,12}, // middle{0,13}, {13,14}, {14,15}, {15,1

2023-07-26 08:55:45 1573

原创 linux下编译ffmpeg

linux下编译安装ffmpeg,硬件解码

2023-07-22 09:41:39 678

原创 视频拼接得AI三维生成方案-开端(一)

想使用二维得图像生成三维得空间图像,英伟达有完整得方案,开源,但是三维拼接不一样,只需要二维,并且要实时,如何生成是我每天都在思考得东西。

2023-07-21 08:45:48 432

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关注的人

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