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-->解码-->播放
几个重要的环节
- 录制音视频 AudioRecord/MediaRecord
- 视频剪辑
- 音视频编码
- 上传大文件 网络框架,进度监听,断点续传
- 流媒体传输 流媒体传输协议
- 音视频解码
- 渲染播放 MediaPlayer
目前MediaPlayer可支持的视频格式为mp4,3gp,wmv ,可支持的音频格式为mp3,ogg。
视频播放器选择
- 系统自带的VideoView
- MediaPlayer+ SurfaceView/TextureView
- 第三方SDK,如ijkplayer
第一种,无法自定义UI,放弃 第二种,无法解码所有的视频格式 第三种,功能强大,支持各种视频格式
摘抄
历史上的今天
暂无评论...
随机推荐
西蒙·阿米德奇 :黄昏
你十二三岁时从后门溜出去还不太晚,你许诺着不会走太久,不会太远 有一天你将知悉沿途那些树的名字你挑两条溪流之间的小路往下走这里是沃德峡谷,这里是洛伊德悬崖 山顶还燃着阳光黄昏在低坡前撵上了你黄昏的指节在脊柱上抚过 转身,回家吧孩子睡在一张太...
Post请求前端后端简单记录
前言简单记录一下JavaScript和PHP中,使用post方法发送请求到后端并处理响应。偶尔需要用,简单记录一下,方便自己查阅。主要摘抄,只是参考思路,具体还是结合自己代码使用正文通常涉及以下步骤:发送POST请求。后端处理请求并返回数据在前端,使用回调函数处理后...
JNI动态注册
前言之前其实写过,代码不见了,为了走一下流程,重新简单的写了一个。正文动态注册动态注册java的Native方法,使得c/c++方法名可以和java的Native方法名可以不同。动态注册是将二者方法名关联起来,以后在修改Native方法名时,只需修改动态注册关联的方法名称即可。优点:...
open failed EACCES (Permission denied)
前言最近Android 10上读取文件时,出现如下异常:03-27 01:07:14.882 W/System.err(18732): java.io.FileNotFoundException: /storage/udisk2/wawa.mp3: open failed: EACCES (P...
[摘]js中对函数设置默认参数值的3种方法
在javascript中如何为函数设置默认参数值,下面提供几种方法供大家参考。第一种方法:function example(a,b){ var a = arguments[0] ? arguments[0] : 1;//设置参数a的默认值为1 var b = argume...
史铁生:有关庙的回忆
据说,过去北京城内的每一条胡同都有庙,或大或小总有一座。这或许有夸张成分。但慢慢回想,我住过以及我熟悉的胡同里,确实都有庙或庙的遗迹。在我出生的那条胡同里,与我家院门斜对着,曾经就是一座小庙。我见到它时它已改作油坊,庙门、庙院尚无大变,惟走了僧人,常有马车运来大包小包的花生、芝麻,院子里终日磨声隆...