【问题标题】:ffmpeg playback on android在android上播放ffmpeg
【发布时间】:2011-11-01 05:27:18
【问题描述】:

我设法为 Android 编译了 ffmpeg 库,并且能够将它们加载到我的 jni Android 应用程序中。现在开始调用 ffmpeg 函数并按照在线教程进行操作。我在那里读到,我还需要用于 Android 的 SDL 端口才能呈现音频/视频。

我查看了 libsdl,在 Android 上使用它似乎很复杂,特别是因为我只需要顺序渲染音频/视频媒体样本,是否有一些更简单的解决方案(带有示例)如何渲染解码的缓冲区?我应该将解码后的媒体缓冲区从 frrmpeg 传回 java 进行渲染吗?

如果我必须使用 SDL,是否有一些教程如何轻松地将它与 ffmpeg 集成到 Android 上?

【问题讨论】:

    标签: android ffmpeg android-ndk sdl playback


    【解决方案1】:

    有一些建议:

    ffmpeg解码视频pix_fmt是yuv420p, 您需要将其转换为 BGR32 或 RGB565。 如果你打算使用 Bitmap 和 SurfaceView 来渲染视频帧。

    如果您的设备是 Android 2.2+,则有 c 函数可以将位图数据复制到位图。 通过使用 AndroidBitmap_lockPixels 和 AndroidBitmap_unlockPixels 获取指针。

    如果您的设备不支持这种方式, 您可以将二进制数据放入 ByteBuffer 并使用 Bitmap.copyPixelsFromBuffer()。

    如果你的 SurfaceView 会放大,你应该处理抗锯齿问题:

    Can u ? How to anti alias for SurfaceView in android?

    如果 OpenGL 是首选解决方案, GLThread 可能会消耗更多的 cpu 时间,使用 draw ondirty 更好。

    这个话题很有趣。 :)

    【讨论】:

      【解决方案2】:

      我认为 dolphin-player (http://code.google.com/p/dolphin-player/) for android 使用了 libSDL

      【讨论】:

        猜你喜欢
        • 2012-05-06
        • 1970-01-01
        • 2014-02-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-10-22
        • 2017-07-12
        • 2012-07-30
        相关资源
        最近更新 更多