NDK编程
handy周
Hello World...
展开
-
NDK编程-日志
利用宏生成简单的日志消息#include #include #ifndef NATIVESAMPLE_HOME_H#define NATIVESAMPLE_HOME_Hstatic const char * TAG="Home";#define LOGI(fmt, args...) __android_log_print(ANDROID_LOG_INFO, TAG, fmt原创 2015-11-15 21:22:28 · 514 阅读 · 0 评论 -
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 · 8935 阅读 · 6 评论 -
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 · 2125 阅读 · 0 评论 -
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 · 2385 阅读 · 0 评论 -
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 · 2303 阅读 · 1 评论 -
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 · 1570 阅读 · 0 评论 -
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 · 4011 阅读 · 0 评论 -
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 · 3357 阅读 · 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 · 3688 阅读 · 2 评论 -
android平台下基于ffmpeg和ANativeWindow实现简单的视频播放器
android平台下基于ffmpeg和ANativeWindow实现简单的视频播放器原创 2018-12-01 14:24:34 · 1399 阅读 · 0 评论 -
android平台下基于ffmpeg实现对相机预览截图的功能(NV21数据编码为JPEG文件)
android平台下基于ffmpeg编码YUV数据为JPEG文件原创 2018-12-01 20:47:19 · 1218 阅读 · 0 评论 -
android平台下基于ffmpeg的swscale模块实现对YUV和RGB数据进行转换
https://blog.csdn.net/leixiaohua1020/article/details/14215391原创 2018-12-01 21:20:08 · 1148 阅读 · 0 评论 -
androd平台下基于ffmpeg对AudioRecord录制的PCM音频数据编码为AAC文件
之前的博客写了关于使用Android SDK自带的MediaRecorder和AudioRecord录制音频数据,本次内容,主要是基于之前的内容,使用AudioRecord得到原始的PCM音频数据后用ffmpeg来完成编码工作原创 2018-12-03 12:16:55 · 1256 阅读 · 2 评论 -
android平台下基于OpenSL ES实现音频录制功能
我们日常在处理音频录制的时候,大部分情况下都是使用AudioRecord录制原始的PCM数据,但是音频相关的处理通常都是在native层进行的,今天笔者要记录一下在native层通过OpenSL ES来完成音频的录制。原创 2019-01-31 23:38:09 · 2108 阅读 · 0 评论 -
android平台下基于MediaRecorder和AudioRecord实现录制AAC、PCM音频数据
在`android sdk`中提供了两种方式来实现音频的采集:`MediaRecorder`和`AudioRecord`,其中的`MediaRecorder`处于更上层,它可以对音频录制的数据编码成`AMR`,`MP3`等格式,并存储为文件,而`AudioRecord`则更灵活,因为它可以录制最原始的`PCM流数据`,这个在直播中很常见。原创 2018-12-03 12:09:34 · 3219 阅读 · 0 评论 -
YUV420P、YUV420SP、NV12、NV21和RGB互相转换并存储为JPEG以及PNG图片
YUV420和RGB转换存储为BMP和JPG以及PNG图片原创 2018-11-24 22:50:36 · 21710 阅读 · 2 评论 -
android全平台编译libpng并基于ANativeWindow加载PNG图片
http://blog.sina.com.cn/s/blog_85882089010135ta.html原创 2018-11-23 11:24:23 · 1433 阅读 · 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 · 2152 阅读 · 1 评论 -
NDK与Helloworld
1.下载最新版本NDK http://developer.android.com/tools/sdk/ndk/index.html原创 2014-08-28 11:23:43 · 528 阅读 · 0 评论 -
NDK编程-线程
static JavaVM * jvm = NULL;static jobject jobj = NULL;缓存Java虚拟机接口指针jint JNI_OnLoad(JavaVM * jvm,void * reserved){ jvm = jvm; return JNI_VERSION_1_4;}创建一个全局引用/** * 初始化全局引用 */void na原创 2015-11-15 22:08:33 · 475 阅读 · 0 评论 -
NDK支持的C++运行库
简书排版 http://www.jianshu.com/p/07856720339eAndroid平台自身带有一个微型的C++运行库支持库,称为系统运行库,但是功能有所限制,还有一些补充系统库的额外C++运行库 C++运行库 C++异常支持 C++ RTTI支持 C++标准库 系统库 No No No GAbi++ No Yes No STLpor原创 2016-08-16 00:19:41 · 2617 阅读 · 0 评论 -
Ubuntu 14.04.2 移植FFmpeg 2.8.3 到Android平台
笔者生产环境是ubuntu14.04.2一直都听说FFmpeg很强大很暴力但一直都没时间研究沉淀今天心血来潮,决定试试看上正文首先下载FFmpeg 2.8.3源代码官方地址Github地址1.首先修改configure文件 去除后缀名之后的版本号#修改前#SLIBNAME_WITH_MAJOR='$(SLIBNAME).$(LIBMAJOR)'#L...原创 2015-12-03 23:38:08 · 1840 阅读 · 1 评论 -
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 · 2249 阅读 · 0 评论 -
ubuntu移植libcurl到Android平台
简书排版 http://www.jianshu.com/p/332011ebd6e5最近移植了很多C++平台的库,很多都是后台开发的库,因为NDK开发,以后很可能会使用,提前预研一下。 libcurl这个库很有名,用的人比较多,下载源码,直接就可以编译使用,以前在Windows平台下开发网络模块的时候,用到过这个库,很强大 最近在跟后台的人聊天过程中了解了很多C++开发的相关库,这是其中一个,原创 2016-08-11 23:41:16 · 2135 阅读 · 1 评论 -
Android平台移植FFmpeg和x264
之前记录过一篇编译FFmpeg的文章,没写完整 最近在做ijkplayer的二次开发,重新拾起FFmpeg,记录完。 记得之前的移植很头疼,网上很多帖子,都是抄来抄去,作者也没有去验证 笔者记录的目的,是完整的记录下编译过程,以及从中碰到的坑,避免以后再次花时间预研下文编译过程为笔者亲自验证通过 笔者也在Github上开了一个库,记录下编译过的源码 x264解码库 http:/原创 2016-07-20 23:24:05 · 5543 阅读 · 2 评论 -
Ubuntu下移植Tcpdump到Android平台
为Linux平台编译Tcpdump源码准备 Tcpdump-4.7.4 libpcap-1.7.4编译之前确保有lex和yacc工具sudo apt-get install flex bison1.解压libpcap-1.7.4之后进入该目录,打开终端 接着输入make完成编译 2.解压Tcpdump-4.7.4之后进入该目录,打开终端 同样./configuremake不出意外的话原创 2016-07-13 14:32:52 · 1431 阅读 · 0 评论 -
ubuntu移植libwebp到Android平台
项目来来回回换了几个图片框架,都不太理想 最后决定选用Glide+libwebp的模式 由于4.0以下Android对Webp的支持并不好 因此需要我们手动支持 1.下载libwebp的最新源码 下载地址 建议开个代理 2.配置相关 a.将源码文件夹改名为jni b.编辑Android.mk文件 开头加上#开启webp 共享库编译ENABLE_SHARED := 1如图原创 2016-05-03 13:38:58 · 931 阅读 · 0 评论 -
ubuntu移植jsoncpp到Android平台
简书排版 http://www.jianshu.com/p/02ccd73c927e本机OS: Ubuntu 14.04 x64NDK开发模块的时候,如果涉及到网络请求,类似json数据传递的时候,有现成的第三方json库可以移植,后台C++开发中使用的比较多的是jsoncpp,今天记录一下jsoncpp移植到Android平台的过程cmake编译此方法并非标准的NDK项目 采用的是cmake交原创 2016-08-11 23:38:49 · 1403 阅读 · 0 评论 -
NDK交叉编译之自定义工具链
简书排版 http://www.jianshu.com/p/3bbad4b1b099本机OS: Ubuntu 14.04 x64首先上官方文档 https://developer.android.com/ndk/guides/standalone_toolchain.html 可以自定义工具链进行交叉编译1.对不同的指令集APP_ABI设置 Architecture Toolchain原创 2016-08-11 23:35:50 · 5359 阅读 · 0 评论 -
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 · 4268 阅读 · 18 评论 -
ubuntu平台下编译vlc-android视频播放器实践
https://code.videolan.org/videolan/libvlc-android-sampleshttps://blog.csdn.net/ZhangWanyu_/article/details/79943199原创 2018-11-21 11:12:11 · 742 阅读 · 0 评论 -
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 · 2460 阅读 · 3 评论