问题标签 [android-mediacodec]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3661 浏览

android - 多个 MediaCodec 实例

我使用 MediaCodec 库制作了一个视频播放器,我想添加一个播放列表功能。我尝试拥有两个 MediaCodec 实例,以便在两个连续视频之间进行更平滑的过渡,但这似乎很危险,在某些设备中(我尝试了带有氰的 S4)它运行良好,但是在带有 TouchWiz 的 S4 中相同代码在媒体编解码器声明中崩溃。这是代码片段:

我在 TouchWiz S4 上遇到的例外是

谁能给我一些关于如何正确执行此操作的指南?也许不同的线程?我真的很想在不同视频之间进行平滑过渡,但我需要它至少在某些设备上能够始终如一地工作。

非常感谢

0 投票
1 回答
1889 浏览

android - MediaCodec.releaseOutputBuffer()可以用来评估解码成功吗

主要遵循MediaCodec 示例的代码不会生成视频。
与其问一个笼统的问题,不如问一个具体的问题:如果 MediaCodec.releaseOutputBuffer() 成功返回且不产生异常,是否意味着解码工作正常。我正在尝试确定问题是否归因于解码器或表面设置。

0 投票
1 回答
2011 浏览

android - 如何将 onPreviewFrame 转换为 mp4 视频

我使用 onPreviewFrame 回调设置了相机预览,我想知道“如何将 onPreviewFrame 数据编码到 mp4 视频文件中?”

到目前为止我所知道的是 Android 4.1 有一个 MediaCodec(它是一个解码器和编码器)。MediaCodec 类是否足以将 onPreviewFrame 数据编码到 mp4 视频中?如果是这样,完成此操作的步骤是什么?

谢谢,将不胜感激任何意见或意见或建议,

0 投票
2 回答
17660 浏览

android - 如何在没有 MediaExtractor 的情况下为 H264 使用 MediaCodec

我需要在没有 MediaExtractor 的情况下使用 MediaCodec,并且我正在使用 FileInputStream 读取文件。目前它不工作,它在屏幕上显示一个绿色的乱码图像。

这是整个源代码:

如果我使用 MediaExtractor,一切正常。我在使用 MediaExtractor 时通过查看 MediaFormat 获得了 SPS/PPS 值。如果我删除下面的部分,屏幕上不会显示任何内容。

我错过了什么?如何在没有 MediaExtractor 的情况下以编程方式获取 SPS/PPS 值?

0 投票
1 回答
11737 浏览

android - MediaCodec 从视频中获取所有帧

我正在尝试使用 MediaCodec 从视频中检索所有帧以进行图像处理,我正在尝试渲染视频并从 outBuffers 捕获帧,但我无法从接收到的字节中启动位图实例.

我试图将它渲染到表面或什么都没有(null),因为我注意到当您渲染为 null 时,outBuffers 正在获取渲染帧的字节。

这是代码:

任何帮助将不胜感激

0 投票
1 回答
12074 浏览

android - MediaCodec.configure 上的非法异常

我正在尝试学习使用相机的 onPreviewFrame 回调对 mp4 或任何类型的视频文件进行编码。

目前,我正在尝试这篇文章中的示例代码

使用 Android MediaCodec 从摄像头编码 H.264

不幸的是,我不断收到 IllegalException

mediaCodec.configure(mediaFormat, null, null, MediaCodec.CONFIGURE_FLAG_ENCODE);

从另一个帖子 IllegalStateException when MediaCodec.configure Android中,我注意到我必须为 MediaCodec 设置一些强制值。

我尝试了所有强制媒体编解码器的强制值,但仍然没有通过

非法异常。

现在我有点想不通了。任何建议、意见或提示将不胜感激。

谢谢

0 投票
1 回答
1386 浏览

android - 如何将 android Camera 的 onPreviewFrame 上的 byte[] 数据缩放到较低的分辨率

Android 相机有一个 onPreviewFrame 回调,它会返回一个帧作为 byte[] 数据。

我已将相机设置为以 1280 x 720 返回数据(NV21 格式)字节 [] 数据。

我想做的事:

我想将一些帧保持在 1280 x 720 分辨率(到 jpeg)。

并以较低的分辨率(如 720 x 480)生成 mp4 基本流。

问题

如果 MediaFormat.Key_Width 和 MediaFormat.Key_Height 不等于 onPreviewFrame 的宽度和高度,MediaCodec 会出错。

我想知道是否可以将我的 byte[] 数据(NV21)从 1280 x 720 缩放到更低的分辨率,例如 720 x 480 分辨率,然后将其馈送到编码器?

如果可能,将 NV21 的 1280 x 720 分辨率的 byte[] 数据转换为较低分辨率的步骤是什么。

感谢阅读,如果有任何建议或帮助,将不胜感激。

0 投票
1 回答
4545 浏览

android - 如何使用 MediaCodec 对带有音频的视频进行编码

因此,我通过使用相机的 onPreviewFrame 方法收集帧,使用 MediaCodec 对 h264 基本流进行了编码。(使用Android MediaCodec 从相机编码 H.264)。然后,我使用 h264 流生成了一个 mp4 视频。不幸的是,它没有任何音频。

我注意到 MediaCodec 也应该允许对音频进行编码,因为它具有音频编解码器的设置。

现在有什么方法可以将音频添加到 h264 流中吗?

感谢您的阅读,如果您有任何意见或建议,我们将不胜感激。

0 投票
2 回答
26860 浏览

android - 在 Android 上使用 AudioRecord 和 MediaCodec 编码 AAC 音频

我正在尝试使用 android AudioRecord 和 MediaCodec 对 aac 音频进行编码。我创建了一个非常类似于 ( Encoding H.264 from camera with Android MediaCodec ) 的编码器类。使用这个类,我创建了一个 AudioRecord 实例,并告诉它读取其 byte[] 数据到 AudioEncoder (audioEncoder.offerEncoder(Data))。

这是我的音频记录设置

我成功收集了一些 byte[] 数组数据并将其写入本地文件。不幸的是,该文件无法播放。我在网上做了一些搜索,发现了一篇相关的帖子(如何使用 Android MediaCodec 生成 AAC ADTS 基本流)。因此,其他有类似问题的人说主要问题是“MediaCodec 编码器生成原始 AAC 流。原始 AAC 流需要转换为可播放格式,例如 ADTS 流”。所以我尝试添加 ADTS 标头。然而,在我添加了 ADTS 标头之后(我在下面的代码中注释掉了),我的 AudioEncoder 甚至不会写入输出音频文件。有什么我想念的吗?我的设置正确吗?

欢迎提出任何建议、意见和意见,非常感谢。多谢你们!

0 投票
1 回答
2609 浏览

android - Android MediaCodec 视频颜色错误且播放速度过快

我正在使用 Camera 的 setPreviewCallback 使用 MediaCodec 对视频进行编码。(我按照这个例子使用 Android MediaCodec 从相机编码 H.264)。我对 MediaCodec 使用以下设置:

我的相机设置是:

我有一个视频,但有两个问题:

  1. 它的颜色是错误的。
  2. 它的播放速度太快了。

这是一个示例视频

http://www.youtube.com/watch?v=I1Eg2bvrHLM&feature=youtu.be

有谁知道这两个问题的原因是什么?并且可能会告诉我一些解决此问题的方法,因为我现在完全迷失/困惑。感谢您的阅读,并感谢任何评论和意见。