直播视频推流协议

齿轮易创 · 2020-03-30  

如今,为防疫情大多实体企业都将线下业务转移线下,而直播成为教育、娱乐等产业的第一选择。今天小齿轮给大家分享一些在教育直播场景中涉及的技术问题。

1、直播的定义

网络直播吸取和延续了互联网的优势,利用视频通讯的方式进行网上现场直播,可以将产品展示、相关会议、背景介绍、方案测评、网上调查、对话访谈、在线培训等内容现场发布到互联网上,利用互联网的直观、快速,表现形式好、内容丰富、交互性强、地域不受限制、受众可划分等特点,加强活动现场的推广效果。

2、直播的流程

直播流程

在教育场景中,推流是非常重要的一步。涉及到视频编解码技术、音频编解码技术、图像处理技术和多媒体封装格式技术等方面。因此,小齿轮将着重介绍推流环节中不可缺少的——推流协议。

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,即便在网络信号一般的情况下也具备较好的稳定性。此外,它可以实现点对点通信,通信双方延时低,是实现“连麦”功能比较好的选择。

如何开发定制直播app软件?

发表评论