-
Notifications
You must be signed in to change notification settings - Fork 12
Dev Roadmap
johnjiamzhong-project edited this page Jun 6, 2026
·
1 revision
从零构建功能完整的多媒体播放器,逐步掌握多线程解码、音视频同步、硬件加速和实时流媒体。
原则: 每个阶段产出独立可运行的软件,后一阶段在前一阶段基础上叠加,不推倒重来。
| # | 阶段 | 核心交付物 | 状态 |
|---|---|---|---|
| 1 | 项目骨架 | CMake 构建 + Qt 空窗口 + 测试框架 | ✅ |
| 2 | 基础组件 |
FrameQueue<T> + AVSync 单元测试全绿 |
✅ |
| 3 | 解复用 |
DemuxThread 按流索引分发包到队列 |
✅ |
| 4 | 解码层 | 视频 + 音频解码线程独立工作 | ✅ |
| 5 | 渲染与同步 |
VideoRenderer 音频时钟驱动同步渲染 |
✅ |
| 6 | 完整播放器 | 进度条 / 音量 / 全屏,端对端播放 | ✅ |
| 7 | 硬件加速 | D3D11VA 解码,CPU 占用明显下降 | ✅ |
| 8 | 视频滤镜 | 实时亮度 / 对比度 / 饱和度 / 水印预览 | ✅ |
| 9 | 推流 | RTMP / SRT / HTTP-FLV 多协议推流 | ✅ |
| 10 | 视频剪辑器 | 自由剪切,帧精确重编码导出 | ✅ |
| 11 | 低延迟推流 | HTTP-MPEG-TS + mpegts.js,延迟 ≤ 600ms | ✅ |
| 12 | 剪辑增强 | 浏览剪切 / 多段剪切 / 视频合并 | ✅ |
| 13 | 音频混合 | 本地音频 / 实时录入,可调比例叠加导出 | ✅ |
当前版本:v1.2.1,所有已规划阶段均已完成。
| 层 | 技术 |
|---|---|
| 语言 | C++17 |
| UI | Qt 5.14.2 |
| 音视频 | FFmpeg 4.x(vcpkg) |
| 硬件解码 | D3D11VA |
| 视频编码 | libx264 / h264_nvenc |
| 音频编码 | AAC(FFmpeg 内置) |
| 推流容器 | MPEG-TS / FLV |
| 浏览器播放 | mpegts.js / flv.js |
| 构建 | CMake 3.16+,MSVC 2017 x64 |
| 测试 | Qt Test |