流媒体背景
常见的流媒体协议解读:
- RTSP(real time streaming protocol)
基于udp协议,实时性比较好、一般用于视频会议。
- RTMP(real time messaging protocol)
RTMP属于私有协议,被Adobe Systems收购。播放RTMP需要flash插件。
RTMP工作在TCP之上,默认使用端口1935
RTMP协议中,视频必须是H264编码,音频必须是AAC或MP3编码,且多以flv格式封包。
- HTTP-FLV
RTMP和HTTP-FLV的视频格式都是flv格式的,只是传输协议而不同。RTMP是tcp的传输协议,而HTTP-FLV是http长链接的传输协议。
HTTP-FLV就是对RTMP协议的封装,相比于RTMP,它是一个开放的协议。因此他具备了RTMP的实时性和RTMP不具备的开发性,而且随着flv.js出现(感谢B站),使得浏览器在不依赖flash的情况下,播放flv视频,从而兼容了移动端,所以现在很多直播平台,尤其是手机直播平台,都会选择它
- HLS(HTTP Live Streaming)
- WebRTC
注意事项
flv.js延迟问题
累积延迟:flv.js有累积延迟问题,它在播放的过程中,会越来越落后于视频流的进度,这里应该定期的清空MSE的缓冲。
flv.js的并发
chrome浏览器对于同一个域名的并发连接是6路,而HTTP-FLV是基于HTTP协议的长连接,一般不注意的话,很容易误以为流媒体服务器有什么并发上的性能问题,其实这是浏览器的锅,这里建议使用多域名或是多端口 来避开浏览器对单域名的并发数的限速。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!