mediacodec相关内容
在我的Android应用中,我想录制带延时的视频.我有一个InputSurface-> MediaCodec(编码器)-> MediaMuxer. 但是,如果我想加快视频播放速度(例如:x3),则可以得到具有很高帧频的视频.例如:以正常速度,我得到30fps的视频.如果我加快速度(x3),我将获得90fps的视频. 由于视频的帧率很高,所以我手机的视频播放器无法正常播放视频(计算机的视
..
对于我的一个将照相机预览保存到缓冲区的应用程序,我正在使用Mediacodec.createInputSurface()函数,并且一切正常,就像我在使用API 19及更高版本时一样. 现在,我希望相同的代码适用于api 17及以下版本以及不存在该api的其他一些设备. 有人可以告诉我可以使用什么替代方法来帮助我吗? 这是我的一部分代码: private Surface mInput
..
MediaCodec具有解码的FPS限制,我想打破这一点,因此我需要自己渲染帧,而不是MediaCodec的内部功能. 我假设只能将RGB565渲染到Android平台上的SurfaceView. 我一直在寻找Android上YUV420-> RGB565的许多解决方案,但是所有解决方案都需要分隔Y U V数据,但是将YUV420SP数据分隔为Y U V会花费很多时间. 我该如何解决?
..
据我所知,MediaCodec返回YUV420中图像的输出缓冲区,然后您可以根据需要对其进行处理...但是就我而言,我需要在BGR中转换YUV420 ,这是相当昂贵的转换. 所以,问题是是否可以立即(不进行转换)从MediaCodec获取BGR? 现在我的代码 uint8_t *buf = AMediaCodec_getOutputBuffer(m_data.codec, sta
..
我正在与MediaCodec 我正在用它来解码.mp4视频 MediaCodec将视频解码为YUV格式,但是我需要获取RGBA 一切正常,但我发现有几种可能的格式,例如YUV420,YUV422等... 据我所知,要进行转换,我需要确切地知道要应用YUV420_to_RGBA或YUV422_to_RGBA或其他方法的转换... 所以,问题是-如何使用MediaCode
..
我从服务器接收了h264数据,我想在Android上使用mediacodec和Texture View对该流进行解码.我从服务器获取了数据,将其解析以获取SPS,PPS和视频帧数据,然后通过将此数据发送到mediacodec,但函数dequeueOutputBuffer(info,100000)始终返回-1,而我得到dequeueOutputBuffer超时. 请帮忙,三个星期以来我一直在解
..
我一直在使用grafika的 MoviePlayer 和bigFlake的 ExtractMpegFramesTest 来在我们的应用中实现搜索和提取框架功能.这些对于我们大多数用户来说都可以正常工作,但是其中一些在设置ExtractMpegFramesTest时在MediaCodec.configure上遇到IllegalStateException(在Samsung Galaxy S4 min
..
我正在尝试通过 MediaCodec 使用 getOutputImage 方法(框架使用:Exoplayer).我没有使用SurfaceView,其他一切似乎都很好(这是实现).在我的模拟器上,我得到正确的图像.在我所有的真实设备上(带有Android 7.1.1的OnePlus One,带有Android 7.0的Honor 8,带有Android 6.0.1的Samsung Galaxy Ta
..
我正在尝试使用示例代码Grafika中的Live Camera Recording(With Opengl).在Moto G上一切正常,但我在其他设备(带有Cyanogendmod 11的Galaxy Tab 2)上尝试运行,似乎该方法:signalEndofInputStream()无法正常工作,并且编码器永不停止. 有没有其他方法可以将信号发送到MediaCodec? 对不起,英语不好.
..
在链接过程中找不到AMediaCodec_signalEndOfInputStream. ExportThread.cpp 源 配置文件 apilevel android-21 这是我的配置 CmakeLists.txt target_link_libraries(${Lib_Name} android
..
在Android API 23中引入了 MediaFormat.KEY_ROTATION 字段.在早期的Android版本上,有什么方法可以更改MediaFormat中的轮播吗? 解决方案 我找到了可行的解决方案: MediaFormat mediaformat; // ... mediaformat.setInteger("rotation-degrees", 0)
..
尽管不是全部,但许多Android设备支持H.264视频编解码器的硬件加速,但不支持VP8/VP9编解码器的硬件加速.为了提供更高质量的用户体验,我们希望在可能的情况下选择经过硬件加速的编解码器.因此,希望对特定设备是否具有H.264硬件加速支持进行运行时检测,并以此为基础来设置SDP中用于WebRTC对等连接的会话协商的特定编解码器.也就是说,如果硬件支持H.264,则将其设置为优先级较高的编解
..
我正在尝试使用Android的MediaCodec套件编写音频重采样器. 我目前正在将MP3立体声音频文件输入到MediaExtractor中,然后由MediaCodec对其进行解码.源音频的采样率为48000. 我不理解的是我从解码器接收到的前四个输出缓冲区: 大小0,时间0 大小0,时间24000 大小4312,时间48000 大小4608,时间72000 大小460
..
我有MediaMuxer: MediaMuxer mMediaMuxer = new MediaMuxer(new File(Environment.getExternalStorageDirectory(), "video.mp4").getPath(), MediaMuxer.OutputFormat.MUXER_OUTPUT_MPEG_4); 还有记录视频的代码: Media
..
我已经看到许多与此有关的问题.尽管如此,我认为我的答案仍然没有. 我想使用Android上已经编码的RTSP客户端与MediaCodec一起使用,以便捕获H264中的RTSP流,然后对其进行解码和显示.我使用了众所周知的VideoView和MediaPlayer来支持.setDataSource方法(文件或rtsp/http路径)中的RTSP流(与仅支持文件或http的MediaExtrac
..
我能够解码mp4视频.如果使用Surface配置解码器,则可以在屏幕上看到视频.现在,我要编辑帧(添加黄线甚至更好地重叠小图像)并将视频编码为新视频.不必显示视频,现在我也不在乎性能.(如果在编辑时显示帧,如果编辑功能花费很多时间,我可能会有空隙),那么,您对此有何建议?我是否仍然使用GlSurface配置解码器并使用OpenGl(GLES),或者将其配置为null并以某种方式将Bytebuffe
..
我设法编写了一个录像演示,我的实现与Grafika的ContinuousCaptureActivity相同. 在ContinuousCaptureActivity.java中,作者在SurfaceCreated中创建egl对象,该对象在UI线程中运行,并在UI线程中也调用drawFrame.他在drawFrame中做了两件事,将帧绘制到屏幕上并将数据推送到编码器. 在此处查看代码: Cont
..
我试图了解MediaCodec的表面对表面方法是如何工作的.在仅ByteBuffer方法中,将解码后的数据放置在OutputBuffers中.可以手动处理这些未编码的数据,然后将其传递到编码器的InputBuffers. 如果我们看一下Android中的示例在文档中,createInputSurface以及此表面在编码器配置中的用法描述如下: createInputSurface():
..
在通过Android中的MediaCodec进行编码时,我遇到了下一个错误. 实际的编码工作正常,并且输出正确生成,因此我无法真正理解为什么得到此跟踪.它是无害的错误跟踪,还是我缺少什么? E/ACodec(6438):[OMX.qcom.video.encoder.h263]错误-1010的storeMetaDataInBuffers(输出)失败 接下来是获取跟踪的代码
..
我能够在MediaCodec和MediaMuxer的帮助下录制(编码)视频.接下来,我需要在MediaCodec和MediaMuxer的帮助下处理音频部分和将视频与音频多路复用. 我面临两个问题: 如何使用MediaCodec编码音频.我需要编码音频和 视频在单独的线程中? 如何将音频和视频数据传递给MediaMuxer(如 writeSampleData()方法一次只获取一种类
..