自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

不念过往,不畏将来!

  • 博客(36)
  • 资源 (1)
  • 收藏
  • 关注

原创 Android 音视频采集与软编码总结

前言本文总结了笔者在 Android 音视频采集与软编码中的一些经验与技巧,包括移植 FFmpeg、YUV 视频帧处理、最新的 JNI 编写技巧、 ndk 开发技巧等,为了不扯太远本文不会对音视频编码的一些原理性东西进行剖析,也不会大量贴源码,更注重使用方法与流程的讲解。 文章最后将展示一个实现了音视频采集功能与本地视频压缩功能的完整项目。采用软编码利弊众所周知

2017-07-22 21:06:24 11091 6

原创 利用FFmpeg玩转Android视频录制与压缩(三)

前言上一回说到啊,这千秋月没是佳人离别,时逢枯枝落旧城,却待新兰满长街,战场上还未至瑞雪,各位看官不好意思,今日帝都又雾霾,来听小老二说书的别忘了加个口罩。在利用FFmpeg玩转Android视频录制与压缩(二)中我们基本编写完了所有模块儿代码,但是没有整合在一起,也没有对接Java层,接下来就是干这事。native代码对接我们编写完成了视频编码类、音频编码类、合成视频类,

2017-06-11 00:27:52 12445 27

原创 利用FFmpeg玩转Android视频录制与压缩(二)

预热时光荏苒,光阴如梭,离上一次吹牛逼已经过去了两三个月,身边很多人的女票已经分了又合,合了又分,本屌依旧骄傲单身。上一次啊我们大致说了一些简单的FFmpeg命令以及Java层简单的调用方式,然后有很多朋友在github或者csdn上给我留言,很多时候我都选择避而不答,原因是本库以前用的so包是不开源的,我根本改不了里面东西。但是这一次啊我们玩点大的,我重新编译了FFmpeg且重写JNI的

2017-06-10 12:16:38 29181 54

原创 Android下玩JNI的新老三种姿势

请尊重原创,转载请注明出处:http://blog.csdn.net/mabeijianxi/article/details/68525164 (本文已在 hongyang 微信公众号发布)说明:本篇不撸代码,只玩编译,其包含了Android studio 2.2最新的JNI玩法编译环境:macOS 10.12.3工具包含:Android Studio 2.2 NDK-r14 在Andro...

2017-03-30 21:55:26 13052 9

原创 利用FFmpeg玩转Android视频录制与压缩(一)

Android下利用FFmpeg玩转视频录制与压缩(一)说明:本库暂时是在秒拍开源库上做的二次开发,旨在开发简单好用高效的视频录制库。本篇文档只涉及Java层次逻辑,正在业余修炼c语言与JNI相关的东西,如果有幸写第二篇文章,那时将对其做更深入的剖析,如FFmpeg编译、JNI相关代码编写。效果图:功能描述:利用FFmpeg录制定制化的视

2017-03-19 00:02:43 47843 125

原创 利用Jenkins玩转Android自动打包发包

本篇文章已授权微信公众号 guolin_blog (郭霖)独家发布请尊重原创,转载请注明出处:http://blog.csdn.net/mabeijianxi/article/details/52680283先看一眼效果图:功能描述:可以选择不同的环境与不同的渠道,可以输入显示在App上的版本号,打包完成后可自动上传并且生成安装二维码总体步骤可为:下载新版Jenkins挂载到Tomcat编写Pyt...

2016-09-27 14:12:59 54103 19

原创 Android QQ小红点的实现(附完整注释)

最近找了抽了些时间找了些资料,终于做出了一个相对成熟的类似QQ小红点的拖拽控件。先看下效果:simple与lib下载地址:https://github.com/mabeijianxi/stickyDots一、分析:1、首先分析这个控件的组成部分:通过观察可以很明显的得出这个控件由三部分组成,一个固定不动的圆,一个连接部分,一个可能是圆的拖拽部分,由于不确定暂时把

2016-01-25 18:03:01 11303 10

原创 剪裁图片透明边界

不管是 Android、iOS、PC都可能需要面临一些图片处理的时候。笔者遇到了一个截图的,在屏幕里只截出3D渲染的那层 layer ,比如背景绘制的是摄像头采集是数据,前景是我们用引擎渲染的一些3D模型,我们现在需要截出这些3D模型,由于一些原因(主要是实时计算的性能),我们截出来的图片会带一圈透明边框。于是我们需要把起裁剪掉。可以在手机上实时裁,也可以在PC上脚本裁剪。实现思路...

2018-08-26 23:12:35 1559 3

原创 universalimageloader 的 MemoryCache 源码分析

背景前段时间稍微修改了下我们图片框架的最大缓存值,昨天优化组的同事找到了我说现在内存变的很大,然后带着一些疑惑还是再次仔细的阅读了下 universalimageloader 的 MemoryCache 源码。universalimageloader 的 MemoryCache 分类与简单功能介绍:其类图如下(来源网路): 功能:LruMemoryCache:lru算法...

2018-02-26 10:18:09 553 3

原创 OpenGL ES 2.0 入门(持续更新)

请尊重原创,转载请注明出处:http://blog.csdn.net/mabeijianxi/article/details/79186086发现公司不管是游戏业务还是视频业务无不与 Open GL 息息相关,于是每周抽了点时间操练下,万一哪天被点将点中了也是不虚的,下面是笔者的一些学习笔记。一、Open GL 2.0 的渲染管道Created with Raphaël 2.1...

2018-01-28 13:05:22 4876 1

原创 JNI全局引用和本地引用

昨天去高德面试被问到了 JNI 中如何控制 Java 对象的声明周期,当时没答出来,其实我项目中就有使用的地方,可能还不是那么熟吧,所以下来再次《翻阅了JNI 编程指南》,这里算是摘录下吧!JNI 提供了一些实例和数组类型(jobject、jclass、jstring、jarray 等)作为 不透明的引用供本地代码使用。本地代码永远不会直接操作引用指向的 VM 内部 的数据内容。要进行这些操作,必

2017-10-14 18:57:35 1987

原创 OKHttp 数据读写进度监听分析

大致架构图(窃图地址: https://blog.piasy.com/2016/07/11/Understand-OkHttp/,可以先详细看看)写入进度监听(比如上传)可以对 RequestBody 进行装饰, writeTo() 中 对 Sink 再进行装饰,可以直接利用 ForwardingSink ,重写其 write(), 其内即可获得每次读到的字节数,RequestBody具体装饰如下

2017-09-15 15:39:11 1432

原创 快速打造 Android 自定义表情库

简介本文灵感来源是经典的https://github.com/rockerhieu/emojicon,部分代码直接不要脸的 copy 了,在其基础上更美观好用,且自定义空间更大。最终效果图源码下载与使用方法https://github.com/mabeijianxi/android-expression实现思想首先叫 UI 给我做好的表情

2017-07-07 20:16:04 7537 6

原创 编译Android下可用的全平台FFmpeg(包含libx264与libfdk-aac)

源码或工具版本:ndk :r14FFmpeg 版本:3.2.5libfdk-aac 版本:0.1.5一、源码准备:这里假设你已经拥有了ndk环境,没有的可以先配置,可以参考Android下玩JNI的新老三种姿势。FFmpeg源码下载地址:http://ffmpeg.org/download.html。libx264下载地址:http://

2017-07-06 14:38:35 14046 15

原创 Activity 中 setContentView 的深入思考

先看张图不说话:往事得从 Activity 的 Window 创建说起,话说啊在启动一个 Activity 的时候经过一系列调用,终于到达了  ActivityThread 的 performLaunchActivity 方法,里面通过类加载器加载了 Activity 实例后会调用其 Activity 的 attach 方法,下面是 performLaunchA

2017-06-22 19:46:47 813

原创 Thinking in java 笔记(更新中)

一、字符串1、String 对象是不可变的,String 类中每一个看起来会修改String 值的方法,实际上都是创建了一个全新的 String 对象,以包含修改后的字符串内容,而最初的String 对象则丝毫未动。每当把 String 对象作为方法的参数时,都会复制一份引用,而该引用所指的对象其实一直待在单一的物理位置上,从未动过。2、Stringbuilder中 app

2017-06-21 23:09:02 574

原创 Android开发艺术探讨精华(完结)

拾起了一年多前看过的一本书,这里记录一些概念,以便以后巩固复习或者面试。1、configChanges=“orientation|screenSize”,禁止屏幕旋转时重建Activity。这时将回调Activity的onConfigurationChanged 2、当启动Activity时加上 FLAG_ACTIVITY_NEW_TASK   标记位后,这个时候待

2017-06-16 13:36:06 3254

转载 视频压缩编码和音频压缩编码的基本原理

原文地址:http://blog.csdn.net/leixiaohua1020/article/details/28114081本文介绍一下视频压缩编码和音频压缩编码的基本原理。其实有关视频和音频编码的原理的资料非常的多,但是自己一直也没有去归纳和总结一下,在这里简单总结一下,以作备忘。1.视频编码基本原理(1)  视频信号的冗余信息以记录数字

2017-06-08 18:49:09 4277 1

转载 x264编码指南——码率控制

x264是一个 H.264/MPEG4 AVC 编码器,本指南将指导新手如何创建高质量的H.264视频。    对于普通用户通常有两种码率控制模式:crf(Constant Rate Factor)和Two pass ABR。码率控制是一种决定为每一个视频帧分配多少比特数的方法,它将决定文件的大小和质量的分配。    如果你在编译和安装libx264 方面需要帮助,请查看ffmpe

2017-06-08 10:37:41 1736

转载 ffmpeg 编码器AVCodecContext 的配置参数

1、先说一些基本的API[cpp] view plain copyAVFormatContex * pFormatCtxEnc;  AVCodecContext * pCodecCtxEnc;    AVStream * video_st;  AVOutputFormat * pOutputFormat;    pOutput

2017-06-08 10:35:32 2376

原创 编译Android下可执行命令的FFmpeg

本人环境与工具:系统:MacOs-10.12.4ndk:r14FFmpeg版本: 3.2.5Android Studio: 2.3.2一、说明:本文是经过实战总结出的经验,本文将用两种方式编译可以在Android下执行命令的FFmpeg,一种是传统的ndk-build工具,一种是cmake工具,经过我的项目实战,非常推荐cmake,因为AS

2017-06-07 22:36:22 14713 33

原创 编译Android下可用的FFmpeg(包含libx264与libfdk-aac)

请尊重原创,转载请注明出处:http://blog.csdn.net/mabeijianxi/article/details/72888067本人环境: 系统:MacOs-10.12.4 ndk :r14 FFmpeg版本:3.2.5 一、源码准备:这里假设你已经拥有了ndk环境,没有的可以先配置,可以参考Android下玩JNI的新老三种姿势。FFmpeg源码下载地址:h

2017-06-06 21:49:36 4588 12

原创 有符号数值类型的最大值加1为什么是其最小值?

下面以C语言中char为例子:都知道其无符号取值范围是0~2^8也就是0~255。原因很简单,其二进制为8位,最大值自然是1111 1111,转换为10进制:1*2^0+1*2^1+1*2^2+1*2^3+1*2^4+1*2^5+1*2^6+1*2^7=255。那么如果是有符号char呢?按照规定有符号数值的最高为表示符号位,1为负数,0为正数。1111 1111则为:-(1*2^0+

2017-05-04 17:57:17 7176 1

转载 Android实时直播,一千行java搞定不依赖jni

目首页:https://github.com/simple-rtmp-server/srs-seaSRS服务器项目:https://github.com/simple-rtmp-server/srs在Android高版本中,特别是4.1引入了MediaCodec可以对摄像头的图像进行硬件编码,实现直播。一般Android推流到服务器,使用ffmpeg居多,也就是软编码,实际

2017-04-01 11:12:06 2510 3

原创 Android桌面小图标终极解决方案

`本来安卓创建桌面小图标大家都知道是有系统Api的,也很简单,但是有些定制神机改了后就比较蛋疼了,像OPPO的ColorOS3.0。但是都出自与安卓原理基本都是一样的,一般桌面的东西都会保存在一个叫launcher数据库里面,路径的话不同手机可能不太一样,一般是以xxx.xxx.xxx.launcher目录下,通过代码也是可以获取的,launcher数据库里面的几张表就是放这些东西的,有一张叫fa

2016-11-29 14:44:32 5766

原创 微信小视频录制

利用FFmpeg视频录制与压缩处理,这里得感谢vatamio家的秒拍SO库。效果如下:源码地址:https://github.com/mabeijianxi/small-video-record特点:1:利用FFmpeg录制各种分辨率的视频。2:可设置以H264编码压缩,6秒的1M视频压缩后为200多KB,且视频还比较清晰3:录制简单,一行代

2016-09-30 20:45:28 3903 4

转载 apk多版本共存

产品有多个运行环境简直再常见不过了,一般来讲都会有相应的开关参数来区分各种环境。默认情况下我们只能打2个包,debug包跟release包,而且每次只能安装其中一个。如果A、B环境都需要测试,那切换参数以及重新打包安装简直是个噩梦。不仅仅是因为步骤繁琐,多个参数来回修改也特别容易出错。如何支持多版本共存?(gradle)我们知道,安卓系统中区分不同应用使用的是applica

2016-06-13 15:11:15 9435 1

转载 Android客户端性能优化(魅族资深工程师毫无保留奉献)

众所周知,一个好的产品,除了功能强大,好的性能也必不可少。有调查显示,近90%的受访者会因为APP性能差而卸载,性能也是造成APP用户沮丧的头号原因。那Android客户端性能的指标都有哪些?如何发现和定位客户端的性能问题?本文结合多个项目的开发实践,给出了要关注的重要指标项目,以及定位和解决性能问题的一般步骤。性能优化应该贯穿于功能开发的全部周期,而不是做完一次后面便不再关注。每

2016-05-28 16:09:45 2269 1

转载 判断指定App是否位于前台的方法

原文地址:http://p.codekk.com/detail/Android/wenmingvs/AndroidProcess提供6种方法来判断App处于前台还是后台,并且封装成工具类供大家使用最后一种方法堪称Android黑科技(非原创),既可以突破Android5.0以上的权限封锁,获取任意前台App的包名,又不需要权限,欢迎大家star我的新项目Download L

2016-03-08 09:57:08 5935 1

翻译 深入理解LayoutInflater.inflate()

原文链接:https://www.bignerdranch.com/blog/understanding-androids-layoutinflater-inflate/由于我们很容易习惯公式化的预置代码,有时我们会忽略很优雅的细节。LayoutInflater以及它在Fragment的onCreateView()中填充View的方式带给我的就是这样的感受。这个类用于将XML文件转换成相对

2016-02-29 10:10:54 773 1

转载 Drawable 着色的后向兼容方案

看到 Android Weekly 最新一期有一篇文章:Tinting drawables,使用 ColorFilter 手动打造了一个 TintBitmapDrawable,之前也看到有些文章使用这种方式来实现 Drawable 着色或者实现类似的功能。但是,这种方案并不完善,本文将介绍一个完美的后向兼容方案。解决方案其实在 Android Support V4 的包中提供了

2016-02-25 23:49:02 787

原创 Android 大图查看器

在项目里自己写了个大图查看效果,感觉还行,打包成了库,分享给大家,先看效果图:源码地址:https://github.com/mabeijianxi/LookBigPicUtils使用方法:UsageStep-1导入并且添加依赖:Gradle: compile project(':lib')Step-2配置An

2016-02-25 23:36:39 2949

原创 android 微信朋友圈效果(附完整注释)

先看下效果图:源码地址:https://github.com/mabeijianxi/Circle-of-friends源码的核心类(adapter)里面几乎对每个方法都有注解。本demo主要想分享的是:listview各种嵌套处理listview的优化处理用ImageLoader的一些特殊方式来优化图片加载listview的高度封装操作(刷新、加载更多、ui操作等)

2016-01-17 21:55:17 12517 4

原创 Java中的正则表达式

一、正则表达式概述        1、 概念:符合一定规则的表达式。        2、 作用:用于专门操作字符串。        3、 特点:用于一些特定的符号来表示一些代码操作,这样可以简化书写。所以学习正则表达式,就是在学习一些特殊

2015-08-08 09:11:16 985

原创 Java之网络编程

一、概述1、网络参考模型2、网络通讯要素◆IP地址:InetAddress      网络中设备的标识      不易记忆,可用主机名      本地回环地址:127.0.0.1主机名:localhost◆端口号      用于标识进程的逻辑地址

2015-08-06 23:11:48 783

原创 Java中的一些常见类System、Runtime、Date与Carendar

一、System类1、概述◆System是描述系统一些信息的类,类中的属性和方法都是静态的。不能被实例化,没有提供构造函数。◆字段摘要       out:标准输出流。默认是控制台。        in:标准输入流。默认是键盘。2、方

2015-08-05 23:46:22 842

抢红包插件

使用方法: ○ 狠戳插件开关 ○ 回到微信聊天 ○ 坐等红包进账 用于春节抢红包,只需要打开插件开关(开启插件服务),进入微信聊天界面,你就可以看着春晚,磕着瓜子,坐等红包进账了,本应用完全免费,请放心使用!

2016-02-02

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除