【问题标题】:Getting frames from video and not with MediaMetadataRetriever从视频中获取帧,而不是使用 MediaMetadataRetriever
【发布时间】:2013-11-09 00:20:33
【问题描述】:

我正在尝试找到一种将视频提取到帧中的方法。 主要目标是使用openGl更改图像并再次构建视频。

问题是我找不到提取视频的方法。我看到很多熟悉的问题都通过使用 MediaMetadataRetriever 得到了解答,但我不想使用它,因为它运行速度非常慢。

我对 jcodec、ffmpeg、openCV 和 mp4parser 等库进行了一些研究。

jcodec - 工作正常但速度很慢,每个 getFrame() 花费 1 秒。

ffmpeg - 在 GPL 许可下,这意味着您必须发布您的代码。

openCV - 复杂。也许我可以用它完成我所需要的,但它看起来太复杂了,我正在寻找一个更简单的解决方案。

mp4parser - 提取解码帧,但不支持将它们编码为 jpg/png。

能在这方面得到一些帮助会很棒。 tnx

【问题讨论】:

    标签: android opencv video ffmpeg bitmapfactory


    【解决方案1】:

    不,ffmpeg 库已获得 LGPL 许可,并且不需要打开所有代码。 avcodec 的 android 版本包括一个 libstagefright 接口,它为 h264 (avc) 提供硬件编解码器。这是您在 Android 上所能达到的最快速度。

    【讨论】:

    • ffmpeg 的部分库在 GPL 下,这些是我需要将帧解码回 png(libx256) 的库。关于 libstagefright - 听起来很有趣,您是否有源代码、博客文章或其他包含更多“如何”信息的资源来与读者分享? Tnx
    • libx256 是用于编码器的,不是吗?那你为什么需要 GPL?
    猜你喜欢
    • 2022-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-05
    • 2022-01-06
    • 1970-01-01
    • 2012-03-04
    • 1970-01-01
    相关资源
    最近更新 更多