🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
[TOC] > [参考](https://cloud.tencent.com/developer/article/1805057) ## 概述 ## 方案 ### 1.H5 + websocket_rtsp_proxy 实现视频流 Streamedian 提供了一种`html5_rtsp_player` + `websock_rtsp_proxy`的技术方案,可以通过html5的video标签直接播放RTSP的视频流。 ![](https://img.kancloud.cn/94/b0/94b027f0a5345c4553067dbdcfa2b776_1158x454.png) ### 2. RTSP转RTMP,转http-flv,播放端用flv.js播放 flv.js在获取到FLV格式的音视频数据后将 FLV 文件流转码复用成 ISO BMFF(MP4 碎片)片段,再通过Media Source Extensions API 传递给原生HTML5 Video标签进行播放。 flv.js 是使用 ECMAScript 6 编写的,然后通过 Babel Compiler 编译成 ECMAScript 5,使用 Browserify 打包。 flv.js 从服务器获取FLV再解封装后转给Video标签的原因如下: * 兼容目前的直播方案:目前大多数直播方案的音视频服务都是采用FLV容器格式传输音视频数据。 * flv格式简单,相比于MP4格式转封装简单、性能上也占优势,解析起来更快更方便。 ### 3. RTSP转RTMP,转hls,播放端用video.js播放 Video.js是一款web视频播放器,支持html5和flash两种播放方式。更有自定义皮肤,插件,组件,语言还有丰富的选项配置。 ### 4.VLC或者SmartPlayer第三方插件播放 VLC不再多说,几乎做流媒体的开发者都知道,SmartPlayer是大牛[直播SDK](https://cloud.tencent.com/product/mlvb?from=10680) ([Github](https://github.com/daniulive/SmarterStreaming)) 的播放插件,延迟和功能体验更好。 插件形式的优点是无需二次转换,直接通过ActiveX控件的形式播放,延迟非常低,缺点是只支持IE浏览器。 ### 5.RTSP转WebRTC播放 浏览器对webrtc的支持良好,特别是在H264编码方面几个主流的浏览器都已经支持了。webrtc使用SRTP进行媒体数据的传输,那么我们只需要将RTp中的负载数据通过webrtc通道发送给浏览器,而浏览器端只需要通过video标签播放即可,目前RTSP转WebRTC对浏览器的适配比较好,延迟也比较低。