直播技术怎么样,直播技术原理及平台解析?

随着Web 2.0 的普及以及移动互联网技术的发展,各种视频分享、流媒体直播类型的服务应运而生,例如在线教育、我们会发现今年由于疫情的影响各大学校延迟开学,学生们不得不在家远程上课 。各大企业因为疫情影响在家远程开会,各种互联网摄像头可以让你随时随地看到家里的动态,那么你知道这种直播技术它背后的原理吗?如果你想了解直播技术的背后原理,欢迎继续阅读,我将带你揭开直播技术的神秘面纱 。

直播技术怎么样,直播技术原理及平台解析?

文章插图
认识直播技术背后的传输协议
直播技术背后是由多种基于 IP 网络的传输协议组成,统称为流媒体网络传输协议,不同的传输协议应用的场景不一样,通过这些传输协议对数据进行封装后传输,尽可能的保证音视频的数据质量和延迟:
RTMP (Real-Time Messaging Protocol,缩写RTMP)协议,他最早是由Macromedia为通过互联网在Flash播放器与一个服务器之间传输流媒体音频、视频和数据而开发的一个专有协议 。后来这家公司被Adobe 收购,随后这个协议也已发布了不完整的规范供公众使用 。由于其延迟相对较低被广泛的使用在各种直播平台上 。比如游戏直播、美女直播、电视直播、在线教育等 。RSTP 协议,这种协议一般应用在各种安全监控摄像头上,比如各种家用的互联网摄像头,RTSP(Real Time Streaming Protocol)实时流协议,RTSP协议利用推式服务器(push server)方法,让音视频浏览端,发出一个请求,网络摄像机只是不停地向浏览端推送封装成RTP分组的音视频编码数据,网络摄像机可以用很小的系统开销实现流媒体传输 。HTTP(HyperText Transfer Protocol)超文本传输协议,网络摄像机通过HTTP协议提供Web访问功能,很方便地将音视频数据经过复杂网络传输,但实时音视频支持很不理想 。比如苹果公司开发的HTTP Live Streaming(缩写是HLS)就是基于 HTTP 协议来实现的流媒体网络传输协议 。它的工作原理是把整个流分成一个个小的基于HTTP的文件来下载,每次只下载一些 。当媒体流正在播放时,客户端可以选择从许多不同的备用源中以不同的速率下载同样的资源,允许流媒体会话适应不同的数据速率 。在开始一个流媒体会话时,客户端会下载一个包含元数据的extended M3U (m3u8) playlist文件,用于寻找可用的媒体流 。HLS只请求基本的HTTP报文,与实时传输协议(RTP)不同,HLS可以穿过任何允许HTTP数据通过的防火墙或者代理服务器 。它也很容易使用CDN来传输媒体流 。但是其延迟相较于 RTMP 会比较高 。
那通常我们所看到的各种直播平台都是基于 HLS 或 RTMP 进行的,一般情况下移动端会使用 HLS,兼容性比较好,而 PC 端则使用 RTMP 协议 。
直播技术怎么样,直播技术原理及平台解析?

文章插图
RTMP 是怎么工作的?
播放一个RTMP的流媒体需要经过以下几个步骤:
RTMP连接都是以握手作为开始的 。建立连接阶段用于建立客户端与服务器之间的“网络连接”;建立流阶段用于建立客户端与服务器之间的“网络流”;播放阶段用于传输视音频数据 。
握手(HandShake)
一个RTMP连接以握手开始,双方分别发送大小固定的三个数据块:
建立网络连接(NetConnection)
建立网络流(NetStream)
播放(Play)
播放流
直播技术怎么样,直播技术原理及平台解析?

文章插图
如何搭建一个直播服务?
搭建一个直播服务的方式有很多种,以 nginx 为例,你可以在编译 nginx 的时候加入 nginx-rtmp-module 模块来实现 RTMP\\HLS 等实时流,也可以使用类似SRS这样的开源软件来实现,下面我将以 nginx 为例来实现一个直播服务器,如果你是使用 nginx,可以参考 。