【问题标题】:Android: how to encode a stream of images to h264 with hardware acceleration?Android:如何使用硬件加速将图像流编码为 h264?
【发布时间】:2014-05-13 14:41:43
【问题描述】:

我目前正在开发一个应用程序,用于读取相机图像并使用 OpenCV 处理它们。 我想将 original 图像存储为“普通”视频,并在处理后删除处理后的图像(在提取信息后)。 为此,我基本上需要将图像流编码为 h264。 无法在通用 cpu 上使用 ffmpeg 或其他解决方案。它必须使用内部硬件加速来完成。 因此,我实际上有三个问题:

  • 有人知道如何使用内部 hw-modules 实现 h264 编码来编码视频吗?

  • 或者 ffmpeg 在 Android 上真的支持这个吗?

  • 或者有没有办法在“通常”的编码过程中访问图像流?

非常感谢!

【问题讨论】:

    标签: android opencv stream ffmpeg h.264


    【解决方案1】:

    您可以运行 MediaRecorder 以使用 h264 硬件编码器(如果可用)创建视频,并同时注册您的预览帧处理程序。不过,我不能保证所有预览帧都会双向播放。

    或者,您可以使用 libstagefright 编译 ffmpeg,它将使用硬件 avc 编码器。

    或者,您可以直接从您的应用程序(通过 JNI)使用 stagefright。

    最后,您可以按照libstreaming 的方法为您的平台找到最佳的录制API(无论是MediaRecorder API,还是MediaCodec buffer-to-buffer需要 Android 4.1 的方法,或需要 Android 4.3 的 MediaCodec 表面到缓冲区方法。

    【讨论】:

    • 非常感谢!你有任何关于如何注册预览帧处理程序的例子吗?
    猜你喜欢
    • 2015-11-29
    • 1970-01-01
    • 2014-03-21
    • 2012-10-08
    • 2013-06-11
    • 2014-09-25
    • 1970-01-01
    • 1970-01-01
    • 2011-12-06
    相关资源
    最近更新 更多