有办法在不经过服务器转码直接在浏览器播放摄像头 rtsp 流吗

2023-04-04 10:04:14 +08:00
 noobma

需求是有一个海康的摄像头,需要在浏览器预览画面。

现在是内网弄了一台服务器把 rtsp 转成 webrtc 去播放的,但是这样上线的时候就需要专门开一台转码推流的服务器,而且带宽肯定也要几十 M 起步,一个月最少估计也要几千块。

我看 ffmpeg 有 webassembly 版本,就是能不能在前端直接通过 ffmpeg 去转码,然后前端直接播放呢。

有没有相关实践的大佬给点建议🙏

4959 次点击
所在节点    程序员
37 条回复
newmlp
2023-04-04 10:22:07 +08:00
rtsp 建立在 tcp 或 udp 协议上,浏览器无法访问 socket ,所以不能
opengps
2023-04-04 10:23:58 +08:00
把运行浏览器的电脑一并当作服务器用呢?有什么困难吗
lower
2023-04-04 10:26:18 +08:00
vlc 插件 搞起;就是只能 ie 内核😂
learningman
2023-04-04 10:27:14 +08:00
brader
2023-04-04 10:27:41 +08:00
我有几个构想,看你能不能接受:
想法一:用 GO 之类的语言写一个简单的客户端.exe 软件,接受数据然后并开个端口为客户端服务,每次就让客户点击启动一个这个软件服务就好。
方法二:写一个浏览器扩展,让客户安装这个扩展。
op351
2023-04-04 10:28:12 +08:00
做插件应该是可行的
我记得很早之前监控厂商就有在 c 端装插件 然后实现在浏览器里看摄像头流的功能
纯粹的的 b 端不装插件应该不行 浏览器只是浏览器 不是完整的 node 环境
leetom
2023-04-04 10:54:21 +08:00
关注一下,我们目前是在客户端安装 VLC 然后关联协议,点击按钮打开本地播放器播。
我们系统是内部使用,所以这样没啥问题。

楼主可以看一下摄像头有没有辅流,一般辅流都是支持 http 协议的
xhcnb
2023-04-04 11:06:39 +08:00
关注一下, 直接访问摄像头的 rtsp 也需要带宽吧, 实在不行弄一个树莓派和摄像头绑一起吧
superliy
2023-04-04 11:13:03 +08:00
大华的录像机有 web 管理界面的,web 管理界面可以看视频,我看了一下实现是 rtsp on websocket ,理论上是可以做到的,只是摄像头是否支持 rtsp on websocket 就不知道了,也可以买个录像机
si
2023-04-04 11:19:05 +08:00
不用插件和软件,前端应该不能直接使用 TCP 或 UDP 吧。
pecokie
2023-04-04 11:28:21 +08:00
海康的摄像头支持 GB28181 ,理论上通过 SIP 信令播控制放后,浏览器通过 WebRTC 接受 UDP 码流然后前端来解码播放
xwayway
2023-04-04 11:48:33 +08:00
姑且不论通信协议问题,就单说端到端的通信,如果不是在同一个局域网内,是不是得有个公网地址,这样的话,一台服务器也是必不可少的。
yekern
2023-04-04 11:49:26 +08:00
在很久很久很久很久以前, IE 时代有一款播放器支持浏览器播放 他的名字叫 Realplayer 支持 rtsp 和 rmvb 等常见格式
lwep
2023-04-04 11:53:47 +08:00
有的摄像头能推 RTMP 的流,似乎 RTMP 能浏览器直接播放
thinkershare
2023-04-04 12:00:09 +08:00
这是一条死路,别折腾了,靠谱就转换为 WebRTC, 不靠谱就用本机插件(海康官方就是这么干的), 延迟没要求就是要 hls ,所有基于裸 tcp 协议的浏览器上都没戏(兼容性,稳定性都搞不定), 我以前浪费过一个月在这个上面,如果行得通,海康官方就已经提供了,我和海康的技术人员沟通过。
yplam
2023-04-04 13:01:06 +08:00
摄像头指定要海康的话可以卖多一套设备丢客户内网做 rtsp 转 webrtc ,打洞成功就不耗流量,打洞不成功按流量收维护费也很合理
bv
2023-04-04 13:08:42 +08:00
@newmlp 通过 websocket 承载 rtsp 流呢?
crazytudou
2023-04-04 13:30:55 +08:00
之前也是海康监控遇到这需求,没找到能直接在浏览器播放 rtsp ,我也是专门搞了台服务器转成 rtmp ,ffmpeg+jsmpeg ,websocket 方式在 web 客户端播放。
吐槽下海康给的 SDK 是真的垃圾,web 用插件只能限 ie 用,没插件也限制浏览器,有等没。
newmlp
2023-04-04 13:34:20 +08:00
@bv 可以,但是还是需要一个中间服务把 tcp 或 udp 转成 websocket
lovelylain
2023-04-04 13:43:29 +08:00
浏览器直接播放 rtsp 是做不到的,必须转码,可以转 webrtc 也可以 mse jsmpeg 等,各有优缺点,mse 基于 websocket 简单方便但是不支持 ios ,jsmpeg 是图片没有声音,webrtc 数据走 udp 复杂一点。都不用自己开发,跑个 go2rtc 就行。

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

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

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

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

© 2021 V2EX