音视频流媒体-推流与拉流简介
Posted 音视频开发老舅
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了音视频流媒体-推流与拉流简介相关的知识,希望对你有一定的参考价值。
一、概念
话不多说,先了解概念,再看示意图更直观:
1.1 推流
推流:将直播的内容推送至服务器的过程。即指的是把采集阶段封包好的内容传输到服务器的过程。其实就是将现场的视频信号传到网络的过程。“推流”对网络要求比较高,如果网络不稳定,直播效果就会很差,观众观看直播时就会发生卡顿等现象,观看体验很是糟糕。要想用于推流还必须把音视频数据使用传输协议进行封装,变成流数据。常用的流传输协议有RTSP、RTMP、HLS等,使用RTMP传输的延时通常在1–3秒,对于手机直播这种实时性要求非常高的场景,RTMP也成为手机直播中最常用的流传输协议。最后通过一定的Qos算法将音视频流数据推送到网络断,通过CDN进行分发。
1.2 拉流
拉流:指服务器已有直播内容,用指定地址进行拉取的过程。即是指服务器里面有流媒体视频文件,这些视频文件根据不同的网络协议类型(如RTMP、RTSP、HTTP等)被读取的过程,称之为拉流,说的简单点,你观看优酷视频就可以看成是拉流,视频文件存储在优酷的服务器上面,你通过HTTP(或者RTMP/RTSP)协议,也就是网页的形式去获取视频观看,这就是拉流的过程,在这个过程中有三个要素:1-服务器【提供视频文件存储的地方】 2-传输协议【就是你要通过什么方式传输视频】3-读取终端【就是通过什么播放出来】
二、示意图
以下是从网络上搜寻到的有关推流与拉流的示意图:
推流与拉流示意图(1)
一张示意图没有看明白,没有关系,再来一张示意图:
推流与拉流示意图(2)
其实可以简要的理解为推流就是直播端,而拉流就是客户端哦。
本文福利, 免费领取C++音视频学习资料包、技术视频,内容包括(音视频开发,面试题,FFmpeg ,webRTC ,rtmp ,hls ,rtsp ,ffplay ,编解码,推拉流,srs)↓↓↓↓↓↓见下面↓↓文章底部点击免费领取↓↓
三、RTMP传输协议
流媒体中的传输协议有很多种,以下先介绍一种,其他可以参照此协议方便理解。
RTMP是Real Time Messaging Protocol(实时消息传输协议)的首字母缩写。一种设计用来进行实时数据通信的网络协议。
每一个推流码地址唯一指向单个的直播活动。它由rtmp://开头,包含了上传服务器地址,上传目录名和上传节点,三部分组成。所有的rtmp地址都是这种结构组成,基本同一个平台不同直播的地址前两部分是不变的。
四、流媒体协议与格式
各种流媒体协议与格式示意图
VLC 播放器的推流和拉流方法
参考技术AVLC media player 可以将本地视频文件或电脑的视频采集信号编码成网络串流(stream), 这样普通电脑就可以作为一个流编码器, 在利用vlc或者其他流媒体播放器(如potplayer)进行拉流, 测试流效果.
5.流输出设置: 勾选激活转码, 可将媒体按照下方选中的格式转码成特定的封装格式, 配置文件选需要的转码格式
将播放循环模式设为单个循环, 推流将持续循环工作
注意: 如果勾选过"激活转码", 推流窗口第一遍播放将边转码边推流, 可能会出现卡顿掉帧无声等问题, 第二遍起不需要再转码, 推流会变得正常.
以上是关于音视频流媒体-推流与拉流简介的主要内容,如果未能解决你的问题,请参考以下文章