自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 找出出现次数最多的数字

数据结构

2022-12-29 18:54:01 325

原创 进阶操作系统

学习笔记,来自狄泰软件学院什么是操作系统?Windows,UNIX,Linux,Mac OS,Andriod,IOS,... 操作系统是直接运行于硬件之上的计算机程序 操作系统用于管理和控制计算机的硬件和软件资源 操作系统为用户软件的开发提供必要的服务和接口现代计算机系统架构BIOS-Base Input & Output SystemBIOS是计算机上电后第一个运行的程序 BIOS首先检测硬件状态,检测通过后立即进行硬件初始化 BIOS会在内存中建立中断向量表(提供

2020-12-27 21:42:56 224

原创 10.变量与函数的综合示例

1.实战需求自动生成target文件夹存放可执行文件 自动生成objs文件夹存放编译生成的目标文件(*.o) 支持调试版本的编译选项 考虑代码的扩展性2.工具原料$(wildcard _pattern)获取当前工作目录中满足_pattern的文件或目录列表$(addprefix_prefix, _names)给名字列表_names中的每一个名字增加前缀_pr...

2019-10-11 10:45:40 291

原创 9.函数定义及调用

1.makefile中支持函数的概念make解释器提供了一系列的函数供makefile调用 在makefile中支持自定义函数实现,并调用执行 通过define关键字实现自定义函数2.自定义函数的语法3.深入理解自定义函数自定义函数是一个多行变量,无法直接调用 自定义函数是一个过程调用,没有任何的返回值 自定义函数用于定义命令集合,并应用于规则中4...

2019-10-09 20:13:40 389

原创 8.支持条件判断语句

1.makefile中支持条件判断语句可以根据条件的值来决定make的执行 可以比较两个不同变量或者变量和常量值2. 注意事项条件判断语句只能用于控制make实际执行的语句;但是,不能控制规则中命令的执行过程3.条件判断关键字关键字 功能 ifeq 判断参数是否相等,相等为true,否则为false ifneq 判断参数是不否相等,不相等...

2019-10-08 21:30:08 161

原创 MAKE

声明:MAKE系列博客均来自狄泰软件学院本人学习记录

2019-10-08 20:23:24 136

原创 6.变量的高级主题

1.变量值的替换使用指定字符(串)替换变量值中的后缀字符(串) 语法格式:$(var:a=b)或${var:a=b} 替换表达式不能有任何的空格 make中支持使用${}对变量进行取值2.变量的模式替换使用%保留变量值中的指定字符,替换其它字符 语法格式:$(var:a%b=x%y)或${var:a%b=x%y}...

2019-10-08 20:19:22 119

原创 5.预定义变量的使用

1.在makefile中存在一些预定义的变量1.自动变量$@ 当前规则中触发命令被执行的目标 $^ 当前规则中的所有依赖 $< 当前规则中的第一个依赖2.注意"$"对于makefile有特殊含义 输出时需要加入一个"$"进行转义 "$@"对于Bash Shell有特殊含义输出时需要加入"\"进行转义3.一些特殊变量的含义$(MAKE) ...

2019-10-08 15:21:54 227

原创 4.变量和不同的赋值方式

1.基本概念makefile中支持程序设计语言中变量的概念 makefile中的变量只代表文本数据(字符串) makefile中的变量名规则变量名可以包含字符,数字,下划线 不能包含":","#","="," " 变量名大小写敏感2.变量的定义和使用3.赋值方式简单赋值( := ) 程序设计语言中通用的赋值方式 ...

2019-10-07 11:50:41 181

原创 3.伪目标的引入

1.makefile中的目标究竟是什么?默认情况下make认为目标对应着一个文件 make会比较目标文件和依赖文件的新旧关系,决定是否执行命令 make以文件处理作为第一优先级2.makefile中的伪目标通过.PHONY关键字声明一个伪目标 伪目标不对应任何实际的文件 不管伪目标的依赖是否更新,命令总是执行3.伪目标的语法先声明,后使用本质:...

2019-10-06 22:56:05 121

原创 2.初始makeflie的结构

1.makefile 的意义makefile 用于定义源文件间的依赖关系 makefile 说明如何编译各个源文件并生成可执行文件2.makefile 中的元素含义targets通常是需要生成的目标文件名 make 所需执行的命令名称prerequisities当前目标所以依赖的其它目标或文件command完成目标所需要执行的命令3.规则中的注意...

2019-10-06 21:53:32 126

原创 1.make 和 makefile

来自狄泰软件学院0.前言无论是在Linux还是在Unix环境中,make都是一个非常重要的编译命令。不管是自己进行项目开发还是安装应用软件,我们都经常要用到make或make install。利用make工具,我们可以将大型的开发项目分解成为多个更易于管理的模块,对于一个包括几百个源文件的应用程序,使用make和makefile工具就可以简洁明快地理顺各个源文件之间纷繁复杂的相互关系。而...

2019-09-22 10:30:10 167

原创 死锁

1.什么是死锁死锁是指多个进程因竞争资源而造成的一种僵局(互相等待),若无外力作用,这些进程都将无法向前推进。例如,在某一个计算机系统中只有一台打印机和一台输入设备,进程P1正占用输入设备,同时又提出使用打印机请求,但此时打印机正被进程P2所占用,在P2未释放打印机之前,又提出请求使用正被P1占用着的输入设备。这样两个进程相互无休止地等待下去,均无法继续执行,此时两个进程陷入死锁状态。...

2019-09-08 09:53:28 167

原创 嵌入式面试四

3.HTTP协议格式。HTTP使用统一资源标识符(URI)来传输数据和建立连接。URL(统一资源定位符)是一种特殊种类的URI,包含了用于查找的资源的足够的信息,我们一般常用的就是URL,而一个完整的URL包含下面几部分:http://www.fishbay.cn:80/mix/76.html?name=kelvin&password=123456#first1.协议部分...

2019-09-06 21:08:32 391

原创 嵌入式三

1.进程与线程的区别地址空间:同一进程内的线程共享本进程的地址空间,而进程之间则是独立的地址空间。资源拥有:同一进程内的线程共享本进程的资源如内存、I/O、cpu等,但是进程之间的资源是独立的。一个进程崩溃后,在保护模式下不会对其他进程产生影响,但是一个线程崩溃整个进程都死掉。所以多进程要比多线程健壮进程切换时,消耗的资源大,效率低。所以涉及到频繁的切换时,使用线程要好于进程。同...

2019-09-05 22:13:30 241

原创 嵌入式笔试总结

1.数组基本知识#include <stdio.h>int main(){ int a[10] = {1,2,3,4,5,6,7,8,9,0}; int *p = &a[1]; printf("%d\n", p[6]); //8 return 0;}2.获取x的绝对值的宏abs(x)#define abs(x) ((...

2019-09-05 15:08:22 441

原创 RTSP协议

RTSP(Real-Time Stream Protocol)协议是一个基于文本的多媒体播放控制协议,属于应用层。RTSP以客户端方式工作,对流媒体提供播放、暂停、后退、前进等操作。RTSP作为一个应用层协议,提供了一个可供扩展的框架,使得流媒体的受控和点播变得可能,它主要用来控制具有实时特性的数据的发送,但其本身并不用于传送流媒体数据,而必须依赖下层传输协议(如RTP/RTCP)所提供的服务...

2019-09-02 22:30:28 391

原创 入门理解H.264编码

首先要弄明白编码的目的。编码是为了将数据进行压缩,这样在传输的过程中就不会使资源被浪费。用一个简单的例子来说明编码的必要性:当你此刻显示器正在播放一个视频,分辨率是1280*720,帧率是25,那么一秒所产生正常的数据大小为:1280*720(位像素)*25(张) / 8(1字节8位)(结果:B) / 1024(结果:KB) / 1024 (结果:MB) =2.75MB显然一秒这么大的数据...

2019-09-02 22:12:31 1483

原创 ORTP

1.为什么要使用RTP一提到流媒体传输、一谈到什么视频监控、视频会议、语音电话(VOIP),都离不开RTP协议的应用,但当大家都根据经验或者别人的应用而选择RTP协议的时候,你可曾想过,为什么我们要使用RTP来进行流媒体的传输呢?为什么我们一定要用RTP?难道TCP、UDP或者其他的网络协议不能达到我们的要求么?像TCP这样的可靠传输协议,通过超时和重传机制来保证传输数据流中的每一个bi...

2019-09-02 09:55:46 2779

原创 海思官方文档学习五

1.概述VENC 模块,即视频编码模块。本模块支持多路实时编码,且每路编码独立,编码协议和编码 profile 可以不同。本模块支持视频编码同时,调度 Region 模块对编码图像内容进行叠加和遮挡。VENC 模块的输入源包括三类:用户态读取图像文件向编码模块发送数据; 视频输入(VIU)模块采集的图像经视频处理子系统(VPSS)发送到编码模块; 视频输入(VIU)模块采集的图像...

2019-09-02 08:44:12 499

原创 海思官方文档学习四

1.概述VPSS(Video Process Sub-System)支持对一幅输入图像进行统一预处理,如去噪、去隔行等,然后再对各通道分别进行缩放、锐化等处理,最后输出多种不同分辨率的图像。VPSS 单元支持的具体图像处理功能包括 FRC(Frame Rate Control)、 Crop、 NR(Noise Reduce)、 LDC(Lens Distortion Correction...

2019-09-01 22:36:27 727

原创 ISP_3A开发指南学习

1.设计思路ISP 的 Firmware 包含三部分,一部分是 ISP 控制单元和基础算法单元,即 ISP 库,一部分是 AE/AWB/AF 算法库,一部分是 sensor 库。 Firmware 设计的基本思想是单独提供 3A 算法库,由 ISP 控制单元调度基础算法单元和 3A 算法库,同时 sensor 库分别向ISP 库和 3A 算法库注册函数回调,以实现差异化的 sensor 适配...

2019-09-01 22:07:27 1246 2

原创 海思官方文档学习三

1.视频输入视频输入(VI)模块实现的功能:通过 ITU-R BT656/601/1120 接口或 Digital Camera接口、 MIPI Rx(含 MIPI 接口、 LVDS 接口和 HISPI 接口)接收视频数据。当工作在离线模式时,将接收到的数据存入到指定的内存区域;当工作在在线模式时, VI 会将数据直接送给 VPSS。在此过程中, VI 可以对接收到的原始视频图像数据进行裁剪...

2019-09-01 21:54:46 398

原创 海思官方文档学习二

1系统概述系统控制根据 Hi35xx 芯片特性,完成硬件各个部件的复位、基本初始化工作,同时负责完成 MPP(Media Process Platform 媒体处理平台)系统各个业务模块的初始化、去初始化以及管理 MPP 系统各个业务模块的工作状态、提供当前 MPP 系统的版本信息、提供大块物理内存管理等功能。应用程序启动 MPP 业务前,必须完成 MPP 系统初始化工作。同理,应用程序...

2019-09-01 21:45:47 788

原创 海思官方文档学习一

本文只整理后面需要用到的内容1.系统概述海思提供的媒体处理软件平台(Media Process Platform,简称 MPP),可支持应用软件快速开发。该平台对应用软件屏蔽了芯片相关的复杂的底层处理,并对应用软件直接提供MPI(MPP Programe Interface)接口完成相应功能。2.系统架构MPP 平台支持的典型的系统层次所示,主要分为以下层次:硬件层硬...

2019-09-01 21:26:03 1825

原创 嵌入式面试二

1.uboot的作用自身可开机直接启动 能够引导操作系统内核启动并给内核传参 能提供系统部署功能 能进行soc级和板级硬件管理2.linux启动流程内核的引导。 运行 init。 系统初始化。 建立终端 。 用户登录系统。嵌入式系统上电后先执行uboot、然后uboot负责初始化DDR,初始化Flash,然后将OS从Flash中读取到DDR中,然后启动OS(OS...

2019-08-31 19:42:58 146

原创 嵌入式面试一

1.文件系统JFFS2、YAFFS、EXT32.可重入函数的条件有哪些在实时系统的设计中,经常会出现多个任务调用同一个函数的情况。如果这个函数不幸被设计成为不可重入的函数的话,那么不同任务调用这个函数时可能修改其他任务调用这个函数的数据,从而导致不可预料的后果。那么什么是可重入函数呢?所谓可重入是指一个可以被多个任务调用的过程,任务在调用时不必担心数据是否会出错。不可重入函数在...

2019-08-31 14:59:55 204

原创 c++面试八

1.最长有效括号给定String,该String只包含 '(' 以及 ')' 字符,输出该String内的,最长的有效的括号的组合的长度给定一个只包含 '('和 ')'的字符串,找出最长的包含有效括号的子串的长度。示例1:输入: "(()"输出: 2解释: 最长有效括号子串为 "()"示例 2:输入: ")()())"输出: 4解释: 最长有效括号子串为 "...

2019-08-30 18:46:55 182

原创 c++面试七

1.僵尸进程进程在运行时需要消耗系统资源(内存、IO),进程终止时理应完全释放这些资源(如果进程消亡后仍然没有释放相应资源则这些资源就丢失了)linux系统设计时规定:每一个进程退出时,操作系统会自动回收这个进程涉及到的所有的资源(譬如malloc申请的内容没有free时,当前进程结束时这个内存会被释放,譬如open打开的文件没有close的在程序终止时也会被关闭)。但是操作系统只是回收...

2019-08-29 22:37:18 164

原创 c++面试六

1.vector自扩展原理vector 常被称为“容器”,习惯将之理解为动态数组。它表示对象的集合,其中所有对象都相同,每个对象都对应一个索引,索引用来访问对象。作为动态数组,vector 有一个指针指向一片连续的内存空间。但是,这个内存空间肯定不是无限大的,当内存装不下数据时,系统会自动申请一片更大的空间,把原来的数据拷贝过去,释放原来的内存空间。vector 里面有 2 个成员函数s...

2019-08-29 21:42:52 110

原创 c++面试五

1.代理模式当待排数据元素为体积庞大的对象时,如何提高排序的效率?问题分析- 排序过程中不可避免的需要进行交换操作 -交换操作的本质为数据元素间的相互复制 -当数据元素体积较大时,交换操作耗时巨大解决方案:代理模式为待排数据元素设置代理对象 对代理对象所组成的序列进行排序 需要访问有序数据元素时,通过访问...

2019-08-29 11:27:57 115

原创 c++面试四

字符串操作函数1.strcpy() 函数 标准实现原型声明:extern char* strcpy(char *dst,const char *src);  头文件:string.h  功能:把src所指由NULL结束的字符串复制到dst所指的数组中。  说明:src和dst所指内存区域不可以重叠且dst必须有足够的空间来容纳src的字符串。  返回指向dst的指针。...

2019-08-29 10:25:29 129

原创 c++面试三

17.struct和class的区别在用struct定义类时,所有成员的默认访问级别为public 在用class定义类时,所有成员的默认访问级别为private 早期的c++直接复用class关键字来定义模板18.内存模型有几类​ C++内存由高地址到低地址依次是栈区(向下增长,用于存放函数内的局部变量,形参和函数返回值。系统会自动管理栈区的内存分配与回收)、堆区(向...

2019-08-28 21:16:48 156

原创 c++面试二

8.虚拟继承的主要作用c++中允许一个类继承自多个父类一个子类可以拥有多个父类 子类拥有所有父类的成员变量 子类继承所有父类的成员函数 子类对象可以当作任意父类对象使用#include <iostream>#include <string>using namespace std;class BaseA{ int ma;public:...

2019-08-28 14:26:09 138

原创 c++面试一

1.new和malloc的区别new关键字是c++的一部分 malloc是由c库函数提供的函数 new以具体类型为单位进行内存分配 malloc以字节为单位进行内存分配 new在申请内存空间时可进行初始化 malloc仅根据需要申请定量的内存空间new在所有c++编译器中都被支持 malloc在某些系统开发中是不能调用 new能够触发构造函数的调用 malloc仅分配...

2019-08-27 21:14:57 101

原创 构造中的异常

如果构造函数中抛出异常会发生什么情况?构造过程立即停止 当前对象无法生成 析构函数不会被调用 对象所占用的空间立即收回建议不要再构造函数中抛出异常 当构造函数可能产生异常时,使用二阶构造模式#include <iostream>#include <string>using namespace std;class Test{publi...

2019-08-27 15:15:17 154

原创 如何判断指针变量

思路:将变量分为两类:指针 vs 非指针编写函数指针变量调用时返回true 非指针变量调用时返回false 函数模板与变参函数#include <iostream>#include <string>using namespace std;class Test{public: Test() { } virtu...

2019-08-27 15:02:32 295

原创 单例模式

1.需求:在架构设计时,某些类在整个系统生命期中最多只能有一个对象存在(Single Instance)如何定义一个类,使得这个类最多只能创建一个对象?要控制类的对象数目,必须对外隐藏构造函数 思路: 将构造函数的访问属性设置为private 定义instance并初始化为NULL 当需要...

2019-08-27 11:42:26 84

原创 关于虚函数

构造函数是否可以成为虚函数?析构函数是否可以成为虚函数?构造函数不可能成为虚函数在构造函数执行结束后,虚函数表指针才能被正确初始化析构函数可以成为虚函数建议在设计类时将析构函数声明为虚函数#include <iostream>#include <string>using namespace std;class Base{public...

2019-08-26 19:35:14 134

原创 关于动态内存分配

new和malloc的区别是什么?delete和free的区别是什么?new关键字与malloc函数的区别new关键字是c++的一部分 malloc是由c库函数提供的函数 new以具体类型为单位进行内存分配 malloc以字节为单位进行内存分配 new在申请内存空间时可进行初始化 malloc仅根据需要申请定量的内存空间#include <iostream>...

2019-08-26 17:37:49 123

使用FFMPEG解码视频之保存成图片

Windows10下Qt5.12引用FFMPEG2.5.2 64位的例子。使用FFMPEG解码视频之保存成图片

2019-08-22

ffmpeg.zip

Windows10下Qt5.12引用FFMPEG2.5.2 64位的例子,打印输出FFMPEG的版本号,只是成功引用了ffmpeg,并没有实际应用。

2019-08-22

ffmpeg-2.5.2-win64-shared.7z

This is a FFmpeg Win64 shared build by Kyle Schwarz. Zeranoe's FFmpeg Builds Home Page: This build was compiled on: Dec 30 2014, at: 17:29:04 FFmpeg version: 2.5.2 libavutil 54. 15.100 / 54. 15.100 libavcodec 56. 13.100 / 56. 13.100 libavformat 56. 15.102 / 56. 15.102 libavdevice 56. 3.100 / 56. 3.100 libavfilter 5. 2.103 / 5. 2.103 libswscale 3. 1.101 / 3. 1.101 libswresample 1. 1.100 / 1. 1.100 libpostproc 53. 3.100 / 53. 3.100 This FFmpeg build was configured with: --disable-static --enable-shared --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-lzma --enable-decklink --enable-zlib This build was compiled with the following external libraries: bzip2 1.0.6 Fontconfig 2.11.91 Frei0r 20130909-git-10d8360 GnuTLS 3.2.20 libiconv 1.14 libass 0.12.0 libbluray 0.6.2 libbs2b 3.1.0 libcaca 0.99.beta18 <http://caca.zoy.org

2019-08-22

ffmpeg-2.5.2-win64-dev.7z

This is a FFmpeg Win64 shared build by Kyle Schwarz. Zeranoe's FFmpeg Builds Home Page: This build was compiled on: Dec 30 2014, at: 17:29:04 FFmpeg version: 2.5.2 libavutil 54. 15.100 / 54. 15.100 libavcodec 56. 13.100 / 56. 13.100 libavformat 56. 15.102 / 56. 15.102 libavdevice 56. 3.100 / 56. 3.100 libavfilter 5. 2.103 / 5. 2.103 libswscale 3. 1.101 / 3. 1.101 libswresample 1. 1.100 / 1. 1.100 libpostproc 53. 3.100 / 53. 3.100 This FFmpeg build was configured with: --disable-static --enable-shared --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-lzma --enable-decklink --enable-zlib This build was compiled with the following external libraries: bzip2 1.0.6 Fontconfig 2.11.91 Frei0r 20130909-git-10d8360 GnuTLS 3.2.20 libiconv 1.14 libass 0.12.0 libbluray 0.6.2 libbs2b 3.1.0 libcaca 0.99.beta18 FreeType 2.5.4 Game Music Emu 0.6.0 GSM 1.0.13-4 iLBC 20141214-git-ef04ebe Modplug-XMMS 0.8.8.5 LAME 3.99.5 OpenCORE AMR 0.1.3 OpenJPEG 1.5.2 Opus 1.1 RTMPDump 20140707-git-a1900c3 Schroedinger 1.0.11 libsoxr 0.1.1 Speex 1.2rc2 Theora 1.1.1 TwoLAME 0.3.13 vid.stab 0.98 VisualOn AAC 0.1.3 VisualOn AMR-WB 0.1.2 Vorbis 1.3.4 vpx 1.3.0 WavPack 4.70.0 WebP 0.4.2 x264 20141220-git-40bb568 x265 1.4 XAVS svn-r55 Xvid 1.3.3 XZ Utils 5.2.0 zlib 1.2.8 The source code for this FFmpeg build can be found at: This build was compiled on Debian 8.0 (64-bit): GCC 4.9.2 was used to compile this FFmpeg build: This build was compiled using the MinGW-w64 toolchain: Licenses for each library can be found in the 'licenses' folder.

2019-08-22

狄泰 c++ 数据结构项目实战

泛型编程 异常类 线性表 数组 单链表 智能指针 循环链表 双向链表 内核链表 栈和队列 字符串 递归 排序 树 二叉树 图 BFS DFS Prim kruskal Dijkstra Floyd

2019-08-19

IoTapp.zip 基于QT的华为云平台北向开发

本文档包含源代码,可执行程序,和打包好的可执行程序,IoT平台北向应用证书使用指南,华为IoT平台北向API参考。在源代码中的readme.txt,记录了本人学习的过程和遇到的问题。大家可以交流下载。

2019-07-07

RTSPPLAYER.zip

qt+mingw64+windows10+ffmpeg2.5.2 64位+rtsp保证编译可用 1.ui界面 labvideo1 通道1 labvideo2 通道2 labvideo3 通道3 labImage 截图显示 通道12使用水平布局 通道3和截图显示使用水平布局 整体使用垂直布局 2.qffmpeg.h qffmpeg.cpp的实现 是一个视频解码的过程 具体可参考 https://www.cnblogs.com/wangguchangqing/p/5734998.html https://www.cnblogs.com/wangguchangqing/p/5744941.html 通过上面两篇博客可以了解ffmpeg(本次需要用到的API)。 建议先学习以下博客 从零开始学习音视频编程技术,本人因项目需要只需要处理视频,建议大家学习前6章,基本够用了做一个流媒体播放器 http://blog.yundiantech.com/?log=blog&id=4 前12节音视频概念。 第三节开发环境搭建 第四节ffmpeg的使用 第五节使用FFMPEG解码视频之保存成图片 第六节FFMPEG Qt视频播放器之显示图像

2019-07-03

HLW8032 QT 串口接收

使用QT5开发,界面使用QT ui设计器,参考网上通用代码例程,自己做了修改,可以正常读取HLW8032功率计量芯片的的数据,并在上位机中解析计算,代码中都有注释希望对初入坑的同学有所帮助

2019-03-21

STM32采集HLW8032数据

STM32通过USART1采集HLW8032数据,串口3发送到串口调试助手

2018-09-08

空空如也

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

TA关注的人

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