现在越来越多的摄像头开始支持H.265,因为H.265相比H.264压缩更高,网络传输消耗的资源更少,并且画质更清晰,但是H.265在浏览器中却并不普及,虽然2022年 9 月份,Chrome 发布 M106 版本,开始支持硬件解码,但是WebRTC 并不支持直接传输 h265 视频流。

下面介绍两种用的比较多的方案:

1.ffmpeg +flvjs + websocket + node

原理:利用ffmpeg(开源)把RTSP转码成FLV,用 websocket 传输FLV流,最后用 flvjs(bilibili 开源)在浏览器播放。具体的技术细节可以自行搜索。

效果:延迟2秒以上,播放多路的时候比较占用CPU资源,并且存在卡顿和花屏的情况,要求不高的非商业可以使用。

2.猿大师播放器,官网:http://www.yuanplayer.com/

原理:通过猿大师提供的内嵌网页专利技术,底层调用VLC控件可实现在Chrome、Firefox、Edge等高版本浏览器中低延迟、多路同时播放RTSP实时视频流。

效果:因为调用的是VLC控件播放,和用VLC桌面播放器直接播放效果是一样的,VLC默认缓存是1000,所以延迟是1S左右,如果要降低延迟可以通过修改降低缓存来实现,最低可以到300毫秒左右,同时可以播放20路以上视频不卡顿,适合对延迟要求高的场景,如交通、公安、消防等

多路播放视频效果:

低延迟效果视频效果:

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐