Toggle navigation
Yvain Zhang
Home
About
Geek
Photos
Tags
Tags
按主题查看全部文章
多媒体
音频
数字音频
MP3
AAC
FLAC
容器
MP4
WAV
Ogg
MPEG
标准
AMR
FFmpeg
工具链
流媒体
M3U8
操作系统
消息队列
系统设计
嵌入式
驱动
网络
协议栈
中断
MMU
ARM
Socket
Linux
内存管理
FreeRTOS
音视频
无线网络
Wi-Fi
低功耗
P2P
802.11
USB
内存分析
多媒体
FFmpeg 快速上手
先把容器、编码和常用命令理顺
HLS 与 M3U8 播放列表基础
从媒体列表、主列表到直播更新和标签含义
FFmpeg 安装与常用处理
从安装方式到裁剪、重采样、分片和批处理思路
AMR 语音编码基础
从 AMR-NB、AMR-WB 到帧类型、模式和文件结构
MPEG 标准谱系概览
把 MP3、AAC、MP4、H.264 放回同一条标准演进主线
Ogg 容器基础
从 Ogg page、逻辑流到 Vorbis、Opus 和 Theora 的关系
WAVE、RIFF 与 PCM
理解 WAV 文件头、chunk 结构和常见编码方式
MP4 与 M4A 容器基础
从 Box、Track 到为什么播放器能拖动和定位
FLAC 格式与无损压缩
从元数据块、音频帧到为什么 FLAC 适合存档
AAC 基础与编码工具
理解 profile、容器关系与工程上的实际取舍
MP3 格式与解码流程
从帧结构、ID3 到同步、哈夫曼解码和 IMDCT
数字音频基础与处理流程
从采样率、位深到解复用、解码与播放链路
音频
AMR 语音编码基础
从 AMR-NB、AMR-WB 到帧类型、模式和文件结构
Ogg 容器基础
从 Ogg page、逻辑流到 Vorbis、Opus 和 Theora 的关系
WAVE、RIFF 与 PCM
理解 WAV 文件头、chunk 结构和常见编码方式
FLAC 格式与无损压缩
从元数据块、音频帧到为什么 FLAC 适合存档
AAC 基础与编码工具
理解 profile、容器关系与工程上的实际取舍
MP3 格式与解码流程
从帧结构、ID3 到同步、哈夫曼解码和 IMDCT
数字音频基础与处理流程
从采样率、位深到解复用、解码与播放链路
数字音频
数字音频基础与处理流程
从采样率、位深到解复用、解码与播放链路
MP3
MP3 格式与解码流程
从帧结构、ID3 到同步、哈夫曼解码和 IMDCT
AAC
AAC 基础与编码工具
理解 profile、容器关系与工程上的实际取舍
FLAC
FLAC 格式与无损压缩
从元数据块、音频帧到为什么 FLAC 适合存档
容器
MP4 与 M4A 容器基础
从 Box、Track 到为什么播放器能拖动和定位
MP4
MP4 与 M4A 容器基础
从 Box、Track 到为什么播放器能拖动和定位
WAV
WAVE、RIFF 与 PCM
理解 WAV 文件头、chunk 结构和常见编码方式
Ogg
Ogg 容器基础
从 Ogg page、逻辑流到 Vorbis、Opus 和 Theora 的关系
MPEG
MPEG 标准谱系概览
把 MP3、AAC、MP4、H.264 放回同一条标准演进主线
标准
MPEG 标准谱系概览
把 MP3、AAC、MP4、H.264 放回同一条标准演进主线
AMR
AMR 语音编码基础
从 AMR-NB、AMR-WB 到帧类型、模式和文件结构
FFmpeg
FFmpeg 快速上手
先把容器、编码和常用命令理顺
FFmpeg 安装与常用处理
从安装方式到裁剪、重采样、分片和批处理思路
工具链
FFmpeg 安装与常用处理
从安装方式到裁剪、重采样、分片和批处理思路
流媒体
HLS 与 M3U8 播放列表基础
从媒体列表、主列表到直播更新和标签含义
M3U8
HLS 与 M3U8 播放列表基础
从媒体列表、主列表到直播更新和标签含义
操作系统
FreeRTOS 常见故障排查
从中断优先级、栈溢出到 printf 使用误区
Linux 内存管理概览
从虚拟内存、页表到回收与 OOM
网络编程实践笔记
从 Socket、TCP/UDP 到并发连接和调优思路
ARM 启动流程
从上电到 Bootloader,再到内核或应用
中断、多核、MMU 与 Cache 基础
把嵌入式和系统面试里最容易散掉的概念串起来
L2 与 L3 网络基础
从 MAC、ARP 到 IP、路由,把链路层和网络层串起来
Linux 嵌入式基础问答
从中断、并发、设备模型到用户态 / 内核态边界
消息队列的三个核心场景
从解耦、异步到消峰,理解它为什么经常是系统缓冲层
消息队列
消息队列的三个核心场景
从解耦、异步到消峰,理解它为什么经常是系统缓冲层
系统设计
消息队列的三个核心场景
从解耦、异步到消峰,理解它为什么经常是系统缓冲层
嵌入式
FreeRTOS 常见故障排查
从中断优先级、栈溢出到 printf 使用误区
ARM 启动流程
从上电到 Bootloader,再到内核或应用
Linux 嵌入式基础问答
从中断、并发、设备模型到用户态 / 内核态边界
驱动
Wi-Fi 驱动内存占用分析
从静态 / 动态内存到泄漏趋势判断
Wi-Fi USB 驱动架构与性能调优
从数据路径、上下文切换到多核流水线如何形成
Linux 嵌入式基础问答
从中断、并发、设备模型到用户态 / 内核态边界
网络
网络编程实践笔记
从 Socket、TCP/UDP 到并发连接和调优思路
L2 与 L3 网络基础
从 MAC、ARP 到 IP、路由,把链路层和网络层串起来
协议栈
L2 与 L3 网络基础
从 MAC、ARP 到 IP、路由,把链路层和网络层串起来
中断
中断、多核、MMU 与 Cache 基础
把嵌入式和系统面试里最容易散掉的概念串起来
MMU
中断、多核、MMU 与 Cache 基础
把嵌入式和系统面试里最容易散掉的概念串起来
ARM
ARM 启动流程
从上电到 Bootloader,再到内核或应用
Socket
网络编程实践笔记
从 Socket、TCP/UDP 到并发连接和调优思路
Linux
Linux 内存管理概览
从虚拟内存、页表到回收与 OOM
内存管理
Linux 内存管理概览
从虚拟内存、页表到回收与 OOM
FreeRTOS
FreeRTOS 常见故障排查
从中断优先级、栈溢出到 printf 使用误区
音视频
FFmpeg 快速上手
先把容器、编码和常用命令理顺
无线网络
Wi-Fi 驱动内存占用分析
从静态 / 动态内存到泄漏趋势判断
Wi-Fi USB 驱动架构与性能调优
从数据路径、上下文切换到多核流水线如何形成
IEEE 802.11 分片机制
为什么要拆大帧、如何确认、以及它和聚合的区别
Wi-Fi P2P 基础
理解发现、协商、组建立和并发角色限制
Wi-Fi 低功耗机制概览
从 PS-Poll、U-APSD 到功耗、时延和吞吐的取舍
Wi-Fi
IEEE 802.11 分片机制
为什么要拆大帧、如何确认、以及它和聚合的区别
Wi-Fi P2P 基础
理解发现、协商、组建立和并发角色限制
Wi-Fi 低功耗机制概览
从 PS-Poll、U-APSD 到功耗、时延和吞吐的取舍
低功耗
Wi-Fi 低功耗机制概览
从 PS-Poll、U-APSD 到功耗、时延和吞吐的取舍
P2P
Wi-Fi P2P 基础
理解发现、协商、组建立和并发角色限制
802.11
IEEE 802.11 分片机制
为什么要拆大帧、如何确认、以及它和聚合的区别
USB
Wi-Fi USB 驱动架构与性能调优
从数据路径、上下文切换到多核流水线如何形成
内存分析
Wi-Fi 驱动内存占用分析
从静态 / 动态内存到泄漏趋势判断