流媒体之推流和拉流

一、推流和拉流

为什么直播现场的信息,用户通过手机或者网站就能很快的看到呢?为什么有时候网络不稳定,直播效果会有延迟呢?现场的视频信号又是如何传到网络呢?

这些所有问题的产生,都离不开视频直播中常说的两个词:推流和拉流。

其实可以简要的理解为推流就是直播端,而拉流就是客户端。

1.1 推流

推流:将直播的内容推送至服务器的过程。即指的是把采集阶段封包好的内容传输到服务器的过程。其实就是将现场的视频信号传到网络的过程。“推流”对网络要求比较高,如果网络不稳定,直播效果就会很差,观众观看直播时就会发生卡顿等现象,观看体验很是糟糕。要想用于推流还必须把音视频数据使用传输协议进行封装,变成流数据。常用的流传输协议有RTSP、RTMP、HLS等,使用RTMP传输的延时通常在1–3秒,对于手机直播这种实时性要求非常高的场景,RTMP也成为手机直播中最常用的流传输协议。最后通过一定的Qos算法将音视频流数据推送到网络断,通过CDN进行分发。

1.2 拉流

拉流:指服务器已有直播内容,用指定地址进行拉取的过程。即是指服务器里面有流媒体视频文件,这些视频文件根据不同的网络协议类型(如RTMP、RTSP、HTTP等)被读取的过程,称之为拉流,说的简单点,你观看优酷视频就可以看成是拉流,视频文件存储在优酷的服务器上面,你通过HTTP(或者RTMP/RTSP)协议,也就是网页的形式去获取视频观看,这就是拉流的过程,在这个过程中有三个要素:1-服务器【提供视频文件存储的地方】 2-传输协议【就是你要通过什么方式传输视频】3-读取终端【就是通过什么播放出来】

1.3 推流和拉流的区别

用户最终看到一条直播视频,可能会通过两种方式达成,一种是主动把内容传输到服务器,缓存在边缘节点,终端用户随时可以调取观看,这是推流;一种是当终端用户想要看某个内容时,将内容从源站调取,并缓存到边缘节点,这是拉流。

举个简单的例子:

作为一家快递公司,在各个小区都有快递公司,所以我提供两种服务:

拉流服务:也就是上门取件

推流服务:由于你怕快递员有非分之想,你选择把物件送到小区内的快递公司

二、示意图

在这里插入图片描述
在这里插入图片描述

扫描二维码关注公众号,回复: 15649728 查看本文章

三、流媒体协议之RTMP传输协议

流媒体中的传输协议有很多种,以下先介绍一种,其他可以参照此协议方便理解。

RTMP是Real Time Messaging Protocol(实时消息传输协议)的首字母缩写。一种设计用来进行实时数据通信的网络协议。

每一个推流码地址唯一指向单个的直播活动。它由rtmp://开头,包含了上传服务器地址,上传目录名和上传节点,三部分组成。所有的rtmp地址都是这种结构组成,基本同一个平台不同直播的地址前两部分是不变的。
在这里插入图片描述

四、流媒体协议与格式

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/m0_38127564/article/details/130989365
今日推荐