赞
踩
想赚钱,第一点就得选对自己的方向,有的行业和领域,无论你如何努力,天花板也不过如此。选对时代的风口,就算是头猪都能被吹上天,今天我们就来聊聊音视频开发。
时至今日,短视频App可谓是如日中天,一片兴兴向荣。随着短视频的兴起,音视频开发也越来越受到重视,但是由于音视频开发涉及知识面比较广,入门门槛相对较高,让许许多多开发者望而生畏。接下来我介绍一下音视频开发的基础部分,帮助大家学习。
RGB颜色模型的主要目的是在电子系统中检测,表示和显示图像,比如电视和计算机,但是在传统摄影中也有应用。
RGB
基础的部分不过多描述,更多内容点击标题见维基百科。
Y’UV的发明是由于彩色电视与黑白电视的过渡时期。黑白视频只有Y(Luma,Luminance)视频,也就是灰阶值。到了彩色电视规格的制定,是以YUV/YIQ的格式来处理彩色电视图像,把UV视作表示彩度的C(Chrominance或Chroma),如果忽略C信号,那么剩下的Y(Luma)信号就跟之前的黑白电视频号相同,这样一来便解决彩色电视机与黑白电视机的兼容问题。Y’UV最大的优点在于只需占用极少的带宽,因为人眼对亮度敏感,对色度不敏感,因此减少部分UV的数据量,但人眼感知不到。
YUV也称为YCbCr,对于每个分量如下:
如下图,可以看到3个分量的效果差值。
YUV示例图
RGB与YUV转换公式 (RGB取值范围均为0~255)
色调H: 用角度度量,取值范围为0°~360°,从红色开始按逆时针方向计算,红色为0°,绿色为120°,蓝色为240°。它们的补色是:黄色为60°,青色为180°,品红为300°;
饱和度S: 饱和度S表示颜色接近光谱色的程度。一种颜色,可以看成是某种光谱色与白色混合的结果。其中光谱色所占的比例愈大,颜色接近光谱色的程度就愈高,颜色的饱和度也就愈高。饱和度高,颜色则深而艳。光谱色的白光成分为0,饱和度达到最高。通常取值范围为0%~100%,值越大,颜色越饱和。
明度V: 明度表示颜色明亮的程度,对于光源色,明度值与发光体的光亮度有关;对于物体色,此值和物体的透射比或反射比有关。通常取值范围为0%(黑)到100%(白)。
hsv_1.png
hsv_2.png
RGB和CMY颜色模型都是面向硬件的,而HSV(Hue Saturation Value)颜色模型是面向用户的。
HSV模型的三维表示从RGB立方体演化而来。设想从RGB沿立方体对角线的白色顶点向黑色顶点观察,就可以看到立方体的六边形外形。六边形边界表示色彩,水平轴表示纯度,明度沿垂直轴测量。
HSV在做颜色检测方面比较常用,可以参考文章HSV颜色检测。
简单的理解帧就是为视频或者动画中的每一张画面,而视频和动画特效就是由无数张画面组合而成,每一张画面都是一帧。
帧数其实就是为帧生成数量的简称,可以解释为静止画面的数量
帧率(Frame rate) = 帧数(Frames)/时间(Time),单位为帧每秒(f/s, frames per second, fps)。
屏幕每秒画面被刷新的次数,分为垂直刷新率和水平刷新率,一般我们提到的都是指垂直刷新率,以赫兹(Hz)为单位,刷新率越高,图像就越稳定,图像显示就越自然清晰。
目前, 大多数显示器根据其设定按 30Hz、 60Hz、 120Hz 或者 144Hz 的频率进行刷新。 而其中最常见的刷新频率是 60 Hz。 这样做是为了继承以前电视机刷新频率为 60Hz 的设定。
在做页面性能优化时,常用60FPS作为一个基准,所以需要尽量让每一帧的渲染控制在16ms内,这样才能达到一秒60帧的流畅度。
视频、图片的画面大小或尺寸。
单位时间播放连续的媒体如压缩后的音频或视频的比特数量。常用单位“比特每秒”,缩写是“bit/s”。比特率越高,带宽消耗得越多。
CPU:中央处理器(英文全名:Central Processing Unit),包括运算器(算术逻辑运算单元,ALU,Arithmetic Logic Unit)和高速缓冲存储器(Cache)及实现它们之间联系的数据(Data)、控制及状态的总线(Bus)。
GPU:图形处理器(英语全名:Graphics Processing Unit),专为执行复杂的数学和几何计算而设计的,拥有2D或3D图形加速功能。
GPU相比于CPU,更强大的2D、3D图形计算能力,可以让CPU从图形处理的任务中解放出来,执行其他更多的系统任务,这样可以大大提高计算机的整体性能。
硬件加速(Hardware acceleration)就是利用硬件模块来替代软件算法以充分利用硬件所固有的快速特性。硬件加速通常比软件算法的效率要高。
将2D、3D图形计算相关工作交给GPU处理,从而释放CPU的压力,也是属于硬件加速的一种。
硬解和上面的硬件加速对应,即使用硬件模块来解析视频、音频文件等,而软解即是用CPU去计算解析。
格式 | 全名 | 开发商 | 初版年限 | 特点 |
---|---|---|---|---|
MP4 | MP4 | Moving Picture Experts Group,即 MPEG(动态图像专家组) | 1998 | 常用有损压缩格式,通用性强 |
AVI | Audio Video Interleaved(音频视频交错格式) | 微软 | 1992 | 体积大算法简单 |
MOV | QuickTime 影片格式 | Apple | 1991 | 苹果专属格式对很多其他的播放器支持不是很友好 |
WMV | Windows Media Video | 微软 | 2003 | 微软的专业视频格式,兼容性并不是很好 |
FLV | Adobe Flash 网络流媒体格式 | Adobe | 2002 | 被淘汰的早期网络视频格式 |
MKV | Matroska 多媒体容器 | Matroska.org | 2002 | 最有包容性的视频格式,能容纳无限量、多种不同类型编码的视频、音频及字幕流 |
WebM | WebM | 2010 | 谷歌推出的 HTML5 标准的网络视频标准,以MKV容器格式为基础开发 | |
RMVB | RMVB | Real Networks | 1997 | 根据不同的网络传输速率,而制定出不同的压缩比率,从而实现在低速率的网络上进行影像数据实时传送和播放,具有体积小,画质不错的优点。已过时。 |
更多参考 维基百科视频文件格式。
MPEG是Moving Picture Experts Group的简称。这个名字本来的含义是指一个研究视频和音频编码标准的“动态图像专家组”组织,成立于1988年,致力开发视频、音频的压缩编码技术。
版本 | 用途 |
---|---|
MPEG - 1 | VCD |
MPEG - 2 | DVD、数字有线电视信号 |
MPEG - 4(第二部分) | 视频电话、网络传输、广播和媒体存储 |
版本 | 用于 |
---|---|
H.261 | 老的视频会议和视频电话产品 |
H.262 | DVD、数字有线电视信号(与MPEG共同制定,与MPEG-2完全一致) |
H.263 | 视频会议、视频电话和网络视频 |
H.264 | 高精度视频的录制、压缩和发布格式(与MPEG-4第十部分完全一致),当前主流 |
H.265 | H.264的两倍之压缩率,可支持4K分辨率甚至到超高画质电视,最高分辨率可达到8192×4320(8K分辨率) |
当前主流的编码格式是H.264,这是由ITU-T VCEG和MPEG共同制定的标准,MPEG - 4第十部分内容也是H.264。
封装格式是提供了一个容器,用于存放视频、音频以及其他配置信息,而编码格式是指对视频画面内容进行压缩的一种标准。
即Group of picture(图像组),指两个I帧之间的距离,Reference(参考周期)指两个P帧之间的距离。
一个I帧所占用的字节数大于一个P帧,一个P帧所占用的字节数大于一个B帧。所以在码率不变的前提下,GOP值越大,P、B帧的数量会越多,平均每个I、P、B帧所占用的字节数就越多,也就更容易获取较好的图像质量;Reference越大,B帧的数量越多,同理也更容易获得较好的图像质量。
简而言之:
GOP解码案例
在技术领域内,没有任何一门课程可以让你学完后一劳永逸,再好的课程也只能是“师傅领进门,修行靠个人”。“学无止境”这句话,在任何技术领域,都不只是良好的习惯,更是程序员和工程师们不被时代淘汰、获得更好机会和发展的必要前提。
如果你觉得自己学习效率低,缺乏正确的指导,可以扫码,领取更多详细音视频资料,并加入我们资源丰富,学习氛围浓厚的技术圈一起学习交流吧!
加入我们吧!群内有许多来自一线的技术大牛,也有在小厂或外包公司奋斗的码农,我们致力打造一个平等,高质量的Android交流圈子,不一定能短期就让每个人的技术突飞猛进,但从长远来说,眼光,格局,长远发展的方向才是最重要的。
35岁中年危机大多是因为被短期的利益牵着走,过早压榨掉了价值,如果能一开始就树立一个正确的长远的职业规划。35岁后的你只会比周围的人更值钱。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。