自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

老夏课堂-夏曹俊的技术专栏

夏曹俊C++编程和音视频相关技术(ffmpeg opencv )

  • 博客(132)
  • 资源 (8)
  • 收藏
  • 关注

原创 cmake是什么,为什么现在都用cmake,cmake编译原理和跨平台示例

CMake是一个开源、跨平台的工具系列,是用来构建、测试和打包软件。CMake使用平台无关的配置文件来控制软件编译过程,并生成可在您选择的编译器环境中使用项目文件,比如可以生成vs项目文件或者makefile。CMake工具套件由Kitware公司创建,以满足ITK和VTK等开源项目对跨平台构建环境的需求。Kitware是一家从事医疗计算,高性能的可视化和计算,数据和分析,计算机视觉的公司。该公司成立于1998年。

2022-09-03 12:23:09 15998 1

原创 cmake使用方法详解 - Windows Linux MacOS cmake安装教程

适合人群有部分语言基础,想要学习Linux平台项目开发想要学习跨平台构建方案想要学习自动化单元测试方法的同学公司需要需要使用cmake做项目构建

2022-09-01 17:43:48 2578

原创 操作系统设计中的加电引导

作者:丁宋涛系统启动过程概述在掀下电脑开机按钮后,电源就会开始向主板和其他外围设备供电。初始状态下的电压还不太稳定,因此并不会立即开始指令的执行。此时,主板上的控制芯片组会发出重置信号,然后等待内部初始化工作的完成。等到控制芯片组检测到电源己经开始稳定供电后,它撤去信号,跳转到合适的内存地址处,读取并执行第一条机器指令。系统需要完成一系列的准备工作,以确保后续系统及程序的正确执行。这些准备工作包括检测基础的外围设备是否存在、检测系统实际物理内存及程序可用内存大小、建立内存空间的映射图、对硬件设备发出

2020-07-04 17:13:27 632

原创 OpenSSL 3.0 版本已经发布VS2019编译源码教程

1 OpenSSL 3.0版本在2020年五月发布OpenSSL3.0 在2020年5月发布了第一个版本,随即在六月份又发布了一些alpha版本,版本修正了一些bug,增加了一些协议支持,继续支持国密sm2 ,sm3 ,sm4(从1.1.1版本开始支持)。 3.0版本完全兼容1.1.1版本接口,但低级别的MD2, MD4, MD5, MDC2,SHA1, SHA224, SHA256, SHA384, SHA512,AES,DES,ECDH,DSA,ECDSA,RSA接口都会被警告将要被...

2020-06-30 14:42:09 2474 2

原创 Leetcode基础篇30天30题系列之数组:模拟计算法

作者:丁宋涛数组:加一题干:给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位,数组中每个元素只存储一个数字。你可以假设除了整数0 之外,这个整数不会以零开头。参考样例:示例1:输入:[1,2,3]输出:[1,2,4]解释:输入数组表示数字 123。示例2:输入:[4,3,2,1]输出:...

2019-06-18 17:53:19 587

原创 windows 平台使用 VS2017 编译 libevent 源码

一 依赖库编译先要将其依赖的库编译好,其中openssl需要编译到libevent中,编译成libevent_openssl.lib库,zlib在新版本中只有示例用到。1)windows 平台使用 VS2017 编译 openssl 源码参考前面的文章 openssl 默认编译到 C:\Program Files (x86)\OpenSSL 目录,包含收文件,lib文件和dll文件,...

2019-04-30 17:32:54 1165

原创 windows 平台使用 VS2017 编译openssl源码

1)依赖安装安装 perl 脚本解释器 下载http://libevent.net/download 安装 nasm 汇编器 C:\Users\xiaca\AppData\Local\bin\NASM 下载http://libevent.net/download 默认会安装用户目录 C:\Users\用户名\AppData\Local\bin\NASM ...

2019-04-29 17:24:11 681

原创 mysql8.0 Server 在Windows平台中的安装、初始化和远程访问设置

mysql8.0 server安装1.下载mysql 8.0 可以到mysql官网下载https://dev.mysql.com/downloads/mysql 或者如下地址 mysql-8.0.13 Server windows X64安装文件 http://libmysql.com/download 2.安装mysql 8.0我这边选择了custom定...

2019-04-28 16:44:04 456

原创 python3使用ctypes在windows中访问C和C++动态链接库函数示例

python3使用ctypes在windows中访问C和C++动态链接库函数示例这是我们的第一个示例,我们尽量简单,不传参,不返回,不访问其他的动态链接库一 测试环境介绍和准备测试环境:操作系统:windows10Python版本:3.7.0VS版本:vs2015社区版(免费)相关工具下载:VS版本vs2015社区版(免费)Python3.7.0 (源码和安装文...

2018-11-16 12:54:47 1307

原创 Python3.7源码在linux(ubuntu)下的编译和安装

在我们的c++项目要引入脚本,之前用了lua,也是非常好用,缺点就是学习的人比较少,所以考虑在新的项目中引用python作为脚本。首先先说明测试环境宿主机:window10虚拟机:VMware 12 ubuntu 16.04 desktop 64位版本1 安装虚拟机和ubuntu 16.04 desktop 64位版本 http://www.ffmpeg.club/tools_do...

2018-11-14 11:49:07 2324

原创 C++开发python windows版本的扩展模块示例

C++开发python windows版本的扩展模块示例测试环境介绍和准备测试环境:操作系统:windows10Python版本:3.7.0VS版本:vs2015社区版(免费)相关工具下载:VS版本vs2015社区版(免费)win10SDK(安装vs2015是可以选择,如果没有安装则需要独立安装)Python3.7.0 win32 安装文件http://ff...

2018-11-08 12:09:07 451

原创 Python3.7源码在windows(VS2015)下的编译和安装

Python3.7源码在windows(VS2015)下的编译和安装下载官方源码,使用vs2015(WIN10SDK),最python3.7.0的源码进行编译,编译出不同的版本(release,debug),并配置python的运行环境(环境变量的配置)。测试环境介绍和准备测试环境:操作系统:windows10Python版本:3.7.0VS版本:vs2015社区版(免费)...

2018-11-06 12:00:39 3199

原创 CSDN学院中的Android影音(流媒体)播放器开发实战基于NDK、C++和FFmpeg 课程已经上线

CSDN学院中的 FFmpeg安卓流媒体播放器开发实战视频课程已经上线课程开发工具:     AndroidStudio3  Android影音(流媒体)播放器开发实战基于NDK、C++和FFmpeg 对学员要求:     本课程是具有很强实战性的应用编程,课程中会从原理讲解到代码实现,但由于项目有一定复杂度,希望学习本课程的同学要掌握c++的基本语法,课程中也用到java的代码但比较少,如果是c...

2018-03-23 08:52:29 1452 3

原创 为什么 qt 成为 c++ 界面编程的第一选择?

为什么qt成为c++界面编程的第一选择一、前言为什么现在QT越来越成为界面编程的第一选择,笔者从事qt界面编程已经有接近8年,在这之前我做C++界面都是基于MFC,也做过5年左右。当时为什么会从MFC转到QT,主要原因是MFC开发界面想做得好看一些十分困难,引用第三方基于MFC的界面库代码也是比较混乱,当时主要看到qt有qss样式设计这个功能,决定试下。当项目移植到到QT后,觉得MFC真的...

2017-11-16 09:21:00 15967 3

原创 FFmpeg3最新的解码接口avcodec_send_packet和avcodec_receive_frame分析

      ffmpeg3版本的解码接口做了不少调整,之前的视频解码接口avcodec_decode_video2和avcodec_decode_audio4音频解码被设置为deprecated,对这两个接口做了合并,使用统一的接口。并且将音视频解码步骤分为了两步,第一步avcodec_send_packet,第二步avcodec_receive_frame,通过接口名字我们就可以知道第一步是...

2017-06-06 10:58:02 15052 10

原创 使用QT5绘制OpenCV3的Mat图像

QT在跨平台编程中应用越来越广泛,C++中用跨平台开发界面(包括嵌入式设备),QT基本成为第一选择,OpenCV从3.0开始已经慢慢抛弃了过去的C接口,统一改为C++接口,存储图像的IplImage也在被Mat替代,本文主要讲如何使用QT绘制Mat。    在QT中用QImage存放图像,QImage有多种使用方法,本文讲解QImage的内存分配和将Mat高效复制到QImage中。

2017-05-11 22:04:07 2183

原创 在C++项目中引入Lua(AlphaGo使用的方案)

最近大火的AlphaGo,其中的deepmind已经开源,可以到github中下载https://github.com/deepmind/lab·,网上还有一个基于Python开源AlphaGo,那个不是google的。通过看deepmind源码,我们可以知AlphaGo使用的是C++和Lua方案。当然语言不是AlphaGo的重点,但还是说明了c++和Lua方案能够完成大型的项目。从2009年

2017-02-09 13:02:48 2383

原创 FFMPEG系列课程-读取视频帧

再来介绍下如何读取视频帧,打开视频参考前面的文章,首先需要创建一个帧的存放对象AVPacket pkt;memset(&pkt, 0, sizeof(AVPacket)); 再通过 int err = av_read_frame(ic, &pkt); 读取帧数据,其中ic是之前打开的视频流句柄。读取视频帧后要注意一点av_read_frame会自动给视频帧分配空间,返回值0表示成功。

2016-12-30 14:02:59 2877

原创 cmake add_library编译链接静态库cmakelists

add_library中的第二个参数 STATIC 表示是静态库,如果不加STATIC的话比如 add_library(xlog xlog.cpp) 就是默认编译动态库,如果要编译静态库再通过cmake的预制变量来控制。本篇文章我们来编写CMakeLists.txt使用cmake的add_library的构建静态库,并使用target_link_libraries链接指定的静态库。静态库就编译完成,下面引入静态库,添加测试的程序test_xlog.cpp并且再次编辑CMakeLists.txt。

2022-09-04 12:29:29 3240 1

原创 cmake和makefile区别和cmake指定编译器(cmake -G)

其实很多公司和项目就是直接使用make的,但make代码规则严格,语法过于复杂,在做跨平台和跨编译器时的管理更加复杂,移植到不同环境的成本过大。首先cmake是项目构建生成工具,cmake的代码可以与平台系统和编译器无关。makefile 可以理解为是make工具使用的代码,make读取makefile中的配置信息来实现编译、链接和部署。工具” 只是使用这些工具其实就能够编译出所有的目标,但由于命令过于复杂,编译的流程不好控制。也就是说cmake是用来生成makefile和其他项目生成工具配置的。

2022-09-03 13:06:33 14548 2

原创 FFmpeg 4.3 源码在windows上的编译

FFmpeg开发环境准备学习目标 学会配置vs2019+msys2 编译环境 学会编译x264、x265、fdk-aac、sdl、ffmpeg4.3编译目的: 获取pdb文件,调试能进入ffmpeg源码菜单运行vs2019编译控制台使用cl编译源码msys2 安装修改msys2_shell.cmd 支持外部环境变量修改 msys2_shell.cmd 去掉 rem set MSYS2_PATH_TYPE=inherit中的rem 表示...

2021-01-03 21:35:27 934 1

原创 TIOBE11月份编程语言排行榜:C非常接近Java,分析下中美的就业情况

我们先看看他们官方对数据的解读本月TIOBE指数前20位出现了一些有趣的变动。首先,C语言现在非常接近Java。差异只有0.2%。也许C会在年底前再次成为第一。看到谁排在前十也很令人兴奋。这种情况几乎每个月都在变化。两个月前是SQL,上个月是Objective-C,但是这个月Swift接管了。与排名第11位的Ruby的差距几乎为0.4%,这可能意味着至少在未来几个月里,Swift仍将保持前10...

2019-11-06 11:48:27 734

原创 windows编程 进程的创建销毁和分析

Windows程序设计:进程进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动,在Windows编程环境下,主要由两大元素组成:• 一个是操作系统用来管理进程的内核对象。操作系统使用内核对象来存放关于进程的核心信息。• 另一个是地址空间,在地址空间囊括了所有可执行模块和动态链接库的代码和数据。动态内存分配的空间也在其中,典型代表是线程堆栈和堆内存分配。1进程与线程进...

2018-11-27 13:35:20 2863

原创 python3 整数类型PyLongObject 和PyObject源码分析

python3 整数类型PyLongObject 和PyObject源码分析一 测试环境介绍和准备测试环境:操作系统:windows10Python版本:3.7.0 下载地址VS版本:vs2015社区版(免费) 下载地址win10SDK(安装vs2015是可以选择,如果没有安装则需要独立安装)http://ffmpeg.club/python二 如何查看源码1 ...

2018-11-20 14:59:50 874

原创 桌面程序设计已经过时了,还有没有必要学习MFC?

“现在已经是人工智能、大数据的时代,云+端才是王道,桌面程序设计已经过时了,还有没有必要学习MFC?”这是许多困扰刚刚入行朋友的问题,不可否认,由于python、Java等开发语言和环境的流行,Visual C++的应用范围也相应缩小。“有人说现在c++越来越接近边缘性语言?c++程序员以后的发展方向在那里,我学习MFC会不会被淘汰?”的确C++作为普及性应用程序设计语言的地位已经不再...

2018-11-09 13:29:42 4113

原创 Python & C/C++联合编程实战-夏曹俊-专题视频课程

一 环境准备 和Python语法快速入门二 Python CTypes访问C/C++动态链接库三 Python源码跨平台的编译四 Python的C/C++扩展库_模块、函数、类扩展五 Python的多线程GIL及在web中调用ffmpeg扩展示例六 Python虚拟机定制-使用c++调用python七 基于python_qt_ffmpeg的视频播放项目示例...

2018-10-08 15:53:27 1678

原创 C语言核心编程-夏曹俊-专题视频课程

C语言并不是一个高级语言,它实际上属于高级语言与低级语言之间的中间语言,它直接与内存打交道,丰富的数据类型、运算符,但是C语言绝非是一门简单的语言,相反掌握好C语言需要花相当大的精力。本课程从案例出发,结合工程实践场景,针对性的展示了使用C语言进行系统级开发的经验与工程技巧,展示了printf、malloc等C语言核心库函数的实现原理,并在Win32平台上实现了CRT(C语言运行时)的仿真原型。...

2018-09-11 09:15:34 1392

原创 数据结构实战完全手册-夏曹俊-专题视频课程

数据结构是程序设计的必修知识,它是程序设计的基本功,并且在企业面试、日常工作、研究生入学考试中都占有重要的地位。不同于其他课程,本课程从单链表出发,手把手的全代码实现了栈与队列,树、图(包括数组和链表的两种形式),并对这些经典结构的应用也做了代码级的实现,覆盖了经典数据结构的全部内容...

2018-09-07 08:59:24 1305

原创 C++模板技术与STL实战开发-夏曹俊-专题视频课程

泛型编程(Generic Programming)是一种全新的程序设计思想,它和STL是现代C++的精髓。可以说,不会STL很难称得上掌握了现代C++编程。STL是一个高效的C++程序库,它被容纳于C++标准程序库(C++ Standard Library)中,该库包含了诸多在计算机科学领域里所常用的基本数据结构和基本算法。为广大C++程序员们提供了一个可扩展的应用框架,高度体现了软件的可复用性。...

2018-06-13 09:32:24 759

原创 C++ 设计模式原理与实战大全-架构师需备课程-夏曹俊-专题视频课程

C++属于难学易用的工程开发语言,C++繁复的语法往往使得开发人员过于强调细节而缺乏软件体系结构的大局观。特别需要指出的是,缺乏面向对象的软件设计能力是制约从业人员从开发者向设计者转变的重要因素。设计模式是来源于工业实践的重要开发经验,它实际上是面向对象的数据结构,掌握设计模式是掌握面向对象设计的根本要求。...

2018-06-13 09:30:22 1236

原创 C++实战之 windows MFC 工程应用开发与框架原理完全剖析-夏曹俊-专题视频课程

本课程是Windows程序设计系列课程三部曲之二:Windows MFC框架原理与工程应用开发。本课程重点讲解在windows平台开发使用MFC框架进行应用程序开发的核心手段....

2018-06-01 15:55:50 1008 1

原创 Windows程序设计应用开发-夏曹俊-专题视频课程

养具备Win32 API SDK级别对Windows平台程序编码能力,可以参与Windows应用工程类别的GUI程序开发,对算法策略有容错性表现;提升的、软件设计经验,初步具备面向对象软件设计思想,能针对性的应用事件驱动编程开发应用程序。丁宋涛老师是南京大学博士,微软中国认证讲师,任江苏微软技术中心、美国大学理事会计算机学科教师,捷帝科技有限公司联合创始人,拥有15年以上程序开发经验。...

2018-03-16 15:41:08 798

原创 基于NDK、C++、FFmpeg的android视频播放器开发实战-夏曹俊-专题视频课程

课程包含了对流媒体(拉流)的播放,演示了播放rtmp的香港卫视,支持rtsp摄像头和http网络视频的播放,支持访问本地的视频文件,并精确显示和控制播放进度:1讲解如何编译Android平台的ffmpeg库,使其支持neon技术和硬解码,并测试性能2使用opengles的NDK shader高效播放yuv视频,不耗费cpu性能更优(GPU)3代码支持硬解码(省电不耗cpu)和多线程解码...

2018-03-13 17:54:21 1654

原创 C++QT5跨平台界面编程原理和实战大全-夏曹俊-专题视频课程

课程讲解基于QT5.9 SDK,包含QT界面编程的核心内容,并提供全部源码,课程讲解方式是接口讲解、分析、演示示例,课程讲解QTCreator在不同平台的配置方法,linux,windows,mac,课程演示主要以vs2015+QT5.9为主,开始会讲解QTCreator配置。课程源码基于c++ 11以上版本,建议至少安装vs2013以上。课程后会做一个图像编辑器的示例。...

2017-11-07 08:40:24 2871 1

原创 ffmpeg3.3新版本AVStream的封装流参数由codec替换codecpar(解码)

ffmpeg新版本中(封装流)AVStream的codec参数要被codecpar参数所替代,这样替代我们要注意什么,为什么要替代,我们先来看下ffmpeg的代码。代码分析和新参数优势typedef struct AVStream {#if FF_API_LAVF_AVCTX/*** @deprecated use the codecpar struct ins

2017-08-24 10:19:52 7279

原创 C++编程音视频库ffmpeg的pts时间换算方法

ffmpeg中的pts,dts,duration时间记录都是基于timebase换算,我们主要分析下pts的时间怎么换算,其它的是一样的换算。ffmpeg的时间换算对许多新接触同学算是一个大坑,很多刚接触ffmpeg的同学都不容易搞清楚它的时间计算方法。我们先看下ffmpeg时间是怎么算的:一帧图像(音频)的时间戳(时间戳一般以第一帧为0开始)= pts * (AVRational.num

2017-08-23 16:23:05 4819

原创 C++编程FFMpeg实时美颜直播推流实战-基于ffmpeg,qt5,opencv视频课程-夏曹俊-专题视频课程...

C++编程FFMpeg实时美颜直播推流实战视频培训教程,本课程基于ffmpeg,qt5,opencv进行实战教学。基于c++编程,掌握录制视频(rtsp和系统相机)录制音频(qt)开发方法,掌握音视频各类参数含义,掌握音视频编码(h264+acc),磨皮美颜(opencv),音视频封装(flv),基于rtmp协议推流。多线程处理技术。掌握nginx-rtmp和crtmpserver的直播服务器...

2017-08-22 12:42:19 2728 1

原创 C++编程使用QT5 SDK录制屏幕并显示

在项目中,我们有要录制屏幕的需求,录制屏幕有多种方法,可以基于windows api的BitBlt 、ffmpeg的AVDevice、directx 和QT,本文讲解基于QT5的抓屏。QT相对于其他几种抓屏方式优势是跨平台做的比较好,接口简单,劣势相对于directx抓屏消耗大一些,但directx只能是windows。经过测试directx抓屏速度最快,其他接口速度基本一致。在我的电脑上qt 1080P屏幕抓屏消耗60~80毫秒,720p消耗30~50,也就是说如果抓屏1080我一秒最多录制10帧。这个

2017-07-27 10:48:21 4105 4

原创 FFmpeg音视频编码实战屏幕录像机视频课程-基于QT5和FFMpegSDK-夏曹俊-专题视频课程...

本课程讲解的是基于流行的直播技术 FFMpeg3.3音视频处理框架,和应用广的c++跨平台的QT5库(主要用作界面)。开发的一个完整的屏幕录像机项目,包含桌面录制(基于 QT(跨平台),directx(高效)),话筒录制,音视频h264编码,MP4封装。QT圆角边框界面。开发工具基于vs2015,但同样适用于vs更高版本。...

2017-07-18 08:40:37 994

原创 TIOBE2017年6月编程语言排名 Kotlin进入前50

编程语言Kotlin是热门的新东西。三周前,谷歌的Android团队宣布,Kotlin是除了java和C++的Android第三官方语言。作为Android Studio 3有充分的科特林级支持。非常流行的编程环境开发公司 JetBrains,已经 Kotlin已经由,公司称其非常流行的编程环境。就像如Scala语言Clojure和Groovy,Kotlin编译为Java虚拟机代码,从而与java

2017-06-07 17:23:15 2831 4

ffmpeg4.0.1_windows_vs2015_32位_64库和示例程序

ffmpeg4.0.1_windows_vs2015_32位_64库和示例程序 , 包括ffmpeg4.0.1版本的头文件,库文件,dll文件,和一个显示ffmpeg信息的测试代码

2018-07-16

ffmpeg3.4.1 android SDK (armeabi-v7a) 支持neon 和jni硬解码 (未编译x264)

ffmpeg3.4.1 android SDK (armeabi-v7a) 支持neon 和jni硬解码 (未编译x264)

2018-03-19

ffmpeg3.4.1安卓Android Studio 3 示例

ffmpeg3.4.1安卓(android)下示例 显示ffmpeg版本信息

2018-03-19

ffmpeg_3.3.1_vs2013_32位库文件和示例项目

ffmpeg_3.3.1_vs2013_32位库文件和示例项目

2017-07-18

php和smarty中文chm手册

php和smarty中文chm手册,包含smarty源码

2013-07-10

java反编译工具jdgui

java 反编译工具 jdgui Java反编译工具,实现了eclipse的高亮着色功能,多文件标签浏

2012-02-23

gba模拟器vbagx1.25 s60v3 注册机

gba模拟器vbagx1.25 s60v3 注册机

2010-08-06

gba模拟器vbagx1.25 s60v3

gba模拟器vbagx1.25 s60v3

2010-08-06

空空如也

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

TA关注的人

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