android - 如何在 android 中从 omxcodec 转储 yuv 缓冲区

标签 android dump yuv android-mediacodec stagefright

我按照以下链接中提到的步骤获取 gralloc 缓冲区。但是如何获得缓冲区的大小呢? How to dump YUV from OMXCodec decoding output

为了测试,我将长度设为,宽度 x 高度 x 1.5,因为 OMXCodec 解码器输出格式为 OMX_QCOM_420Planer32m。

但是当我将 YUV 帧写入文件时,我的 yuv 查看器无法渲染它。然后我尝试了 range_length() 的长度。对于同样的问题。

我也将文件转换为 JPEG,这是不合适的,因为 YUV 本身是错误的。

请帮帮我。如何将 yuv 缓冲区转储到文件。我正在 Kitkat(moto g)和 ICS(三星平板电脑)中进行测试

谢谢你 拉古

最佳答案

正如您链接到的文章的链接中所述,缓冲区不是简单的平面 YUV 格式,而是 Qualcomm 专有格式。

您需要知道如何对其进行解码的代码。这接受了对 this question 的回答似乎有它,虽然我不知道格式定义有多稳定,并且有一些评论表明发布的代码不太正确。

关于android - 如何在 android 中从 omxcodec 转储 yuv 缓冲区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24902795/

相关文章:

android - 如何从协程返回 ArrayList?

android - Gradle Android 单元测试依赖于 'aar' 构建工具 0.11.+

mysql - 如何分部分转储 mysql 表?

ios - 如何获取原始 YUV420p 相机数据

android - 我尝试从 YUV 图像创建位图,但图像看起来失真(有绿色和粉红色叠加层)

android - 将位图转换为 WebRTC VideoFrame

黑莓上的安卓 : How to Play Videos

android - 应用程序能否在一台平板电脑上崩溃,而不会在所有其他平板电脑上崩溃?

svn - 为什么单个修订版的SVN转储大于完整转储?

neo4j - 加载 Neo4j 数据库转储 (neo4j-shell)