前言
之前偶然看到一个 PPT, 是一些视频特效的讲解首页如下:
PPT 解析了模糊镜像电击效果灵魂出窍动态晕影等视频处理效果, 最后推荐作者自己写的书:
在音视频进阶唱吧核心架构开发引起的兴趣之下读完这本书, 做一个简单的读书笔记
正文
一基础概念
1 音频
声音的物理性质 -- 声音是物体振动产生的波
声波的三要素: 振幅波形频率;(对应响度音色音调)
声音的传播介质 -- 空气液体和固体
人声是声带振动, 经过口腔等区域的反射, 再经过空气传播
回声: 反射声和原声相差超过 80ms 则人耳可听
数字音频与模拟音频: PCM 脉冲编码调制(这里有更详细介绍 PCM 基础)
常见音频编码: WAVAACMP3
音频压缩原理: 时域 / 频域掩蔽
2 图像
颜色空间: YUV 和 RGB(各有表示方式, 可相互转化)
视频编码: H264
视频压缩: 运动估计运动补偿等
I 帧 P 帧 B 帧: I 帧是帧内编码帧, P 帧是帧间预测编码帧, B 帧又称双向预测编码帧; 同时, H264 中还有 IDR 帧, 表示首个 I 帧
PTSDTSGOP:PTS 是 Presentation Time Stamp,DTS 是 Decoding Time Stamp,GOP 是 Group Of Picture
一张图理解 DTSPTSGOP
关于视频压缩编码和音频压缩编码的基本原理点击这里
二 iOS 平台上的音视频
1 音频
音频录制播放使用 AudioUnitAudio Unit 除了书上的内容, 也可以看看我的文章:
Audio Unit 播放 PCM 文件
Audio Unit 录音(播放伴奏 + 耳返)
Audio Unit 播放 aac/m4a/mp3 等文件
Audio Unit 和 ExtendedAudioFile 播放音频
AUGraph 结合 RemoteI/O Unit 与 Mixer Unit
2 视频
视频的渲染使用 OpenGL ESOpenGL ES 除了书上的内容, 也可以看看我的文章:
OpenGL ES 文集
三音频的进阶知识
波形图: 反映各质点在同一时刻不同位移的曲线, 叫做波的图像, 也叫做波形图
频谱图: 以横轴纵轴的波纹方式, 记录画出信号在各种频率的图形(有振幅频谱图和相位频谱图)
语谱图: 针对语音数据的频谱图, 叫语谱图
傅里叶分析: 可分为傅里叶级数 (Fourier Serie) 和傅里叶变换(Fourier Transformation)
你能想到的任何波形都是可以如此方法用正弦波叠加起来
傅里叶级数, 在时域是一个周期且连续的函数, 而在频域是一个非周期离散的函数
傅里叶变换, 将时域信号变换为频域信号
傅里叶分析之掐死教程
如何直观形象生动有趣地给文科学生介绍傅里叶变换?
MIDI 格式: MIDI(Musical Instrument Digital Interface)全称是乐器数字接口, 也是音乐标准格式 MIDI 是音符控制参数等, 在 K 歌软件中用于打分
均衡效果器: 均衡效果器又称为均衡器(Equalizer), 其最大的作用就是决定声音的远近层次我们时常听到别人说这首歌曲是重金属风格的歌曲, 或者说这首歌曲是舞曲风格等, 其实就与声音的远近层次有关不同歌曲风格的区别在于声音在不同频段的提升或衰减
均衡效果器具有美化声音的作用, 即调整音色, 每个人由于自身声道颅腔口腔的形状不同, 导致音色不同如果这个用户所发出的声音在低频部分比较薄弱, 就可以在低频部分予以增强, 使得整个声音听起来更加温暖; 那个用户所发出的声音在高频部分又过于强烈(薄弱), 则可以在高频部分予以减弱(增强), 可以使声音听起来不那么刺耳(更加嘹亮)
当然, 专家级别的混音师在为歌手处理后期混音时, 会有更复杂的调节方法, 比如这个歌手的声音低频部分有瑕疵, 可以提高中频部分来掩盖有瑕疵的低频段的声音
均衡器最早是用来补偿频率缺陷的, 因为那时音频设备的信号品质很差, 在传输过程中损失非常严重, 到最后除非进行信号补偿, 否则信号就会变得极差而现在均衡器更多的应用在掩盖歌手的某一个频段的声音缺陷, 或者增强某一个频段的声音优势上
压缩效果器: 改变输入信号和输出信号电平大小比率的效果器
混响效果器: 声波在传播时会被各种障碍物反射, 且每次反射都被障碍物吸收部分于是听到的声音往往混合了原始声音以及多次反射的声音, 这种现象叫做混响
四音视频实践
1.AACH264 的编解码; 除了书上的内容, 也可以看看我的文章:
使用 VideoToolbox 硬编码 H.264
使用 VideoToolbox 硬解码 H.264
使用 AudioToolbox 编码 AAC
使用 AudioToolbox 播放 AAC
2. 播放器;(音频用 AudioUnit 视频用 FFmepg 解码 OpenGL ES 渲染)
3 直播; 包括录制渲染推流拉流
五其他
书中还介绍了很重要的库 FFmpeg, 还有图像处理的对比度调节饱和度调节图像处理进阶图像的卷积过程锐化效果器高斯模糊算法双边滤波算法图层混合等等, 推荐结合 GPUImage 一起学习 GPUImage 除了书上的内容, 也可以看看 GPUImage 文集
总结
内容讲解深入浅出, 案例丰富多彩, 适合对音视频开发感兴趣的朋友
同时, 内容在深度这块也比较有限, 对于音频相关的知识介绍不足
音频相关的知识寻找不易, 如有好的资料万请分享, 共同学习进步
来源: http://www.jianshu.com/p/315227daffa3