自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(59)
  • 资源 (2)
  • 收藏
  • 关注

原创 QT之布局

文章目录QT主要布局类型QT主要布局类型QT中主要提供了QLayout类及其子类作为布局管理器,如下图所示主要的布局类及其继承关系所有的QWidget类的子类的实例(对象)都可以使用布局管理器来管理位于它们之中的子部件,QWidget::setLayout()函数可以在一个部件上应用布局管理器。...

2020-01-30 17:27:51 892

原创 QT之QTableWidget使用

文章目录最近QT用了一下QTableWidget,有必要记录一下,方便以后查阅

2020-01-01 22:54:19 770 2

原创 FFmpeg命令创建规则与解析

文章目录看了那么多别人写的FFmpeg命令操作,能完成各种各样的编码、解码、录屏、推流、分流、合流等操作,就是一直看别人写,然而当要亲自写一个操作命令的时候,却无法下手,因此还是必须对FFmpeg的命令有一个更清晰的了解,了解如何创建、需要哪些构成、创建规则、一些常用选项等等,总之要熟悉到可以很容易的创建自己需要的命令。...

2019-07-14 23:22:44 2117

原创 Gstreamer USB摄像头音视频AVI文件合成与rtmp推流

文章目录gstreamer音视频同步问题之前关于Gstreamer的文章要么只操作音频,要么只操作视频,现在需要同时操作音视频,分别完成音视频文件合成与推流。gstreamer音视频同步问题读取USB摄像头的音频数据文章中使用Gstreamer命令行工具,合成的AVI音视频文件在播放时音视频不同的问题现已查明。gst-launch-1.0 -e avimux name=mux1 ! fil...

2019-06-22 14:47:49 4332 2

原创 读取USB摄像头的音频数据

文章目录命令操作USB音频设备文件wav文件格式解析RIFF区fromat区data区gstreamer 合成音频为MP3文件用代码读取USB音频文件之前的一直在操作USB摄像头的视频数据,如今需要读取USB摄像头的音频数据,进行音视频的合成。读取音频数据需要Linux层的ALSA驱动支持,应用层可以采用alsa-lib库,也可以采用tinyalsa库。我这里用的摄像头是罗技C920。命令操作...

2019-06-20 11:19:39 3873

原创 QT工程的pro文件详解

文章目录QT工程的pro文件解析添加配置选项pro文件引入FFmpeg第三方库为了在QT工程中添加第三方库的使用,因此必须要在pro文件中进行添加,增加库文件的声明,包含路径、编译选项等,那么就需要对pro文件有一个详细的了解,并知道如何修改与添加。本文是为了在QT中使用FFmpeg库,作为铺垫,先行了解如何在QT中引入第三方库。QT工程的pro文件解析添加配置选项pro文件引入FFmpe...

2019-05-29 10:44:38 8411 1

原创 QT学习之QMediaPlayer

文章目录QMediaPlayerQMediaPlaylistQVideoWidget在用FFmpeg与QT实现播放器之前,先看看QT自带的播放器示例,研究下,是怎么实现的。必然又需要看看需要使用哪些QT类来完成这个任务。QMediaPlayerQMediaPlayer类的定义这里就不贴出来了,主要记录一下关于类如何使用的关键信息QMediaPlayer类的player播放状态:State...

2019-05-20 19:02:56 21696 7

原创 QT学习QCommandLineParser与QCommandLineOption

文章目录QCommandLineParser类QCommandLineOption类本来想用FFmpeg与QT实现一个简易的播放器,大约看了十几天的QT,发现QT的东西也不少,一时半会还写不出来,只好慢慢来了,一步一步的记录学习过程,直到把这个播放器写出为止。为了写出播放器,首先就看了QT提供的播放器示例,废话不多说,那就开始记录吧,不然肯定要忘记。QCommandLineParser类Q...

2019-05-16 18:15:23 8210

原创 Gstreamer基础之Gobject

文章目录Gobject简介GStreamer是依附于GLib 2.0对象模型的,采用了信号与对象属性的机制,所有的GStreamer对象都采用GObject继承的方法进行扩展,是所有GStreamer对象的基类,因此有必要学习一下Gobject是怎么回事。Gobject简介...

2019-05-13 19:43:16 893

原创 FFmpeg音视频播放器系列(第三篇:seek实现播放进度控制)

文章目录如何实现播放进度控制按视频时间戳控制按音频时间戳控制上一篇基本实现了音视频的播放同步,简单的按键控制暂停、恢复、退出操作,这一篇就打算实现播放的进度控制主要是实现快进、快退、重新播放等,但是不打算用SDL来实现GUI操作,主要是用按键操作实现、GUI的部分还是放到用QT实现吧,毕竟不是主要研究SDL的GUI的。如何实现播放进度控制按视频时间戳控制按音频时间戳控制...

2019-04-24 18:13:13 9108 3

原创 FFmpeg音视频播放器系列(第二篇:音视频播放同步)

文章目录在上一篇中,基本实现了音视频的播放,但是音频与视频的播放完全不同步,就是一个简单的延时,不忍直视!为了写好这一篇音视频播放同步,我将从源头分析,然后一步步想办法如何实现同步。...

2019-04-13 13:50:19 9185 2

原创 FFmpeg音视频播放器系列(开篇)

文章目录简介FFMPEG+SDL的视频播放器关键函数与结构体用法说明简介学习FFmpeg已经有一段时间了,都是断断续续、零零散散的,没有系统的总结过,为了保证学习效果,决定自己写一个音视频播放器,借着这个项目对FFmpeg进行系统的学习与总结,争取对FFmpeg达到熟练应用的程度。FFmpeg音视频播放器系列,本着循序渐进的过程,先从最简单的开始,逐步深入到使用QT写出一个带有GUI界面的应...

2019-04-04 21:32:53 9970 2

原创 Linux多路USB摄像头直播画面位置固定

在一些视频直播画面中需要将USB摄像头的通道与视频画面的关系固定下来,什么意思呢?假如一个页面需要播放3路视频,分别对应3个USB摄像头,要将USB的通道序号与播放画面的3路视频一一对应,且每次播放时USB通道序号与画面对应关系保持不变。怎么做呢?下面记录一下我的做法。产生问题的原因在嵌入式设备中使用多路USB摄像头时,在/dev目录中会产生/dev/video0、/dev/video1等等类...

2019-03-25 19:58:17 2584

原创 树与二叉树的学习总结

文章目录一般树二叉树一般二叉树满二叉树完全二叉树二叉排序树二叉树的遍历红黑树B树B+树经过Python的学习,顺便系统的学习了与树相关的数据结构与算法,因此就记录一下吧,留待以后回忆参考。一般树二叉树一般二叉树满二叉树完全二叉树二叉排序树二叉树的遍历红黑树B树B+树...

2019-03-15 20:10:34 8266 2

原创 python进阶—OpenCV之图像特征检测与描述

这是官方教程的第四篇,继续学习opencv。

2019-03-12 14:03:31 1231 1

原创 Python学习——排序算法实现

文章目录:时间复杂度、空间复杂度、二分查找、冒泡排序、选择排序、插入排序、快速排序、计数排序一直以来,我只是在大学学过C语言的数据结构中关于冒泡排序的算法,到现在这么多年也没有学习过其它算法,现在借着学习python的机会研究一下其它几种排序算法。听说现在面试的时候冒泡排序算法是最基本的。想想也是,几年前我面试的时候还当场写过C语言的冒泡排序,可惜当时只会这一种,现在总不能过了几年还是只会一种吧,说来惭愧。下面就好好写写这几种排序算法。

2019-03-10 00:00:12 371

原创 嵌入式基础面经

文章目录memmove 和 memcpy的区别又到面试季了,很多小伙伴们准备跃跃欲试,那么我们准备好了吗?下面将总结一些面试题,巩固一下基础。memmove 和 memcpy的区别他们的作用是一样的,区别是,当内存发生局部重叠的时候,memmove保证拷贝的结果是正确的,memcpy不保证拷贝的结果的正确。void *memcpy(void *dest, const void *src,...

2019-03-07 20:15:10 1738

原创 FFmpeg读取视频文件rtmp推流

前一阵,研究了怎么用ffmpeg读取USB摄像头进行rtmp推流,这次也把读取视频文件推流的示例也搬上来。当然了本篇肯定也参考了雷神的博客,再次致敬!本篇比读取USB摄像头的H264帧要简单,而且视频文件中含有音频,推流的视频播放是含有声音的,因此,下一篇就是研究怎么读取USB摄像头的音频与视频,合成为视频文件并推流。#ifdef __cplusplusextern "C"{#endif...

2019-02-28 20:24:31 5050 2

原创 H264帧格式解析

文章目录进入音视频领域也快一年了,空闲时间思考一下,觉得有必要把一些关于H264与流媒体的知识总结一下,对自己在音视频领域内的知识进行梳理,不至于随着时间的流逝而遗忘。...

2019-02-19 19:28:49 24130 4

原创 Linux链表操作

文章目录链表指针结构体链表的插入链表的删除链表的替换链表的移动链表的遍历新年开工第一篇,有点空闲翻博客,发现写过关于container_of宏定义的博客之后,怎么能不写链表操作呢,岂不是断篇了?那就把链表操作的笔记呀搬上来吧。自从学C语言时接触到链表后,直到再学Linux以前,一直以为链表就那样操作了,在结构体中定义指向结构体的指针,可以实现单向链表、双向链表、循环链表等,自从看到Linux的...

2019-02-13 20:39:19 1577

原创 python进阶—OpenCV之视频分析

文章目录MeanshiftCamshift光流Optical Flow稀疏光流Lucas-Kanade Optical Flow稠密光流Dense Optical Flow本篇开始学习视频分析,视频分析主要是在视频中对目标进行跟踪,上来就是Meanshift and Camshift算法。MeanshiftMeanshift算法简单介绍:任意选定的初始迭代点,画一个半径记为H的蓝色圆,将其内...

2019-02-01 22:07:19 3908 1

原创 论嵌入式单片机软件架构

经过几天的回忆与思考,分析了我的成长路径,选择一些我自认为是成长关键点的位置,总结一个关键字,一步一步来讨论关于嵌入式单片机软件的架构。我先把总结出的关键字写出来吧:**流水式、中断前后台、任务式、状态机、分层式,操作系统多任务**;这些就是我总结出的关键字,写这篇博客我决定不参照其他博客,只把我心中所想以及以前的代码示例或者记录翻出来,再加修改,然后呈现出来,供大家品鉴。

2019-01-23 22:56:49 8681 14

原创 FFmpeg读取USB摄像头H264帧rtmp推流

文章目录代码makefile经过这几天的验证,终于走通了FFmpeg读取USB摄像头H264帧,然后用rtmp推流。使用的版本是4.0.2FFmpeg的源码在ubuntu16.04上的编译就不说了,这个网上的文章很多,这里我要说的是,好像FFmpeg对v4l2的封装,不能从摄像头多种输出格式数据中,选择V4L2_PIX_FMT_H264这种格式的数据输出,只能是默认的输出,这点还有研究明白。...

2019-01-18 20:12:11 13032 3

原创 gstreamer读取USB摄像头H264帧并用rtmp推流

文章目录gstreamer命令行实现rtmp推流gstreamer代码实现rtmp推流因为要在嵌入式端使用rtmp推流,目前我知道的有三种办法,ffmpeg、gstreamer、librtmp,每一种都需要移植到嵌入式平台,还是从我最熟悉的gstreamer开始验证吧。现在我的嵌入式平台gstreamer库没有rtmp元件,因此只能先在Ubuntu16.04系统的PC上测试,然后再移植带有rt...

2019-01-15 17:56:51 18203 37

原创 ARM Linux IO模拟红外串口驱动实现

当我们用的ARM芯片串口数量不足时,有时需要使用IO口来模拟实现红外串口的发送与接收,关于串口的时序以及工作特点,这篇文章不做介绍,本篇文章主要描述如何实现IO口模拟实现串口功能。硬件平台:ATMEL SAM9G25kernel版本:Linux2.6.39...

2019-01-12 13:52:25 2622

原创 python进阶—OpenCV之图像处理(三)

文章目录图像模板匹配(Template Matching)霍夫直线检测(Hough Line Transform)霍夫圆检测(Hough Circle Transform)分水岭算法的图像分割(Image Segmentation with Watershed Algorithm)基于GrabCut算法的交互式前景提取(Interactive Foreground Extraction using...

2019-01-11 19:42:40 2284

原创 Linux 宏定义container_of详解

再写Linux驱动的过程中经常是一个结构体套一层结构体,而在某些函数中传入的参数是子结构体指针,但是我们又需要获取的其外层结构体的数据,Linux为我们提供了container_of宏定义来为我们解决这个问题。container_of宏定义就是用来通过内层结构体的指针获取外层结构体指针,宏定义很巧妙,我等凡人想不出来。下面就详细分析其实现原理吧。container_of宏定义需要用到offse...

2019-01-07 15:05:22 1607 1

原创 Linux ARM 中断向量重定位分析

谨以此篇作为2019年的开篇,开启新的征程。虽然文章的内容写于3年之前,但是既然开始了博客之路,就把之前写的一些笔记陆续搬到博客上,也不枉费了昨日的辛苦。作为Linux的开篇,延续我一贯的风格,从启动以及中断向量开始。此篇文章的内容是以Linux版本是2.6.39,硬件平台是ATMEL9G25。大神路过,看一眼,请指正其中错误之处。好了,开始正题。在arch/arm/kernel/entry...

2019-01-01 22:11:12 1845

原创 python进阶—OpenCV之图像处理(二)

图像形态变换图像的腐蚀图像的膨胀图像的开操作图像的闭操作图像的顶帽操作图像的黑帽操作图像的梯度(Image Gradients)Sobel and Scharr (索贝尔)算子Laplacian (拉普拉斯)算子canny边缘检测图像金字塔(Image Pyramids)图像轮廓外形(Contours in opencv)图像直方图(Histograms in OpenC...

2018-12-30 13:48:32 2084

原创 python进阶—OpenCV之图像处理(一)

图像处理分为两部分记录,本篇主要记录图像的色彩空间、几何处理、图像的二值化、图像的模糊操作

2018-12-26 13:37:29 2396

原创 IMX6Q u-boot启动流程分析

文章目录u-boot第一阶段中断向量reset复位向量代码uboot第二阶段代码与中断向量重定位代码重定位过程board_init_r函数启动Linux内核u-boot第三篇,该介绍uboot在imx6q芯片上的启动流程了;网上介绍uboot启动流程的文章很多,因此我这里只记录代码的执行流程,不详细分析代码的细节。u-boot第一阶段中断向量中断向量在arch/arm/lib/vector...

2018-12-25 15:14:28 3064

原创 python进阶—OpenCV之常用图像操作函数说明

经过近一个月的学习,发现对图像的一些基本操作函数还是理解的不够透彻,因此觉得把一些常用的图像操作函数拿出来加深理解并记录下很有必要,方便以后查询。...

2018-12-17 23:45:30 1738

原创 IMX6Q的uboot.imx文件解析

文章目录uboot.imx与uboot.bin的关系uboot.imx文件解析IMX6 ROM BOOT 流程中IVT、Boot data、DCD等相关数据操作uboot.imx文件生成猜想经过几天的研究,彻底弄清楚了IMX6的ROM BOOT 流程,以及如何启动uboot;2016-03 版本的uboot源码编译后生成的uboot.bin与uboot.imx是什么关系,怎么生成uboot.im...

2018-12-13 16:47:54 8455 2

原创 imx6q 平台2016版 u-boot链接脚本详解

酝酿许久,关于uboot终于开篇;因为最近一直在使用imx6q平台进行Linux应用开发,但是我对imx6q的外围不是很熟悉,而且系统也不是我从头搭建的,总感觉心里没底,这样做事不是我的风格;所以有点空闲之后,决定把imx6平台的uboot、Linux整体再捋一遍,这样我睡觉都踏实一点;同时把之前的uboot、Linux学习应用笔记也搬到博客上来,巩固自己所学知识,好让自己快点将嵌入式Linux的...

2018-12-08 18:39:25 934

原创 Python进阶——OpenCV之Core Operations

接上一篇,接着学习Core Operations

2018-11-30 17:49:18 377

原创 Python+opencv+pyaudio实现带声音屏幕录制

文章目录声音录制视频录制(无声音)录制的音频与视频合成为带声音的视频基于个人的爱好和现实的需求,决定用Python做一个屏幕录制的脚本。因为要看一些加密的视频,每次都要登录,特别麻烦,遂决定用自己写的脚本,将加密视频的播放过程全程录制下来,这样以后看自己的录播就好了。结合近期自己学习的内容,正好用Python来练练手,巩固自己的学习效果。经过多番搜索,决定采用Python+opencv+pya...

2018-11-28 23:05:23 12553 20

原创 gstreamer使用opencv在视频中写入中文

文章目录安装freetype2与中文环境makefile编写CvText.cppCvText.htools.cpptools.h如何在gstreamer中,向视频画面写入中文这几天有研究下,怎么在gstreamer中通过opencv来向视频中写入中文;下面就写一下实现过程吧。原本OpenCV只能向视频画面中写入英文字符,本文结合第三方工具freetype2安装freetype2与中文环境s...

2018-11-17 11:54:00 2416 6

原创 gstreamer将H264码流转为avi视频文件示例

是时候记录怎么使用gstreamer库将h264码流转为avi、mp4、flv等视频文件了。什么也不说,直接上代码,然后详细说明一下。#define __USE_GNU#include <sched.h>#include <gst/gst.h>#include <gst/app/gstappsrc.h>#include <gst/app/gsta

2018-11-14 19:53:56 6646 5

原创 IMX6Q_CPU中断与负荷均衡

最近在做IMX6Q平台的视频应用中,遇到一个关于CPU负荷过高的问题,觉得解决的方法很有意思,必须要记录一下;下面详细描述一下,解决这个问题的过程- 2路USB摄像头视频与音频数据采集、保存与rtmp推流,视频分辨率640*360,- 1路360环视视频合成、数据保存、视频rtmp推流,分辨率1280*720;- 1路经过TX2算法分析识别的视频,通过以太网传输到imx6数据保存与rtmp推流,分辨率1280*720- 其它gps、加速度、CAN等传感器数据采集与推送

2018-11-02 16:56:57 1423 2

原创 Python进阶——OpenCV之GUI

文章目录图像处理(Getting Started with Images)读取图像有感于人工智能发展,现在开始学习Opencv关于计算机视觉的知识,又不想捣鼓C++代码,因此决定用Python来搞,此篇开始按照官网的教程开始学习,记录自己的学习历程,写一点笔记,方便以后查阅。官方的教程:https://opencv-python-tutroals.readthedocs.io/en/lates...

2018-10-19 19:12:10 2643

C语言参数个数可变函数详解

VA函数(variable argument function),参数个数可变函数,又称可变参数函数。C/C++编程中,系统提供给编程人员的va函数很少。*printf()/*scanf()系列函数,用于输入输出时格式化字符串;exec*()系列函数,用于在程序中执行外部文件(main(int argc,char*argv[])算不算呢,与其说main()也是一个可变参数函数,倒不如说它是exec*()经过封装后的具备特殊功能和意义的函数,至少在原理这一级上有很多相似之处)

2018-12-26

空空如也

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

TA关注的人

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