- 博客(27)
- 收藏
- 关注
原创 嵌入式音视频开发——FLV流
FLV (Flash Video) 是一种高效的流媒体封装格式,由Adobe开发,具有体积小、结构简单和支持流式传输的特点。FLV文件由Header和Body组成:Header(9字节)包含签名、版本和内容标志;Body由一系列Tag和PreviousTagSize组成。Tag分为三种类型:脚本数据(元信息)、音频数据(包含编码参数)和视频数据(包含帧类型和编解码信息)。对于AVC/H.264视频和AAC音频,Tag中还包含关键的配置信息。尽管Flash已淘汰,FLV仍因其低延迟在直播领域广泛应用,理解其结
2025-09-04 09:53:26
814
原创 嵌入式音视频开发——TS流
复合流指的是在一条音视频数据流中同时包含视频ES和音频ES数据。在音视频开发中常见的复合流格式一般有TS流、MP4、FLV流等等。payload 不足 184 B,剩余 ES=6135-33×184=27 B后面填 157 B 0xFF 维持 188 B。“1 帧 6 kB 的 H.264 裸流数据 → 加 15 B PES 头 → 切成 35 片 188 B 固定小包,其中 1 片带 PCR 做时钟,1 片带 PES 头做同步,其余纯 ES 数据。
2025-08-14 09:28:59
805
原创 嵌入式音视频开发——H.264视频编码
H.264视频编码标准通过创新的分层结构和算法实现高效压缩。标准采用视频编码层(VCL)和网络抽象层(NAL)分离设计,VCL负责核心压缩算法,包括帧内/帧间预测、变换量化和熵编码;NAL则处理网络适配和封装。关键特性包括:1)三种帧类型(I/P/B帧)和GOP结构优化压缩比;2)分层数据组织(序列-帧-片-宏块);3)两种码流封装格式(AnnexB和AVCC);4)参数集机制(SPS/PPS)确保解码可靠性。H.264通过帧间预测、运动补偿等技术显著提升压缩效率,同时NAL单元设计增强了网络适应性,使其成
2025-08-13 09:56:59
826
原创 嵌入式音视频开发——压缩编码基础概念
音视频压缩技术通过消除空间、时间、感知和编码冗余,解决原始数据体量庞大的传输存储问题。核心是在码率、失真度和复杂度之间取得平衡,采用帧内/帧间预测、变换编码、量化和熵编码等技术,实现高达10:1以上的压缩比。有损压缩利用人眼/耳感知特性舍弃不敏感信息,无损压缩则完全保留原始数据。现代编码标准(如H.264/H.265)采用混合编码框架,通过DCT变换、运动补偿等关键技术,显著降低数据量(如1080P视频可从180MB/s压缩至数MB/s),使数字音视频的存储传输成为可能。
2025-08-06 17:02:05
1024
原创 嵌入式音视频开发——AAC编码
AAC音频编码技术摘要:AAC(高级音频编码)是一种高效的音频压缩格式,采用感知编码技术,压缩率高达20:1,在嵌入式系统和流媒体领域广泛应用。相比MP3,AAC在相同比特率下音质更优,解码效率更高。其核心技术包括频域变换和掩蔽效应应用,支持多声道音频。AAC包含三种规格:LC-AAC(中高码率)、HE-AAC(SBR技术)和HE-AACv2(参量立体声),分别适用于不同场景。文件封装格式分为ADIF(本地存储)和ADTS(流传输),后者每帧包含同步头和音频数据,支持实时解码。AAC通过显著降低存储需求和传
2025-08-04 10:53:08
906
原创 嵌入式音视频开发——音频编码原理
音频压缩编码技术通过去除冗余信号(如人耳无法感知的频率和被掩蔽的音频)来减小数据量。主要分为无损压缩(如FLAC、ALAC)和有损压缩(如MP3、AAC、Opus)。无损压缩保留所有原始信息,压缩比约2:1-3:1;有损压缩利用听觉特性去除次要信息,压缩比可达1/10以上。常见编码器包括OPLUS(OPPO专有,适用于蓝牙音频)和AAC(广泛兼容,音质优于MP3)。这些技术有效解决了嵌入式系统在存储和传输高数据量音频(如CD音质1.4Mbps)时面临的挑战。
2025-08-01 12:01:54
671
原创 嵌入式音视频开发——音频基础知识
本文摘要:声音由频率(音调)、振幅(音量)和波形(音色)三要素构成。音频数字化涉及采样率(需满足奈奎斯特定理)、量化(位深决定动态范围)和编码(如PCM格式)三个关键步骤。常见位深度包括16bit(CD音质)和24bit(专业录音)。声道分为单声道、立体声(交错/非交错存储)及多声道系统(5.1/7.1环绕声)。比特率反映编码后数据量,采样率通常为44.1kHz以覆盖人耳听觉范围。这些参数共同决定了音频的质量和存储方式。
2025-08-01 10:45:00
651
原创 嵌入式音视频开发——I2S协议的协议基础与工作原理
摘要:I2S协议是一种专为数字音频数据传输设计的同步串行通信标准,广泛应用于嵌入式音视频开发。该协议基于三条信号线(SCLK、WS、DATA)实现音频数据传输,支持16/24/32位数据格式和多种采样率。其核心特点包括高效性、高质量音频传输和低延迟,适用于连接微控制器、DAC/ADC等设备。I2S支持主从模式,通过精确的时钟控制实现帧同步和声道切换,确保可靠传输。该协议在数字音频播放器、智能音箱等场景中具有重要应用价值,是嵌入式音频系统设计的核心技术基础。
2025-07-31 16:35:59
936
原创 嵌入式音频开发笔记——ALSA-Lib常用音频接口函数
摘要:本文系统介绍了ALSA音频库中PCM设备操作的核心函数,包括snd_pcm_open、snd_pcm_hw_params系列函数、snd_pcm_readi/writei等I/O函数以及资源管理函数。重点阐述了设备初始化、参数配置、数据读写和错误恢复等关键流程,详细分析了各函数的参数、返回值和使用注意事项,并提供了典型应用场景和代码示例。文章还对比了不同访问模式的特点,讨论了常见问题的解决方案,为ALSA音频编程提供了全面的技术参考。
2025-07-28 15:02:35
781
原创 嵌入式音视频开发——PCM编码与WAV音频文件格式详解
本文系统介绍了音频信号采集与存储的核心技术。首先详细讲解了PCM的原理,包括采样、量化和编码三个关键步骤,重点分析了采样率、量化位等对音质的影响。其次深入剖析了WAV文件格式的RIFF结构,详细说明了RIFF头、fmt子块和data子块的具体组成和字段含义。最后通过实际代码示例展示了WAV文件头的定义和初始化方法,并分析了立体声数据在WAV文件中的存储方式。文章还通过Windows XP启动音实例,演示了如何解析WAV文件头信息并验证其音频参数。全文从理论到实践,阐述了音频数字化和和WAV文件格式的技术要点
2025-07-28 11:34:24
1124
原创 QT串口发数据为什么不能使用QTimer::singleShot(500, [this]() {};这个方式去延时,以确保指令发送完成
是基于事件循环的非阻塞延时方法,它允许事件循环在等待期间继续处理其他事件,这对于GUI应用来说是友好的,因为它不会冻结界面。然而,在串口通信中,特别是在发送大量数据或需要确保数据完整性时,可能需要一个同步的阻塞调用来确保数据完全发送出去。可能会导致对串口状态的多次检查和数据发送,这在多线程环境中可能会引起资源竞争和状态管理问题,尤其是在需要精确控制数据流的场景中。因此,在串口通信中,为了保证数据的完整性和发送的可靠性,通常推荐使用同步方法,如。的线程中使用它,会导致错误。:串口数据发送通常是异步的,
2025-02-25 15:24:30
257
原创 C++数组赋值错误与返回数组的函数总结
推荐使用标准容器(如或std::array),因它们提供安全性和灵活性。若需手动管理,使用指针时务必避免悬垂指针。
2025-02-20 14:04:25
220
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人