Android
文章平均质量分 55
文长
咿呀呀
展开
-
usbcamera拔掉设备崩溃
崩溃堆栈如下:解决办法:原创 2020-07-11 10:45:26 · 952 阅读 · 0 评论 -
android用MP4v2保存视频出现的问题
android不同机型,帧率设置不一定有效,所以编码和mp4v2的帧率参数最好用计算出来的真实帧率。由于帧率设置无效还会导致,如果码率设置为一个固定值,帧率高的就会变模糊,这个可以把帧率高的丢掉一些以达到固定帧或者根据不同帧率调整码率。原创 2016-02-18 14:01:17 · 1496 阅读 · 0 评论 -
YVU420PackedSemiPlanar32m4ka与YUV420PackedSemiPlanar64x32Tile2m8ka
YVU420PackedSemiPlanar32m4ka与YUV420PackedSemiPlanar64x32Tile2m8ka都是nv12变换来的。* YVU420PackedSemiPlanar : Buffer containing all Y, and then V and U *原创 2016-02-19 15:19:40 · 2385 阅读 · 0 评论 -
android gpuimage显示的缩放和剪裁模式
在gpuimagerender里面有如下方法,GPUImage.ScaleType.CENTER_CROP表示剪裁,可以修改他的参数达到自己的需要。 private void adjustImageScaling() { float outputWidth = mOutputWidth; float outputHeight = mOutput原创 2016-05-26 11:35:44 · 2333 阅读 · 1 评论 -
Android性能优化
看这里:http://hukai.me/android-performance-patterns/#jtss-tsina原创 2016-05-30 17:03:14 · 426 阅读 · 0 评论 -
Mac OS X 10.8.3反编译Android apk
http://blog.csdn.net/duanyipeng/article/details/9075163参考:http://linuxzone.diandian.com/post/2011-12-05/74899181.下载开源工具apktoolhttp://code.google.com/p/Android-apktool/注意其中的apktoo转载 2016-06-25 14:29:59 · 428 阅读 · 0 评论 -
android获取mp3/mp4媒体信息
原文:http://blog.csdn.net/ameyume/article/details/7849641API说明:MediaMetadataRetriever class provides a unified interface for retrieving frame and meta data from an input media file.MediaMe转载 2016-10-22 11:47:39 · 2391 阅读 · 0 评论 -
Android上使用OpenGLES2.0显示YUV数据
亲测可用:http://blog.csdn.net/ueryueryuery/article/details/17608185楼主收到这样的任务,在Android上用OpenGLES来显示YUV图像,之所以这样做,是因为:1.Android本身也不能直接显示YUV图像,YUV转成RGB还是必要的;2.YUV手动转RGB会占用大量的CPU资源,如果以这样的形式播放视频,手机会转载 2016-10-28 10:31:02 · 1507 阅读 · 2 评论 -
Android bluetooth设备状态监听
public class BluetoothHeadsetBroadcastReceiver extends BroadcastReceiver { public BluetoothHeadsetBroadcastReceiver() { } public void onReceive(Context context, Intent intent) {原创 2017-02-09 11:46:29 · 5193 阅读 · 0 评论 -
基于Surface的视频编解码与OpenGL ES渲染
http://blog.csdn.net/gh_home/article/details/523999591. 概述这篇文章所做的事情是这样的: 1. 从一个.mp4文件中解码视频流到surface上 2. 利用OpenGL ES渲染改变视频流中每一帧的内容 3. 将改变后的视频流重新编码输出到一个新的.mp4文件所有代码可在此处下载:https转载 2017-04-28 17:56:53 · 4866 阅读 · 0 评论 -
ANDROID 高性能图形处理 之 OPENGL ES
原文:http://tangzm.com/blog/?p=20在之前的介绍中我们说到在Android 4.2上使用RenderScript有诸多限制,我们于是尝试改用OpenGL ES 2.0来实现滤镜。本文不详细介绍OpenGL ES的规范以及组成部分,感兴趣的同学可以阅读 《OpenGL -ES Programming Guide》。这本书是OpenGL ES的权威转载 2017-05-16 11:27:59 · 1435 阅读 · 0 评论 -
学习OpenGL-ES: 2 - EGL解析
原文:http://www.cnblogs.com/kiffa/archive/2013/02/21/2921123.html1, 前言在前文(学习OpenGL-ES: 1 - 像素、颜色、显存、环境初始化和EGL)中提到EGL是本地平台和OpenGL ES之间的抽象层,其完成了本地相关的环境初始化和上下文控制工作,以保证OpenGL ES的平台无关性。主要包含如下转载 2017-05-17 17:07:49 · 611 阅读 · 0 评论 -
mediacodec surfaceview解码失败
原来在configure的时候设置了sps/pps(如下),发现有些机型解码失败,dequeueInputBuffer、queueInputBuffer这些老是异常MediaFormat format = MediaFormat.createVideoFormat("video/avc", 480, 480);//format.setByteBuffer("原创 2017-04-27 17:43:00 · 1847 阅读 · 0 评论 -
Android7 mediacodec SEI
发现Android7使用mediacodec进行avc编码,得到的第一个关键帧的h264数据中包含SEI这种nal。如果我们不需要,或者加上之后对我们有影响,可以去掉。private int findNextNalPos(byte[] buf,int pos) { for (int i = pos; i ; i++) { if原创 2017-06-08 20:46:06 · 1432 阅读 · 0 评论 -
记录android离屏渲染的一些资料
1、http://www.jianshu.com/p/8793f0fbd1e62、http://blog.csdn.net/junzia/article/details/53861519原创 2017-09-18 10:40:56 · 1851 阅读 · 0 评论 -
Anroid camera + mediacodec
具体代码参考:https://github.com/google/grafika/tree/master/src/com/android/grafika主要流程:1、生成一个oes textrure2、通过上面生成的oes texture,new一个surfacetexture,设置回调surfacetexture.setOnFrameAvailableListener(CB);原创 2017-10-21 14:35:16 · 786 阅读 · 0 评论 -
MediaCodec 编码H264 编码一帧后dequeueOutputBuffer为-1的问题
在用android MediaCodec编码h264的时候,会遇到,dequeueOutputBuffer在成功获取到config帧(sps pps)及第一个I帧后,dequeueOutputBuffer然后结果一直为-1的情况,在我用的三星note3及小米3都是这样的,解决方案如下:关键在下面这个函数的第四个参数上,就是时间戳,这个参数一定要填写,可以类似的这么简单的转载 2016-02-01 14:45:59 · 8913 阅读 · 2 评论 -
mediacodec编解码少帧问题
使用mediacodec编解码,发现跟输入帧数不对,后面少了几帧,原因:End-of-stream HandlingWhen you reach the end of the input data, you must signal it to the codec by specifying the BUFFER_FLAG_END_OF_STREAM flag in th原创 2016-03-01 12:04:45 · 5147 阅读 · 0 评论 -
Android SurfaceView双缓存
SurfaceView实现了2个缓存,绘图的时候会先绘制到一个缓存,绘制下一张图的时候,则绘制到另一缓存,这样轮流切换。缓存绘制完了就拿去显示,缓存中得图不会擦出。这样会导致一个问题:假设2个缓存分别叫A、B,有2副3X3的图像,内容分别是1和2;首先我们做第一幅图向右移动,没有内容用0表示: 1 0 0 1 1 0原创 2015-03-01 10:56:15 · 1225 阅读 · 3 评论 -
h.264保存flv文件
首先 写flv头。byte[] cFlvHeader = new byte[]{0x46,0x4C,0x56,0x01,0x01,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x00};WriteFile.writeBuf(cFlvHeader);接下来写metadata,可有可无。然后是sps、pps这些header。privat原创 2014-12-21 09:57:10 · 933 阅读 · 0 评论 -
移动互联网实时视频通讯之视频采集
原文:http://blog.easemob.com/?p=277一 、前言一套完整的实时网络视频通讯系统包括视频采集、视频编码、视频传输、视频解码和播放。对于视频采集,大多数视频编码器对输入原始视频的格式要求是YUV420。YUV420格式是YUV格式的一种,YUV分为三个分量,Y代表亮度,也就是灰度值,U和V表示的是色度,用于描述图像的色彩和饱和度。YUV420格式的数据的转载 2015-10-20 10:13:29 · 854 阅读 · 0 评论 -
xcode与androidstudio 设置自定义主题
xcode首先到这里https://github.com/tursunovic/xcode-themes下载主题InstallationCopy the theme(s) to the Xcode's FontAndColorThemes folder (~/Library/Developer/Xcode/UserData/FontAndColorThemes/).Rest原创 2015-11-18 10:27:06 · 1619 阅读 · 0 评论 -
“NDK integration is deprecated in the current plugin” Error
Here is how to solve this issue :add gradle.properties file to root folder of your projectadd 'android.useDeprecatedNdk=true' to gradle.properties fileHere is my gradle.properties :# Project原创 2015-11-23 16:10:59 · 981 阅读 · 0 评论 -
Android中JNI 的一些常用说明 JNI_OnLoad registerNatives registerNativeMethods
Android JNI和NDK关系 1、什么JNIJava Native Interface (JNI)标准是java平台的一部分,它允许Java代码和其他语言写的代码进行交互。JNI 是本地编程接口,它使得在 Java 虚拟机 (VM) 内部运行的 Java 代码能够与用其它编程语言(如 C、C++ 和汇编语言)编写的应用程序和库进行交互操作。上面过程分为2个部分:第一、用C语言转载 2016-01-18 21:27:51 · 1334 阅读 · 1 评论 -
Mp4v2实现h264+aac打包成Mp4视频文件
使用mp4v2实现录制mp4视频,需要准备如下信息:1、获取mp4v2源码并编译成库文件,对于mp4v2的编译可以看前面的文章android 编译mp4v2 2.0.0生成动态库 ;2、获取h264数据中的sps和pps数据,如果不会的话可以查看前面的文章 点击打开链接;3、获取音频解码信息,在调用MP4SetTrackESConfiguration使用,具体的获取方式一转载 2016-01-20 11:04:50 · 9819 阅读 · 3 评论 -
mediacodec_encode_sample.java
int width = 328, height = 248; int bitRate = 1000000; int frameRate = 15; String mimeType = "video/avc"; int threshold = 50; int原创 2016-01-21 14:49:06 · 894 阅读 · 0 评论 -
android Camera相关问题及NV12剪裁旋转
1、SurfaceView不显示画面,可能是xml设置了背景色,这回遮挡视频画面。2、如果想保存方形视频,而又不是通过缩放,可以在预览的适合遮挡不需要的画面。录制的适合剪裁一下。3、因为Camera数据是按横屏给,竖屏的适合,画面会选择90°,StartPreview前设置:mCamera.setDisplayOrientation(90);4、网上找的几个NV原创 2015-12-21 09:55:29 · 2694 阅读 · 0 评论 -
Importing video using Javacv
http://opencvlover.blogspot.tw/2012/05/importing-video-using-javacv.htmlConfiguration steps for javacv on Eclipse running on windows 7 can be found in the link below.http://opencvlover.b转载 2015-12-21 18:20:49 · 855 阅读 · 0 评论 -
GPUImage 组合滤镜
GPUIamgeFilter *_filter = [[GPUImageFilterGroup alloc]init]; GPUImageContrastFilter *contrastFilter = [[GPUImageContrastFilter alloc] init]; [contrastFilter setContrast:3.5]; // 0 - 4原创 2016-01-06 11:04:04 · 2633 阅读 · 3 评论 -
FFmpegFrameRecorder保存视频or rtmp发布
记录一下:javacv/samples/WebcamAndMicrophoneCapture.javaimport java.nio.ByteBuffer; import java.nio.ByteOrder; import java.nio.ShortBuffer; import java原创 2015-12-21 20:23:09 · 22810 阅读 · 4 评论 -
GPUImage实现水印
GPUImage目录下面有个Blends目录,里面有各种各样水印。举个例子:GPUImageAlphaBlendFilter filter = new GPUImageAlphaBlendFilter;filter.setBitmap(bmp);剩下的就和其他filter一样用。iOS addtarget,android setfilter。原创 2016-01-06 11:38:42 · 5232 阅读 · 1 评论 -
javacv解码、录制视频,保存图片
貌似解码得到的每帧图像是RGB24的,要保存Bitmap.Config.ARGB_8888,要转一下cvCvtColor(img,tempImage,CV_BGR2RGBA)。 mGrabber = new FFmpegFrameGrabber(mMvPath); mGrabber.start(); opencv_core.IplImage tempImag原创 2015-12-23 18:33:19 · 6679 阅读 · 0 评论 -
MP4v2获得h264数据
int32_t openFiles() { if (mp4File == NULL) { mp4File = MP4Read(mp4FilePathAndName); } if (mp4File == NULL) { NL_LOGE("mp4 file read error"); return -1; }原创 2016-01-27 10:41:14 · 2940 阅读 · 0 评论 -
Android 循环缓冲区
由于需要将接受到的视频编码数据取出每一帧,需要用到循环缓冲区。在网上找了个c++版,改成了java版。public class CirCleBufer { private static boolean bEmpty = true; private static boolean bFull = false; private static原创 2014-12-05 13:53:29 · 934 阅读 · 2 评论