直播推流是指将采集阶段封装好的视频内容传输到网络服务器的整个过程,用来在线直播,其实就是将现场的视频信号传到网络的过程。
直播推流是指将视频流推送到网络上的这个过程。推流,指的是把采集阶段封包好的内容传输到服务器的过程。其实就是将现场的视频信号传到网络的过程。
“推流”对网络要求比较高,网络不稳定,直播效果就会很差,观众观看直播时就会发生卡顿等现象,观看体验很是糟糕。
网络直播吸取和延续了互联网的优势,利用视讯方式进行网上现场直播,可以将产品展示、相关会议、背景介绍、方案测评、网上调查、对话访谈、在线培训等内容现场发布到互联网上。
利用互联网的直观、快速,表现形式好、内容丰富、交互性强、地域不受限制、受众可划分等特点,加强活动现场的推广效果。现场直播完成后,还可以随时为读者继续提供重播、点播,有效延长了直播的时间和空间,发挥直播内容的最大价值。
推流涉及到视频编解码技术、音频编解码技术、图像处理技术和多媒体封装格式技术等方面。
视频直播推流协议
1、RTMP
RTMP 是 Real Time Messaging Protocol(实时消息传输协议)的缩写,是 Adobe 公司为 Flash/AIR 平台和服务器之间音、视频及数据传输开发的实时消息传送协议。RTMP 协议基于 TCP,包括 RTMP 基本协议及 RTMPT/RTMPS/RTMPE 等多种变种。
在 RTMP 协议中,视频必须是 H264 编码,音频必须是 AAC 或 MP3 编码,且多以 flv 格式封包。
RTMP 是目前最主流的流媒体传输协议,优先在于对 CDN 支持良好,实现难度较低,是大多数的直播平台的选择。但其不支持浏览器,且 Adobe 已不再更新。因此直播服务要支持浏览器的话,需要另外的推送协议支持。目前 PC 端教育直播推流工具的开发是一项比较复杂的系统工程,主要涉及到视频编解码技术、音频编解码技术、图像处理技术和多媒体封装格式技术等方面。
2、HLS
HLS 是 Http Live Streaming 的缩写,由 Apple 公司定义的基于 HTTP 的流媒体实时传输协议。它将整个流分为多个小的文件来下载,每次只下载若干个。服务器端会将最新的直播数据生成新的小文件,客户端只要不停的按顺序播放从服务器获取到的文件,就实现了直播。
HLS 的延迟一般会高于普通的流媒体直播协议。
传输内容包括两部分:一是 M3U8 描述文件,二是 TS 媒体文件。TS 媒体文件中的视频必须是 H264 编码,音频必须是 AAC 或 MP3 编码。
3、WebRTC
WebRTC 是 Web Real-Time Communication 的缩写。其是一个支持浏览器进行实时语音、视频对话的开源协议,Google、Mozilla、Opera 推动其成为 W3C 推荐标准。
WebRTC 支持目前的主流浏览器,并且基于 SRTP 和 UDP,即便在网络信号一般的情况下也具备较好的稳定性。此外,它可以实现点对点通信,通信双方延时低,是实现“连麦”功能比较好的选择。