如何搭建一个视频直播服务器

2018-06-26 10:36:07 +08:00
 liu826250634

现在需要有一个功能,将其他地方摄像头的画面实时传输到前端页面,类似市面上的直播软件吧,并发量并不高。搜索了文档,但是大多数都是使用 nginx + rtmp 模块实现的。我搭建了一个测试,延时太高无法接受。所以想请教大神,有什么实时性好的视频服务器搭建攻略。跪求跪求!

19087 次点击
所在节点    程序员
47 条回复
hahastudio
2018-06-26 18:07:59 +08:00
摄像头+物理机+远程桌面?
这个延时应该很低
explicit
2018-06-26 18:27:17 +08:00
推荐用第三方服务,比如:七牛云之类
explicit
2018-06-26 18:32:11 +08:00
自己玩玩无所谓的,如果打算商业化,建议多看看中国政府对于直播行业制定的法律法规.
explicit
2018-06-26 18:37:16 +08:00
"类似市面上的直播软件吧,并发量并不高",高可用的视频直播,点播服务主要靠的是 CDN,没有资金实力的小公司,自己搞 CDN 划算吗?
CFM880
2018-06-26 18:38:17 +08:00
商用自建的话,考虑一下 wowza
qiayue
2018-06-26 18:41:03 +08:00
jsmpeg.com 了解一下
Geekgogo
2018-06-26 18:42:22 +08:00
我们公司正好也在做这个,用的是 rtmp+nginx 方式,由于 hls 延迟太高,基于 videojs 直接在前端页面播放 rtmp 流,但是很多浏览器都没办法正常播放,正在找方法解决。。。
chinvo
2018-06-26 18:46:13 +08:00
nginx-rtmp-module
lyver
2018-06-26 19:55:48 +08:00
一个人来说开发一套直播系统是非常困难的,不仅要精通音视频技术还得大量的成本。
自建 CDN 分发的费用是非常高的,建议去阿里云租,服务器+CDN 走 RTMP 协议即可,一般延迟在 3S 左右。需要有一定开发能力。
我司保利威,是做直播 SAAS 平台的,接口完善,专人对接,要满足你的这个需求,非常简单,延迟和阿里差不多。
主要还是看自己的需求去选择,如果团队想要搭建直播平台,没有丰富的开发经验,可以考虑我们这类 SAAS 服务商,把前端代码嵌入就行了,节省项目周期。
realpg
2018-06-26 20:27:33 +08:00
闭路实时监控系统嘛
海康自身就有完整方案 也有异地调取的方案 为啥不采购完整了还自己开发
tinywhale
2018-06-26 21:21:39 +08:00
WebRTC 万能,如果你能把服务器框架和摄像头视频流对接起来的话
likuku
2018-06-26 21:36:58 +08:00
低延时可没那么简单,最基本的,就是你摄像头本身编码和推流能力,是否可以作到 2s 以内缓冲就可以稳定工作,

其次,推流的协议是否可以支持达到那么低的延迟(至少先保证摄像头到最近的视频服务器这段)
twistoy
2018-06-27 00:06:44 +08:00
srs 性能完全足够,控制一下缓存的大小,延迟可以控制的很小
scnace
2018-06-27 00:30:56 +08:00
我之前玩过 用了 Go 写的流媒体服务器 joy4
sunzongzheng
2018-06-27 01:40:07 +08:00
我搭过, 公网服务器 2s 延迟有点困难,带宽也是问题
iamsee
2018-06-27 09:17:49 +08:00
@liu826250634 要延迟低别用 hls,hls 可以作为切片点播服务器,还是 rtmp 延迟低
iamsee
2018-06-27 09:18:26 +08:00
最主要的是带宽问题,如果是内网还好说,带宽费折腾不动
xiaoheijw
2018-06-27 09:48:06 +08:00
刚好,前阵子,也有这样一个需求,把摄像头内容推给前端,一开始使用的是 hls,延迟大概是 1 分钟,之前换了 srs,延迟大概是 8s,最后干脆用原生的 ffserver,延迟大概是 2s,当然以上是内网环境。也试过用阿里云的直播推流,但阿里云也大概延迟是 5s。如果你有公网需求的话,建议还是用大厂的产品。
liu826250634
2018-06-27 10:13:57 +08:00
@realpg 我们有海康的摄像头。但是不能直接调用,需要通过 CS 端转发。如果是能直接调用的话,通过控件延迟很低。
还涉及不同的摄像头,没办法统一,所以才想着搭一个服务器转发。
M4ster
2018-06-27 10:34:24 +08:00
之前自己折腾玩过,服务端就用的 SRS,PC 录屏用的 OBS,播放可用 flv.js 。

SRS: https://github.com/ossrs/srs/wiki/v2_CN_Home

SRS 提供了丰富的接入方案将 RTMP 流接入 SRS,包括推送 RTMP 到 SRS、推送 RTSP/UDP/FLV 到 SRS、拉取流到 SRS。
SRS 还支持将接入的 RTMP 流进行各种变换,譬如将 RTMP 流转码、转发给其他服务器、转封装成 HTTP-FLV 流、转封装成 HLS、转封装成 HDS、录制成 FLV。
SRS 包含支大规模集群如 CDN 业务的关键特性,譬如 RTMP 多级集群、VHOST 虚拟服务器、无中断服务 Reload、HTTP-FLV 集群。
此外,SRS 还提供丰富的应用接口,包括 HTTP 回调、安全策略 Security、HTTP API 接口、RTMP 测速。SRS 在源站和 CDN 集群中都得到了广泛的应用 Applications。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/465889

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX