网站颜色:

7067183|正版包邮现货音视频开发进阶指南:基于Android与iOS平台的实践/音视频传感器/音视频开发教程/开发android/开发ios/.

  • 产品名称:音视频开发进阶指南-基于...
  • 书名:音视频开发进阶指南-基于Android与iOS平台的实践
  • 作者:展晓凯
  • 定价:79.00元
  • 书名:音视频开发进阶指南-基于Android与iOS平台的实践
  • 是否是套装:否
  • 出版社名称:机械工业出版社

书名: 7067183|正版包邮现货音视频开发进阶指南:基于Android与iOS平台的实践/音视频传感器/音视频开发教程/开发android/开发ios/
图书定价: (咨询特价)
图书作者: 展晓凯;魏晓红
出版社: 机械工业出版社
出版日期: 2018-01-01 0:(咨询特价)
ISBN号: (咨询特价)
开本:16开
页数:0
版次:1-1
作者简介
展晓凯,曾工作于,参与设计开发旅行的机票搜索业务,曾就职于115网盘参与核心功能的研发,现就职于北京淘科技有限公司公司,任音视频架构师,在公司的唱吧、唱吧直播间、火星三条产品线都负责客户端核心的架构设计与开发工作,其中唱吧目前公布的数据已有几亿用户,月活也在千万量级,热衷于为可以帮助到的人做出一份自己的力量。
内容简介
本书采用从零开始,逐级深入的方式写作,以项目实战为阶段性目标,外加实际生产环境下的特殊案例作为优化方案,让读者可以全方位掌握移动平台下音视频开发的大部分内容。首先介绍实现视频播放器和录制需要的基础知识,然后通过案例讲解如何实现视频播放器和一个视频录制的应用。但是一款录制的应用,要想上线,其实还要进行给音频视频美化,所以在提高篇,介绍了相应的内容,并给出了一个实际生产环境中的案例,之后,指导读者进阶,把前面学到的基础内容应用到直播中。后,给出排错方法和工具,和大家分享如何更有效率地开发应用程序。
目录
推荐序一
推荐序二
前言
第1章 音视频基础概念1
1.1 声音的物理性质1
1.1.1 声音是波1
1.1.2 声波的三要素2
1.1.3 声音的传播介质3
1.1.4 回声3
1.1.5 共鸣4
1.2 数字音频4
1.3 音频编码6
1.4 图像的物理现象7
1.5 图像的数值表示8
1.5.1 RGB表示方式8
1.5.2 YUV表示方式9
1.5.3 YUV和RGB的转化10
1.6 视频的编码方式10
1.6.1 视频编码10
1.6.2 编码概念11
1.7 本章小结13
第2章 移动端环境搭建14
2.1 在iOS上如何搭建一个基础项目14
2.2 在Android上如何搭建一个基础项目21
2.3 交叉编译的原理与实践26
2.3.1 交叉编译的原理26
2.3.2 iOS平台交叉编译的实践27
2.3.3 Android平台交叉编译的实践33
2.3.4 使用LAME编码MP3文件38
2.4 本章小结42
第3章 FFmpeg的介绍与使用43
3.1 FFmpeg的编译与命令行工具的使用43
3.1.1 FFmpeg的编译43
3.1.2 FFmpeg命令行工具的使用51
3.2 FFmpeg API的介绍与使用60
3.3 FFmpeg源码结构68
3.3.1 libavformat与libavcodec介绍68
3.3.2 FFmpeg通用API分析69
3.3.3 调用FFmpeg解码时用到的函数分析70
3.3.4 调用FFmpeg编码时用到的函数分析71
3.3.5 面向对象的C语言设计72
3.4 本章小结74
第4章 移动平台下的音视频渲染75
4.1 AudioUnit介绍与实践75
4.2 Android平台的音频渲染84
4.2.1 AudioTrack的使用85
4.2.2 OpenSL ES的使用87
4.3 视频渲染90
4.3.1 OpenGL ES介绍90
4.3.2 OpenGL ES的实践91
4.3.3 上下文环境搭建98
4.3.4 OpenGL ES中的纹理104
4.4 本章小结109
第5章 实现一款视频播放器110
5.1 架构设计110
5.2 解码模块的实现115
5.3 音频播放模块的实现118
5.3.1 Android平台的音频渲染118
5.3.2 iOS平台的音频渲染119
5.4 画面播放模块的实现121
5.4.1 Android平台的视频渲染121
5.4.2 iOS平台的视频渲染122
5.5 AVSync模块的实现124
5.5.1 维护解码线程124
5.5.2 音视频同步125
5.6 中控系统串联起各个模块127
5.6.1 初始化阶段127
5.6.2 运行阶段128
5.6.3 销毁阶段129
5.7 本章小结130
第6章 音视频的采集与编码131
6.1 音频的采集131
6.1.1 Android平台的音频采集131
6.1.2 iOS平台的音频采集134
6.2 视频画面的采集137
6.2.1 Android平台的视频画面采集137
6.2.2 iOS平台的视频画面采集146
6.3 音频的编码156
6.3.1 libfdk_aac编码AAC156
6.3.2 Android平台的硬件编码器MediaCodec158
6.3.3 iOS平台的硬件编码器AudioToolbox161
6.4 视频画面的编码166
6.4.1 libx264编码H(咨询特价)
6.4.2 Android平台的硬件编码器MediaCodec172
6.4.3 iOS平台的硬件编码器175
6.5 本章小结184
第7章 实现一款视频录制应用185
7.1 视频录制的架构设计 185
7.2 音频模块的实现 188
7.2.1 音频队列的实现189
7.2.2 Android平台的实现191
7.2.3 iOS平台的实现194
7.3 音频编码模块的实现 198
7.3.1 改造编码器198
7.3.2 编码器适配器199
7.4 画面采集与编码模块的实现 202
7.4.1 视频队列的实现202
7.4.2 Android平台画面编码后入队203
7.4.3 iOS平台画面编码后入队204
7.5 Mux模块205
7.5.1 初始化206
7.5.2 封装和输出208
7.5.3 销毁资源212
7.6 中控系统串联起各个模块213
7.7 本章小结214
第8章 音频效果器的介绍与实践215
8.1 数字音频基础215
8.1.1 波形图215
8.1.2 频谱图217
8.1.3 语谱图219
8.1.4 深入理解时域与频域219
8.2 数字音频处理:快速傅里叶变换222
8.3 基本乐理知识229
8.3.1 乐谱229
8.3.2 音符的音高与十二平均律231
8.3.3 音符的时值233
8.3.4 节拍233
8.3.5 MIDI格式234
8.4 混音效果器235
8.4.1 均衡效果器236
8.4.2 压缩效果器239
8.4.3 混响效果器240
8.5 效果器实现243
8.5.1 Android平台实现效果器243
8.5.2 iOS平台实现效果器252
8.6 本章小结255
第9章 视频效果器的介绍与实践256
9.1 图像处理的基本原理256
9.1.1 亮度调节257
9.1.2 对比度调节258
9.1.3 饱和度调节259
9.2 图像处理进阶259
9.2.1 图像的卷积过程260
9.2.2 锐化效果器260
9.2.3 高斯模糊算法262
9.2.4 双边滤波算法263
9.2.5 图层混合介绍264
9.3 使用FFmpeg内部的视频滤镜266
9.3.1 FFmpeg视频滤镜介绍266
9.3.2 滤镜图的构建267
9.3.3 使用与销毁滤镜图269
9.3.4 常用滤镜介绍270
9.4 使用OpenGL ES实现视频滤镜272
9.4.1 加水印273
9.4.2 添加自定义文字278
9.4.3 美颜效果器282
9.4.4 动图贴纸效果器284
9.4.5 主题效果器288
9.5 本章小结291
第10章 专业的视频录制应用实践292
10.1 视频硬件解码器的使用292
10.1.1 初始化信息准备292
10.1.2 VideoToolbox解码H(咨询特价)
10.1.3 MediaCodec解码H(咨询特价)
10.2 音频效果器的集成304
10.2.1 Android音效处理系统的实现305
10.2.2 iOS音效处理系统的实现308
10.3 一套跨平台的视频效果器的设计与实现309
10.4 将特效处理库集成到视频录制项目中315
10.4.1 Android平台特效集成316
10.4.2 iOS平台特效集成321
10.5 本章小结325
第11章 直播应用的构建327
11.1 直播场景分析327
11.2 拉流播放器的构建329
11.2.1 Android平台播放器增加后处理过程329
11.2.2 iOS平台播放器增加后处理过程332
11.3 推流器的构建335
11.4 第三方云服务介绍340
11.5 礼物系统的实现341
11.5.1 Cocos2dX项目的运行原理342
11.5.2 关键API详解344
11.5.3 实现一款动画348
11.6 聊天系统的实现350
11.6.1 Android客户端的WebSocket实现351
11.6.2 iOS客户端的WebSocket实现352
11.7 本章小结353
第12章 直播应用中的关键处理354
12.1 直播应用的细节分析354
12.1.1 推流端细节分析354
12.1.2 拉流端细节分析355
12.2 推流端的关键处理355
12.2.1 自适应码率的实践356
12.2.2 统计数据保证后续的应对策略361
12.3 拉流端的关键处理363
12.3.1 重试机制的实践364
12.3.2 首屏时间的保证366
12.3.3 统计数据保证后续的应对策略370
12.4 本章小结371
第13章 工欲善其事,必先利其器372
13.1 Android平台工具详解372
13.1.1 ADB工具的熟练使用372
13.1.2 MAT工具检测Java端的内存泄漏377
13.1.3 NDK工具详解387
13.1.4 Native层的内存泄漏检测389
13.1.5 breakpad收集线上Crash396
13.2 iOS使用Instruments诊断应用399
13.2.1 Debug Navigator399
13.2.2 Time Profiler400
13.2.3 Allocations402
13.2.4 Leaks403
13.3 本章小结405
附录A 通过Ne10的交叉编译输入理解ndk-build406
附录B 编码器的使用细节415
附录C 视频的表示与编码423
为什么要写这本书
整个音视频领域的架构以及开发已经演进了很长时间,从最开始的广电领域,到PC端的音视频领域,再到本书所介绍的移动端的音视频领域。尤其在这几年中,移动端音视频领域架构的变化是巨大的。在移动互联网的发展热潮中,我有幸从事了音视频领域的设计与开发,并且就职于最时尚的KTV——唱吧,这使得我开发出来的东西能够服务于几亿用户。对于音视频的移动端的应用,不论是开发还是使用,在近两年都达到了一个高峰,而作为一名工程师,如何高效地开发出一个音视频App,是一件非常困难的事情,特别是对于不太了解音视频概念的工程师。我从事软件开发已有7年多的时间,接触音视频领域也已经有5年多,在整个开发过程中,不同的时间段会遇到不同的挑宅尤其是在最开始涉足音视频领域的时候,真可谓举步维艰。首先,对于音视频的基础概念不是特别清楚,再者在工作中边学边做,很难对整个音视频领域有一个全面的了解,并且市面上没有相关成熟的资料从更高的层次来介绍音视频领域在移动端的演进与发展。这几年的设计实战与开发经验,以及带新人入门的众多感触,让我有了写这本书的动力,同时也形成了这本书的核心内容,我希望通过本书可以帮助更多想要在移动端音视频领域实现自己想法的工程师,让大家可以顺利地建立起自己的音视频App。我非常希望能为刚入门的读者或者遇到困难的读者提供帮助,希望大家可以享受整个开发的过程,享受自己开发的产品为人们的生活带来便利的成就感。另外,从整个音视频开发领域来讲,我也十分希望能够通过本书贡献出自己的绵薄之力。
读者对象
产品经理,这部分读者可以从中了解在移动端进行音视频开发会遇到的很多问题以及对应的优化策略,例如:如何通过音视频的统计数据为产品提供更加流畅的策略(视频观看的秒开、直播推流的流畅度、视频上传的成功率等)。
项目经理,这部分读者可以了解很多时下流行的名词与概念,不再会因为几个专业名词就让自己不知所措,并且有助于更好地评估音视频项目开发中的风险与进度。
测试人员,这部分读者可以学习在音视频App中由于处理过程不同而导致的瓶颈问题,书中也提到了一些自动化测试相关的命令以及工具,可以对CPU的负载情况、内存的占用情况、内存泄漏问题等进行分析。
架构师与工程师,这部分读者只需要一点移动开发经验就可以阅读本书了。当然如果你已经是一个高级移动开发工程师或者架构师,那么读起本书来将更加游刃有余。再进一铂如果你已经是移动领域的音视频开发工程师了,那么恭喜你,我们之间将会有一场关于技术领域内部的对话。
开设相关课程的高等院校。
如何阅读本书
为了避免说教式的讲解带来枯燥乏味的阅读体验,本书给出了大量的实例及生产环境下的案例。本书可分为四个部分:第一部分是入门,从理论基础开始讲解,最终会产生两个实践项目;第二部分是提高,基于第一部分的项目添加特效,形成一个完整的多媒体项目;第三部分是扩展,结合当下比较流行的直播场景进行实际案例分析;第四部分胜具,介绍当下大部分可以提高开发以及测试效率的工具。下面是各个章节的基本介绍。
第1章,介绍音视频的基础概念,其中包括音视频的基础数据格式、编码后的数据格式以及不同格式之间的相互转换等。
第2章,从零开始讲解如何搭建一个iOS项目和一个Android项目,并且添加C++支持,因为在音视频领域的开发中,有相当一部分的代码需要用C++来编写,这样就可以做到两个平台(Android和iOS平台)共用一套代码仓库,以提升开发效率。然后讲解交叉编译,因为在音视频开发过程中会用到很多第三方开源库,如果将这些库编译到我们的项目中,势必要进行交叉编译,因此本章会重点讲解这些内容。
第3章,探讨FFmpeg开源库。对于音视频开发来讲,FFmpeg开源库是众所周知也是普遍使用的。本章首先从编译开始,接着是命令行使用,再到源码结构,最后是API调用,以层层递进的方式对FFmpeg开源库展开介绍。
第4章,讲解如何利用各自平台的API进行声音与画面的渲染以及解码,对于画面的渲染,推荐使用OpenGL ES,两个平台可以使用同一个代码仓库。
第5章,实现一款视频播放器。有了前四章的基础,我们已经完全可以构建起一个视频播放器了。本书最大的特点就是经过几章基础知识的学习立即开始一个项目的实践,通过本章的视频播放器项目,我们将会熟悉播放器是如何工作的。
第6章,重点介绍音视频的采集与编码器。特别是硬件编解码器在各个平台上的使用,使得应用能够更高效(耗电更少、发热更少、界面更流畅)地运行在用户的上。
第7章,继续开发一个视频录制的新项目,该项目可以使我们更加熟悉音视频应用在各个平台下的实现。
第8章,讲解如何处理音频流。毕竟让别人听采集出来的干声是很不礼貌的,本章将利用各种特效来美化采集的声音。
第9章,讲解如何处理视频流,使视频中的颜值变得更高,毕竟爱美之心人皆有之。
第10章,在第7章的项目基础之上,增加第8章的音频特效和第9章的视频特效,从而构建一个实际生产过程中的多媒体应用。
第11章,继续以项目作为驱动,详细讲解如何基于之前学习的内容构建一个直播的应用,重点介绍推流以及拉流端,同时还涉及礼物特效、聊天以及第三方云服务的内容。
第12章,由于直播应用很难用一章的篇幅讲完,所以本章针对一些核心的处理进行讲解。
第13章,介绍常用的工具和排错方法,说明在日常开发中如何更有效率地解决问题,本章内容并不仅限于音视频的开发领域。
附录给出一些参考内容。
勘误和支持
由于作者水平有限,编写时间仓促,书中难免会出现一些错误或者不准确的地番恳请读者批评指正。为此,我特意创建了一个在线支持与应急方案的二级站点http://pic.witcp.com/pic/music-video.cn。你可以将书中的错误发布在Bug勘误表页面中,同时如果你遇到问题,也可以访问Q&A页面,我将尽量在线上为你提供最满意的解答。书中的全部源代码文件都将发布在这个网站上,我也会及时地进行相应的功能更新。如果你有更多的宝贵意见,也欢迎发送邮件至我的邮箱zhanxiaokai2008@126.com,我很期待听到你们的真挚反馈。
致谢
感谢唱吧与唱吧的每一位同事,是这个公司让我的职业生涯发展到了今天,也是这个公司让我能在音视频领域达到今天的成就,可以说没有唱吧就不会有这本书的问世。
感谢唱吧的每一位用户,感谢你们对唱吧的长期支持和贡献,没有你们就不会有唱吧的今天,也就不会有这本书的问世。
感谢我的老婆,感谢你对我工作以及写作的支持,是你在我背后默默做了很多事情,才让我把更多的时间和精力放到工作以及写作中。
感谢机械工业出版社华章公司的编辑Lisa老师,感谢你的魄力和远见,在这一年多的时间中始终支持我的写作,正是你的鼓励和帮助引导我顺利完成全部书稿。
感谢互联网,我们在互联网上迈出的任何一步都是人类历史向前迈进的一铂感谢众多互联网人的辛苦工作,为我们创造了这么多机遇。
谨以此书献给我最亲爱的家人、同事,以及众多互联网从业者。
展晓凯
(咨询特价)年9月于北京
..

本店所售图书均为正版书籍

热门设计服务