6 剑西

尚未进行身份认证

我要认证

一群有趣的人,一起做有趣的事!

等级
TA的排名 3w+

剪裁图片透明边界

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

2018-08-26 23:12:35

universalimageloader 的 MemoryCache 源码分析

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

2018-02-26 10:18:09

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

JNI全局引用和本地引用

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

2017-10-14 18:57:35

OKHttp 数据读写进度监听分析

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

2017-09-15 15:39:11

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

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

2017-07-22 21:06:24

快速打造 Android 自定义表情库

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

2017-07-07 20:16:04

编译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

Activity 中 setContentView 的深入思考

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

2017-06-22 19:46:47

Thinking in java 笔记(更新中)

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

2017-06-21 23:09:02

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

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

2017-06-16 13:36:06

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

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

2017-06-11 00:27:52

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

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

2017-06-10 12:16:38

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

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

2017-06-08 18:49:09

x264编码指南——码率控制

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

2017-06-08 10:37:41

ffmpeg 编码器AVCodecContext 的配置参数

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

2017-06-08 10:35:32

编译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

编译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

有符号数值类型的最大值加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

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

查看更多

CSDN身份
  • 博客专家
勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!