直播业务处理流程

直播业务处理流程_第1张图片
1.jpg
采集
  • 音频
    主要来源于麦克风、系统声音或者本地音频文件等,通过设备将环境中的模拟信号采集成 PCM 编码的原始数据,然后编码压缩成 MP3 等格式的数据分发出去
    音频采集和编码主要面临的挑战在于:延时敏感、卡顿敏感、噪声消除(Denoise)、回声消除(AEC)、静音检测(VAD)和各种混音算法等。

    采样率(samplerate):采样就是把模拟信号数字化的过程,采样频率越高,记录这一段音频信号所用的数据量就越大,同时音频质量也就越高。

    位宽:每一个采样点都需要用一个数值来表示大小,这个数值的数据类型大小可以是:4bit、8bit、16bit、32bit 等等,位数越多,表示得就越精细,声音质量自然就越好,而数据量也会成倍增大。我们在音频采样过程中常用的位宽是 8bit 或者 16bit。

    声道数(channels):由于音频的采集和播放是可以叠加的,因此,可以同时从多个音频源采集声音,并分别输出到不同的扬声器,故声道数一般表示声音录制时的音源数量或回放时相应的扬声器数量。声道数为 1 和 2 分别称为单声道和双声道,是比较常见的声道参数。

  • 图像采集
    主要来源摄像头、屏幕录制或者本地的视频文件等,由摄像头等设备拍摄成 YUV 编码的原始数据,然后经过编码压缩成 H.264 等格式的数据分发出去
    图像采集和编码面临的主要挑战在于:设备兼容性差、延时敏感、卡顿敏感以及各种对图像的处理操作如美颜和水印等。

    图像格式:通常采用 YUV 格式存储原始数据信息,其中包含用 8 位表示的黑白图像灰度值,以及可由 RGB 三种色彩组合成的彩色图像。

    传输通道:正常情况下视频的拍摄只需 1 路通道,随着 VR 和 AR 技术的日渐成熟,为了拍摄一个完整的 360° 视频,可能需要通过不同角度拍摄,然后经过多通道传输后合成。

    分辨率:随着设备屏幕尺寸的日益增多,视频采集过程中原始视频分辨率起着越来越重要的作用,后续处理环节中使用的所有视频分辨率的定义都以原始视频分辨率为基础。视频采集卡能支持的最大点阵反映了其分辨率的性能。

    采样频率:采样频率反映了采集卡处理图像的速度和能力。在进行高度图像采集时,需要注意采集卡的采样频率是否满足要求。采样率越高,图像质量越高,同时保存这些图像信息的数据量也越大

处理
  • 美颜
    美颜的主要原理是通过「磨皮+美白」来达到整体美颜的效果。磨皮的技术术语是「去噪」,也即对图像中的噪点进行去除或者模糊化处理,常见的去噪算法有均值模糊、高斯模糊和中值滤波等。当然, 由于脸部的每个部位不尽相同,脸上的雀斑可能呈现出眼睛黑点的样子,对整张图像进行「去噪」处理的时候不需要将眼睛也去掉,因此这个环节中也涉及到人脸和皮肤检测技术
  • 视频水印
    水印是图片和视频内容中常见的功能之一,它可用于简单是版权保护,或者进行广告设置.也就是在视频图像上的某些位置添加上别的图片或文字。
  • 滤镜
    在 iOS 端可以考虑使用 GPUImage 这个库,这是一个开源的基于GPU的图片或视频的处理框架,内置了多达120多种常见的滤镜效果。
  • 特效
    特效其实就是在视频中添加一组动态的图片水印。一般是基于人脸识别的。
编码和格式封装
  • 编码
    编码是对从采集源获取到的数据或者处理过的数据按照某种规范进行压缩的技术。例如:移动端一般将从采集源获取的音频原始数据(PCM格式)编码成AAC格式的数据,常见的音频压缩格式有:MP3,AAC,HE-AAC,Opus,FLAC,Vorbis (Ogg),Speex 和 AMR等。从采集源获取到的原始图像数据(一般是YUV格式的)编码成 h.264格式的数据

    为什么要对这些原始数据进行编码,主要有两个原因:

    • 存储困难 :因为原始数据,体积很大。
    • 传输困难 :占带宽, 费流量。

    编码方式

    • 软件编码 常用FFMpeg多媒体库,利用CPU做视频的编码
    • 硬件编码 利用GPU或者专用处理器来对视频流进行编码
      软件编码比较通用,但是占用CPU资源,编解码效率不高。硬件编码效率很高
  • 封装格式
    所谓封装格式也称多媒体容器 (Multimedia Container),也就是将所有的处理好的视频、音频都包装到一个文件容器内呈现给观众,这个包装的过程就叫封装。常见的视频封装格式有:MP4、3GP、AVI、MKV、WMV、MPG、VOB、FLV、SWF、MOV、RMVB 和 WebM 等。

传输

传输是指:通过互联网,地面无线广播,卫星等方式将将压缩的视频码流从编码端传输到解码端。

解码

解码是对已编码的视频数据进行还原解码操作。

解码方式:

  • 软件解码 常用FFMpeg多媒体库,利用CPU做视频的解码
  • 硬件解码 利用GPU或者专用处理器来对视频流进行解码
    软件解码比较通用,但是占用CPU资源,编解码效率不高。硬件解码效率很高。
播放

播放就是将解码后的音频数据通过音响等播放, 将视频图像数据通过显示器等显示

你可能感兴趣的:(直播业务处理流程)