问题标签 [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.
android - 多个 MediaCodec 实例
我使用 MediaCodec 库制作了一个视频播放器,我想添加一个播放列表功能。我尝试拥有两个 MediaCodec 实例,以便在两个连续视频之间进行更平滑的过渡,但这似乎很危险,在某些设备中(我尝试了带有氰的 S4)它运行良好,但是在带有 TouchWiz 的 S4 中相同代码在媒体编解码器声明中崩溃。这是代码片段:
我在 TouchWiz S4 上遇到的例外是
谁能给我一些关于如何正确执行此操作的指南?也许不同的线程?我真的很想在不同视频之间进行平滑过渡,但我需要它至少在某些设备上能够始终如一地工作。
非常感谢
android - MediaCodec.releaseOutputBuffer()可以用来评估解码成功吗
主要遵循MediaCodec 示例的代码不会生成视频。
与其问一个笼统的问题,不如问一个具体的问题:如果 MediaCodec.releaseOutputBuffer() 成功返回且不产生异常,是否意味着解码工作正常。我正在尝试确定问题是否归因于解码器或表面设置。
android - 如何将 onPreviewFrame 转换为 mp4 视频
我使用 onPreviewFrame 回调设置了相机预览,我想知道“如何将 onPreviewFrame 数据编码到 mp4 视频文件中?”
到目前为止我所知道的是 Android 4.1 有一个 MediaCodec(它是一个解码器和编码器)。MediaCodec 类是否足以将 onPreviewFrame 数据编码到 mp4 视频中?如果是这样,完成此操作的步骤是什么?
谢谢,将不胜感激任何意见或意见或建议,
android - 如何在没有 MediaExtractor 的情况下为 H264 使用 MediaCodec
我需要在没有 MediaExtractor 的情况下使用 MediaCodec,并且我正在使用 FileInputStream 读取文件。目前它不工作,它在屏幕上显示一个绿色的乱码图像。
这是整个源代码:
如果我使用 MediaExtractor,一切正常。我在使用 MediaExtractor 时通过查看 MediaFormat 获得了 SPS/PPS 值。如果我删除下面的部分,屏幕上不会显示任何内容。
我错过了什么?如何在没有 MediaExtractor 的情况下以编程方式获取 SPS/PPS 值?
android - MediaCodec 从视频中获取所有帧
我正在尝试使用 MediaCodec 从视频中检索所有帧以进行图像处理,我正在尝试渲染视频并从 outBuffers 捕获帧,但我无法从接收到的字节中启动位图实例.
我试图将它渲染到表面或什么都没有(null),因为我注意到当您渲染为 null 时,outBuffers 正在获取渲染帧的字节。
这是代码:
任何帮助将不胜感激
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 设置一些强制值。
我尝试了所有强制媒体编解码器的强制值,但仍然没有通过
非法异常。
现在我有点想不通了。任何建议、意见或提示将不胜感激。
谢谢
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[] 数据转换为较低分辨率的步骤是什么。
感谢阅读,如果有任何建议或帮助,将不胜感激。
android - 如何使用 MediaCodec 对带有音频的视频进行编码
因此,我通过使用相机的 onPreviewFrame 方法收集帧,使用 MediaCodec 对 h264 基本流进行了编码。(使用Android MediaCodec 从相机编码 H.264)。然后,我使用 h264 流生成了一个 mp4 视频。不幸的是,它没有任何音频。
我注意到 MediaCodec 也应该允许对音频进行编码,因为它具有音频编解码器的设置。
现在有什么方法可以将音频添加到 h264 流中吗?
感谢您的阅读,如果您有任何意见或建议,我们将不胜感激。
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 甚至不会写入输出音频文件。有什么我想念的吗?我的设置正确吗?
欢迎提出任何建议、意见和意见,非常感谢。多谢你们!
android - Android MediaCodec 视频颜色错误且播放速度过快
我正在使用 Camera 的 setPreviewCallback 使用 MediaCodec 对视频进行编码。(我按照这个例子使用 Android MediaCodec 从相机编码 H.264)。我对 MediaCodec 使用以下设置:
我的相机设置是:
我有一个视频,但有两个问题:
- 它的颜色是错误的。
- 它的播放速度太快了。
这是一个示例视频
http://www.youtube.com/watch?v=I1Eg2bvrHLM&feature=youtu.be
有谁知道这两个问题的原因是什么?并且可能会告诉我一些解决此问题的方法,因为我现在完全迷失/困惑。感谢您的阅读,并感谢任何评论和意见。