# 音视频开发规范 - CODING-STANDARDS-MULTIMEDIA

**版本**: 2.0.0
**适用范围**: 音视频开发岗位（音频处理/视频编解码/流媒体，技术栈无关）
**最后更新**: 2025-12-25

---

## 🚨 核心铁律（继承自 common.md）

> **必须遵循 common.md 的四大核心铁律**

```
铁律1: SPEC 是唯一真源（SSOT）
       - 编解码配置必须符合 SPEC 定义
       - 格式、码率、分辨率以 SPEC 为准

铁律2: 智能复用与销毁重建
       - 现有管道完全匹配 → 直接复用
       - 部分匹配 → 删除重建

铁律3: 禁止渐进式开发
       - 禁止在旧管道上添加新功能
       - 禁止保留兼容性格式

铁律4: Context7 调研先行
       - 使用成熟的编解码库（FFmpeg）
       - 禁止自己实现编解码算法
```

---

## 🎵 音频处理

### 采样和格式
- ✅ 采样率合理（44.1kHz/48kHz）
- ✅ 位深度明确（16bit/24bit/32bit float）
- ✅ 声道数配置（单声道/立体声/多声道）
- ✅ 格式转换质量控制
- ❌ 避免采样率不匹配（失真）

### 音频缓冲
- ✅ 缓冲区大小合理（延迟vs稳定性）
- ✅ 环形缓冲区（Ring Buffer）
- ✅ 缓冲区欠载/溢出处理
- ✅ 双缓冲/三缓冲
- ❌ 避免音频卡顿（Buffer Underrun）

### 音频效果
- ✅ 混音（Mixing）算法
- ✅ 均衡器（EQ）
- ✅ 压缩器（Compressor）
- ✅ 混响（Reverb）
- ✅ 3D音效定位
- ❌ 避免削波失真（Clipping）

---

## 🎥 视频处理

### 编解码
- ✅ 编码器选择（H.264/H.265/VP9/AV1）
- ✅ 码率控制（CBR/VBR）
- ✅ 关键帧间隔（GOP）
- ✅ 编码预设（速度vs质量）
- ✅ 硬件加速（GPU/专用芯片）
- ❌ 避免解码失败

### 帧处理
- ✅ 帧率标准（24/25/30/60fps）
- ✅ 分辨率缩放（插值算法）
- ✅ 色彩空间转换（RGB/YUV）
- ✅ 去交错（Deinterlacing）
- ❌ 避免帧丢失

### 视频滤镜
- ✅ 色彩校正
- ✅ 锐化/模糊
- ✅ 裁剪/旋转
- ✅ 水印/字幕
- ❌ 避免过度处理（质量损失）

---

## ⏱️ 同步和时序

### 音视频同步
- ✅ PTS（呈现时间戳）
- ✅ DTS（解码时间戳）
- ✅ 音视频时间基准统一
- ✅ 漂移补偿
- ✅ Lip Sync（唇音同步）
- ❌ 避免音画不同步

### 时钟管理
- ✅ 使用系统时钟或媒体时钟
- ✅ 时钟同步（NTP）
- ✅ 时间戳单调递增
- ✅ 播放速度控制
- ❌ 避免时间戳跳变

---

## 📡 流媒体

### 流协议
- ✅ HLS/DASH/RTMP/WebRTC
- ✅ 自适应码率（ABR）
- ✅ 分片大小合理（2-10秒）
- ✅ 预加载策略
- ❌ 避免流中断

### 网络传输
- ✅ 缓冲策略（减少卡顿）
- ✅ 重传机制
- ✅ 拥塞控制
- ✅ 带宽估计
- ✅ 丢包恢复（FEC）
- ❌ 避免缓冲溢出

### 低延迟
- ✅ 实时传输（RTP/RTSP）
- ✅ 减少缓冲时间
- ✅ I帧优化
- ✅ 网络优化（UDP）
- ❌ 避免延迟累积

---

## 🗂️ 容器和格式

### 容器格式
- ✅ MP4/MKV/AVI/WebM
- ✅ 多轨道支持（音频/视频/字幕）
- ✅ 元数据（Metadata）
- ✅ 索引（Seeking）
- ❌ 避免容器损坏

### 格式转换
- ✅ 无损转换
- ✅ 转码质量控制
- ✅ 批量处理
- ✅ 进度监控
- ❌ 避免格式不兼容

---

## ⚡ 性能优化

### 编解码优化
- ✅ 硬件加速（NVENC/QSV/AMF）
- ✅ 多线程并行
- ✅ SIMD优化
- ✅ 零拷贝（Zero-Copy）
- ❌ 避免CPU满载

### 内存管理
- ✅ 缓冲池化
- ✅ 及时释放解码帧
- ✅ 内存对齐
- ✅ 监控内存使用
- ❌ 避免内存泄漏

### 实时处理
- ✅ 帧处理时间预算
- ✅ 优先级调度
- ✅ 帧跳过（掉帧策略）
- ✅ 延迟监控
- ❌ 避免处理延迟累积

---

## 🔒 DRM和版权

### 内容保护
- ✅ DRM集成（Widevine/FairPlay/PlayReady）
- ✅ 加密传输（HTTPS）
- ✅ 许可证验证
- ✅ 防录屏（HDCP）
- ❌ 禁止明文传输受保护内容

### 水印
- ✅ 数字水印嵌入
- ✅ 不可见水印
- ✅ 防篡改
- ❌ 避免影响画质

---

## 🎛️ 播放器开发

### 播放控制
- ✅ 播放/暂停/停止
- ✅ 进度跳转（Seeking）
- ✅ 播放速度调节
- ✅ 音量控制
- ✅ 全屏切换
- ❌ 避免操作无响应

### 状态管理
- ✅ 播放状态机
- ✅ 错误处理和重试
- ✅ 缓冲状态显示
- ✅ 网络断线恢复
- ❌ 避免状态混乱

### 用户体验
- ✅ 快速启动（首帧时间<1秒）
- ✅ 流畅播放（无卡顿）
- ✅ 智能预加载
- ✅ 错误提示友好
- ❌ 避免黑屏/卡死

---

## 🧪 测试

### 功能测试
- ✅ 编解码正确性
- ✅ 多格式兼容性
- ✅ 音视频同步
- ✅ 跳转精度
- ✅ 边界条件（空文件/损坏文件）
- ❌ 不要跳过边界测试

### 性能测试
- ✅ 编解码性能
- ✅ 内存占用
- ✅ CPU/GPU使用率
- ✅ 延迟测试
- ✅ 压力测试（长时间播放）
- ❌ 避免性能回归

### 兼容性测试
- ✅ 多设备测试
- ✅ 多平台测试
- ✅ 多浏览器测试（Web播放器）
- ✅ 网络环境测试
- ❌ 不要只在理想环境测试

---

## 📋 音视频开发检查清单

- [ ] 音频采样率和格式正确
- [ ] 视频编解码配置合理
- [ ] 音视频同步（PTS/DTS）
- [ ] 流媒体缓冲和自适应码率
- [ ] 硬件加速和性能优化
- [ ] DRM和版权保护（如需要）
- [ ] 播放器状态管理和错误处理
- [ ] 多格式兼容性测试
- [ ] 性能和压力测试
- [ ] 用户体验优化（启动速度/流畅度）

---

**音视频开发原则总结**：
格式标准、编解码优化、音视频同步、流媒体传输、性能优化、DRM保护、播放器体验、兼容性测试、实时处理、缓冲策略
