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端

评论