声网下一代视频引擎架构探索与实践
如果无法正常显示,请先停止浏览器的去广告插件。
1. 声网下一代视频引擎架构探索与实践
李雅琪
声网下一代SDK视频方向负责人
2.
3. • 下一代视频处理引擎的设计目标
• 下一代视频处理引擎的架构设计
• 下一代视频处理引擎实践与应用
4. 日益增长的实时互动业务场景
Live Stream
•
•
直播带货:多机位多视角拍摄
在线教育:多路视频推流
•
•
直播助手:多路视频实时编辑混流
多人互动:云端合流
•
•
高级视频处理功能支持
梯形校正,暗光增强等
5. 差异化的开发者需求
• 追求集成简易度的客户:低代码,快速上线
• 需要高度定制能力的客户:大型客户,业务中台开发者
6. 追求极致的视频直播体验
更大的分辨率 更好的弱网抗性
更高的FPS 更低的资源消耗
7. 下一代视频处理引擎的设计目标
•
•
满足差异化需求
•
灵活可扩展
不同开发者的集成需求 高度可定制的视频处理能力
不通中台业务的开发需求 优雅支撑新业务快速落地
稳定可靠,快速交付
•
性能优越可监控
核心功能可靠稳定 全面提升代码可测性
降低开发人员的心智负担 优化性能,质量数据透明
8. • 下一代视频处理引擎的设计目标
• 下一代视频处理引擎的架构设计
• 下一代视频处理引擎实践与应用
9. 分层与嵌套
满足差异化的开发集成需求
基于业务对象建模
面向业务,隐藏功能模块的组合关系
提高易用性,适度增加API调用约束,减
少集成出错
通过提供不同场景来适配不同业务
•
•
•
基于最小功能模块建模
•
•
满足功能正交性
解耦上层业务,业务是功能模块的组合
10. 分层与嵌套
提升代码质量
Public API
架构风格融入代码
• 目录结构映射嵌套分层模型
• 引导开发者理解设计,预防快速腐化
视频管线
管线接入适配层
功能模块及实现
面向测试设计和开发
• 测试友好的接口设计
• 完善的单元测试和集成测试用例
11. 分层架构满足差异化的开发集成需求
• 分层设计:业务组合 + 核心功能
• High Level API 面向业务提供易用性
• Low Level API 提供核心功能和灵活性
12. Pipe-Filter领域模型
•
•
管线:以视频帧为载体的序列化视频处理
模块:特定功能的视频处理单元
13. Pipe-Filter领域模型
管线可以根据不同的业务需求进行灵活编排
14. Microkernel式核心架构
Core System + Pluggable Modules
15. 在线素质教育:发送视频管线的组合应用场景
• 画板、手写板、键盘拍摄
• 教师人像拍摄
• 屏幕共享
• 多媒体课件
• 背景分割
• 本地录制
16. 积木式搭建多种类型的发送管线
管线可以根据不同的业务需求进行灵活编排
17. 后台媒体处理中心:接收管线的组合应用场景
• 云录制
• 视频鉴黄
• 合流转码
• 低码高清后处理
• Cloud Player
• 旁路推流
18. 积木式搭建多种类型的接收管线
管线可以根据不同的业务需求进行灵活编排
19. 视频管线核心架构灵活可扩展
高度可定制的视频处理能力,优雅支撑多形态业务落地
• 以领域模型为基础的微内核式架构设计
• 模块功能可快速扩展
• 视频处理管线可灵活编排
20. 强大稳定的Core System
从零开始开发一个美颜滤镜?
21. 强大稳定的Core System
固化引擎不变量,提升稳定性
22. 简洁一致的边界模型
降低心智负担,提升研发效能
23. 强大的核心系统+清晰的边界模型 = 快速可靠
稳定可靠,快速交付
• 丰富强大的核心系统,固化引擎的通用核心功能
• 稳定一致的边界模型降低开发者心智负担,提升研发效能
24. 高效的视频数据传递
减少拷贝和CPU/GPU跨越
25. 控制面和数据面分离
控制可以及时响应,控制路径不阻塞数据流转
快速响应频繁的相机操作
图源实时编辑不卡顿
26. 降低资源消耗
适用视频数据的内存池
• 减少频繁内存分配释放,降低CPU
• 支持多种格式视频帧间的内存复用
27. 全链路性能质量数据可监控
28. 性能优越可监控
• 提升视频数据传输效率
• 控制面和数据面分离
• 降低系统资源消耗
• 全链路视频质量监控
29. • 下一代视频处理引擎的设计目标
• 下一代视频处理引擎的架构设计
• 下一代视频处理引擎实践与应用
30. 多人互动场景
在线视频相亲
云端合图快速上线
合图布局和背景图定制
视频中断显示策略
红娘相亲
31. 直播助手
本地视频实时编辑混流
多路摄像头
多路屏幕共享
媒体播放器
远端用户视频
png, jpeg, gif
32. 插件系统
助力RTE生态建设
33. 插件系统
助力RTE生态建设
34.
35.