- 博客(50)
- 收藏
- 关注

转载 [总结]FFMPEG视音频编解码零基础学习方法
在CSDN上的这一段日子,接触到了很多同行业的人,尤其是使用FFMPEG进行视音频编解码的人,有的已经是有多年经验的“大神”,有的是刚开始学习的初学者。在和大家探讨的过程中,我忽然发现了一个问题:在“大神”和初学者之间好像有一个不可逾越的鸿沟。“大神”们水平高超,探讨着深奥的问题;而初学者们还停留在入门阶段。究竟是什么原因造成的这种“两极分化”呢?最后,我发现了问题的关键:FFMPEG难度比较大,却没有一个循序渐进,由简单到复杂的教程。现在网上的有关FFMPEG的教程多半难度比较大,不太适合刚接触FFMPE
2021-07-09 12:42:12
331
原创 Leetcode 2078. 两栋颜色不同且距离最远的房子(已解决)
街上有 n 栋房子整齐地排成一列,每栋房子都粉刷上了漂亮的颜色。给你一个下标从 0 开始且长度为 n 的整数数组 colors ,其中 colors[i] 表示第 i 栋房子的颜色。第 i 栋房子和第 j 栋房子之间的距离是 abs(i - j) ,其中 abs(x) 是 x 的绝对值。返回 两栋 颜色 不同 房子之间的 最大 距离。以左边为核心,左边保持不动,右边递减。以右边未核心,左边递减。主要思路:双指针思路。
2024-10-08 10:43:23
74
1
转载 在windows下是可以按照程序截取到帧图片?
import cv2import numpy as npfrom sys import argvimport base64def main(): cap = cv2.VideoCapture("rtsp://184.72.239.149/vod/mp4://BigBuckBunny_175k.mov") for i in range(1, 500): ret,frame = cap.read() ret,arr = cv2.imencode('.j.
2021-08-13 09:07:06
207
1
转载 逻辑运算符与位运算符
&& 和 || 和 !属于逻辑运算符号& 和 | 和 ^ 属于位操作符一、&&和&的区别1.1 相同点:&和&&都可以用作逻辑与的运算符,表示逻辑与(and),当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false。1.2不同点:1.2.1. &&还具有短路的功能,即如果第一个表达式为false,则不再计算第二个表达式。例如,对于if(str !
2021-07-15 13:11:15
1506
转载 C语言的内存管理
堆和栈的区别:栈的特征执行的速度相对较快;空间较小;生存期由系统决定;作用域较小;有名空间,可以通过变量名或者数据名访问;堆的特征执行的速度相对较慢;空间较大;生存期由“自己”决定,malloc申请,free释放;作用域很大(整个程序都可以访问);无名空间,只能通过指针使用;C语言空间的申请malloc功能:分配 size 字节的未初始化内存。若分配成功,则返回指向分配内存块最低位(首位)字节的,为任何拥有基础对齐的对象类型对齐的指针。头文件:#include<st
2021-07-15 11:12:55
191
转载 auto_ptr的VC版本源码剖析
auto_ptr是当前C++标准库(STL)中提供的一种智能指针,包含于头文件 #include 。auto_ptr 能够方便的管理单个堆内存对象,在你不用的时候自动帮你释放内存。一个版本的auto_ptr是Linux和VS中使用的,另一个是VC版本的,下面是VC版本的auto_ptr的源代码剖析:template<class _Ty>class auto_ptr{public: explicit auto_ptr(_Ty *_P=0):_Owns(_P!=0),_Ptr(_P
2021-07-15 09:49:24
165
转载 VC++ 获取Date Time Picker 控件的时间并格式化输出
UpdateData(); CTime timeDest; m_CreateTime.GetTime(timeDest); CString str = timeDest.Format("%Y-%m-%d"); MessageBox(str);
2021-07-14 11:06:33
429
转载 MFC去除文件只读属性
CString _strFileName = _T("C\\Code\\123.txt");CFileStatus _FileStatus;CFile::GetStatus(_strFileName, _FileStatus);_FileStatus.m_attribute = _FileStatus.m_attribute & 0x3E; //去除只读 0X01 属性CFile::SetStatus(strFileName, _FileStatus );
2021-07-14 10:56:26
388
转载 VC ++实现 对文件的 隐藏, 只读 ,创建时间 , 最后修改时间 ,最后访问时间 属性的修改
设置文件的只读和隐藏属性void CXXXXDlg::OnBnClickedBtnSetattr(){ // TODO: 在此添加控件通知处理程序代码 UpdateData(); if(m_filepath == "") { MessageBox("请先选择文件","错误",MB_OK); return; } DWORD FileAttr = GetFileAttributes(m_filepath); //获取文件默认属性 if(INVALID_FILE_ATTRIBUTES =
2021-07-14 10:55:06
484
转载 VC获取文件大小
方法一:WIN32_FIND_DATA fileInfo; HANDLE hFind; DWORD fileSize; const char *fileName = 文件的路径及名字; hFind = FindFirstFile(fileName ,&fileInfo); if(hFind != INVALID_HANDLE_VALUE) fileSize = fileInfo.nFileSizeLow; FindClose(hFind); 方法二:HANDLE hFile;
2021-07-14 10:43:27
475
转载 VC++ 得到文件大小
#include <windows.h>#define MAX_LENGTH 1000 int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow){ WIN32_FIND_DATA fileInfo; //定义文件信息结构体变量 HANDLE
2021-07-14 10:27:34
296
转载 VC中关于文件路径的一下操作
1DWORD GetCurrentDirectory( DWORD nBufferLength, // size of directory buffer LPTSTR lpBuffer // directory buffer);这个API函数大家不陌生吧。我以前经常用这个函数来取得当前程序的目录。但是,这个函数,得到的是当前进程的活动目录。并不一定是程序EXE文件的目录。很多操作,都会影响该函数取得的值。比如,程序开始后,打开过某个文件,或者选择过某个路径,都会影响到Cu
2021-07-14 10:17:01
288
转载 LINK : fatal error LNK1123: failure during conversion to COFF: file invalid or corrupt
LINK : fatal error LNK1123: failure during conversion to COFF: file invalid or corrupt解决方法:项目–>工程属性->配置属性-> 清单工具->输入和输出->嵌入清单,选择[否] ----------->只要设这个就可以了项目–>项目属性–>配置属性–>清单工具–>使用FAT32解决方法为 是;...
2021-07-14 10:08:13
101
转载 得到WebBrowser中加载的页面的html文本-MFC
方法一、 const int MAX_SIZE=1024*3; IHTMLDocument2 *pHTMLDocument=NULL; IPersistStreamInit *pPSI=NULL; IStream *pStream=NULL; HGLOBAL hHTMLText; if (!(pHTMLDocument = (IHTMLDocument2*)m_browser.GetDocument())) return; if (pHTMLDocument-&
2021-07-14 09:51:44
326
转载 VC 使用IE、火狐或默认浏览器打开网页ShellExecute
使用IE打开:ShellExecute(NULL, _T("open"), _T("IExplore.exe"), _T("http://..."), NULL, SW_SHOW);使用火狐打开:ShellExecute(NULL, _T("open"), _T("firefox.exe"), _T("http://..."), NULL, SW_SHOW);使用默认浏览器打开:ShellExecute(NULL, _T("open"), _T("http://..."), NULL, NUL
2021-07-14 09:49:27
917
转载 VC6.0编写在windows7下以管理员权限运行的程序
方法一: VC6:导入manifest文件1.新建一文件命名为 xxx.manifest.内容如下:<? xml version="1.0" encoding="UTF-8" standalone="yes" ?>< assembly xmlns ="urn:schemas-microsoft-com:asm.v1" manifestVersion ="1.0" >< assemblyIdentityversion ="1.0.0.0"processorArchit
2021-07-14 09:48:32
577
转载 C++异常处理
引言异常,让一个函数可以在发现自己无法处理的错误时抛出一个异常,希望它的调用者可以直接或者间接处理这个问题。而传统错误处理技术,检查到一个局部无法处理的问题时:1.终止程序(例如atol,atoi,输入NULL,会产生段错误,导致程序异常退出,如果没有core文件,找问题的人一定会发疯)2.返回一个表示错误的值(很多系统函数都是这样,例如malloc,内存不足,分配失败,返回NULL指针)3.返回一个合法值,让程序处于某种非法的状态(最坑爹的东西,有些第三方库真会这样)4.调用一个预先准备好在出现
2021-07-13 12:24:52
251
转载 怎么禁止/开启Ubuntu自动更新升级
当你打开Ubuntu系统时经常会弹出软件更新升级提示框,因为Ubuntu包括上面装的很多软件也都是开源系统,更新升级是很频繁的,对于经常弹出的更新提示无非是两种应对措施,要么安装,要么不安装! 对于每次都安装的人其实没必要弹提示框,直接安装就好了;对于不安装的人,他也不想看提示框啊,直接取消就好了;对于偶尔想更新一下的人,手工安装更新就好了。 下面来说说怎么设置,包括图形界面的方法,和命令行的方法,包括禁止更新Ubuntu内核的方法。一、基于图形桌面来配置 1、打开系统设置(system setti
2021-07-13 12:18:45
4581
转载 怎么修改Ubuntu更新源服务器为国内地址
Ubuntu系统安装完默认更新源是国外服务器,总所周知的原因我天朝连接外国的速度那是很有讲究的,如果偶尔用用Ubuntu也就无所谓了,但是经常使用肯定会让你崩溃的,国内国外速度相差十倍都不止。 更新源地址也很简单,有两种方法,一种是如果安装了图形界面,通过配置中心来更改是很方便的...
2021-07-13 12:18:39
3685
转载 C++ 创建二维数组的几种方法
一、用new申请内存空间int **dp=new int*[n];//动态申请二维数组nxmfor(int i=0;i<n;++i){ dp[i]=new int[m];}二、用malloc申请内存空间1 int len=100;2 3 int **dp=(int **)malloc(sizeof(int) *(len+1));for(int i=0;i<=len;++i){4 dp[i]=new int[4];5 }三、使用vector创建一个二维数组1
2021-07-13 12:18:28
1937
转载 Qt C++ new一个对象的,加括号和不加括号的区别
结论1.加括号调用没有参数的构造函数,不加括号调用默认构造函数或唯一的构造函数,看需求2.C++在new时的初始化的规律可能为:对于有构造函数的类,不论有没有括号,都用构造函数进行初始化;如果没有构造函数,则不加括号的new只分配内存空间,不进行内存的初始化,而加了括号的new会在分配内存的同时初始化为0。3.A a =new A(this);创建一个a对象,调用没有参数的构造函数并指定父类。QLabel label = new QLabel(this); //指定父类 以便子类空间的自动释放
2021-07-13 12:18:23
482
转载 C++调用MATLAB函数
MATLAB具有着很高的计算性能,一些算法用MATLAB很容易实现,而用C++很难实现,如果想在C++中调用MATLAB编写的函数,可以将该函数编译成库文件,之后在C++中对其进行调用。本文详细讲解如何将MATLAB函数编译成库,并在C++中进行调用。方法可行,本人亲测。第一步、在MATLAB中的命令行窗口中输入mex -setup,会出现如下界面。第二步、点击界面中的“mex -setup C++”,出现如下提示。第三步、之后就是进行对MATLAB中的function的编译了。这里,我的函数名
2021-07-13 12:18:15
1569
转载 一定用得到的免费 C++ 资源,值得收藏!
曾经看过国外的程序猿这么评价C/C++:想要精通C/C++,就跟要精通中文一样难,至少需要你努力三年。 提到C/C++语言很多初学者都觉得,学到中间就进行不下去了,但是如果你最难啃的那几块硬骨头拿下,一切都会顺畅许多,而且C++诞生很久了,因此有大量可以免费阅读编程文档。近日,在Quora上发现一份免费的C ++资料列表,涉及到C++的各方各面。如果你对C++感兴趣,不妨继续往下看看看这些资料是不是你正需要的。 C++标准参考 C++ reference 地址:https://en.cpprefe.
2021-07-13 12:18:10
404
转载 C 库函数 - fprintf()
描述C 库函数 int fprintf(FILE *stream, const char *format, …) 发送格式化输出到流 stream 中。声明下面是 fprintf() 函数的声明。int fprintf(FILE *stream, const char *format, …)参数stream – 这是指向 FILE 对象的指针,该 FILE 对象标识了流。format – 这是 C 字符串,包含了要被写入到流 stream 中的文本。它可以包含嵌入的 format 标签,fo
2021-07-13 12:18:03
247
转载 MFC多线程及同步技术
MFC线程分类工作者线程 - 主要用于后台的耗时的操作,通常没有用户界面。用户界面线程 - 拥有独立的用户界面工作者线程的使用首先实现线程的回调函数,函数原型:UINT MyControllingFunction( LPVOID pParam );创建和启动工作则线程AfxBeginThread用户界面线程的使用添加CWinThread类的派生类在派生类的InitInstance()函数中创建用户界面创建和启动用户界面线程AfxBeginThread新建一个基于对话框的MFC
2021-07-13 10:22:16
392
转载 MFC读取utf8文件
void CtempDlg::ConvertUTF8ToANSI(CString strUTF8,CString &strANSI){ int nLen = ::MultiByteToWideChar(CP_UTF8,MB_ERR_INVALID_CHARS,(LPCTSTR)strUTF8,-1,NULL,0); //返回需要的unicode长度 WCHAR * wszANSI = new WCHAR[nLen+1]; memset(wszANSI, 0, nLen * 2
2021-07-13 10:18:13
1154
转载 在linux后台运行脚本命令和程序的方法大全
需要在linux后台执行任务的情况还是经常会遇到的,比如一些费时的操作,或者一些需要长时间存在的程序。当然你也可以把这些任务做成守护进程或者后台服务,但这需要额外的工作量。 linux提供了很多方法可以直接将普通的命令、脚本、应用程序以后台的形式运行起来,这样就不会阻塞终端窗口的继续使用。常用的涉及后台执行的命令有十几多个,包括:&、ctrl+z、bg、fg、nohup、disown、setsid、(cmd)、jobs、ps、kill 等。 下面先对每个命令的功能作用做一个简单的介绍,然后分别
2021-07-12 12:02:44
2340
1
转载 C++ delete指针以后应赋值为NULL
delete p后,只是释放了指针指向的内存空间。p并不会自动被置为NULL,而且指针还在,同时还指向了之前的地址delete NULL编译器不会报错(因为delete空指针是合法的)例:对一个非空指针delete后,若没有赋NULL,若再次delete的话,有可能出现问题。如下代码1 int *p = new int(3);2 delete p;3 delete p;用VC编译运行将出现问题。将其改为:1 int *p = new int(3);2 delete p;3 p =
2021-07-12 11:50:37
511
转载 C++ 必备知识点(一看秒懂),逆袭进大厂,干货满满,全在这里
本文主要对C++一些必备知识点的梳理,适合在校学生、有意向跳槽的,工作经验不足的人群。 更有C++11 常用的特性知识梳理。 知识梳理 C++ new关键字详解C++ 深拷贝和浅拷贝C++ 静态库和动态库C++ new和malloc的区别详解C++ 宏定义和typedef区别详解C++ strlen和sizeof区别C++ 野指针和悬空指针C++ struct和class的区别...
2021-07-12 11:50:23
207
转载 各种加密算法的速度对比
cpu: Intel Core i7-4712MQ CPU 2.3GHz memory:8GB os:win7 64 命令: cryptotest b AlgorithmMiB/SecondMicroseconds to Setup Key and IVAES/GCM3111.706AES/CCM1421.094AES/EAX1431.643GMAC(AES)7501.707VMAC(AES)...
2021-07-12 11:50:17
1807
转载 Mculover666的博客文章导航(嵌入式宝藏站)(2021.06.17更新)
一、MCU系列 1. 开发环境 【Keil MDK】(一)Keil MDK 5.28 的下载、安装、破解【Keil MDK】(二)Keil MDK中芯片器件包的安装【Keil MDK】(三)Keil MDK更换Sublime Text Molokai主题 【Keil MDK】(四)Keil MDK的一些推荐功能(编码格式、自动保存、代码提示、动态语法检查、多核编译) 【STM32开发环境】Linux下开发stm32(一) | 使用gcc-arm-none-eabi工具链编译【STM32开发环境】Linu
2021-07-12 11:50:09
1295
转载 Ubuntu16-18将自己的应用建立桌面快捷图标的方法
linux现在桌面环境越来越普及,Ubuntu的桌面快捷图标其实是一个.desktop文件,该文件是一个标准文本文件,所以我们只要建立文件并编辑该文件的内容就可以了。当然这只是原理,下面我们来看看具体的操作方法。 有两种情况: 一是标准安装的应用程序,这种程序一般安装之后就已...
2021-07-12 11:49:31
681
1
转载 Ubuntu16_18建立返回桌面、显示桌面的快捷图标的特殊方法
一般windows系统任务栏上都有“返回桌面”的按钮,Ubuntu也有类似的任务栏(或者叫启动器),但是没有这个“显示桌面”的按钮。如果想加一个怎么实现呢? 有人可能说了按ctrl+super+d就可以了,是的没错,不过这是按键不是快捷图标。有人喜欢按键盘,有人喜欢点鼠标,萝卜青菜各有所爱。 这个快捷方式Ubuntu16的实现方法和Ubuntu18差别较大,下面分别进行说明。一、Ubuntu16返回桌面的实现方法 1、打开系统设置(一个齿轮一样的图标),接着打开“外观”,如下图所示。 2、打开之后
2021-07-12 11:47:04
876
转载 ubuntu顶部的任务栏-标题栏-菜单栏-启动器消失不见7个解决办法
因为开发环境的Ubuntu服务器不敢随便折腾,所以就在自己机器装了一个,折腾来折腾去,不知道哪个环节安装、卸载出了问题,也可能是改了什么配置我没注意到。进入桌面后找不到启动器,菜单栏和标题栏了,终端可以打开,也能通过终端运行程序。 有两次是重启机器就好了,有一次是重装了桌面解决的。 自己分析了一下,出现这种问题一般还是软件的兼容性问题导致的,就是对某一个软件的安装、卸载、更改配置影响了桌面相关的组件或服务。说白了就是更改过程中没看清、没注意、不小心导致的。 总结了一下碰到类似问题,大概有7个方法可以尝
2021-07-12 11:45:17
4922
转载 ubuntu修改配置IP地址和DNS的方法总结(4种)
Ubuntu配置IP的方法比较多,网上也是什么都有五花八门的,按照方法进行经常不好使,其实绝大多数时候不是人家写的有问题,而是方法有一定的针对性,这里特对配置静态IP方法作个总结。 首先Ubuntu分为Server版和Desktop版,这两种版本的设置方式有很大区别,主要是配置入口工具不一样,Desktop版有一个Network-manager软件,要尽量使用这个软件来进行IP的设置。 其次,Ubuntu不同版本号的系统,IP配置方法也会不一样。这主要也是因为入口的问题,Ubuntu16版使用netw
2021-07-12 11:44:25
10365
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人