mediacodec相关内容

在使用MediaCodec和InputSurface录制时如何丢帧?

在我的Android应用中,我想录制带延时的视频.我有一个InputSurface-> MediaCodec(编码器)-> MediaMuxer. 但是,如果我想加快视频播放速度(例如:x3),则可以得到具有很高帧频的视频.例如:以正常速度,我得到30fps的视频.如果我加快速度(x3),我将获得90fps的视频. 由于视频的帧率很高,所以我手机的视频播放器无法正常播放视频(计算机的视 ..
发布时间:2020-05-08 01:18:20 其他开发

在API 17及以下版本上使用createInputSurface()的替代方法是什么

对于我的一个将照相机预览保存到缓冲区的应用程序,我正在使用Mediacodec.createInputSurface()函数,并且一切正常,就像我在使用API​​ 19及更高版本时一样. 现在,我希望相同的代码适用于api 17及以下版本以及不存在该api的其他一些设备. 有人可以告诉我可以使用什么替代方法来帮助我吗? 这是我的一部分代码: private Surface mInput ..
发布时间:2020-05-08 01:18:17 其他开发

如何在Android上将MediaCodec解码的图像数据(YUV420SP)实时渲染到SurfaceView?

MediaCodec具有解码的FPS限制,我想打破这一点,因此我需要自己渲染帧,而不是MediaCodec的内部功能. 我假设只能将RGB565渲染到Android平台上的SurfaceView. 我一直在寻找Android上YUV420-> RGB565的许多解决方案,但是所有解决方案都需要分隔Y U V数据,但是将YUV420SP数据分隔为Y U V会花费很多时间. 我该如何解决? ..
发布时间:2020-05-08 01:18:12 其他开发

是否有可能从MediaCodec获得BGR?

据我所知,MediaCodec返回YUV420中图像的输出缓冲区,然后您可以根据需要对其进行处理...但是就我而言,我需要在BGR中转换YUV420 ,这是相当昂贵的转换. 所以,问题是是否可以立即(不进行转换)从MediaCodec获取BGR? 现在我的代码 uint8_t *buf = AMediaCodec_getOutputBuffer(m_data.codec, sta ..
发布时间:2020-05-08 01:18:10 其他开发

如何从MediaCodec获取解码格式?

我正在与MediaCodec 我正在用它来解码.mp4视频 MediaCodec将视频解码为YUV格式,但是我需要获取RGBA 一切正常,但我发现有几种可能的格式,例如YUV420,YUV422等... 据我所知,要进行转换,我需要确切地知道要应用YUV420_to_RGBA或YUV422_to_RGBA或其他方法的转换... 所以,问题是-如何使用MediaCode ..
发布时间:2020-05-08 01:18:07 其他开发

使用mediacodec解码h264原始流

我从服务器接收了h264数据,我想在Android上使用mediacodec和Texture View对该流进行解码.我从服务器获取了数据,将其解析以获取SPS,PPS和视频帧数据,然后通过将此数据发送到mediacodec,但函数dequeueOutputBuffer(info,100000)始终返回-1,而我得到dequeueOutputBuffer超时. 请帮忙,三个星期以来我一直在解 ..
发布时间:2020-05-08 01:18:04 其他开发

MediaCodec.configure因1080p视频的IllegalStateException失败

我一直在使用grafika的 MoviePlayer 和bigFlake的 ExtractMpegFramesTest 来在我们的应用中实现搜索和提取框架功能.这些对于我们大多数用户来说都可以正常工作,但是其中一些在设置ExtractMpegFramesTest时在MediaCodec.configure上遇到IllegalStateException(在Samsung Galaxy S4 min ..
发布时间:2020-05-08 01:18:01 其他开发

MediaCodec在实际设备上为getOutputImage返回null-仿真器有效

我正在尝试通过 MediaCodec 使用 getOutputImage 方法(框架使用:Exoplayer).我没有使用SurfaceView,其他一切似乎都很好(这是实现).在我的模拟器上,我得到正确的图像.在我所有的真实设备上(带有Android 7.1.1的OnePlus One,带有Android 7.0的Honor 8,带有Android 6.0.1的Samsung Galaxy Ta ..
发布时间:2020-05-08 01:17:57 其他开发

MediaCodec signalEndOfInputStream()错误

我正在尝试使用示例代码Grafika中的Live Camera Recording(With Opengl).在Moto G上一切正常,但我在其他设备(带有Cyanogendmod 11的Galaxy Tab 2)上尝试运行,似乎该方法:signalEndofInputStream()无法正常工作,并且编码器永不停止. 有没有其他方法可以将信号发送到MediaCodec? 对不起,英语不好. ..
发布时间:2020-05-08 01:17:54 其他开发

更改MediaFormat中的旋转

在Android API 23中引入了 MediaFormat.KEY_ROTATION 字段.在早期的Android版本上,有什么方法可以更改MediaFormat中的轮播吗? 解决方案 我找到了可行的解决方案: MediaFormat mediaformat; // ... mediaformat.setInteger("rotation-degrees", 0) ..
发布时间:2020-05-08 01:17:49 其他开发

如何检测Android H.264硬件加速功能

尽管不是全部,但许多Android设备支持H.264视频编解码器的硬件加速,但不支持VP8/VP9编解码器的硬件加速.为了提供更高质量的用户体验,我们希望在可能的情况下选择经过硬件加速的编解码器.因此,希望对特定设备是否具有H.264硬件加速支持进行运行时检测,并以此为基础来设置SDP中用于WebRTC对等连接的会话协商的特定编解码器.也就是说,如果硬件支持H.264,则将其设置为优先级较高的编解 ..
发布时间:2020-05-08 01:17:47 其他开发

如何处理Android MediaCodec解码器的第一个输出ByteBuffer?

我正在尝试使用Android的MediaCodec套件编写音频重采样器. 我目前正在将MP3立体声音频文件输入到MediaExtractor中,然后由MediaCodec对其进行解码.源音频的采样率为48000. 我不理解的是我从解码器接收到的前四个输出缓冲区: 大小0,时间0 大小0,时间24000 大小4312,时间48000 大小4608,时间72000 大小460 ..
发布时间:2020-05-08 01:17:45 其他开发

Android上的RTSP客户端实现

我已经看到许多与此有关的问题.尽管如此,我认为我的答案仍然没有. 我想使用Android上已经编码的RTSP客户端与MediaCodec一起使用,以便捕获H264中的RTSP流,然后对其进行解码和显示.我使用了众所周知的VideoView和MediaPlayer来支持.setDataSource方法(文件或rtsp/http路径)中的RTSP流(与仅支持文件或http的MediaExtrac ..
发布时间:2020-05-08 01:17:40 其他开发

使用MediaCodec编辑帧和编码

我能够解码mp4视频.如果使用Surface配置解码器,则可以在屏幕上看到视频.现在,我要编辑帧(添加黄线甚至更好地重叠小图像)并将视频编码为新视频.不必显示视频,现在我也不在乎性能.(如果在编辑时显示帧,如果编辑功能花费很多时间,我可能会有空隙),那么,您对此有何建议?我是否仍然使用GlSurface配置解码器并使用OpenGl(GLES),或者将其配置为null并以某种方式将Bytebuffe ..
发布时间:2020-05-08 01:17:38 其他开发

使用MediaCodec录制720p视频,但编码视频的fps太低

我设法编写了一个录像演示,我的实现与Grafika的ContinuousCaptureActivity相同. 在ContinuousCaptureActivity.java中,作者在SurfaceCreated中创建egl对象,该对象在UI线程中运行,并在UI线程中也调用drawFrame.他在drawFrame中做了两件事,将帧绘制到屏幕上并将数据推送到编码器. 在此处查看代码: Cont ..
发布时间:2020-05-08 01:17:35 其他开发

解码器的输出表面如何传递到编码器的输入表面?

我试图了解MediaCodec的表面对表面方法是如何工作的.在仅ByteBuffer方法中,将解码后的数据放置在OutputBuffers中.可以手动处理这些未编码的数据,然后将其传递到编码器的InputBuffers. 如果我们看一下Android中的示例在文档中,createInputSurface以及此表面在编码器配置中的用法描述如下: createInputSurface(): ..
发布时间:2020-05-08 01:17:33 其他开发

MediaCodec提供了storeMetaDataInBuffers跟踪错误

在通过Android中的MediaCodec进行编码时,我遇到了下一个错误. 实际的编码工作正常,并且输出正确生成,因此我无法真正理解为什么得到此跟踪.它是无害的错误跟踪,还是我缺少什么? E/ACodec(6438):[OMX.qcom.video.encoder.h263]错误-1010的storeMetaDataInBuffers(输出)失败 接下来是获取跟踪的代码 ..
发布时间:2020-05-08 01:17:29 其他开发

如何使用MediaCodec和MediaMuxer录制视频和音频

我能够在MediaCodec和MediaMuxer的帮助下录制(编码)视频.接下来,我需要在MediaCodec和MediaMuxer的帮助下处理音频部分和将视频与音频多路复用. 我面临两个问题: 如何使用MediaCodec编码音频.我需要编码音频和 视频在单独的线程中? 如何将音频和视频数据传递给MediaMuxer(如 writeSampleData()方法一次只获取一种类 ..
发布时间:2020-05-08 01:17:26 其他开发