音视频学习基本知识-(视频H264编码)

一.学习背景

5G网络作为第5代的移动通信网络,它的网络峰值传播速度可1以达到10Gbps/s.这比4G的的传输速度快数百倍.举个例子,整部超高画质电影下载可在1秒钟之内下载完成.

当然,随着5G技术的诞生,用在智能终端分享3D电影,游戏或者超高画质节目的时代已经毫无悬念的向我们走来.

想必大家也逐步了解,国内外的互联网公司也已经布局音视频,3D技术方面的开发者招聘和相关产品研发.目前落地推广最普遍的就是直播类项目和小视频类的项目.当然未来的方向肯定不止如此.

那么我们现在带着问题来学习?

  • 为何编码?
  • 何为编码?

1.1 为何编码?

从存储角度和网络传输以及通用性 3个角度,压缩已经成了不可或缺的动作.压缩编码最基本的指标,就是压缩比. 压缩比通常都是小于1(如果等于或者大于1,是不是就失去了编码的意义了.编码的目的就是为了压缩数据体量).

1.2 何为编码?

编码就是按照一定的格式记录采样和量化后的数据.

1.2.1编码中软编码和硬编码的区别?
  • 硬编码: 使用非CPU进行编码,例如使用GPU芯片处理
  • 软编码: 使用CPU来进行编码计算.
1.2.2 软编码与硬编码的区分?
  • 软编码: 实现直接、简单,参数调整方便,升级易,但CPU负载重,性能较硬编码低,低码率下质量通常比硬编码要好一点。
  • 硬编码:性能高,低码率下通常质量低于硬编码器,但部分产品在GPU硬件平台移植了优秀的软编码算法(如X264)的,质量基本等同于软编码。

读者理解:
硬编码,就是使用GPU计算,获取数据结果,优点速度快,效率高.
软编码,就是通过CPU来计算,获取数据结果.

1.2.3 压缩算法

压缩算法分为2种,有损压缩与无损压缩.

  • 无损压缩:解压后的数据可以完全复原,在常用的压缩格式中,无损压缩使用频次较低
  • 有损压缩:解压后数据不能完全复原,会丢失一部分信息.压缩比越小,丢失的信息就会越多.信号还原的失真就会越大.
    需要根据不同的场景(考虑因素包括存储设备,传输网络环境,播放设备等)选用不同的压缩编码算法.

二. 直播APP需求剖析

2.1 直播项目流程

在直播项目中,一般常见有8个步骤.
  • 音视频采集
  • 视频滤镜
  • 音视频编码
  • 推流
  • 流媒体服务器处理
  • 拉流
  • 音视频解码
  • 音视频播放
    这个在开发者面试一些有意向或者目前业务中包含直播需求的公司,最为常见的面试题.不管在我们过往的工作经验是否有直播或音视频相关经验.这个一块都是你必须能了解.希望大家可以简单的了解.

2.2 相关框架的学习与使用场景

image.png
1) 采集视频,音频
  • 使用iOS原生框架 AVFoundation.framework
2)视频滤镜处理
  • 使用iOS原生框架 CoreImage.framework
  • 使用第三方框架 GPUImage.framework

CoreImageGPUImage 框架比较:
在实际项目开发中,开发者更加倾向使用于GPUImage框架.
首先它在使用性能上与iOS提供的原生框架,并没有差别;其次它的使用便利性高于iOS原生框架,最后也是最重要的GPUImage框架是开源的.而大家如果想要学习GPUImage框架,建议学习OpenGL ES,其实GPUImage的封装和思维都是基于OpenGL ES.
GPUImage OC版本下载地址
GPUImage Swift版本下载地址

1)视频\音频编码压缩
  • 硬编码
    • 视频: VideoToolBox框架
    • 音频: AudioToolBox 框架
  • 软编码
    • 视频: 使用FFmpeg,X264算法把视频原数据YUV/RGB编码成H264
    • 音频: 使用fdk_aac 将音频数据PCM转换成AAC
2)推流
  • 推流: 将采集的音频.视频数据通过流媒体协议发送到流媒体服务器
  • 推流技术
    • 流媒体协议: RTMP\RTSP\HLS\FLV
    • 视频封装格式: TS\FLV
    • 音频封装格式: Mp3\AAC
2) 流媒体服务器
  • 数据分发
  • 截屏
  • 实时转码
  • 内容检测
3) 拉流
  • 拉流: 从流媒体服务器中获取音频\视频数据
  • 流媒体协议: RTMP\RTSP\HLS\FLV
4) 音视频解码
  • 硬解码
    • 视频: VideoToolBox框架
    • 音频: AudioToolBox 框架
  • 软解码
    • 视频: 使用FFmpeg,X264算法解码
    • 音频: 使用fdk_aac 解码
4) 拉流播放
  • ijkplayer 播放框架
  • kxmovie 播放框架

ijkplayer,kxmovie 都是基于FFmpeg框架封装的

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

推荐阅读更多精彩内容