类似推荐
编辑推荐
从零开始,手把手教你开发音视频。
内容简介
本书采用从零开始,逐级深入的方式写作,以项目实战为阶段性目标,外加实际生产环境下的特殊案例作为优化方案,让你可以全方位掌握移动平台下音视频开发的大部分内容。
首先介绍实现视频播放器和录制需要的基础知识,然后通过案例讲解如何实现视频播放器和一个视频录制的应用。但是一款录制的应用,要想上线,其实还要进行给音频视频美化,所以在提高篇,介绍了相应的内容,并给出了一个实际生产环境中的案例,之后,指导读者进阶,把前面学到的基础内容应用到直播中。最后,给出排错方法和工具,和大家分享如何更有效率地开发应用程序。
作者简介
作者展晓凯,曾工作于淘宝,参与设计开发淘宝旅行的机票搜索业务,曾就职于115网盘参与核心功能的研发,现就职于北京淘科技有限公司公司,任音视频架构师,在公司的唱吧、唱吧直播间、火星三条产品线都负责客户端核心的架构设计与开发工作,其中唱吧目前公布的数据已有几亿用户,月活也在千万量级,热衷于为可以帮助到的人做出一份自己的力量。
章节目录
版权信息
推荐序一
推荐序二
前言
为什么要写这本书
读者对象
如何阅读本书
勘误和支持
致谢
第1章 音视频基础概念
1.1 声音的物理性质
1.1.1 声音是波
1.1.2 声波的三要素
1.1.3 声音的传播介质
1.1.4 回声
1.1.5 共鸣
1.2 数字音频
1.3 音频编码
1.4 图像的物理现象
1.5 图像的数值表示
1.5.1 RGB表示方式
1.5.2 YUV表示方式
1.5.3 YUV和RGB的转化
1.6 视频的编码方式
1.6.1 视频编码
1.6.2 编码概念
1.7 本章小结
第2章 移动端环境搭建
2.1 在iOS上如何搭建一个基础项目
增加C++支持
2.2 在Android上如何搭建一个基础项目
增加C++支持
2.3 交叉编译的原理与实践
2.3.1 交叉编译的原理
2.3.2 iOS平台交叉编译的实践
2.3.3 Android平台交叉编译的实践
2.3.4 使用LAME编码MP3文件
2.4 本章小结
第3章 FFmpeg的介绍与使用
3.1 FFmpeg的编译与命令行工具的使用
3.1.1 FFmpeg的编译
3.1.2 FFmpeg命令行工具的使用
3.2 FFmpeg API的介绍与使用
3.3 FFmpeg源码结构
3.3.1 libavformat与libavcodec介绍
3.3.2 FFmpeg通用API分析
3.3.3 调用FFmpeg解码时用到的函数分析
3.3.4 调用FFmpeg编码时用到的函数分析
3.3.5 面向对象的C语言设计
3.4 本章小结
第4章 移动平台下的音视频渲染
4.1 AudioUnit介绍与实践
4.2 Android平台的音频渲染
4.2.1 AudioTrack的使用
4.2.2 OpenSL ES的使用
4.3 视频渲染
4.3.1 OpenGL ES介绍
4.3.2 OpenGL ES的实践
4.3.3 上下文环境搭建
4.3.4 OpenGL ES中的纹理
4.4 本章小结
第5章 实现一款视频播放器
5.1 架构设计
5.2 解码模块的实现
5.3 音频播放模块的实现
5.3.1 Android平台的音频渲染
5.3.2 iOS平台的音频渲染
5.4 画面播放模块的实现
5.4.1 Android平台的视频渲染
5.4.2 iOS平台的视频渲染
5.5 AVSync模块的实现
5.5.1 维护解码线程
5.5.2 音视频同步
5.6 中控系统串联起各个模块
5.6.1 初始化阶段
5.6.2 运行阶段
5.6.3 销毁阶段
5.7 本章小结
第6章 音视频的采集与编码
6.1 音频的采集
6.1.1 Android平台的音频采集
6.1.2 iOS平台的音频采集
6.2 视频画面的采集
6.2.1 Android平台的视频画面采集
6.2.2 iOS平台的视频画面采集
6.3 音频的编码
6.3.1 libfdk_aac编码AAC
6.3.2 Android平台的硬件编码器MediaCodec
6.3.3 iOS平台的硬件编码器AudioToolbox
6.4 视频画面的编码
6.4.1 libx264编码H264
6.4.2 Android平台的硬件编码器MediaCodec
6.4.3 iOS平台的硬件编码器
6.5 本章小结
第7章 实现一款视频录制应用
7.1 视频录制的架构设计
7.2 音频模块的实现
7.2.1 音频队列的实现
7.2.2 Android平台的实现
7.2.3 iOS平台的实现
7.3 音频编码模块的实现
7.3.1 改造编码器
7.3.2 编码器适配器
7.4 画面采集与编码模块的实现
7.4.1 视频队列的实现
7.4.2 Android平台画面编码后入队
7.4.3 iOS平台画面编码后入队
7.5 Mux模块
7.5.1 初始化
7.5.2 封装和输出
7.5.3 销毁资源
7.6 中控系统串联起各个模块
7.7 本章小结
第8章 音频效果器的介绍与实践
8.1 数字音频基础
8.1.1 波形图
8.1.2 频谱图
8.1.3 语谱图
8.1.4 深入理解时域与频域
8.2 数字音频处理:快速傅里叶变换
8.3 基本乐理知识
8.3.1 乐谱
8.3.2 音符的音高与十二平均律
8.3.3 音符的时值
8.3.4 节拍
8.3.5 MIDI格式
8.4 混音效果器
8.4.1 均衡效果器
8.4.2 压缩效果器
8.4.3 混响效果器
8.5 效果器实现
8.5.1 Android平台实现效果器
8.5.2 iOS平台实现效果器
8.6 本章小结
第9章 视频效果器的介绍与实践
9.1 图像处理的基本原理
9.1.1 亮度调节
9.1.2 对比度调节
9.1.3 饱和度调节
9.2 图像处理进阶
9.2.1 图像的卷积过程
9.2.2 锐化效果器
9.2.3 高斯模糊算法
9.2.4 双边滤波算法
9.2.5 图层混合介绍
9.3 使用FFmpeg内部的视频滤镜
9.3.1 FFmpeg视频滤镜介绍
9.3.2 滤镜图的构建
9.3.3 使用与销毁滤镜图
9.3.4 常用滤镜介绍
9.4 使用OpenGL ES实现视频滤镜
9.4.1 加水印
9.4.2 添加自定义文字
9.4.3 美颜效果器
9.4.4 动图贴纸效果器
9.4.5 主题效果器
9.5 本章小结
第10章 专业的视频录制应用实践
10.1 视频硬件解码器的使用
10.1.1 初始化信息准备
10.1.2 VideoToolbox解码H264
10.1.3 MediaCodec解码H264
10.2 音频效果器的集成
10.2.1 Android音效处理系统的实现
10.2.2 iOS音效处理系统的实现
10.3 一套跨平台的视频效果器的设计与实现
10.4 将特效处理库集成到视频录制项目中
10.4.1 Android平台特效集成
10.4.2 iOS平台特效集成
10.5 本章小结
第11章 直播应用的构建
11.1 直播场景分析
11.2 拉流播放器的构建
11.2.1 Android平台播放器增加后处理过程
11.2.2 iOS平台播放器增加后处理过程
11.3 推流器的构建
11.4 第三方云服务介绍
11.5 礼物系统的实现
11.5.1 Cocos2dX项目的运行原理
11.5.2 关键API详解
11.5.3 实现一款动画
11.6 聊天系统的实现
11.6.1 Android客户端的WebSocket实现
11.6.2 iOS客户端的WebSocket实现
11.7 本章小结
第12章 直播应用中的关键处理
12.1 直播应用的细节分析
12.1.1 推流端细节分析
12.1.2 拉流端细节分析
12.2 推流端的关键处理
12.2.1 自适应码率的实践
12.2.2 统计数据保证后续的应对策略
12.3 拉流端的关键处理
12.3.1 重试机制的实践
12.3.2 首屏时间的保证
12.3.3 统计数据保证后续的应对策略
12.4 本章小结
第13章 工欲善其事,必先利其器
13.1 Android平台工具详解
13.1.1 ADB工具的熟练使用
13.1.2 MAT工具检测Java端的内存泄漏
13.1.3 NDK工具详解
13.1.4 Native层的内存泄漏检测
13.1.5 breakpad收集线上Crash
13.2 iOS使用Instruments诊断应用
13.2.1 Debug Navigator
13.2.2 Time Profiler
13.2.3 Allocations
13.2.4 Leaks
13.3 本章小结
附录A 通过Ne10的交叉编译输入理解ndk-build
A.1 Ne10简介
A.2 编译和运行官方Demo
A.3 通过Ne10的编译来看ndk-build的执行过程
A.4 Ne10提供的Math函数列表
A.5 FFT性能测试
附录B 编码器的使用细节
B.1 AAC编码器的使用细节
B.2 FFmpeg中使用libx264的码率控制
附录C 视频的表示与编码
C.1 视频帧的表示格式
C.2 显卡上传中字节对齐
C.3 编码器的工作编码原理
音视频开发进阶指南:基于Android与iOS平台的实践是2017年由机械工业出版社华章分社出版,作者展晓凯。
得书感谢您对《音视频开发进阶指南:基于Android与iOS平台的实践》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。