自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 记录-rtsp 链接中账号密码包含有@的导致解析失败

这种情况,需要在DESCRIBE命令中的rtsp地址就要改成rtsp://192.168.31.xxx/Streaming/Channels/101,把账号密码给去掉。(比如rtsp://admin:P@ssw0rd@192.168.31.xxx/Streaming/Channels/101),会导致拉流失败。一、这是因为librtsp中只对一个@做了解析,并没有处理rtsp链接包含有多个@的情况,所以在解析rtsp的代码中需要做多个@处理。1.当rtsp地址中账号密码有'@'字符,但是没有用'?

2025-02-13 17:06:20 244

原创 PAC Machine Edition实践二:触摸屏模块使用仿真功能

艾默生的触摸屏模块是具有仿真功能的,配置如下:

2025-01-16 15:50:49 114

原创 PAC Machine Edition实践一:设置变量被触摸屏或者触摸屏仿真读写

此记录仅适用艾默生 PLC。

2025-01-16 15:46:46 167

原创 BMP图片大小计算

正常计算(128*64)/8 = 1024 字节,实际大小却是1086字节,个人理解是多出来的这些字节用于记录这是bmp图片,属性里的各种属性页,比如属性修改页里的各种参数。每个像素最多可以表示256中颜色(2^8=256),所以只需要长度是8的二级制位表示就可以了,因此每个像素占1字节。每个像素最多可以表示2种颜色,只需要使用长度为1的二进制位来表示,因此每个像素占1个位,也就是1/8字节.每个像素最多可以表示16种颜色(2^4=16),所以只需要长度为4的二进制表示,因此每个像素占1/2字节。

2024-12-30 14:23:18 653

原创 图片转成oled使用的字模数据

以上案例代码主要在OLED_DIsp_Image中,把图片数据填充到OLED_DisplayBuf二维数组中,然后调用 oled_write_datas写入oled显示。我使用0.96寸oled模块,对应着的分辨率是128*64,对应着宽高像素比128*64。五、然后把数据复制到代码里,需要注意分辨率为128*64,表示有128*64个位,那么对应128*8个字节,也就是1024。三、点击设置按钮,设置如下图,然后点击确定按钮。一、点击文件,打开要用的图片,如下图。通过其他分辨率的图片获取图片。

2024-12-29 20:54:16 445

原创 Input子系统驱动---学习记录

本文使用Linux4.9.88内核版本。

2024-12-22 16:16:06 1090

原创 I2O驱动框架分析---学习记录

至此,当你按照本章《应用层如何使用I2O框架-->2.从/dev/iio:deviceX节点》内容去读取连续数据时,整个驱动做的事就是triager与iio_buffer的相结合。

2024-12-15 18:39:50 772

原创 SPI驱动框架与I2C驱动框架的比较

在驱动模型上是一样的,首先在控制器驱动这块用的是platform总线驱动,然后在.probe中创建控制器的结构体,解析出设备节点,实现硬件传输函数,并映射控制器结构体与设备端结构体的关系。spidev.c是在/dev下创建SPI设备的节点,如/dev/spix.x,然后通过open/read/write/ioctl去访问SPI设备。i2c-dev.c则是在/dev下创建出I2C控制器的节点,如/dev/i2cx-x,然后通过open/read/write/ioctl去访问。

2024-12-09 17:32:00 181

原创 I2C驱动模型框架及i2c-dev.c分析---学习记录

个人认为:通过I2C控制器与设备端的分析,可以认为I2C控制器的驱动模型会创建i2c_client,I2C设备的驱动模型通过设备树获取到i2c_client,那么两个模型之间就通过i2c_client建立起纽带。I2C控制器的驱动代码其实厂家都已经实现好了,只要根据实际的硬件接口在设备树中对相应的I2C的节点添加status = "okay"即可。只有少部分的I2C设备端才需要去自己实现驱动或者使用i2c-dev.c去访问。

2024-12-09 15:41:14 818

原创 SPI驱动模型框架及spidev.c分析---学习记录

一般我们使用spi设备驱动是类似文件操作,使用open/read/write/ioctl这些去控制/dev/spix.x,而/dev/spix.x是spi设备驱动实现的。而spi 控制器驱动实现的则是从设备树解析出spi 控制器与设备端的映射关系,并且实现传输接口。

2024-12-07 16:22:47 1191

原创 Linux移植IMX6ULL记录 一:编译源码并支持能顺利进入linux

我用的开发板是100_ask_imx6ull_pro,其自带的linux内核版本linux-4.9.88,然后从linux官网下载过来的linux-4.9.88版本的arch/arm/configs/defconfig和dts设备树文件并没有对imx6ull做适配,即使是用make imx_v6_v7_defconfig,然后make,烧入后的zimage和dtb会导致启动linux一直卡着不动,也没有错误提示。所以果断放弃linux-4.9.88版本。

2024-11-20 14:10:45 774

原创 100ask_imx6ull 适配官网U-boot-2017.03

make,然后烧入uboot之后,就能自动启动linux内核。

2024-11-14 16:14:50 815

原创 Uboot启动过程及代码重定位

代码重定位就是将程序代码从一个地址搬移到另外一个地址。本来程序烧写好之后是在某一个地址开始运行的,经过代码重定位之后,可以在另外一个地址运行。例如:程序烧写在Nor Flash上,本来是在Nor Flash上的0地址开始运行的,通过代码重定位,把数据段或整个程序搬移到SDRAM的0x30000000地址运行。

2024-11-12 17:39:34 513

原创 ROM/RAM与SRAM/SDRAM/DDR 区别

只读存储器(read only memory),存储数据,比如烧入的程序、配置文件等。EMMC、NAND Flash都属于ROM。缺点:CPU不能直接读取。优点:相对于芯片内部较小的内存,ROM的存储量很大,比如EMMC以GB为单位。

2024-11-12 17:33:03 301

原创 Uboot移植

修改如图。

2024-11-09 16:26:06 426

原创 80端口被进程 System & PID=4 IIS导致的解决方法

是因为80端口被IIS占用。

2024-11-07 15:05:32 280

原创 VS2019配置嵌入式linux交叉编译器

一、指定C/C++远程的linux系统上arm-buildroot-linux-gnueabihf-g++所在的路径。我现在手上用到的编译器是arm-buildroot-linux-gnueabihf-g++。二、指定链接器的路径。

2024-11-03 11:59:33 370 1

原创 设置Llinux自带的led功能,在timer模式下设置delay_on后会把delay_off给清0

通过以上流程可以知道,在设置delay_on或者delay_off后,都会调用led_stop_software_blink,然后对delay_on/delay_off置0,这也就是为什么设置delay_on后,delay_off会自动置0.在设置完delay_on之后,发现delay_off自己设置为0了。同理设置delay_off后,delay_on自动设置为0.内核版本4.9.88.

2024-07-10 15:03:31 384 1

原创 mysql 设置登录密码

输入这个命令后,需要输入root的原密码,mysql初始原密码是空,直接按ENTER就行。

2023-06-29 18:10:17 227

原创 Mysql 5.6使用配置文件my.ini来设置长时间连接数据库

对于已经安装了mysql和未安装都是同样的步骤。在C:\Program Files (x86)\MySQL\MySQL Server 5.6下生成一个my.ini文件。然后删除或者修改my-default.ini的名字。

2023-06-29 18:07:28 817

原创 100ask_imx6ull 输出PWM

100ask_imx6ul通过扩展板插槽来验证pwm波

2023-02-15 15:44:33 706

转载 FFmpeg获取DirectShow设备数据(摄像头,录屏)

ffmpeg -f dshow -i video="screen-capture-recorder" -f dshow -i audio="内装麦克风 (Conexant 20672 SmartAudi" -r 5 -vcodec libx264 -preset:v ultrafast -tune:v zerolatency -acodec libmp3lame MyDesktop.mkv。列表显示设备的名称很重要,输入的时候都是使用“-f dshow -i video="{设备名}"”的方式。

2022-10-19 11:21:21 3400 1

原创 ffmpeg通过设置编码器参数改善视频闪动及花屏问题

今天项目遇到一个情况,通过ffmpeg编码后的视频画面比源画面区别很大,编码后的画面看起来就像是星星似的,一闪一闪的,不断地在跳动,仔细看其实还是因为有些地方花屏导致看起来闪动。这种情况一般通过设置编码器里的bit_rate设置数值大些就能改善,注意是一般情况,并不是绝对的。...

2021-12-10 11:52:08 3714

原创 linux从设备树获取节点资源

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结前言这里作为自己学习记录提示:以下是本篇文章正文内容,下面案例可供参考一、platform_get_resource在支持设备树的情况下作用是什么?//这里截取imx6ul.dtsi中的lcd节点lcdif: lcdif@021c8000 { compatible = "fsl,imx6ul-lcd

2021-08-23 16:38:05 1017

原创 如何通过芯片手册寻找操作GPIO

文章目录一、如何通过芯片手册寻找操作GPIO1.GPIO操作的四个步骤,这里以GPIO1为例2.GPIO操作的四个步骤外的额外补充,这里以GPIO1为例一、如何通过芯片手册寻找操作GPIO1.GPIO操作的四个步骤,这里以GPIO1为例第一:设置时钟寄存器,用来对GPIO供电使能(需要注意的是这步大部分都是默认设置好了的,不需要设置,除非在下面4步设置都没有效果情况下考虑这第一步)。第二:使能此GPIO1(意思就是对GPIO用上时钟),也就是需要查看时钟有关的说明,对GPIO1用上时钟,这样GP

2021-03-19 11:50:27 1742

原创 FFMPEG中使用ffplay播放多播/组播地址失败记录

FFMPEG中使用ffplay播放多播地址失败记录最近有个需求,使用ffmpeg接收rtsp链接的多播流,发现在设置了rtsp_transport的传输模式为udp_multicast会卡住(实际内部是进入了不断select的循环当中了),在修改了内部源码增加了多播地址和端口号之后,还是会卡住,这里记录下分析过程,注意,写不一定是对的,记录是方便以后自己记忆。文章目录FFMPEG中使用ffplay播放多播地址失败记录一、RTSP多播流程分析二、调试失败原因记录一、RTSP多播流程分析1.摄像

2021-02-23 11:25:16 645 1

原创 mediasoup-demo在 Windows上的正确编译安装注意事项

前人栽树,后人乘凉,文章参考https://blog.youkuaiyun.com/TsingSee/article/details/108618054,我要感谢此博客主,mediasoup-demo很多文章都是关于在linux系统下的,很多在windows都有问题,而唯独此博客主的文章正确。我学习此博客的文章对比才知道主要问题在于三点:1.node,npm版本最好是要高版本的。2.python版本问题,这个是最关键的,一定不能是python3版本,我这里用的是TSING博客主建议的python-v2.7.17

2020-10-19 15:05:03 1292

原创 使用ffmpeg解码并把解码后的yuv数据传递给media硬编码所用的mfxFrameSurface1结构体

下面的部分代码记录 /* *m_pEncSurfaces = new mfxFrameSurface1[4],4对应着EncodeParams结构体里nAsyncDepth值 *分配好Y,U,V的内存 */ /* *分配编码器需要用到的内存 */ mfxFrameSurface1* m_pEncSurfaces = NULL; m_pEncSurfaces = new mfxFrameSurface1[4]; MSDK_CHECK_POINT

2020-07-06 17:18:15 1032

原创 什么叫网络抖动

本文为方便以后自己记忆记录,如有问题,请指正。网络抖动:网上说法是指网络中的延迟是指信息从发送到接收经过的延迟时间,一般由传输延迟及处理延迟组成;而抖动是指最大延迟与最小延迟的时间差,如最大延迟是20毫秒,最小延迟为5毫秒,那么网络抖动就是15毫秒,它主要标识一个网络的稳定性。但是个人从直观表现上看指的是每两个相邻的数据包接收时的时间间隔之差,比如第一个数据包的与第二个数据包到达的时间差是20ms,可能第三个包和第二个包的时间差是5ms,那么网络抖动就是15ms。t表示一个个的数据包

2020-05-15 10:58:24 24116

原创 使用ffmpeg推流rtsp,用vlc播放黑屏,但是编码数据保存264文件能正常播放原因汇总

原因一:项目中使用cuda编码,然后用ffmpeg推流rtsp,用vlc播放rtsp链接,发现播放黑屏,然后把编码数据保存264文件,用vlc打开能够正常播放。解决一:UltraEdit打开264文件,如下图从图中可以看出00 00 00 01 67(SPS) 00 00 00 01 68(PPS) 00 00 00 01 65(I帧),这个IDR帧是正常的所以用VLC播放可以。但是在这个这个264文件里后续的帧都没有出现00 00 00 01 65(I帧),所以这就是为什么推流...

2020-05-11 10:25:24 5326

转载 转!!!!Intel media SDK h264编码去除多余信息(如分界符,sps等)

原文链接https://blog.jianchihu.net/intel-media-sdk-remove-unused.html。使用Intel media SDK硬编码H264数据时,生成的每一帧H264数据都包含Access unit delimiter+Picture parameter set+Additional information (SEI)。如下图是使用默认参数生成的一个非...

2020-04-30 15:37:54 1030

原创 使用Intel media SDK h264编码后的数据帧分析及用vlc播放不出原因分析

使用Intel media SDK硬编码H264数据然后保存成264文件,用vlc播放失败。默认编码是第一帧有IDR帧,后续都没有I帧,这里打开保存的264文件分析数据帧时发现其数据帧如下正在上传…重新上传取消从上图中可以看到,第一个00 00 00 01 09可以判断出是分界符的类型,第二个00 00 00 01 27是SPS,第三个00 00 00 01 28是PPS,第四个00 ...

2020-04-30 15:32:08 1171

原创 av_read_frame获取到AVPacket数据包AV_INPUT_BUFFER_PADDING_SIZE值和输入文件AVCodecContext的extradata值研究

AVPacket pkt; av_init_packet(&pkt); // 初始化pkt pkt.data = NULL; pkt.size = 0;//fmt_ctx为输入文件的AVFormatContext指针 av_read_frame(fmt_ctx, &pkt); if (pkt.stream_index == video_idx) { // 为包数...

2020-04-22 11:30:31 1723

原创 移植ffmpeg到jz2440(在开发板运行出现Illegal instruction,已解决,问题总结)

一,先编译x264,参考文章移植X264到JZ2440开发板。二,配置./configure --prefix=/home/book/ffmpeg/ffmpeg-arm --arch=armel --target-os=linux --cross-prefix=arm-none-linux-gnueabi- --enable-gpl --enable-nonfree --extra-...

2020-04-22 11:29:39 948 1

原创 关于使用智能指针对降低ffmpeg延时的测试

这是使用智能指针的代码,转发rtspliu流用vlc播放,延时几乎没有#include "stdafx.h"#include "pch.h"#include <string>#include <memory>#include <thread>#include <iostream>using namespace std;AVFor...

2020-04-22 11:29:07 430

原创 ffmpeg使用问题记录

1.正常情况下一个封装好的视频文件,例如mp4或者mkv文件,其音频数据是经过了aac编码器编码的(如果是其他的编码器,那么提取的数据格式要和编码器一致),其视频数据是经过了h264编码器编码的,这时候如果你仅仅是提取出数据的话,音频文件格式要是AAC格式,比如test.aac,视频文件要是test.h264格式才行。如果要换成其他格式就必须经过解码,然后编码,再封装。2.使用ffpla...

2020-04-22 11:13:04 370

原创 视频帧数据用硬件编码输出,仅仅使用FFMPEG将硬件编码出的数据推流RTSP数据后严重花屏且画面卡住不动

由于使用的是其他硬件编码器出来的数据,所以不再是使用av_read_frame来获取AVPacket包了,所以在输出编码数据的回调接口里写伪代码如下://相当于初始化AVPacket包 AVPacket* tmp = (AVPacket*)malloc(sizeof(AVPacket));av_init_packet(tmp);tmp->data = (uint8_t*)m...

2020-04-22 11:10:28 1387 3

原创 linux内核模拟pwm信号控制舵机

需要用到的知识点:A)linux内核延时函数,这里参考文章https://www.cnblogs.com/Ph-one/p/4678361.html#include <linux/delay.h>1、void ndelay(unsigned long nsecs); 纳秒级2、void udelay(unsigned long usecs); ...

2020-01-19 14:18:15 1288

原创 使用C++11 thread创建线程出现的问题总结

出现错误如下:1.C2672 std::invoke”: 未找到匹配的重载函数2.未能使函数模板“unknown-type std::invoke(_Callable &&,_Types &&...) noexcept(<expr>)”专用化原因是因为定义线程参数给错了,如下代码错误代码如下某头文件线程声明如下class CSoc...

2019-08-17 12:04:16 5822

原创 使用LIVE555保存264文件,用vlc播放失败

live555中testProgs文件有两个测试程序可以用来保存文件,分别是playCommon.cpp和testRTSPclient.cpp。先来看testRTSPclient.cpp保存264文件的代码void DummySink::afterGettingFrame(unsigned frameSize, unsigned numTruncatedBytes, stru...

2019-07-11 18:34:17 753

空空如也

空空如也

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

TA关注的人

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