RTMP 与 RTSP 是比较常见的两种流媒体协议。
流媒体协议是一种用于通过 Web 传递多媒体的协议。
每次观看直播或点播视频时,背后的技术就是流媒体协议。
RTMP
英文全称:Real Time Messaging Protocol
中文意思:实时消息协议
底层协议:TCP
应用级视频流协议
视频编解码器:H.264
音频编解码器:AAC
延迟:3 - 30 秒
RTMP 最大优点 是可以在服务器和客户端服务器之间保持稳定的连接,
无论用户的互联网连接质量如何,它都可以无缝低延迟进行流媒体传输。
这个技术主要通过将数据流分成相等的小部分并将它们顺序传输到接收设备,然后将它们重新组合成视频流来实现的。
RTMP 最大的缺点 是它与 HTML5 播放器不兼容,这样的话必须使用另一种协议,例如 HLS来传输视频文件到达用户的设备,此外,RTMP 容易受到带宽问题的影响。
RTSP
英文全称:Real Time Streaming Protocol
中文意思:实时流协议
底层协议:TCP 和 UDP
网络控制协议
视频编解码器:H.265
音频编解码器:AAC
延迟:2 秒
RTSP 支持可靠的分段流,这意味着用户可以在仍在下载流的同时继续观看流,Android 和 iOS 设备没有开箱即用的 RTSP 兼容播放器,所以普及度并不高,
但 RTSP 在许多监控 和闭路电视 (CCTV) 应用非常广泛,远程摄像头、在线教育和互联网直播等,都用的比较频繁。
RTMP 与 RTSP 区别
- 延迟
RTMP:3-30秒
RTSP:2-5秒 - 优点
RTMP:低延迟 适应性 灵活性 不需要缓冲
RTSP:低延迟 分段流式传输 - 缺点
RTMP:带宽问题 HTML5 不支持 某些浏览器和设备的兼容性问题 安全性有点低
RTSP:HTTP 不兼容 依赖于其他协议
RTMP 与 RTSP 该如何选择?
IP 摄像机、物联网设备,那么选择 RTSP准不会错
第三方流媒体应用,那么选择RTMP准不会错
m3u8准确来说是一种索引文件。
使用m3u8文件实际上是通过它来解析对应的放在服务器上的视频网络地址,从而实现在线播放。
使用m3u8格式文件主要因为可以实现多码率视频的适配,视频网站可以根据用户的网络带宽情况,自动为客户端匹配一个合适的码率文件进行播放,从而保证视频的流畅度。
现在的视频网站采用的是流媒体传输协议,就是将一段视频切成无数个小段,这几个小段就是ts格式的视频文件,一段一段的网站上播放。
这样做的好处是观看更加流畅,因为他会根据网络状况自动切换视频的清晰度,在网络状况不稳定的情况下,对保障流畅播放非常有帮助。
如果直接加载mp4或者flv文件,当文件很大时,比如一集电影2个小时,1080p的可能有2G的大小,直接加载会很慢,如果进行切片,这样只需要加载m3u8文件,根据m3u8里的索引进行播放,这种加载会很快。
flv是流式文件
flv文件可以边传输边解析
flv文件可以一边下载一边观看,
flv格式不用全部下载完毕,就支持解析观看等