![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android 音视频开发
文章平均质量分 58
wjxbless
如果觉得简单,那就多思考
展开
-
音视频同步方法
音视频同步方法音频向视频同步视频向音频同步统一向外部时钟同步音频向视频同步视频保持一定的刷新帧率,填充音频数据时会和当前渲染的视频帧的时间戳进行比较,如果差值不在阈值范围内则进行对齐操作如果音频时间戳小于视频的时间戳,则进行跳帧操作(加快速度或者丢弃部分音频)如果音频时间戳大于视频的时间戳,则进行等待(补空白帧)优点:画面流畅缺点:插帧或者丢帧用户是可以感受到的视频向音频同步因为任何平台播放音频的引擎都可以保证播放的音频时间长度和实际音频所代表的时间长度一致原创 2021-03-02 00:08:04 · 1126 阅读 · 0 评论 -
OpenGL ES实践
OpenGL 渲染管线(OpenGL 渲染图像的流程)几何图元:包括点、直线、三角形、均是铜鼓哦顶点vertex来指定的模型:根据几何图元创建的物体渲染:计算机根据模型创建图像的过程渲染结束后:在内存中,像素点组成一个大的一维数组,每4个Byte表示一个像素点的RGBA数据,在显卡中,这些像素点可以组成帧缓冲区(保存了图形硬件为了控制屏幕上所有像素的颜色和强度所需要的全部信息)渲染管线阶段阶段一:指定几何对象GL_POINTS:以点的形式进行绘制GL_LINES:以线的形式进行绘原创 2021-02-16 23:01:10 · 313 阅读 · 0 评论 -
MediaRecorder生命周期
MediaRecorder状态图MediaRecorder是一个状态机,通过调用一系列方法进行状态之间的转换状态说明Initial:通过MediaRecorder实例化类对象时处于初始化状态,此时MediaRecorder会占用系统资源,所有状态会通过reset()方法返回到该状态Initialized:使用setAudioSource()或者时setVideoSource()方法后进入音频或者视频录制,并可以指定音视频的文件属性,设置完成之后进入DataSourceConfigured状态原创 2021-02-16 21:46:39 · 392 阅读 · 0 评论 -
MediaCodec 使用(二)-- YUV打包成MP4
图像数据格式简介YUV格式:planar:先连续存储所有像素点的Y,紧接着存储所有像素点的U,再存储所有像素点的V,将Y、U、V的三个分量分别存放在不同的矩阵中packed:将Y、U、V值存储成Macro Pixels数组,和RGB的存放方式类似YUV存储:主流的采样方式主要有:YUV444,YUV422,YUV420,只有正确的还原每个像素点的YUV值,才能通过YUV与RGB的转换公式提取出每个像素点的RGB值,然后显示出来YUV 4:4:4表示完全取样,每一个Y对应一组UV分量原创 2021-01-24 21:05:39 · 843 阅读 · 1 评论 -
AudioManager使用
作用官方提供的音量和铃声管理类API方法意义adjustVolume控制手机音量,调大或者调小一个单位,根据第一个参数进行判断 AudioManager.ADJUST_LOWER,可调小一个单位; AudioManager.ADJUST_RAISE,可调大一个单位setStreamVolume直接设置音量大小getStreamVolume获得手机的当前音量,最大值为7,最小值为0,当设置为0的时候,会自动调整为震动模式setStreamMute将手机某原创 2021-01-21 00:18:44 · 439 阅读 · 1 评论 -
MediaCodec原理及使用
使用MediaCodec目的MediaCodec是Android底层多媒体框架的一部分,通常与MediaExtractor、MediaMuxer、AudioTrack结合使用,可以编码H264、H265、AAC、3gp等常见的音视频格式MediaCodec工作原理是处理输入数据以产生输出数据MediaCodec工作流程MediaCodec的数据流分为input和output流,并通过异步的方式处理两路数据流,直到手动释放output缓冲区,MediaCodec才将数据处理完毕input流:原创 2021-01-19 01:12:37 · 684 阅读 · 0 评论 -
Android 音视频变速原理
视频倍速播放假设视频帧率是24fps, 则播放器必须在1000/24 = 41.66ms 内 解封装 + 解码 + 渲染完一帧,一般只计算出把YUV数据从渲染队列中取出到渲染结束的时间(RenderTime),超过了这个时间就会出现播放卡顿,画面延迟渲染是花不到41.66ms的,假设渲染时间是10ms,那么我们就要休眠 41.66-10 = 31.66ms ,再继续从渲染队列拿帧数据。倍速播放就是24fps换成48fps,即1000ms内播放出48帧,即RenderTime = 41原创 2021-01-16 23:00:00 · 1542 阅读 · 0 评论