mediacodec相关内容

使用MediaCodec截断视频

我已使用Android MediaCodec库对视频文件进行转码(主要是更改分辨率此处的示例代码) 我要实现的另一件事是截断视频-仅花费开始的15秒.逻辑是检查videoExtractor.getSampleTime()是否大于15秒,我将EOS写入解码器缓冲区. 但是我得到一个异常Caused by: android.media.MediaCodec$CodecException: ..
发布时间:2020-05-08 01:17:24 移动开发

使用MediaCodec创建的Android Rotate Surface

我正在使用Camera2 API从Camera捕获视频.我知道我们需要旋转预览,因为Camera2没有等效的setDisplayOrientation().能够使用矩阵旋转预览. 我还使用MediaCodec API对视频进行编码.但是,当我将手机旋转180度时,编码的视频会反转.我对如何旋转编码的视频一无所知. 我在配置时尝试了MediaFormat中的KEY_ROTATION.但是 ..
发布时间:2020-05-08 01:17:20 移动开发

如何使用KEY_I_FRAME_INTERVAL参数在MediaCodec中配置特定的GOP大小?

下一个问题是我:我知道MediaFormat.KEY_I_FRAME_INTERVAL是I帧将要出现的时间间隔(整数). 因此,如果我将值设置为1,并且帧速率为15,则GOP大小将为15,如果帧速率为30,则GOP大小将为30. 因此,在参数MediaFormat.KEY_I_FRAME_INTERVAL是一个整数的情况下(无法使用30的帧速率将值0.5设为gopsize 15帧),是 ..
发布时间:2020-05-08 01:17:14 移动开发

ExtractMpegFramesTest在Android中以人像模式录制的视频出现问题

我正在关注 ExtractMpegFramesTest 帖子,以从视频中提取PNG帧. 这适用于以横向模式录制的视频,但不适用于以纵向模式录制的视频. 有人知道如何使用上述链接中提供的解决方案从人像视频生成PNG帧吗? 我已经用720p和1080p视频进行了测试. 我观察到的事物是 MediaExtractor给出720p视频的宽度和高度1280和720,而与方向无关.横向 ..
发布时间:2020-05-08 01:17:10 移动开发

关于Android的Mediacodec速度问题和瓶颈

目前,我使用Mediacodec编码由90帧组成的30 FPS视频需要2100-2400毫秒. 我正在使用此处找到的代码,除了generateSurfaceFrame(i)部分已被替换与: private void generateFrame(Bitmap bitmap, Rect source) { long drawFrameStartTime = System. ..
发布时间:2020-05-08 01:17:03 移动开发

在Android Lollipop 5.0.2上缓慢进行H264 1080P @ 60fps解码

我正在为公司项目开发JAVA RTP流应用程序,该应用程序应该能够加入多播服务器并接收RTP数据包.后来我使用H264解包器从NAL FU重新创建一个完整的帧(保持附加数据,直到设置了“结束位和标记位"为止 我想在Android中解码并显示原始的h264视频字节流,因此,我目前正在使用配置了硬件解码器的MediaCodec类. 该应用程序已启动并正在为Jeallybean(API 17 ..
发布时间:2020-05-08 01:17:00 其他开发

MediaCodec.createDecoderByType的类型列表(字符串类型)

在哪里可以找到MediaCodec.createDecoderByType(字符串类型)中使用的类型的完整列表? 仅 Google的文档给出了部分清单. 更新[2015-06-03] 按照pskink的技巧,我运行了一段代码以提取华硕MeMO平板电脑上所有解码的MIME类型.这是列表 video/avc video/3gpp video/mp4v-es audio/3gpp ..
发布时间:2020-05-08 01:16:57 移动开发

MediaCodec和TextureView的Z顺序问题

在我的Android应用中,我需要使用以下Z顺序渲染三个视图: 在底部,MediaCodec解码器的输出表面覆盖整个屏幕.我要求必须转换MediaCodec产生的图像(例如,缩放图像) 在中间,是GLSurfaceView(或我定义的其他运行表面/视图的GL着色器),覆盖了整个屏幕.显然,此层中的某些像素将是透明的,以便查看下面的MediaCodec输出. 在顶部,还有其他视图-说Ima ..
发布时间:2020-05-08 01:16:55 移动开发

Android MediaCodec向后搜索

我正在尝试使用MediaCodec和MediaExtractor对视频进行精确搜索.通过遵循Grafika的 MoviePlayer ,我已成功实施了前瞻性搜索.但是,我仍然在向后搜索中遇到问题.相关的代码位在这里: public void seekBackward(long position){ final int TIMEOUT_USEC = 10000; int inp ..
发布时间:2020-05-08 01:16:51 移动开发

Android MediaCodec似乎可以缓冲H264帧

我正在手动读取RTP/H264流,并将H264帧传递给Android MediaCodec.我使用"markerBit"作为框架的边框. MediaCodec绑定到OpenGL纹理(SurfaceTexture). 总的来说,一切正常.但是解码器似乎可以缓冲帧.如果我将一帧放入解码器,则不会立即渲染到纹理.在解码器中再放置2-3帧后,第一帧将渲染为纹理. 我正在针对Android 4.4.4 ..
发布时间:2020-05-08 01:16:49 移动开发

在Android中流畅地擦洗视频

我正在尝试使用Android VideoView实现流畅的视频清理. MediaPlayer的seekTo方法未完全满足我的要求.它并没有精确地找到我经过的毫秒数,它实际上是从/跳到最近的位置,而不是我想要的精确位置.框架也显示有很大的间隙.不是毫秒的确切帧. 我继续搜索,发现SEEK_CLOSEST_SYNC只能搜索到最接近的同步帧,而不能精确搜索.这取决于视频的生成方式. 我如何才能实现 ..
发布时间:2020-05-08 01:16:46 移动开发

在人像模式下录制视频时出现方向问题android grafika

我设置了设备方向Landscape模式,然后完美保存了视频. 如果我拍了两边的视频. 但是我将设备方向设置为Portrait模式,这项工作很奇怪. 例如: 以下是我录制视频时的截图: 但是当我保存视频并在MXPlayer中观看时,它看起来像这样: 我使用以下代码: Display display = ((WindowManager) getSystemServi ..
发布时间:2020-05-08 01:16:43 移动开发

所有电话都将在h.264编码器中支持YUV 420(半)平面彩色格式吗?

Preambule:这听起来像是一个非常具体的问题,但这实际上是使用与大多数手机兼容的MediaCodec来构建API 16+ Android应用程序的一个可行的选择. 我有一个带有h.264 MediaCodec的应用程序,该应用程序从缓冲区接收数据,而不是从表面接收数据,因为我在图像上进行了大量操作.创建Encoder时,我会遍历手机中可能的编码器列表,以确保我使用的是专有编码器(如果有 ..
发布时间:2020-05-08 01:16:41 移动开发

如何减少MediaCodec H264编码器延迟

我正在尝试使用Android6.0的MediaCodec将h264编码为实时低延迟流. 编码器大约有6帧延迟,我想知道如何减少 代码来自 screenrecord.cpp 部分代码为: while (true) { encoder->dequeueOutputBuffer(&bufIndex); } 编码器以320x480 60 fps的分辨率通过屏幕表面馈送,并通 ..
发布时间:2020-05-08 01:16:39 移动开发

MediaCodec-将EOS缓冲区发送到音频解码器时出现奇怪的错误

我正在尝试用另一个文件中的音乐替换视频的音轨.因此,我修改了标准的ExtractDecodeEditEncodeTest代码(来自bigflake),以便从所说的“另一个文件"创建音频MediaExtractor.当我尝试将EOS缓冲区发送到音频解码器时,发生了一件奇怪的事情,但是,在此行中: this.audioDecoder.queueInputBuffer(decoderInputBu ..
发布时间:2020-05-08 01:16:35 移动开发

Android MediaCodec输出格式:从GLES外部纹理(YUV/NV12)到GLES纹理(RGB)

我目前正在尝试在Android上开发视频播放器,但在色彩格式方面苦苦挣扎. 上下文:我通过 MediaExtractor/MediaCodec 的标准组合来提取和解码视频.因为我需要将提取的帧用作OpenGLES纹理(RGB),所以我设置了解码器( MediaCodec ),以便它可以馈送外部GLES纹理( GL_TEXTURE_EXTERNAL_OES ).我知道硬件解码器输出的数据为 N ..
发布时间:2020-05-08 01:16:32 移动开发