基于android的MediaCodec进行音视频编解码的问题,路过的来看看 [问题点数:40分,结帖人xb_hope]

一键查看最优答案

确认一键查看最优答案?
本功能为VIP专享,开通VIP获取答案速率将提升10倍哦!
Bbs2
本版专家分:232
结帖率 100%
Bbs1
本版专家分:0
Android HWUI硬件加速模块浅析
原址什么是硬件加速(What)传统软件的UI绘制是依靠CPU来完成的,硬件加速就是将绘制任务交由GPU来执行。Android系统负责硬件加速的模块主要是HWUI,如下图所示:为什么要硬件加速(Why)Android HWUI硬件加速的底层实现是基于OpenGL ES接口向GPU提交指令来完成绘制的。硬件加速的优势在于:在高屏幕分辨率环境下(尤其对于4K高清电视而言),GPU UI绘制的帧率要高于C...
华为meta7,android6.0,配置编码器组件异常
mediaCodec.configure(mediaFormat, null, null, <em>MediaCodec</em>.CONFIGURE_FLAG_ENCODE); 抛出了异常 异常信息 07-23 11
android MediaCodec解析
简介 <em>MediaCodec</em>类可以获取底层媒体编码/解码库,是Android底层多媒体支持库的一部分(一般和MediaExtractor、MediaSync、MediaMuxer、MediaCrypto、MediaDrm、Image、Surface、AudioTrack搭配使用)。 宽泛的说,codec(<em>编解码</em>器)通过异步的方式对输入的数据<em>进行</em>处理,输出处理后的数据,过程中需要一系列的输入/
Android中Visualizer的使用
在用Visualizer来对音频画波的时候,通过设置setCaptureSize,导致截取的byte数组的大小是一个固定值,那如何判断所截取的byte数组是最后一个呢? PS:想要的操作是获得整个音频
使用mediacodec出现的问题
不同手机不同的结果,在某个华为的手机上出现这个错误: 01-03 17:07:56.606 6769-7142/com.example.joanna.myrecorder E/ACodec: ERRO
android MediaCodec的自己碰到的问题
本文是个人在使用<em>MediaCodec</em>开发的时候碰到的一些<em>问题</em>,做下记录.... <em>MediaCodec</em>的基本用法,网上一大把,这里就不写了 1, 获取支持分辨率<em>问题</em> Camera.Parameters parameters = _camera.getParameters(); List previewSizes = parameters.getSupportedPreviewS
hwui大概流程和FrameInfo统计信息
Android hwui硬件加速从3.0版本开始引入到7.0已经非常复杂,这里总结下大致的流程和原理 如果input的down事件到来,有些view接收到事件要求系统重绘就会调用到ViewRootImpl.scheduleTraversals()方法如下代码 void scheduleTraversals() { if (!mTraversalScheduled) { ...
Android 常用的性能分析工具详解:GPU呈现模式, TraceView, Systrace, HirearchyViewer
在开发Android应用程序的过程中,经常会遇到App首页的加载时间慢,需要需要<em>进行</em>性能优化的<em>问题</em>。那么如何分析首页Activity的加载时间呢 ? 1. 当我们打开一个Activity的时候,log会打印一串log如下: I/ActivityManager﹕ Displayed xxx.xxx.xxx/TestActivity: +1s272ms (total +3s843ms) 第一
android 5.1版本使用MediaCodec出错
功能是利用<em>MediaCodec</em>和MediaMuxer把网络摄像头传输过来的视频实时的保存成mp4, 在安卓4.4上保存成功了。但是在5.1的机器上初始化<em>MediaCodec</em>出现以下错误 E/ACodec: [OMX.qcom.video.encoder.avc] storeMetaDataInBuffers (output) failed w/ err -1010 W/ACodec: do not know color format 0x7fa30c04 = 2141391876 W/ACodec: do not know color format 0x7f000789 = 2130708361 我初始化代码为 MediaFormat mediaFormat = MediaFormat.createVideoFormat("video/avc",1280, 720); mediaFormat.setInteger(MediaFormat.KEY_COLOR_FORMAT, m_colorType); mediaFormat.setInteger(MediaFormat.KEY_BIT_RATE, 125000); mediaFormat.setInteger(MediaFormat.KEY_FRAME_RATE, 15); mediaFormat.setInteger(MediaFormat.KEY_I_FRAME_INTERVAL, 5); try { mediaCodec = <em>MediaCodec</em>.createEncoderByType("video/avc"); } catch (IOException e) { e.printStackTrace(); } mediaCodec.configure(mediaFormat, null, null,<em>MediaCodec</em>.CONFIGURE_FLAG_ENCODE); 另外, m_colorType的值,4.4方法跑出来是19,5.1为21
Android音频开发(5):音频数据的编解码
前面四篇文章分别介绍了音频开发必备的基础知识、如何采集一帧音频、如何播放一帧音频、如何存储和解析wav格式的文件,建议有兴趣的小伙伴们先读一读,本文则重点关注如何对一帧音频数据<em>进行</em>编码和解码。1. Android 官方的 <em>MediaCodec</em> API首先,我们了解一下 Android 官方提供的音频<em>编解码</em>的 API,即 <em>MediaCodec</em> 类,该 API 是在 Andorid 4.1 (API ...
Android adb 命令学习记录
adb 命令学习记录 文章目录adb 命令学习记录通过 wifi 连接手机强大的 dumpsys 命令打印某个应用的内存信息打印 Activity 的信息am 命令tcpip 命令打印日志GPU 呈现模式过渡绘制性能分析vmstat 命令 通过 wifi 连接手机 有些时候,我们手头上没有数据线,这个时候想调试一个应用就不是很方便了。其实这个时候我们可以通过 wifi 来连接手机并调试。通过 wi...
GPU呈现模式分析中颜色的意义
google官方解释中文版:链接 google官方解释英文详细解释:链接 下表介绍了使用运行 Android 6.0 及更高版本的设备时分析器输出中某个竖条的每个区段。 竖条区段 渲染阶段 说明 交换缓冲区 表示 CPU 等待 GPU 完成其工作的时间。 如果此竖条升高,则表示应用在 GPU 上执行太多工作。 命令<em>问题</em> 表示 Android 的...
Android Q深色模式源码解析
关注我的简书个人博客原文链接 一、简介 鉴于Android Q 适配如火如荼的情况,我们今天也来讲讲Android Q全新的深色主题背景。不过该项功能,魅族已经推出两年多了,只不过名字我们叫夜间模式,也可见Google有点反借鉴国内厂商的意思。附上两张效果图: 闲话到此为止,我们还是来说说Android Q深色模式的适配方式跟实现原理吧。 二、如何开启 从文档上我们可以可知,打开深色模式有三...
Skia深入分析8——Skia的GPU绘图
Skia的GPU绘图 一、Skia-GPU概述 在Android4.2到Android5.0的过程中,skia中开发较频繁的部分莫过于GPU加速部分和延迟渲染机制,尽管目前来看几乎没有用到,但后续很可能会在Frameworks层引入。 在Android上面,只可能使用OpenGL,因此作为使用OpenGL的绘图引擎,关注如下要...
Android h264硬件编码问题
我采用yasea1.2(https://github.com/begeekmyfriend/yasea)<em>进行</em>视频编码传输,在手机上可以<em>进行</em>视频硬件编码并且可以<em>进行</em>rtmp传输,但是移植到开发板上就不行了,开发板是<em>android</em>5.1版本,手机是<em>android</em>4.4版本,是不是和<em>android</em>系统版本有关还是和开发板上的硬件资源不支持有关,求帮助,在调用<em>MediaCodec</em><em>进行</em>硬件编码的时候报错如下 10-25 07:52:27.533: W/AudioRecord(4442): dead IAudioRecord, creating a new one from obtainBuffer() 10-25 07:52:27.533: W/AudioSystem(4442): AudioFlinger server died! 10-25 07:52:27.533: I/ServiceManager(4442): Waiting for service media.audio_flinger... 10-25 07:52:27.533: W/AudioSystem(4442): AudioPolicyService server died! 10-25 07:52:27.533: W/CameraBase(4442): Camera service died! 10-25 07:52:27.533: E/ACodec(4442): OMX/mediaserver died, signalling error! 10-25 07:52:27.533: E/ACodec(4442): OMX/mediaserver died, signalling error! 10-25 07:52:27.533: W/CameraBase(4442): mediaserver's remote binder Camera object died 10-25 07:52:27.533: E/ACodec(4442): signalError(omxError 0x8000100d, internalError -32) 10-25 07:52:27.533: E/ACodec(4442): signalError(omxError 0x8000100d, internalError -32) 10-25 07:52:27.534: E/<em>MediaCodec</em>(4442): Codec reported err 0xffffffe0, actionCode 0, while in state 6 10-25 07:52:27.534: E/<em>MediaCodec</em>(4442): Codec reported err 0xffffffe0, actionCode 0, while in state 6
部分手机使用系统弹窗报错问题
之前在项目里面做了一个系统弹窗,使用了 dialog.getWindow() //.setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT); 但是在部分手机却抛异常,这和权限无关,即使申请了权限也是不可用,比如在华为手机上面可以使用,但是三星手机却报错,后来将其改成 dialog.getWindow()
Android patch后重启问题分析
在合入Android patch过程中会遇到Crash重启的情况,在logcat日志也只会打印一些崩溃的堆栈,这些信息很难 帮助我们定位<em>问题</em>。      首先先看一下我遇到的一个logcat关于Crash的打印信息: 如: 952 5555-5583/? I/OMX-VDEC-1080P: Capabilities: driver_name = msm_vidc_driver, card =...
向熟悉Android-openGL ES在ndk上的编程的大牛们求教,有一个关于eglGetDisplay的问题纠结很多天了!
目前小弟(菜鸟。。)正在使用ndk在Android平台上<em>进行</em>与OpenGL ES相关的编程,对于缓冲区的初始化代码(JNI文件夹中的C++代码)如下: 不过在程序运行的时候,在LOG里面发现程序居然在
谈谈关于Android视频编码的那些坑
本文讲的是谈谈关于Android视频编码的那些坑,Android的视频相关的开发,大概一直是整个Android生态,以及Android API中,最为分裂以及兼容性<em>问题</em>最为突出的一部分。摄像头,以及视频编码相关的API,Google一直对这方面的控制力非常差,导致不同厂商对这两个API的实现有不少差异,而且从API的设计来看,一直以来优化也相当有限,甚至...
Error处理: android.media.MediaRecorder.start(Native Method) 报错:start failed: -19
转于:http://blog.csdn.net/netwalk/article/details/17686993 ------------------------------------------------------------------------------------   Error处理: <em>android</em>.media.MediaRecorder.start(Native Me...
MediaRecorder: start failed: -22报错的原因和解决方法
    今天在优化相机这块的时候,看了下系统相机的源码,copy了部分用MediaRecorder来<em>进行</em>录制的代码出来,调用start的时候一直抛异常:MediaRecorder: start failed: -22想了好久也不知道什么,浪费了很长时间之后去百度了一下MediaRecorder详细信息和用法,最后才发现<em>问题</em>出来了初始化MediaRecorder的时候的调用顺序上,MediaReco...
Android硬编码——音频编码、视频编码及音视频混合
视频<em>编解码</em>对许多Android程序员来说都是Android中比较难的一个知识点。在Android 4.1以前,Android并没有提供硬编硬解的API,所以之前基本上都是采用FFMpeg来做视频软件<em>编解码</em>的,现在FFMpeg在Android的<em>编解码</em>上依旧广泛应用。本篇博客主要讲到的是利用Android4.1增加的API <em>MediaCodec</em>和Android 4.3增加的API MediaMuxer
FFmpeg4Android:音频解码与播放
4.3 音频解码 音频解码,就是将视频文件中的音频部分抽离出来,生成PCM文件,并使用Android控件AudioTrack<em>进行</em>播放。 新建,MedioPlayer项目,其目录结构如下: java端代码,MainActivity.java: package com.lzp.decoder; import java.io.File; import com.lzp.decoder.vi
android端基于FFmpeg的音频解码与两种播放方式
FFmpeg在<em>音视频</em>开发的地位不必多说,它已经是行业的一个品牌标杆。本篇文章探讨使用FFmpeg<em>进行</em>音频解码,然后反射调用<em>android</em>系统自带的AudioTrack和OpenSL ES两种播放方式。 首先谈下FFmpeg解码流程,步骤包括:注册组件、分配FormatContext、打开音频文件、获取输入文件信息、获取音频流索引位置、获取音频解码器、打开解码器、循环读取待解码数据、解码完一帧送去
hwui简介
简介: hwui主要是<em>android</em>用于2d硬件绘图而加入的一个模块,在hwui之前,<em>android</em>主要是用skia来<em>进行</em>软件绘制,后由于绘制性能等<em>问题</em>,现在<em>android</em>的绘图几乎都是使用了hwui硬件加速绘图。hwui主要则是使用opengles来<em>进行</em>gpu硬件绘图,提升整个系统的绘制性能,主要有以下方式:直接渲染,显示列表渲染,延时渲染列表,分别代表的类为:OpenGLRenderer,D
android中的logcat调试问题
入门学者,关于logcat调试,以前只接触过直接有Casued by:的情况 现运行时出错,logcat显示: 。。。。。。 at ..... Failed sending reply to debu
MediaRecorder手机录屏,部分手机失败报错
02-25 03:50:35.021 3694 3694 D StatusBar: disable disable2 02-25 03:50:3
视频录像经常出现OMX.qcom.video.encoder.avc错误信息
storeMetaDataInBuffers (output) failed w/ err -1010 有没有人在知道这个错误是什么原因导致的?
Android系统音视频架构
本博客转载于:http://leeeyou.xyz/2017/04/15/blog-2017-04-15-Android系统<em>音视频</em>架构/ 1、Android系统上的音频框架 一个好的系统架构需要尽可能地降低上层与具体硬件的耦合,这既是涉及操作系统的目的,对于音频系统也是如此。音频系统的雏形框架可以简单的用下图来表示: 在这个图中,除去Linux本身
[RK3288][Android6.0] Video编解码框架Overview及目录整理
Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92 架构 硬件能力 主要目录 Application Framework JNI Binder IPC Native Multimedia Framework OpenMAX Integration Layer IL Meida Codecs configuration 非开源部分架构硬件能力 主
android MediaCodec h264解码问题
最近在做视频解码的项目,用到了<em>android</em> <em>MediaCodec</em>有解码功能,出现了下面的<em>问题</em>,求大牛指点一二。 以下内容为解码时出现的错误。 11-08 18:28:01.886: E/开始解码(20450): 开始解码 11-08 18:28:17.498: E/all length(20450): 2418 11-08 18:28:17.498: E/screencmd3(20450): 2398 11-08 18:28:17.498: E/tag(20450): 2398videobyte.length 11-08 18:28:17.499: E/Decode(20450): inputBufferIndex===0 11-08 18:28:17.500: E/Decode(20450): inputBufferIndex===9 11-08 18:28:17.501: E/Decode(20450): inputBufferIndex===8 11-08 18:28:17.502: E/Decode(20450): inputBufferIndex===7 11-08 18:28:17.502: E/Decode(20450): inputBufferIndex===6 11-08 18:28:17.506: E/ACodec(20450): [OMX.MTK.VIDEO.DECODER.AVC] ERROR(0x80001005) 11-08 18:28:17.506: E/<em>MediaCodec</em>(20450): Codec reported an error. (omx error 0x80001005, internalError -1103) 11-08 18:28:17.509: E/AndroidRuntime(20450): FATAL EXCEPTION: Thread-1056 11-08 18:28:17.509: E/AndroidRuntime(20450): java.lang.IllegalStateException 11-08 18:28:17.509: E/AndroidRuntime(20450): at <em>android</em>.media.<em>MediaCodec</em>.getBuffers(Native Method) 11-08 18:28:17.509: E/AndroidRuntime(20450): at <em>android</em>.media.<em>MediaCodec</em>.getInputBuffers(<em>MediaCodec</em>.java:472) 11-08 18:28:17.509: E/AndroidRuntime(20450): at com.aaa.bbb.VideoActivity.onFrame(VideoActivity.java:286) 11-08 18:28:17.509: E/AndroidRuntime(20450): at com.aaa.bbb.VideoActivity$PlayerThread.run(VideoActivity.java:240)
请问为什么显存够还提示InternalError: Blas SGEMM launch failed?
如图![图片说明](https://img-ask.csdn.net/upload/202003/02/1583117170_207870.png) 是不是cuda和nvidia驱动版本的<em>问题</em>?求解答,谢谢 我是用anaconda安装的cuda和cudnn。
MediaCodec 实例
Mediacodec and camera, color space incorrect up vote6down votefavorite 5 By referring Aegonis's work 1 and work 2, I also got the H.264
使用MediaCodec将摄像头采集的视频编码为h264的问题
参考https://www.cnblogs.com/CoderTian/p/6224605.html案例时所遇到<em>问题</em>,记录一下: 错误日志 2019-09-11 15:18:59.791 6287-6329/com.hkst.testmuxer E/ACodec: [OMX.MTK.VIDEO.ENCODER.AVC] does not support color format 15 2019-0...
用mediacodec对4k分辨率视频进行h.264\h.265\vp8的编码和解码的问题
找到个demo程序:https://github.com/pingu342/<em>android</em>-app-mediacodectest 是对1920*1080 h.264<em>进行</em>编码和解码的。 原理是:app界
WebRTC --- Chrome Android平台上的硬件加速编解码分析
WebRTC是一个实时的视频通信功能,Android平台上的Chrome也提供了支持,在Chrome 29之后WebRTC功能趋于稳定,所以在之后的版本中默认被打开。也就是说不需要在”chrome://flags”中手动去打开该功能。 本节主要介绍一下Android平台上Chrome支持WebRTC硬件加速<em>编解码</em>的现状: 首先介绍一下WebRTC的视频传输的大致流程,摄像头在一端拍下图片,然后
解决:android NDK的AMediaCodec配置surface失败问题
Android <em>MediaCodec</em>与NDK A<em>MediaCodec</em>的关系 从API 21(Android 5.0)开始Android提供C层的NDK <em>MediaCodec</em>的接口。Android <em>MediaCodec</em>是对NDK A<em>MediaCodec</em>的封装。一般来说,<em>MediaCodec</em>输出到surface;A<em>MediaCodec</em>输出yuv数据。 我们使用NDK的A<em>MediaCodec</em>的原因是:方...
视频编码花屏问题求助
各位大侠你们好, 小弟在使用华为P8ALE-UL00<em>进行</em>H264编码的时候,录像文件出现花屏,再现率非常高。 系统打印打印了如下错误,有遇到过的么?求指教。(在其它的手机上暂时没有发现类似<em>问题</em>) 03-15 10:56:50.720 I/OMXClient(17516): Using client-side OMX mux. 03-15 10:56:50.720 I/<em>MediaCodec</em>List( 2975): findCodecByType::numCodecs=35, index=0, type=video/avc 03-15 10:56:50.720 I/OMXCodec(17516): matching ´OMX.IMG.TOPAZ.VIDEO.Encoder´ quirks 0x00000000 03-15 10:56:50.720 I/<em>MediaCodec</em>List( 2975): findCodecByType::numCodecs=35, index=15, type=video/avc 03-15 10:56:50.720 I/OMXCodec(17516): matching ´OMX.google.h264.encoder´ quirks 0x00000000 03-15 10:56:50.720 I/<em>MediaCodec</em>List( 2975): findCodecByType::numCodecs=35, index=33, type=video/avc 03-15 10:56:50.730 E/IMGTOPAZ( 2975): Error in OTE_Base_GetParameter at line 1321 03-15 10:56:50.740 E/OMXNodeInstance( 2975): getParameter(2130706443) ERROR: 0x8000100e 03-15 10:56:50.740 E/IMGTOPAZ( 2975): Error in OTE_Base_GetParameter at line 1321 03-15 10:56:50.740 E/OMXNodeInstance( 2975): getParameter(2130706443) ERROR: 0x8000100e 03-15 10:56:50.740 W/ACodec (17516): do not know color format 0x7f000001 = 2130706433 03-15 10:56:50.740 E/IMGTOPAZ( 2975): Error in OTE_Base_GetParameter at line 1321 03-15 10:56:50.740 E/OMXNodeInstance( 2975): getParameter(2130706443) ERROR: 0x8000100e 03-15 10:56:50.740 E/IMGTOPAZ( 2975): Error in OTE_Base_GetParameter at line 1321 03-15 10:56:50.740 E/OMXNodeInstance( 2975): getParameter(2130706443) ERROR: 0x8000100e 03-15 10:56:50.740 W/ACodec (17516): do not know color format 0x7f000005 = 2130706437 03-15 10:56:50.740 E/IMGTOPAZ( 2975): Error in OTE_Base_GetParameter at line 1321 03-15 10:56:50.740 E/OMXNodeInstance( 2975): getParameter(2130706443) ERROR: 0x8000100e 03-15 10:56:50.740 W/ACodec (17516): do not know color format 0x7f000002 = 2130706434 03-15 10:56:50.740 E/IMGTOPAZ( 2975): Error in OTE_Base_GetParameter at line 1321 03-15 10:56:50.740 E/OMXNodeInstance( 2975): getParameter(2130706443) ERROR: 0x8000100e 03-15 10:56:50.740 W/ACodec (17516): do not know color format 0x7f000006 = 2130706438 03-15 10:56:50.740 E/IMGTOPAZ( 2975): Error in OTE_Base_GetParameter at line 1321 03-15 10:56:50.740 E/OMXNodeInstance( 2975): getParameter(2130706443) ERROR: 0x8000100e 03-15 10:56:50.740 W/ACodec (17516): do not know color format 0x17 = 23 03-15 10:56:50.740 E/IMGTOPAZ( 2975): Error in OTE_Base_GetParameter at line 1321 03-15 10:56:50.740 E/OMXNodeInstance( 2975): getParameter(2130706443) ERROR: 0x8000100e 03-15 10:56:50.740 W/ACodec (17516): do not know color format 0x18 = 24 03-15 10:56:50.740 E/IMGTOPAZ( 2975): Error in OTE_Base_GetParameter at line 1321 03-15 10:56:50.740 E/OMXNodeInstance( 2975): getParameter(2130706443) ERROR: 0x8000100e 03-15 10:56:50.740 W/ACodec (17516): do not know color format 0x7f000011 = 2130706449 03-15 10:56:50.740 E/IMGTOPAZ( 2975): Error in OTE_Base_GetParameter at line 1321 03-15 10:56:50.740 E/OMXNodeInstance( 2975): getParameter(2130706443) ERROR: 0x8000100e 03-15 10:56:50.740 W/ACodec (17516): do not know color format 0x16 = 22 03-15 10:56:50.740 E/IMGTOPAZ( 2975): Error in OTE_Base_GetParameter at line 1321 03-15 10:56:50.740 E/OMXNodeInstance( 2975): getParameter(2130706443) ERROR: 0x8000100e 03-15 10:56:50.740 W/ACodec (17516): do not know color format 0x7f000007 = 2130706439 03-15 10:56:50.740 E/IMGTOPAZ( 2975): Error in OTE_Base_GetParameter at line 1321 03-15 10:56:50.740 E/OMXNodeInstance( 2975): getParameter(2130706443) ERROR: 0x8000100e 03-15 10:56:50.740 W/ACodec (17516): do not know color format 0x7f000008 = 2130706440 03-15 10:56:50.740 E/IMGTOPAZ( 2975): Error in OTE_Base_GetParameter at line 1321 03-15 10:56:50.740 E/OMXNodeInstance( 2975): getParameter(2130706443) ERROR: 0x8000100e 03-15 10:56:50.740 W/ACodec (17516): do not know color format 0x19 = 25 03-15 10:56:50.740 E/IMGTOPAZ( 2975): Error in OTE_Base_GetParameter at line 1321 03-15 10:56:50.740 E/OMXNodeInstance( 2975): getParameter(2130706443) ERROR: 0x8000100e 03-15 10:56:50.740 W/ACodec (17516): do not know color format 0x1a = 26 03-15 10:56:50.740 E/IMGTOPAZ( 2975): Error in OTE_Base_GetParameter at line 1321 03-15 10:56:50.740 E/OMXNodeInstance( 2975): getParameter(2130706443) ERROR: 0x8000100e 03-15 10:56:50.740 W/ACodec (17516): do not know color format 0x1b = 27 03-15 10:56:50.740 E/IMGTOPAZ( 2975): Error in OTE_Base_GetParameter at line 1321 03-15 10:56:50.740 E/OMXNodeInstance( 2975): getParameter(2130706443) ERROR: 0x8000100e 03-15 10:56:50.740 W/ACodec (17516): do not know color format 0x1c = 28 03-15 10:56:50.740 E/IMGTOPAZ( 2975): Error in OTE_Base_GetParameter at line 1321 03-15 10:56:50.740 E/OMXNodeInstance( 2975): getParameter(2130706443) ERROR: 0x8000100e 03-15 10:56:50.740 W/ACodec (17516): do not know color format 0x7f000003 = 2130706435 03-15 10:56:50.740 E/IMGTOPAZ( 2975): Error in OTE_Base_GetParameter at line 1321 03-15 10:56:50.740 E/OMXNodeInstance( 2975): getParameter(2130706443) ERROR: 0x8000100e 03-15 10:56:50.740 W/ACodec (17516): do not know color format 0x7f000009 = 2130706441 03-15 10:56:50.740 E/IMGTOPAZ( 2975): Error in OTE_Base_GetParameter at line 1321 03-15 10:56:50.740 E/OMXNodeInstance( 2975): getParameter(2130706443) ERROR: 0x8000100e 03-15 10:56:50.740 W/ACodec (17516): do not know color format 0x7f00000c = 2130706444 03-15 10:56:50.740 E/IMGTOPAZ( 2975): Error in OTE_Base_GetParameter at line 1321 03-15 10:56:50.740 E/OMXNodeInstance( 2975): getParameter(2130706443) ERROR: 0x8000100e 03-15 10:56:50.740 W/ACodec (17516): do not know color format 0x7f000012 = 2130706450 03-15 10:56:50.740 E/IMGTOPAZ( 2975): Error in OTE_Base_GetParameter at line 1321 03-15 10:56:50.740 E/OMXNodeInstance( 2975): getParameter(2130706443) ERROR: 0x8000100e 03-15 10:56:50.740 W/ACodec (17516): do not know color format 0x7f00000a = 2130706442 03-15 10:56:50.740 E/IMGTOPAZ( 2975): Error in OTE_Base_GetParameter at line 1321 03-15 10:56:50.740 E/OMXNodeInstance( 2975): getParameter(2130706443) ERROR: 0x8000100e 03-15 10:56:50.740 W/ACodec (17516): do not know color format 0x7f00000b = 2130706443 03-15 10:56:50.740 E/IMGTOPAZ( 2975): Error in OTE_Base_GetParameter at line 1321 03-15 10:56:50.740 E/OMXNodeInstance( 2975): getParameter(2130706443) ERROR: 0x8000100e 03-15 10:56:50.740 W/ACodec (17516): do not know color format 0x7f000789 = 2130708361 03-15 10:56:50.740 I/ACodec (17516): setupVideoEncoder succeeded 03-15 10:56:50.740 E/IMGTOPAZ( 2975): Error in OTE_Base_GetParameter at line 1321 03-15 10:56:50.740 E/OMXNodeInstance( 2975): getParameter(2130706443) ERROR: 0x8000100e 03-15 10:56:50.740 W/ACodec (17516): do not know color format 0x7f000789 = 2130708361 以下是相关代码: MediaFormat format = MediaFormat.createVideoFormat("video/avc", width, height); format.setInteger(MediaFormat.KEY_COLOR_FORMAT, <em>MediaCodec</em>Info.CodecCapabilities.COLOR_FormatSurface); format.setInteger(MediaFormat.KEY_BIT_RATE, 4000000); format.setInteger(MediaFormat.KEY_FRAME_RATE, 15); format.setInteger(MediaFormat.KEY_I_FRAME_INTERVAL, 1); mEncoder = <em>MediaCodec</em>.createEncoderByType("video/avc"); mEncoder.configure(format, null, null, <em>MediaCodec</em>.CONFIGURE_FLAG_ENCODE); mInputSurface = mEncoder.createInputSurface(); mEncoder.start();
Android MediaCodec:eglSwapBuffers:EGL错误:0x300d
所以这个<em>问题</em>只发生在我第二次尝试并记录时。这意味着我第一次运行<em>MediaCodec</em>s和Muxer时,大部分时间都可以正常工作。但是现在我希望应用更稳定。 帮忙弄清楚什么不是被拆卸下来并正确设置。 基本
dumpsys实现原理以及gfxinfo实例讲解
转载请标明出处:http://www.jianshu.com/users/183339cdc7ae/latest_articles 概述 dumpsys是一个<em>android</em>手机里面的可执行文件。 从名字就可以看出,主要是用于dump 当前<em>android</em> system的一些信息。比如 activity(当前系统中所有activity的堆栈关系) alarm(当前系统中所有的Alarms)
E/NdkMediaCodec: sf error code: -38或者-18的报错
在使用网上开源VLC视频播放器时,当调用stop去停止视频播放时,报出E/Ndk<em>MediaCodec</em>: sf error code: -38这个错误。开始以为是正常的报错。但在切换页面时,程序被卡死(堵塞了一分钟左右吧)。所以找<em>问题</em>。最后发现在是在调用so文件里的方法nativestop时出现<em>问题</em>,而堵塞的。所以记录一下。...
LVC (videolan) 播放高清surface 出错解决方法
LVC (videolan) 播放高清节目采用OMX解码时,重新进入播放会导致surface 出错
Android性能优化-过度绘制解决方案
过渡绘制:屏幕上某一像素点在一帧中被重复绘制多次,就是过渡绘制。 下图中多个卡片跌在一起,但是只有第一个卡片是完全可见的。背后的卡片只有部分可见。但是<em>android</em>系统在绘制时会将下层的卡片<em>进行</em>绘制,接着再将上层的卡片<em>进行</em>绘制。但其实,下层卡片不可见的部分是不需要<em>进行</em>绘制的,只有可见部分才需要<em>进行</em>绘制。 依据过渡绘制的层度可以分成: - 无过渡绘制(一个像素只被绘制了一次)
Android GPU呈现模式原理及卡顿掉帧浅析
APP开发中,卡顿绝对优化的大头,Google为了帮助开发者更好的定位<em>问题</em>,提供了不少工具,如Systrace、GPU呈现模式分析工具、Android Studio自带的CPU Profiler等,主要是辅助定位哪段代码、哪块逻辑比较耗时,影响UI渲染,导致了卡顿。拿Profile GPU Rendering工具而言,它用一种很直观的方式呈现可能超时的节点,该工具及其原理也是本文的重点: CPU...
Android客户端性能工具2:FrameInfoVisualizer(gfxinfo和开发者选项gpu信息)分析
该类的作用是提供一些gfxinfo的信息还开发者选项中的gpu呈现模式分析和显示gpu视图更新选项 该类提供的接口只有下面五个 typedef RingBufferFrameInfo, 120> FrameInfoSource; class FrameInfoVisualizer { public: FrameInfoVisualizer(FrameInfoSource& sour
android studio ndk 调试技巧
Android ndk开发,出现内存溢出或别的<em>问题</em>需要调试时,如何快速定位到源码位置,可以使用addr2line 和 ndk-stack 两个工具。在程序 内容主要分为一下几个部分:1.Library Symbols (共享库的符号) 2.Analyze Tools (可用到的分析工具) 3.CrashLog – Header 4.CrashLog – Backtrace(For most cr
Android bug——Launcher 0x506导致花屏问题
现象描述: 在Android4.4中,概率极高会出现Launcher或者应用整个绘制成花屏、黑屏或者字体绘制成方块等<em>问题</em>,出现花屏<em>问题</em>的时候将会在hwui中打印0x506的错误。 分析: 通过log发现也只有hwui中出现0x506这个错误码,即hwui中当前绘图时使用的fbo是无效的。接着通过分析代码发现当前hwui中使用fbo的地方为LayerRenderer中,在LayerRender
Mediacodec
基本原理和流程 Mediacodec用于硬件<em>编解码</em>,其存在3种形态Stopped[Uninitialized,Confirured,Error]Executing[Flushed,Running,End of Stream],Released。构造一个Mediacodec对象(eg:<em>MediaCodec</em>.createDecoderByType)时处于Uninitialized态,执行configu
MediaRecorder+localSocket传播录像流数据 出错
错误log 是: X.MS.AVC.Encoder, version -.. 01-01 08:22:16.578 4609 5000 I <em>MediaCodec</em>: <em>MediaCodec</em> will op
手机性能测评之自定义获取gfxinfo信息
概述 我们知道<em>android</em>系统的显示是需要cpu和gpu的配合。cpu先将数据(如:bitmap/material等)准备好,然后交给gpu<em>进行</em>图像合成,然后刷到LCD上面。 Google在Jelly Bean(4.1)的推出了Project Butter(黄油计划),让系统的渲染和动画都使用vsync的方式,支持高达60fps的动画效果,换算一下也就是说绘制一帧的时间是16ms。 有了这
android MediaCodec编解码问题
两台手机,一台手机开热点,一台手机连接,然后互相<em>进行</em>视频通话,遇到了一个奇怪<em>编解码</em><em>问题</em>,在本机上编码,再解码显示到surfaceview上是可以的,但是通过socket发送到另一台手机上接收解码就不行
MediaRecorder(18373): start failed: -38
我在利用手机摄像头录像并通过localsocket推送rtsp流到电脑。现在有时候会出现这个错误MediaRecorder(18373): start failed: -38,出现后很长一段时间后又突然好了,过一段时就又突然出现这个错误。 有时候会出现如下错误才会提示start failed: -38,我觉得和这个有关系 ``` 08-23 11:30:00.871: E/ACodec(12103): [OMX.google.h264.encoder] ERROR(0x80001001) 08-23 11:30:00.871: E/ACodec(12103): signalError(omxError 0x80001001, internalError -2147483648) 08-23 11:30:00.871: E/<em>MediaCodec</em>(12103): Codec reported err 0x80001001, actionCode 0, while in state 6 08-23 11:30:00.921: E/ACodec(12103): [OMX.google.h264.encoder] ERROR(0x80001001) 08-23 11:30:00.921: E/ACodec(12103): signalError(omxError 0x80001001, internalError -2147483648) 08-23 11:30:00.921: E/<em>MediaCodec</em>(12103): Codec reported err 0x80001001, actionCode 0, while in state 6 08-23 11:30:01.061: E/ACodec(12103): [OMX.qcom.video.encoder.avc] storeMetaDataInBuffers (output) failed w/ err -1010 ``` 网上看到是那个service在后台用到它,所以才会报错么,但是我从后台退出程序,再次进入依然保这个错误,我很费解,哪位大神帮我<em>看看</em>,跪求指点。 断点刚到这个方法(还未执行这个方法),摄像头正常工作。 创建MediaRecorder代码如下。 ``` MediaRecorder mMediaRecorder = null; protected void encodeWithMediaRecorder() throws IOException { Log.d(TAG,"Video encoded using the MediaRecorder API"); // We need a local socket to forward data output by the camera to the packetizer createSockets(); // Reopens the camera if needed destroyCamera(); createCamera(); // The camera must be unlocked before the MediaRecorder can use it unlockCamera(); if (mMediaRecorder != null) { mMediaRecorder.stop(); mMediaRecorder.release(); mMediaRecorder = null; } // try { mMediaRecorder = new MediaRecorder(); //mCamera.unlock(); mMediaRecorder.setCamera(mCamera); mMediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA); mMediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4); mMediaRecorder.setVideoEncoder(mVideoEncoder); mMediaRecorder.setVideoSize(mRequestedQuality.resX,mRequestedQuality.resY); mMediaRecorder.setVideoFrameRate(mRequestedQuality.framerate); mMediaRecorder.setPreviewDisplay(mSurfaceView.getHolder().getSurface()); // The bandwidth actually consumed is often above what was requested mMediaRecorder.setVideoEncodingBitRate((int)(mRequestedQuality.bitrate*0.8));//0.8 // We write the ouput of the camera in a local socket instead of a file ! // This one little trick makes streaming feasible quiet simply: data from the camera // can then be manipulated at the other end of the socket mMediaRecorder.setOutputFile(mSender.getFileDescriptor()); mMediaRecorder.prepare(); try{ mMediaRecorder.start(); 这里抛出异常start failed: -38 }catch(Exception e) { Log.e(TAG,"this is Exception start error : "+e); //这里只打印到java.lang.IllegalStateException } // } catch (Exception e) { // Log.e(TAG,"this is Exception error : "+e); // throw new ConfNotSupportedException(e.getMessage()); // } // This will skip the MPEG4 header if this step fails we can't stream anything :( InputStream is = mReceiver.getInputStream(); try { byte buffer[] = new byte[4]; // Skip all atoms preceding mdat atom while (!Thread.interrupted()) { while (is.read() != 'm'); is.read(buffer,0,3); if (buffer[0] == 'd' && buffer[1] == 'a' && buffer[2] == 't') break; } } catch (IOException e) { Log.e(TAG,"Couldn't skip mp4 header :/"); stop(); throw e; } // The packetizer encapsulates the bit stream in an RTP stream and send it over the network mPacketizer.setDestination(mDestination, mRtpPort, mRtcpPort); mPacketizer.setInputStream(mReceiver.getInputStream()); mPacketizer.start(); mStreaming = true; } protected void createSockets() throws IOException { final String LOCAL_ADDR = "net.majorkernelpanic.streaming-"; for (int i=0;i+e.getMessage()); } mUnlocked = true; } } ``` 如果哪里不清楚,我可以再贴代码。现在我一直弄不懂为什么会出现start failed -38,再次跪求指点。
Android下Mediacodec编解码问题
最近在学习Android中的硬<em>编解码</em>,写了一个小demo,主要实现了从预览取到帧数据然后编码成h264,然后把编码好的数据在解码显示在surfaceview上面,遇到了点<em>问题</em>,解码出来显示的颜色不对,
具有GPU硬件加速功能的Android图形用户界面
图形是Android平台的一大主题,包含java / jni图形框架和2D / 3D图形引擎(skia,OpenGL-ES,renderscript)。本文档介绍飞思卡尔器件上的一般Android图形堆栈和UI功能。 1. Android图形堆栈所有Android 3D应用和游戏都有以下图形堆栈:Android系统用户界面和所有应用程序用户界面遵循如下的2D图形堆栈,硬件渲染将通过GPU硬件Ope...
MediaRecorder 录音执行stop的时候报错
case TelephonyManager.CALL_STATE_OFFHOOK: // 接听状态 String dir = Environment.getExternalStorageDirect
MediaRecorder录屏,Socket传输录屏内容报错java.lang.IllegalStateException
用模拟器调试可以运行,用真机测试在 mediaRecorder.prepare();抛异常 ``` package www.xjw.com.mymiracast2.screenrecordservice; import <em>android</em>.app.Notification; import <em>android</em>.app.Service; import <em>android</em>.content.Context; import <em>android</em>.content.Intent; import <em>android</em>.hardware.display.DisplayManager; import <em>android</em>.hardware.display.VirtualDisplay; import <em>android</em>.media.MediaRecorder; import <em>android</em>.media.projection.MediaProjection; import <em>android</em>.media.projection.MediaProjectionManager; import <em>android</em>.os.IBinder; import <em>android</em>.os.ParcelFileDescriptor; import java.net.Socket; /** * Created by dzjin on 2018/1/9. */ public class ScreenRecordService extends Service { private int resultCode; private Intent resultData=null; private MediaProjection mediaProjection=null; private MediaRecorder mediaRecorder=null; private VirtualDisplay virtualDisplay=null; private int mScreenWidth; private int mScreenHeight; private int mScreenDensity; private static String filePathName; private Socket receiver = null; private ParcelFileDescriptor pfd = null; private Context context=null; private String host = null; private int port = 8989; @Override public void onCreate() { super.onCreate(); //startForeground(2, new Notification()); } /** * 每次客户端通过调用startService(Intent)显式启动服务时,系统调用startService(Intent), *提供它提供的参数和表示启动请求的唯一整数标记。 * 不要直接调用这个方法。 * @param intent * @param flags * @param startId * @return */ @Override public int onStartCommand(Intent intent, int flags, int startId) { try{ resultCode=intent.getIntExtra("resultCode",-1); resultData=intent.getParcelableExtra("resultData"); mScreenWidth=intent.getIntExtra("mScreenWidth",0); mScreenHeight=intent.getIntExtra("mScreenHeight",0); mScreenDensity=intent.getIntExtra("mScreenDensity",0); filePathName=intent.getStringExtra("filePathName"); host=intent.getStringExtra("host"); port=intent.getIntExtra("port",8989); receiver = new Socket(host, port); pfd = ParcelFileDescriptor .fromSocket(receiver); mediaProjection=createMediaProjection(); mediaRecorder=createMediaRecorder(); virtualDisplay=createVirtualDisplay(); mediaRecorder.start(); }catch (Exception e) { e.printStackTrace(); } /** * START_NOT_STICKY: *从onStartCommand返回的常量(Intent, int, int):如果这个服务的进程是 *在启动时被杀死(从onStartCommand(Intent, int, int)返回后), *没有新的start意图交付给它,然后将服务从 *启动状态,在以后显式调用Context.startService(Intent)之前不要重新创建。 *服务将不会接收带有空意图的onStartCommand(Intent, int, int)调用 *因为如果没有等待交付的意图,它将不会重新启动。 */ return Service.START_NOT_STICKY; } public MediaProjection createMediaProjection(){ /** *使用getSystemService(类)检索MediaProjectionManager实例 *管理媒体放映会议。 */ return ((MediaProjectionManager)getSystemService(Context.MEDIA_PROJECTION_SERVICE)) .getMediaProjection(resultCode,resultData); /** *检索从成功的屏幕捕获请求中获得的MediaProjection。 *如果startActivityForResult()的结果不是RESULT_OK,则*将为null。 */ } private MediaRecorder createMediaRecorder(){ //用于录制音频和视频。录音控制是基于一个简单的状态机。 MediaRecorder mediaRecorder=new MediaRecorder(); //设置要录音的源。 //mediaRecorder.setAudioSource(MediaRecorder. AudioSource.CAMCORDER); //设置要录制的视频源。 mediaRecorder.setVideoSource(MediaRecorder.VideoSource.SURFACE); //设置录制过程中产生的输出的格式。 //3GPP媒体文件格式 mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_2_TS); //设置录音格式 //mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); //设置录像编码比特率。 //param:以比特/秒为单位的视频编码比特率 mediaRecorder.setVideoEncodingBitRate(5*mScreenWidth*mScreenHeight); //设置录像编码器用于录像。 mediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264); //设置要拍摄的视频的宽度和高度。 mediaRecorder.setVideoSize(mScreenWidth,mScreenHeight); //设置要捕获视频的帧速率。 mediaRecorder.setVideoFrameRate(60); try{ mediaRecorder.setOutputFile(pfd.getFileDescriptor()); //mediaRecorder.setOutputFile(filePathName); **此次抛异常** //准备记录器开始捕捉和编码数据。 mediaRecorder.prepare(); }catch (Exception e){ e.printStackTrace(); } return mediaRecorder; } private VirtualDisplay createVirtualDisplay(){ /** *名称字符串:虚拟显示的名称,必须是非空的。这个值不能为空。 width int:虚拟显示的宽度,以像素为单位。必须大于0。 高度int:虚拟显示器的高度,以像素为单位。必须大于0。 dpi int: dpi中虚拟显示的密度。必须大于0。 标志int:虚拟显示标志的组合。有关标志的完整列表,请参见DisplayManager。 surface surface:虚拟显示内容应该呈现到的表面,如果一开始没有,则为null。 回调virtualdisplay。回调:当虚拟显示的状态改变时调用的回调,如果没有,则为空。 处理程序处理程序:应该在其上调用回调的处理程序,如果应该在调用线程的主循环程序上调用回调,则为null。 */ /** * DisplayManager.VIRTUAL_DISPLAY_FLAG_AUTO_MIRROR *虚拟显示标志:当没有显示内容时,允许在私有显示上镜像内容。 */ return mediaProjection.createVirtualDisplay("mediaProjection",mScreenWidth,mScreenHeight,mScreenDensity, DisplayManager.VIRTUAL_DISPLAY_FLAG_AUTO_MIRROR,mediaRecorder.getSurface(),null,null); } @Override public void onDestroy() { super.onDestroy(); if(virtualDisplay!=null){ virtualDisplay.release(); virtualDisplay=null; } if(mediaRecorder!=null){ mediaRecorder.stop(); mediaRecorder=null; } if(mediaProjection!=null){ mediaProjection.stop(); mediaProjection=null; } } @Override public IBinder onBind(Intent intent) { System.out.println("==============================="); return null; } } ``` I/MediaRecorder: enter in file frameworks/av/media/libmedia/mediarecorder.cpp, function prepare, line 461 I/IMediaRecorder: prepare (BpMediaRecorder client) in file frameworks/av/media/libmedia/IMediaRecorder.cpp, function prepare, line 249 W/com.mymiracast2: type=1400 audit(0.0:104572): avc: denied { read write } for path="socket:[8870267]" dev="sockfs" ino=8870267 scontext=u:r:mediaserver:s0 tcontext=u:r:untrusted_app:s0:c512,c768 tclass=tcp_socket permissive=0 E/MediaRecorder: prepare failed: -38 W/zygote64: Got a deoptimization request on un-deoptimizable method void <em>android</em>.media.MediaRecorder._prepare() W/System.err: java.lang.IllegalStateException W/System.err: at <em>android</em>.media.MediaRecorder._prepare(Native Method) W/System.err: at <em>android</em>.media.MediaRecorder.prepare(MediaRecorder.java:1017) W/System.err: at www.xjw.com.mymiracast2.screenrecordservice.ScreenRecordService.createMediaRecorder(ScreenRecordService.java:137) W/System.err: at www.xjw.com.mymiracast2.screenrecordservice.ScreenRecordService.onStartCommand(ScreenRecordService.java:79) W/System.err: at <em>android</em>.app.ActivityThread.handleServiceArgs(ActivityThread.java:4151) W/System.err: at <em>android</em>.app.ActivityThread.-wrap21(Unknown Source:0) W/System.err: at <em>android</em>.app.ActivityThread$H.handleMessage(ActivityThread.java:2119) W/System.err: at <em>android</em>.os.Handler.dispatchMessage(Handler.java:108) W/System.err: at <em>android</em>.os.Looper.loop(Looper.java:166) W/System.err: at <em>android</em>.app.ActivityThread.main(ActivityThread.java:7529) W/System.err: at java.lang.reflect.Method.invoke(Native Method) W/System.err: at com.<em>android</em>.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:245) W/System.err: at com.<em>android</em>.internal.os.ZygoteInit.main(ZygoteInit.java:921) E/MediaRecorder: SurfaceMediaSource could not be initialized! W/System.err: java.lang.IllegalStateException: failed to get surface at <em>android</em>.media.MediaRecorder.getSurface(Native Method) W/System.err: at www.xjw.com.mymiracast2.screenrecordservice.ScreenRecordService.createVirtualDisplay(ScreenRecordService.java:160) at www.xjw.com.mymiracast2.screenrecordservice.ScreenRecordService.onStartCommand(ScreenRecordService.java:80) W/System.err: at <em>android</em>.app.ActivityThread.handleServiceArgs(ActivityThread.java:4151) at <em>android</em>.app.ActivityThread.-wrap21(Unknown Source:0) at <em>android</em>.app.ActivityThread$H.handleMessage(ActivityThread.java:2119) at <em>android</em>.os.Handler.dispatchMessage(Handler.java:108) W/System.err: at <em>android</em>.os.Looper.loop(Looper.java:166) at <em>android</em>.app.ActivityThread.main(ActivityThread.java:7529) at java.lang.reflect.Method.invoke(Native Method) at com.<em>android</em>.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:245) W/System.err: at com.<em>android</em>.internal.os.ZygoteInit.main(ZygoteInit.java:921) D/StrictMode: StrictMode policy violation; ~duration=7334 ms: <em>android</em>.os.StrictMode$StrictModeNetworkViolation: policy=65543 violation=4 at <em>android</em>.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1466) at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:356) at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:201) at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:183) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:356) at java.net.Socket.connect(Socket.java:616) at java.net.Socket.connect(Socket.java:565) at java.net.Socket.(Socket.java:445) at java.net.Socket.(Socket.java:217) at www.xjw.com.mymiracast2.screenrecordservice.ScreenRecordService.onStartCommand(ScreenRecordService.java:74) at <em>android</em>.app.ActivityThread.handleServiceArgs(ActivityThread.java:4151) at <em>android</em>.app.ActivityThread.-wrap21(Unknown Source:0) at <em>android</em>.app.ActivityThread$H.handleMessage(ActivityThread.java:2119) at <em>android</em>.os.Handler.dispatchMessage(Handler.java:108) at <em>android</em>.os.Looper.loop(Looper.java:166) at <em>android</em>.app.ActivityThread.main(ActivityThread.java:7529) at java.lang.reflect.Method.invoke(Native Method) at com.<em>android</em>.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:245) at com.<em>android</em>.internal.os.ZygoteInit.main(ZygoteInit.java:921) D/StrictMode: StrictMode policy violation; ~duration=7332 ms: <em>android</em>.os.StrictMode$StrictModeNetworkViolation: policy=65543 violation=4 ``` ```
Hbuilder连接手机报错
用Hbuilder连接手机调试时报错 内容: 启动手机上的HBuilder调试基座App失败,请手动启动... 10:41.886 29973 29995 I console : START JS F
MediaRecorder通过localsocket怎样实现录屏发送到流媒体并保存一份本地文件?
如题,用MediaRecorder录屏,现在的需求是能够发送流媒体的同时还能保存为一份本地文件,该如何实现?
android开发的app只在华为部分手机报错
只在华为p6和m7出现这个<em>问题</em> java.lang.RuntimeException: Could not read input channel file descriptors from parce
android硬编码h264-MediaCodec
本人对<em>android</em>已无大爱,更新太快,就h264编码先后实现了 ffmpeg+x264软编  Mediarecoder提取,还没能稳定的又出了<em>MediaCodec</em>,更新太快。我还是研究网络吧。既然瞅了几眼,就发出来个测试版本吧。<em>android</em>编码h264, 用udp发送到vlc播放测试。代码上传至:http://download.csdn.net/detail/liuhongxiangm/677
Support Design库中的BottomSheetDialog组件使用
首先来看这个组件使用的经典案例,微信公众号文章操作功能显示: 首先要知道BottomSheetDialog有两种,第一种弹出后不影响主界面交互,第二种弹出后主界面变暗不能交互,这里分别<em>进行</em>使用。 1.首先是普通的BottomSheetDialog: (1)实现 使用方法是Behavier和CoordingLayout相结合。就像悬浮按钮和ToolBar等一样,这个组件要作为Co
Android Studio查看包依赖关系+删除冲突框架版本(如glide)
最近遇到了一个<em>问题</em>,我引入了glide 3.7版本,在使用过程中却发现无法正常使用链式语法设置placeholder和error等,于是我打开项目.idealibiraries,发现目录下glide的版本是4.0,很明显,有别的框架依赖了4.0,那么我现在就需要找到这个框架。 1.使用Gradle View查看依赖树: 首先搜索Gradle View插件安装重启。然后View--
mediarecorder start failed
记录camera2错误日志: 错误一:mediarecorder start failed -38 事因:测试开发板对本公司项目的允许状态,项目中测试录像时报错 start failed -38 的错误. 错误原由:项目集成了讯飞语音,讯飞语音为全局运行,导致项目中运行录像时报错. 解说:网上查明说start failed -38 是由于麦克风没有注销资源的情况下被录像给调用而报错. 测...
android上使用MP4v2打包h264+aac,数据错误,不能播放生成的mp4文件
大家好,我在<em>android</em>上写了一个视频录像程序,视音频数据(h264+aac)保存在两个队列里,我想要用MP4v2,开两个线程把数据打包成MP4视频文件,结果发现生成的视频不能使用VideoView播放,去SD卡找到生成的视频文件,使用小米视频能播放,却没有声音,数据也有错误——视频时长显示为11:35:36,实际录像时长只有几秒,能播放的也是那几秒。 网上能查的资料很少,github上也没有可供参考的项目。我自己瞎改了一下参数,没有效果。测试后发现不写入音频数据的话,可以正常播放(没有声音),一写入音频数据,或者说调用了MP4AddAudioTrack找到audio的trackId就会出现该<em>问题</em>,猜测是数据写入错误,具体原因还不清楚,也想不出什么解决方法。请问有哪些可能的原因和解决<em>问题</em>的方向吗?(工作的一个<em>问题</em>,只能用MP4v2,不能用ffmpeg) 已经被这个<em>问题</em>困扰了很久了,所以把全部C币都拿出来悬赏,也不知道大家在意不在意这个C币,希望有了解MP4v2的大神帮忙解惑,万分感谢! --------------------------- 如果这个<em>问题</em>比较复杂,或者说可能的原因有很多,一下子说不完,那么可以给个学习方向上的建议吗?比如应该去哪里学习、补充哪些知识之类,对这个<em>问题</em>,我真的有一种无从下手的感觉。只要给我一个研究方向/建议,我也很感激了!
TI OMAP4430 openmax解码获取不了组件句柄失败问题
各位兄弟姐妹好啊 请问有哪位做过<em>android</em>平台TI 下的openmax的视频硬解码播放功能? //打开加载libomx_sharedlibrary.so成功,其他初始化也没有<em>问题</em> //lib_na
spydroid可在手机上运行,但不能再开发板上运行
正在做导师的一个传实时视频的项目,用的开源项目spydroid,将应用运行在手机上,电脑端使用VLC播放器可以实时播放(使用RTSP服务),但是相同的应用运行在开发板上,就无法运行。log信息大致如下
求助:matlab Bundle#115 start failed 出错求助,如图。
Bundle#107 start failed: Loading D:\MATLAB2019a\bin\win64\builtins\matlab_graphics_chart\mwlibmwcha
录像时调用MediaRecorder的start()时发生start failed: -19错误
之前按照官方文档api写的MediaRecorder录制video,测试的时候用的魅族手机测试,并没有发现什么<em>问题</em>。然后给客户测试的时候,他们居然说不能录制视频(用的华为p10),搞得我莫名其妙 然后我用华为手机(不是p10)测试了一下 居然没有发现<em>问题</em>.找了半天,结果是因为在初始化的时候设置了帧率mMediaRecorder.setVideoFrameRate(24);这个帧率在p10上面不支持...
MediaCodec 从Surface编码及android锁屏录像和后台录像实现
息屏录像模块 基于以下原理我做出了完整的后头录像功能.不同于其它监控软件的伪后台(伪装窗口运行),此模块完全后台运行,即使锁屏状态也能监测和录像.不仅省电,而且隐蔽性极高,除了你其它人无法察觉. 基于此模块做出一个app. 功能有: 移动侦测录像. 此软件可以侦测摄像头范围内画面.当发生画面变化时自动开始录像,当动作停止一分钟后自动停止录像并保存. 脸部识别侦测录像.侦测到人脸时自动...
ffmpeg mediacodec 硬解初探
ffmpeg mediacodec硬解初探 1编译: ffmpeg自3.1版本加入了<em>android</em> mediacodec硬解支持,解码器如图 硬件加速器如图(还不清楚硬件加速器的功能) 编译带h264_mediacodec版本的库需要开启以下选项 –enable-jni –enable-mediacodec –enable-decoder=h264_mediacodec –enab...
Android MediaCodec 资料
Android <em>MediaCodec</em> stuff Last update:2016-06-08 Overview Samples FAQ This page is about the Android <em>MediaCodec</em> class, which can be used to encodeand decode audio and video data. It includes a c
Android 原样输出Assets内容
public static String readFileFromAssets(Context context, String fileName) { String res = ""; try { InputStream in = context.getResources().getAssets().open(fileName); int lengt
android 使用MediaCodec 编解码总结(最全)
http://blog.csdn.net/gh_home/article/details/52143102   <em>android</em> 使用<em>MediaCodec</em> <em>编解码</em>总结 标签: <em>android</em>编码异步解码硬件 2016-08-07 16:32 1906人阅读 评论(4) 收藏 举报  分类: Android(16)  版权声明:本文
Android之MediaCodec使用经验分享
Android之<em>MediaCodec</em>使用经验分享参考学习资料: http://www.cnblogs.com/Xiegg/p/3428529.html <em>MediaCodec</em>文档翻译&&一些FAQ和例子<em>MediaCodec</em> codec = <em>MediaCodec</em>.createDecoderByType(type); codec.configure(format, ...); codec.star
android ACodec MediaCodec NuPlayer flow
<em>MediaCodec</em>/ACodec流程i. 初始化(从java层开始):1、 java层中调用<em>MediaCodec</em>.createEncoder/DecoderByType(…)或<em>MediaCodec</em>.createByCodecName(…)创建编码器或者解码器2、 根据不同的参数new <em>MediaCodec</em>,然后其中会调用native_setup(…)3、 Native层<em>android</em>_media...
Android中使用MediaCodec视频编码异步实现
Android中使用<em>MediaCodec</em><em>进行</em>视频<em>编解码</em>同步异步实现简单的介绍一下<em>MediaCodec</em>:本文主要讲述的是博主自己在用<em>MediaCodec</em><em>进行</em><em>编解码</em>过程中分别用同步和异步两种方式实现了硬<em>编解码</em>的过程,因为之前自己在用异步实现的过程中经常会出现解码黑屏的情况,百度和博客上也没有相关的实例,找到的只有一个示例代码,并没有提供什么帮助。所以写了代码去实现,Mediacodec的简单使用我先介绍
android使用MediaCodec实现异步视频编解码
<em>android</em>使用<em>MediaCodec</em>实现异步视频<em>编解码</em> 最近在做屏幕投影的项目中需要对H.264的视频流做解码播放显示,项目基于Android 7.0的系统,虽然<em>android</em>系统已经提供了一套以<em>MediaCodec</em>为核心的硬解码实现方案。但是在实际运用过程中,遇到许多<em>问题</em>,在这里<em>进行</em>一个总结,方便自己以后查阅,主要涉及以下内容: TextureView与SurfaceView Media...
Android音视频编解码MediaCodec
<em>MediaCodec</em>类可用于访问低级媒体<em>编解码</em>器,即编码器/解码器组件。 它是Android低级多媒体支持基础架构的一部分(通常与MediaExtractor,MediaSync,MediaMuxer,MediaCrypto,MediaDrm,Image,Surface和AudioTrack一起使用)。广义而言,<em>编解码</em>器处理输入数据以生成输出数据。 它异步处理数据并使用一组输入和输出缓冲区。 在简...
在中国程序员是青春饭吗?
今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...
《MySQL 性能优化》之理解 MySQL 体系结构
本文介绍 MySQL 的体系结构,包括物理结构、逻辑结构以及插件式存储引擎。
程序员请照顾好自己,周末病魔差点一套带走我。
程序员在一个周末的时间,得了重病,差点当场去世,还好及时挽救回来了。
Python+OpenCV实时图像处理
目录 1、导入库文件 2、设计GUI 3、调用摄像头 4、实时图像处理 4.1、阈值二值化 4.2、边缘检测 4.3、轮廓检测 4.4、高斯滤波 4.5、色彩转换 4.6、调节对比度 5、退出系统 初学OpenCV图像处理的小伙伴肯定对什么高斯函数、滤波处理、阈值二值化等特性非常头疼,这里给各位分享一个小项目,可通过摄像头实时动态查看各类图像处理的特点,也可对各位调参、测试...
2020年一线城市程序员工资大调查
人才需求 一线城市共发布岗位38115个,招聘120827人。 其中 beijing 22805 guangzhou 25081 shanghai 39614 shenzhen 33327 工资分布 2020年中国一线城市程序员的平均工资为16285元,工资中位数为14583元,其中95%的人的工资位于5000到20000元之间。 和往年数据比较: yea...
为什么猝死的都是程序员,基本上不见产品经理猝死呢?
相信大家时不时听到程序员猝死的消息,但是基本上听不到产品经理猝死的消息,这是为什么呢? 我们先百度搜一下:程序员猝死,出现将近700多万条搜索结果: 搜索一下:产品经理猝死,只有400万条的搜索结果,从搜索结果数量上来看,程序员猝死的搜索结果就比产品经理猝死的搜索结果高了一倍,而且从下图可以看到,首页里面的五条搜索结果,其实只有两条才是符合条件。 所以程序员猝死的概率真的比产品经理大,并不是错...
害怕面试被问HashMap?这一篇就搞定了!
声明:本文以jdk1.8为主! 搞定HashMap 作为一个Java从业者,面试的时候肯定会被问到过HashMap,因为对于HashMap来说,可以说是Java集合中的精髓了,如果你觉得自己对它掌握的还不够好,我想今天这篇文章会非常适合你,至少,看了今天这篇文章,以后不怕面试被问HashMap了 其实在我学习HashMap的过程中,我个人觉得HashMap还是挺复杂的,如果真的想把它搞得明明白...
毕业5年,我问遍了身边的大佬,总结了他们的学习方法
我问了身边10个大佬,总结了他们的学习方法,原来成功都是有迹可循的。
python爬取百部电影数据,我分析出了一个残酷的真相
2019年就这么匆匆过去了,就在前几天国家电影局发布了2019年中国电影市场数据,数据显示去年总票房为642.66亿元,同比增长5.4%;国产电影总票房411.75亿元,同比增长8.65%,市场占比 64.07%;城市院线观影人次17.27亿,同比增长0.64%。 看上去似乎是一片大好对不对?不过作为一名严谨求实的数据分析师,我从官方数据中看出了一点端倪:国产票房增幅都已经高达8.65%了,为什...
推荐10个堪称神器的学习网站
每天都会收到很多读者的私信,问我:“二哥,有什么推荐的学习网站吗?最近很浮躁,手头的一些网站都看烦了,想<em>看看</em>二哥这里有什么新鲜货。” 今天一早做了个恶梦,梦到被老板辞退了。虽然说在我们公司,只有我辞退老板的份,没有老板辞退我这一说,但是还是被吓得 4 点多都起来了。(主要是因为我掌握着公司所有的核心源码,哈哈哈) 既然 4 点多起来,就得好好利用起来。于是我就挑选了 10 个堪称神器的学习网站,推...
这些软件太强了,Windows必装!尤其程序员!
Windows可谓是大多数人的生产力工具,集娱乐办公于一体,虽然在程序员这个群体中都说苹果是信仰,但是大部分不都是从Windows过来的,而且现在依然有很多的程序员用Windows。 所以,今天我就把我私藏的Windows必装的软件分享给大家,如果有一个你没有用过甚至没有听过,那你就赚了????,这可都是提升你幸福感的高效率生产力工具哦! 走起!???? NO、1 ScreenToGif 屏幕,摄像头和白板...
阿里面试,面试官没想到一个ArrayList,我都能跟他扯半小时
我是真的没想到,面试官会这样问我ArrayList。
曾经优秀的人,怎么就突然不优秀了。
职场上有很多辛酸事,很多合伙人出局的故事,很多技术骨干被裁员的故事。说来模板都类似,曾经是名校毕业,曾经是优秀员工,曾经被领导表扬,曾经业绩突出,然而突然有一天,因为种种原因,被裁员了,...
C语言荣获2019年度最佳编程语言
关注、星标公众号,不错过精彩内容作者:黄工公众号:strongerHuang近日,TIOBE官方发布了2020年1月编程语言排行榜单。我在前面给过一篇文章《2019年11月C语言接近Ja...
大学四年因为知道了这32个网站,我成了别人眼中的大神!
依稀记得,毕业那天,我们导员发给我毕业证的时候对我说“你可是咱们系的风云人物啊”,哎呀,别提当时多开心啦????,嗯,我们导员是所有导员中最帅的一个,真的???? 不过,导员说的是实话,很多人都叫我大神的,为啥,因为我知道这32个网站啊,你说强不强????,这次是绝对的干货,看好啦,走起来! PS:每个网站都是学计算机混互联网必须知道的,真的牛杯,我就不过多介绍了,大家自行探索,觉得没用的,尽管留言吐槽吧???? 社...
良心推荐,我珍藏的一些Chrome插件
上次搬家的时候,发了一个朋友圈,附带的照片中不小心暴露了自己的 Chrome 浏览器插件之多,于是就有小伙伴评论说分享一下我觉得还不错的浏览器插件。 我下面就把我日常工作和学习中经常用到的一些 Chrome 浏览器插件分享给大家,随便一个都能提高你的“生活品质”和工作效率。 Markdown Here Markdown Here 可以让你更愉快的写邮件,由于支持 Markdown 直接转电子邮...
看完这篇HTTP,跟面试官扯皮就没问题
我是一名程序员,我的主要编程语言是 Java,我更是一名 Web 开发人员,所以我必须要了解 HTTP,所以本篇文章就来带你从 HTTP 入门到进阶,看完让你有一种恍然大悟、醍醐灌顶的感觉。 最初在有网络之前,我们的电脑都是单机的,单机系统是孤立的,我还记得 05 年前那会儿家里有个电脑,想打电脑游戏还得两个人在一个电脑上玩儿,及其不方便。我就想为什么家里人不让上网,我的同学 xxx 家里有网,每...
史上最全的IDEA快捷键总结
现在Idea成了主流开发工具,这篇博客对其使用的快捷键做了总结,希望对大家的开发工作有所帮助。
农行简介 参加农行校园招聘的学生必看下载
农行简介,参加农行校园招聘的学生必看,PDF格式 相关下载链接:[url=//download.csdn.net/download/kangyb130/1987543?utm_source=bbsseo]//download.csdn.net/download/kangyb130/1987543?utm_source=bbsseo[/url]
生成二维码下载
自动生成二维码。QRCOD源码写的!!有需要的朋友直接DOWN吧 相关下载链接:[url=//download.csdn.net/download/cc987475114/10696575?utm_source=bbsseo]//download.csdn.net/download/cc987475114/10696575?utm_source=bbsseo[/url]
图片移动 C#编写 一窗体内实现图片上下左右的移动下载
在一窗体内实现图片的移动,并且会改变大小能实现左右移动、上下移动、循环移动(顺、逆) 相关下载链接:[url=//download.csdn.net/download/kaidi0901/2083111?utm_source=bbsseo]//download.csdn.net/download/kaidi0901/2083111?utm_source=bbsseo[/url]
我们是很有底线的