StreamingCore 项目介绍
是时候驻足整装了
明年的业余时间会集中在这个StreamingCore项目上。进入直播行业也有六七年时间了,这将是我迄今的职业生涯中最重要的一份总结。
如同其名,StreamingCore将是一套直播核心流程的解决方案,集成采集、编码、推流功能,同时支持Android和iOS两端。借鉴FFmpeg的设计思想,StreamingCore也会以模块化架构实现,允许独立使用某一功能模块。同一功能模块,或许会提供多套实现方案,以供比较选择。
暂拟定的功能模块
音频采集模块
- OpenSL ES implementation for Android
- AudioRecord implementation for Android
- Audio Unit implementation for iOS
图像采集模块
- Implementation based on Camera interface for Android
- Implementation based on Camera2 interface for Android
- Implementation based on Virtual Display for Android
- Implementation based on AVFoundation framework for iOS
- Implementation based on ReplayKit for iOS
音频编码模块
- Audio Encoder implementation based on MediaCodec for Android
- Audio Encoder implementation based on AudioToolBox for iOS
视频编码模块
- Video Encoder implementation based on MediaCodec for Android
- Video Encoder implementation based on VideoToolBox for iOS
推流模块
- Streaming by Rtmp Protocol
- Streaming by custom Protocol based on UDP
各个模块将暴露标准化接口,供扩展实现。
我不喜欢Java和Objective-C
或者反过来说,我喜欢Kotlin和Swift。够简洁,够现代化,这就足够了。公司业务已呈现尾大不掉、积重难返之态,更加之KPI当头,相关负责人没有勇气切换到新的开发环境。我已学的Kotlin,我想学的Swift,几无用武之地,这也是我萌生实施此项目的一个重要原因。
同样基于这个技术决定,项目质量无从保证。成品后能否被接入方接受,就更难说了……
大概的开发计划
- 时间周期为一年(2020.1.1——2020.12.31)
- 先Android端全功能,再iOS端