
Android音视频开发
关于Android开发的基础到精通
吴庆森
这个作者很懒,什么都没留下…
展开
-
Mac -bash: ls: command not found和无法运行.sh脚本
升级后运行.sh报错:unable to execute xxx.sh : Operation not permitted。但重启终端就得重新输入。再执行 ./test.sh。原创 2022-09-21 16:45:34 · 977 阅读 · 0 评论 -
PlayerBase播放黑屏有声音
记录一下用这个框架的问题。原创 2022-08-11 11:52:04 · 1084 阅读 · 0 评论 -
Android-OpenGL坐标系
Android 手机中的坐标系(竖屏与横屏):OpenGL 顶点坐标系(竖屏与横屏):OpenGL 纹理坐标系(竖屏与横屏):原创 2022-08-09 14:20:50 · 807 阅读 · 0 评论 -
Android音视频学习思路整理
音视频学习有好多文章,但是很多都是非常杂乱,整理了一下网上学习的比较有用的文章,学习思路可以按这个链接下来学习:【Android 音视频开发打怪升级:音视频硬解码篇】一、音视频基础知识 - 掘金整理的很到位,包括基础,OpenGL,ffmpeg。就是代码是 kotlin,可以花一天时间入个门,代码就能看懂。实在看不懂的,可以按照他的目录作为学习思路,百度文章来看。可以看上面文章中的概念,然后代码看下面的整理用 java 来学习音视频。关于摄像头学习参考这个,语言是java,这里面原创 2022-05-26 10:38:04 · 920 阅读 · 1 评论 -
H264码流
经过 H264 编码过后,会输出 H264 码流。拿到码流后,可以保存为文件,也能进行传输。H264 码流分层NAL 层,视频数据网络抽象层;作用:方便在网络上传输视频流。如果出现丢包,重传,乱序。接收端通过判断 NAL 层,可以判断出上述的情况,然后进行相应的处理。VCL 层,视频数据编码层;这里面就是帧内编码,帧间编码与熵编码。VCL 结构关系如下图,图片最上面是一帧一帧数据,一帧数据是由一个或多个slice 组成,每个片是由多个宏块组成,每个宏块由多个子块组成。.原创 2021-07-28 17:30:09 · 223 阅读 · 0 评论 -
H264编码流程
H264编码流程手绘图:H264编码网上图:原创 2021-07-28 16:16:32 · 1978 阅读 · 1 评论 -
无损压缩技术
一个视频经过有损压缩完成后,会再进行无损压缩,让视频进一步变小。DCT变化经过有损压缩后,数据分散在二维图标中的各个节点上,经过 DCT 变化,会将所有数据集中到某一块。原创 2021-07-28 15:37:30 · 1414 阅读 · 0 评论 -
帧内压缩与帧间压缩
帧内压缩相邻像素差别不大,所以可以进行宏块预测。人对亮度的敏感度超过色度。原创 2021-06-30 11:48:09 · 12154 阅读 · 3 评论 -
H264压缩技术与宏块
H.264是 国际标准化组织 ( ISO )和 国际电信联盟 (ITU)共同提出的继MPEG4之后的 新一代 数字视频 压缩格式 。 H.264是ITU-T以H.26x系列为名称命名的 视频编解码技术 标准之一。原创 2021-06-18 16:44:51 · 732 阅读 · 0 评论 -
YUV与RGB
YUV YUV( 也称 YCbCr ):Y 表示明亮度,UV的作用是描述影像色彩及饱和度。如果只有 Y 数据就是显示黑白画面。 主要采样格式:YUV4:2:0、YUV4:2:2 和 YUV4:4:4。通用的为YUV4:2:0 。如果想用屏幕显示 YUV 数据,需要将 YUV 转成 RGB ,然后再显示。RGB 与 YUV 的关系 RGB 是用于屏幕图像的展示 YUV 是用于采集与编码RGB 转 YUV Y = 0.299*R + 0.587*G...原创 2021-06-18 09:22:36 · 421 阅读 · 0 评论 -
RGB码流的计算:分辨率与帧率
分辨率 X轴的像素个数 *Y周的像素个数 常见的宽高比 16:9 / 4:3 360P ( 640P * 360P )/ 720P ( 1280P * 720P ) / 1K ( 1920P * 1080P ) / 2K ( 2560P * 1440P ) / 4K ( 4096P * 2160P )帧率 每秒钟采集/播放图像的个数 动画的帧率是 25帧/s 常见帧率:15帧/s (适用于实时会议) ,30帧/s (适用于常见视频录制),60帧/s (适用...原创 2021-06-15 17:44:48 · 2358 阅读 · 0 评论 -
I帧P帧和B帧与GOP
I帧P帧和B帧I 帧: 关键帧,GOP 中每一组强相关的帧第一帧都是 I 帧,不依赖与任何帧,采用帧内压缩技术; P 帧: 向前参考帧,只有当前面的帧解码成功才会解码 P 帧,采用帧间压缩技术,占 I 帧的一半大小 B 帧: 双向参考帧,帧间压缩技术,B 帧是最后进行解码的,占 I 帧1/4大小 实时通讯视频与会议中,使用 I 帧和 P 帧,不使用 B 帧;而在进行大量视频转码会使用 B 帧,以减少存储空间。 IDR 帧和 I 帧 IDR 帧:解码器立即刷新,当解码器遇到 ID...原创 2021-06-09 15:34:29 · 1288 阅读 · 0 评论 -
Android硬编码录制视频实时添加水印
记录一下 ,在使用硬编码录制视频 ,实时的去添加水印 ;下面是效果图:主要的流程是:先将视频流转为 bitmap 图片 ,再将图片添加上想要的水印 ,最后再将添加完水印的 bitmap 转化为 NV21 的视频流 ;下面是 GitHub 的下载链接:https://github.com/wuqingsen/ToMp4Wu下面是关键的代码: /** * 将拿到的预览帧数据转为bitmap添加水印 再讲bitmap转为帧数据 * @param dst 预览的帧数据原创 2020-12-14 13:40:10 · 3444 阅读 · 12 评论 -
自定义Camera拍照
完整代码:https://github.com/wuqingsen/AVWuDemo目录:Android音视频整理package com.demo.camerawu.activity;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.graphics.ImageFormat;import android.graphics.Matrix;import android.ha原创 2020-06-23 11:46:51 · 1187 阅读 · 0 评论 -
自定义Camera预览
完整代码:https://github.com/wuqingsen/AVWuDemo目录:Android音视频整理代码:package com.demo.camerawu.activity;import android.content.Context;import android.content.pm.PackageManager;import android.graphics.ImageFormat;import android.hardware.Camera;import an原创 2020-06-23 10:22:29 · 333 阅读 · 0 评论 -
pcm转为wav
完整代码:https://github.com/wuqingsen/AVWuDemopackage com.demo.audiowudemo.util;import android.media.AudioFormat;import android.media.AudioRecord;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;/** * wuqin原创 2020-06-04 16:49:19 · 833 阅读 · 1 评论 -
利用MediaCodec将aac解码为pcm
完整代码:https://github.com/wuqingsen/AVWuDemopackage com.demo.audiowudemo.util;import android.annotation.SuppressLint;import android.media.MediaCodec;import android.media.MediaExtractor;import android.media.MediaFormat;import android.os.Environment;原创 2020-06-04 16:47:36 · 1430 阅读 · 0 评论 -
利用MediaCodec实现pcm编码为aac
完整代码:https://github.com/wuqingsen/AVWuDemopackage com.demo.audiowudemo.util;import android.annotation.SuppressLint;import android.media.AudioFormat;import android.media.MediaCodec;import android.media.MediaCodecInfo;import android.media.MediaForma原创 2020-06-04 16:42:02 · 1598 阅读 · 0 评论 -
使用AudioTrack播放pcm格式音频
完整代码:https://github.com/wuqingsen/AVWuDemo步骤:1.设置缓冲区大小2. 初始化 AudioTrack3. 写入数据,播放音频完整代码:package com.demo.audiowudemo.util;import android.media.AudioFormat;import android.media.AudioManager;import android.media.AudioTrack;import androi..原创 2020-06-04 16:36:54 · 913 阅读 · 0 评论 -
使用MediaCodec实时录制aac音频
完整代码:https://github.com/wuqingsen/AVWuDemo步骤:1.设置缓冲区大小2.初始化 AudioRecord3.初始化 AAC 编码器,初始化 MediaCodec4. 开始录制,编码 PCM 数据 得到 AAC 格式的音频文件1.设置缓冲区大小 /** * 1.设置缓冲区大小 * 参数:采样率 16k; 通道数 单通道; 采样位数 ...原创 2020-06-04 16:28:25 · 1830 阅读 · 0 评论 -
使用AudioRecord录制pcm格式音频
录制 pcm 格式音频步骤:1.设置缓冲区大小2.初始化AudioRecord3.不断读取录音数据并保存至文件中4.终止循环,停止录音完整代码:https://github.com/wuqingsen/AVWuDemopackage com.demo.audiowudemo;import android.media.AudioFormat;import android.media.AudioRecord;import android.media.MediaRe...原创 2020-06-04 16:15:55 · 1582 阅读 · 1 评论 -
Android音视频开发目录
音视频项目 GitHub 下载地址:https://github.com/wuqingsen/AVWuDemo原创 2020-06-03 14:51:40 · 557 阅读 · 0 评论 -
MediaCodec官网翻译
来自 Developer 官网:MediaCodec。原创 2020-06-03 11:11:42 · 760 阅读 · 0 评论 -
Android音视频开发:录制视频 + 语音识别 + 人脸识别
最近两个月在搞 Android 音视频相关方面的需求,下面是记录一次音视频开发的实操记录;最下面有demo;移动端具体的需求是这个样子的:录制视频 + 同时语音识别 + 同时人脸识别 + 同时语音合成;视频时长大概是一个小时,不能压缩处理。OK,需求出来我是崩溃的,Android 原生不支持录制视频的同时去实现语音识别,而 iOS 原生支持,这就加长了 Android ...原创 2020-01-06 15:44:36 · 3439 阅读 · 1 评论