You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
SoftwareEngineering/设计/流媒体平台设计.md

1.3 KiB

流媒体平台

流媒体底层需求

  • 支持第三方接入开发
  • 支持内部产品平台
  • 支持跨平台(linux、windows、Android、ios...)
  • 流媒体输入源
    • 视频文件
    • 编码芯片
    • camera
    • 网络流:rtmp、rtsp、hls、udp、webrtc...
    • 其他源
  • 流媒体输出
    • 网络推流:rtmp、rtsp、hls、udp(ts)、webrtc...
    • Ndi
    • 本地播放器
    • 视频文件存储
    • hdmi
  • 编解码:软编码和硬编码
    • 视频:h264、h265
    • 音频:aac ...
  • 流媒体服务器:设备部署,云服务器
  • 编译支持
    • 单独编译:适合独立开发
    • 集成编译:适合集成到产品开发

中间层

  • Lua framework (kiloview)
    • 包装底层sdk,提供应用层接入api
  • Java framework
    • TODO

应用层

  • 开发方式
    • 接入流媒体底层sdk(不需要lua环境的)
    • 接入中间层sdk (需要lua环境的)

流媒体底层设计

  • 独立仓库、独立编译、提高开发和调试效率
  • 设计成sdk,cmake构建跨平台编译系统
  • 提供api接入文件、和接入demo

流媒体底层sdk化实施步骤

  • 讨论需求
  • 业务抽象、定义接口,接口文档,审核接口
  • 编码
  • 编写测试代码
  • 测试
  • 项目接入