自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(121)
  • 收藏
  • 关注

原创 NVR的处理流程及理解

NVR(Network Video Recorder,网络视频录像机)是一种用于接收、存储和管理来自网络摄像机的视频信号的设备。NVR通常与IP摄像机配合使用,可以远程监控和管理视频流。

2024-08-25 22:13:10 1134

原创 嵌入式音视频码率控制及分享个工作遇到的类似问题

在开始说码率控制之前,我们得知道什么叫码率,什么因素会影响到码率码率,也称为比特率,是指单位时间内传送的比特数,通常用来衡量数据传输的速度。在多媒体领域,码率常用于描述音频、视频文件的压缩程度以及数据传输的质量和速度。高码率意味着更多的数据在单位时间内被传输,这通常会带来更高的音质或画质,但同时也意味着更大的文件大小或更高的带宽需求。比特/秒 (bit/s 或 bps)千比特/秒 (kbit/s 或 kbps, k=1000)兆比特/秒 (Mbps, M=1000000)

2024-08-25 22:12:22 1147

原创 安防领域中为啥很少使用B帧,甚至不使用

视频编码技术是现代通信和媒体系统中不可或缺的一部分,它通过去除视频信号中的冗余信息,实现数据压缩,从而降低存储和传输的成本。视频编码的核心在于利用时间域和空间域的冗余性,通过预测编码、变换编码、熵编码等技术手段,减少视频数据量。其中,帧间预测编码是视频压缩中的关键技术之一,它利用了视频序列中相邻帧之间的相似性,通过预测当前帧的像素值,仅传输预测误差,从而实现高效的数据压缩。我们截取一段IPC的MP4格式的视频,通过ffmpeg获取其中的H265视频裸流。

2024-07-24 10:57:29 1275

原创 深入学习H264和H265

在开始学习H264/H265之前,我们要先了解一些和视频相关的专业名词Level(级别)指定视频编码的最大能力,如最大分辨率、最大帧率等。NAL Unit(网络抽象层单元)视频编码流中的最小可访问单元,用于传输和解码。Slice(片)视频帧的一部分,可以独立解码,用于错误恢复和并行处理。Macroblock(宏块)编码的基本单元,通常为16x16像素的块,用于运动估计和预测。Intra Frame(I帧)不依赖其他帧进行解码的帧,通常用于随机访问点。

2024-07-24 10:55:08 3124

原创 嵌入式——24应届生近几个月的实习经历及感慨

本篇文章为我个人的嵌入式学习及求职入职的经历及感慨,非技术类博客,不涉及具体的技术点的详解,在文章的开始前我简单的介绍下自己,24届应届生,非科班,2024年1月初入职珠海某安防企业,工作主要开发安防后端产品NVR,专业是机电一体化,学校课程主要是和机械和电力相关,和嵌入式的技术点基本没有重叠的地方,那我是如何选择嵌入式,学习嵌入式,入行嵌入式以及嵌入式的薪资水平如何的,下文围绕四部分来写。

2024-05-05 16:51:05 3880 4

原创 P12 音视频复合流——TS流讲解

从本章开始我们将要学习嵌入式音视频的学习了 ,使用的瑞芯微的开发板🎬 个人主页:@ChenPi🐻推荐专栏1: 《C++_@ChenPi的博客-CSDN博客》✨✨✨🔥 推荐专栏2: 《Linux C应用编程(概念类)_@ChenPi的博客-CSDN博客》✨✨✨🛸推荐专栏3:《嵌入式音视频_@ChenPi的博客-CSDN博客🌺本篇简介 :本章讲解音视频中的复合流——ts流复合流是指在一条音视频数据流中同时包含视频ES和音频ES数据。常见的复合流一般为TS流,MP4流,FLV流。

2024-01-06 21:37:35 2295 3

原创 P11 FFmpe时间基和时间戳

从本章开始我们将要学习嵌入式音视频的学习了 ,使用的瑞芯微的开发板🎬 个人主页:@ChenPi🐻推荐专栏1: 《》✨✨✨🔥 推荐专栏2: 《》✨✨✨🛸推荐专栏3:《🌺本篇简介 :本章主要讲解ffmpeg中关于时间的概念,时间基和时间戳,时间转换,时间比较。

2024-01-05 22:00:13 1352 2

原创 P10 RV1126推流项目——ffmpeg输出参数初始化

从本章开始我们将要学习嵌入式音视频的学习了 ,使用的瑞芯微的开发板🎬 个人主页:@ChenPi🐻推荐专栏1: 《》✨✨✨🔥 推荐专栏2: 《》✨✨✨🛸推荐专栏3:《🌺本篇简介 :本章主要讲解ffmpeg模块输出参数的初始化今天讲解的部分就是继上章未讲完的部分继续讲解首先我们看上图红框里面的函数,函数内部就是实现ffmpeg初始化,合成复合流以及推流里面内容比价多,我可能分为三章去分别讲解,今天我们先讲一下ffmpeg的参数初始化。

2024-01-04 22:10:29 2039 9

原创 P9 视频码率及其码率控制方式

从本章开始我们将要学习嵌入式音视频的学习了 ,使用的瑞芯微的开发板🎬 个人主页:@ChenPi🐻推荐专栏1: 《C++_@ChenPi的博客-CSDN博客》✨✨✨🔥 推荐专栏2: 《Linux C应用编程(概念类)_@ChenPi的博客-CSDN博客》✨✨✨🛸推荐专栏3:《嵌入式音视频_@ChenPi的博客-CSDN博客🌺本篇简介 :本章主要讲解VI VENC模块和AI AENC模块的初始化及具体函数详解01 什么是码率?

2024-01-04 14:45:17 1419

原创 P8 RV1126推流 —— 摄像头和咪头模块初始化

从本章开始我们将要学习嵌入式音视频的学习了 ,使用的瑞芯微的开发板🎬 个人主页:@ChenPi🐻推荐专栏1: 《》✨✨✨🔥 推荐专栏2: 《》✨✨✨🛸推荐专栏3:《🌺本篇简介 :本章主要讲解VI VENC模块和AI AENC模块的初始化及具体函数详解。

2024-01-03 22:56:01 1939 5

原创 P7 RV1126推流项目 —— 写代码前的思路草图

本项目是通过 RV1126 采集摄像头、麦克风数据,并通过 H264/H265 视频编码技术和 AAC音频编码技术进行压缩合成复合流,并推送到流媒体服务器上面。

2023-12-26 22:43:16 2317 7

原创 P6 音频格式—— AAC

从本章开始我们将要学习嵌入式音视频的学习了 ,使用的瑞芯微的开发板🎬 个人主页:@ChenPi🐻推荐专栏1: 《C++_@ChenPi的博客-CSDN博客》✨✨✨🔥 推荐专栏2: 《Linux C应用编程(概念类)_@ChenPi的博客-CSDN博客》✨✨✨🛸推荐专栏3:《嵌入式音视频_@ChenPi的博客-CSDN博客🌺本篇简介 :这章记录音频的基础知识学习01 AAC是什么?AAC中文名称是高级音频编码技术,它是基于MPEG-2的一种全新的音频编码技术。

2023-12-24 21:56:17 1221

原创 P5 RV1126编码测试Demo

从本章开始我们将要学习嵌入式音视频的学习了 ,使用的瑞芯微的开发板🎬 个人主页:@ChenPi🐻推荐专栏1: 《》✨✨✨🔥 推荐专栏2: 《》✨✨✨🛸推荐专栏3:《🌺本篇简介 :使用RV1126进行编码测试首先我们使用的硬件为瑞芯微的RV1126kmedia是官方封装一层简易的API,把RGA、MPP、RKNN等等这些接口封装成高级的接口。

2023-12-24 21:30:34 2407 1

原创 P4 音频知识点——PCM音频原始数据

从本章开始我们将要学习嵌入式音视频的学习了 ,使用的瑞芯微的开发板🎬 个人主页:@ChenPi🐻推荐专栏1: 《C++_@ChenPi的博客-CSDN博客》✨✨✨🔥 推荐专栏2: 《Linux C应用编程(概念类)_@ChenPi的博客-CSDN博客》✨✨✨🛸推荐专栏3:《嵌入式音视频_@ChenPi的博客-CSDN博客🌺本篇简介 :这章记录音频的基础知识学习01 PCM音频原始数据音频原始数据PCM,PCM全称是脉冲编码调制数据。

2023-12-23 21:35:08 2752

原创 P2 H264码流结构分析——Annexb与MP4格式的区别 (中)

从本章开始我们将要学习嵌入式音视频的学习了 ,使用的瑞芯微的开发板🎬 个人主页:@ChenPi🐻推荐专栏1: 《C++_@ChenPi的博客-CSDN博客》✨✨✨🔥 推荐专栏2: 《Linux C应用编程(概念类)_@ChenPi的博客-CSDN博客》✨✨✨🛸推荐专栏3:《嵌入式音视频_@ChenPi的博客-CSDN博客🌺本篇简介 :这章记录编解码的基础理论知识——H264的码流结构这章我们以一下这个图来讲解H264的码流结构这个图是我从网上找的我们按照这个层级关系来学。

2023-12-23 08:55:45 1153

原创 P3 H264的码流结构分析——VCL和NAL

从本章开始我们将要学习嵌入式音视频的学习了 ,使用的瑞芯微的开发板🎬 个人主页:@ChenPi🐻推荐专栏1: 《》✨✨✨🔥 推荐专栏2: 《》✨✨✨🛸推荐专栏3:《🌺本篇简介 :这章记录编解码的基础理论知识——H264的码流结构NAL与VCLH264分层能够分成两层,一层是VCL层(视频编码层),另外一层是NAL层(网络提取层)。以下重点讲解的是NALU(Network Abstract Layer Unit)的结构。

2023-12-22 16:39:41 1390

原创 嵌入式开发网络配置——windows连热点,开发板和电脑网线直连

原因:虚拟机Linux移植可执行程序到开发板失败最后发现虚拟机的Linuxping不通开发板下面是我的解决方法。

2023-12-22 13:51:22 2749 1

原创 P1 H264码流结构分析 (上)

所谓的码流结构就是说,视频经过编码之后得到的二进制数据是怎样组织排列的也就是说,编码后的码流,我们该怎样将一帧一帧的编码后的数据分离开来哪一块是数据是一帧图像,哪一块数据是另外一帧图像所以我们才要去学习这个h264的码流结构只要了解清楚了这个,后面就很多事情就好办了。

2023-12-20 20:22:45 1275

原创 Ubuntu中基础命令使用

以下指令测试来自于Ubuntu18.04如果有说的不对的,欢迎指正与补充以下指令为我学习嵌入式开发中使用过最多的指令。

2023-12-19 19:20:32 1678

原创 Ubuntu18.04安装ffmpeg

./x264/lib/pkgconfig的意思就是到当前文件目录的上层目录的x264里找需要的内容。从本章开始我们将要学习嵌入式音视频的学习了 ,使用的瑞芯微的开发板。编译完成后在上层目录下会生成ffmpeg目录,可以看图里面的路径。首先我们拿到ffmpeg的源码包,我们要先将它解压压缩。🌺本篇简介 :这章记录的是ffmpeg的源码安装。这里的环境变量和之前的x264的安装目录有关的。如何要链上x265那就执行下面的指令。我的ffmpeg的版本为4.2.3。解压完我们进入到以解压的目录文件里。

2023-12-17 20:09:59 2098

原创 Ubuntu18.04.6下samba服务的安装及配置

从本章开始我们将要学习嵌入式音视频的学习了 ,使用的瑞芯微的开发板🎬 个人主页:@ChenPi🐻推荐专栏1: 《C++_@ChenPi的博客-CSDN博客》✨✨✨🔥 推荐专栏2: 《Linux C应用编程(概念类)_@ChenPi的博客-CSDN博客》✨✨✨🌺本篇简介 :近几章我们记录的开发环境的搭建本章的主要内容是虚拟机下Ubuntu18.04.6samba服务的安装及配置我安装这个的原因是的,当有大型文件需要从windows传到ubuntu虚拟机中,这样的的共享目录使用起来更方便。

2023-12-17 19:28:45 709

原创 Ubuntu18.04.6下安装opencv库及OpenCV安装libjasper-dev依赖包错误

创建一个名为Opencv的文件夹将源码的压缩包复制到opencv目录下将压缩包解压到opencv文件夹(指定一个文件夹)

2023-12-14 18:00:40 1514

原创 Ubuntu18.04.6下samba服务的安装及配置

虚拟机下Ubuntu18.04.6samba服务的安装及配置。

2023-12-14 15:44:23 805

原创 P1单片机定时器配置及定时器中断——C51(超详细)

晶振(晶体震荡器),又称数字电路的“心脏”,是各种电子产品里面必不可少的频率元器件。数字电路的所有工作都离不开时钟,晶振的好坏、晶振电路设计的好坏,会影响到整个系统的稳定性。时钟周期也称为振荡周期,定义为时钟频率的倒数。时钟周期是计算机中最基本的、最小的时间单位。在一个时钟周期内,CPU仅完成一个最基本的动作。时钟周期是一个时间的量。更小的时钟周期就意味着更高的工作频率机器周期也称为CPU周期。在计算机中,为了便于管理,常把一条指令的执行过程划分为若干个阶。

2023-12-12 22:51:14 2061

原创 P4 Qt基础控件——工具按钮toolButton(上)

🎬 个人主页:@ChenPi🐻推荐专栏1: 《》✨✨✨🔥 推荐专栏2: 《》✨✨✨🌺本篇简介 :这一章我们学一下Qt中经常使用控件——toolButton,这个按钮可以带图标比如pushButton加图片,按钮被图片挡住,按钮就按不了而toolbutton就可以解决这个问题主要用来开发图形用户界面(Graphical User Interface,简 称 GUI)程序Qt 虽然经常被当做一个 GUI 库,用来开发图形界面应用程序,但这并不是 Qt 的全部。

2023-12-12 22:44:03 605

原创 C语言常用字符串

由双引号(Double Quote)引起来的一串字符称为字符串字面值(String Literal),或者简称字符串,例如 “hello world”注意:字符串结束的标志是一个 \0在计算字符串长度的时候\0是结束标志,不算作字符串内容。//整型数组//定义字符串其实和定义整型数组很像,但是要以\0结尾//喜欢用这种和*p="hello world"这种变量。

2023-12-11 18:38:24 1248

原创 P14 Linux进程间通信——消息队列.........

但在一个复杂的应用系统中,通常会使用多个相关的进程来共同完成一项任务,因此要求进程之间必须能够互相通信,从而来共享资源和信息。由于保护的缘故,一个进程不能直接访问另一个进程的资源,也就是说,进程之间互相封闭。🌺本篇简介 : 这一章我们学习Linux进程间通信中的消息队列。所以,一个操作系统内核必须提供进程间的通信机制(IPC)。目前,Linux使用的进程间的通信方式主要有。管道(pipe)和有名管道(FIFO)🛸推荐专栏3: ​​​​​​《🎬 个人主页:@ChenPi。🔥 推荐专栏2: 《

2023-12-11 18:28:53 1046

原创 P13 Linux进程间通信——管道

🎬 个人主页:@ChenPi🐻推荐专栏1: 《》✨✨✨🔥 推荐专栏2: 《》✨✨✨🛸推荐专栏3: ​​​​​​《》 ✨✨✨🌺本篇简介 : 这一章我们学习Linux进程间通信中的管道在 Linux系统中,以进程为单位分配和管理资源。由于保护的缘故,一个进程不能直接访问另一个进程的资源,也就是说,进程之间互相封闭。但在一个复杂的应用系统中,通常会使用多个相关的进程来共同完成一项任务,因此要求进程之间必须能够互相通信,从而来共享资源和信息。

2023-12-10 16:43:50 1054 3

原创 P12 Linux进程编程wait进程挂起

WIFEXITED(status):如果子进程正常终止,则返回 true;WEXITSTATUS(status):返回子进程退出状态,是一个数值,其实就是子进程调用_exit()或 exit()时指定的退出状态;wait()获取得到的 status 参数并不是调用_exit()或 exit()时指定的状态,可通过WEXITSTATUS 宏转换;WIFSIGNALED(status):如果子进程被信号终止,则返回 true;WTERMSIG(status):返回导致子进程终止的信号编号。

2023-12-10 12:48:09 886 2

原创 P11 Linux进程编程exec族函数

l : 使用参数列表p:使用文件名,并从PATH环境进行寻找可执行文件v:应先构造一个指向各参数的指针数组,然后将该数组的地址作为这些函数的参数。e:多了envp[]数组,使用新的环境变量代替调用进程的环境变量。

2023-12-10 12:11:22 1081

原创 P10 Linux进程编程 fork创建子进程

🎬 个人主页:@ChenPi🐻推荐专栏1: 《》✨✨✨🔥 推荐专栏2: 《》✨✨✨🛸推荐专栏3: ​​​​​​《》 ✨✨✨🌺本篇简介 : 上一章我们讲了Linux进程的概念以及获取进程ID号和获取父进程的ID这一章我们引进新的概念,父子进程Linux 是一个多用户多任务的操作系统,每个用户可以同时运行多个程序进程是程序运行的主体,包括进程的创建,调度和消亡的整个过程当用户执行一个指令或者启动一个程序时,就创建了一个进程一个运行的程序也可能有多个进程。每个进程将被分配各种资源。

2023-12-09 21:02:40 1136

原创 P9 LinuxC 进程概述 终端启动的程序父进程是终端

前言🎬 个人主页:@ChenPi🐻推荐专栏1: 《》✨✨✨🔥 推荐专栏2: 《》✨✨✨🛸推荐专栏3: ​​​​​​《》 ✨✨✨🌺本篇简介 : 这一章我们学习一下Linux中非常重要的一部分——进程Linux 是一个多用户多任务的操作系统,每个用户可以同时运行多个程序进程是程序运行的主体,包括进程的创建,调度和消亡的整个过程当用户执行一个指令或者启动一个程序时,就创建了一个进程一个运行的程序也可能有多个进程。每个进程将被分配各种资源。

2023-12-09 20:15:32 1238

原创 P4 Qt如何添加qss样式表文件和添加图片资源

🎬 个人主页:@ChenPi🐻推荐专栏1: 《》✨✨✨🔥 推荐专栏2: 《》✨✨✨🌺本篇简介 :这一章我们学一下Qt如果添加图片资源文件和qss文件Qt 是一个跨平台的 C++开发库主要用来开发图形用户界面(Graphical User Interface,简 称 GUI)程序Qt 虽然经常被当做一个 GUI 库,用来开发图形界面应用程序,但这并不是 Qt 的全部Qt 除了可以绘制漂亮的界面(包括控件、布局、交互),还包含很多其它功能。

2023-12-08 21:25:18 1384 1

原创 P3 Qt 控件 —— pushButton

pushButton就是一个正常的按钮,我们点击,松开,悬停这些Qt都有对应的信号可以触发,我们只要把信号和槽连接起来就可以使用了pushButton按钮控制窗口换肤,通过单击不同的按钮,改变窗口的颜色。就像这样三个按钮,控制窗口背景颜色我们先新建一个Qt的项目,如果还不会的话可以看上一章P2 Qt Creator创建第一个Qt程序-CSDN博客我们来看下代码如何实现我们先看下头文件还有个箭头忘记标的slots就是槽函数的意思了定义了三个槽函数。

2023-12-08 19:31:24 1454

原创 P2 Qt Creator创建第一个Qt程序

Qt Creator 和其他 IDE 开发软件一样。都是分组管理项目内的各种源文件,下面是项目内 的文件简介。01_hello_world.pro 是项目管理文件,这个项目管理文件十分重要,当您加入了文件或者删 除了文件,Qt Creator 会自动修改这个*.pro 文件。有时候需要打开这个*.pro 文件添加我们 的设置项。Header 分组,这个节点下存放的是项目内所有的头文件*.h。Source 分组,这个节点下存放的是项目内的所有 C++源码文件*.cpp。

2023-12-08 14:24:51 1450

原创 P1 Qt的认识及环境配置

🎬 个人主页:@ChenPi🐻推荐专栏1: 《》✨✨✨🔥 推荐专栏2: 《》✨✨✨🌺本篇简介 : Qt的介绍及Linux操作系统下安装Qt环境,Linux版本为18.04Qt版本为Qt5.12.9Qt 是一个跨平台的 C++开发库主要用来开发图形用户界面(Graphical User Interface,简 称 GUI)程序Qt 虽然经常被当做一个 GUI 库,用来开发图形界面应用程序,但这并不是 Qt 的全部Qt 除了可以绘制漂亮的界面(包括控件、布局、交互),还包含很多其它功能。

2023-12-08 12:18:10 1152

原创 P8 Linux 目录操作

🎬 个人主页:@ChenPi🐻推荐专栏1: 《C++_@ChenPi的博客-CSDN博客》✨✨✨🔥 推荐专栏2: 《Linux C应用编程(概念类)_@ChenPi的博客-CSDN博客》✨✨✨🛸推荐专栏3: ​​​​​​《 链表_@ChenPi的博客-CSDN博客 》 ✨✨✨🌺本篇简介 : 在上两章中我们Linux的文件系统底下的目录结构这一章我们学习目录文件目录块当中有多个目录项(或叫目录条目)每一个目录项(或目录条目)都会对应到该目录下的某一 个文件。

2023-12-07 22:26:23 1053

原创 P30 C++智能指针

🎬 个人主页:@ChenPi🐻推荐专栏1: 《》✨✨✨🔥 推荐专栏2: 《》✨✨✨🛸推荐专栏3: ​​​​​​《》 ✨✨✨🌺本篇简介 : 这章我们将学习一下C++的智能指针仔细算了一下,好像也好多天没有更新C++系列了,因为最近在嵌入式的项目,然后老出Bug,就很烦,就来学点C++来散下心大概就是操作界面加摄像头做识别,加网络控制,还有温湿度曲线图,这是还没搞好,搞好了在考虑做个专栏了我们回归主题,这章我们学C++的智能指针,学习智能指针之前,我们先要了解一下什么是指针。

2023-12-07 21:43:48 1165

原创 P7 Linux C三种终止进程的方法

🎬 个人主页:@ChenPi🐻推荐专栏1: 《C++_@ChenPi的博客-CSDN博客》✨✨✨🔥 推荐专栏2: 《Linux C应用编程(概念类)_@ChenPi的博客-CSDN博客》✨✨✨🛸推荐专栏3: ​​​​​​《 链表_@ChenPi的博客-CSDN博客 》 ✨✨✨🌺本篇简介 : 这章我们将Linux环境下终止进程的三种方法。

2023-12-06 21:11:29 728 1

原创 P6 Linux 系统中的文件类型

普通文件是最常见的文件类型;目录也是一种文件类型;设备文件对应于硬件设备;符号链接文件类似于 Windows 的快捷方式;管道文件用于进程间通信;套接字文件用于网络通信。

2023-12-06 20:49:52 1178

windows-mainPro.c

Linux香橙派 智能家居主函数

2023-11-23

空空如也

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

TA关注的人

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