音视频系列4:rtsp播放

1. rtsp vs rtmp

现代浏览器不支持rtsp、flash也不支持rtsp,目前的CDN也都是基于RTMP的,开发个应用必须要转码;其次rtsp流的UDP包丢失概率很大(拉流下来经常会有损坏),而rtmp是基于tcp的可靠传输层协议,效率高速度快还稳定。
所以吧,自己用的话,摄像头还是选rtmp流的,省的折腾。

2. rtsp妥协方案

(1)转RTMP:ffmpeg + nginx(带rtmp插件)。测试延时普遍在1-3秒。
(2)转HLS:ffmpeg + nginx,服务器软件将接收到的流每缓存一定时间后包装为一个新的TS文件,然后更新m3u8文件。m3u8文件中只保留最新的几个片段的索引,以保证观众任何时候连接进来都会看到较新的内容,实现近似直播的效果。延迟比rtmp的方案要久。
(3)转webRTC:参考https://github.com/deepch/RTSPtoWebRTC,很简单。
(4)插件方案:可以用vlc插件和quicktime插件,不过用户体验不佳,不考虑了。
(5)使用nvr:可以使用摄像头服务商提供的nvr,或者自己使用easyNVR之类的搭建一个nvr服务器,然后直接调用接口。
(6)使用websocket协议:通过将rtp负载的数据包解复用后打包成切片文件发送与http协议方式类似主要在传输协议上不同与http方式在传输上占有一定优势。参考https://github.com/kekeqy/ke-rtsp,用起来还不错。

猜你喜欢

转载自blog.csdn.net/kittyzc/article/details/107627611