流媒体知识记录

流媒体背景

常见的流媒体协议解读:

  • 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)

是一个由苹果公司提出的基于HTTP的流媒体网络传输协议。
HLS协议由三部分组成:HTTP、M3U8、TS。这三部分中,HTTP 是传输协议,M3U8 是索引文件,TS 是实际的音视频文件。
.m3u8 文件,其实就是以utf-8编码的m3u文件,这个文件本身不能播放,只是存放了播放信息的文本文件。
HLS的实时性较差,不过优势是H5、IOS、Android都原生支持。

  • WebRTC

注意事项

flv.js延迟问题

累积延迟:flv.js有累积延迟问题,它在播放的过程中,会越来越落后于视频流的进度,这里应该定期的清空MSE的缓冲。

flv.js的并发

chrome浏览器对于同一个域名的并发连接是6路,而HTTP-FLV是基于HTTP协议的长连接,一般不注意的话,很容易误以为流媒体服务器有什么并发上的性能问题,其实这是浏览器的锅,这里建议使用多域名或是多端口号来避开浏览器对单域名的并发数的限速。

来源:吉了个吉

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年1月9日
下一篇 2021年1月9日

相关推荐