obs相关资料

常见流媒体协议

RTMP: 既可以用来推送又可以用来直播,其核心理念是将大块的视频帧和音频帧拆分,然后以小数据包的形式在互联网上进行传输,而且支持加密, 基于TCP

HLS: 苹果公司提出的基于HTTP的流媒体网络传输协议。其工作原理是切片式传输,把直播流切成无数片,用户在观看视频时,每次客户端可以只下载一部分。适合移动端使用

FLV: Adobe推出的私有协议,走HTTP,原本只能用flash播,但是B站的 flv.js 弥补了这个缺陷

以上三种协议:  腾讯云,阿里云都是三种协议的播放 但只支持RTMP协议推流

 腾讯云直播流播放SDK(支持IOS,ANDROID,IOS,H5播放器)

 阿里云直播流播放SDK

开源 rtmp库其实有不少 参见 https://github.com/topics/rtmp 哪怕把上面的条件限定到java依然还是有很多的(其中不少是大厂或者收费的了…)

支持以上三种的播放器就更多了,常见的有 谷歌的shaka-player, videojs, flv.js

OBS(Open Broadcaster Software)

https://github.com/obsproject/obs-studio 目前使用最广的推流客户端 全平台 完全开源 完整生态 支持大量插件

同类软件的比较英文版

国内改版的obs

https://github.com/bilibili/biliobs

https://github.com/alibaba/tblive


streamlabs-obs

基于ts,vue的开源osb客户端 github地址 项目主要使用的技术 vue, node, typescript, electron, 官网 API地址

obs-studio-node 用于封装底层OBS的相关接口

streamlabs-beaker 封装的UI组件


根据上面obs-node库用原生JS做的例子

https://github.com/qlteacher/obs-example


直播平台架构

爆炸式增长的斗鱼架构平台的演进

快手直播平台演进之路

斗鱼:如何打造一个高性能、高可用直播系统架构

熊猫直播技术架构演进

AWS 案例研究:虎牙直播

我们为什么使用DASH

OBS源码解读


系统架构脑图