流媒体(视频直播技术)学习1-相关概念

引言

在现在移动互联网如火如荼的时代,流媒体业务在移动互联网业务中所占的比重越来越大,特别是今年直播业务的兴起,使互联网社交进入了直播时代,直播已经成为很多APP特别是社交APP的标配业务。站在一个程序员的角度(coding角度)来看,直播业务其实就是流媒体业务。那么流媒体业务开发涉及到哪些方面的知识呢?下面我们来看看一个流媒体数据(音频数据和图像数据)从采集 ->处理->编码和格式封装 -> 传输-> 解码 -> 播放整个过程中所涉及到的知识点。例如一个直播业务的流媒体数据从采集到播放是这样的:

直播业务的流媒体数据从采集到播放.jpeg
采集

采集是整个过程中的第一个环节,它从系统的采集设备中获取原始视频数据,将其输出到下一个环节。视频的采集涉及两方面数据的采集:音频采集和图像采集,它们分别对应两种完全不同的输入源和数据格式。

  • 音频采集

    1. 采集源:麦克风、系统声音或者本地音频文件等

    2. 采集内容:

      采集过程主要通过设备将环境中的模拟信号采集成 PCM 编码的原始数据,然后编码压缩成 MP3 等格式的数据分发出去。
      音频采集和编码主要面临的挑战在于:延时敏感、卡顿敏感、噪声消除(Denoise)、回声消除(AEC)、静音检测(VAD)和各种混音算法等。

    在音频采集阶段,参考的主要技术参数有 :

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

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

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

    • 音频帧(frame):音频跟视频很不一样,视频每一帧就是一张图像,而从上面的正玄波可以看出,音频数据是流式的,本身没有明确的一帧帧的概念,在实际的应用中,为了音频算法处理/传输的方便,一般约定俗成取 2.5ms~60ms 为单位的数据量为一帧音频。这个时间被称之为“采样时间”,其长度没有特别的标准,它是根据编解码器和具体应用的需求来决定的。

    根据以上定义,我们可以计算一下一帧音频帧的大小。假设某音频信号是采样率为 8kHz、双通道、位宽为 16bit,20ms 一帧,则一帧音频数据的大小为:

    size = 8000 x 2 x 16bit x 0.02s = 5120 bit = 640 byte

  • 图像采集

    1. 采集源:摄像头、屏幕录制或者本地的视频文件等

    2. 采集内容:

      图像采集图像采集的图片结果组合成一组连续播放的动画,即构成视频中可肉眼观看的内容。图像的采集过程主要由摄像头等设备拍摄成 YUV 编码的原始数据,然后经过编码压缩成 H.264 等格式的数据分发出去。

      图像由于其直观感受最强并且体积也比较大,构成了一个视频内容的主要部分。图像采集和编码面临的主要挑战在于:设备兼容性差、延时敏感、卡顿敏感以及各种对图像的处理操作如美颜和水印等。

      在图像采集阶段,参考的主要技术参数有:

      • 图像传输格式:通用影像传输格式(Common Intermediate Format)是视讯会议(video conference)中常使用的影像传输格式。

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

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

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

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

处理

视频或者音频完成采集之后得到原始数据,为了增强一些现场效果或者加上一些额外的效果,我们一般会在将其编码压缩前进行处理,比如打上时间戳或者公司 Logo 的水印,祛斑美颜和声音混淆等处理

常见视频处理功能:

  1. 美颜

    美颜的主要原理是通过「磨皮+美白」来达到整体美颜的效果。磨皮的技术术语是「去噪」,也即对图像中的噪点进行去除或者模糊化处理,常见的去噪算法有均值模糊、高斯模糊和中值滤波等。当然, 由于脸部的每个部位不尽相同,脸上的雀斑可能呈现出眼睛黑点的样子,对整张图像进行「去噪」处理的时候不需要将眼睛也去掉,因此这个环节中也涉及到人脸和皮肤检测技术

  2. 视频水印

    水印是图片和视频内容中常见的功能之一,它可用于简单是版权保护,或者进行广告设置.也就是在视频图像上的某些位置添加上别的图片或文字。

  3. 滤镜

    滤镜介绍

    在 iOS 端可以考虑使用 GPUImage 这个库,这是一个开源的基于GPU的图片或视频的处理框架,内置了多达120多种常见的滤镜效果。

  4. 特效

    特效其实就是在视频中添加一组动态的图片水印。一般是基于人脸识别的。

编码和格式封装
  1. 编码

    编码是对从采集源获取到的数据或者处理过的数据按照某种规范进行压缩的技术。例如:移动端一般将从采集源获取的音频原始数据(PCM格式)编码成AAC格式的数据,常见的音频压缩格式有:MP3,AAC,HE-AAC,Opus,FLAC,Vorbis (Ogg),Speex 和 AMR等。从采集源获取到的原始图像数据(一般是YUV格式的)编码成 h.264格式的数据。为什么要对这些原始数据进行编码,主要有两个原因:

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

    为什么可以压缩,主要是因为:

    1. 空间冗余:图像相邻像素之间有较强的相关性
    2. 时间冗余:视频序列的相邻图像之间内容相似
    3. 编码冗余:不同像素值出现的概率不同
    4. 视觉冗余:人的视觉系统对某些细节不敏感
    5. 知识冗余:规律性的结构可由先验知识和背景知识得到

    数据压缩一般分为 无损压缩(Lossless)和 有损压缩(Lossy)

    编码方式:

    1. 软件编码 常用FFMpeg多媒体库,利用CPU做视频的编码
    2. 硬件编码 利用GPU或者专用处理器来对视频流进行编码

    软件编码比较通用,但是占用CPU资源,编解码效率不高。硬件编码效率很高。

  1. 封装格式

    所谓封装格式也称多媒体容器 (Multimedia Container),也就是将所有的处理好的视频、音频都包装到一个文件容器内呈现给观众,这个包装的过程就叫封装。常见的视频封装格式有:MP4、3GP、AVI、MKV、WMV、MPG、VOB、FLV、SWF、MOV、RMVB 和 WebM 等。

传输

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

解码

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

解码方式:
> 1. 软件解码 常用FFMpeg多媒体库,利用CPU做视频的解码
> 2. 硬件解码 利用GPU或者专用处理器来对视频流进行解码

软件解码比较通用,但是占用CPU资源,编解码效率不高。硬件解码效率很高。

播放

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

总结:以上是通过查相关资料整理后的一些个人理解。可能有误敬请各位同学指导批判。后面还会分模块详解。其中参考了雷霄骅很多资料,在此向大神表示敬意。

未完待续。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,053评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,527评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,779评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,685评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,699评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,609评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,989评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,654评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,890评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,634评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,716评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,394评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,976评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,950评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,191评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,849评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,458评论 2 342

推荐阅读更多精彩内容

  • [TOC] 音视频&流媒体 是什么促使我要写这一篇音视频入门文章?那是因为和一妹子打赌码率的概念,结果输了;对一个...
    AllenWu阅读 4,786评论 1 25
  • 前言 说到视频,大家自己脑子里基本都会想起电影、电视剧、在线视频等等,也会想起一些视频格式 AVI、MP4、RMV...
    ForestSen阅读 22,808评论 10 202
  • 前言:每个成功者多是站在巨人的肩膀上!在做直播开发时 碰到了很多问题,在收集了许多人博客的基础上做出来了成功的直播...
    _方丈阅读 23,341评论 35 330
  • 前言 大半年没写博客了,但我一直关注着互联网的动向,最近会研究很多东西,并分享,今年移动直播行业的兴起,诞生了一大...
    flyinskybiu阅读 6,427评论 1 25
  • <转> 一、个人见解(直播难与易) 直播难:个人认为要想把直播从零开始做出来,绝对是牛逼中的牛逼,大牛中的大牛,因...
    XLsn0w阅读 1,558评论 0 5