网络视频背后的技术

前段时间看了一个5岁~90岁的人生焦虑,其实焦虑源于在这个快速的社会,对面临问题感觉到束手无措、对未知知识的焦虑。但解决完一个焦虑后,发现我们所谓的知识就是另一个领域的常识。
今天我理一下视频播放中,如何实现播放操作,解决视觉领域的一个常识问题。

一、推流

将录制视频进行采集编码美颜处理后推送给直播服务器进行处理。将视频推送到服务器的这一过程就叫做推流。

二、拉流

服务器对传送过来的视频进行处理例如转码录制截图鉴黄后将视频分发给正在观看直播的客户(播放器)。服务器将视频分发给客户端的这一过程就叫做拉流咯。

三、推流和拉流的关系

推流端和拉流端是1->N的关系,对于每一路推流,可以同时存在多个拉流端,即推流可以复用。当多个用户请求同一资源(如同一摄像头)时,只需要推一路流即可,这时候每个用户的拉流地址rtmp相同。推流和拉流之间需要流媒体服务器作为桥梁,负责实时流的转发工作,例如使用的时Nginx+rtmp module。

image.png

如果多个用户需要播放同一个实时流数据,那么理想情况下,推流端的数据应该可以复用,也就是说,推流端只需要推一路流,供多个播放终端使用。此时推流端和播放端是一对N的关系。

image.png

如果播放用户很多,推流端和播放端数量大,只靠一台流媒体服务器转发数据肯定不行。这时候需要多台流媒体服务器协同工作,当有多个流媒体服务器时,就会出现一个问题:当用户请求实时流,该如何为它分配流媒体服务器呢?此时,就会引入另外一个概念:负载均衡。当有多台流媒体服务器时,我们需要通过某种策略去计算,得出最适合的流媒体服务器,比如找出当前负载量最小的服务器,给用户使用。


image.png

你可能感兴趣的:(网络视频背后的技术)