移动端直播基础知识概述

RTMP概述

RTMP是Real Time Messaging Protocol(实时消息传输协议)的首字母缩写。该协议基于TCP,是一个协议族,包括RTMP基本协议及RTMPT/RTMPS/RTMPE等多种变种。RTMP是一种设计用来进行实时数据通信的网络协议,主要用来在Flash/AIR平台和支持RTMP协议的流媒体/交互服务器之间进行音视频和数据通信。支持该协议的软件包括Adobe Media Server/Ultrant Media Server/red5等。

  • 直播简要图
    移动端直播基础知识概述_第1张图片

  • 播放简要图
    移动端直播基础知识概述_第2张图片

1.直播基本流程

  • 数据采集:摄像头和麦克风采集音视频数据。
  • 图像处理:将数据采集的输入流进行实时滤镜,得到美化后的视频帧。
  • 视频编码:软硬编码 CPU和GPU 编码格式H.264,(H.265压缩比率更高,算法更复杂,未来的技术) 软编码支持现在所有的系统版本,硬编码 苹果在iOS8才开始支持。
视频编码

视频编码的主要作用是将视频像素数据(RGB,YUV等)压缩成为视频码流,从而降低视频的数据量。如果视频不经过压缩编码的话,体积通常是非常大的,一部电影可能就要上百G的空间。视频编码是视音频技术中最重要的技术之一。视频码流的数据量占了视音频总数据量的绝大部分。高效率的视频编码在同等的码率下,可以获得更高的视频质量。
HECV(H.265),[H.264],MPEG4,MPEG2,VP9,VP8,VC-1.

码率相同,编码质量:HEVC > VP9 > H.264> VP8 > MPEG4 > H.263 > MPEG2。

主流编码

H.264仅仅是一个编码标准,而不是一个具体的编码器,H.264只是给编码器的实现提供参照用的。

实际中使用最多的就是x264了,性能比较好。

音频编码

音频编码的主要作用是将音频采样数据(PCM等)压缩成为音频码流,从而降低音频的数据量。音频编码也是互联网视音频技术中一个重要的技术。但是一般情况下音频的数据量要远小于视频的数据量,因而即使使用稍微落后的音频编码标准,而导致音频数据量有所增加,也不会对视音频的总数据量产生太大的影响。高效率的音频编码在同等的码率下,可以获得更高的音质。
AAC AC-3 MP3 WMA
码率相同,编码质量 AAC+ > MP3PRO > AAC> RealAudio > WMA > MP3

  • 封包:现在直播rtmp 一般采用封包是FLV
  • 上传:RTMP推流
  • 云端cdn:网宿cdn分发转码,分发和录制
  • 直播播放器:负责拉流,解码,播放。
视频播放器原理

视音频技术主要包含以下几点:封装技术,视频压缩编码技术以及音频压缩编码技术。如果考虑到网络传输的话,还包括流媒体协议技术。

视频播放器播放一个互联网上的视频文件,需要经过以下几个步骤:解协议,解封装,解码视音频,视音频同步。如果播放本地文件则不需要解协议,为以下几个步骤:解封装,解码视音频,视音频同步。他们的过程如图所示。

2.获取系统的授权

摄像头和麦克风权限

3.配置采样参数

  • 音频:需要配置码率,采样率;
  • 视频:需要配置视频分辨率,视频的频率,视频的码率。

开源项目

https://github.com/LaiFengiOS/LFLiveKit

你可能感兴趣的:(移动端直播基础知识概述)