shui知道

最在学习这个,这个博主总结得不错,因此摘抄于此,以方便自己查阅。

可访问改博主sofarsogoo_932d的一系列文章《音视频学习系列》,感谢他的分享。

什么是音/视频

声音的集合

  • 视频

图片的集合,当一段连续的图片不断的出现在人眼前(至少要求1秒24帧,即一秒内连续出现24张图片),肉眼就会欺骗性的告诉大脑我们在看一个视频,而不是幻灯片。

编码和解码

编码:对原始音视频文件进行压缩。

解码:对压缩过的音视频文件解压缩,从而完成播放功能。

为什么要进行编码和解码

我们来做一个算术题,假设一张图片的像素为1280720图片大小:12807203 byte, 大约就是2.7MB,注意:乘以3byte的原因,一个像素点至少需要三原色(RGB)来显示像素本身的颜色,比如一个颜色 #FFFFFF,46=24bit=3 byte

一秒钟需要24张图片,2.7MB*24=64.8MB

一分钟的视频图片大小,64.8MB*60=3.8GB

假设一个电影的时长为1个小时,贼该电影所需要的存储空间为3.8*60=228GB,这显然是不能被我们接受的。

安卓音视频开发完整流程

播放流程: 获取流–>解码–>播放

录制播放流程: 录制音频视频–>剪辑–>编码–>上传服务器 别人播放.

直播过程 : 录制音视频–>编码–>流媒体传输–>服务器—>流媒体传输到其他app–>解码–>播放

几个重要的环节

  1. 录制音视频 AudioRecord/MediaRecord
  2. 视频剪辑
  3. 音视频编码
  4. 上传大文件 网络框架,进度监听,断点续传
  5. 流媒体传输 流媒体传输协议
  6. 音视频解码
  7. 渲染播放 MediaPlayer

目前MediaPlayer可支持的视频格式为mp4,3gp,wmv ,可支持的音频格式为mp3,ogg。

视频播放器选择

  1. 系统自带的VideoView
  2. MediaPlayer+ SurfaceView/TextureView
  3. 第三方SDK,如ijkplayer

第一种,无法自定义UI,放弃 第二种,无法解码所有的视频格式 第三种,功能强大,支持各种视频格式

摘抄

  1. 音视频学习系列第(一)篇—基础概念

相关文章

暂无评论

none
暂无评论...