基于 Node.js 和 WebSocket 协议的高性能分布式视频直播架构
 发布于 11 年前  作者 vecio  43462 次预览  最后一次回复是 10 年前  来自 分享 

初学 Node.js,用 WebSocket 协议实现了一个视频直播服务器,性能果然牛,只有区区 1000 行代码,测试在阿里云最便宜的服务器上轻松扛住几十人同时直播压力

https://blog.shou.tv/the-technology-behind-shoutv

Shou.TV Broadcasting Architecture

其实是来发贴求人才的,本人实在不精通,求大牛继续完善。:D

15 回复
ravenwang

这个性能跟Node没多大关系吧?流媒体我不怎么懂,怎么看Node只是处理了一个类似负载均衡的东西,流媒体播放就没走Node啊

vecio

@ravenwang Node.js 是接受视频流的服务器,同时也负责转为 HLS,咋没关系。

robustfengbin

求源码。非常感谢!

robustfengbin

我愿意贡献点力量,懂些rails和nodejs,java.求QQ 楼主。

ravenwang

@vecio 哦哦Sorry,没仔细看,流媒体服务器也是Node的

sokos

@vecio Node.js处理流媒体方面是怎么做的?

vecio

@Sokos 没做过多处理,用的 ws 模块,直接接收客户端通过 WebSocket 发过来的 TS 文件,然后通过 C++ 调用 FFmpeg 进行的 HLS 分片

vecio

@robustfengbin 现在还没有开源,主要是开源了也没啥用,不是标准协议,准备做的完善一点,客户端和服务器端都达到开源的标准了再一块开放。现在是想找有兴趣的牛人加入公司,一起进步 :D

TadyCao

请问SLSP是基于HTTP的吗,为什么没有直接选择http库而选择websocket?我目前在做的基于http的直播系统,发现http.response每隔14分钟左右会中断,你遇到过吗?

vecio

@TadyCao 其实一开始也想用 HTTP,由于用 nginx 作代理,发现它喜欢一直把整个 HTTP 的 body 都缓存完了再发给应用。

而且,一般来说 HTTP 需要知道 Content-Length,感觉上也不太像给流媒体这种使用的,而且也不是双向的

sokos

APK、Google Play 下载不了啦?

vecio

@sokos 要先加入 https://shou.tv/testing 上这个 Google+ 测试组才行

dphdjy

在意延迟问题 我这边一直在30s以上 而且卡顿严重

highsea

不明觉厉, 先默默的看下 crtmp server 协议