![b7c227f5aa6e8621334a3eec6aff08f5.png](https://i-blog.csdnimg.cn/blog_migrate/4b3ad75437fc9b4217a6d7625378799f.jpeg)
上图是server的视频传输并显示到前端的流程。
在之前的硬切割无法满足实际需要的情况下,当前的软切割方案是将 rtsp 流存储为mp4文件,点播时先将已有的mp4文件转码为流,然后通过流分发协议进行视频网页播放,本文主要描述如何解协议,即对流分发协议的选取。
经过反复比较,解协议通用的几种方案如下:
1、将RTSP视频流通过 ffmpeg 切割为 ts 文件和 m3u8 索引文件,在 h5 上直接使用 video.js 标签播放视频
2、将RTSP视频流转换为RTMP视频流,播放方法有:
- 使用 http-flv 播放RTMP视频流
- 将RTMP/RTMFP包装为H5, 通过 Java Script wrapper 播放
- 使用 Flashplayer 播放RTMP/RTMFP视频流
3、网页播放 RTSP 视频流
- 插件方案(网上有很多,但是该方案被我排除了)
- 无插件方案
- webRTC
- websocket
4、使用 WebAssembly 将 ffmpeg 编译到JS代码中,从而完成FTSP在线播放
以下是对各个协议的对比:
HLS
- 应用层协议,基