html5 + websocket_rtsp_proxy 实现视频流直播

1      方案介绍

web页面上播放RTSP视频流,通常可以采用“jwplayer +ffmpeg+red5”的方案,由于这种方案首先将RTSP协议对应的视频流转码成RTMP协议的视频流,因此延迟通常会很高。为了降低直播的延迟,最好直接能直接在页面上播放RTSP协议的视频流。

https://github.com/Streamedian/html5_rtsp_player提供了一种“html5_rtsp_player + websock_rtsp_proxy”的技术方案,可以通过html5的video标签直接播放RTSP的视频流。

整个架构如下图所示,分为服务器端和浏览器端两部分。

服务器端主要由“wsoc_rtsp_proxy”构成,这是一个支持RTSP协议的webscoket代理服务器。它通过webScoket协议与浏览器端建立链接,将视频源发送过来的RTSP控制报文和RTP数据报文转发到浏览器端;

浏览器端主要由“html5_rtsp_player”视频播放器组成,它的核心部分是实现了“RTSP客户端侧的协议规范”的“Javascript library”。播放器通过websocket协议与服务器端建立连接,接收“wsoc_rtsp_proxy”转发来的流媒体数据,然后调用“Javascript library”对视频流进行解码,最终使用HTML5的“video”标签实现视频播放。

目前这种方案对视频的编码格式、音频的编码格式、流传输协议以及浏览器等都有一定要求,具体如下图所示:

 

2      安装指南

2.1        浏览器端安装说明

1.      需要安装nodejs 和npm;

2.      npm方式下载安装html5_rtsp_player

a)       依赖安装npm命令

b)       依赖安装git命令

3.      安装rollup命令

a)       依赖安装npm命令

4.      客户端js 脚本生成(proxy代理服务器地址配置)

执行rollup命令

a)       依赖安装bp_event

b)       依赖安装bp_logger

c)       依赖安装bp_statemachine

d)       依赖安装rollup-plugin-buble

e)       依赖安装rollup-plugin-alias


2.2        服务器端“wsoc_rtsp_proxy“安装说明

  服务器端的“wsoc_rtsp_proxy“有“License”版本和”免费”版本两种。

  • License版

通过官网“ http://streamedian.com” 上的邮箱和外国友人沟通,可以购买具备License版的“wsoc_rtsp_proxy “。成功付款以后,外国友人会通过邮箱将对应的”产品”、license以及使用说明一起发送过来。

这个版本的安装是很方便,具体的安装说明,如下所示:

  •  免费版

免费版在性能上有如下的限制:

“免费版”在ubuntu系统下的安装是比较方便的,然而在“Centos”系统上的安装比较麻烦,具体安装分如下几步:

1.      gcc相关的编译器

2.      编译安装gcc5+

a)       依赖安装gcc相关的c编译器

3.      编译安装boost

a)       依赖gcc5+

b)       依赖安装(bzip2-devel)

c)       依赖安装(python-devel)

4.      dpkg 方式安装streamedian_proxy.deb (依赖安装dpkg命令)


3     参考

1.   官网

https://streamedian.com/ 

https://github.com/Streamedian/html5_rtsp_player

2.   boost装参考

http://blog.csdn.net/sinat_23857245/article/details/45225147

http://blog.csdn.net/ahbbshenfeng/article/details/52077393

3.   gcc安装参考

http://www.linuxidc.com/Linux/2016-03/129695.htm

4.    nodejs安装和npm参考

https://nodejs.org/en/download/package-manager/#enterprise-linux-and-fedora

http://blog.csdn.net/xiao_jun_0820/article/details/50838185 

5.   rollup 安装参考

https://rollup.bootcss.com/

https://rollupjs.org/#getting-started-with-plugins


  • 8
    点赞
  • 73
    收藏
    觉得还不错? 一键收藏
  • 20
    评论
回答: WebSocket直播是一种实时传输视频数据的方法,通过使用WebSocket协议进行数据传输,将主播的视频数据实时推送到服务端,再由WebSocket将数据推送给用户观看。这种方法可以实现实时的直播效果,并且可以支持弹幕功能。在开发中,可以使用Spring Boot集成WebSocket来实现数据传输,也可以使用Netty进行自定义开发。具体实现可以参考项目源码\[1\]。另外,还可以使用JSMpeg这个JS视频解码器来播放WebSocket直播\[3\]。这种方法可以在浏览器中实现直播功能,但需要注意不同浏览器可能对摄像头函数的调用方式不一致,可能会导致无法启动\[1\]。 #### 引用[.reference_title] - *1* *2* [websocket实现实时直播](https://blog.csdn.net/weixin_44480167/article/details/124513129)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [vue+播放直播视频(websocket的文件)](https://blog.csdn.net/qq_41619796/article/details/121161232)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值