- 博客(8)
- 收藏
- 关注
原创 嵌入式C面试经常被提及的几个问题
1,上电后,CPU从固定地址(通常是0x00000000)读取SP(栈指针)和PC(程序计数器)2,根据链接脚本定义的.text段,将代码从Flash拷贝到RAM(某些芯片需要)3,初始化.data段(已初始化全局变量)和清零.bss段(未初始化全局变量)1,性能影响:未对齐的32位访问在Cortex-M0/M3上会触发多次内存操作。3,节省内存:通过#pragma pack(1)取消对齐可减少空间,但降低速度。1,printf不可重入:内部使用静态缓冲区,多任务/中断调用会导致数据覆盖。
2025-08-21 11:14:28
380
原创 检查mp4封装问题的一些命令行
再就是大名鼎鼎的ffmpeg,这个工具在音视频开发过程中也是妥妥的神器,开发者真是配享太庙。等等诸如此类,排查264/265编码的各种问题几乎都可以在ffmpeg中找到对应的命令行。以上是在工作过程中遇到问题排查的一些方法,还不全面,继续学习积累中…MP4Box在linux下真是个神器,这里用到了它的命令行工具,可用于排查封装问题.
2025-06-26 15:03:51
252
原创 ffmpeg+libx265交叉编译报错【ERROR: x265 not found using pkg-config】的处理办法
x265的交叉编译这里略过。出现ERROR: x265 not found using pkg-config是交叉编译工具链不支持 pkg-config的缘故需要在ffmpeg的configure中指定x265的路径:在 configure 的 全局变量段(开头部分)添加:x265_cflags=“-I/yourx265path/include”x265_ldflags=“-L/yourx265path/lib -lx265”找到类似以下代码段:enabled libx265
2025-06-23 16:31:21
1253
原创 tcp在传输数据时出现粘包的情况以及处理方法
1,发送方多次发送的数据(如 A 和 B),在接收方缓冲区中被合并成一个数据包(如 AB),导致接收方无法正确解析原始数据边界。接收缓冲区:数据到达后可能被内核缓存合并,导致多次发送的数据被一次性读取。发送缓冲区:Nagle 算法(默认启用)会合并小数据包,减少网络开销。示例:HTTP 协议用 \r\n\r\n 分隔头部和正文。1,TCP 是面向字节流的协议。缺点:需转义分隔符,防止冲突。2,底层缓冲区的合并与拆分。3,网络传输的不可控性。缺点:浪费带宽。
2025-05-26 10:30:20
381
原创 音视频同步的基本构想
在音视频同步中,视频帧间隔和音频样本间隔的计算方式不同,需要统一时间基准来比较。但通常音频以 帧(Frame) 为单位处理(假设1024 样本数为一帧),此时间隔为=样本数/采样率 ≈0.0232秒=23.2毫秒。#define SAMPLES_PER_FRAME 1024 // 每音频帧的样本数。3,通常以音频帧为基准,因为人儿对音频相对敏感,视频同步到音频的方式。视频帧间隔= 1/FPS≈0.0333秒=33.3毫秒。每样本持续时间:音频样本间隔=1/采样率。
2025-04-25 16:41:17
232
原创 ffmpeg-4.4在嵌入式环境下的交叉编译
1,下载源码:wget https://ffmpeg.org/releases/ffmpeg-4.4.tar.gz。按照我个人的功能需求做了简单裁剪。
2025-04-25 15:38:01
365
原创 faac在嵌入式环境下的交叉编译
1,下载源码:wget http://downloads.sourceforge.net/faac/faac-1.28.tar.gz。fprintf(stderr, "FAAC编码器初始化失败\n");fprintf(stderr, "FAAC编码器配置失败\n");#define CHANNELS 1 // 单声道。// 初始化FAAC编码器。// 打开PCM输入文件。// 创建AAC输出文件。// 配置编码器参数。版本根据自己需要查询。
2025-04-25 15:32:20
420
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅