标签分类
当前位置:首页 > 移动开发电子书 > 音视频开发电子书网盘下载
音视频开发进阶指南:基于Android与iOS平台的实践 音视频开发进阶指南:基于Android与iOS平台的实践
立志当大神

立志当大神 提供上传

资源
50
粉丝
40
喜欢
226
评论
20

    音视频开发进阶指南:基于Android与iOS平台的实践 PDF 扫描版

    音视频开发电子书
    • 发布时间:

    给大家带来的一篇关于音视频开发相关的电子书资源,介绍了关于iOS、Android、音视频开发方面的内容,本书是由机械工业出版社出版,格式为PDF,资源大小17.6 MB,展晓凯编写,目前豆瓣、亚马逊、当当、京东等电子书综合评分为:7.9,更多相关的学习资源可以参阅 移动开发电子书程序设计电子书android视频、等栏目。

  • 音视频开发进阶指南:基于Android与iOS平台的实践 PDF 下载
  • 下载地址:https://pan.baidu.com/s/1q9WCvTkQUwW_HLJ0Uvn5v
  • 分享码:5ct5
  • 音视频开发进阶指南:基于Android与iOS平台的实践

    内容介绍

    本书采用从零开始,逐级深入的方式写作,以项目实战为阶段性目标,外加实际生产环境下的特殊案例作为优化方案,让读者可以全方位掌握移动平台下音视频开发的大部分内容。首先介绍实现视频播放器和录制需要的基础知识,然后通过案例讲解如何实现视频播放器和一个视频录制的应用。但是一款录制的应用,要想上线,其实还要进行给音频视频美化,所以在提高篇,介绍了相应的内容,并给出了一个实际生产环境中的案例,之后,指导读者进阶,把前面学到的基础内容应用到直播中。后,给出排错方法和工具,和大家分享如何更有效率地开发应用程序。

    目录

    • 推荐序一
    • 推荐序二
    • 前言
    • 第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编码AAC 156
    • 6.3.2 Android平台的硬件编码器MediaCodec 158
    • 6.3.3 iOS平台的硬件编码器AudioToolbox 161
    • 6.4 视频画面的编码 166
    • 6.4.1 libx264编码H264 166
    • 6.4.2 Android平台的硬件编码器MediaCodec 172
    • 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解码H264 294
    • 10.1.3 MediaCodec解码H264 298
    • 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收集线上Crash 396
    • 13.2 iOS使用Instruments诊断应用 399
    • 13.2.1 Debug Navigator 399
    • 13.2.2 Time Profiler 400
    • 13.2.3 Allocations 402
    • 13.2.4 Leaks 403
    • 13.3 本章小结 405
    • 附录A 通过Ne10的交叉编译输入理解ndk-build 406
    • 附录B 编码器的使用细节 415
    • 附录C 视频的表示与编码 423

    上一篇:你不知道的JavaScript 下卷  下一篇:人工智能简史

    展开 +

    收起 -

    音视频开发 相关电子书
    关于音视频开发的学习笔记
    网友NO.436318

    php、java、android、ios通用的3des方法(推荐)

    php服务器,java服务器,android,ios开发兼容的3des加密解密, php ?phpclass DES3 {var $key = "my.oschina.net/penngo?#@";var $iv = "01234567";function encrypt($input){$size = mcrypt_get_block_size(MCRYPT_3DES,MCRYPT_MODE_CBC);$input = $this-pkcs5_pad($input, $size);$key = str_pad($this-key,24,'0');$td = mcrypt_module_open(MCRYPT_3DES, '', MCRYPT_MODE_CBC, '');if( $this-iv == '' ){$iv = @mcrypt_create_iv (mcrypt_enc_get_iv_size($td), MCRYPT_RAND);}else{$iv = $this-iv;}@mcrypt_generic_init($td, $key, $iv);$data = mcrypt_generic($td, $input);mcrypt_generic_deinit($td);mcrypt_module_close($td);$data = base64_encode($data);return $data;}function decrypt($encrypted){$encrypted = base64_decode($encrypted);$key = str_pad($this-key,24,'0');$td = mcrypt_module_open(MCRYPT_3DES,'',MCRYPT_MODE_CBC,'');if( $this-iv == '' ){$iv = @mcrypt_create_iv (mcrypt_enc_get_iv_size($td), MCRYPT_RAND);}else{$iv = $this-iv;}$ks = mcrypt_enc_get_key_size($td);@mcrypt_generic_init($td, $key, $iv);$decrypted = mdecrypt_generic($td, $encrypted);mcrypt_generic_deinit($td);mcrypt_module_close($td);$y=$this-pkcs5_unpad($decrypted);return $y;}function pkcs5_pad ($text, $blocksize) {$pad = $blocksize - (strlen($text) % $blocksize);return $text . str_repeat(chr($pad), $pad);}function pkcs5_unpad($text){$pad = ord($text{strlen($text)-1});if ($pad strlen($text)) {return false;}if (strspn($text, chr($pad), strlen($text) - $pad) != $pad){return false;}return substr($text, 0, -1 * $pad);}function Padd……

    网友NO.996401

    判断iOS、Android以及PC端的示例代码

    前言 我们在做移动端时,在跨平台、浏览器、移动设备兼容的时候,要根据设备、浏览器做特定调整,想起用navigator.userAgent来对浏览器类型进行判断,查了点资料,在这里总结下 还有一个就是移动端的缩放问题,在meta标签中进行设置,对部分浏览器进行强制性的限制 1.navigator的一些常用属性 navigator为window对象的一个属性,指向了一个包含浏览器相关信息的对象 navigator.appVersion 浏览器的版本号 navigator.language 浏览器使用的语言 navigator.userAgent 浏览器的userAgent信息 其中userAgent 属性是一个只读的字符串,声明了浏览器用于 HTTP 请求的用户代理头的值。 2.较常见的ios端、Android端及PC端的判断 简单点的 /* 判断浏览器类型 */let userAgent = navigator.userAgent;/* 判断手机型号 */let app = navigator.appVersion;/* Android 终端 */let isAndroid = userAgent.indexOf('Android');/* ios终端 */let isMac = !!userAgent.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); 封装性的 /* 判断各类型方法 */const browser = { version: function() { const userAgent = navigator.userAgent; return { /* 判断是否是ios */ ios: !!userAgent.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/), /* 判断是否是Android */ android: userAgent.indexOf('Android') -1 || userAgent.indexOf('Adr') -1, /* 判断是否是移动端 */ mobilePhone: !!userAgent.match(/AppleWebKit.*Mobile.*/), /* IE内核 */ trident: userAgent.indexOf(……

    Copyright 2018-2019 xz577.com 码农之家

    版权责任说明