自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(336)
  • 资源 (6)
  • 收藏
  • 关注

原创 Linux进程间通信:dbus的使用(3)—— 整理关于D-Bus的一些学习笔记和补充

1、移植dbus到开发板的步骤Linux:交叉编译dbus/glib/dbus-glib - iamlinrm.CSDN先移植dbus-daemon后台进程所依赖的xml解析器:tar xjf expat-2.3.0.tar.bz2cd expat-2.3.0./configure --prefix=$PWD/tmp --host=arm-linux-gnueabihfmakemake installcp -rfd tmp/* ~/net/nfs_root/fs/usr/rm -rf

2021-04-19 18:31:01 5382

原创 Linux shell:脚本编写快速入门

形式1:使用function关键字定义# cmd... }形式2:与C语言类似# cmd... }/bin/bashfunc(){func。

2021-02-06 16:47:11 2335 1

原创 Linux:命令行调试WiFi(iwlist/iwconfig/iw/wpa_supplicant/wpa_cli/dhcp/hostapd/hostapd_cli的使用方法)

文章目录1、编译步骤2、iwlist3、iwconfig4、iw5、wpa_supplicant5.1 wpa_supplicant —— 连接AP热点5.2 wpa_cli —— wpa_supplicant的客户端6、动态获取IP地址6.2 方式1:使用busybox自带的udhcpc工具(推荐)6.2 方式2:dhclient7、hostapd7.1 hostapd —— 创建AP热点7.2 hostapd_cli —— hostapd的客户端8、动态分配IP地址8.1 方式1:使用busybox自带

2020-07-21 20:54:28 8441

原创 Linux:MQTT通信协议之一 -- mqtt基本概念、apt-get命令搭建mosquitto服务器及简单测试

MQTT1、MQTT是什么2、MQTT通信模式3、MQTT发布服务质量4、MQTT遗嘱消息5、MQTT主题筛选6、Ubuntu安装mosquitto7、测试(默认配置)8、设置服务器端密码 / 端口9、测试(密码连接)10、参考文章11、附加内容(相关参数说明)1、MQTT是什么Message Queuing Telemetry Transport是一个基于TCP/IP的轻量级、灵活的即时通讯协议,多用于IOT物联网开发(这里假设你已经了解过MQTT是怎样的一个协议了,所以只是简单说明一下,想了解更多可

2020-06-04 17:11:47 1896 1

原创 Linux多线程编程:pthread线程创建、退出、回收、分离、取消

文章目录Linux线程1、简单了解一下线程2、线程创建:pthread_create3、线程传参注意事项4、线程退出:pthread_exit5、线程回收:pthread_join6、线程分离:pthread_detach7、线程取消:pthread_cancel8、线程其他函数9、线程注意事项Linux线程1、简单了解一下线程  线程也被称为轻量级进程,启动一个线程所花费的空间远远小于启动一个进程所花费的空间,因为进程切换时需要更新cache和tlb,而线程就不用。由于多个线程访问的都是同一地址空间

2020-05-12 10:32:55 24917 2

原创 C语言:结构体大小及其成员分布的探究(结构体内存对齐问题)

文章目录1、基础成员大小2、为什么要内存对齐?3、联合体的大小4、32位环境下的结构体大小4.1 成员的起始地址偏移4.2 以最宽基础成员大小对齐4.3 同样地以最宽基础成员对齐:结构体包含结构体4.4 自定义内存对齐值#pragma pack(n)4.5 位域1、基础成员大小在不同机器上,编译器处理基础类型占用内存字节不尽相同,如表所示:更正: 评论区指出LP32和ILP32之间的区别。上面表格是常用的系统环境下的数据类型,但是不同的系统环境有不同的数据模型,见下表。(注:后续的测试都是建立在

2020-05-03 20:05:43 1884 2

转载 Linux:设置sudo无需密码【Ubuntu、多种方法】

在日常使用 Ubuntu时,您可能经常需要以管理员身份运行命令,这意味着每次执行sudo命令时都需要输入密码。虽然这是一个安全措施,但在某些情况下,频繁输入密码可能会显得繁琐。本文将介绍如何设置sudo无需密码的多种方法,同时保持系统的安全性。

2024-08-25 22:03:27 700

转载 git:解决git am冲突的方法

【正文】在踩过几次坑之后,大多数工程师都会学会使用patch的形式来保存各个模块/功能的代码改动,这样可以很方便地为相应模块添加或者去除相关功能的代码。但是伴随着主线代码的不断更新,我们在早期保存出来的patch中有部分内容可能已经不能再直接打入现在的代码里了。这种情况下可以使用下面的方法解决冲突:1、执行命令尝试直接打入补丁。因为我们使用的 patch 已经过时了,所以这一步肯定会报错并中断(注意,虽然命令停止执行了,但我们依然处于git am命令的运行环境中,可以通过git命令查看到当前的状态)。

2024-08-24 22:04:01 47

原创 64位Ubuntu运行一个真实存在的可执行程序却报错的解决方法(No such file or directory)

那么是可执行程序(交叉编译的程序除外)与你的PC机运行环境“位数”不一致导致。在64位的Ubuntu机器上运行一个路径真实存在的可执行文件,提示。

2024-08-17 20:08:21 278

原创 编译Linux内核报错:usr/bin/ld: scripts/dtc/dtc-parser.tab.o:(.bss+0x50): multiple definition of `yylloc‘;

gcc版本过高(高于10.0),可通过。

2024-08-17 19:43:28 250

原创 WSL:(Windows Subsystem for Linux) 将启动时默认用户更改为root或其他用户

请注意,以 root 用户工作可能会带来安全风险,因为 root 用户具有对系统的完全访问权限。因此,只有在你确实需要 root 权限时才应该这样做,并且要谨慎操作。在完成需要 root 权限的任务后,建议将默认用户改回普通用户。首先,你需要知道你的 Linux 发行版的名称。请注意,上述命令可能因 WSL 版本和发行版的不同而有所不同。重新打开 WSL 终端窗口,你应该会以 root 用户登录。打开你的命令提示符或 PowerShell。关闭所有打开的 WSL 终端窗口。

2024-07-14 16:35:49 851

原创 Linux:解决vim打开文件默认为replace模式

Ubuntu打开 vim 默认为 replace 模式。终端的编码设置与目标机器的编码设置不同。修改 vim 配置文件(

2024-07-14 16:14:10 468

转载 Linux shell:/bin/bash和/bin/sh解释器的误用引起的脚本语法错误

GNU/Linux 操作系统中的 /bin/sh 是 bash(Bourne-Again Shell)的符号链接,但鉴于 bash 过于复杂,有人把 ash 从 NetBSD 移植到 Linux 并更名为 dash(Debian Almquist Shell) https://wiki.ubuntu.com/DashAsBinSh ,并建议将 /bin/sh 指向它,以获得更快的脚本执行速度。下面的脚本,在Linux上运行良好,在SUNOS执行的时候报语法错误。一番折腾之后,是脚本解释器的问题.

2024-07-14 12:25:36 88

转载 WSL:修改安装包实际安装位置,最新完整教程_wsl安装路径

如果你将Ubuntu的文件解压并安装到D盘,但WSL本身仍在C盘,则安装的Ubuntu子系统仍会使用WSL的默认存储路径。在 WSL (Windows Subsystem for Linux) 中,默认情况下安装的 Ubuntu 子系统及其文件存储位置是固定的,但你可以更改 WSL 的安装地址,尤其是对于 WSL 2。下面是如何更改安装地址的步骤通过这些步骤,你应该能够成功导出、注销并导入 WSL 发行版到新的位置。版权声明修改wsl安装包实际安装位置,最新完整教程_wsl安装路径-CSDN博客。

2024-07-13 23:39:46 1701

转载 编译Linux内核出现:/usr/bin/ld: scripts/dtc/dtc-parser.tab.o:(.bss+0x50): multiple definition of `yylloc’

【代码】编译Linux内核出现:usr_bin_ld_ scripts_dtc_dtc-parser.tab.o_(.bss+0x50)_ multiple definition of `yylloc‘;-C。

2024-07-13 23:16:59 90

原创 音视频封装demo:将h264数据和aac数据封装(mux)成TS文件(纯手工,不依赖第三方开源库)

$ make clean && make DEBUG=1$$ ./ts_mux_h264_aacUsage: ./ts_mux_h264_aac avfile/test1_856x480_24fps.h264 24 avfile/test1_44100_stereo.aac out1.ts ./ts_mux_h264_aac avfile/test2_720x480_30fps.h264 60 avfile/test2_48000_stereo.aac out2.ts ./ts_mu

2024-07-09 11:34:32 686

原创 音视频解封装demo:将FLV文件解封装(demux)得到文件中的H264数据和AAC数据(纯手工,不依赖第三方开源库)

目前demo解封装功能正常,所得到的H.264文件与AAC文件均可正常播放。

2024-07-09 11:27:31 693

原创 音视频封装demo:将h264数据和aac数据封装(mux)成FLV文件(纯手工,不依赖第三方开源库)

1、demo使用$ make clean && make DEBUG=1$$ ./flv_mux_h264_aacUsage: ./flv_mux_h264_aac avfile/test1_856x480_24fps.h264 24 avfile/test1_44100_stereo.aac out

2024-07-09 11:22:50 877

原创 音视频解封装demo:使用libmp4v2解封装(demux)出mp4文件中的h264视频数据和aac语音数据

本demo是使用的mp4v2来将mp4文件解封装得到h264、aac的,目前demo提供的.a静态库文件是在x86_64架构的Ubuntu16.04编译得到的,如果想在其他环境下测试demo,可以自行编译mp4v2并替换相应的库文件(libmp4v2.a)。

2024-07-09 11:16:48 658

原创 音视频封装demo:使用libmp4v2将h264视频数据和aac语音数据封装(mux)成mp4文件

本demo是使用的mp4v2来将h264、aac封装成mp4文件的,目前demo提供的.a静态库文件是在x86_64架构的Ubuntu16.04编译得到的,如果想在其他环境下测试demo,可以自行编译mp4v2并替换相应的库文件(libmp4v2.a)。

2024-07-09 11:13:30 1107

原创 音频demo:使用开源项目LibFLAC来将PCM格式数据和FLAC无损压缩格式相互进行编解码

如果是双声道,那么一个采样点就包含16bit*2channels等于4个字节,单通道就是2个字节(16bit),那么,文件大小/一个采样点的字节数=总的采样点数。另外,从日志里看,这里1帧(frame)是由4096个采样点编码而成,那么我们程序里每次读取1024个采样点传递进去并不是直接进行编码的。

2024-07-09 10:35:00 714

原创 音频demo:将PCM数据和opus格式相互编解码

解码:在得到编码数据时,先写4个字节标识一下这段数据的大小,方便解码得到这一帧的数据长度。的文件是chatgpt生成的demo,没有实际验证效果,编码:程序可以正常运行,但是编码出来没有播放器可以验证,,不过可以通过下面自己再解码成PCM即可验证是否正常;不好确定设置的码率是否生效。

2024-07-09 10:33:38 910 2

原创 音频demo:将PCM数据和ogg vorbis格式相互编解码

libogg+libvorbis移植步骤源码下载地址:[https://xiph.org/downloads/](https://xiph.org/downloads/) ```bashtar xzf libogg-1.3.5.tar.gzcd libogg-1.3.5/#./configure --prefix=$PWD/_install --disable-shared --enable-static --with-pic./configure --prefix=$PWD/_instal

2024-07-09 10:31:04 918

原创 音频demo:将PCM数据和Speex数据进行相互编解码

源码下载地址:[https://xiph.org/downloads/](https://xiph.org/downloads/) 或 [https://www.speex.org/downloads/](https://www.speex.org/downloads/) 或 [https://www.linuxfromscratch.org/blfs/view/svn/multimedia/speex.html](https://www.linuxfromscratch.org/blfs/view/svn

2024-07-09 10:30:27 512

原创 音频demo:使用开源项目libmad来将MP3数据解码出PCM数据

本demo是使用开源项目libmad来将MP3数据解码成PCM(16位有符号小字节序)数据。(环境:x86_64 Ubuntu16.04 64位)

2024-07-09 10:28:20 322

原创 音频demo:将PCM数据和Speex数据进行相互编解码

##### a. libspeex移植步骤源码下载地址:[https://xiph.org/downloads/](https://xiph.org/downloads/) 或 [https://www.speex.org/downloads/](https://www.speex.org/downloads/) 或 [https://www.linuxfromscratch.org/blfs/view/svn/multimedia/speex.html](https://www.linuxfromsc

2024-07-08 20:22:15 868

原创 音频demo:使用开源项目libmad来将MP3数据解码出PCM数据

本demo是使用开源项目libmad来将MP3数据解码成PCM(16位有符号小字节序)数据。(环境:x86_64 Ubuntu16.04 64位)

2024-07-08 20:18:17 565

原创 音频demo:使用开源项目lame来将MP3数据解码出PCM数据

本demo是使用开源项目lame来将MP3数据解码成PCM数据。(环境:x86_64 Ubuntu16.04 64位)注:在下面【参考文章】中的第1篇里面提到解码出现过异常情况(hip: bitstream problem, resyncing skipping xxx bytes…),或许是因为我屏蔽了main.c中第88行的fseek(…)函数,在目前demo中提供的MP3文件以及网络下载的其他MP3文件解码均未发现此提示。

2024-07-08 19:51:55 548

原创 音频demo:使用开源项目lame来将PCM数据编码成MP3数据

本demo是使用开源项目lame来将PCM数据编码成MP3数据。(环境:x86_64 Ubuntu16.04 64位)

2024-07-08 19:47:08 493

原创 音频demo:将PCM数据与g726数据的相互转换

本demo是将使用了开源项目EasyAACEncoder里的`src/g726.cpp`(demo中的已重命名为`g726.c`)和`src/g726.h

2024-07-08 19:38:55 674

原创 音频demo:将PCM数据与alaw、mulaw、g711数据的相互转换

前言(截图来源:https://blog.csdn.net/u014470361/article/details/88837776)demo引用了开源代码和,然后在此基础上封装成和,并编写自己的测试程序进行验证。整个demo程序共5个源文件,可以编译到任意环境下使用(非类Unix系统可能需要简单调整中包含的头文件):b. 使用c. demo目录架构2、主要代码片段pcm_aulaw.cpcm_aulaw_wraper.cmain.c3、demo下载地址(任选一个)https:/

2024-07-08 19:31:59 760

原创 音频demo:使用faad2将AAC数据解码出PCM数据

本demo是使用的开源项目faad2将aac数据解码成pcm数据。

2024-07-08 18:07:32 684

原创 音频demo:使用fdk-aac将PCM数据编码成aac数据

本demo是使用的开源项目fdk-aac将PCM数据编码成aac音频文件。由于提供的.a静态库是在x86_64的机器上编译的,所以默认情况下仅支持该架构的主机上编译运行。$ make。

2024-07-08 18:00:10 558 1

原创 音频demo:使用faac将PCM数据编码成aac数据

本demo是使用的开源项目faac将PCM数据编码成aac音频文件。由于提供的.a静态库是在x86_64的机器上编译的,所以默认情况下仅支持该架构的主机上编译运行。$ make。

2024-07-08 17:11:47 474

原创 音频demo:将左右声道PCM数据合并

【代码】音频demo:将左右声道PCM数据合并。

2024-07-08 17:04:36 476

原创 音频demo:将PCM数据左右声道分离

注意:分离左右声道的前提是输入的PCM文件(数据)是双声道。

2024-07-08 17:00:07 280

原创 音频demo:使用opencore-amr、vo-amrwbenc将PCM数据与AMR-WB数据进行编解码

前言不管NB还是WB,一帧都是20ms,一秒50帧。

2024-07-08 16:53:29 505

原创 音频demo:使用opencore-amr将PCM数据与AMR-NB数据进行相互编解码

由于提供的.a静态库是在x86_64的机器上编译的,所以仅支持该架构的主机上编译运行。$ make如果想要在其他架构的CPU上编译运行,可以使用以下命令(脚本)编译。

2024-07-08 16:40:47 1320

原创 音频demo:将PCM与wav格式相互转换

使用开源项目opencore-amr中test目录下的和文件,将PCM和WAV格式的音频文件进行相互转换。(注:PCM只是WAV封装规范所支持的其中一种格式,两者不是等价关系。此程序中的wavwriter只支持PCM(format=0x0001)。

2024-07-08 15:40:02 374

原创 音频demo:将PCM数据封装成wav格式文件(不依赖第三方库)

编译时需要编译成32位的可执行程序(int需要指定为4字节),所以如果需要在64位主机上运行该程序,编译时就需要在Makefile上添加。选项(默认已加),如果运行的主机是32位的则将Makefile上的编译选项。

2024-07-08 15:15:21 470

av-flv-demux-h264-aac-master.zip

将FLV文件解封装(demux)得到文件中的H264数据和AAC数据(纯手工,不依赖第三方开源库)

2024-07-09

av-flv-mux-h264-aac-master.zip

将h264数据和aac数据封装(mux)成FLV文件(纯手工,不依赖第三方开源库)

2024-07-09

av-ts-mux-with-h264-aac-master.zip

将h264数据和aac数据封装(mux)成TS文件(纯手工,不依赖第三方开源库)

2024-07-09

av-mp4-unpack-with-mp4v2-master.zip

使用libmp4v2解封装(demux)出mp4文件中的h264视频数据和aac语音数据

2024-07-09

av-mp4-pack-with-mp4v2-master.zip

使用libmp4v2将h264视频数据和aac语音数据封装(mux)成mp4文件

2024-07-09

audio-pcm-flac-enc-dec-master.zip

使用开源项目LibFLAC来将PCM格式数据和FLAC无损压缩格式进行编解码。

2024-07-08

audio-pcm-vorbis-enc-dec-master.zip

使用pcm数据跟ogg vorbis格式相互编解码。

2024-07-08

Audio-pcm-opus-enc-dec-master.zip

将PCM与opus数据相互进行编解码

2024-07-08

Audio-pcm-speex-enc-dec-master.zip

将PCM数据和Speex数据进行相互编解码

2024-07-08

audio-mp32pcm-with-libmad-master.zip

使用开源项目libmad来将MP3数据解码码成PCM数据。

2024-07-08

audio-mp32pcm-with-libmp3lame-master.zip

使用开源项目lame来将MP3数据解码码成PCM数据。

2024-07-08

audio-pcm2mp3-with-libmp3lame-master.zip

使用开源项目lame来将PCM数据编码成MP3数据。

2024-07-08

audio-pcm-g726-convert-master.zip

将16位小字节序的PCM数据与g726数据进行相互转换。

2024-07-08

audio-pcm-alaw-ulaw-g711-convert-master.zip

16位小字节序的PCM数据与alaw/mulaw/g711数据的相互转换程序。

2024-07-08

audio-aac2pcm-with-faad2-master.zip

使用的开源项目faad2将aac数据解码成pcm数据。

2024-07-08

audio-pcm2aac-with-fdk-aac-master.zip

使用fdk-aac将16位小字节序的PCM数据编码成aac数据。

2024-07-08

audio-pcm2aac-with-faac-master.zip

使用faac将16位小字节序的PCM数据编码成aac数据。

2024-07-08

audio-pcm-channel-merge-master.zip

基于16位小字节序的PCM数据左右声道合并程序。

2024-07-08

audio-pcm-channels-split-master.zip

基于16位小字节序的PCM数据左右声道分离程序。

2024-07-08

audio-pcm-amrwb-enc-dec-master.zip

使用opencore-amr和vo-amrwbenc将16位小字节序的PCM数据与AMR-WB数据进行相互编解码。

2024-07-08

audio-pcm-amrnb-enc-dec-master.zip

使用opencore-amr将16位小字节序的PCM数据与AMR-NB数据进行相互编解码。

2024-07-08

audio-pcm-wav-convert-master.zip

将16位小字节序的PCM数据与wav数据(文件)进行封装与解封。

2024-07-08

audio-pcm2wav-master.zip

将16位小字节序的PCM数据封装成wav格式文件(不依赖第三方库)。

2024-07-08

bluez协议栈移植.zip

bluez协议栈移植.zip

2024-01-03

Linux WiFi调试工具(含多种编译方法)

Linux WiFi调试工具(含多种编译方法)

2024-01-03

mjpg-streamer-1.0.0_有注释.zip

mjpg-streamer开源项目里面包含很多Linux软件编程知识,包含so动态库的操作、线程的创建与同步、UDP网络编程、V4L2应用编程.... 压缩包内容包如下: mjpg-streamer-1.0.0.tar.gz mjpg-streamer-1.0.0_有注释.zip README.txt

2021-05-05

RK3399 安卓Q适配EC20 4G模块资料

压缩包内包含以下内容: logcat -b radio -v time.log(适配成功的log) Quectel_Android_RIL_Driver_User_Guide_V1.9.pdf Quectel_Android_RIL_Driver_V3.2.2_master_beta.tgz Quectel_WCDMA&LTE_Linux_USB_Driver_User_Guide_V1.8.pdf reference-ril Rockchip_Introduction_4G_Module_Configuration_CN&EN.pdf

2021-05-01

Linux WiFi调试工具的使用

wifi_debug_tools ├── dhcp-4.2.6.tar.gz ├── hostapd-2.9.tar.gz ├── iw-3.11.tar.gz ├── libnl-3.2.25.tar.gz ├── openssl-1.1.1g.tar.gz ├── README.txt ├── wireless_tools.29.tar.gz └── wpa_supplicant-2.7.tar.gz 使用方法见README。

2021-05-01

交叉编译dbus/glib/dbus-glib

. ├── dbus-1.12.20.tar.gz ├── dbus-glib-0.106.tar.gz ├── expat-2.3.0.tar.bz2 ├── glib-2.34.1.tar.xz ├── libffi-3.3.tar.gz ├── README └── zlib-1.2.11.tar.gz

2021-04-15

编译buildroot-2020.02.9.tar.bz2时自动下载所必需的源码

编译buildroot-2020.02.9.tar.bz2过程中自动联网下载到dl目录下的源码,使用这里的源码放到dl目录下可以大大减少编译时间。 book@book-VirtualBox:~/buildroot-2020.02.9$ tree dl/ dl/ ├── acl │   └── acl-2.2.53.tar.gz ├── attr │   └── attr-2.4.48.tar.gz ├── autoconf │   └── autoconf-2.69.tar.xz ├── automake │   └── automake-1.15.1.tar.xz ...

2021-01-30

Linux用户空间“免驱动”读写I2C设备

一般来说,用户空间操作硬件设备都需要驱动的支持,但是在Linux环境中可以从用户空间访问适配器上的所有设备,它是内核的一个通用驱动,所以我们不需要手动写对应的设备驱动也可以访问。 直接从用户空间访问的前提是内核里面配置了i2c-dev,如何判断呢?在命令行里面输入ls /dev/i2c-* 查看是否有对应的设备,如果没有就需要去配置内核kernel,位置如下: Device Drivers ---> -*- I2C support ---> I2C device interface

2020-05-01

空空如也

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

TA关注的人

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