自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(371)
  • 资源 (9)
  • 收藏
  • 关注

原创 [windows 上使用 CMake]总结2——工程中编译并输出多个文件

【代码】[windows 上使用 CMake]总结2——工程中编译并输出多个文件。

2023-03-11 18:53:01 252

原创 [windows 上使用 CMake]总结1——构建Hello world 工程

windows下 cmake 使用

2023-03-11 18:17:32 101

原创 windows 上使用 docker搭建nginx rtmp 推流服务器

nginx rtmp 服务器搭建

2023-03-05 19:54:03 423 1

原创 nginx 踩坑记录

运行 nginx start 后,任务管理器没有查到 nginx 进程。查看 log 后发现,nginx 不能运行在中文路径下。

2023-03-05 18:56:50 554

原创 [音视频] wav 格式

WAV文件遵循RIFF规则,其内容以区块(chunk)为最小单位进行存储。WAV文件一般由3个区块组成:RIFF chunk、Format chunk和Data chunk。另外,文件中还可能包含一些可选的区块,如:Fact chunk、Cue points chunk、Playlist chunk、Associated data list chunk等。本文将只介绍RIFF chunk、Format chunk和Data chunk。

2023-02-27 09:34:45 274

原创 [音视频] BMP 图片格式分析

BMP 格式分析

2023-02-26 16:46:49 633

原创 软件如何设置默认管理员权限和如何关闭弹窗

取消弹窗

2023-02-21 16:46:15 652

原创 LINK : fatal error LNK1000: Internal error during IMAGE::BuildImage

visual studio 报错

2023-02-21 16:43:39 225

原创 LINK : fatal error LNK1000: Internal error during IMAGE::BuildImage

visual studio 报错

2023-02-14 16:19:24 193

原创 ffmpeg通过 av_dict_set 设置参数

ffmpeg 设置参数

2023-02-10 13:44:22 1685

原创 ffmpeg 硬解命令

ffmpeg

2023-02-07 21:01:07 374

原创 调试 obs 代码

obs 调试

2023-02-06 15:36:27 200

原创 ShiftMediaProject ffmpeg 编译过程

ffmpeg 编译

2022-12-21 17:34:10 168

原创 下载 windows 旧版本

windows

2022-12-21 17:10:13 299

原创 WRL::ComPtr 的坑

ComPtr 对象 使用取地址符时,会先将原指针释放,再取地址。如果只是想用 ComPtr 的值,需要调用 GetAddressOf() 函数。

2022-11-02 00:28:16 180

原创 win32 API 记录

GetClientRect 得到客户区大小GetWindowRect 得到窗口大小(客户区+非客户区)

2022-05-17 13:04:46 117

原创 Direct3D 11 总结 —— 10 变换

_mm_set_ps 是倒叙放置的,参考

2022-05-15 23:34:47 505

原创 Direct3D 11 总结 —— 9 通过键盘调整绿幕抠图阈值

介绍本文主要介绍如何通过键盘设置绿幕抠图的阈值,通过设置不同的阈值,看最终的结果。最终结果阈值为 0.9阈值为 0.2阈值为 0.5知识点获取键盘输入当键盘按下后,会给窗口的回调函数,传入 msg:WM_KEYDOWN 事件,并通过 wparam 参数,传入是哪个键按下了。然后窗口回调通过事件的方式通知到 Graphics。将阈值传到 shader 中directX 中有个常量值 vertex shader 和 pixel shader 都可以设置,说是常量值,但是该值是可以改变

2022-05-03 23:26:41 1212

原创 Direct3D 11 总结 —— 8 实现简单的绿幕抠图效果

介绍绿幕抠图指将图片中的绿色扣去,并将该处的 alpha 分量设为 0,并将另外一张图片作为背景,以实现背景替换的功能,常用于电影和电视的制作场景。最终效果原始图片绿幕抠图后效果代码这一块的代码改动,主要在像素着色器 shader。ps shader本文只是实现了最简单的绿幕抠图,对于这种比较完美的图片,抠图效果较好,对于其他图片还有较大的优化空间。Texture2D tex : register(t0);SamplerState samplerLinear : register(s

2022-04-17 20:32:24 1010

原创 Direct3D 11 总结 —— 7 实现透明效果

介绍当两张图片重叠的时候,可以一张完全盖住另外一张,也可以实现两张图片融合的结果。本文将对图片融合展开介绍。融合的公式如下 C=Csrc⊕Fsrc1ΘCdst⊕Fdst1\ C = C_{src}\oplus F_{src1} \Theta C_{dst} \oplus F_{dst1} C=Csrc​⊕Fsrc1​ΘCdst​⊕Fdst1​ A=Asrc⊕Fsrc2ΘAdst⊕Fdst2\ A = A_{src}\oplus F_{src2} \Theta A_{ds

2022-04-17 19:46:31 1073

原创 Direct3D 11 总结 —— 6 绘制图片

介绍本文将在上文绘制的矩形中,绘制图片。主要步骤读取图片,并转化为纹理。将该纹理绑定到 Pipeline设置采样器,像素着色器通过该采样器对输出的纹理进行采样代码主要改动CreateWICTextureFromFile通过该函数将图片数据,读取到纹理中。 该函数来自于DirectXTex,引用了WICTextureLoader11.cpp / WICTextureLoader11.h主要向 pipeline 绑定了两个资源PSSetShaderResources读取图片到纹理,然后

2022-04-16 22:39:09 1829

原创 Direct3D 11 总结 —— 5 绘制矩形

介绍本文,将在上文的基础上,绘制矩形区域。一般 direct3D 通过绘制三角形,拼成其他图像,对于矩形,本文将绘制两个三角形,以拼成一个矩形。代码主要修改点输入装配阶段一个是输入的坐标点数,之前是3个点,本文输入的 4个点。绘制2个三角形,有两种方式,一种是输入6个点,其中有2对点是一样的。另外一种方式是输入4个点,在加上6个索引点。绘制命令针对两种输入方式,有两个对应的绘制命令。m_pContext->Draw(6, 0); 通过输入顶点绘制6个点绘制图形m_pContex

2022-04-13 23:23:21 1363

原创 Direct3D 11 总结 —— 4 绘制三角形

介绍本文主要介绍如何使用 direct3D 11 绘制三角形。pipeline 介绍从 msdn 的文章,可以获得 direct3D 的 pipeline 如下图所示,对于本文只需要设置红框内的部分。输入装配阶段在这里需要将顶点坐标、顶点数据是使用什么格式保存的(float 还是 int;是几位的等)、想要顶点组成什么图像(比如传入3个点,你可能就是想画3个点或者一条线和1一个点或者一个三角形等)顶点着色器阶段着色器就是 gpu 执行的代码,gpu 的特点是计算单元的算力有线,但是每个 gp

2022-04-13 00:06:30 985

原创 Direct3D 11 总结 —— 3 初始化 direct3D,并改变窗口颜色

介绍创建窗口成功之后,就要使用 direct3D 进行绘图,本节主要介绍,如何初始化 direct3D,并通过 direct3D改变窗口颜色。初始化 direct3D函数解释D3D11CreateDevice通过 D3D11CreateDevice 函数创建设备和上下文,device 主要用于显示是否支持某些特性和分配资源,context 主要用于设置渲染状态、将资源绑定到 pipeline 和 发出渲染命令。需要设置的参数有 使用的电脑上的哪个显卡(现在很多电脑上多有两块显卡,独立显卡和集成显卡

2022-04-10 19:28:11 1397

原创 DirectX3D 11 总结 —— 2 win32 窗口 抽象为类

说明为了代码看起来清爽一点,将上篇文章中的代码进行封装,抽象为一个类。这篇的核心是HWND hWnd = CreateWindow(WindowClass::GetInstance().get()->GetName(), // 创建的窗口类名 TEXT("First Window"), // 窗口名称 WS_OVERLAPPEDWINDOW, // 窗口类型 200, 200, // 窗口起始位置 400,

2022-04-10 16:00:39 492

原创 DirectX3D 11 总结 —— 1 绘制 win32 窗口

directX 3D 是什么DirectX 3D是一种应用程序的接口(API),它可让以windows为平台的游戏或多媒体程序获得更高的执行效率,加强3d图形和声音的效果,并提供设计人员一个共同的硬件驱动标准,让游戏开发者不必为每一品牌的硬件来写不同的驱动程序,也降低用户安装及设置硬件的复杂度。简单理解就是 windows 为了方便开发者驱动显卡运行,定义了一套 API标志,封装了硬件之间的差异,提供开发者的开发效率。绘制窗口directX 3D 主要用于图像的显示,因此首先需要创建一个窗口用于显示

2022-04-10 00:47:10 902

原创 visual studio调试记录

使用 OutputDebugString 函数将调试信息打印到 visual studio 输出窗口。参考:https://blog.csdn.net/u012308586/article/details/92992951

2022-03-10 10:37:38 1081

原创 if ((x - 0x01010101) & (~x) & 0x80808080) 理解

if ((x - 0x01010101) & (~x) & 0x80808080)为了说明方便,可以将 x 看成只有一个字节,则上面的问题可以简化为if ((x - 0x01) & (~x) & 0x80)先看 0x80 对应二进制 0b1000,0000 与该字节进行按位取与,只有在 (x-0x01) 和 (~x) 第8位都为1的情况下,该 if 条件才会成立。对于 (x-0x01) ,只有 x =0 或者 x>0x80,其第8位才为1。对于 (~

2022-03-01 22:29:03 603 2

原创 rtmp flv h264 整理

2022-02-27 23:56:28 132

原创 rtmp源码分析之RTMP_Write 和 RTMP_SendPacket

typedef struct RTMPPacket { uint8_t m_headerType; // chunk type id (2bit)fmt 对应message head {0,3,7,11} + (6bit)chunk stream id /*大部分情况是一个字节 uint8_t m_packetType; // Message type ID(1-7协议控制;8,9音视频;10以后为AMF编码消息) uint8_t m_hasAbsTimestamp; /* timesta

2022-02-27 22:21:46 639

原创 flv 格式

https://www.jianshu.com/p/7ffaec7b3be6这篇写的不错,后面有时间,在实战一下

2022-02-27 00:42:57 180

原创 h264 文件解析

获得 h264 文件ffmpeg -i test.mp4 -codec copy -bsf: h264_mp4toannexb -f h264 test.264概述h264 数据是保存在 NALU 中的,但是 NALU 之间如何进行分割,常用的有两种方式,一种是 annexb模式,其通过在每个 NALU 前面加上 startcode (0x000001或0x0000001)分割 NALU。另外一种是AVCC模式,通过在 NALU 前面添加表示 NALU 长度的字节。本文使用 annexb 模式分析

2022-02-26 23:02:09 3236

原创 libcurl 编译支持 https

libcurl 官网下载的库,不支持 https 协议前面两篇文献接受具体步骤,但是有个指令过时了,可以参考文献3.参考文献:https://www.cnblogs.com/yangyquin/p/5284530.htmlhttps://www.cnblogs.com/openiris/p/3812443.htmlhttps://blog.csdn.net/qq_33204646/article/details/70624170...

2022-01-27 15:29:43 1483

原创 ffmpeg 常用命令

1.从文件中获取音频数据和视频数据1.1 从文件中抽取音频数据ffmpeg -i test.mp4 -vn -acodec copy test.aac-i url (input) // 输入的文件地址-vn // 阻止文件中的所有视频流-acodec // 编解码器 https://blog.csdn.net/NewTWG/article/details/86393378 copy // 编码同原始音频ffmpeg -i test.mp4 -vn -acodec copy test.

2022-01-09 21:09:34 2745

原创 WAV 文件解析

1.概述wav 文件,原来存放音频的原始数据,即对 PCM 文件进行简单封装,在文件开头加上标识,并提供音频的声道数、采样频率和采样位数等信息,这样播放器解析这些数据就可以正常播放这段音频了。2.格式解析wav 文件一般由3个区块组成:RIFF chunk、Format chunk 和 Data chunk。RIFF chunk:主要说明本文件保存的是什么内容。Formt chunk:主要说明音频文件的格式Data chunk:主要记录音频的数据2.1 RIFF chunkID 固定死,填

2022-01-09 18:17:36 4779 4

原创 c++ 文件操作 常用内容总结

为了永久保存数据,或从之前保存的数据中获取数据。常常需要对文件进行操作,下面对常用的内容进行总结。1.打开和关闭文件要操作文件,首先要打开和关闭文件。c++ 有两种方式打开文件第一种:使用带有文件路径的构造函数,其内部会自动打开文件fstream file(filePath);第二种:先创建一个 fstream 对象,然后调用 open 函数,传入文件路径fstream file;file.open(filePath);两种方式关闭文件第一种:超出 fstream 对象作用域

2022-01-09 15:49:59 1427

原创 windows 上向 ffmpeg 提交代码

github 上直接 pull requests,不被 ffmpeg 接受,故使用下面的方法提交代码。1.订阅ffmpeg-devel邮件列表访问 ffmpeg-devel在1处填上你的邮箱(我是使用 163的邮箱),然后点击订阅就好了,密码和名字都是选填,我没有填。之后会给你邮箱发邮件,确认一下就好了。2.设置邮箱打开 .gitconfig文件,该文件在 c 盘的用户名下,也可以用 everything 搜索一下。然后填如下信息,[user] 和 [credentical] 是之前就有

2021-12-18 18:27:35 1148

原创 SDL demo 小结

最近学习 ffmpeg 例程,发现里面常用 SDL 库,进行开发。故最近找了个教程学习了一下,下面对学习的做个小结。1. 第一大坑: main 函数必须写成下面的形式,不然会报错。int main(int argc, char* argv[])应该是 SDL.h 对其进行了一些操作。看源码看到下面这两句,应该就是声明了 int main(int argc, char* argv[]),所以必须实现这个函数,不然就会报错。#define main SDL_mainextern SDLMAIN

2021-12-06 19:34:19 2746

原创 Visual Studio 编译 C1900 问题(P1”(第“aaa”版)和“P2”(第“bbbb”版)之间 Il 不匹配)

根本原因是使用的 lib 库文件有问题。具体问题可参考:https://blog.csdn.net/wuchen1004/article/details/115414179重新编译 lib, 把下面的全程序优化关闭

2021-11-19 14:13:46 3998

原创 python tkinter 总结

1.以管理员身份运行import win32com.shell.shell as shellASADMIN = 'asadmin'if sys.argv[-1] != ASADMIN: script = os.path.abspath(sys.argv[0]) params = ' '.join([script] + sys.argv[1:] + [ASADMIN]) shell.ShellExecuteEx(lpVerb='runas', lpFile=sys.execut

2021-11-09 10:18:18 652

depthImg212.xml

html解析测试文件

2020-03-24

opencv_python-3.4.0.12-cp27-cp27m-win-amd64.whl

opencv_python-3.4.0.12-cp27-cp27m-win-amd64.whl opencv_python-3.4.0.12-cp27-cp27m-win-amd64.whl opencv_python-3.4.0.12-cp27-cp27m-win-amd64.whl

2018-03-30

STM32F103C8T6模板1.1

STM32F103C8T6模板1.1 修复了一些小bug 修复了一些小bug

2018-03-26

遥控车系统release1.0

内附:遥控器和遥控车代码和PCB 亲测有用 PCB很多小BUG,各种飞线

2018-03-26

遥控器代码加PCB1.0

STM32F103CBT6 PCB 按键按起来不太舒服,之后换摇杆 没加稳压模块,电压采集模块没什么用

2018-03-25

2017年飞思卡尔程序

2017年飞思卡尔程序 有一定的封装概念 一定的注释概念 目前觉得注释废话太多了 指针没学好,不知道哪里有问题,有几个小BUG

2018-03-23

2016年飞思卡尔程序

2016年飞思卡尔程序 摄像头组 代码比较乱 当时没有封装的概念

2018-03-23

STM32F103C8T6模板1.0

整理了一个STM32编写框架 目前内容不够完善,搭了一个框架。 之后有添加的文件,按照这个框架填写,比较清晰

2018-03-23

空空如也

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

TA关注的人

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