- 博客(244)
- 资源 (5)
- 收藏
- 关注

原创 android中基于plt/got的hook实现原理
目录native-hook示例开始got全局符号表hook远程注入hook操作inline hook原理native内存泄漏检测常用方式概述由于android系统是基于linux内核开发的,因此我们日常编写的so文件,实际上也是一个ELF文件,类似于Windows下的PE文件,在开始了解native hook之前,我们要先了解一下ELF文件的格式,以及系统加载的一些过程。Lin...
2020-01-05 21:46:54
7342
7

原创 android平台下基于cmake编译链接ffmpeg-3.4.x的32位和64位(armeabi-v7a和arm64-v8a)静态库
android平台下基于cmake编译链接ffmpeg-3.4.x的32位和64位(armeabi-v7a和arm64-v8a)静态库
2019-06-30 23:47:25
2544
3

原创 android平台下基于OpenSL ES实现音频录制功能
我们日常在处理音频录制的时候,大部分情况下都是使用AudioRecord录制原始的PCM数据,但是音频相关的处理通常都是在native层进行的,今天笔者要记录一下在native层通过OpenSL ES来完成音频的录制。
2019-01-31 23:38:09
2216

原创 androd平台下基于ffmpeg对AudioRecord录制的PCM音频数据编码为AAC文件
之前的博客写了关于使用Android SDK自带的MediaRecorder和AudioRecord录制音频数据,本次内容,主要是基于之前的内容,使用AudioRecord得到原始的PCM音频数据后用ffmpeg来完成编码工作
2018-12-03 12:16:55
1334
2

原创 android平台下基于MediaRecorder和AudioRecord实现录制AAC、PCM音频数据
在`android sdk`中提供了两种方式来实现音频的采集:`MediaRecorder`和`AudioRecord`,其中的`MediaRecorder`处于更上层,它可以对音频录制的数据编码成`AMR`,`MP3`等格式,并存储为文件,而`AudioRecord`则更灵活,因为它可以录制最原始的`PCM流数据`,这个在直播中很常见。
2018-12-03 12:09:34
3303

原创 android平台下基于ffmpeg的swscale模块实现对YUV和RGB数据进行转换
https://blog.csdn.net/leixiaohua1020/article/details/14215391
2018-12-01 21:20:08
1200

原创 android平台下基于ffmpeg实现对相机预览截图的功能(NV21数据编码为JPEG文件)
android平台下基于ffmpeg编码YUV数据为JPEG文件
2018-12-01 20:47:19
1276

原创 android平台下基于ffmpeg和ANativeWindow实现简单的视频播放器
android平台下基于ffmpeg和ANativeWindow实现简单的视频播放器
2018-12-01 14:24:34
1436

原创 android平台下基于ffmpeg采集Camera数据编码成H.264推流到RTMP服务器
音视频实践学习android全平台编译ffmpeg以及x264与fdk-aac实践ubuntu下使用nginx和nginx-rtmp-module配置直播推流服务器android全平台编译ffmpeg合并为单个库实践android-studio使用cmake编译ffmpeg实践android全平台下基于ffmpeg解码MP4视频文件为YUV文件android全平台编译ffmpeg支持...
2018-11-29 22:36:11
3559
3

原创 android平台下基于ffmpeg对相机采集的NV21数据编码为MP4视频文件
首先使用av_register_all()函数注册所有的编码器和复用器(理解为格式封装器)。该步骤必须放在所有ffmpeg代码前第一个执行 2、avformat_alloc_output_context2():初始化包含有输出码流(AVStream)和解复用器(AVInputFormat)的AVFormatContext 3、avio_open( )打开输出文件 ...
2018-11-27 13:31:39
3866
2

原创 android全平台编译libyuv库实现YUV和RGB的转换
libyuv是Google开源的实现各种YUV与RGB之间相互转换、旋转、缩放的库。它是跨平台的,可在Windows、Linux、Mac、Android等操作系统,x86、x64、arm架构上进行编译运行,支持SSE、AVX、NEON等SIMD指令加速。
2018-11-25 12:57:46
9338
6

原创 YUV420P、YUV420SP、NV12、NV21和RGB互相转换并存储为JPEG以及PNG图片
YUV420和RGB转换存储为BMP和JPG以及PNG图片
2018-11-24 22:50:36
22572
2

原创 android全平台编译libpng并基于ANativeWindow加载PNG图片
http://blog.sina.com.cn/s/blog_85882089010135ta.html
2018-11-23 11:24:23
1496
1

原创 android全平台编译libjpeg-turbo并基于ANativeWindow加载JPEG图片
https://github.com/libjpeg-turbo/libjpeg-turbo/blob/master/BUILDING.md# Set these variables to suit your needsNDK_PATH=/media/byhook/backup/android/android-ndk-r10eBUILD_PLATFORM=linux-x86_64TOOLC...
2018-11-22 14:28:53
2261
1

原创 图解RGB565、RGB555、RGB16、RGB24、RGB32、ARGB32等格式的区别
常见的RGB格式有RGB1、RGB4、RGB8、RGB565、RGB555、RGB24、RGB32、ARGB32等
2018-11-22 11:03:35
86989
10

原创 图解YU12、I420、YV12、NV12、NV21、YUV420P、YUV420SP、YUV422P、YUV444P的区别
android平台下基于Camera详解NV21(YUV420P)、NV12(YUV420SP)和RGBA、RGB、BGRA、BGR概述NV21参考:https://blog.csdn.net/leixiaohua1020/article/details/50534150https://blog.csdn.net/junzia/article/details/76315120https...
2018-11-20 12:30:19
79093
15

原创 android平台下OpenGL ES 3.0使用TextureView对相机Camera预览实时处理
android平台下OpenGL ES 3.0使用TextureView对相机Camera预览实时处理实现一个基本的相机处理类:CameraV1Pick,用来处理相机采集的相关操作下面是几个比较关键的类:public class CameraV1Pick implements TextureView.SurfaceTextureListener { private static f...
2018-11-12 22:32:02
4777
1

原创 android平台下OpenGL ES 3.0使用GLSurfaceView对相机Camera预览实时处理
android平台下OpenGL ES 3.0对相机Camera预览实时处理摄像头的预览配置好摄像头之后,剩下的事情就是配置摄像头采集每一帧图像的回调,并且获取到图像之后将图像渲染到屏幕上。本书的第4章已经讲解过了如何通过OpenGL ES来渲染图像,这里先来回顾一下:首先把图像解码为RGBA格式;然后将RGBA格式的字节数组上传到一个纹理上;最终将该纹理渲染到屏幕上。所以这里的渲染到屏幕上也...
2018-11-11 14:02:55
5760
1

原创 android平台下OpenGL ES 3.0实现2D纹理贴图显示bitmap
OpenGL ES 3.0学习实践android平台下OpenGL ES 3.0从零开始android平台下OpenGL ES 3.0绘制纯色背景android平台下OpenGL ES 3.0绘制圆点、直线和三角形android平台下OpenGL ES 3.0绘制彩色三角形android平台下OpenGL ES 3.0从矩形中看矩阵和正交投影android平台下OpenGL ES 3...
2018-11-10 17:44:35
5835
2

原创 android平台下OpenGL ES 3.0绘制立方体的几种方式
绘制图元OpenGL ES中有5个绘制图元的API调用:glDrawArrays、gIDrawElements、glDrawRangeHonents、 glDrawArraysInstanced和glDrawElementsInstanced。glDrawArrays用元素索引为first到first+count-1的元素指定的顶点绘制mode指定的图元。调用glDrawArrays(GL...
2018-11-09 13:42:18
4404
10

原创 android平台下OpenGL ES 3.0实例详解顶点缓冲区对象(VBO)和顶点数组对象(VAO)
顶点缓冲区对象顶点缓冲区对象(Vertex Buffer Object),简称VBO。如果不使用顶点缓冲区对象(VBO)则是将顶点、颜色、纹理坐标等数据存放在内存(客户内存)当中,在每次进行glDrawArxays或者gIDrawElements等绘图调用时,必须从客户内存复制到图形内存。而顶点缓冲区对象使OpenGL ES 3.0应用程序可以在高性能的图形内存中分配和缓存顶点数据,并从这个内存...
2018-11-08 14:58:28
2691

原创 android平台下OpenGL ES 3.0实例详解顶点属性、顶点数组
顶点属性顶点数据也称作顶点属性,指定每个顶点的数据。如果你想要绘制固定颜色的三角形,可以指定一个常量值,用于三角形的全部3个顶点。但是,组成三角形的3个顶点的位置不同,所以我们指定一个顶点数组来存储3个位置值。顶点属性数据可以用一个顶点数组对每个顶点指定,也可以将一个常量值用于一个图元的所有顶点。所有OpenGL ES 3.0实现必须支持最少16个顶点属性。査询OpenGL ES 3.0实...
2018-11-08 12:48:57
2655

原创 android平台下OpenGL ES 3.0从矩形中看矩阵和正交投影
绘制矩形新建一个矩形渲染器:public class RectangleRenderer implements GLSurfaceView.Renderer先定义顶点着色器:#version 300 eslayout (location = 0) in vec4 vPosition;layout (location = 1) in vec4 aColor;out vec4 vCol...
2018-11-06 12:03:37
3005
4

原创 android平台下OpenGL ES 3.0绘制彩色三角形
本例基于android平台下OpenGLES3.0绘制圆点、直线和三角形目录顶点着色器片段着色器颜色配置基于sdk绘制彩色三角形基于ndk绘制彩色三角形顶点着色器#version 300 eslayout (location = 0) in vec4 vPosition;layout (location = 1) in vec4 aColor;out vec4 vColo...
2018-11-05 12:19:38
3323

原创 android平台下OpenGL ES 3.0绘制圆点、直线和三角形
目录新建PointLineRenderer定义圆点坐标分配本地内存顶点着色器片段着色器编译和加载着色器设置视口清除颜色缓冲区绘制圆点绘制直线新建PointLineRendererpublic class PointLineRenderer implements GLSurfaceView.Renderer定义圆点坐标private float[] vertexPo...
2018-11-04 21:36:40
8214
3

原创 android平台下OpenGL ES 3.0绘制纯色背景
目录新建工程基于SDK实现渲染器基于NDK实现渲染器实现效果新建工程RendererActivity文件public class RendererActivity extends AbsBaseActivity { private GLSurfaceView mGLSurfaceView; @Override protected void onCre...
2018-11-04 16:46:42
6965
2

原创 android平台下OpenGL ES 3.0从零开始
目录OpenGL ES对Android平台的支持情况OpenGL ES 3.0概述OpenGL ES 3.0图形管线图顶点着色器片段着色器图元装配光栅化逐片段操作虚拟机和OpenGL ES 3.0的数据传输OpenGL ES对Android平台的支持情况OpenGL ES当前主要版本有1.0/1.1/2.0/3.0/3.1。OpenGL ES版本Android...
2018-11-04 15:33:48
14602
3

原创 android全平台基于ffmpeg解码本地MP4视频推流到RTMP服务器
ffmpeg实践学习android全平台编译ffmpeg以及x264与fdk-aac实践ubuntu下使用nginx和nginx-rtmp-module配置直播推流服务-器android全平台编译ffmpeg合并为单个库实践android-studio使用cmake编译ffmpeg实践android全平台编译ffmpeg视频解码器实践android全平台编译ffmpeg支持命令行实践...
2018-10-31 22:46:33
4232

原创 android全平台编译ffmpeg支持命令行实践
本例基于 android全平台编译ffmpeg合并为单个库实践 进行的目录环境准备新建cmd工程修改源文件运行输出环境准备操作系统 ubuntu 16.05编译准备好libffmpeg库和需要include头文件,我们还需要抽取ffmpeg-3.3.8中的部分头文件和源文件笔者整理了一个copy_ffmpeg_files.sh脚本FFMPEG_DIR=ffmpeg-3.3...
2018-10-31 13:40:13
1625

原创 android全平台下基于ffmpeg解码MP4视频文件为YUV文件
目录配置环境新建decode工程配置环境操作系统: ubuntu 16.05注意: ffmpeg库的编译使用的是android-ndk-r10e版本,使用高版本编译会报错而android-studio工程中配合cmake使用的版本则是android-ndk-r16b版本新建工程ffmpeg-single-hello配置build.gradle如下android { ...
2018-10-31 13:03:44
2274

原创 android-studio使用cmake编译ffmpeg实践
本例使用的是合并的libffmpeg库,可参考之前的实践操作 android全平台编译ffmpeg合并为单个库实践目录配置环境新建hello工程配置环境操作系统: ubuntu 16.05注意: ffmpeg库的编译使用的是android-ndk-r10e版本,使用高版本编译会报错而android-studio工程中配合cmake使用的版本则是android-ndk-r16b版本...
2018-10-31 12:17:37
2381
1

原创 android全平台编译ffmpeg合并为单个库实践
目录编译环境配置config.sh脚本配置合并脚本build_ffmpeg_merge.sh脚本地址编译环境操作系统:ubuntu 16.05android-ndk-r10e注意 这里如果使用高版本比如android-ndk-r16b 编译会报错ffmpeg-3.3.8版本配置config.sh脚本#NDK路径export ANDROID_NDK_ROOT=/home...
2018-10-31 10:30:01
2472

原创 ubuntu下使用nginx和nginx-rtmp-module配置直播推流服务器
本来准备在centos服务器上搭建的,因为笔者工作系统是ubuntu,因此直接在本机上搭建,更方便快捷,配置过程比较简单,记录一下。目录配置环境安装obs-studio开始第一次推流安装vlc播放器开始拉流配置环境配置环境配置环境操作系统:ubuntu 16.05nginx-1.15.5版本同步nginx-rtmp-module代码git clone https://gi...
2018-10-31 08:29:27
3461
1

原创 android全平台编译ffmpeg以及x264与fdk-aac实践
之前一篇移植的博客。Android平台移植FFmpeg和x264编译环境ubuntu 16.04android-ndk-r10effmpeg-3.3.8版本fdk-aac-0.1.6版本开始编译x264库先获取最新的x264库git clone http://git.videolan.org/git/x264.git编写脚本,此脚本可以编译全平台版本目录结构如下:——x2...
2018-10-28 23:07:02
4392
18

原创 关于Android中多module使用fat-aar合并的坑
逛掘金很久了,之前注册过邮箱账号,但是现在每次登录,都要求重置密码,改了也没用,很绝望,重新注册了一个账号。 今天第一次在掘金上分享,废话不多说,直接开始正题。概述简单介绍一下项目情况,笔者做这个项目快两年了,之所以有这篇文章,源于项目的需求,因为项目除了公司内部使用,还需要抽取sdk给第三方合作公司使用,并且不同的合作方可能会对sdk作改动,A公司可能不要录屏功能,B公司可能只要视...
2018-06-20 21:59:24
8557
1

原创 Android系统源代码的下载与编译
简书地址 http://www.jianshu.com/p/aeaceda41798目录1.简介2.官方同步源代码3.镜像同步源代码4.已有源代码更新5.编译源代码 5.1编译Android 4.1.25.2编译Android 5.1.16.参考1.简介之前二次开发Launcher的时候有同步过官方Android 4.1.2的源代码,遗憾当时没有记录下载过程,现在重新温习一下,其
2016-08-22 01:28:27
28040
1

原创 ubuntu移植libcurl到Android平台
简书排版 http://www.jianshu.com/p/332011ebd6e5最近移植了很多C++平台的库,很多都是后台开发的库,因为NDK开发,以后很可能会使用,提前预研一下。 libcurl这个库很有名,用的人比较多,下载源码,直接就可以编译使用,以前在Windows平台下开发网络模块的时候,用到过这个库,很强大 最近在跟后台的人聊天过程中了解了很多C++开发的相关库,这是其中一个,
2016-08-11 23:41:16
2178

原创 ubuntu移植crypto++到Android平台
简书排版 http://www.jianshu.com/p/eaeeed899251ubuntu移植crypto++到Android平台 官方Wiki http://www.cryptopp.com/wiki/Android_(Command_Line) 这个移植比较简单,官方直接就有文档了,而且有现成的脚本。 setenv-android.sh#!/usr/bin/env bash# =
2016-08-11 23:40:00
2285
yuvplayer.tar.gz
2020-01-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人