自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 165. 比较版本号

给你两个版本号 version1 和 version2 ,请你比较它们。版本号由一个或多个修订号组成,各修订号由一个 '.' 连接。每个修订号由 多位数字 组成,可能包含 前导零。每个版本号至少包含一个字符。修订号从左到右编号,下标从 0 开始,最左边的修订号下标为 0 ,下一个修订号下标为 1 ,以此类推。例如,2.5.33 和 0.1 都是有效的版本号。比较版本号时,请按从左到右的顺序依次比较它们的修订号。比较修订号时,只需比较 忽略任何前导零后的整数值。

2023-06-08 23:48:11 103

原创 最简单的视频编码器(二)---ffmpeg

概述流程图源代码代码路径

2021-09-24 16:18:29 1804

原创 最简单的视频编码器(一)---libx264

概述本文记录一个最简单的基于libx264的H.264视频编码器;直接调用libx264完成编码。因此项目的体积非常小巧。该编码器可以将输入的YUV数据编码为H.264码流文件。流程中主要的函数如下所示:x264_param_default():设置参数集结构体x264_param_t的缺省值。x264_picture_alloc():为图像结构体x264_picture_t分配内存。x264_encoder_open():打开编码器。x264_encoder_encode():编码一帧图像

2021-09-11 13:10:46 2772

原创 视音频数据处理入门:颜色空间(二)---ffmpeg

d

2021-08-31 09:36:18 918

原创 视音频数据处理入门:颜色空间(一)---转换理解

YUV颜色空间概述YV12与I420颜色空间相互转换NV12与I420颜色空间相互转换NV21与YV12颜色空间相互转换YUV转RGBI420与RGB32颜色空间相互转换I420与RGB24颜色空间相互转换

2021-08-24 20:29:58 752

原创 视音频数据处理入门:I420 图像90° 、180°、270°旋转和左右镜像翻转

一、旋转原理 图像旋转就是对应像素点的位置的改变,把对应的像素点修改到指定位置即可实现90度、180度、270度旋转。如下图以4x6为例,每个格子代表一个像素点,格子里面的数字代表当前像素的位置; SRC顺时方向旋转90度我们以上图为例,顺时方向旋转90为例,说明旋转90原理;顺时方向旋转90度,则宽和高互换,由原来4x6变为6x4;SRC[0]的位置被SRC[20]所替代,形成Rotate90[0],以此类推;最终形成图Rotate90的效果。...

2021-08-12 14:56:04 3452

原创 Git命令使用出现Cannot update paths and switch to branch xxx at the same time解决方法

产生原因 这个问题产生的原因在切换分支的时候,本地git信息中没有你要拉取的分支信息,一般产生错误是使用如下命令造成的 : $ git checkout -b branch_a origin/develop 或 $ git checkout --track origin/develop解决方法:执行git fetch命令 git fetch $ git checkout -b 分支名字 origin/分支名 ...

2021-08-07 15:13:33 5222 2

原创 Git命令使用出现Automatic merge failed; fix conflicts and then commit the result.解决方法

产生原因 这个问题产生的原因是因为git pull 的时候会分为两步, 1、先从远程服务器上拉下代码; 2、进行merge。merge时候失败了,就会出现“Automatic merge failed; fix conflicts and then commit the result。”解决方法:丢弃本地提交,强制回到线上最新版本 git fetch --all git reset --hard origin/你需要下拉的分支(默认master) gi...

2021-08-04 09:49:34 20243

转载 C++ Lambda表达式基本用法

创建一个匿名函数并执行。Objective-C采用的是上尖号^,而C++ 11采用的是配对的方括号[]。实例如下:#include <iostream>using namespace std; int main(){ []{ cout << "Hello,Worldn"; }();}我们也可以方便的将这个创建的匿名函数赋...

2019-10-15 13:36:00 127

转载 C++ 智能指针 shared_ptr 详解与示例

shared_ptr 是C++11提供的一种智能指针类,它足够智能,可以在任何地方都不使用时自动删除相关指针,从而帮助彻底消除内存泄漏和悬空指针的问题。它遵循共享所有权的概念,即不同的 shared_ptr 对象可以与相同的指针相关联,并在内部使用引用计数机制来实现这一点。每个 shared_ptr 对象在内部指向两个内存位置:1、指向对象的指针。2、用于控制引用计数数据的指针。共享所有...

2019-10-15 09:54:25 1444

转载 C++ 智能指针 unique_ptr 详解与示例

unique_ptr 是 C++ 11 提供的用于防止内存泄漏的智能指针中的一种实现,独享被管理对象指针所有权的智能指针。unique_ptr对象包装一个原始指针,并负责其生命周期。当该对象被销毁时,会在其析构函数中删除关联的原始指针。unique_ptr具有->和*运算符重载符,因此它可以像普通指针一样使用。查看下面的示例:#include <iostream>#i...

2019-10-15 09:33:35 445

转载 Github上传代码菜鸟超详细教程【转】

说来也惭愧,我是最近开始用github,小白一个,昨天研究了一个下午。终于可以上传了,所以今天写点,一来分享是自己的一些经验,二来也是做个记录,万一哪天又不记得了:)  废话不多说,直接来,这次主要介绍的是windows下的安装和使用。  【第一步】建立先仓库  第一步的话看一般的提示就知道了,在github新建一个repository(谷歌可以解决),都是可视化的界面操作,所以难度...

2019-07-30 16:46:42 808

转载 报错 ImportError: No module named model_selection 的解决办法

win10下运行了一段Python代码,出现了报错, 报错是ImportError: No module named model_selection。我定位代码到import sklearn.model_selection,我才知道原来我没有这个model。我在网上找了一下解决方法,原来是scikit-learn的版本太低。在anaconda中通过命令行查看sklearn的版本为 0.17.1...

2018-12-20 09:20:16 1622

原创 OpenCV成长之路 01、图像的读写与显示

一、工具篇工欲善其事,必先利其器。学习OpenCV,肯定少不于基本的编程工具与OpenCV库。在Windows平台下你可以选择Visual Studio、CodeBlock等,当然你也可以选择在Linux平台,用VI、codeBlock都是可以的。编程平台的选择看个人爱好以及项目的开发环境。然后是OpenCV库,你可以在这里下载到最新的版本:http://opencv.org/,最近的版本已经...

2018-12-07 10:46:39 129

转载 Tensorflow和MNIST识别自己手写的数字 finished with exit code -1073740791 (0xC0000409)解决方案

在跑alexnet的测试demo时,遇到无错跳出finished with exit code -1073740791 (0xC0000409),查出是显卡内存不足的问题,解决如下:import osos.environ["CUDA_VISIBLE_DEVICES"] = "-1"    1    2参考链接:(1)https://stackoverflow.com/questi...

2018-11-13 16:17:44 711

转载 pycharm中project使用Anaconda3中自己创建的python环境作为编译器、pycharm运行程序时在Python console窗口中运行解决方法

我们以自己创建的tensorflow环境为例。Anaconda中自己创建的环境都在这个文件夹内:C:\ProgramData\Anaconda3\envs打开pycharm,新建一个project,然后点击File-&gt;Settings-&gt;Project:[当前项目名称],出现下面界面:点击右上角add,添加一个已配置的环境: 这里我们添加了已经创建的te...

2018-11-13 14:32:06 2477 1

转载 Windows桌面共享中一些常见的抓屏技术

1. BitBlt 我想做Windows开发应该都知道这个API, 它能实现DC间的内容拷贝, 如果我们把源DC指定成Monitor DC或是桌面DC, 它就能实现抓屏功能。对于通过这种方式的抓屏, 有2点需要特别提醒:a. 在XP下我们可以通过最后的拷贝标志来控制是否拷贝layered window, 只有SRCCPY表示拷贝内容不包含layered window, 如果是SRC...

2018-11-12 15:09:54 1659

原创 websocket简单介绍(一)

对于websocket的理解,可能我和其他人的理解也是不一样的,简单的来说websocket如果分开那就是web和socket两个,所以websocket便是是浏览器和底层进程正常通信的重要途径,我对websocket的理解是websocket本身是一种协议,浏览器想要和进程进行直接通信那需要首先建立TCP连接,当TCP三四握手成功以后,浏览器会主动向TCP服务端发起一起websocket层的握手...

2018-07-31 09:59:18 486

原创 让你彻底搞懂Websocket原理

一、websocket与httpWebSocket是HTML5出的东西(协议),也就是说HTTP协议没有变化,或者说没关系,但HTTP是不支持持久连接的(长连接,循环连接的不算)首先HTTP有 1.1 和 1.0 之说,也就是所谓的 keep-alive ,把多个HTTP请求合并为一个,但是 Websocket 其实是一个新协议,跟HTTP协议基本没有关系,只是为了兼容现有浏览器的握手规范...

2018-07-31 09:57:31 1088

转载 在Linux下访问Windows共享文件夹

说明以下操作以Ubuntu为例,大家可以参考。我在Ubuntu 14.04和16.04都试过了。Windows共享文件夹如果局域网内有一台Windows主机,将指定文件夹设为共享,就可以在局域网内访问了。如果要从Linux下访问该如何操作呢?使用 mount.cifsWindows共享文件夹使用的协议是SMB/CIFS。因而可以使用Linux下的smbclient在命令行中进行操作。如果想更方便地...

2018-06-11 14:13:09 728

原创 动态获取指定窗口大小 获取鼠标所在窗口的位置,HWND

git中代码测试程序,直接创建VS2013程序代码复制便可编译,实现功能动态获取窗口大小,获取鼠标按键消息,获取鼠标所在窗口的位置,大小,窗口句柄

2017-09-18 11:25:58 8298

原创 音频AAC编码 fmepg3.3.0

文介绍一个最简单的基于FFMPEG的音频编码器。该编码器实现了PCM音频采样数据编码为AAC的压缩编码数据。编码器代码十分简单,但是每一行代码都很重要。通过看本编码器的源代码,可以了解FFMPEG音频编码的流程。本程序使用最新版的ffmpeg库,接下对比着和大家说一下3.0以上版本和2.8的版本区别:m_pCodecCtx->sample_fmt = AV_SAMPLE_FMT_S16; 

2017-08-15 20:36:27 439

翻译 websocket规范 RFC6455 中文版

InternetEngineering Task Force (IETF)                      I. FetteRequest forComments: 6455                                Google,Inc.Category: StandardsTrack                                  A.M

2017-08-04 14:19:41 3480

原创 通过浏览器加载程序选择文件路径方法

希望对像我一样的初学者有帮助

2017-01-09 16:52:19 2113

simplest_encoder.7z

* 本程序实现了简单的ffmpeg视频编码功能; * 支持强制输出关键帧 * 支持动态修改码率 * 目前只开放了I420数据格式编码 * 本程序实现了简单的x264视频编码功能; * 支持强制输出关键帧 * 支持动态修改码率 * 目前只开放了I420数据格式编码

2021-09-23

simplest_encoder_x264

/** * 简单的x264视频编码器 *Simple x264 video encoder * * 梁启东 qidong.liang * [email protected] * https://blog.csdn.net/u011645307 * * * 本程序实现了简单的x264视频编码功能; * 支持强制输出关键帧 * 支持动态修改码率 * 目前只开放了I420数据格式编码 *This program realizes a simple x264 video coding function; *Support forced output of key frames *Support dynamic modification of bit rate *At present, only i420 data format coding is open * */

2021-09-08

ColorConversion.zip

 NV12、NV21、YUV420P、YUV422P、RGB24、RGBA相互转换功能;vs2019编译 x64的

2021-08-30

YUV颜色空间转换(YV12、NV12、NV21、I420、RGB等)

本程序实现了简单的YUV数据之间的转换和YUV与RGB的转换。 注:1、本程序只是简单YUV之间的颜色空间转换和YUV与RGB的转换。 2、本程序使用的vs2019创建的,需使用2019打开工程。 3、包含功能: 1)YV12_2_I420; 2)I420_2_YV12; 3)NV12_2_I420; 4)I420_2_NV12; 5)NV21_2_YV12; 6)YV12_2_NV21; 7)I420_2_rgb32; 8)rgb32_2_I420; 9)I420_2_rgb24; 10)rgb24_2_I420。

2021-08-17

I420rotate.7z

介绍I420顺时针90、180、270旋转和镜像翻转代码和测试程序

2021-08-11

live555.7z

使用vs2015编译的live555,已经配置好x86,x64版本

2019-05-16

第一个OpenCV程序

第一个C语言程序都以Hello,World!这种俗套的例程,我们的第一个OpenCV来显示一幅自己喜欢的图像

2018-12-07

cudnn-8.0-windows10-x64-v6.0.zip

cudnn-8.0-windows10-x64-v6.0.zip 对应版本,cuda8.0

2018-11-16

Virtual Audio Devices

虚拟音频设备表示的筛选器图形的呈现和捕获音频的内容。 系统音频驱动程序 (SysAudio) 使用可用的硬件和软件组件来确定要生成的筛选器图形。 有关系统的音频驱动程序的详细信息,请参阅SysAudio 系统驱动程序。 SysAudio 的客户端包括 DirectSound 和WDMAud 系统驱动程序,该程序充当 WDM 音频驱动程序和特定于音频的 Microsoft Windows 多媒体 Api 波形输入、 波形输出、 midiIn、 midiOut、 mixer,以及 (中所述的辅助之间的接口Microsoft Windows SDK 文档)。 KsStudio 实用程序在 Windows 驱动程序工具包 (WDK) 是应用的一种绕过 SysAudio 并允许用户手动构造筛选器图程序。 以下 PnP 设备枚举 SysAudio 以确定如何构建其客户端可能需要的各种音频筛选器图形采用股票已注册的音频硬件和软件组件。 在确定后的筛选器列表关系图,它可以生成从可用的硬件和软件组件,SysAudio 将这些关系图注册为播放、 录制、 MIDI 输入/输出,和混合虚拟音频设备。 SysAudio 保留注册表类别 KSCATEGORY_AUDIO_DEVICE 专用于其虚拟的音频设备。 适配器驱动程序应不能注册此类别中。 SysAudio 客户端可以处理虚拟的音频设备的筛选器工厂相似到硬件或软件组件的筛选器工厂。 当客户端要求实例化虚拟设备上在特定的 pin,SysAudio 自动构造音频图和管理以透明方式与客户端的关系图的内部 pin 连接。 这使客户端将筛选器图视为一个筛选器,从而避免如间筛选器通信的图形管理的复杂性。

2018-09-12

matlab扩展编程 和代码

【作  者】何强 何英 [同作者作品] 【丛 书 名】 其他 【出 版 社】 清华大学出版社 【书 号】 7900641807 【出版日期】 2002 年6月 【内容简介】 本书以MATLAB扩展编程及其应用实例为主线,以MATLAB与C程序、Visual Basic、Excel、网络和系统硬件的接口为核心,采用图文并茂的方式、简捷明快的手法和通俗易懂的语言,配合大量的代码实例以及一个简单的语音识别系统的具体实现,系统介绍了MATLAB的新特性、常用的代码优化方法和功能扩展途径。全书分为3部分,共13章。第1部分(第1章—第6章):MATLAB 6的安装和运行、MatrixVB、Excellink、MATLAB Web Server、MATLAB的数据结构和编程技巧、MATLAB图形用户界面编程:第2部分(第7章—第11章):MATLAB引擎、MATLAB可执行程序、MATLAB C++数学库和图形库、MATLAB Runtime Server、MATLAB访问系统硬件;第3部分(第12章、第13章):MATLAB的录音工具、基于MATLAB的语音识别系统。 本书面向有一定MATLAB、C/C++语言编程基础的理工科学生、科研人 员和教学工作者,既是新手进阶提高的读物,又是中高级MATLAB用户的必备手册。 包含 matlab扩展编程 代码 便与学习和参考

2018-07-21

系统安装软件信息

获取windows上安装的文件目录,工程使用VS2013实现的mfc demo仅供大家参考

2018-05-30

TEST_WINDOES_SIZ

代码程序实现功能动态获取窗口大小,获取鼠标按键消息,获取鼠标所在窗口的位置,大小,窗口句柄,适用于大多数程序开发人员实现windowsAPI

2017-09-18

websocket 协议介绍

webSocket 协议介绍,ppt内容是协议的讲解,对正在研究协议的人有帮助

2017-08-04

ffmpeg.exe使用VS2013调试

仅供ffmpeg.exe调试时使用

2017-07-21

代码实现压缩和解压demo

这个demo实现的是压缩和解压功能,代码容易读写,适用于刚研究压缩和解压小伙伴们,虽然需要3分但是非常值得

2017-02-18

WebSocket demo

这个是我自己研究websocket协议自己写的,感觉可以对大家有所帮助,欢迎大家一起讨论

2017-01-13

空空如也

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

TA关注的人

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