直播推拉流是什么

2023-12-13 11:39:33

关键词 Live Stream

前言

本文简单的介绍了一下直播视频推拉流相关概念以及优缺点。

推流

概念

推流,顾名思义,就是将采集阶段封包好的内容传输到服务器的过程。

流程
  1. 经过输出设备(AVCaptureVideoDataOutput)得到原始的采样数据–视频数据(YUV)和音频数据(AAC);
  2. 使用硬编码(对应系统的API)或软编码(FFMpeg)来编码压缩音视频数据;
  3. 分别得到已编码的H.264视频数据和AAC音频数据;
  4. 根据不同的封装格式(如FLV、TS、MPEG-TS)
  5. 通过流上传到服务器;
  6. 服务器进行相关协议的分发
主流推送协议
RTMP
概念

RTMP是RealTime Messaging Protocol(实时消息传输协议)的缩写,是Adobe公司为Flash/AIR平台和服务器之间音、视频及数据传输开发的实时消息传送协议。RTMP协议基干TCP包括RTMP基本协议及RTMPT/RTMPS/RTMPE等多种变种。

RTMP协议中,视频必须是H264编码,音频必须是AAC或MP3编码,且多以flv格式封包。

优点
  1. 难度低:目前最主流的流媒体传输协议,对CDN支持良好,实现难度较低,是大多数的直播平台的选择
  2. 实时性高:RTMP的实时性在3秒之内
  3. 支持加密:RTMPE和RTMPS为加密协议
  4. 稳定性高:在PC平台上flash播放的最稳定方式是RTMP,
  5. 编码器接入:能在不同编码器之间切换,那么RTMP作为服务器的输入协议会是最好的选择。系统容错:RTMP的流没有标识,切到其他的服务器的流也可以继续播放
  6. 可监控:在监控系统或者运维系统的角度看,流协议应该比较合适监控。
缺点
  1. 不支持浏览器,目Adobe已不再更新。因此直播服务要支持浏览器的话,需要另外的推送协议支持。
  2. 协议复杂
HTTP
优点
  1. 性能很高:。如果分发的量特别大,譬如点播视频网站,没有直播的实时性要求,HTTP协议是最好选择。
  2. 没有碎片
  3. 穿墙
缺点
  1. 实时性差:基本上没有实时性这个说法。
  2. 原生支持不好
HLS
概念

Http Live Streaming是由Apple公司定义的基于HTTP的流媒体实时传输协议。它的原理是将整个流分为多个小的文件来下载,每次只下载若干个。服务器端会将最新的直播数据生成新的小文件,客户端只要不停的按顺序播放从服务器获取到的文件,就实现了直播。基本上,HLS是以点播的技术实现了直播的体验。因为每个小文件的时长很短,客户端可以很快地切换码率,以适应不同带宽条件下的播放。

优点
  1. 性能高:和HTTP一样。
  2. 穿墙:和HTTP一样。
  3. 原生支持很好:IOS上支持完美。Android上支持差些。PC/flash上现在也有各种as插件支持HLS。
缺点
  1. 实时性差:基本上HLS的延迟在10秒以上。
  2. 文件碎片:若分发HLS,码流低,切片较小时,小文件分发不是很友好。特别是一些对存储比较敏感的情况,譬如源站的存储,嵌入式的SD卡。
WebRTC
概念

WebRTC(Web Real-Time Communication),即“源自网页即时通信”。WebRTC是一个支持浏览器进行实时语音、视频对话的开源协议。WebRTC的支持者甚多,Google、Mozilla、Opera推动其成为W3C推荐标准。

优点
  1. 兼容性好:支持目前的主流浏览器,并且基于SRTP和UDP,即便在网络信号一般的情况下也具备较好的稳定性。
  2. 延时低:可以实现点对点通信,通信双方延时低,是实现“连麦”功能比较好的选择。

拉流

概念

指服务器已有直播内容,用指定地址进行拉取的过程。根据协议类型(如RTMP、RTP、RTSP、HTTP等),与服务器建立连接并接收数据;

流程

当客户可提供源服务器时,无需源站进行推流配置,网宿CDN系统直接从客户源服务器拉取直播数据流。

后言

希望本文会对你有所帮助,如果有什么问题,可在下方留言沟通

文章来源:https://blog.csdn.net/m0_73117087/article/details/134315888
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。