一部童年电影带你搞懂,音视频开发到底是个啥玩意

音视频开发

到底是个什么东西?


在一个夜黑风高的晚上,一颗激动的心,一双颤抖的手,点开了那个神秘的网站。


进去后,一股东京的热浪扑面而来。那一刻,眼前电影的激情丝毫不逊色于好莱坞大片。


那狂野而又原始的咆哮,刺激着你身体的每一个细胞。


你也情不自禁的随着电影动了起来。


两分钟后,随着身体的一阵颤抖,整部电影变得索然无味。


进入了贤者模式的小马开始思考,这么精彩的电影,是怎么呈现到我面前的呢?


 

1

步骤分析

 

假设电影的主角名叫小泽。那么小泽老师从拍电影,到你看电影这中间,发生了什么呢?

简单来说,音视频开发就是要掌握图像、视频、音频的基本知识,并对它们实施采集、渲染、处理、传输等一系列操作。


  • 采集

首先,肯定得需要一台摄像机....咳咳,没错,摄像机一秒钟可以捕获30张小泽的照片,也就是30帧。也就是我们所看到的:视频


光看画面肯定是不行的,怎么能没有小泽老师甜美的声音呢。所以,我们还需要麦克风,来采集小泽的声音,也就是我们所听到的:音频


  • 编码

声音和视频的数据特别大,并且重复数据很多。为了传输和存储,需要将冗余数据去掉,这就需要编码。什么h264,h265说的就是编码的算法


原始数据为什么要编码呢?直接保存不行么,其实主要是为了减小文件的大小,便于传输和保存。如果不经过编解码处理,那一部几分钟的电影可能就要几个G大小。那么大的文件,想象一下你在偷偷下载或者拷贝的时候,是多么的焦虑。


  • 封装

编码后的数据会被封装起来。相当于Java的容器,可以有hashmap,linkedList的,音视频的格式类型可以有MP4、MKV等等封装格式。


  • 传输

传输解决的就是小泽老师的作品,是怎么通过播放器(平台)呈现到你面前的问题了。你既可以看小泽老师的直播,也可以看小泽老师的视频。既可以在线看,也可以下载后离线观看。甚至可以从隔壁小马的U盘里拷贝过来,这都是传输路径。数据共享最重要的一点就是传输协议。产生的带宽不一样,费用也不同。


  • 解封装

播放器首先会解封装,将小泽的身姿(视频),甜美的声音(音频)等数据解析出来。


  • 解码

解析出来的数据不能够被播放器直接使用,所以还需要视频解码(以前的播放器加载的时候会显示解码中,小伙伴们应该都看到过,比如现在的bilibili)。回到主题,摄像机所采集的数据是需要通过编码才可以封装成MP4的,所以当播放器将视频提取出来的时候,也就需要解码才可以播放出来。


  • 渲染播放

无论是哪个平台、哪个播放器。图像、视频最终都是要绘制到视图上面,而音频最终都是要输出到扬声器。平台(播放器)将解码后的视频、音频同步后,分别交给视频驱动(显卡)和音频驱动(扬声器)。就是最终呈现在你面前的小电影了。


用一张流程图总结一下:


看到这里大家是不是觉得Android音视频开发好像也就那么回事呢?理解起来也不难嘛。


为了要大家更轻松无痛的上手学习Android音视频开发。我特邀前爱奇艺高级工程师Lance为大家带来《Android--音视频开发实战》直播分享,两天时间,秋名山车神带你熟练掌握音视频编码实战、泛娱乐直播系统分析和推流实战!


 Lance老师 

前爱奇艺高级工程师,某游戏公司主程

专精领域:移动平台开发,NDK、架构、性能优化;

 

2

适合人群
  • 具备移动开发基础;

  • 具备一定自学能力;

  • 立志成为高级工程师、架构师的安卓开发者;

 

3

课程大纲

3.15 Android音视频编解码实战

  • 音视频编解码原理

  • h264码流分析

  • Android 编码实践


3.16 泛娱乐直播系统分析与推流实战

  • 直播系统组成与流媒体协议

  • RTMP协议规范

  • 手机端推流器实践

 

4

专属福利

《Android音视频开发入门进阶核心笔记》



音视频知识庞杂,通俗易懂的资料非常少,目前也没有比较系统的教程或者书籍,网上的博客文章也都是比较零散的,可能还充斥着大量的错误信息,使得很多初学者掉到坑里就爬不出来了。有了这份学习笔记,可以助你在音视频学习中节省大量时间。

 

5

报名参加

文中福利免费赠给参加训练营的学员

加薇薇老师微信报名训练营

立即获取

(如遇扫码频繁受限,点击左下角的阅读原文

本文分享自微信公众号 - 音视频开发进阶(glumes_blog)。
如有侵权,请联系 [email protected] 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章